;ELC ;;; Compiled by proclus@darwintel on Wed Jan 2 12:11:53 2008 ;;; from file /mnt/gmirror/ports/deskutils/etask/work/etask-0.3.91a/etask.el ;;; in Emacs version 21.2.1 ;;; with bytecomp version 1.1.1.4 ;;; with all optimizations. ;;; This file contains multibyte non-ASCII characters ;;; and therefore cannot be loaded into Emacs 19. (if (and (boundp 'emacs-version) (< (aref emacs-version (1- (length emacs-version))) ?A) (or (and (boundp 'epoch::version) epoch::version) (string-lessp emacs-version "20"))) (error "`etask.el' was compiled for Emacs 20 or later")) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (byte-code "\300\301!\210\300\302!\210\300\303!\210\300\304!\210\300\305!\210\300\306!\210\300\307!\210\300\310!\210\300\311!\210\300\312!\210\300\313!\210\300\314!\207" [require calendar diary-lib timezone cal-iso etask-tex etask-db etask-port etask-lang etask-cat etask-proj etask-todo etask-event] 2) #@27 EtaskMode release number. (defconst etask-release "0.3.91" (#$ . 931)) (byte-code "\300\301\302\303\304\305%\210\300\306\302\307\310\311\304\301&\210\300\312\302\313\310\311\304\301&\210\300\314\302\315\310\311\304\316&\210\300\317\302\320\310\321\304\301&\207" [custom-declare-group etask nil "Main EtaskMode Customization (Project Management and LaTeX Gantt\nCharts)." :group applications finetuning "Customize Various EtaskMode Details." :prefix "etask-" screen "Customize Screen Layout for Emacs' EtaskMode Window." etaskfaces "Customize Faces for EtaskMode." faces latex "Customize all LaTeX related stuff for Gantt Chart Generation." "etask-tex-"] 8) #@618 Default language for EtaskMode output. Available languages so far: english, german Ensure that you have configured your LaTeX system according to the language specified here. See also variable `etask-set-calendar-language-p' in the finetuning group. You can also specify a language not supported by EtaskMode. Then this setting is applied to the LaTeX Gantt chart and everything else is displayed in English. If your language is not yet supported, you can easily add it (see file `etask-lang.el'. Note that this customization procedure as well as logging activities are not affected by this language variable. (custom-declare-variable 'etask-language '"english" '(#$ . 1599) :type 'string :group 'etask) #@115 The name of your company to be put at the top left corner of the Gantt chart pages. Example: Ren\'e Weichselbaum (custom-declare-variable 'etask-organization '"" '(#$ . 2317) :type 'string :group 'etask) #@119 A short slogan to be put at the top right corner of the Gantt chart pages. Example: Sound Advice. Reliable Software. (custom-declare-variable 'etask-organization-slogan '"" '(#$ . 2529) :type 'string :group 'etask) #@513 Maximum task name length (characters) in draft Gantt chart. Also used for some minibuffer messages. If you use longer names than defined here they are trimmed to fit. However, nothing gets lost if a task name is longer than specified by this variable. The whole name (and not the trimmed one) is stored and all status reports contain the entire name. Note that this variable affects only the draft Gantt chart, the chart you can edit within Emacs. It does not apply to the high-quality LaTeX Gantt chart. (custom-declare-variable 'etask-max-taskname-len-chart '20 '(#$ . 2752) :type 'integer :group 'screen) #@277 Normal task name length in characters in minibuffer. If necessary, longer task names are shortened within the minibuffer to prevent line breaking. For example the string 'Very loooooooooooong' is displayed like 'Very loooo..'. See also `etask-longer-taskname-len-minibuf'. (custom-declare-variable 'etask-normal-taskname-len-minibuf '12 '(#$ . 3374) :type 'integer :group 'screen) #@212 Task name length in characters in minibuffer for short messages. For example the string 'Very looooooooooooooooooooong' is displayed like 'Very loooooooooooooo..'. See also `etask-normal-taskname-len-minibuf'. (custom-declare-variable 'etask-longer-taskname-len-minibuf '22 '(#$ . 3765) :type 'integer :group 'screen) #@41 Tasks must start at this year or later. (custom-declare-variable 'etask-earliest-taskstart-year '2002 '(#$ . 4090) :type 'integer :group 'finetuning) #@38 Full date for earliest possible task (defconst etask-earliest-catdate '(1 1 1000) (#$ . 4246)) #@36 Full date for latest possible task (defconst etask-latest-catdate '(1 1 9999) (#$ . 4347)) #@46 Name of the buffer used for task management. (defconst etask-buffer "*EtaskMode*" (#$ . 4444)) #@55 Name of the buffer used for reports (in a new frame). (defconst etask-report-buffer "*EtaskMode REPORTS*" (#$ . 4545)) #@58 Specify an unmarked task in file `etask-tasks-filename'. (defconst etask-unmarkedtask-string "u" (#$ . 4670)) #@55 Specify a marked task in file `etask-tasks-filename'. (defconst etask-markedtask-string "m" (#$ . 4786)) #@58 Specify a high risk task in file `etask-tasks-filename'. (defconst etask-highrisktask-string "high-risk" (#$ . 4897)) #@55 Specify a normal task in file `etask-tasks-filename'. (defconst etask-normaltask-string "normal" (#$ . 5021)) #@57 Specify a critical task in file `etask-tasks-filename'. (defconst etask-criticaltask-string "critical" (#$ . 5137)) #@65 String that delimits the name of an unmarked task from its bar. (defconst etask-delimiter-marker "|" (#$ . 5259)) #@62 String that delimits the name of a marked task from its bar. (defconst etask-delimiter-markedtask-marker "#" (#$ . 5379)) #@70 Regular expression for an element's start or end time without am/pm. (defconst etask-time-raw-regexp "^\\(\\(\\(1?[0-9]\\)\\|\\(2[0-3]\\)\\)\\(:[0-5][0-9]\\)?\\)$" (#$ . 5507)) #@67 Regular expression for an element's start or end time with am/pm. (defconst etask-time-ampm-regexp "^\\(1[01]\\|[0-9]\\)\\(:[0-5][0-9]\\)?\\(am\\|\\pm\\)$" (#$ . 5690)) #@34 Number of working hours per day. (custom-declare-variable 'etask-workinghours-per-day '8 '(#$ . 5865) :type 'integer :group 'finetuning) #@34 Number of working days per week. (custom-declare-variable 'etask-workingdays-per-week '5 '(#$ . 6008) :type 'integer :group 'finetuning) #@37 The earliest begin of your workday. (custom-declare-variable 'etask-first-workinghour '8 '(#$ . 6151) :type 'integer :group 'finetuning) #@33 The latest end of your workday. (custom-declare-variable 'etask-last-workinghour '20 '(#$ . 6294) :type 'integer :group 'finetuning) #@107 If true then business days are used to calculate distance between date, otherwise calendar days are used. (custom-declare-variable 'etask-use-bizdays 't '(#$ . 6434) :type 'boolean :group 'finetuning) #@64 Regular expression for effort in weeks, days, hrs, or minutes. (defconst etask-effort-regexp "^[0-9]*\\.?[0-9]+[wdhm]$" (#$ . 6641)) #@61 Regular expression for effort units week, day, hr, and min. (defconst etask-effort-units-regexp "[wdhm]$" (#$ . 6780)) #@25 Symbol for unit 'hour'. (defconst etask-effort-unit-hour "h" (#$ . 6905)) #@24 Symbol for unit 'day'. (defconst etask-effort-unit-day "d" (#$ . 6985)) #@25 Symbol for unit 'week'. (defconst etask-effort-unit-week "w" (#$ . 7063)) #@27 Symbol for unit 'minute'. (defconst etask-effort-unit-minute "m" (#$ . 7143)) #@43 Effort in minutes for trivial ToDo items. (defconst etask-todo-no-effort 5 (#$ . 7227)) #@42 Effort in minutes for little Todo items. (defconst etask-todo-little-effort 15 (#$ . 7321)) #@44 Effort in minutes for standard ToDo items. (defconst etask-todo-standard-effort 30 (#$ . 7419)) #@48 Effort in minutes for more complex ToDo items. (defconst etask-todo-significant-effort 60 (#$ . 7521)) #@50 Effort in minutes for really complex todo items. (defconst etask-todo-huge-effort 120 (#$ . 7630)) #@43 Effort in hours for standard event items. (defconst etask-event-little-effort 4 (#$ . 7735)) #@43 Effort in hours for standard event items. (defconst etask-event-standard-effort etask-workinghours-per-day (#$ . 7834)) #@47 Effort in hours for more complex event items. (defconst etask-event-significant-effort (* etask-workinghours-per-day etask-workingdays-per-week) (#$ . 7960)) #@49 Effort in hours for really complex event items. (defconst etask-event-huge-effort (byte-code "\211\\ _\207" [etask-workinghours-per-day etask-workingdays-per-week] 2) (#$ . 8124)) #@59 Regular expression for effort units day, week, and month. (defconst etask-effort-dwm-regexp "^[0-9]*\\.?[0-9]+[dwm]$" (#$ . 8311)) #@47 Regular expression for valid efforts in days. (defconst etask-effort-d-regexp "^[0-9]*\\.?[0-9]+d$" (#$ . 8448)) #@48 Regular expression for valid efforts in weeks. (defconst etask-effort-w-regexp "^[0-9]*\\.?[0-9]+w$" (#$ . 8567)) #@49 Regular expression for valid efforts in months. (defconst etask-effort-m-regexp "^[0-9]*\\.?[0-9]+m$" (#$ . 8687)) #@53 Regular expression for effort without unit symbols. (defconst etask-effort-numonly-regexp "^[0-9]*\\.?[0-9]*$" (#$ . 8808)) #@61 Regular expression for effort with or without unit symbols. (defconst etask-effort-num-regexp "^[0-9]*\\.?[0-9]*" (#$ . 8938)) #@62 Regular expression for valid whole number minibuffer inputs. (defconst etask-wholenumber-regexp "^[0-9]+$" (#$ . 9071)) #@57 Regular expression for valid integer minibuffer inputs. (defconst etask-integernumber-regexp "^-*[0-9]+$" (#$ . 9197)) #@144 Regular expression for an element and all its subelements in files `etask-tasks-filename', `etask-todos-filename', or `etask-events-filename'. (defconst etask-elementfind-regexp "^(\"" (#$ . 9323)) #@78 Regular expression to find the delimiter between element names and its bars. (defconst etask-delimiter-regexp (concat "[" etask-delimiter-marker etask-delimiter-markedtask-marker "]") (#$ . 9527)) #@97 Associated list containing the names of all algorithms available for calculating a task status. (defconst etask-tracking-algorithms-alist '(("linear" 1) ("s-shape-65" 2) ("s-shape-70" 3)) (#$ . 9730)) #@54 Header for the current element's status information. (defvar etask-statusheader nil (#$ . 9937)) #@37 Prefix identifying a sublevel item. (defconst etask-subelements-prefix "'-" (#$ . 10040)) #@770 Define the 'true' holidays within `calendar-holidays'. This variable is used for calculating the business days between dates. Sometimes holidays are working days. The holiday names in `calendar-holidays' that are matched by this regular expression are the days on which you don't work. Background: Within etask free days are Saturdays, Sundays, and days in `calendar-holidays' that match the regular expression specified here. All other days are business days. For example, consider the following holiday names in `calendar-holidays' and assume that `etask-holiday-regexp' is set to "(free)": "holiday1 (free)" "holiday2" 'holiday1' indicates a 'true' holiday for you and your staff. 'holiday2' may be a holiday for many people but not for you and your staff. (custom-declare-variable 'etask-holiday-regexp '"" '(#$ . 10137) :type 'string :group 'etask) #@1673 Default tracking method applied for new tasks. The following methods are available: 'linear', 's-shape-65', and 's-shape-75'. You can easily change the method for each task individually within the program. The question of how to track a task or a whole project is a tough one to answer. But there is little doubt that the rate of progress is not always linear. It may even vary significantly in different phases of a task or project. Often, its real shape is typically of an increasing and then decreasing slope, which vaguely looks like an S shape. That's why you can choose between three alternatives: - 'Linear' (50% completion after 50% of the time): When, for example, half of the time for the task has elapsed, it must be 50 percent completed. After 70 percent of the time you need 70 percent completion. - 'S-Shape-65' (65% completion after 50% of the time): Take into account that progress is slow at the start, then reaches its peak, and then slows again during the completion phase. In other words, when assessing the task status, an S-shape curve is used. For example, after 20 percent of the time the task must be 15 percent completed, and after 50 percent you need at least 65 percent completion. - 'S-Shape-70' (70% completion after 50% of the time): Till about 30 percent of the task's time there are very much the same completion requirements in place. But in order to have more flexibility towards the planned task end the requirements for the middle phase are tougher. For example, after 70 percent of the time the task must be 90 percent completed. (custom-declare-variable 'etask-default-tracking '"s-shape-65" '(#$ . 11008) :type 'string :group 'finetuning) #@503 Default task type assigned to a task when newly inserted. The following types are available: `etask-normaltask-string' for a normal task, `etask-highrisktask-string' for a high-risk task, and `etask-criticaltask-string' for a critical task High risk tasks contain very risky activities in terms of cost, schedule, quality etc. Critical tasks are tasks on the critical path. Therefore, they cannot be delayed or take longer than its estimate without impacting the whole project - at least in theory. (custom-declare-variable 'etask-default-type 'etask-normaltask-string '(#$ . 12798) :type 'string :group 'finetuning) #@203 Default priority assigned to tasks, todos and other elements when newly inserted. Priority range: from 0 to n>0 0...No priority, 1...Highest priority, n>1...lowest priority, but still higher than zero (custom-declare-variable 'etask-default-priority '0 '(#$ . 13425) :type 'natnum :group 'finetuning) #@70 If non-nil, project begin and end date are shown in draft bar chart. (custom-declare-variable 'etask-show-projectdates-p 't '(#$ . 13733) :type 'boolean :group 'screen) #@54 Maximum number of elements in an EtaskMode category. (custom-declare-variable 'etask-max-dataitems '60 '(#$ . 13908) :type 'integer :group 'finetuning) #@285 Maximum full-time equivalents you can assign to a task. Staff members who work full-time on a task have a full-time equivalence of 1.0. Thus, a person who spends 30 percent of his or her time on a task and the rest on other activities should be considered as 0.3 FTE for this task. (custom-declare-variable 'etask-max-fte '20 '(#$ . 14067) :type 'integer :group 'finetuning) #@52 Set calendar language too when switching language. (custom-declare-variable 'etask-set-calendar-language-p 'nil '(#$ . 14450) :type 'boolean :group 'finetuning) #@40 Specify size of the element kill ring. (custom-declare-variable 'etask-element-killring-size '20 '(#$ . 14617) :type 'integer :group 'finetuning) (byte-code "\300\301!\203 \302\301\303\"\210\304\303\305\306\307\310%\210\300\301!\203\302\301\311\"\210\304\311\312\313\307\310%\210\300\301!\2031\302\301\314\"\210\304\314\315\316\307\310%\210\300\301!\203D\302\301\317\"\210\304\317\320\321\307\310%\210\300\301!\203W\302\301\322\"\210\304\322\323\324\307\310%\210\300\301!\203j\302\301\325\"\210\304\325\326\327\307\310%\210\300\301!\203}\302\301\330\"\210\304\330\331\332\307\310%\210\300\301!\203\220\302\301\333\"\210\304\333\334\335\307\310%\210\300\301!\203\243\302\301\336\"\210\304\336\337\340\307\310%\210\300\301!\203\266\302\301\341\"\210\304\341\342\343\307\310%\210\300\301!\203\311\302\301\344\"\210\304\344\345\346\307\310%\210\300\301!\203\334\302\301\347\"\210\304\347\350\351\307\310%\210\300\301!\203\357\302\301\352\"\210\304\352\353\354\307\310%\210\300\301!\203\302\301\355\"\210\304\355\356\357\307\310%\210\300\301!\203\302\301\360\"\210\304\360\361\362\307\310%\210\300\301!\203(\302\301\363\"\210\304\363\364\365\307\310%\210\300\301!\203;\302\301\366\"\210\304\366\367\370\307\310%\210\300\301!\203N\302\301\371\"\210\304\371\372\373\307\310%\210\300\301!\203a\302\301\374\"\210\304\374\375\376\307\310%\210\300\301!\203t\302\301\377\"\210\304\377\201@\201A\307\310%\210\300\301!\203\215\302\301\201B\"\210\304\201B\201C\201D\307\310%\210\300\301!\203\250\302\301\201E\"\210\304\201E\201F\201G\307\310%\210\300\301!\203\303\302\301\201H\"\210\304\201H\201I\201J\307\310%\210\300\301!\203\336\302\301\201K\"\210\304\201K\201L\201M\307\310%\210\300\301!\203\371\302\301\201N\"\210\304\201N\201O\201P\307\310%\210\300\301!\203\302\301\201Q\"\210\304\201Q\201R\201S\307\310%\210\300\301!\203/\302\301\201T\"\210\304\201T\201U\201V\307\310%\210\300\301!\203J\302\301\201W\"\210\304\201W\201X\201Y\307\310%\210\300\301!\203e\302\301\201Z\"\210\304\201Z\201[\201\\\307\310%\210\300\301!\203\200\302\301\201]\"\210\304\201]\201^\201_\307\310%\210\300\301!\203\233\302\301\201`\"\210\304\201`\201a\201b\307\310%\210\300\301!\203\266\302\301\201c\"\210\304\201d\201e\201f\307\310%\210\300\301!\203\321\302\301\201g\"\210\304\201g\201h\201i\307\310%\207" [boundp facemenu-unlisted-faces add-to-list etask-face-flag-delete custom-declare-face ((((class color)) (:foreground "darkred" :weight bold)) (t nil)) "Face for 'delete' flag." :group etaskfaces etask-face-flag-archive ((((class color)) (:foreground "darkred" :weight bold)) (t nil)) "Face for 'archive' flag." etask-face-flag-post-elt ((((class color)) (:foreground "darkred" :weight bold)) (t nil)) "Face for 'postpone whole element' flag." etask-face-flag-post-beg ((((class color)) (:foreground "darkred" :weight bold)) (t nil)) "Face for 'postpone begin date' flag." etask-face-flag-post-dd ((((class color)) (:foreground "darkred" :weight bold)) (t nil)) "Face for 'postpone due date' flag." etask-face-flag-fwd-elt ((((class color)) (:foreground "darkred" :weight bold)) (t nil)) "Face for 'forward whole element' flag." etask-face-flag-fwd-beg ((((class color)) (:foreground "darkred" :weight bold)) (t nil)) "Face for 'forward begin date' flag." etask-face-flag-fwd-dd ((((class color)) (:foreground "darkred" :weight bold)) (t nil)) "Face for 'forward due date' flag." etask-face-flag-link ((((class color)) (:foreground "darkred" :weight bold)) (t nil)) "Face for 'link elements' flag." etask-face-flag-mark ((((class color)) (:foreground "darkred" :weight bold)) (t nil)) "Face for 'mark elements' flag." etask-face-holiday ((((class color)) (:foreground "darkred" :weight bold)) (t nil)) "Face for holidays on the project timeline." etask-face-today ((((class color)) (:foreground "red")) (t nil)) "Face for current date and its marker on the project timeline." etask-face-day-marker ((((class color)) (:foreground "black")) (t nil)) "Face for day markers on the project timeline." etask-face-specialdelimiter ((((class color)) (:foreground "red")) (t nil)) "Face for delimiters of elements 5 and 9 for quick navigation." etask-face-planned ((((class color)) (:foreground "gray60")) (t nil)) "Task bar face for planned, i.e. not yet completed, part of a normal\ntask." etask-face-criticalplanned ((((class color)) (:foreground "gray60")) (t nil)) "Task bar face for planned part of a task on the critical path." etask-face-highriskplanned ((((class color)) (:foreground "gray60")) (t nil)) "Task bar face for planned part of a high risk task." etask-face-completed ((((class color)) (:family "Courier" :foreground "darkgreen" :weight bold)) (t nil)) "Task bar face for the completed part of a normal task." etask-face-criticalcompleted ((((class color)) (:foreground "darkred" :weight bold)) (t nil)) "Task bar face for the completed part of a task on the critical\npath." etask-face-highriskcompleted ((((class color)) (:foreground "darkblue" :weight bold)) (t nil)) "Task bar face for completed part of a high risk task." etask-face-criticaltask ((((class color)) (:foreground "darkred")) (t nil)) "Face for critical task names displayed next to their task bar." etask-face-criticaltaskname-behind-schedule ((((class color)) (:foreground "darkred" :weight bold)) (t nil)) "Face for those critical task names displayed next to their task bar\nthat are behind schedule.\n\nKeep in mind that this face should, for consistency, add one or more\nadditional face attributes to `etask-face-criticaltask'." etask-face-criticaltaskname-completed ((((class color)) (:foreground "darkred" :strike-through t)) (t nil)) "Face for those critical task names displayed next to their task bar\nthat are already completed.\n\nKeep in mind that this face should, for consistency, add one or more\nadditional face attributes to `etask-face-criticaltask'." etask-face-highrisktask ((((class color)) (:foreground "darkblue")) (t nil)) "Face for high risk task names displayed next to their task bar." etask-face-highrisktaskname-behind-schedule ((((class color)) (:foreground "darkblue" :weight bold)) (t nil)) "Face for those high risk task names displayed next to their task\nbar that are behind schedule.\n\nKeep in mind that this face should, for consistency, add one or more\nadditional face attributes to `etask-face-highrisktask'." etask-face-highrisktaskname-completed ((((class color)) (:foreground "darkblue" :strike-through t)) (t nil)) "Face for those high risk task names displayed next to their task\nbar that arealready completed.\n\nKeep in mind that this face should, for consistency, add one or more\nadditional face attributes to `etask-face-highrisktask'." etask-face-normaltask ((((class color)) (:foreground "black")) (t nil)) "Face for normal task names displayed next to their task bar." etask-face-normaltaskname-behind-schedule ((((class color)) (:foreground "black" :weight bold)) (t nil)) "Face for those normal task names displayed next to their task bar\nthat are behind schedule.\n\nKeep in mind that this face should, for consistency, add one or more\nadditional face attributes to `etask-face-normaltask'." etask-face-normaltaskname-completed ((((class color)) (:foreground "black" :strike-through t)) (t nil)) "Face for those normal task names displayed next to their task bar\nthat are already completed.\n\nKeep in mind that this face should, for consistency, add one or more\nadditional face attributes to `etask-face-normaltask'." etask-face-status-behindschedule ((((class color)) (:foreground "red" :weight bold)) (t nil)) "Face for status message indicating that a task is behind schedule." etask-face-status-ok ((((class color)) (:foreground "black" :weight bold)) (t nil)) "Face for the status message indicating that a task is on time." etask-face-statusheader etask-face-statusheader-onscreen ((((class color)) (:background "darkseagreen2" :foreground "black" :weight bold)) (t nil)) "Face for the task status header below the bar chart.\n\nThe task status header consists of the prefix `etask-statusheader' and\nthe task's name." etask-face-task-on-report ((((class color)) (:background "darkseagreen2" :foreground "black" :weight bold)) (t nil)) "Face for task name and its prefix in a report document."] 6) #@20 The 'delete' flag. (defconst etask-flag-delete (etask-propertize "D" 'face 'etask-face-flag-delete) (#$ . 22932)) #@21 The 'archive' flag. (defconst etask-flag-archive (etask-propertize "A" 'face 'etask-face-flag-archive) (#$ . 23052)) #@36 The 'postpone whole element' flag. (defconst etask-flag-post-elt (etask-propertize ">>" 'face 'etask-face-flag-post-elt) (#$ . 23175)) #@33 The 'postpone begin date' flag. (defconst etask-flag-post-beg (etask-propertize ">" 'face 'etask-face-flag-post-beg) (#$ . 23316)) #@31 The 'postpone due date' flag. (defconst etask-flag-post-dd (etask-propertize " >" 'face 'etask-face-flag-post-dd) (#$ . 23453)) #@35 The 'forward whole element' flag. (defconst etask-flag-fwd-elt (etask-propertize "<<" 'face 'etask-face-flag-fwd-elt) (#$ . 23587)) #@32 The 'forward begin date' flag. (defconst etask-flag-fwd-beg (etask-propertize "<" 'face 'etask-face-flag-fwd-beg) (#$ . 23725)) #@30 The 'forward due date' flag. (defconst etask-flag-fwd-dd (etask-propertize " <" 'face 'etask-face-flag-fwd-dd) (#$ . 23859)) #@27 The 'link elements' flag. (defconst etask-flag-link (etask-propertize "L" 'face 'etask-face-flag-link) (#$ . 23990)) #@18 The 'mark' flag. (defconst etask-flag-mark (etask-propertize "*" 'face 'etask-face-flag-mark) (#$ . 24113)) #@19 The 'empty' flag. (defconst etask-flag-empty "" (#$ . 24227)) #@23 List of current flags (defvar etask-current-flags nil (#$ . 24295)) #@47 The symbol used to point at the current date. (defconst etask-today-symbol (etask-propertize "^" 'face 'etask-face-today) (#$ . 24369)) #@47 The symbol used to point at the end of a day. (defconst etask-day-marker (etask-propertize "'" 'face 'etask-face-day-marker) (#$ . 24511)) #@71 Task bar symbol for planned (i.e. still open) parts of a normal task. (custom-declare-variable 'etask-planned-marker '(etask-propertize "-" 'face 'etask-face-planned) '(#$ . 24656) :group 'etaskfaces) #@67 Task bar symbol for planned parts of a task on the critical path. (custom-declare-variable 'etask-criticalplanned-marker '(etask-propertize "-" 'face 'etask-face-criticalplanned) '(#$ . 24863) :group 'etaskfaces) #@56 Task bar symbol for planned parts of a high risk task. (custom-declare-variable 'etask-highriskplanned-marker '(etask-propertize "-" 'face 'etask-face-highriskplanned) '(#$ . 25082) :group 'etaskfaces) #@55 Task bar symbol for completed parts of a normal task. (custom-declare-variable 'etask-completed-marker '(etask-propertize "=" 'face 'etask-face-completed) '(#$ . 25290) :group 'etaskfaces) #@69 Task bar symbol for completed parts of a task on the critical path. (custom-declare-variable 'etask-criticalcompleted-marker '(etask-propertize "*" 'face 'etask-face-criticalcompleted) '(#$ . 25485) :group 'etaskfaces) #@58 Task bar symbol for completed parts of a high risk task. (custom-declare-variable 'etask-highriskcompleted-marker '(etask-propertize "*" 'face 'etask-face-highriskcompleted) '(#$ . 25710) :group 'etaskfaces) #@78 Full path name of etask's working directory. Example: /home/rene/etaskmode/ (custom-declare-variable 'etask-working-dir '"" '(#$ . 25924) :type 'string :group 'etask) #@186 Prefix of LaTeX Gantt chart file name. Note: Use `etask-working-dir' to specify the working directory. See `etask-reports-filename-prefix' for details about the file naming approach. (defconst etask-tex-filename-prefix "gantt" (#$ . 26099)) #@320 Prefix of file that holds your status reports. Note: Use `etask-working-dir' to specify the working directory. When you request a task status report the first time of that day the system creates a new file named `etask-reports-filename-prefix'.day.mon.year'. This file is used for all reports requested on that day. (defconst etask-reports-filename-prefix "reports" (#$ . 26349)) #@66 If non-nil, EtaskMode logs debug information in file "etasklog". (custom-declare-variable 'etask-write-logfile-p 'nil '(#$ . 26738) :type 'boolean :group 'etask) #@66 If non-nil, reports and LaTeX Gantt charts pop up in new frames. (custom-declare-variable 'etask-allow-popup-frames-p 'nil '(#$ . 26906) :type 'boolean :group 'etask) #@127 File name for log output. Note: Use `etask-working-dir' to specify the working directory. See also `etask-write-logfile-p'. (defconst etask-logfile "etasklog" (#$ . 27080)) #@97 File name for the main control file. Use `etask-working-dir' to specify the working directory. (defconst etask-controlfile "etaskctrl" (#$ . 27261)) #@59 The draft Gantt charts begin date id in the control file. (defconst etask-ctrl-chartbegindate "chartbegindate" (#$ . 27417)) #@57 The draft Gantt charts end date id in the control file. (defconst etask-ctrl-chartenddate "chartenddate" (#$ . 27548)) #@56 The draft Gantt charts begin time id in the todo view. (defconst etask-ctrl-todoview-begintime "todobegintime" (#$ . 27673)) #@54 The draft Gantt charts end time id in the todo view. (defconst etask-ctrl-todoview-endtime "todoendtime" (#$ . 27804)) #@26 The current category id. (defconst etask-ctrl-currcategory "currcategory" (#$ . 27929)) #@22 The current item id. (defconst etask-ctrl-curritem "curritem" (#$ . 28023)) #@26 The online help flag id. (defconst etask-ctrl-onlinehelp "onlinehelp" (#$ . 28105)) #@60 The draft Gantt charts zoom factor id in the control file. (defconst etask-ctrl-zoomfactor "zoomfactor" (#$ . 28195)) #@59 The draft Gantt charts zoom modus id in the control file. (defconst etask-ctrl-zoommodus "zoommodus" (#$ . 28319)) #@64 The id for the current item in a category. Example: ***Cat*** (defconst etask-current-category-id "***" (#$ . 28440)) #@70 Prefix of files in `etask-working-dir' that store task related data. (defconst etask-tasks-filename "projects" (#$ . 28565)) #@70 Prefix of files in `etask-working-dir' that store todo related data. (defconst etask-todos-filename "todos" (#$ . 28696)) #@73 Prefix of files in `etask-working-dir' that store meeting related data. (defconst etask-events-filename "events" (#$ . 28824)) #@61 File name in `etask-working-dir' for task name suggestions. (defconst etask-tasklist-filename "tasklist" (#$ . 28957)) #@60 Number of lines needed to display task status information. (defconst etask-lines-taskstatus 17 (#$ . 29082)) #@58 Number of lines needed to display EtaskMode online help. (defconst etask-lines-help 17 (#$ . 29197)) #@76 Number of lines needed to display task status information and online help. (defconst etask-lines-except-tasklines (+ etask-lines-taskstatus etask-lines-help) (#$ . 29304)) #@30 Local keymap for etask mode. (defvar etask-mode-map nil (#$ . 29482)) #@23 *Initial online help. (defvar etask-helprequest-p t (#$ . -29558)) #@32 EtaskMode state communication. (defvar etask-state-var nil (#$ . 29631)) #@29 Current EtaskMode category. (defvar etask-stateid-currcat "currcat" (#$ . 29710)) #@34 Current EtaskMode category item. (defvar etask-stateid-curritem "currcatitem" (#$ . 29798)) #@31 Flag for active archive view. (defvar etask-stateid-archive "archive" (#$ . 29896)) #@21 Initial todo state. (defvar etask-stateid-todostate "todoinit" (#$ . 29986)) #@14 Zoom factor. (defvar etask-stateid-zoomfactor "zoomfactor" (#$ . 30069)) #@13 Zoom modus. (defvar etask-stateid-zoommodus "zoommodus" (#$ . 30148)) #@38 Display items up to specified level. (defvar etask-stateid-level "level" (#$ . 30224)) #@21 Maximum bar length. (defvar etask-stateid-maxbarlen "maxbarlen" (#$ . 30317)) #@48 Maximum task name length in draft Gantt chart. (defvar etask-stateid-maxtasklen "maxtasklen" (#$ . 30401)) #@25 The chart's start date. (defvar etask-stateid-chartstart "chartstart" (#$ . 30514)) #@23 The chart's end date. (defvar etask-stateid-chartend "chartend" (#$ . 30604)) #@25 The chart's start time. (defvar etask-stateid-chartstarttime "chartstarttime" (#$ . 30688)) #@23 The chart's end time. (defvar etask-stateid-chartendtime "chartendtime" (#$ . 30786)) #@56 If non-nil use business days, otherwise calendar days. (defvar etask-stateid-businessdays "bizdaysop" (#$ . 30878)) #@21 Remember last flag. (defvar etask-stateid-last-flag "lastflag" (#$ . 31000)) #@32 Kill ring for killed elements. (defvar etask-element-killring nil (#$ . 31083)) (byte-code "\204\270\301 \302\303\"\210\304\305\306#\210\304\307\310#\210\304\311\312#\210\304\313\314#\210\304\315\316#\210\304\317\320#\210\304\321\322#\210\304\323\324#\210\304\325\326#\210\304\327\330#\210\304\331\332#\210\304\333\334#\210\304\335\336#\210\304\337\340#\210\304\341\342#\210\304\343\344#\210\304\345\346#\210\304\347\350#\210\304\351\352#\210\304\353\352#\210\304\354\355#\210\304\356\357#\210\304\360\361#\210\304\362\363#\210\304\364\365#\210\304\366\367#\210\304\370\371#\210\304\372\373#\210\304\374\375#\210\304\376\377#\210\304\201@\201A#\210\304\201B\201C#\210\304\201D\201E#\210\304\201F\201G#\210\304\201H\201I#\210\304\201J\201K#\210\304\201L\201M#\210\304\201N\201O#\210\304\201P\201Q#\210\304\201R\201S#\210\304\201T\201U#\210\304\201V\201W#\210\304\201X\201Y#\210\304\201Z\201[#\210\304\201\\\201]#\210\304\201^\201_#\210\304\201`\201a#\210\304\201b\201c#\210\304\201d\201e#\210\304\201f\201g#\210\304\201h\201i#\210\304\201j\201k#\210\304\201l\201m#\210\304\201l\201n#\210\304\201l\201o#\210\304\201l\201p#\210\304\201l\201q#\210\304\201l\201r#\210\304\201s\201t#\210\304\201u\201v#\210\304\201w\201x#\210\304\201y\201z#\210\304\201{\201|#\210\304\201}\201~#\210\304\201\201\200#\210\304\201\201\201\202#\210\304\201\203\201\204#\210\304\201\205\201\206#\210\304\201\207\201\210#\210\304\201\211\201\212#\210\304\201\213\201\202#\210\304\201\214\201\204#\210\304\201\215\201\216#\210\304\201\217\201\220#\210\304\201\221\201\222#\210\304\201\223\201\224#\210\304\201\225\201\226#\210\304\201\227\201\230#\210\304\201\231\201\232#\210\304\201\233\201\234#\210\304\201\235\201\236#\210\304\201\237\201\240#\210\304\201\241\201\242#\210\304\201\243\201\244#\210\304\201\245\201\246#\210\304\201\247\201\250#\210\304\201\251\201\252#\210\304\201\253\201\254#\210\304\201\255\201\256#\210\304\201\257\201\260#\210\304\201\261\201\262#\210\304\201\263\201\264#\210\304\201\265\201\202#\210\304\201\266\201\204#\210\304\201\267\201\270#\210\304\201\271\201\202#\210\304\201\272\201\270#\210\304\201\273\201\204#\210\304\201\274\201\270#\210\304\201l\201\270#\210\304\201\275\201\270#\210\304\201\276\201\270#\210\304\201\277\201\270#\210\304\201\300\201\270#\210\304\201\301\201\270#\210\304\201\302\201\270#\210\201\303\201\304\201\305\201\306#\207" [etask-mode-map make-keymap suppress-keymap t define-key "i" etask-cat-insert-elements "r" etask-set-last-flag-again "X" etask-cat-show-elements "m" etask-cat-show-elements-with-help "E" etask-cat-edit-element "d" etask-set-flag-delete " " etask-kill-element "" etask-yank-element "a" etask-set-flag-archive "d" etask-toggle-dayunit "" etask-print-dayunit "pt" etask-set-flag-postpone-element "pb" etask-set-flag-postpone-begin "pd" etask-set-flag-postpone-duedate "ft" etask-set-flag-fwd-element "fb" etask-set-flag-fwd-begin "fd" etask-set-flag-fwd-duedate "l" etask-set-flag-link-elements "m" etask-set-mark " " "u" etask-unset-flag-and-mark "x" etask-execute-flagcmd "I" etask-cat-elementnotes "s" etask-cat-switch-item "a" etask-cat-admin-categories "A" etask-cat-toggle-archive "B" etask-set-new-chartbegindate "z" etask-zoom "" etask-scroll-chart-left-days "" etask-scroll-chart-right-days "\346" etask-scroll-chart-left-weeks "\342" etask-scroll-chart-right-weeks "\206" etask-scroll-chart-left-months "\202" etask-scroll-chart-right-months ">" etask-scroll-chart-end "<" etask-scroll-chart-begin "j" etask-todo-previous-hour "k" etask-todo-next-hour "J" etask-todo-first-hour "K" etask-todo-last-hour "." etask-scroll-to-current "," etask-scroll-to-taskdate "\225" etask-move-element-up "\204" etask-move-element-down "e" etask-cat-set-planned-effort "f" etask-set-fulltime-equivalence "T" etask-set-tracking-algorithm "b" etask-set-plannedbegin "%" etask-set-expended-effort-percent "=" etask-set-expended-effort-timeunits "+" etask-add-expended-effort-timeunits "-" etask-subtract-expended-effort-timeunits "" etask-forward-begindate etask-postpone-begindate etask-forward-duedate etask-postpone-duedate etask-forward-whole-task etask-postpone-whole-task "M" etask-toggle-all-marks "c" etask-toggle-critical-normal "h" etask-toggle-highrisk-normal "R" etask-generate-report "C" etask-generate-latex-gantt-chart "S" etask-cat-sort-elements "u" etask-undo "p" etask-previous-line "n" etask-next-line "P" etask-previous-line-samelevel "N" etask-next-line-samelevel "t" etask-goto-toplevel "" "" "\360" etask-goto-first-delimiter "\356" etask-goto-last-delimiter "g" etask-goto-elementline "1" etask-goto-elementline-1 "2" etask-goto-elementline-2 "3" etask-goto-elementline-3 "4" etask-goto-elementline-4 "5" etask-goto-elementline-5 "6" etask-goto-elementline-6 "7" etask-goto-elementline-7 "8" etask-goto-elementline-8 "9" etask-goto-elementline-9 "L" etask-set-language "w" etask-warranty "v" etask-version "?" etask-help "q" etask-quit "" etask-report-failure "" etask-submit-feedback "^" etask-adjust-frame-height [prior] [next] [left] etask-disabled-key [up] [right] [down] "\352" "\341" "\345" "" "" "\201" "\205" put etask-mode mode-class special] 4) #@33 Tell user that key is disabled. (defalias 'etask-disabled-key #[nil "\301\302\303\304\"\"\207" [etask-language error "%s" etask-lang-msg 1004] 5 (#$ . 36505)]) #@62 Major mode for managing your projects. Online Help: `C-h m' (defalias 'etask-mode #[nil "\306 \210\307\310\"\210\311\312 \210\313 \210\314\315\316\f!\210\317\320\321\322\"\323Q\324\325!\2031\2041\326 \210\327\330 \331\"\"\210\327!\330\"\331\"\"\210\327#\332\"\210\333$%\331#\210\334\335!\207" [etask-language etask-state-var major-mode mode-name etask-mode-map buffer-read-only kill-all-local-variables etask-lang-ix init nil etask-cat-create-cat-alist etask-proj-create-tasks-alist etask-mode "etask" use-local-map t ">> " etask-lang-msg 775 ": " featurep highlight-current-line highlight-current-line-minor-mode etask-state-set etask-get-control-item main "todoinit" etask-set-control-item run-hooks etask-mode-hook etask-statusheader etask-stateid-currcat etask-ctrl-currcategory etask-stateid-curritem etask-ctrl-curritem etask-stateid-todostate etask-ctrl-onlinehelp etask-helprequest-p] 5 (#$ . 36672)]) #@66 Print EtaskMode's version including copyright and warranty hint. (defalias 'etask-version #[nil "\302\303\304\"!\210\302 !\210\302\303\305\"!\207" [etask-language etask-release princ etask-lang-msg 900 901] 4 (#$ . 37609) nil]) #@48 Print (no) warranty to buffer '*No Warranty*'. (defalias 'etask-warranty #[nil "\301\220\302\303\304\"!\221\207" [etask-language "*No Warranty*" princ etask-lang-msg 905] 5 (#$ . 37845) nil]) #@59 Create help buffer with a brief description of EtaskMode. (defalias 'etask-help #[nil "\302\220\303\304\305\"!\210\303\304\306\"!\210\303\304\307\"!\210\303\304\310\"!\210\303\304\311\"!\210\303\304\312\"!\210\303\313\314\315\316!\"!\210\212 q\210\317 \210)\320 \221\207" [etask-language standard-output "*Help*" princ etask-lang-msg 910 911 912 913 914 915 format "\n\n\nEtaskMode: \n\n%s\n" substitute-command-keys "\\{etask-mode-map}" help-mode print-help-return-message] 6 (#$ . 38044) nil]) #@36 Manage your projects within Emacs. (defalias 'etask #[nil "\306\307\310\311 \312Q\313\"\210\314 !q\210\306\315 \210\316\317 \210\320 !\210\316\321 @\321 A@\322\f \"\323 \324 \210\325 !\210\203I\326 \204I\327 \202_\203X\330\331\332\"!\202_\333\331\334\"!.\207" [input etask-buffer buffer-read-only pop-up-windows currcatid curritem nil etask-log "EtaskMode started: " current-time-string "\n" init get-buffer-create erase-buffer t etask-mode buffer-disable-undo etask-cat-get-current-item etask-cat-is-item-p etask-cat-get-active-categories etask-all-states-update pop-to-buffer etask-cat-is-current-elementlist-empty-p etask-cat-show-elements etask-cat-switch-item etask-lang-msg 375 etask-cat-admin-categories 376 itemp activecats etask-language] 4 (#$ . 38552) nil]) #@54 Insert all element related files in a single buffer. (defalias 'etask-insert-all-files #[nil "\306  \307\310\311\312 \211A@)!\310\313\312 \211@)\314\"\310\311\312 \211AA@)!\260\315 !\316\316\"\316#\316\212\fq\210\317 \210db\210\316y\210\320\321\322 \"c\210db\210\316y\210\322 \211;\203h G\323V\203h\324 !\203h\325 !\210\2035@\"db\210\316y\210\320\326\327\"! \330\"!P#c\210db\210\316y\210 \330\"!P\211;\203\250 G\323V\203\250\324 !\203\250\325 !\210\331\"!\211\203.\332 @!#db\210\316y\210\320\333# \334\"#\"P#c\210db\210\316y\210 \334\"#\"P\211;\203\361 G\323V\203\361\324 !\203\361\325 !\210db\210\316y\210\320\335#\336\"#\"#c\210db\210\316y\210\336\"#\"\211;\203' G\323V\203'\324 !\203'\325 !\210 A\211\204\261A\211\204ldb\210\316y\210\337c\210\316y\210 $P%\203U\324 !\203U\325 !\210\340 \210)db\210\341\f!.\207" [catlist etask-working-dir date file buf itemlist etask-cat-get-active-categories "failure-report" "." number-to-string calendar-current-date calendar-month-name 3 find-file-noselect nil erase-buffer format "\n\n==> Main Ctrl:\nFile \"%s\"\n\n" etask-get-main-ctrl-filename 0 file-readable-p insert-file-contents "\n\n\n==> Category '%s':\nFile \"%s\"\n\n" etask-cat-get-catname etask-cat-get-catfilename etask-cat-get-itemlist etask-cat-trim-current-id "\n\n\n==> Item '%s':\nFile \"%s\"\n\n" etask-cat-get-itemfilename "\n\n==> '%s' Ctrl:\nFile \"%s\"\n\n" etask-get-item-ctrl-filename "\n\n" save-buffer insert-buffer-substring catid item etask-logfile etask-write-logfile-p] 10 (#$ . 39351)]) #@31 Submit feedback on EtaskMode. (defalias 'etask-submit-feedback #[nil "\301\302!\210\303 \210\304\305\306\211\211\211\307\310\"&\210eb\210\311\312!\210\313c\207" [etask-language require reporter delete-other-windows reporter-submit-bug-report "rene.mas@chello.at" nil etask-lang-msg 994 mail-position-on-field "Subject" "EtaskMode: "] 9 (#$ . 40927) nil]) #@28 Submit EtaskMode failures. (defalias 'etask-report-failure #[nil "\303\304!\210\305 \210\306\307\310\311\"\312\313\314\315\316\257\317\211\320\321 \"&\210\322\323!\211\203/db\210\324c\210\325\n!\210)\326 \210eb\210\327\330!\210\331c\207" [etask-release etask-language backtrace require reporter delete-other-windows reporter-submit-bug-report "rene.mas@chello.at" format "EtaskMode %s" emacs-version system-type window-system window-system-version features nil etask-lang-msg 990 get-buffer-create "*Backtrace*" "\n\n" insert-buffer-substring etask-insert-all-files mail-position-on-field "Subject" "EtaskMode: "] 10 (#$ . 41290) nil]) #@44 Increase or decrease current frame height. (defalias 'etask-adjust-frame-height-gnuemacs #[(&optional lines) "\303 \304Z\305 U\205P\306 \203\307 \305 Z\202\305 \307 Z\306 \2035\303 \310 !\2030 ^\2021\\\202F\303 \310 !\203D \305 ^\202EZ\311\312\313p!!\n\"*\207" [default lines amount frame-height 2 etask-get-window-currheight etask-window-too-small-p etask-get-window-minheight natnump set-frame-height window-frame get-buffer-window] 4 (#$ . 41937) "P"]) #@33 Set the language for EtaskMode. (defalias 'etask-set-language #[nil "\303\304\"\305\306 \307P\310\"!S8\311 \210\312\n!\210\313 )\207" [etasklang prompt etask-language etask-get-list-prompt t string-to-number etask-read " ? " #[(x) "\302!\303Y\205\302! GX\207" [x etasklang string-to-number 1] 2] etask-cat-create-cat-alist etask-set-calendar-language etask-cat-show-elements] 4 (#$ . 42415) nil]) #@36 Scroll to the current day or hour. (defalias 'etask-scroll-to-current #[nil "\300 \203\301 \207\302\303 !\207" [etask-todo-organizer-view-p etask-todo-current-hour etask-scroll-chart-to-day calendar-current-date] 2 (#$ . 42827) nil]) #@68 Scroll to begin or, if ENDP is non-nil, to end of current element. (defalias 'etask-scroll-to-taskdate #[(&optional endp) "\306 @\307 \211\205\n\203\310 \"\202\310 \f\"\311!\205bU\203Y\312 \204Y\313 !G\314 \315\316!\245!S\317!\203X\320V\203X\321 [\"+\322 !\205b\323 !+\207" [catid element endp etask-db-attr-taskend etask-db-attr-taskbegin date etask-cat-get-current-item etask-cat-get-current-element etask-db-get etask-cat-is-valid-catid-p etask-todo-organizer-view-p etask-todo-get-todostr etask-get-daylen ceiling float natnump 0 etask-add-days-to-date etask-calendardate-is-legal-p etask-scroll-chart-to-day etask-category-todoid todowidth daywidth corr] 4 (#$ . 43069) "P"]) #@30 Scroll near to current date. (defalias 'etask-scroll-chart-to-day #[(date) "\305!\306\n \"\307 C\nC\"\211\203\310 !\202\311 !+\207" [etask-stateid-chartstart currbegin date dist leftp etask-state-get etask-days-between calendar-date-compare etask-scroll-chart-left-days etask-scroll-chart-right-days] 4 (#$ . 43793)]) #@63 Scroll one day or, if DAYS is non-nil, DAYS days to the left. (defalias 'etask-scroll-chart-left-days #[(&optional days) "\301!\207" [days etask-scroll-chart-left] 2 (#$ . 44125) "p"]) #@64 Scroll one day or, if DAYS is non-nil, DAYS days to the right. (defalias 'etask-scroll-chart-right-days #[(&optional days) "\301!\207" [days etask-scroll-chart-right] 2 (#$ . 44317) "p"]) #@67 Scroll one week or, if WEEKS is non-nil, WEEKS weeks to the left. (defalias 'etask-scroll-chart-left-weeks #[(&optional weeks) "\301\302_!\207" [weeks etask-scroll-chart-left 7] 3 (#$ . 44512) "p"]) #@68 Scroll one week or, if WEEKS is non-nil, WEEKS weeks to the right. (defalias 'etask-scroll-chart-right-weeks #[(&optional weeks) "\301\302_!\207" [weeks etask-scroll-chart-right 7] 3 (#$ . 44718) "p"]) #@70 Scroll one month or, if MONTH is non-nil, MONTHS months to the left. (defalias 'etask-scroll-chart-left-months #[(&optional months) "\306!\211\211A@) \211@) \211AA@)\211\307_\f\\ \\\310\\\211\f\307\246T\f\307\245)\311\312 \f E\"!,\207" [etask-stateid-chartstart currentbegin date day mon year etask-state-get 12 -1 etask-scroll-chart-left etask-days-between months macro-y] 7 (#$ . 44927) "p"]) #@71 Scroll one month or, if MONTH is non-nil, MONTHS months to the right. (defalias 'etask-scroll-chart-right-months #[(&optional months) "\306!\211\211A@) \211@) \211AA@)\211\307_\f\\ [\\\310\\\211\f\307\246T\f\307\245)\311\312 \f E\"!,\207" [etask-ctrl-chartbegindate currentbegin date day mon year etask-get-control-item 12 -1 etask-scroll-chart-right etask-days-between months macro-y] 7 (#$ . 45342) "p"]) #@48 Scroll to begin if CTRL>1 or to end if CTRL<1. (defalias 'etask-scroll-chart-beginend #[(ctrl) "\306!\211\211A@) \211@) \211AA@) \250\205B \307V\2030\310\311 \312\"!\202B \307W\203A\313\311 \312\"!\202B\314,\207" [etask-stateid-chartstart currentbegin date day mon year etask-get-control-item 0 etask-scroll-chart-left etask-gantt-validate-scrolling max etask-scroll-chart-right nil ctrl] 5 (#$ . 45769)]) #@35 Scroll to the last category item. (defalias 'etask-scroll-chart-end #[nil "\300\301!\207" [etask-scroll-chart-beginend 1] 2 (#$ . 46199) nil]) #@36 Scroll to the first category item. (defalias 'etask-scroll-chart-begin #[nil "\300\301!\207" [etask-scroll-chart-beginend -1] 2 (#$ . 46348) nil]) #@301 Return max number of days between zero and DAYS that can be scrolled within the current category time frame. If DAYS is a negative integer scroll the chart to the right if possible. If MAX is non-nil, return max number of days not limited by DAYS. Then DAYS just controls the scrolling direction. (defalias 'etask-gantt-validate-scrolling #[(days &optional max) "\306 @\307!\205\323\310 \nU\204 U\203]\f\2038 \311V\2038\312!\313 !\314\"*\202\322\f\203W \311W\203W\312!\315 !\314\"*\202\322\316 !\202\322 \311V\203\226\312!\313 !\317CC\"\203\221\f\203\206\314\"\202\222 \314\"^\202\222\311*\202\322 \311W\203\321\312!\315 !\317CC\"\203\314\f\203\277\314\"\202\315\316 !\314\"^\202\315\311*\202\322\311))\207" [catid elements etask-category-todoid etask-category-eventid max days etask-cat-get-current-item etask-cat-is-valid-catid-p etask-cat-get-current-elts 0 etask-state-get etask-calculate-lastend etask-days-between etask-calculate-earliestbegin abs calendar-date-compare etask-stateid-chartend chartend projend etask-stateid-chartstart chartbegin projbegin] 4 (#$ . 46502)]) #@119 Scroll to the left by SLDAYS. If SLDAYS is after the end of the last category item scroll to this last item instead. (defalias 'etask-scroll-chart-left #[(sldays) "\306 \205|\307 @\310 \311 !\312 !\313\314\f! \"\315!\205{\250\204- \316V\203s\250\2057\317!\320\320\321!\205o\316V\205o\322\314\f!\"\322\314!\"\323\f\"\210\323\"\210\324 +\202{\325\326\327\330\"\"-\207" [catid elements projbegin projend etask-stateid-chartstart dist etask-interactive-preconditions etask-cat-get-current-item etask-cat-get-current-elts etask-calculate-earliestbegin etask-calculate-lastend etask-days-between etask-state-get etask-cat-is-valid-catid-p 0 etask-gantt-validate-scrolling nil natnump etask-add-days-to-date etask-state-set etask-cat-show-elements error "%s" etask-lang-msg 1009 sldays days newbegin newend etask-stateid-chartend etask-language] 5 (#$ . 47676)]) #@142 Scroll the draft Gantt chart to the right by SLDAYS. If SLDAYS earlier is before the first category item scroll to this first item instead. (defalias 'etask-scroll-chart-right #[(&optional sldays) "\306 \205\216\307 @\310 \311 !\312 !\313\314\f!\n\"\250\204' \315V\203\205\250\2052\316[!\317\317\320!\205\201\315V\205\201\321\314\f![\"\321\314![\"\322!\204r\323!\205\201U?\205\201\324\f\"\210\324\"\210\325 +\202\215\326\327\330\331 \"\"-\207" [catid elements projbegin projend etask-stateid-chartstart dist etask-interactive-preconditions etask-cat-get-current-item etask-cat-get-current-elts etask-calculate-earliestbegin etask-calculate-lastend etask-days-between etask-state-get 0 etask-gantt-validate-scrolling nil natnump etask-add-days-to-date etask-project-date-p etask-cat-is-valid-catid-p etask-state-set etask-cat-show-elements error "%s" etask-lang-msg 1010 sldays days newbegin newend etask-stateid-chartend etask-category-projectid etask-language] 5 (#$ . 48588)]) #@46 Set the begin date of the draft Gantt chart. (defalias 'etask-set-new-chartbegindate #[nil "\302 \205\303\304\305\306 \"!\"\210\307 \207" [etask-stateid-chartstart etask-language etask-interactive-preconditions etask-state-set etask-get-taskdate etask-lang-msg 290 etask-cat-show-elements] 6 (#$ . 49628) nil]) #@97 Return flag in LINE. If optional PROPERTIES is non-nil, then its text properties are included. (defalias 'etask-get-flag #[(line &optional properties) "`\303\304\n!\210\305y\210``\306\\{ b\210\307!*\207" [flag pos line nil etask-goto-line 0 2 etask-string-trim] 3 (#$ . 49948)]) #@172 Store current flags in list ((line flag)(line flag)...). If optional IGNORELIST, a list of positive integers, is non-nil then all line numbers in IGNORELIST are omitted. (defalias 'etask-store-flags #[(&optional ignorelist) "\303 \304\211\305V\203! \n\235\204 \306 \307\"DB S\211\202*\207" [flaglist l ignorelist etask-cat-get-elementnum nil 0 etask-get-flag properties] 5 (#$ . 50239)]) #@2  (defalias 'etask-restore-flags #[(flaglist) "`\306\211\211\306 \203/ @A@\211G @@\307!\210\310y\210\311 !\210\nc\210 A\211\204\312 b,\207" [line flaglen flag pos buffer-read-only flaglist nil etask-goto-line 0 delete-char t] 5 (#$ . 50644)]) #@63 Return true if FLAG is the only flag in `etask-flag-archive'. (defalias 'etask-is-flag-unique #[(flag) "\304\211\203\n@ \230\204 T\nA\211\204 \304U*\207" [etask-current-flags otherflags li flag 0] 3 (#$ . 50906)]) #@33 Return true if FLAG can be set. (defalias 'etask-is-flag-allowed #[(flag) "\305!\204\306!\204\307!\203\310!\207 \n\235?\205( \n\235?\205(\f\n\235?\207" [flag etask-flag-archive etask-current-flags etask-flag-delete etask-flag-link etask-is-flag-archive-p etask-is-flag-delete-p etask-is-flag-link-p etask-is-flag-unique] 2 (#$ . 51137)]) #@56 Return true if FLAG is the string `etask-flag-delete'. (defalias 'etask-is-flag-delete-p #[(flag) " \230\207" [flag etask-flag-delete] 2 (#$ . 51493)]) #@57 Return true if FLAG is the string `etask-flag-archive'. (defalias 'etask-is-flag-archive-p #[(flag) " \230\207" [flag etask-flag-archive] 2 (#$ . 51652)]) #@58 Return true if FLAG is the string `etask-flag-post-elt'. (defalias 'etask-is-flag-post-elt-p #[(flag) " \230\207" [flag etask-flag-post-elt] 2 (#$ . 51814)]) #@58 Return true if FLAG is the string `etask-flag-post-beg'. (defalias 'etask-is-flag-post-beg-p #[(flag) " \230\207" [flag etask-flag-post-beg] 2 (#$ . 51979)]) #@57 Return true if FLAG is the string `etask-flag-post-dd'. (defalias 'etask-is-flag-post-dd-p #[(flag) " \230\207" [flag etask-flag-post-dd] 2 (#$ . 52144)]) #@57 Return true if FLAG is the string `etask-flag-fwd-elt'. (defalias 'etask-is-flag-fwd-elt-p #[(flag) " \230\207" [flag etask-flag-fwd-elt] 2 (#$ . 52306)]) #@57 Return true if FLAG is the string `etask-flag-fwd-beg'. (defalias 'etask-is-flag-fwd-beg-p #[(flag) " \230\207" [flag etask-flag-fwd-beg] 2 (#$ . 52468)]) #@56 Return true if FLAG is the string `etask-flag-fwd-dd'. (defalias 'etask-is-flag-fwd-dd-p #[(flag) " \230\207" [flag etask-flag-fwd-dd] 2 (#$ . 52630)]) #@54 Return true if FLAG is the string `etask-flag-link'. (defalias 'etask-is-flag-link-p #[(flag) " \230\207" [flag etask-flag-link] 2 (#$ . 52789)]) #@54 Return true if FLAG is the string `etask-flag-mark'. (defalias 'etask-is-flag-mark-p #[(flag) " \230\207" [flag etask-flag-mark] 2 (#$ . 52942)]) #@55 Return true if FLAG is the string `etask-flag-empty'. (defalias 'etask-is-flag-empty-p #[(flag) " \230\207" [flag etask-flag-empty] 2 (#$ . 53095)]) #@2  (defalias 'etask-set-last-flag-again #[nil "\302!\211\205w\303 !\203\304 \202w\305 !\203\306 \202w\307 !\203)\310 \202w\311 !\2034\312 \202w\313 !\203?\314 \202w\315 !\203J\316 \202w\317 !\203U\320 \202w\321 !\203`\322 \202w\323 !\203k\324 \202w\325 !\203v\326 \202w\327)\207" [etask-stateid-last-flag flag etask-state-get etask-is-flag-delete-p etask-set-flag-delete etask-is-flag-archive-p etask-set-flag-archive etask-is-flag-post-elt-p etask-set-flag-postpone-element etask-is-flag-post-beg-p etask-set-flag-postpone-begin etask-is-flag-post-dd-p etask-set-flag-postpone-duedate etask-is-flag-fwd-elt-p etask-set-flag-fwd-element etask-is-flag-fwd-beg-p etask-set-flag-fwd-begin etask-is-flag-fwd-dd-p etask-set-flag-fwd-duedate etask-is-flag-link-p etask-set-flag-link-elements etask-is-flag-mark-p etask-set-mark nil] 3 (#$ . 53250) nil]) #@73 Execute commands according to current flags for all elements in buffer. (defalias 'etask-execute-flagcmd #[nil "\306 \307\310\211\211\211\311 \211\312 \210\n\313V\203\325\314\f!\315 !\204\313\316 !\2034\317 !\210\313\202\313\320 !\203C\321 !\210\313\202\313\322 !\203Q\323 \210\313\202\313\324 !\204\313\325\fC!\326 !\203l\327\330'!!\210\202\271\331 !\203|\332\330'!!\210\202\271\333 !\203\214\334\330'!!\210\202\271\335 !\203\234\336\330'!!\210\202\271\337 !\203\254\340\330'!!\210\202\271\341 !\203\271\342\330'!!\210\343\307!\210\nS\313V\203\307\344 \210\345!\210\fT\nS\211\202\346 !\210\344 \210\310\211(.\207" [flaglist cmd tmp elnum l currline etask-current-line 1 nil etask-cat-get-elementnum etask-goto-first-delimiter 0 etask-get-flag etask-is-flag-empty-p etask-is-flag-delete-p etask-execute-flagdelete etask-is-flag-archive-p etask-execute-flagarchive etask-is-flag-link-p etask-cat-link-elements etask-is-flag-mark-p etask-store-flags etask-is-flag-post-elt-p etask-postpone-whole-task etask-state-get etask-is-flag-post-beg-p etask-postpone-begindate etask-is-flag-post-dd-p etask-postpone-duedate etask-is-flag-fwd-elt-p etask-forward-whole-task etask-is-flag-fwd-beg-p etask-forward-begindate etask-is-flag-fwd-dd-p etask-forward-duedate etask-forward-line etask-cat-show-elements etask-restore-flags etask-goto-line etask-stateid-businessdays etask-current-flags] 7 (#$ . 54127) nil]) #@99 Delete elements in lines 1 to NUM with its delete flag set and return number of deleted elements. (defalias 'etask-execute-flagdelete #[(num) "\302eb\210\303 S!\210 \302V\203+\304\305\306 !!\203!T\307\310 !\210\311y\210 S\211\202 )\207" [deleted num 0 etask-forward-line etask-is-flag-delete-p etask-get-flag etask-current-line etask-cat-delete-element etask-cat-get-current-elementindex -1] 4 (#$ . 55582)]) #@63 Archive all elements in lines 1 to NUM with archive flag set. (defalias 'etask-execute-flagarchive #[(num) "\302eb\210 Sy\210 \302V\203-\303\304\305 !!\203#T\306 \210\307\310 !\210\311y\210 S\211\202\n)\207" [archived num 0 etask-is-flag-archive-p etask-get-flag etask-current-line etask-goto-toplevel etask-cat-archive-element etask-cat-get-current-elementindex -1] 4 (#$ . 56005)]) #@68 Set 'delete' flag for current element and all subelements at once. (defalias 'etask-set-flag-delete #[nil "\304 \2054\305!\2054\306 `\307\310\"\210\311 \"\210\312y\210 \313V\2031\307\310\"\210 S\312y\210\202\314 *\207" [etask-flag-delete subnum pos etask-stateid-last-flag etask-interactive-preconditions etask-is-flag-allowed etask-cat-get-subelement-num-after etask-set-flag ctrl etask-state-set 1 0 etask-goto-delimiter] 3 (#$ . 56403) nil]) #@83 Set 'archive' flag for current top level element and all its subelements at once. (defalias 'etask-set-flag-archive #[nil "\304 \205>\305!?\205>\306 !\205>\307\310 \210\311 \312 \313\"\210\314 \"\210\315y\210\n\316V\203;\312 \313\"\210\nS\315y\210\202'\317 )\207" [etask-stateid-archive etask-flag-archive subnum etask-stateid-last-flag etask-interactive-preconditions etask-state-get etask-is-flag-allowed nil etask-goto-toplevel etask-cat-get-subelement-num-after etask-set-flag ctrl etask-state-set 1 0 etask-goto-delimiter] 3 (#$ . 56866) nil]) #@47 Kill current element and all its subelements. (defalias 'etask-kill-element #[nil "\303 \304\305 !\210 G\nV\203\306 ! B\307 )\207" [currel etask-element-killring etask-element-killring-size etask-cat-get-current-element etask-cat-delete-element etask-cat-get-current-elementindex butlast etask-cat-show-elements] 2 (#$ . 57431) nil]) #@145 Insert the last killed element. If optional NUM is non-nil, insert the NUMth most recently killed element, where 1 is the last killed element. (defalias 'etask-yank-element #[(&optional num) "\303\304!\203\305V\203 8\202 @\306 \307#\204$\310\311\312\313\n\"\"\210\314 \207" [num etask-element-killring etask-language etask-cat-insert-element natnump 0 etask-cat-get-current-elementindex checkuniqueness error "%s" etask-lang-msg 1015 etask-cat-show-elements] 5 (#$ . 57778) "P"]) #@2  (defalias 'etask-set-flag-postpone-element #[nil "\303 \205\304!?\205\305 !\205\306 !\210\307\n \"\207" [etask-stateid-archive etask-flag-post-elt etask-stateid-last-flag etask-interactive-preconditions etask-state-get etask-is-flag-allowed etask-set-flag etask-state-set] 3 (#$ . 58274) nil]) #@2  (defalias 'etask-set-flag-postpone-begin #[nil "\303 \205\304!?\205\305 !\205\306 !\210\307\n \"\207" [etask-stateid-archive etask-flag-post-beg etask-stateid-last-flag etask-interactive-preconditions etask-state-get etask-is-flag-allowed etask-set-flag etask-state-set] 3 (#$ . 58581) nil]) #@2  (defalias 'etask-set-flag-postpone-duedate #[nil "\303 \205\304!?\205\305 !\205\306 !\210\307\n \"\207" [etask-stateid-archive etask-flag-post-dd etask-stateid-last-flag etask-interactive-preconditions etask-state-get etask-is-flag-allowed etask-set-flag etask-state-set] 3 (#$ . 58886) nil]) #@2  (defalias 'etask-set-flag-fwd-element #[nil "\303 \205\304!?\205\305 !\205\306 !\210\307\n \"\207" [etask-stateid-archive etask-flag-fwd-elt etask-stateid-last-flag etask-interactive-preconditions etask-state-get etask-is-flag-allowed etask-set-flag etask-state-set] 3 (#$ . 59192) nil]) #@2  (defalias 'etask-set-flag-fwd-begin #[nil "\303 \205\304!?\205\305 !\205\306 !\210\307\n \"\207" [etask-stateid-archive etask-flag-fwd-beg etask-stateid-last-flag etask-interactive-preconditions etask-state-get etask-is-flag-allowed etask-set-flag etask-state-set] 3 (#$ . 59493) nil]) #@2  (defalias 'etask-set-flag-fwd-duedate #[nil "\303 \205\304!?\205\305 !\205\306 !\210\307\n \"\207" [etask-stateid-archive etask-flag-fwd-dd etask-stateid-last-flag etask-interactive-preconditions etask-state-get etask-is-flag-allowed etask-set-flag etask-state-set] 3 (#$ . 59792) nil]) #@2  (defalias 'etask-set-flag-link-elements #[nil "\303 \205\304!?\205\305 !\205\306 !\210\307\n \"\207" [etask-stateid-archive etask-flag-link etask-stateid-last-flag etask-interactive-preconditions etask-state-get etask-is-flag-allowed etask-set-flag etask-state-set] 3 (#$ . 60092) nil]) #@2  (defalias 'etask-set-mark #[nil "\302 \205 \303!\210\304 \"\207" [etask-flag-mark etask-stateid-last-flag etask-interactive-preconditions etask-set-flag etask-state-set] 3 (#$ . 60392) nil]) #@38 Delete FLAG in `etask-current-flags' (defalias 'etask-delete-current-flag #[(flag) "\302 \"\211\207" [flag etask-current-flags delete] 3 (#$ . 60593)]) #@55 Delete both the mark of current element and its flag. (defalias 'etask-unset-flag-and-mark #[nil "\306 \205<\307 \310!\311 G\312\312\313 !\210\314y\210`\312\314y\210\315\n!\210\311 c\210\316 \210\315\317!\210\320 \210\321\317!\210\322\211-\207" [currline currflag len pos linewidth buffer-read-only etask-interactive-preconditions etask-current-line etask-get-flag etask-get-flagstring nil etask-delete-current-flag 0 delete-char etask-goto-delimiter 1 etask-insert-delimiter etask-forward-line t] 2 (#$ . 60753) nil]) #@171 Set both the mark of current element and FLAG. If optional CTRL is non-nil, then the caller takes care to put point at the correct position after setting flag and mark. (defalias 'etask-set-flag #[(flag &optional ctrl) "\306 \205J;\205JG\307V\205J\310 \311 G\312\307y\210`\312\307y\210\313\n!\210\314\n\315#\210 B\316 \210\313\317!\210\320\321!\210\204F\322\317!\210\323\211+\207" [flag pos len currline buffer-read-only etask-current-flags etask-interactive-preconditions 0 etask-current-line etask-get-flagstring nil delete-char etask-format-insert "left" etask-goto-delimiter 1 etask-insert-delimiter mark etask-forward-line t ctrl] 4 (#$ . 61289)]) #@31 Toggle the mark of all tasks. (defalias 'etask-toggle-all-marks #[nil "\303 \2050`\304 \305eb\210 X\203-\306\307!!\203#\310 \210\202&\311 \210T\211\202\nb+\207" [l lines pos etask-interactive-preconditions etask-cat-get-elementnum 1 etask-is-flag-empty-p etask-get-flag etask-set-mark etask-unset-flag-and-mark] 4 (#$ . 61966) nil]) #@90 Toggle flag that decides whether business days or calendar days are used for operations. (defalias 'etask-toggle-dayunit #[nil "\301!\203\302\303\"\210\202\302\304\"\210\305 \207" [etask-stateid-businessdays etask-state-get etask-state-set nil t etask-print-dayunit] 3 (#$ . 62318) nil]) #@106 Display message in minibuffer indicating whether business days or calendar days are used for operations. (defalias 'etask-print-dayunit #[nil "\302!\203 \303\304\305 \"!\207\303\304\306 \"!\207" [etask-stateid-businessdays etask-language etask-state-get princ etask-lang-msg 705 708] 4 (#$ . 62620) nil]) #@167 Set the status of the current task or, if there are marked tasks, the status of all marked tasks to 'PERCENT completed' according to values collected via minibuffer. (defalias 'etask-set-expended-effort-percent #[nil "\306 \205y\307!?\205y\310 \311\311\311 \203v\312 @! @\313 \"\211\314V\203]\315\316\317\320\313  \"!\"\"\321\322\"\"\323Q\324\"\325\326 #\327\313 \"\330 !\331\245_!#\f\"\210\202o\332\333\316\334\313  \"\"\321\335\"\"P\"\210 A\211\204\336 ,\207" [etask-stateid-archive editlist plannedeffort percent currix element etask-interactive-preconditions etask-state-get etask-get-ixlist-to-be-edited nil etask-cat-get-element etask-db-get 0 calendar-read format "'%s': " etask-shorten-string etask-lang-msg 110 " (0-100): " #[(x) "\302\303 !\"\205\f \304X\207" [etask-wholenumber-regexp x string-match prin1-to-string 100] 4] etask-cat-store-element etask-db-set etask-simplify-number float 100 error "%s" "'%s' -- " 1000 etask-cat-show-elements etask-db-attr-peffort etask-db-attr-taskname etask-longer-taskname-len-minibuf etask-language etask-db-attr-eeffort] 9 (#$ . 62934) nil]) #@319 Set the status of the current task or, if there are marked tasks, the status of all marked tasks, to 'TIME expended' according to values collected via minibuffer. TIME is a duration specified by the regexp `etask-effort-regexp'. For example, '12h' sets the expended effort to 12 hours, and '16d' sets it to 16 days. (defalias 'etask-set-expended-effort-timeunits #[nil "\306 \205j\307!?\205j\310 \311\311\311 \203g\312 @! @\313 \"\211\314V\203N\315\316 \n\317\320\"#\321\"\322\323  \324\325\326 \327\"!!#\f\"\210\202`\330\331\332\333\313 !\"\"\317\334\"P\"\210 A\211\204\335 ,\207" [etask-stateid-archive editlist plannedeffort time currix element etask-interactive-preconditions etask-state-get etask-get-ixlist-to-be-edited nil etask-cat-get-element etask-db-get 0 calendar-read etask-get-prompt-effort etask-lang-msg 140 #[(x) "\303\304 \305\"\"\205\306\304 \305\"!\nX\207" [etask-effort-regexp x plannedeffort string-match prin1-to-string t etask-extract-effort-hours] 5] etask-çat-store-element etask-db-set etask-simplify-number etask-extract-effort-hours prin1-to-string t error "%s" format "'%s' -- " 1000 etask-cat-show-elements etask-db-attr-peffort etask-language etask-db-attr-eeffort etask-db-attr-taskname] 10 (#$ . 64063) nil]) #@351 Add EFFORT to expended effort of current element or, if there are marked elements, of all marked elements according to values collected via minibuffer. EFFORT is the effort in business hours or days, specified by the regexp `etask-effort-regexp'. For example, the inputs '12h' or '16d' add 12 hours or 16 days to the expended effort, respectively. (defalias 'etask-add-expended-effort-timeunits #[nil "\306 \205t\307!?\205t\310 \311\311\311\311\311 \203p\312 @! @\313\"\313\"\314 \fZ! \fU\203F\315\202S\316\317 \320\321\"#\322\"\323\324\314\325\326\n\327\"!\f\\!#\"\210 A\211\204\330 .\207" [etask-stateid-archive editlist neweffort plannedeffort expendedeffort maxneweffort etask-interactive-preconditions etask-state-get etask-get-ixlist-to-be-edited nil etask-cat-get-element etask-db-get etask-simplify-number 0 calendar-read etask-get-prompt-effort etask-lang-msg 150 #[(x) "\304\305 \306\"\"\205\307\305 \306\"!\310\n Z!X\207" [etask-effort-regexp x plannedeffort expendedeffort string-match prin1-to-string t etask-extract-effort-hours etask-simplify-number] 5] etask-cat-store-element etask-db-set etask-extract-effort-hours prin1-to-string t etask-cat-show-elements currix element etask-db-attr-peffort etask-db-attr-eeffort etask-language] 10 (#$ . 65344) nil]) #@387 Subtract EFFORT from expended effort of current element or, if there are marked elements, from the expended efforts of all marked elements according to values collected via minibuffer. EFFORT is the effort in business hours or days, specified by the regexp `etask-effort-regexp'. For example, the inputs '12h' or '16d' reduce the expended effort by 12 hours or 16 days, respectively. (defalias 'etask-subtract-expended-effort-timeunits #[nil "\306 \205i\307!?\205i\310 \311\311\311 \203f\312 @! @\313 \"\313 \"\211\314V\203_ \314U\203>\314\202J\315\316 \f\317\320\"#\321\"\322\323 \324\f\325\326\n\327\"!Z!#\"\210 A\211\204\330 ,\207" [etask-stateid-archive editlist eeffort plannedeffort expendedeffort element etask-interactive-preconditions etask-state-get etask-get-ixlist-to-be-edited nil etask-cat-get-element etask-db-get 0 calendar-read etask-get-prompt-effort etask-lang-msg 160 #[(x) "\303\304 \305\"\"\205\306\304 \305\"!\nX\207" [etask-effort-regexp x expendedeffort string-match prin1-to-string t etask-extract-effort-hours] 5] etask-cat-store-element etask-db-set etask-simplify-number etask-extract-effort-hours prin1-to-string t etask-cat-show-elements currix etask-db-attr-peffort etask-db-attr-eeffort etask-language] 11 (#$ . 66671) nil]) #@171 Adjust the planned end date of the current task or, if there are marked tasks, the planned end date of all marked tasks according to FTE values collected via minibuffer. (defalias 'etask-set-fulltime-equivalence #[nil "\306 \205\325\307!?\205\325\310 @\311 \312\312\313 !\205\324 U\205\324\n\205\324\314\n@!\"\n@\315\"!\204\314\316\317\320\321\322\"#\"\"\323\324$\"\325Q\326\"!%\327\330\322\"&\"!%\245'\245!(\331\322\")\"!*\332\322\")\"*\"+\333+\334+!\203\213(\335W\203\213\336\202\263\334+!\204\244(\335W\203\244(\336V\203\244\335\202\263\334+!\203\261(S\202\263(\",\337\340\211\"-,#)+#\f\"\210\341 \210-\nA\211\204'\312,\207" [etask-stateid-archive catid editlist peffort currix etask-category-projectid etask-interactive-preconditions etask-state-get etask-cat-get-current-item etask-get-ixlist-to-be-edited nil etask-cat-is-valid-catid-p etask-cat-get-element etask-is-milestone-p string-to-number etask-read format "'%s': " etask-db-get etask-lang-msg 130 " ? " #[(x) "\303 \"\205\304 !\305V\205\304 !\nX\207" [etask-effort-numonly-regexp x etask-max-fte string-match string-to-number 0] 3] ceiling float etask-days-till-business-day etask-add-days-to-date etask-add-businessdays-to-date etask-businessday-p 1 0 etask-cat-store-element etask-db-set etask-cat-show-elements element etask-db-attr-taskname etask-language fte etask-db-attr-peffort etask-workinghours-per-day peffort-in-days-new etask-db-attr-taskbegin beginoffset begindate newtaskend etask-db-attr-taskend] 8 (#$ . 67971) nil]) #@102 Generate a detailed status report for all tasks or, if there are marked tasks, for all marked tasks. (defalias 'etask-generate-report #[nil "\306 \211\205\207\307 \310\311\312 \203\\\f\203\\\311\313\314\315\316\"\317\320\321 !RB B\322\323 !!\210\324!q\210\325\326 !\210db\210`eV\203G\327c\210 \203R\330 !\210\202V\330!\210\331 )\202\206\324!q\210\212\325\326 !\210db\210`eV\203t\327c\210 \203\330 !\210\202\203\330!\210\331 )+)\207" [tasklist task num markedtasks etask-allow-popup-frames-p frame-alist etask-cat-get-current-elts etask-cat-get-marked-elements 0 nil etask-multi-frame-p name "EtaskMode: --- " etask-lang-msg 700 " --- " calendar-date-string calendar-current-date select-frame make-frame get-buffer-create find-file etask-get-reportfile "\n\n\n\n\n" etask-insert-report-string save-buffer etask-language etask-report-buffer] 7 (#$ . 69539) nil]) #@130 Set begin of current element to a date provided via minibuffer. If the current element is a todo, then its due date is changed. (defalias 'etask-set-plannedbegin #[nil "\306 \205\246\307!?\205\246\310 @\310 A@\311 \312 \313\f \"\f\205\245\314 \n\"\205\245  U\203:\315\f!\202\236 !U\203H\316\f!\202\236 \"U\203\236\313\f#\"$\317\320\321\322%\"\"\323\324\325&\"Q\f\"'\326$C'C\"(\327$'\")(\203\221\330)\331)\f\332#\332#\202\235\333)\334)\f\332#\332#,\335\f \"\210\336 -\207" [etask-stateid-archive catid item currix elt etask-db-attr-taskname etask-interactive-preconditions etask-state-get etask-cat-get-current-item etask-cat-get-current-elementindex etask-cat-get-current-element etask-db-get etask-cat-civalid-p etask-todo-edit-duedate etask-ev-edit-begindate etask-get-taskdate format "'%s'" etask-shorten-string ": " etask-lang-msg 305 calendar-date-compare etask-business-days-between etask-start-n-days-later etask-finish-n-days-later business etask-finish-n-days-earlier etask-start-n-days-earlier etask-cat-store-element etask-cat-show-elements eltname etask-category-todoid etask-category-eventid etask-category-projectid etask-db-attr-taskbegin oldbegin etask-longer-taskname-len-minibuf etask-language begin postponep diff] 6 (#$ . 70432) nil]) #@263 Set begin of current task or, if there are marked tasks, the begin of all marked tasks to a date N days earlier according to values collected via minibuffer. If ALLDAYSP is nil, all days are valid days for this operation. Otherwise only business days are used. (defalias 'etask-forward-begindate #[(alldaysp) "\306 \205b\307!?\205b\310 @\310 A@\311\312!\313 \314 \n\"\205a U\205a \205a\315 @!\316\317\320\321\"#\322\f\313V\205L\323\f!#\324\325$\210 A\211\2040\326-\207" [etask-stateid-archive catid item editlist daysearlier alldaysp etask-interactive-preconditions etask-state-get etask-cat-get-current-item etask-get-ixlist-to-be-edited 1 0 etask-cat-civalid-p etask-cat-get-element etask-read etask-get-prompt-fwdrew etask-lang-msg 190 #[(x) "\303 \"\206 \303\n \"\207" [etask-wholenumber-regexp x etask-effort-dwm-regexp string-match] 3] number-to-string etask-write-element-to-fwd-date begin nil businessp etask-category-projectid element etask-language daysearlierstr] 7 (#$ . 71738) "P"]) #@251 Set begin of current task or, if there are marked tasks, of all marked tasks to a date N days later according to values collected via minibuffer. If ALLDAYSP is nil, all days are valid days for this operation. Otherwise only business days are used. (defalias 'etask-postpone-begindate #[(alldaysp) "\306 \205j\307 @\307 A@\310\311!\312\f\313 \"\205iU\205i\n\205i\314\n@!\315\311 #\203[\316\317\320\321\" #\322 \312V\205L\323 !#\324\325 $\210\202a\326\327 !!\210\nA\211\204(\330-\207" [catid item editlist dayslater alldaysp businessp etask-interactive-preconditions etask-cat-get-current-item etask-get-ixlist-to-be-edited 1 0 etask-cat-civalid-p etask-cat-get-element etask-postpone-begindate-opvalid-p etask-read etask-get-prompt-fwdrew etask-lang-msg 200 #[(x) "\305 \"\204\305\n \"\205\306 \307 !\f#\207" [etask-wholenumber-regexp x etask-effort-dwm-regexp element businessp string-match etask-postpone-begindate-opvalid-p string-to-number] 4] number-to-string etask-write-element-to-postp-date begin error etask-postpone-begindate-errormsg nil etask-category-projectid element etask-language dayslaterstr] 7 (#$ . 72777) "P"]) #@266 Set end of current task or, if there are marked tasks, of all marked tasks to a date N days before its current end according to values collected via minibuffer. If ALLDAYSP is nil, all days are valid days for this operation. Otherwise only business days are used. (defalias 'etask-forward-duedate #[(alldaysp) "\306 \205r\307 @\307 A@\310\311!\312\313 \314 \"\205pU\205p\n\205p\315\n@!\316\311#\203a\317\320\321\322\"#\323\f\313V\205Q\324\f!#\325\312$\210\202h\326\327!!\210\nA\211\204+\312.\207" [catid item editlist opvalidp daysearlier alldaysp etask-interactive-preconditions etask-cat-get-current-item etask-get-ixlist-to-be-edited 1 nil 0 etask-cat-civalid-p etask-cat-get-element etask-forward-duedate-opvalid-p etask-read etask-get-prompt-fwdrew etask-lang-msg 210 #[(x) "\305 \"\204\305\n \"\205\306 \307 !\f#\207" [etask-wholenumber-regexp x etask-effort-dwm-regexp element businessp string-match etask-forward-duedate-opvalid-p string-to-number] 4] number-to-string etask-write-element-to-fwd-date error etask-forward-duedate-errormsg businessp etask-category-projectid element etask-language daysearlierstr] 7 (#$ . 73954) "P"]) #@249 Set end of current task or, if there are marked tasks, of all marked tasks to a date N days later according to values collected via minibuffer. If ALLDAYSP is nil, all days are valid days for this operation. Otherwise only business days are used. (defalias 'etask-postpone-duedate #[(alldaysp) "\306 \205X\307 @\307 A@\310\311!\312\f\313 \"\205WU\205W\n\205W\314\n@!\315\316\317\320\" #\321 \312V\205C\322 !#\323\324 $\210\nA\211\204(\324-\207" [catid item editlist dayslater alldaysp businessp etask-interactive-preconditions etask-cat-get-current-item etask-get-ixlist-to-be-edited 1 0 etask-cat-civalid-p etask-cat-get-element etask-read etask-get-prompt-fwdrew etask-lang-msg 220 #[(x) "\303 \"\206 \303\n \"\207" [etask-wholenumber-regexp x etask-effort-dwm-regexp string-match] 3] number-to-string etask-write-element-to-postp-date nil etask-category-projectid element etask-language dayslaterstr] 7 (#$ . 75151) "P"]) #@230 Forward current task or, if there are marked tasks, all marked tasks by N days according to values collected via minibuffer. If ALLDAYSP is nil, all days are valid days for this operation. Otherwise only business days are used. (defalias 'etask-forward-whole-task #[(alldaysp) "\306 \205<\307\310!\311\n\205;\312@!\313\314\f\315\316 \" #\317 \311V\205)\320 !#\321\f #\210A\211\204\322+\207" [editlist daysearlier alldaysp businessp element etask-language etask-interactive-preconditions etask-get-ixlist-to-be-edited 1 0 etask-cat-get-element etask-read etask-get-prompt-fwdrew etask-lang-msg 230 #[(x) "\303 \"\206 \303\n \"\207" [etask-wholenumber-regexp x etask-effort-dwm-regexp string-match] 3] number-to-string etask-write-element-to-forward nil daysearlierstr] 7 (#$ . 76114) "P"]) #@231 Postpone current task or, if there are marked tasks, all marked tasks by N days according to values collected via minibuffer. If ALLDAYSP is nil, all days are valid days for this operation. Otherwise only business days are used. (defalias 'etask-postpone-whole-task #[(alldaysp) "\306 \205<\307\310!\311\n\205;\312@!\313\314\f\315\316 \" #\317 \311V\205)\320 !#\321\f #\210A\211\204\322+\207" [editlist dayslater alldaysp businessp element etask-language etask-interactive-preconditions etask-get-ixlist-to-be-edited 1 0 etask-cat-get-element etask-read etask-get-prompt-fwdrew etask-lang-msg 240 #[(x) "\303 \"\206 \303\n \"\207" [etask-wholenumber-regexp x etask-effort-dwm-regexp string-match] 3] number-to-string etask-write-element-to-postpone nil dayslaterstr] 7 (#$ . 76930) "P"]) #@221 Set tracking algorithm for current task or, if there are marked tasks, for all marked tasks according to values collected via minibuffer. See `etask-tracking-algorithms' for more information about available algorithms. (defalias 'etask-set-tracking-algorithm #[nil "\306 @\306 A@\307 \205`\310\n!?\205`\311 \"\205` U\205`\312\313\314\f\"\315P \316\317$\320 \316\203]\321@!@\322\323#\"\210A\211\204;\324 +*\207" [item catid etask-stateid-archive etask-category-projectid etask-language etask-tracking-algorithms-alist etask-cat-get-current-item etask-interactive-preconditions etask-state-get etask-cat-civalid-p completing-read etask-lang-msg 250 " ? " nil t etask-get-ixlist-to-be-edited etask-cat-get-element etask-cat-store-element etask-db-set etask-cat-show-elements algorithm editlist currix element etask-db-attr-tracking] 6 (#$ . 77745) nil]) #@90 Toggle critical flag of current task or, if there are marked tasks, of all marked tasks. (defalias 'etask-toggle-critical-normal #[nil "\303 \205\304!?\205\305\306 \n\307$\207" [etask-stateid-archive etask-db-attr-tasktype etask-criticaltask-string etask-interactive-preconditions etask-state-get etask-toggle-attribute etask-db-set #[(task) "\300\207" [t] 1]] 5 (#$ . 78642) nil]) #@91 Toggle high risk flag of current task or, if there are marked tasks, of all marked tasks. (defalias 'etask-toggle-highrisk-normal #[nil "\303 \205\304!?\205\305\306 \n\307$\207" [etask-stateid-archive etask-db-attr-tasktype etask-highrisktask-string etask-interactive-preconditions etask-state-get etask-toggle-attribute etask-db-set #[(task) "\300\207" [t] 1]] 5 (#$ . 79035) nil]) #@182 Moves the current top element and all its subelements one line up -- if it is not already at the top -- or, if DOWN is non-nil, one line down -- if it is not already at the bottom. (defalias 'etask-move-element-up #[(&optional down) "\304 \205H\305 @\306C!\307 \204\310V\204% \203>\311 W\203> \2030TC\2024SC\312C!\210\313 \n\"\210\314 \210\315\n!\210\314 +\207" [movepos moveel moveix down etask-interactive-preconditions etask-cat-get-current-elementindex etask-cat-get-element nil 1 etask-cat-get-topelementnum etask-cat-delete-element etask-cat-store-element etask-cat-show-elements etask-cat-goto-elementindex] 3 (#$ . 79430) nil]) #@81 Move the task under cursor one line down -- if it is not already at the bottom. (defalias 'etask-move-element-down #[nil "\300\301!\207" [etask-move-element-up down] 2 (#$ . 80091) nil]) #@240 Set chart's begin date and its end date. If optional ALL is non-nil all elements of current category are to be displayed. If optional ALL is nil, then the caller ensures that the chart's begin date and its zoom factor are set correctly. (defalias 'etask-set-chartdates #[(&optional all) "\203\306 \307\n\310 !\"\210\307 \311 !\")\207\312\f!\312\f! \312\n!\313  #\307 \",\207" [all elts etask-stateid-chartstart etask-stateid-chartend etask-stateid-zoomfactor zoom etask-cat-get-current-elts etask-state-set etask-calculate-earliestbegin etask-calculate-lastend etask-state-get etask-get-chartdate-end etask-stateid-maxbarlen maxbarlen chartstart chartend] 4 (#$ . 80285)]) #@42 Set chart's begin time and its end time. (defalias 'etask-set-charttimes #[nil "\305 \203#\203\306 \307\310 !\"\210\202\306 \n\"\210\306 \311 !\312 \\\"\207\313 \2032\306 \n\"\210\306 \f\"\207\314 !\210\314 !\207" [etask-todo-day-begin-near-now-p etask-stateid-chartstarttime etask-first-workinghour etask-stateid-chartendtime etask-last-workinghour etask-todo-organizer-view-p etask-state-set etask-todo-validate-begintime etask-todo-get-current-hour etask-state-get etask-todo-get-hrnum etask-todo-unit-is-hr-p etask-state-clear] 4 (#$ . 80982)]) #@2  (defalias 'etask-zoom-readminibuffer #[nil "\301\302\303\"\304\305\302\306\"\307\310\302\311\"\307\312\302\313\"\307\314\302\315\"\307\316\302\317\"\307\320\302\317\"\321\322\260\323\"\207" [etask-language etask-read etask-lang-msg 312 ": [" "a=" 308 ", " "w=" 311 "d=" 309 "p=" 310 "2=2 " 706 "3=3 " ", ..." "] ? " #[(x) "\302\230\206\303\230\206\304\230\206\305\230\206\306 \"\207" [x etask-wholenumber-regexp "a" "w" "d" "p" string-match] 3]] 22 (#$ . 81543)]) #@106 Zoom draft Gantt chart. If optional ZOOMFACTOR is non-nil it controls the width of a day in characters. (defalias 'etask-zoom #[(&optional zoomfactor) "\306 \307V\205\354\310 \311 !\203 \307U\203\312!\202O\311 !\203, Y\203, \202O ;\203M\n\313\230\204I\n\314\230\204I\n\315\230\204I\n\316\230\203M \202O\317 \211;\203\304\320 \n\313\230\203m\321\f\313\"\210\322 \313\"\210\202\303\n\314\230\203\204 \323\245\321\f\314\"\210\322 \314\"\210\202\303\n\315\230\203\231 \321\f\315\"\210\322 \315\"\210\202\303\n\316\230\203\264 \321\f\316\"\210\321\324\"\210\322 \316\"\210\202\303 \325\n!\245\326\f!\210\322 \327\"\210)\321\n\"\210\322\n\"\210\n\307U\204\334\nU\203\343\330\331!\210\202\346\330 \210\332 \210\333 *\207" [allowed zoomfactor zoom len etask-stateid-zoommodus etask-ctrl-zoommodus buffer-size 0 etask-zoom-allowed natnump floor "a" "w" "d" "p" etask-zoom-readminibuffer etask-get-maxbarlen etask-state-set etask-set-control-item 7 "todoinit" string-to-number etask-state-clear "" etask-set-chartdates displayall etask-set-charttimes etask-cat-show-elements etask-stateid-todostate etask-stateid-zoomfactor etask-ctrl-zoomfactor] 4 (#$ . 82037) nil]) #@35 Quit etask and delete its window. (defalias 'etask-quit #[nil "\301 \210\302\303\304 \305Q\306\307#\210\310 \210\311 \203\312!\207\313 \207" [etask-buffer etask-states-save etask-log "etask exit: " current-time-string "\n" nil exit bury-buffer one-window-p delete-windows-on delete-window] 4 (#$ . 83247) nil]) #@66 Migrate tasks file (release 0.1.xx to project file (rel. 0.2.xx) (defalias 'etask-migrate-01-02 #[nil "\306\307\310\311 \"\312P\313\"!\306\307\310\314 \"\312P\315\"! ;\203\221 G\316V\203\221\n;\203\221\nG\316V\203\221\317 !\203\221 \320\f\n\"P\211;\203\206G\316V\203\206\321\322 \323#\210\324\f\n\"\325\211 \203z\326 @!\n#B A\211 \204d\327\237\f\n\330$+\202\215\331\332\310\333 \"\")\202\246\317 !\204\237\331\332\310\334 \"\"\210\331\332\310\333 \"\"+\207" [etask-category-projectid etask-language projname tfile catid etask-working-dir etask-string-trim etask-read etask-lang-msg 790 " ? " #[(x) "\301\302\"\207" [x string-match "^[ \\/.~a-zA-Z0-9_?!-]+$"] 3] 410 #[(x) "\301\302\"\207" [x string-match "^[ a-zA-Z0-9_?!-]+$"] 3] 0 file-readable-p etask-cat-get-itemfilename "no project" copy-file 1 etask-cat-get-elementlist nil etask-db-set etask-write-elements erase error "%s" 1014 1013 pfile oldprojname newelements elements etask-db-attr-projname] 8 (#$ . 83567) nil]) #@68 Move point forward according to `forward-line' and goto delimiter. (defalias 'etask-forward-line #[(num) "y\210\301 \207" [num etask-goto-delimiter] 1 (#$ . 84589)]) #@85 Move point forward from (point-min) according to `forward-line' and goto delimiter. (defalias 'etask-goto-line #[(num) "\301!\205\302V\205eb\210\303S!\207" [num natnump 0 etask-forward-line] 2 (#$ . 84762)]) #@122 Set cursor position to the delimiter of the element queried via minibuffer, or, if NUM is non-nil, of the NUMth element. (defalias 'etask-goto-elementline #[(&optional num) "\305 \306V\205X\307 \310 @\311 !t\203;\312 !\203( \313W\204( V\203;\314\315\316\f\"\317\n\320\n\321\322T\"\260\323\" \306V\205W X\205W\214~\210\324 !\210t\205V\325\326 !)+\207" [elementnum catid elementname num etask-language buffer-size 0 etask-cat-get-elementnum etask-cat-get-current-item etask-cat-get-catelementname natnump 1 calendar-read etask-lang-msg 280 " " " (0 < " format " < %d): " #[(x) "\302!\205\303V\205 TW\207" [x elementnum natnump 0] 2] etask-goto-line etask-cat-show-elementstatus etask-cat-get-current-elementindex] 9 (#$ . 84984) nil]) #@74 Set cursor position to pos `taskname-taskbar-delimiter' of the 1st task. (defalias 'etask-goto-elementline-1 #[nil "\300 \301V\205\n\302\303!\207" [buffer-size 0 etask-goto-elementline 1] 2 (#$ . 85746) nil]) #@74 Set cursor position to pos `taskname-taskbar-delimiter' of the 2nd task. (defalias 'etask-goto-elementline-2 #[nil "\300 \301V\205\n\302\303!\207" [buffer-size 0 etask-goto-elementline 2] 2 (#$ . 85962) nil]) #@74 Set cursor position to pos `taskname-taskbar-delimiter' of the 3th task. (defalias 'etask-goto-elementline-3 #[nil "\300 \301V\205\n\302\303!\207" [buffer-size 0 etask-goto-elementline 3] 2 (#$ . 86178) nil]) #@74 Set cursor position to pos `taskname-taskbar-delimiter' of the 4th task. (defalias 'etask-goto-elementline-4 #[nil "\300 \301V\205\n\302\303!\207" [buffer-size 0 etask-goto-elementline 4] 2 (#$ . 86394) nil]) #@74 Set cursor position to pos `taskname-taskbar-delimiter' of the 5th task. (defalias 'etask-goto-elementline-5 #[nil "\300 \301V\205\n\302\303!\207" [buffer-size 0 etask-goto-elementline 5] 2 (#$ . 86610) nil]) #@74 Set cursor position to pos `taskname-taskbar-delimiter' of the 6th task. (defalias 'etask-goto-elementline-6 #[nil "\300 \301V\205\n\302\303!\207" [buffer-size 0 etask-goto-elementline 6] 2 (#$ . 86826) nil]) #@74 Set cursor position to pos `taskname-taskbar-delimiter' of the 7th task. (defalias 'etask-goto-elementline-7 #[nil "\300 \301V\205\n\302\303!\207" [buffer-size 0 etask-goto-elementline 7] 2 (#$ . 87042) nil]) #@74 Set cursor position to pos `taskname-taskbar-delimiter' of the 8th task. (defalias 'etask-goto-elementline-8 #[nil "\300 \301V\205\n\302\303!\207" [buffer-size 0 etask-goto-elementline 8] 2 (#$ . 87258) nil]) #@74 Set cursor position to pos `taskname-taskbar-delimiter' of the 9th task. (defalias 'etask-goto-elementline-9 #[nil "\300 \301V\205\n\302\303!\207" [buffer-size 0 etask-goto-elementline 9] 2 (#$ . 87474) nil]) #@148 Set cursor position to next delimiter pos `taskname-taskbar-delimiter'. If there is no delimiter after current position go to the last delimiter. (defalias 'etask-goto-delimiter #[nil "\301 \302V\205\302y\210\303\304\305#\203`Sb\207\306 \207" [etask-delimiter-regexp buffer-size 0 re-search-forward nil t etask-goto-last-delimiter] 4 (#$ . 87691)]) #@68 Set cursor position to the first `taskname-taskbar-delimiter' pos. (defalias 'etask-goto-first-delimiter #[nil "\301 \302V\205\303\304\305#\204t\203\306\307!\210\310 \207" [etask-delimiter-regexp buffer-size 0 re-search-backward nil t etask-cat-show-elementstatus (1) etask-goto-delimiter] 4 (#$ . 88052) nil]) #@250 Set cursor position to the last `taskname-taskbar-delimiter' pos. Used to circle when navigating with 'p'. Returns number of line-forwards. If current position is after the last delimiter, function sets cursor over last delimiter and returns -1. (defalias 'etask-goto-last-delimiter #[nil "\304 \305V\205I\305\306 \307  W\203*\310 \311\312#\203#\nT\202`Sb\210\202> V\203;\313 \311\312#\210\314\202>\315 \210t\203G\316\317 !\210\n+\207" [currline elnum stepcounter etask-delimiter-regexp buffer-size 0 etask-cat-get-elementnum etask-current-line re-search-forward nil t re-search-backward -1 etask-goto-delimiter etask-cat-show-elementstatus etask-cat-get-current-elementindex] 4 (#$ . 88377) nil]) #@305 Move cursor to previous line over `taskname-taskbar-delimiter'. If point is already at the beginning, i.e. over the first delimiter, the function sets the cursor over the last delimiter - but if one or more tasks at the beginning are ivsisible because of narrowing the cursor's position stays the same. (defalias 'etask-previous-line #[nil "\301 \302V\205/\214~\210\303 \211\304V\203'\305 X\203'\306y\210\307 \210\310\311 !\202.\312 \210\310\311 !*\207" [currline buffer-size 0 etask-current-line 1 etask-cat-get-elementnum -1 etask-goto-delimiter etask-cat-show-elementstatus etask-cat-get-current-elementindex etask-goto-last-delimiter] 3 (#$ . 89101) nil]) #@299 Move cursor to the next line over `taskname-taskbar-delimiter'. If point is already at the bottom, i.e. over the last delimiter, the function sets the cursor over the first delimiter - but if one or more tasks at the bottom are ivsisible because of narrowing the cursor's position stays the same. (defalias 'etask-next-line #[nil "\300 \301V\205)\302 \210\214~\210\303 \304 W\203\"\305y\210\302 \210\306\307 !\202(\310 \210\306\311!)\207" [buffer-size 0 etask-goto-delimiter etask-current-line etask-cat-get-elementnum 1 etask-cat-show-elementstatus etask-cat-get-current-elementindex etask-goto-first-delimiter (1)] 2 (#$ . 89775) nil]) #@142 Move point to the previous (sub)element with the same level within the current main element. Do not move if there is no such other element. (defalias 'etask-previous-line-samelevel #[nil "\301 \211\302V\205\303 \210S\211\202)\207" [lines etask-cat-get-elementnum-samelevel-before 0 etask-previous-line] 3 (#$ . 90424) nil]) #@138 Move point to the next (sub)element with the same level within the current main element. Do not move if there is no such other element. (defalias 'etask-next-line-samelevel #[nil "\301 \211\302V\205\303 \210S\211\202)\207" [lines etask-cat-get-elementnum-samelevel-after 0 etask-next-line] 3 (#$ . 90763) nil]) #@99 Move point to the current element's top level. Do not move if point is already at the top level. (defalias 'etask-goto-toplevel #[nil "\302 \211G\303U\203\304\202\305 \211\304V\205!\306 \210 S\211\202*\207" [level lines etask-cat-get-current-elementindex 1 0 etask-cat-get-elementnum-currenttop etask-previous-line] 3 (#$ . 91088) nil]) #@34 Undo the last NUMBER operations. (defalias 'etask-undo #[(number) "\302 \303V\205\304 rq\210\305 !\210)\306 )\207" [taskbuffer number buffer-size 0 etask-cat-get-current-itembuffer undo etask-cat-show-elements] 2 (#$ . 91442) "P"]) #@88 Return string for minibuffer query. TASK begin or end date is forwarded or postponed. (defalias 'etask-get-prompt-fwdrew #[(task msg businessp) "\306\307\310\311 \"\n\"\" \f\205\312\313\314 \"\315Q\316R\207" [task etask-db-attr-taskname etask-longer-taskname-len-minibuf msg businessp etask-language format "'%s': " etask-shorten-string etask-db-get " (" etask-lang-msg 705 ")" ": "] 6 (#$ . 91684)]) #@191 Return string for minibuffer query. Effort entered for TASK must not exceed MAX hours. Constraints included in string. 'NAME': MSG (constraints) Constraints example: (<= 140h, 20d, 4w) (defalias 'etask-get-prompt-effort #[(task max msg) "\306\307\310\311 \"\n\"\" \306\312\313\f!\"\f Y\205%\314\306\315\313\316\317\f! \245!!\"P\f Y\205<\314\306\320\313\316\317\f! _\245!!\"P\321\260\207" [task etask-db-attr-taskname etask-longer-taskname-len-minibuf msg max etask-workinghours-per-day format "'%s': " etask-shorten-string etask-db-get " (<= %sh" number-to-string ", " "%sd" etask-simplify-number float "%sw" "): " etask-workingdays-per-week] 12 (#$ . 92096)]) #@55 Return maximum task name length in draft Gantt chart. (defalias 'etask-get-maxtasklen #[nil "\305!\306 !\203 \nG\\\202\307\f\310 G\311 G\\\312\313\314!!\\ \\^*\207" [etask-stateid-level level etask-subelements-prefix w etask-max-taskname-len-chart etask-state-get natnump 0 etask-get-infostring etask-get-subelstring etask-longest-string-in-list etask-cat-get-current-elts name] 5 (#$ . 92774)]) #@43 Return maximum task bar length in [0..n]. (defalias 'etask-get-maxbarlen #[nil "\300 \301 GZ\302 GZ\303 GZ\304 Z\305Z\306]\207" [window-width etask-get-flagstring etask-get-infostring etask-get-subelstring etask-get-maxtasklen 2 0] 2 (#$ . 93183)]) #@47 Return a list with all tasknames in TASKLIST. (defalias 'etask-get-tasknames-list #[(tasklist) "\205\302@ \"\303A!B\207" [tasklist etask-db-attr-taskname etask-db-get etask-get-tasknames-list] 3 (#$ . 93438)]) #@38 Return the EtaskMode control buffer. (defalias 'etask-get-main-ctrl-buffer #[nil "\300\301 !\207" [find-file-noselect etask-get-main-ctrl-filename] 2 (#$ . 93659)]) #@41 Return the EtaskMode control file name. (defalias 'etask-get-main-ctrl-filename #[nil " P\207" [etask-working-dir etask-controlfile] 2 (#$ . 93830)]) #@113 Return the current item control file buffer or, if CATID and ITEM are valid, return ITEM's control file buffer. (defalias 'etask-get-item-ctrl-buffer #[(&optional catid item) "\303 \"\211;\205\nG\304V\205\305\n!)\207" [catid item filename etask-get-item-ctrl-filename 0 find-file-noselect] 4 (#$ . 93988)]) #@109 Return the current item control file name or, if CATID and ITEM are valid, return ITEM's control file name. (defalias 'etask-get-item-ctrl-filename #[(&optional catid item) "\203\202 \305 @ \203\306 !\202\306\305 A@!\307 \" \n\310\fR+\207" [catid item filename etask-working-dir etask-controlfile etask-cat-get-current-item etask-cat-trim-current-id etask-cat-get-itemfilename "."] 4 (#$ . 94308)]) #@138 Set CTRL item in current project control file to VALUE. If optional MAIN is non-nil then CTRL is set to VALUE in EtaskMod control file. (defalias 'etask-set-control-item #[(ctrl value &optional main) ";\2055 \203\304 \202\305 \211\2054r\nq\210eb\210\306!\210eb\210\307 Dp\"\210l\2041\310c\210\311 ))\207" [ctrl main buffer value etask-get-main-ctrl-buffer etask-get-item-ctrl-buffer flush-lines prin1 "\n" save-buffer] 4 (#$ . 94727)]) #@562 Return the value of CTRL in current project control file. If VALUE not available return the following default values: etask-ctrl-chartbegindate: project begin date or, if nil, today etask-ctrl-chartenddate: project end date or, if nil, etask-ctrl-chartbegindate etask-ctrl-zoomfactor: 0 ( Note: Maximum = (etask-get-maxbarlen) ) etask-ctrl-todoview-begintime: etask-todo-day-begin etask-ctrl-todoview-endtime: nil etask-ctrl-currcategory: nil etask-ctrl-curritem: nil etask-ctrl-zoommodus: nil etask-ctrl-onlinehelp: nil default: nil (defalias 'etask-get-control-item #[(ctrl &optional main) ";\205\306 \203\307 \202\310 \n\205r\nq\210eb\210\311\306\312#\2038\313\314\224\315Z\316\317!\"\320\f!@A@)) \230\203g\321  G\314V\203N \202c\322!\323!\203`\202b\324 ))\202\230\203\230\321  G\314V\203} \202\224\325!\323!\203\217\202\223\326 \"))\202\230\203\256\327 !\203\251 \202\202\230\203\277\327 !\205 \202\230\203\320\327 !\205 \202 \230\203\340 ;\205 \202!\230\203\357 \205 \202\"\230\203\377 ;\205 \202#\230\203\327 !\203 \330 ^\202\314\202\306*\207" [ctrl main buffer value line etask-ctrl-chartbegindate nil etask-get-main-ctrl-buffer etask-get-item-ctrl-buffer search-forward t buffer-substring-no-properties 0 2 search-forward-regexp "$" read-from-string etask-cat-get-current-elts etask-calculate-earliestbegin etask-calendardate-is-legal-p calendar-current-date etask-calculate-lastend etask-get-control-item natnump etask-get-maxbarlen tasklist date etask-ctrl-chartenddate etask-ctrl-todoview-begintime etask-todo-day-begin etask-ctrl-todoview-endtime etask-ctrl-currcategory etask-ctrl-curritem etask-ctrl-onlinehelp etask-ctrl-zoommodus etask-ctrl-zoomfactor] 4 (#$ . 95182)]) #@100 Return element of LIST chosen by user in minibuffer. Optional STR is an additional prompt string. (defalias 'etask-get-chosen-list-element #[(list &optional str) "G\305 \306\307\"P\n;\2050\f\310V\2050G\311U\203#@\202.\312\313\n\314P\315\"!S8\211+\207" [list str prompt input len nil etask-get-list-prompt capitalize 0 1 string-to-number etask-read " ? " #[(x) "\302!\303Y\205 \302! X\207" [x len string-to-number 1] 2]] 7 (#$ . 97014)]) #@164 Return prompt for choosing an element of LIST or nil if list is nil. If CAPITALIZEP is non-nil each list element's first character is upper case. Modifies LIST. (defalias 'etask-get-list-prompt #[(list &optional capitalizep) "\304\305\n\2033\n@\203) \306\307!\310 \203\311\n@!\202 \n@\nA\205&\312\260T\nA\211\204 G\313V\205; *\207" [count prompt list capitalizep "" 1 "(" number-to-string ") " capitalize " " 0] 7 (#$ . 97476)]) #@274 Return the end date of the draft Gantt chart or nil if no valid end date available. BEGIN is the chart's begin date. ZOOM, a non-negative integer, controls the width of a day in character. ZOOM=0 => draw whole project. MAXBARLEN is the maximum bar length in characters. (defalias 'etask-get-chartdate-end #[(begin zoom maxbarlen) "\304!\205G\305 !\205G\305\n!\205G\n\306V\205G \306U\203#\307\310 !\207 \306V\205G\n \245\211\311Y\203;\312 S\"\202F \306U\203E\202F)\207" [begin zoom maxbarlen days etask-calendardate-is-legal-p natnump 0 etask-calculate-lastend etask-cat-get-current-elts 1 etask-add-days-to-date] 4 (#$ . 97932)]) #@192 Return the smallest zoom level in [1..n] that can be selected. If zoom level n shows the whole project but (n+1) doesn't then return n. If n < 1 return the exact real value instead of zero. (defalias 'etask-zoom-allowed #[nil "\306 \307 \310 !\311 !\312\n \"T\313!\f\245\211\314W\203&\315 !\202)\316 !.\207" [maxbarlen tasklist projbegin projend projdays factor etask-get-maxbarlen etask-cat-get-current-elts etask-calculate-earliestbegin etask-calculate-lastend etask-days-between float 1 etask-simplify-number floor] 4 (#$ . 98587)]) #@71 Return TRUE if interactive operation is permitted or FALSE otherwise. (defalias 'etask-interactive-preconditions #[nil "\300 \301V\205\f\302 \303 X\207" [buffer-size 0 etask-current-line etask-cat-get-elementnum] 2 (#$ . 99140)]) #@218 Return list of index lists to be edited - either the current index or, if there are marked elements, all index lists of the marked elements. If optional NUM is an integer > 0 just return an index list of length NUM. (defalias 'etask-get-ixlist-to-be-edited #[(&optional num) "`\304eb\210\305\n\304\306#\2036 \203\307 !\2036 \310V\2036\311 B\307 !\203 \310V\203 S\202 b\210\203B\237\202E\311 C*\207" [ixlist pos etask-delimiter-markedtask-marker num nil search-forward t natnump 0 etask-cat-get-current-elementindex] 4 (#$ . 99378)]) #@174 Write STRING in logfile if `etask-write-logfile-p' is non-nil. If INIT is non-nil the logfile contents are deleted first. If EXIT is non-nil the logfile buffer is killed. (defalias 'etask-log #[(string &optional init exit) "\203/r\306 \nP!q\210 \203eb\210\307 \210\202db\210\f\310\311 \312Rc\210\313 \210 \203.\314 \210)\315\207" [etask-write-logfile-p etask-working-dir etask-logfile init string exit find-file-noselect erase-buffer " (" current-time-string ")\n" save-buffer bury-buffer ""] 4 (#$ . 99939)]) #@129 Return t if TASK is in fact a milestone rather than a task, nil otherwise. A milestone is a task whose planned effort is zero. (defalias 'etask-is-milestone-p #[(task) "\302 \"\303U\207" [task etask-db-attr-peffort etask-db-get 0] 3 (#$ . 100465)]) #@49 Return t if NUM requires plural, nil otherwise. (defalias 'etask-num-plural-s #[(num) "\301U?\207" [num 1] 2 (#$ . 100722)]) #@66 Return string containing SPCs needed to align MSGID1 and MSGID2. (defalias 'etask-get-alignment-string #[(msgid1 msgid2) "\303\304\305 \"G\305\n \"GZ!\306\"\207" [msgid1 etask-language msgid2 make-string abs etask-lang-msg 32] 6 (#$ . 100854)]) #@46 Return true if TIME is legal, nil otherwise. (defalias 'etask-time-is-legal-p #[(time) "<\205LG\304U\205L@A@AA@\305 !\205K\305\n!\205K\305 !\205K \306W\203<\n\307W\203< \307W\206K \306U\205K\n\310U\205K \310U+\207" [time sec min hr 3 natnump 24 60 0] 3 (#$ . 101106)]) #@46 Return true if DATE is legal, nil otherwise. (defalias 'etask-calendardate-is-legal-p #[(date) "<\2052G\302U\2052\303@!\2052\303A@!\2052\303\3048!\2052\305!\2052\211AA@) Y\207" [date etask-earliest-taskstart-year 3 natnump 2 calendar-date-is-legal-p] 4 (#$ . 101399)]) #@51 Return length of a Gantt chart day in characters. (defalias 'etask-get-daylen #[nil "\306 \203 \307 \310 _\207\311!\311\n!\311\f!\311!\312 !\2037\312 !\2037\313 \314\315 \"T!\245!\2028\316\211\317V\203G\320!\202I-\207" [etask-stateid-chartstart chartstart etask-stateid-chartend chartend etask-stateid-maxbarlen maxbarlen etask-todo-unit-is-hr-p etask-todo-get-hrnum etask-todo-get-hrwidth etask-state-get etask-calendardate-is-legal-p etask-simplify-number float etask-days-between 0 1 floor etask-stateid-zoomfactor zoom daylen] 7 (#$ . 101688)]) #@72 Return true if DATE is within the project time frame or nil otherwise. (defalias 'etask-project-date-p #[(date) "\304 \305!\306!\307 !\2052\310 C C\"\203#\310 C\nC\"\2062\311 \"\312U\2062\311 \n\"\312U+\207" [tasklist projbegin projend date etask-cat-get-current-elts etask-calculate-earliestbegin etask-calculate-lastend etask-calendardate-is-legal-p calendar-date-compare etask-days-between 0] 3 (#$ . 102264)]) #@136 Return the number of project days in YEAR. Holidays are included. PROJBEGIN and PROJEND are dates and define the project time frame. (defalias 'etask-projdays-in-year #[(projbegin projend year) "\211AA@)\n\211AA@)\306\211U\203)\fU\203)\307\n\"T\202\224 W\203a\fW\203a\211\310\246\311U\205S\312\246\311U?\206S\313\246\311U)\203\\\314\202\224\315\202\224 U\203|\fW\203|\307\316\317E\"T\202\224 W\203\224\fU\203\224\307\320\211E\n\"T +\207" [projbegin date projend days yearend yearbegin nil etask-days-between 4 0 100 400 366 365 12 31 1 year] 6 (#$ . 102695)]) #@235 Return the number of project days including holidays of the NUMth project MONTH in YEAR. TOTAL is the number of different months including at least one project day. PROJBEGIN and PROJEND are dates and define the project time frame. (defalias 'etask-projdays-in-month #[(num month year projbegin projend total) " U\203 \306V\203\n\211A@)\207\306U\203% \306U\203%\307\f\n\"T\207\306U\203o \306V\203o \211\310U\203a\211\311\246\312U\205Y\313\246\312U?\206Y\314\246\312U)\203a\315\202e\316 SH*\f\211A@)ZT\207 \211\310U\203\237\211\311\246\312U\205\227\313\246\312U?\206\227\314\246\312U)\203\237\315\202\243\316 SH*\207" [num total projend date projbegin month 1 etask-days-between 2 4 0 100 400 29 [31 28 31 30 31 30 31 31 30 31 30 31] year] 4 (#$ . 103320)]) #@423 Toggle a task attribute specified by CTRL for one or more tasks if CONDITION evaluates to t. Normally this function calls FUNC for the current task if CONDITION is t for that task. But if there are marked tasks FUNC is applied to all marked tasks whose CONDITION is t instead. However, if optional ALLTASKS is non-nil, then FUNC is applied to all tasks whose CONDITION is t, no matter if there are marked tasks or not. (defalias 'etask-toggle-attribute #[(func ctrl1 ctrl2 condition &optional alltasks) "`\306 \307  \203 \202\n\203\n\202\310 C\211\203> \f@!\2037\311\f\f@ #\312\f@!\"\210\fA\211\204 \313 \210b,\207" [pos tasklist markedtasks alltasks toggletasks condition etask-cat-get-current-elementlist etask-cat-get-marked-elements etask-cat-get-current-element etask-cat-store-element etask-cat-get-elementindex etask-cat-show-elements func ctrl1 ctrl2] 6 (#$ . 104135)]) #@158 Return true if a TASK's begin date can be postponed by at least NUM days. If optional BUSINESSP is non-nil business days are used instead of calendar days. (defalias 'etask-postpone-begindate-opvalid-p #[(task num &optional businessp) "\305!\206B\306 \203\307\310\n\" \"C\202\311\310\n\" \"C\310\f\"C\"\206B\312 \2036\307\310\n\" \"\202=\311\310\n\" \"\310\f\"\"\207" [task businessp etask-db-attr-taskbegin num etask-db-attr-taskend etask-is-milestone-p calendar-date-compare etask-add-businessdays-to-date etask-db-get etask-add-days-to-date calendar-date-equal] 5 (#$ . 105044)]) #@153 Return true if TASK's duedate can be forwarded by at least NUM days. If optional BUSINESSP is non-nil business days are used instead of calendar days. (defalias 'etask-forward-duedate-opvalid-p #[(task num &optional businessp) "\305!\206F\306\307 \"C\n\203\310\307 \"\f[\"C\202%\311\307 \"\f[\"C\"\206F\312\307 \"\n\203=\310\307 \"\f[\"\202E\311\307 \"\f[\"\"\207" [task etask-db-attr-taskbegin businessp etask-db-attr-taskend num etask-is-milestone-p calendar-date-compare etask-db-get etask-add-businessdays-to-date etask-add-days-to-date calendar-date-equal] 6 (#$ . 105650)]) #@123 Return error string for function `etask-postpone-begindate'. BUSINESSP indicates if business days are used by the caller. (defalias 'etask-postpone-begindate-errormsg #[(businessp) "\203 \302\303 \"\207\302\304 \"\207" [businessp etask-language etask-lang-msg 1002 1001] 3 (#$ . 106252)]) #@121 Return error string for function `etask-forward-duedate'. BUSINESSP indicates if business days are used by the caller. (defalias 'etask-forward-duedate-errormsg #[(businessp) "\203 \302\303 \"\207\302\304 \"\207" [businessp etask-language etask-lang-msg 1002 1001] 3 (#$ . 106550)]) #@321 Return LONGSTRING shortened to `etask-normal-taskname-len-minibuf' or MAX. If string LONGSTRING is longer than `etask-normal-taskname-len-minibuf' it is shortened. For example, 'A very looooooooooooooooong word' becomes something similar to 'A very looo..'. Optional MAX overrides `etask-normal-taskname-len-minibuf'. (defalias 'etask-shorten-string #[(longstring &optional max) "\304!\203\n\202  ;\203$ G\nV\203$ \305\n\306GZO\306P\202% )\207" [max etask-normal-taskname-len-minibuf maxlen longstring natnump 0 ".."] 4 (#$ . 106843)]) #@109 Return the project begin date. The project begin date is the earliest begin date of all tasks in TASKLIST. (defalias 'etask-calculate-earliestbegin #[(tasklist) "\203' \306\203$\307@\f\"\310\nC C\"\203\nA\211\204\f *\207\311 \n\"\210\n\207" [tasklist etask-latest-catdate date earliestbegin etask-db-attr-taskbegin etask-stateid-chartstart nil etask-db-get calendar-date-compare etask-state-set etask-earliest-catdate] 4 (#$ . 107397)]) #@101 Return the project end date. The project end date is the latest end date of all tasks in TASKLIST. (defalias 'etask-calculate-lastend #[(tasklist) "\203' \306\203$\307@\f\"\310 C\nC\"\203\nA\211\204\f *\207\311 \n\"\210\n\207" [tasklist etask-earliest-catdate date lastend etask-db-attr-taskend etask-stateid-chartend nil etask-db-get calendar-date-compare etask-state-set etask-latest-catdate] 4 (#$ . 107858)]) #@80 Return date DATE + DAYS. If DAYS is negative the return value is DATE - DAYS. (defalias 'etask-add-days-to-date #[(date days) "\303!\203\"\304\211@)\211A@)\211AA@)# \\\305 !)\207\306\211\nE\207" [date days etask-earliest-taskstart-year etask-calendardate-is-legal-p timezone-absolute-from-gregorian calendar-gregorian-from-absolute 1] 5 (#$ . 108294)]) #@83 Return date DATE + WEEKS. If WEEKS is negative the return value is DATE - WEEKS. (defalias 'etask-add-weeks-to-date #[(date weeks) "\250\203\f\303 \304_\"\207\305 !\203 \207\306\211\nE\207" [weeks date etask-earliest-taskstart-year etask-add-days-to-date 7 etask-calendardate-is-legal-p 1] 4 (#$ . 108663)]) #@85 Return date DATE + MONTHS. If MONTHS is negative the return value is DATE - MONTH. (defalias 'etask-add-months-to-date #[(date months) "\306!\203u \250\203u\211@)\211A@)\211AA@)\n\307_\f\\ \\\310\\\211\307\246T \307\245)\f\n\211\311U\203^\n\211\312\246\313U\205V\n\314\246\313U?\206V\n\315\246\313U)\203^\316\202b\317\fSH*\211 W\203n)\f \nE+\207\306!\203}\207\320\211E\207" [date months year day month macro-y etask-calendardate-is-legal-p 12 -1 2 4 0 100 400 29 [31 28 31 30 31 30 31 31 30 31 30 31] 1 last etask-earliest-taskstart-year] 4 (#$ . 108983)]) #@196 Store TASK that is to forward according to STR. Examples for str: 3d, 5w, 8m for days, weeks, months, accordingly. If BUSINESSP is non-nil and STR indicates days then only business days count. (defalias 'etask-write-element-to-forward #[(task str businessp) "\303 \n\304$\207" [task str businessp etask-write-element-to-postpone fwd] 5 (#$ . 109582)]) #@263 Store TASK that is to postpone according to STR. Examples for str: 3d, 5w, 8m for days, weeks, months, accordingly. If BUSINESSP is non-nil and STR indicates days then only business days count. If optional FWD is non-nil, TASK is to forward according to STR. (defalias 'etask-write-element-to-postpone #[(task str businessp &optional fwd) "\306 \"\306\n\"\307!\310\211\311\"\204&\311\"\203t\312\311\"\2037\313P\2029!\203F[\203T\314\"\202Z\315\"\203i\314\"\202o\315\")\202\307\311\"\203\237\312!\203\215[\316\"\316\")\202\307\311\"\203\307\312!\203\270[\317\"\317\")\320\321\211\n # \f# \"-\207" [task etask-db-attr-taskbegin etask-db-attr-taskend newend newbegin currix etask-db-get etask-cat-get-elementindex nil string-match etask-extract-effort-raw "d" etask-add-businessdays-to-date etask-add-days-to-date etask-add-weeks-to-date etask-add-months-to-date etask-cat-store-element etask-db-set oldend oldbegin etask-wholenumber-regexp str etask-effort-d-regexp pdays fwd businessp etask-effort-w-regexp pweeks etask-effort-m-regexp pmonths] 6 (#$ . 109944)]) #@261 Store TASK that's - when BEGP is true - begin or - when BEGP is false - end date is to forward according to STR. Examples for str: 3d, 5w, 8m for days, weeks, months, accordingly. If BUSINESSP is non-nil and STR indicates days then only business days count. (defalias 'etask-write-element-to-fwd-date #[(task begp str businessp) "\304!\203\f\305 \n#\207\306 \n\307%\207" [task str businessp begp etask-is-milestone-p etask-write-element-to-forward etask-write-element-to-postp-date fwd] 6 (#$ . 111135)]) #@332 Store TASK that's - when BEGP is true - begin or - when BEGP is false - end date is to postpone according to STR. Examples for str: 3d, 5w, 8m for days, weeks, months, accordingly. If BUSINESSP is non-nil and STR indicates days then only business days count. If optional FWD is non-nil, the date is to forward according to STR. (defalias 'etask-write-element-to-postp-date #[(task begp str businessp &optional fwd) "\203 \306 \n\"\202\306 \"\307\310 !\203#\311 #\210\202\257\312\"\2045\312\"\203l\313\312\"\203F\314P\202H!\203U[\203b\315 \"\202g\316 \")\202\257\312\"\203\217\313!\203\205[\317 \")\202\257\312\"\203\257\313!\203\250[\320 \")\310 !?\205\324\321 \203\312\322\323 \n\f#\"\202\323\322\323 \f#\")*\207" [begp task etask-db-attr-taskbegin etask-db-attr-taskend newdate olddate etask-db-get nil etask-is-milestone-p etask-write-element-to-postpone string-match etask-extract-effort-raw "d" etask-add-businessdays-to-date etask-add-days-to-date etask-add-weeks-to-date etask-add-months-to-date etask-cat-get-current-elementindex etask-cat-store-element etask-db-set str businessp etask-wholenumber-regexp etask-effort-d-regexp pdays fwd etask-effort-w-regexp pweeks etask-effort-m-regexp pmonths currix] 5 (#$ . 111654)]) #@57 Return number of days from DATE till next business day. (defalias 'etask-days-till-business-day #[(date) "\302!\203\303\304!\204 T\305\306\"\202 )\207\303\207" [date days etask-calendardate-is-legal-p 0 etask-businessday-p etask-add-days-to-date 1] 3 (#$ . 112996)]) #@57 Return number of days from DATE till last business day. (defalias 'etask-days-till-business-day-before #[(date) "\302!\203\303\304!\204 T\305\306\"\202 )\207\303\207" [date days etask-calendardate-is-legal-p 0 etask-businessday-p etask-add-days-to-date -1] 3 (#$ . 113281)]) #@52 Return t if date is a business day, nil otherwise. (defalias 'etask-businessday-p #[(date) "\302!\205+\303!\203\304 \303!@\"\203\305\207\306!\307U\204(\306!\310U\203*\305\207\311\207" [date etask-holiday-regexp etask-calendardate-is-legal-p check-calendar-holidays string-match nil calendar-day-of-week 6 0 t] 4 (#$ . 113574)]) #@94 Return date DATE + DAYS business days. If DAYS is negative the return value is DATE - DAYS. (defalias 'etask-add-businessdays-to-date #[(date days) "\306!\203= \250\203=\307\211\211\n\310 !W\2037 \307V\203$ T\202& S\311\312 \"!\203\nT\211\202\312 \"+\207\306!\203E\207\313\211 E\207" [date days bizdaysadded daysadded currentday etask-earliest-taskstart-year etask-calendardate-is-legal-p 0 abs etask-businessday-p etask-add-days-to-date 1] 5 (#$ . 113920)]) #@95 Calculate the number of days between DATE1 and DATE2. The order of variables doesn't matter. (defalias 'etask-days-between #[(date1 date2) "\304!\203+\304 !\203+\305@A@AA@#\305 @ A@ AA@#\306 \nZ!*\207\307\207" [date1 date2 days2 days1 etask-calendardate-is-legal-p timezone-absolute-from-gregorian abs 0] 5 (#$ . 114406)]) #@103 Return the number of business days in interval ]DATE1 DATE2]. The order of variables doesn't matter. (defalias 'etask-business-days-between #[(date1 date2) "\306!\2036\306 !\2036\211\211AA@)S\n\211\211@)\n\211A@)\n\211AA@) \fS\307_\\\f\310V\203n\f\311_\312\\\313\245Z\211\311\246\314U\205e\315\246\314U?\206e\316\246\314U)\203nT- \317_\\ \311\245\\ \315\245[\\ \316\245\\* \211\211AA@)S\n\211\211@)\n\211A@)\n\211AA@) \fS\307_\\\f\310V\203\347\f\311_\312\\\313\245Z\211\311\246\314U\205\336\315\246\314U?\206\336\316\246\314U)\203\347T- \317_\\ \311\245\\ \315\245[\\ \316\245\\*]^\314\320W\2031\321\322!!\203(TT\211\202.\207\314\207" [date1 date2 date prior-years month day etask-calendardate-is-legal-p 31 2 4 23 10 0 100 400 365 nil etask-businessday-p calendar-gregorian-from-absolute year day-of-year d1 d2 du bizdays d] 6 (#$ . 114745)]) #@131 Return the number of business days in interval [DATE1 DATE2]. The order of variables doesn't matter. The interval is inclusive. (defalias 'etask-business-days-inclusive #[(date1 date2) "\306!\2036\306 !\2036\211\211AA@)S\n\211\211@)\n\211A@)\n\211AA@) \fS\307_\\\f\310V\203n\f\311_\312\\\313\245Z\211\311\246\314U\205e\315\246\314U?\206e\316\246\314U)\203nT- \317_\\ \311\245\\ \315\245[\\ \316\245\\* \211\211AA@)S\n\211\211@)\n\211A@)\n\211AA@) \fS\307_\\\f\310V\203\347\f\311_\312\\\313\245Z\211\311\246\314U\205\336\315\246\314U?\206\336\316\246\314U)\203\347T- \317_\\ \311\245\\ \315\245[\\ \316\245\\*]^\314\320X\2031\321\322!!\203(TT\211\202.\207\314\207" [date1 date2 date prior-years month day etask-calendardate-is-legal-p 31 2 4 23 10 0 100 400 365 nil etask-businessday-p calendar-gregorian-from-absolute year day-of-year d1 d2 du bizdays d] 6 (#$ . 115712)]) #@196 Return a string indicating the number of business days between DATE1 and DATE2. If optional BETWEEN is nil, day DATE1 also counts. Otherwise, if BETWEEN is non-nil, the first day doesn't count. (defalias 'etask-calculate-business-days-string #[(date1 date2 &optional between) "\305!\2034\305 !\2034\n\203\306 \"\202\307 \"\310 !\311 \312U\204-\313\314\f\"\2021\313\315\f\"Q)\207\316\207" [date1 date2 between bizdays etask-language etask-calendardate-is-legal-p etask-business-days-between etask-business-days-inclusive number-to-string " " 1 etask-lang-msg 705 721 ""] 5 (#$ . 116709)]) #@70 Return a string indicating the full time equivalence number of TASK. (defalias 'etask-calculate-fte-string #[(task) "<\205?\306 \"\307\n! \245\310\306 \"\306\"\"\211\311V\203,\312\f\245!\202-\311\313!\314\315U?\205=\316Q,\207" [task etask-db-attr-peffort plannedhours etask-workinghours-per-day planneddays etask-db-attr-taskbegin etask-db-get float etask-business-days-inclusive 0 etask-simplify-number number-to-string " FTE" 1 "s" etask-db-attr-taskend bizdays fte] 6 (#$ . 117316)]) #@144 Return portion of tasktime that is already in the past. For example, if 20% of the planned time is already expended the function returns 0.2. (defalias 'etask-calculate-tasktime-expended #[(task) "\306 \"\306 \"\307 \310\n\f\"T\f\311\nC C\"\203&\311 C\fC\"\204/\310 \f\"\312U\2036\310\n \"\202E\311\fC C\"\203D\f\202E\312 \313 !\f\245-\207" [task etask-db-attr-taskbegin start etask-db-attr-taskend end current etask-db-get calendar-current-date etask-days-between calendar-date-compare 0 float total burnt] 3 (#$ . 117832)]) #@144 Return the number of days from today (exclusive) to planned end of TASK. If TASK is already completed the function returns a negative number. (defalias 'etask-calculate-timetoplannedend #[(task) "<\205#\304 \"\305 \306\nC C\"\203\307\n \"\202\"\307\n \"[*\207" [task etask-db-attr-taskend today enddate etask-db-get calendar-current-date calendar-date-compare etask-days-between] 3 (#$ . 118382)]) #@65 Return ELEMENT's begin date and time: (sec min hr day mon year) (defalias 'etask-make-begindatetime #[(element) "\301\302\"\207" [element etask-make-duedatetime begin] 3 (#$ . 118795)]) #@132 Return ELEMENT's due date and time: (sec min hr day mon year). If optional BEGIN is non-nil, return ELEMENT's begin date and time. (defalias 'etask-make-duedatetime #[(element &optional begin) "\203 \306 \n\"\202\306 \"\203\306 \"\202 \306  \"\211\nAA@ \nA@\f\n@ \f\211A@)\f\211@)\f\211AA@)\307 !\203Z \202[\310\307\f!\203g\f\202h\310\307 !\203t \202u\310\257.\207" [begin element etask-db-attr-taskbegin etask-db-attr-taskend eltdate etask-db-attr-taskbegintime etask-db-get natnump 0 etask-db-attr-taskendtime elttime sec min hr date day month year] 7 (#$ . 118989)]) #@75 Extract the year part of DATE. DATE structure: (sec min hr day mon year) (defalias 'etask-extract-year #[(date) "\3018\207" [date 5] 2 (#$ . 119615)]) #@76 Extract the month part of DATE. DATE structure: (sec min hr day mon year) (defalias 'etask-extract-month #[(date) "\3018\207" [date 4] 2 (#$ . 119774)]) #@74 Extract the day part of DATE. DATE structure: (sec min hr day mon year) (defalias 'etask-extract-day #[(date) "\3018\207" [date 3] 2 (#$ . 119935)]) #@75 Extract the hour part of DATE. DATE structure: (sec min hr day mon year) (defalias 'etask-extract-hour #[(date) "\3018\207" [date 2] 2 (#$ . 120092)]) #@74 Extract the min part of DATE. DATE structure: (sec min hr day mon year) (defalias 'etask-extract-min #[(date) "A@\207" [date] 1 (#$ . 120251)]) #@77 Extract the second part of DATE. DATE structure: (sec min hr day mon year) (defalias 'etask-extract-sec #[(date) "@\207" [date] 1 (#$ . 120403)]) #@127 Extract the calendar date part of DATE. DATE structure: (sec min hr day mon year). Calendar date structure: (mon day year). (defalias 'etask-extract-date #[(date) "\301!\302!\303!E\207" [date etask-extract-month etask-extract-day etask-extract-year] 4 (#$ . 120558)]) #@127 Extract the EtaskMode time part of DATE. DATE structure: (sec min hr day mon year). EtaskMode time structure: (hr min sec). (defalias 'etask-extract-time #[(date) "\301!\302!\303!E\207" [date etask-extract-hour etask-extract-min etask-extract-sec] 4 (#$ . 120838)]) #@88 Return DATE + EFFORT, given in hours, as new DATE structure: (sec min hr day mon year) (defalias 'etask-datetime-add-time #[(date effort) "\306!\307!\310!\311!\312!\313!\314\315\245!\314\315_Z!\314\316\315_\\Z!\317_!\314\316\320\245\\\315_\\Z!\321_!\322\\\317\246 \\\\\317\245\\\317\246\f\\ \\\317\245\\\315\246\f\\\315\245\\\211\323V\203\256\323U\203\256\323U\203\256\323U\203\256S\315\324\n E\"\211A@)\211@)\211AA@)\257.\207" [date year month day hr min etask-extract-year etask-extract-month etask-extract-day etask-extract-hour etask-extract-min etask-extract-sec floor 24 etask-simplify-number 60 60.0 3600 nil 0 etask-add-days-to-date sec effort daystoadd hrstoadd mintoadd sectoadd newdate newsec newmin newhr] 7 (#$ . 121115)]) #@88 Return DATE - EFFORT, given in hours, as new DATE structure: (sec min hr day mon year) (defalias 'etask-datetime-subtract-time #[(date effort) "\306!\307!\310!\311!\312!\313!\314\315\245!\314\315_Z!\314\316\315_\\Z!\317_!\314\316\320\245\\\315_\\Z!\321_!\322Y\203hZ\202o\317ZZ Y\203\215 Y\203\207\323\202\210\324\\Z\202\241\317Y\203\234\323\202\235\324\\ ZZ\fY\203\276\f Y\203\270\323\202\271\324\\Z\202\321\315 Y\203\314\323\202\315\324\\\fZZ\fW\203\340T\202\342\325\n E[\"\211A@)\211@)\211AA@)\257.\207" [date year month day hr min etask-extract-year etask-extract-month etask-extract-day etask-extract-hour etask-extract-min etask-extract-sec floor 24 etask-simplify-number 60 60.0 3600 nil 0 1 etask-add-days-to-date sec effort daystosub hrstosub mintosub sectosub newdate newsec newmin newhr] 7 (#$ . 121964)]) #@86 Return true if date D1 is before date D2. DATE structure: (sec min hr day mon year) (defalias 'etask-datetime-less-p #[(d1 d2) "\302 \"\203 \303\207\304 \"\203\305 \"\203\303\207\306\207" [d1 d2 etask-date-less-p t etask-date-equal-p etask-time-less-p nil] 3 (#$ . 122917)]) #@125 Return true if date D1's date part is before date D2's date part, nil otherwise. DATE structure: (sec min hr day mon year) (defalias 'etask-date-less-p #[(d1 d2) "\302!\302 !W\2069\302!\302 !U\203\303!\303 !W\2069\302!\302 !U\2059\303!\303 !U\2059\304!\304 !W\207" [d1 d2 etask-extract-year etask-extract-month etask-extract-day] 3 (#$ . 123208)]) #@115 Return true if date D1's time is before date D2's time, nil otherwise. DATE structure: (sec min hr day mon year) (defalias 'etask-time-less-p #[(d1 d2) "\302!\302 !W\2069\302!\302 !U\203\303!\303 !W\2069\302!\302 !U\2059\303!\303 !U\2059\304!\304 !W\207" [d1 d2 etask-extract-hour etask-extract-min etask-extract-sec] 3 (#$ . 123576)]) #@85 Return true if date D1 is equal date D2. DATE structure: (sec min hr day mon year) (defalias 'etask-datetime-equal-p #[(d1 d2) "\302 \"\205 \303 \"\207" [d1 d2 etask-date-equal-p etask-time-equal-p] 3 (#$ . 123931)]) #@127 Return true if date D1's date part is equal to date D2's date part, nil otherwise. DATE structure: (sec min hr day mon year) (defalias 'etask-date-equal-p #[(d1 d2) "\302!\302 !U\205\303!\303 !U\205\304!\304 !U\207" [d1 d2 etask-extract-year etask-extract-month etask-extract-day] 3 (#$ . 124159)]) #@117 Return true if D1's time part is equal to D2's time part, nil otherwise. DATE structure: (sec min hr day mon year) (defalias 'etask-time-equal-p #[(d1 d2) "\302!\302 !U\205\303!\303 !U\205\304!\304 !U\207" [d1 d2 etask-extract-hour etask-extract-min etask-extract-sec] 3 (#$ . 124473)]) #@56 Return the current buffer line number starting with 1. (defalias 'etask-current-line #[nil "\212\214~\210\300y\210\301\302`\"T*\207" [0 count-lines 1] 3 (#$ . 124774)]) #@162 Return sublist of LIST with elements FROM to TO. FROM=1 refers to the first LIST element. If TO exceeds the list length then the rest of the list is returned. (defalias 'etask-get-sublist #[(list from to) "<\205?\304!\n V\203 \305 !\205>\305\n!\205> \306V\205>\n\306V\205> \nX\205> X\205>\307 S\233 \nZ\")\207" [list len to from safe-length natnump 0 butlast] 4 (#$ . 124950)]) #@41 Apply face STRINGFACE to string STRING. (defalias 'etask-apply-face #[(string stringface) "\260\303\304\n#)\207" [string newstring stringface etask-propertize face] 4 (#$ . 125351)]) #@70 Return the length of the longest string in the list of strings LIST. (defalias 'etask-longest-string-in-list #[(list) "\203 @G\301A!]\207\302\207" [list etask-longest-string-in-list 0] 3 (#$ . 125544)]) #@206 Return t if task TASK is already completed, nil otherwise. Note that when TASK's planned effort is 0 it is on time but not completed. Because its effort is not even planned, the task cannot be completed. (defalias 'etask-is-task-completed-p #[(task) "\304 \"\211\305U?\205\306\304 \"!\n\245\307U\203\310\202\311)\207" [task etask-db-attr-peffort peffort etask-db-attr-eeffort etask-db-get 0 float 1.0 t nil] 5 (#$ . 125758)]) #@61 Return true if task TASK is behind schedule, nil otherwise. (defalias 'etask-is-task-behind-schedule-p #[(task) "\304 \"\211\305\230\203\306\307\310 \"\311!\"\205>\312\202>\n\313\230\2031\306\307\310 \"\314!\"\205>\312\202>\306\307\310 \"\315!\"\205>\312)\207" [task etask-db-attr-tracking tracking etask-language etask-db-get "s-shape-65" string-match etask-lang-msg 710 etask-calculate-taskstatus-s-shape-65 t "s-shape-70" etask-calculate-taskstatus-s-shape-70 etask-calculate-taskstatus-linear] 5 (#$ . 126200)]) #@67 Return TASK's percent completed value or -1 if plannedeffort = 0. (defalias 'etask-calculate-percentcompleted #[(task) "\305 \"\305\n\" \306U\203\307\202\310\311\f! \245\312_!*\207" [task etask-db-attr-eeffort etask-db-attr-peffort plannedeffort expendedeffort etask-db-get 0 -1 round float 100] 4 (#$ . 126735)]) #@638 Return status of TASK according to S-Shape-70. The function returns the string 'ON TIME' if progress is according to or better than the following s-shape-curve: time | sample of completion requirements -------|------------------------------------- 0% | 0% 10% | 5% 20% | 15% 30% | 30% 40% | 55% 50% | 70% 60% | 82% 70% | 90% 80% | 95% 90% | 98% 100% | 100% Otherwise it returns the string 'BEHIND SCHEDULE (target: y%, actual: x%)' or 'NOT STARTED' or 'COMPLETED'. (defalias 'etask-calculate-taskstatus-s-shape-70 #[(task) "\306!\307\n\"\310!\211\311_\3126\f\313U\204 \313U\203&\3136\202\264\f\314W\203; \315_\316 _ S_\\6\202\264\f\317Y\203]\f\320W\203] \321Z\322_ \321Z \323Z_\315_\\\322\\6\202\264\f\324Y\203\f\325W\203 \326Z\322_\327 \326Z_ \315Z_\\\330\\6\202\264\f\331Y\203\241\f\332W\203\241 \333Z\334_\335 \333Z_ \336Z_\\\337\\6\202\264 \334Z\323_\340 \334Z_ \341Z_\\\342\\6 \313V\203\361 \343W\203\361 6Y\203\3616\313Y\203\361\344\345\346\347\3507\"\351\"\"\347\3527\"\344\3536\"\347\3547\"\344\355 \"\260\202M \313U\203\344\356\346\347\3577\"\351\"\"\202M \360U\203\344\356\346\347\3617\"\351\"\"\202M \362U\203-\344\356\346\347\3637\"\351\"\"\202M\344\345\346\347\3647\"\365\"\"\347\3527\"\344\3536\"\347\3547\"\344\355 \"\260-\207" [task percentcompleted etask-db-attr-peffort plannedeffort burnt scaledburnt etask-calculate-percentcompleted etask-db-get etask-calculate-tasktime-expended 10 nil 0 0.2 5 2.5 0.2 0.4 2 15 3 0.4 0.6 4 -1.5 55 0.6 0.8 6 8 -1.5 7 82 -0.5 9 95 100 format "%s (" etask-apply-face etask-lang-msg 711 etask-face-status-ok 730 ": %d%%, " 731 ": %d%%) " "%s" 712 100.0 713 0.0 714 710 etask-face-status-behindschedule target etask-language] 8 (#$ . 127064)]) #@638 Return status of TASK according to S-Shape-65. The function returns the string 'ON TIME' if progress is according to or better than the following s-shape-curve: time | sample of completion requirements -------|------------------------------------- 0% | 0% 10% | 5% 20% | 15% 30% | 30% 40% | 50% 50% | 65% 60% | 77% 70% | 85% 80% | 91% 90% | 96% 100% | 100% Otherwise it returns the string 'BEHIND SCHEDULE (target: y%, actual: x%)' or 'NOT STARTED' or 'COMPLETED'. (defalias 'etask-calculate-taskstatus-s-shape-65 #[(task) "\306!\307\n\"\310!\211\311_\3127\f\313U\204 \313U\203&\3137\202\265\f\314W\203; \315_\316 _ S_Z7\202\265\f\317Y\203]\f\320W\203] \321Z\322_\323 \321Z_ \324Z_\\\322\\7\202\265\f\325Y\203\f\326W\203 \327Z\322_\330 \327Z_ \315Z_\\\331\\7\202\265\f\332Y\203\240\f\333W\203\240 \334Z\335_ \334Z \336Z_[\\\337\\7\202\265\340 \335Z\315_\341 \335Z_ \342Z_\\\343\\!7 \313V\203\362 \344W\203\362 7Y\203\3627\313Y\203\362\345\346\347\350\3518\"\352\"\"\350\3538\"\345\3547\"\350\3558\"\345\356 \"\260\202N \313U\203\345\357\347\350\3608\"\352\"\"\202N \361U\203\345\357\347\350\3628\"\352\"\"\202N \363U\203.\345\357\347\350\3648\"\352\"\"\202N\345\346\347\350\3658\"\366\"\"\350\3538\"\345\3547\"\350\3558\"\345\356 \"\260-\207" [task percentcompleted etask-db-attr-peffort plannedeffort burnt scaledburnt etask-calculate-percentcompleted etask-db-get etask-calculate-tasktime-expended 10 nil 0 0.2 5 2.5 0.2 0.4 2 15 2.5 3 0.4 0.6 4 -1.5 50 0.6 0.8 6 8 7 77 round -0.5 9 91 100 format "%s (" etask-apply-face etask-lang-msg 711 etask-face-status-ok 730 ": %d%%, " 731 ": %d%%) " "%s" 712 100.0 713 0.0 714 710 etask-face-status-behindschedule target etask-language] 8 (#$ . 128996)]) #@673 Return status of TASK according to linear progress model. Calculates the task status and returns the string 'ON TIME' if progress is according to or better than the following linear requirements: time | sample of completion requirements -------|------------------------------------- 0% | 0% 10% | 10% 20% | 20% 30% | 30% 40% | 40% 50% | 50% 60% | 60% 70% | 70% 80% | 80% 90% | 90% 100% | 100% Otherwise it returns the string 'BEHIND SCHEDULE (target: y%, actual: x%)' or 'NOT STARTED' or 'COMPLETED'. (defalias 'etask-calculate-taskstatus-linear #[(task) "\306!\307\n\"\310! \311U\203\311\202\f\312_ \311V\203U \312W\203U Y\203U \311Y\203U\313\314\315\316\317\"\320\"\"\316\321\"\313\322 \"\316\323\"\313\324 \"\260\202\260 \311U\203i\313\325\315\316\326\"\320\"\"\202\260 \327U\203}\313\325\315\316\330\"\320\"\"\202\260 \331U\203\221\313\325\315\316\332\"\320\"\"\202\260\313\314\315\316\333\"\334\"\"\316\321\"\313\322 \"\316\323\"\313\324 \"\260,\207" [task percentcompleted etask-db-attr-peffort plannedeffort burnt target etask-calculate-percentcompleted etask-db-get etask-calculate-tasktime-expended 0 100 format "%s (" etask-apply-face etask-lang-msg 711 etask-face-status-ok 730 ": %d%%, " 731 ": %d%%) " "%s" 712 100.0 713 0.0 714 710 etask-face-status-behindschedule etask-language] 7 (#$ . 130933)]) #@46 Return filename for requested status report. (defalias 'etask-get-reportfile #[nil " \303\304\305 \211A@)!\303\306\305 \211@)\307\"\303\304\305 \211AA@)!\260\207" [etask-working-dir etask-reports-filename-prefix date "." number-to-string calendar-current-date calendar-month-name 3] 10 (#$ . 132466)]) #@55 Insert status report of TASKLIST in reporting buffer. (defalias 'etask-insert-report-string #[(tasklist) "\303\304\305 \"\306Pc\210\304\307 \"\310Pc\210\311 c\210\n\2050\n@\312c\210\313\314!\315\"c\210\nA\211\204\303)\207" [task etask-language tasklist nil etask-lang-msg 701 "\n" 702 "\n\n" current-time-string "\n\n\n\n" etask-cat-show-elementstatus etask-cat-get-elementindex reporting] 4 (#$ . 132779)]) #@310 Truncate or cut NUM if possible. If NUM is a floating point number with just '0's after the decimal point return the corresponding integer value. If NUM is a floating point number with more than 2 digits after the decimal point round to its hundredth decimal place. All other numbers are returned unchanged. (defalias 'etask-simplify-number #[(num) "\247\205&\301\302\303!\"\203\304!\207\301\305\303!\"\203%\306\307_!\310\307!\245\207\207" [num string-match "[0-9]+.0+$" number-to-string truncate "[0-9]+.[0-9][0-9][0-9]+$" round 100 float] 4 (#$ . 133201)]) #@158 Return TASK with its begin date set to DAYS days earlier. DAYS is a whole number. If optional BUSINESSP is non-nil business days are used instead of days. (defalias 'etask-start-n-days-earlier #[(days task &optional businessp) "\203\306\307 \n\" [\"\202\223\310\307 \n\"\211\211AA@)S\f\211\211@)\f\211A@)\f\211AA@)S\311_\\\312V\203{\313_\314\\\315\245Z\211\313\246\316U\205r\317\246\316U?\206r\320\246\316U)\203{T- \321_\\ \313\245\\ \317\245[\\ \320\245\\* Z!\322 \n#)\207" [businessp task etask-db-attr-taskbegin days date prior-years etask-add-businessdays-to-date etask-db-get calendar-gregorian-from-absolute 31 2 4 23 10 0 100 400 365 etask-db-set month day year day-of-year newstart] 7 (#$ . 133778)]) #@156 Return TASK with its begin date set to DAYS days later. DAYS is a whole number. If optional BUSINESSP is non-nil business days are used instead of days. (defalias 'etask-start-n-days-later #[(days task &optional businessp) "\203\306\307 \n\" \"\202\222\310\307 \n\"\211\211AA@)S\f\211\211@)\f\211A@)\f\211AA@)S\311_\\\312V\203z\313_\314\\\315\245Z\211\313\246\316U\205q\317\246\316U?\206q\320\246\316U)\203zT- \321_\\ \313\245\\ \317\245[\\ \320\245\\* \\!\322 \n#)\207" [businessp task etask-db-attr-taskbegin days date prior-years etask-add-businessdays-to-date etask-db-get calendar-gregorian-from-absolute 31 2 4 23 10 0 100 400 365 etask-db-set month day year day-of-year newstart] 7 (#$ . 134549)]) #@167 Return task TASK with a new end date: DAYS days before current end. DAYS is a whole number. If optional BUSINESSP is non-nil business days are used instead of days. (defalias 'etask-finish-n-days-earlier #[(days task &optional businessp) "\203\306\307 \n\" [\"\202\223\310\307 \n\"\211\211AA@)S\f\211\211@)\f\211A@)\f\211AA@)S\311_\\\312V\203{\313_\314\\\315\245Z\211\313\246\316U\205r\317\246\316U?\206r\320\246\316U)\203{T- \321_\\ \313\245\\ \317\245[\\ \320\245\\* Z!\322 \n#)\207" [businessp task etask-db-attr-taskend days date prior-years etask-add-businessdays-to-date etask-db-get calendar-gregorian-from-absolute 31 2 4 23 10 0 100 400 365 etask-db-set month day year day-of-year newend] 7 (#$ . 135316)]) #@155 Return task TASK with a new end date: DAYS days later. DAYS is a whole number. If optional BUSINESSP is non-nil business days are used instead of days. (defalias 'etask-finish-n-days-later #[(days task &optional businessp) "\203\306\307 \n\" \"\202\222\310\307 \n\"\211\211AA@)S\f\211\211@)\f\211A@)\f\211AA@)S\311_\\\312V\203z\313_\314\\\315\245Z\211\313\246\316U\205q\317\246\316U?\206q\320\246\316U)\203zT- \321_\\ \313\245\\ \317\245[\\ \320\245\\* \\!\322 \n#)\207" [businessp task etask-db-attr-taskend days date prior-years etask-add-businessdays-to-date etask-db-get calendar-gregorian-from-absolute 31 2 4 23 10 0 100 400 365 etask-db-set month day year day-of-year newend] 7 (#$ . 136093)]) #@728 Return a string read from the minibuffer or DEFAULT if RET is entered. Prompt with the string PROMPT and use the function ACCEPTABLE to decide if entered item is acceptable. If non-nil, optional third arg INITIAL is a string to insert in the minibuffer before reading according to `read-from-minibuffer'. If non-nil, optional forth arg DEFAULT is the default value according to `read-from-minibuffer'. If the user enters just RET then `read-from-minibuffer' returns the empty string. This function replaces the empty string with the default value if it is a string. Written because calendar-read fails when just typing RET and no inital value is entered -> reason in read-minibuffer, read-from-minibuffer can handle this. (defalias 'etask-read #[(prompt acceptable &optional initial default) "\305 \306\211\211\n&\f !\204\305 \306\211\211\n&\202\n \307\230\203,\n;\203,\n\202- )\207" [prompt initial default value acceptable read-from-minibuffer nil ""] 7 (#$ . 136856)]) #@59 Lose leading and trailing whitespace but keep properties. (defalias 'etask-string-trim #[(string) "\301\302\"\203 \303\225\304O\301\305\"\203\303\211\224O\207" [string string-match "\\`[ \n]+" 0 nil "[ \n]+\\'"] 3 (#$ . 137851)]) #@87 Delete from ALIST all elements whose car is equal to KEY. Return the modified alist. (defalias 'etask-assoc-delete-all #[(key alist) "\211\203 @@\n\232\203\303 @\" A\211\204)\207" [alist tail key delq] 4 (#$ . 138099)]) #@43 Update selected state data: file > memory (defalias 'etask-states-update #[nil "\306!\307\n! ;\203 ;?\206! ;\205! ;\205! \230?\306 !\f\307 !\310\f!\203<\310!?\206P\310\f!\205P\310!\205P\fU?\311 \312 \f\203c\313\n \"\210\203o\313 \f\"\210\313\"\210\313\".\207" [etask-ctrl-zoommodus filemod etask-stateid-zoommodus memmod modp etask-ctrl-zoomfactor etask-get-control-item etask-state-get natnump etask-get-maxbarlen etask-get-maxtasklen etask-state-set zoomfactor etask-stateid-zoomfactor memfact factp maxbarlen maxtasklen etask-stateid-maxbarlen etask-stateid-maxtasklen] 3 (#$ . 138338)]) #@34 Update state data: file > memory (defalias 'etask-all-states-update #[nil "\306 \210\307!\307\n!\307\f!\307\n! \310\f\311\"\210\310 \"\210\310 \"\210\310 \"\210\310 \"\210\310 \",\207" [etask-ctrl-chartbegindate chstart etask-ctrl-chartenddate chend etask-ctrl-todoview-begintime chstarthr etask-states-update etask-get-control-item etask-state-set nil etask-ctrl-todoview-endtime chendhr etask-stateid-last-flag etask-stateid-businessdays etask-use-bizdays etask-stateid-chartstart etask-stateid-chartend etask-stateid-chartstarttime etask-stateid-chartendtime] 3 (#$ . 138983)]) #@34 Update state data: memory > file (defalias 'etask-states-save #[nil "\306!\306 !\306\n!\306 !\211 \203\307\n \"\210\203)\307 \"\210 \2033\307\f \"\210\f\205<\307 \f\",\207" [etask-stateid-chartstart etask-stateid-chartend etask-stateid-chartstarttime etask-stateid-chartendtime chartendtime chartstarttime etask-state-get etask-set-control-item chartend chartstart etask-ctrl-chartbegindate etask-ctrl-chartenddate etask-ctrl-todoview-begintime etask-ctrl-todoview-endtime] 6 (#$ . 139589)]) #@36 Remove STATE from EtaskMode state. (defalias 'etask-state-clear #[(statestr) ";\205 \302 \"\211\207" [statestr etask-state-var etask-assoc-delete-all] 3 (#$ . 140107)]) #@31 Add STATE to EtaskMode state. (defalias 'etask-state-set #[(statestr value) ";\205' ;\204\303 !\204\304 !\204\305 !\205'\306!\210 D\nB\211\207" [statestr value etask-state-var natnump boolean-p etask-calendardate-is-legal-p etask-state-clear] 2 (#$ . 140286)]) #@45 Return true if STATE is set, nil otherwise. (defalias 'etask-state-get #[(statestr) ";\205 \302 \"A@\207" [statestr etask-state-var assoc] 3 (#$ . 140565)]) #@63 Return true if state STATESTR is set to VALUE, nil otherwise. (defalias 'etask-state-p #[(statestr value) ";\205H\303!\211<\203\n \235\202G\304\n!\203&\304 !\203&\n U\202G\n;\2036 ;\2036\n \230\202G\305\n!\203F\305 !\203F\n\202G\306)\207" [statestr val value etask-state-get natnump boolean-p nil] 3 (#$ . 140731)]) #@48 Return minimum window height to view all data. (defalias 'etask-get-window-minheight #[nil "\303 \304\305\"\203 \202\n\\\207" [etask-ctrl-onlinehelp etask-lines-except-tasklines etask-lines-taskstatus etask-cat-get-elementnum etask-get-control-item main] 4 (#$ . 141069)]) #@31 Return current window height. (defalias 'etask-get-window-currheight #[nil "\300 S\207" [window-height] 1 (#$ . 141353)]) #@76 Return true if current window's height must be increased to view all data. (defalias 'etask-window-too-small-p #[nil "\300 \301 W\207" [etask-get-window-currheight etask-get-window-minheight] 2 (#$ . 141481)]) #@90 Fit window to buffer content and print a message if window's height cannot be increased. (defalias 'etask-fit-window #[nil "\300 \210\301 \205 \302\303!\207" [etask-fit-window-port etask-window-too-small-p message "^"] 2 (#$ . 141697)]) #@316 Insert STRING according to its format string FORM. STRING may have a face. If LEN is non-nil, print exactly LEN characters wide, otherwise print the string. FORM is the alignment string - in left, center, right. Originally written because XEmacs 21.4 patch 6 couldn't do complex insert operations - lost faces. (defalias 'etask-format-insert #[(string &optional len form) "G\n\250\203\f\n\202 G\nV\203\306\nO\202\f\203,\f\307\230\203,\306\202_\f\203H\f\310\230\203H \nW\203H\311\312\n Z!\313\245!\202_\f\203^\f\314\230\203^ \nW\203^\n Z\202_\306\f\203v\f\307\230\203v \nW\203v\n Z\202\235\f\203\216\f\310\230\203\216 \nW\203\216\n Z Z\202\235\f\203\234\f\314\230\203\234\306\202\235\306 \306V\203\253\315 \316\"c\210 c\210\306V\205\273\315\316\"c-\207" [string orilen len str form numspcbef 0 "left" "center" ceiling float 2 "right" make-string 32 numspcaft] 4 (#$ . 141942)]) #@174 Generate Gantt chart within Emacs for all elements in ELEMENTS. If optional SUBLEVEL and MAXSUBLEVEL are provided, include only elements with sublevel zero to maxsublevel. (defalias 'etask-generate-chart #[(elements &optional sublevel maxsublevel) "<\205#G\306V\205#\306\307\n!\307\f!\307!\310!\203/\310!\204/\202W\310!\203N\310!\203NX\203J\202W\311\202W\310!?\205W\306\312\312\312\313!\205!\205!\310!\205!\205!@\314@ \"!\314@\"\"\315 c\210\316\315 GZ\317 GZ#\210\320 \210\315\321 \310!\205\274\310!\205\274W#\306y\210c\210\322\315 G!\210\323 \210`Tb\210\324\"\203\347\325 #%\210\326c\210<\203G\306V\203\203\327@CT\310!\205#\210A\211\204\375A\211\204x\312.\207" [elements len etask-stateid-chartstart chartstart etask-stateid-chartend chartend 0 etask-state-get natnump -1 nil etask-cat-is-valid-catid-p etask-db-get etask-get-infostring etask-insert-elementname etask-get-subelstring etask-insert-delimiter etask-cat-elementnotes-p delete-char etask-goto-delimiter etask-cat-insert-elementbar-p etask-insert-taskbar "\n" etask-generate-chart etask-stateid-maxtasklen maxnamelen sublevel maxsublevel element subelements infostr catid etask-db-attr-taskname elementname etask-db-attr-subtasklist daylen] 7 (#$ . 142875)]) #@23 Return help shortcut. (defalias 'etask-generate-helpshortcut #[(helpp) "\203 \302\303 \"\304P\207\302\305 \"\306P\207" [helpp etask-language etask-lang-msg 780 ": X" 779 ": C-h m"] 3 (#$ . 144233)]) #@91 Return item information including name and relative position within the item's timeframe. (defalias 'etask-generate-item-info #[nil "\306 \307!\310!\311 !\311 !\312 !\203,\312\f!\203,\313\f\"\203,\314\202I\312 !\203H\312\f!\203H\315 C\fC\"\203H\316 \f\"\202I\314\312\n!\203e\312!\203e\313\"\203e\314\202\205\312\n!\203\204\312!\203\204\315C\nC\"\203\204\316\n\"\202\205\314\311 !!\317\"\320!!\205\305\321\322!!!\"\314V\205\254\323!\324P\325\"\326\327 A@\330\314V\205\303\331\323!\332Q\260. \207" [elements projbegin projend etask-stateid-chartstart chartstart etask-stateid-chartend etask-cat-get-current-elts etask-calculate-earliestbegin etask-calculate-lastend etask-state-get etask-calendardate-is-legal-p calendar-date-equal 0 calendar-date-compare etask-days-between nil etask-cat-is-valid-catid-p capitalize etask-cat-get-catitemname number-to-string "d << " "[" ": " etask-cat-get-current-item "]" " >> " "d" chartend etask-earliest-catdate daysbefore etask-latest-catdate daysafter etask-stateid-currcat catid catitemname] 9 (#$ . 144440)]) #@27 Return empty flag string. (defalias 'etask-get-flagstring #[nil "\300\207" [" "] 1 (#$ . 145557)]) #@311 Return infostring consisting of 2 characters and a following spc. If optional NOTESP is non-nil, the element has a non-empty notes file. Optional SUBELEMENTS is a list with all subelements of the current element. If optional FOLLOWERSP is non-nil, then the current (sub)level is not the last to be displayed. (defalias 'etask-get-infostring #[(&optional notesp subelements followersp) "\303 \203\n\304\202 \305 \203\n\204\306\202\305\305R\207" [notesp subelements followersp etask-get-flagstring "i" " " "+"] 4 (#$ . 145664)]) #@59 Return string that shows the subelement level of ELEMENT. (defalias 'etask-get-subelstring #[(&optional element sublevel) "\203\303 !\203 \304V\203\305 \306\"\nP\207\307\207" [element sublevel etask-subelements-prefix natnump 0 make-string 32 ""] 3 (#$ . 146207)]) #@257 Label ELEMENT's bar with ELEMENT's name, if necessary trimmed to LEN letters. The faces applied to the inserted string are determined by the ELEMENT's status and its criticality (customizable). Add an infostring and a sublevel description if applicable. (defalias 'etask-insert-elementname #[(element len &optional sublevel) "\306 \"\211\307\nG ^O\310\306\"\306\"\230\203E\311!\203/\312\f\313\"\202\240\314!\203=\312\f\315\"\202\240\312\f\316\"\202\240\306\"\230\203t\311!\203^\312\f\317\"\202\240\314!\203l\312\f\320\"\202\240\312\f\321\"\202\240\306\"\230\203\240\311!\203\215\312\f\322\"\202\240\314!\203\233\312\f\323\"\202\240\312\f\324\"\325\"\fP\326 \327#,\207" [element etask-db-attr-taskname rawname len elementname str etask-db-get 0 nil etask-cat-is-element-behind-schedule-p etask-apply-face etask-face-normaltaskname-behind-schedule etask-is-task-completed-p etask-face-normaltaskname-completed etask-face-normaltask etask-face-highrisktaskname-behind-schedule etask-face-highrisktaskname-completed etask-face-highrisktask etask-face-criticaltaskname-behind-schedule etask-face-criticaltaskname-completed etask-face-criticaltask etask-get-subelstring etask-format-insert "left" etask-db-attr-subtasklist subelements etask-db-attr-tasktype etask-normaltask-string etask-highrisktask-string etask-criticaltask-string sublevel] 5 (#$ . 146486)]) #@145 Insert `taskname-taskbar-delimiter'. There are different delimiters for marked and unmarked elements. The 5th and 9th symbol are highlighted. (defalias 'etask-insert-delimiter #[(&optional markp) "\305 \211\306U\204\307U\205\310\n\204 \204 c\202H\n\204. \203.\311 \312\"c\202H\n\203; \204;\fc\202H\n\205H \205H\311\f\312\"c*\207" [line navp markp etask-delimiter-marker etask-delimiter-markedtask-marker etask-current-line 5 9 t etask-apply-face etask-face-specialdelimiter] 4 (#$ . 147912)]) #@39 Insert task STATUS in current buffer. (defalias 'etask-insert-status #[(status) "\304eb\210\305 \304\306#d|\210\nc\210\307 \310\"\203\311 \210\312 \210\306\211\207" [buffer-read-only etask-statusheader status etask-ctrl-onlinehelp nil search-forward t etask-get-control-item main etask-insert-help etask-fit-window] 4 (#$ . 148433)]) #@55 Insert help, ie various shortcuts, in current buffer. (defalias 'etask-insert-help #[nil "\302\303\304\305 \306Z\307\"\310\311\312 \"\310\304\305 \306Z\307\"\310\311\313 \"\310\311\314 \"\310\311\315 \"\310\311\316 \"\310\311\317 \"\310\311\320 \"\310\311\321 \"\310\311\322 \"\310\311\323 \"\310\311\324 \"\310\311\325 \"\310\311\326 \"\310\311\327 \"\260 c\210\330\211\207" [buffer-read-only etask-language nil "\n\n" make-string window-width 2 61 "\n" etask-lang-msg 800 801 802 803 804 805 806 807 808 809 810 811 812 813 t] 34 (#$ . 148777)]) #@368 Return a task bar string. The function generates a taskbar for tasks with type TASKTYPE. Every bar consists of two parts: the still OPEN and the already COMPLETED part, given as nonnegative integers. The faces of these parts can be customized for every TASKTYPE. TASKTYPE is in {`etask-highrisktask-string', `etask-criticaltask-string', `etask-normaltask-string'}. (defalias 'etask-calculate-taskbar #[(tasktype open completed) "\306 \307V\203/\n \230\203\fP\202(\n \230\203#P\202( P S\211\202\n\307V\203`\n \230\203D P\202W\n \230\203R\fP\202W P\nS\211\n\2021)\207" [taskbar open tasktype etask-highrisktask-string etask-highriskplanned-marker etask-criticaltask-string nil 0 etask-criticalplanned-marker etask-planned-marker completed etask-highriskcompleted-marker etask-criticalcompleted-marker etask-completed-marker] 3 (#$ . 149334)]) #@791 Insert TASK's taskbar into the draft Gantt chart. START and END are the start and end dates of the draft Gantt chart. DAYLEN is the width of a day in characters. MAXTASKLEN is the maximum task name length in characters. Example: ' ---------------- ' = inserted string 1 2 3 4 1...START, here begins our chart, may or may not be the project begin 2...here starts our task 3...END, here ends our task 4...here ends our chart, may or may not be the projectend Example: '---------------- ' = inserted string 2 1 3 4 2-1...this part is outside the chart  (defalias 'etask-insert-taskbar #[(task start end daylen maxtasklen) " U\203 \306\n \f $\207U\203\307\n \f $\207 U\205\274\310\n!\203\214\311\n!\"\"\312 C\"C\"\203A\313 \"\"\202B\314#\315 #_!$\316$%Y\203[$S\202]$\317\"c\210 \320V\203\210\321\316 \322W\203s\320\202~ \323W\203}\324\202~\325\326\"\315 !\327#\202\212\330c+\207\311\n!\"\"\311\n&\"'\313\"'\"T(\311\n)\"*\313 \f\"T+\331,!\315\332+ _!!^-\312 C\"C\"\203\322\313 \"\"\202\330\313 \"\"[.\312'C\fC\"\203\354\313'\f\"\202\362\313'\f\"[/\311\n0\"12\314V\203\332\3331!2\245!\202\3143\311\n4\"51\314V\20322\314V\2032\332\3335!2\245!\2023\3146(.\314W\203C.\202D\314\\/\314W\203Q/\202R\314\\715V\203e15Z\202f\314836V\203x36Z\202y\3149.\314V\203\221\315\332\333.! _!!\320]\202\222\314:1\314V\203\254 \314V\203\254\332\333(! _!\202\255\314;1\314V\203\307 \314V\203\307\332\3337! _!\202\310\314<5\314V\203\375;\314V\203\375\315\332\3335!1\245;_.\314W\203\364\333.! _\202\365\314\\\320]!!\202\376\314=8\314V\203;\314V\203\315\332<=Z\320]!!\202\314>=>\\\315\\-V\211?\203\215\320\315\334=>\\V\203h=\324V\203h\320=@Z]=\202\214>\324V\203{\320>@Z]>\335??\203\214:@Z\314]:\335?):\314V\203\233\316:\317\"c\210=\314V\203\253\336*\314=#c\210>\314V\205\272\336*>\314#c.\207" [catid etask-category-todoid task start end daylen etask-todo-insert-bar etask-ev-insert-bar etask-is-milestone-p etask-db-get calendar-date-compare etask-days-between 0 round make-string 32 1 etask-format-insert 6 9 2 3 77 "center" "M" etask-state-get etask-simplify-number float abs nil etask-calculate-taskbar etask-category-eventid etask-category-projectid etask-db-attr-taskbegin taskstart earlierdays leadingspaces maxtasklen etask-db-attr-taskend taskend taskdays etask-db-attr-tasktype tasktype chartdays etask-stateid-maxbarlen chartlen reltaskstart reltaskend etask-db-attr-peffort pefforthours etask-workinghours-per-day peffortdays etask-db-attr-eeffort eefforthours eeffortdays taskdaysvisible oefforthours oeffortdays leadingspclen peffortbarlen peffortbarlenvisible eeffortbarlen oeffortbarlen deviation amount] 6 (#$ . 150222)]) #@336 Return string ', DAY X/Y', omit the DAY X/Y part for all categories but project. X is the nth project day from project begin till today and Y is the sum of all project days. SCALEDPROJDAY is the character number from task bar begin to current date. SCALEDMARKERLEN defines the length of one day in characters. (defalias 'etask-insert-currentdatestring #[(scaledprojday scaledmarkerlen) "\306 @\306 A@\307 \310 !\310 !%\311\n!&\312\n!'\313&\314 \"T(\313&'\"T)\315\316*\"\317PG\320(!G\\\320)!G\\+\321 \"\205\212\322\314 \310,!\"\204k\322\314 \310-!\"\204k.\323Y\203\261\324\fT\f/\\.\325\245\\+\325\245Z\f%\\\326\\+Z^]!0\3270\330\"c\2101U\205\255\331\315\316*\"\332\320(!\333\320)!\260\334\"c)\202\212.\335Y\203\336\314 !2+2G\\\325\\3\324\fT\f/\\.\325\245\\+\325\245Z\f%\\\326\\3Z^]!0\3270\330\"c\210\33121U\205\n\337\315\316*\"\332\320(!\333\320)!\260P\334\"c+\202\212\340\314 !2\341\3422G!\337G\\+\\\325\245!3/.\325\245\\4\343\f43X\203@\344\202\\43\\%V\203W%3\211\\\344\\Z\202\\43Z\\\326\\!5\3275\330\"c\210\33121U\205\205\337\315\316*\"\332\320(!\333\320)!\260P\334\"c,.\n\207" [catid item tasklist etask-stateid-maxtasklen maxtasklen etask-stateid-maxbarlen etask-cat-get-current-item etask-cat-get-current-elts etask-state-get etask-calculate-earliestbegin etask-calculate-lastend etask-days-between calendar-current-date etask-lang-msg 772 " /" number-to-string etask-cat-civalid-p calendar-date-equal 14 round 2 1 make-string 32 etask-apply-face " " "/" etask-face-today 9 calendar-day-name ", " calendar-date-string ceiling float floor 0 maxbarlen projbegin projend projday projlen etask-language len-daycounter etask-stateid-chartstart etask-stateid-chartend scaledmarkerlen scaledprojday leadingspc etask-category-projectid date len datestring-middle-pos numofblanks] 9 (#$ . 153286)]) #@61 Insert DATE in timeline. There are DAYLEN chars available. (defalias 'etask-insert-day-in-timeline #[(daylen date) "\304V\203\205\305W\203\306 \211A@)!\202X\305Y\203.\307W\203.\310 \311\211#\312\313O\202X\307Y\203B\314W\203B\310 \311\211#\202X\314Y\203U\315W\203U\310 \311\"\202X\310 !\316\317\320 \"\203i\321\n\322\"\202w\323 !\203s\n\202w\321\n\324\"S\325#\210\326 \327\")\202\214\330S\331\"c\210 c\207" [daylen date str etask-day-marker 2 9 number-to-string 14 calendar-date-string t 0 -5 19 29 etask-format-insert calendar-date-equal calendar-current-date etask-apply-face etask-face-today etask-businessday-p etask-face-holiday "center" etask-add-days-to-date 1 make-string 32] 5 (#$ . 155202)]) #@164 Insert day markers - width of all markers is CHARS, width of one marker is DAYLEN. If there is enough space available print the days as well, starting with DATE. (defalias 'etask-insert-daymarkers #[(chars daylen date) "\303!\2051\303 !\2051 \304Y\203*\305V\2051\306 \n\"\210\307\n\304\" Z\211\202\310 _\311\"c\207" [chars daylen date natnump 1 0 etask-insert-day-in-timeline etask-add-days-to-date make-string 32] 4 (#$ . 155943)]) #@94 Insert project begin/end marker and, if there is enough space, also day markers in timeline. (defalias 'etask-insert-projbeginendmarker #[(daylen date) "\2051\304 !\203 \305V\203\306 \n\"\207\304 !\203' \305U\203'\307c\210 c\207 \310X\2030\307c\207\311\207" [etask-show-projectdates-p daylen date etask-day-marker natnump 2 etask-insert-day-in-timeline "^" 1 nil] 3 (#$ . 156395)]) #@100 Insert today marker in timeline. DAYLEN is the width of today marker. If <1 it is enlarged to 1. (defalias 'etask-insert-todaymarker #[(daylen) "\2058\304 !\203 \305V\203\306 \307 \"\207\304 !\203+ \305U\203+\nc\210\310 \311\"c\207 \312X\2037\310\313\311\"c\207\314\207" [etask-show-projectdates-p daylen etask-today-symbol etask-day-marker natnump 2 etask-insert-day-in-timeline calendar-current-date etask-apply-face etask-face-today 1 "^" nil] 3 (#$ . 156793)]) #@639 Insert timeline markers (chart begin, chart end, today, and day markers) if there is enough space available. SCALEDPROJECTLEN is a nonnegative integer defining the project length in columns. SCALEDOFFSETBEFORE is a nonnegative integer defining the days from chart begin till the current date (inclusive) in columns. If a scaled day is > 1 column, it holds the number of columns till the first column of the current day (inclusive). SCALEDOFFSETAFTER is a nonnegative integer defining the days after the current date till the project end. SCALEDMARKERLEN is a nonnegative integer defining the length of one day in columns (characters). (defalias 'etask-insert-timelinesymbols #[(scaledprojectlen scaledoffsetbefore scaledoffsetafter scaledmarkerlen) "\306!\306 !\306\n!\307 C\fC\"\205\211\310 T\311\"c\210V\203\272Y\203\272\307 C\312 C\"\203\272\307\312 C\fC\"\203\272\313 \"\210\314!\203i\315Y\203i\316\211\\\317\\Z\320 \315\"#\210\202v\310\321\322Z!\317]\311\"c\210\323!\210\314!\203\233\315Y\203\233\316Z\320\312 \315\"#\210\202\261\310\321\321\322Z!\317]Z\324Z!\317]\311\"c\210\313\f\"\210\202\207\315U\203\375\211\\\317\\Y\203\375\323!\210\315Y\203\353\316Z\320\312 \315\"#\210\202\364\310\322Z\311\"c\210\313\f\"\210\202\207\317U\203C\211\\\317\\Y\203C\313 \"\210\315Y\2032\316\211\\\317\\Z\320 \315\"#\210\202;\310\322Z\311\"c\210\323!\210\202\207\307\fC\312 C\"\204W\307\312 C C\"\203\207\313 \"\210\315Y\203x\316\325 \f\"S_\320 \315\"#\210\202\201\310\322Z\311\"c\210\313\f\"\210\326c+\207" [etask-stateid-chartstart etask-stateid-chartend etask-stateid-maxtasklen maxtasklen chartend chartbegin etask-state-get calendar-date-compare make-string 32 calendar-current-date etask-insert-projbeginendmarker natnump 1 etask-insert-daymarkers 0 etask-add-days-to-date round 2 etask-insert-todaymarker 3 etask-days-between "\n" scaledoffsetbefore scaledmarkerlen scaledoffsetafter scaledprojectlen] 6 (#$ . 157276)]) #@171 Insert chart timeline dates. SCALEDMARKERLEN and SCALEDPROJLEN are non-negative integers representing the length of a day and the project length in chars, respectively. (defalias 'etask-insert-datestring #[(scaledmarkerlen scaledprojlen) "\306!\306 !\306\n!\307 T\310\"c\210\311 \203:\312\313 \"\203)\314\315\f!\316\"\202,\315 !\317\320#\210)\202\321Y\203j\312 \f\"\203j\312\313 \"\203Y\314\315 !\316\"\202\\\315 !\317\320#\210)\202\321Y\204\322Y\203\331\321W\203\331\312\313 \"\203\220\314\323 !\316\"\202\223\323 !\312\313 \f\"\203\246\314\323\f!\316\"\202\251\323\f!\317\320#\210\211\\\324\\Y\203\325\307\211\\\324\\Z\310\"c\210\317\320#\210*\202\315 \325\"G\315\f\325\"G\315 \325\"c\210\\\326G\\V\203 \307ZZ\310\"c\210\202\326c\210\315\f\325\"c\210*\327c+\207" [etask-stateid-chartstart etask-stateid-chartend etask-stateid-maxtasklen maxtasklen chartend chartbegin etask-state-get make-string 32 etask-todo-organizer-view-p calendar-date-equal calendar-current-date etask-apply-face calendar-date-string etask-face-today etask-format-insert "center" 19 14 calendar-day-name 0 t " - " "\n" datestr scaledmarkerlen date scaledprojlen start end len2 len1] 4 (#$ . 159326)]) #@66 Insert characters that point to chart begin and chart end dates. (defalias 'etask-insert-projectdates-pointers #[(scaledmarkerlen scaledprojlen) "\306!\306 !\306\n!\307\245Y\204\216\310\311 \"\203&\312\313\314\"\202'\313\310\311 \"\2037\312\313\314\"\2028\313\315 T\316\"c\210c\210\317V\203l\315\307Z\316\"c\210c\210\315\211\\\320\\Z\316\"c\210\202u\315\307Z\316\"c\210c\210\317V\203\215\315\307Z\316\"c\210c\210*\321c+\207" [etask-stateid-chartstart etask-stateid-chartend etask-stateid-maxtasklen maxtasklen chartend chartbegin etask-state-get 2 calendar-date-equal calendar-current-date etask-apply-face "*" etask-face-today make-string 32 1 0 "\n" scaledmarkerlen scaledprojlen start end strend strstart] 4 (#$ . 160597)]) #@107 Insert project timeline markers for chart start, chart end, current date, and end of days, if applicable. (defalias 'etask-insert-datelabels #[(daylen) "\306!\306\n!\306\f!\307 \"T\310 C\311 C\"\204%\312 \311 \"\203.\307 \311 \"T\2024\307 \311 \"[\310\311 C C\"\203H\307\311 \"\202N\307\311 \"[\310 C\311 C\"\204b\312 \311 \"\205q\310\311 C C\"\206q\312\311 \"\313V\203\210\314_ZT!\202\217\314_!\306!\211\314\315_!!^\313V\203\262\314!\202\264\310 C C\"\203\360\316\314_!$\210\203\342\317\"\210\320\"\210\205\376\321\"\202\376\312 \"\203\375\322 !\202\376\323. \207" [etask-stateid-chartstart start etask-stateid-chartend end etask-stateid-maxtasklen maxtasklen etask-state-get etask-days-between calendar-date-compare calendar-current-date calendar-date-equal 1 round etask-simplify-number etask-insert-timelinesymbols etask-insert-projectdates-pointers etask-insert-datestring etask-insert-currentdatestring etask-todo-insert-timelinelabels nil chartlen projday projdays-tomorrow-end insert-today-p daylen scaledprojday etask-stateid-maxbarlen maxbarlen scaledprojlen scaledmarkerlen etask-show-projectdates-p] 7 (#$ . 161377)]) #@188 Return human readable string of EFFORT, given in hours. Examples: 3m, 1w, 5d, 40h for 3 minutes, 1 week, 5 days, and 40 hours, respectively. If EFFORT is not a valid effort return nil. (defalias 'etask-get-effort-str #[(effort) "\247\205p\303!\2037\303 !\2037\303\n!\2037 \304V\2037\n\304V\2037 \n_\246\304U\2037\305 \n_\245!\306P\207\303!\203Y\303 !\203Y \304V\203Y \246\304U\203Y\305 \245!\307P\207\310W\203k\305\311\312\313_!!!\314P\207\305!\315P\207" [effort etask-workinghours-per-day etask-workingdays-per-week natnump 0 number-to-string "w" "d" 1 round etask-simplify-number 60 "min" "h"] 5 (#$ . 162607)]) #@92 Get planned effort for TASK from minibuffer. Optional OLDPEFFORT serves as default value. (defalias 'etask-get-planned-effort #[(task &optional oldpeffort) "\306 \"\307\310\311\312\313\306 \"\f\"\"\314\315 \"\n\247\205&\n\316V\205&\317\320\n!\321Q\322R\323\320!#!)\207" [task etask-db-attr-eeffort eeffort etask-db-attr-taskname etask-longer-taskname-len-minibuf etask-language etask-db-get etask-extract-effort-hours etask-read format "'%s': " etask-shorten-string etask-lang-msg 120 0 " (>= " etask-get-effort-str ")" ": " #[(x) "\303 \"\205\f\304 !\nY\207" [etask-effort-regexp x eeffort string-match etask-extract-effort-hours] 3] oldpeffort] 8 (#$ . 163251)]) #@228 Return a list of element names entered by the user via minibuffer. Collect task names from minibuffer, and return these names as a list if the entered number of tasks is in 1..`etask-max-dataitems' or nil if this number is 0. (defalias 'etask-get-labels #[nil "\306 @\307\nU\2032\310\311\306 A@\312\313\314 \"\315\316\f\"R\317\320 \321U\203*\322\323!\202-\322\324!#!\2023\324\211 \321V\203]\nU\203Q\325\307 ZT $\202S\325 B S\211\2028 \237,\207" [catid labellist etask-category-projectid etask-language etask-max-dataitems labelnum etask-cat-get-current-item nil string-to-number etask-read ": " etask-lang-msg 100 format " (0-%d)? " #[(x) "\303 \"\205\304 !\305Y\205\304 !\nX\207" [etask-wholenumber-regexp x etask-max-dataitems string-match string-to-number 0] 3] etask-cat-get-elementnum 0 number-to-string 10 1 etask-get-taskname temp] 9 (#$ . 163933)]) #@443 Get a task date via minibuffer and return list (month day year). PROMPT is a string containing the prefix prompt for the minibuffer query. TASK (optional) is a list with all the task-specific information; for detailed structure go to `etask-write-element-p'. If used its current begin or - if optional ENDOFTASKP is non-nil - end date is the default value in the minibuffer. BEGINDATE is the task's begin date when ENDOFTASKP is non-nil. (defalias 'etask-get-taskdate #[(prompt &optional task endoftaskp begindate) "\203 \211AA@)\202 \306\307\310\311 \"\312\313\314,\"\315R\316-\203H\317\2038\320-.\"\211AA@)\202D\320-/\"\211AA@)!\202R\317\321 \211AA@)!#!012\3223\323\324\310\311 \"\312\313\325,\"\315R\326\327\3302\331\"\"\331\322-\203\215\203\215\332\320-.\"\211@)!\202\242-\203\241\332\320-/\"\211@)!\202\242\331%\3332\334\"\"A4\203\3250 \211AA@)U\203\3254 \211@)U\203\325 \211A@)\335 !\\\202\336\3354\3340E!T5400\2114\336U\2030\2110\337\246\340U\205\n0\341\246\340U?\206\n0\342\246\340U)\203\343\202\3444SH*6\345460E!\203+6\20276\346460E!Z757V\203H\334\211\211E\202\2724\306\307\310\311 \"\312\313\347,\"\350\310\351\3525!7#\260\353-\203\206\203\2065\334V\203\206\3525\320-.\"\211A@)]!\202\265-\203\237\203\237\352\320-.\"\211A@)!\202\265-\203\264\352\320-/\"\211A@)!\202\265\331#!0E.\207" [endoftaskp begindate date etask-earliest-taskstart-year safyear prompt string-to-number etask-read format "%s" " - " etask-lang-msg 776 " ? " #[(x) "\303 \"\205\f\304 !\nY\207" [etask-wholenumber-regexp x safyear string-match string-to-number] 3] int-to-string etask-db-get calendar-current-date t assoc-ignore-case completing-read 777 mapcar list append nil calendar-month-name calendar-make-alist 1 etask-days-till-business-day 2 4 0 100 400 29 [31 28 31 30 31 30 31 31 30 31 30 31] etask-businessday-p etask-days-till-business-day-before 721 " " "(%s-%d): " number-to-string #[(x) "\306 \"\205\n\307 !X\205\307 ! X\205\310\f\307 ! E!\207" [etask-wholenumber-regexp x safendday lastbizday month year string-match string-to-number etask-businessday-p] 4] etask-language task etask-db-attr-taskend etask-db-attr-taskbegin year calendar-month-name-array month-array completion-ignore-case month safendday last lastbizday] 12 (#$ . 164825)]) #@257 Get TASKNAME's planned end date and ensure that it is at or after DATE. The function calls `etask-get-taskdate' to get TASKNAME's planned end date until the returned date is after DATE. PROMPT and optional TASK are processed within `etask-get-taskdate'. (defalias 'etask-get-taskenddate #[(taskname prompt date &optional task) "\306\307 \2030\310\n \311\f$\312\fCC\"\204\313\f\"\203%\307\211\202\314\315\316\317 \"\"\210\202*\207" [tmp illegaldatep prompt task date etask-language t nil etask-get-taskdate gettaskend calendar-date-compare calendar-date-equal error "%s" etask-lang-msg 1003] 6 (#$ . 167202)]) #@496 Get task name from minibuffer and delete leading and trailing whitespaces. The empty string is not a valid taskname. Uniqueness is checked against current element names unless NAMES is non-nil - see below. If optional OLDNAME is non-nil it serves as the default task name. If optional NUM and TOTAL are non-nil the user enters more than one task at once. The current task name is the NUMth out of TOTAL task names. If optional NAMES is non-nil, uniqueness is checked against this list,too. (defalias 'etask-get-taskname #[(&optional oldname num total names) "\306\307\310 @\311\312!! \203\216\313\314\f\203(\315\316 \"\317\320\321\f\"\"P\202K\203C\203C\315\322 \"\323 \317\324#R\202K \325\315\322 \"\325R\307\211\211\211\f&!\f;\203a\n\f\230\204\210\n\326\230\204\203{\n\235\204{\n\327\330!\235\203\210\204\n\327\330!\235\204\307\211\204\n,\207" [catid element newname invalid oldname etask-language t nil etask-cat-get-current-item capitalize etask-cat-get-catelementname etask-string-trim completing-read etask-lang-msg 299 format ": '%s': " etask-shorten-string 781 " (" " %d/%d): " ": " "" etask-cat-get-current-elts names etask-longer-taskname-len-minibuf num total etask-task-alist] 10 (#$ . 167835)]) #@60 Return non-nil if BOOL is nil or t. ---> Source: eieio.el (defalias 'boolean-p #[(bool) "?\206\301=\207" [bool t] 2 (#$ . 169098)]) (byte-code "\301\302\303!\207" [etask-loaded-p t provide etask] 2)