diff options
author | Miles Bader <miles@gnu.org> | 2007-06-11 01:00:07 +0000 |
---|---|---|
committer | Miles Bader <miles@gnu.org> | 2007-06-11 01:00:07 +0000 |
commit | 67f3ad67ee317226cb5d1bb139de0cfd883fdc5e (patch) | |
tree | 58a0e1bea7a1d8728fd32e6127a44434e7eac006 /lisp | |
parent | d17cf4eb2024cf54e4a216312184665094ee3df4 (diff) | |
parent | 2d715b39ea1c89066f469405d065dd1a6631d28e (diff) | |
download | emacs-67f3ad67ee317226cb5d1bb139de0cfd883fdc5e.tar.gz |
Merge from emacs--devo--0
Patches applied:
* emacs--devo--0 (patch 781-792)
- Update from CVS
- Merge from gnus--rel--5.10
- Merge from emacs--rel--22
* emacs--rel--22 (patch 33-41)
* gnus--rel--5.10 (patch 226-228)
- Update from CVS
Revision: emacs@sv.gnu.org/emacs--multi-tty--0--patch-21
Diffstat (limited to 'lisp')
45 files changed, 6344 insertions, 2328 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 9a79d4a0b55..c0b00b8fbb1 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,267 @@ +2007-06-10 Martin Rudalics <rudalics@gmx.at> + + * emacs-lisp/bytecomp.el (byte-compile-find-cl-functions): Match + against file-name-nondirectory. + Fix text on user customization variables. + Reported by Johan Bockg,Ae(Brd <bojohan@dd.chalmers.se>. + +2007-06-09 Alfred M. Szmidt <ams@gnu.org> (tiny change) + + * mail/rmail.el (rmail-movemail-variant-in-use): Fix doc typo. + +2007-06-09 Davis Herring <herring@lanl.gov> + + * desktop.el (desktop-minor-mode-table): Doc fix. + +2007-06-08 Stefan Monnier <monnier@iro.umontreal.ca> + + * textmodes/css-mode.el (css-navigation-syntax-table): + Use set-char-table-range so it also works in the unicode branch. + +2007-06-08 Nick Roberts <nickrob@snap.net.nz> + + * help-mode.el (help-xref-forward-stack) + (help-xref-stack-forward-item, help-forward-label): New variables. + (help-forward): New button type. + (help-setup-xref): Initialise help-xref-forward-stack. + (help-make-xrefs): Add forward button, if appropriate. + (help-xref-go-back): Push item on forward stack. + (help-xref-go-forward, help-go-forward): New functions. + +2007-06-07 Chong Yidong <cyd@stupidchicken.com> + + * dired.el (dired-mode-map): Remove spurious separator. + +2007-06-07 Juanma Barranquero <lekktu@gmail.com> + + * progmodes/ebrowse.el (ebrowse-draw-file-member-info): Doc fix. + + * progmodes/mixal-mode.el (mixal-operation-codes-alist): + * progmodes/idlwave.el (idlwave-one-key-select): Fix typo in docstring. + +2007-06-07 Carsten Dominik <dominik@science.uva.nl> + + * textmodes/org.el: Version number fixed. + +2007-06-07 Glenn Morris <rgm@gnu.org> + + * version.el (emacs-copyright): New constant. + * startup.el (fancy-splash-tail): Use emacs-copyright. + * calc/calc-help.el (calc-full-help): Use emacs-copyright. + + * emacs-lisp/bytecomp.el (byte-compile-warnings): Add new option + `make-local'. + (byte-compile-warnings-safe-p): Add `make-local'. + (byte-compile-make-variable-buffer-local): + Allow byte-compile-warnings to suppress this warning. + + * tutorial.el (tutorial--describe-nonstandard-key): Adjust for new + format of "menu" description. + (tutorial--find-changed-keys): Describe the specific menu a + command is in. + + * dframe.el (dframe-frame-parameter, dframe-mouse-event-p): + Rewrite compatibility functions to silence byte-compiler. + +2007-06-07 Alfred M. Szmidt <ams@gnu.org> (tiny change) + + * mail/rmailsum.el (rmail-summary-save-buffer): New command. + (rmail-summary-mode-map): Add rmail-summary-save-buffer. + +2007-06-07 Eric M. Ludlam <eric@siege-engine.com> + + * emacs-lisp/checkdoc.el (checkdoc-ispell-lisp-words): Remove "iff". + +2007-06-07 Juanma Barranquero <lekktu@gmail.com> + + * progmodes/ebrowse.el (ebrowse-member-table): + * textmodes/org.el (org-export-ascii-bullets, org-batch-agenda) + (org-batch-agenda-csv): Fix typos in docstrings. + +2007-06-06 Juanma Barranquero <lekktu@gmail.com> + + * international/mule-cmds.el (toggle-enable-multibyte-characters) + (sort-coding-systems, search-unencodable-char): Doc fixes. + (coding-system-change-eol-conversion, set-default-coding-systems) + (prefer-coding-system, find-multibyte-characters, princ-list) + (leim-list-entry-regexp, set-input-method, locale-language-names) + (input-method-exit-on-first-char, exit-language-environment-hook) + (locale-charset-language-names): Fix typos in docstrings. + +2007-06-06 Juanma Barranquero <lekktu@gmail.com> + + * pgg.el (pgg-sign-region, pgg-sign): + * ses.el (ses-call-printer): + * calendar/icalendar.el (icalendar--diarytime-to-isotime): + * textmodes/org.el (org-cycle): Fix typos in docstrings. + +2007-06-06 Carsten Dominik <dominik@science.uva.nl> + + * textmodes/org.el + (org-export-region-as-html, org-replace-region-by-html) + (org-number-to-letters, org-table-fedit-finish) + (org-normalize-color, org-table-fedit-ref-right) + (org-date-to-gregorian, org-table-fedit-move) + (org-table-convert-refs-to-rc, org-calendar-holiday) + (org-table-fedit-toggle-ref-type, org-write-agenda) + (org-colgroup-info-to-vline-list, org-agenda-todo-previousset) + (org-defkey, org-encode-for-stdout) + (org-indent-line-function, org-export-as-html-to-buffer) + (org-store-agenda-views, org-update-mode-line) + (org-find-if, org-delete-all) + (org-table-fedit-convert-buffer, org-emphasize) + (org-uniquify, org-table-fedit-lisp-indent) + (org-table-fedit-scroll, org-get-todo-sequence-head) + (org-table-fedit-scroll-down, org-table-fedit-line-down) + (org-table-fedit-ref-left, org-agenda-export-csv-mapper) + (org-table-fedit-toggle-coordinates, org-dvipng-color) + (org-table-fedit-line-up, org-table-fedit-ref-down) + (org-table-formula-from-user, org-mode-flyspell-verify) + (org-cycle-show-empty-lines, org-ctrl-c-ret) + (org-table-formula-to-user, org-diary-to-ical-string) + (orgtbl-export, org-table-fedit-post-command) + (org-closed-in-range, org-shiftcontrolright) + (org-table-convert-refs-to-an, org-table-hline-and-move) + (org-table-formula-less-p, org-format-table-ascii) + (org-agenda-get-sexps, org-shift-refpart) + (org-diary-sexp-entry, org-time-string-to-absolute) + (org-table-show-reference, org-letters-to-number) + (org-fix-agenda-info, org-table-fedit-ref-up) + (org-table-fedit-shift-reference, org-table-fedit-abort) + (org-closest-date, org-shiftcontrolleft) + (org-at-heading-or-item-p, org-rematch-and-replace) + (org-agenda-todo-nextset, org-export-grab-title-from-buffer): + New functions. + (org-table-edit-scroll-down, org-finish-edit-formulas) + (org-table-edit-next-field, org-abort-edit-formulas) + (org-font-lock-level, org-export-find-first-heading-line) + (org-table-edit-line-down, org-table-edit-backward-field) + (org-edit-formula-lisp-indent, org-table-edit-move) + (org-check-log-option, org-this-word) + (org-table-edit-line-up, org-table-edit-formulas-post-command) + (org-agenda-file-to-end, org-expand-file-name) + (org-fake-empty-table-line, org-table-edit-scroll) + (org-toggle-log-option, org-show-reference): Function removed. + (org-inhibit-invisibility, org-table-formula-make-cmp-string): + New defsubsts. + (org-unmodified, org-batch-store-agenda-views) + (org-batch-agenda-csv): New macro. + (org-agenda-export): New customization group. + (org-agenda-skip-deadline-if-done, org-agenda-remove-tags) + (org-highest-priority, org-agenda-exporter-settings) + (org-log-done-with-time, org-replace-disputed-keys) + (org-format-latex-header, org-export-table-header-tags) + (org-cycle-separator-lines, org-export-table-data-tags) + (org-icalendar-include-sexps) + (org-empty-line-terminates-plain-lists) + (org-log-repeat, org-special-ctrl-a) + (org-table-use-standard-references, org-disputed-keys) + (org-export-skip-text-before-1st-heading, org-agenda-with-colors) + (org-agenda-export-html-style): New option. + (org-allow-auto-repeat, org-agenda-remove-tags-when-in-prefix) + (org-CUA-compatible): Option removed. + (org-agenda-structure, org-sexp-date): New face. + (org-todo-keywords-for-agenda, org-not-done-keywords) + (org-planning-or-clock-line-re, org-agenda-name) + (org-table-colgroup-info, org-todo-sets) + (constants-unit-system, org-clock-mode-line-entry) + (org-mode-line-timer, org-table-current-begin-pos) + (org-todo-keywords-1, org-mode-line-string) + (org-table-clean-did-remove-column, org-table-fedit-map) + (org-clock-heading, org-table-buffer-is-an) + (org-agenda-info, org-done-keywords) + (org-done-keywords-for-agenda, org-todo-heads) + (org-todo-kwd-alist, org-clock-start-time): New variable. + (org-todo-kwd-priority-p, org-edit-formulas-map) + (org-repeat-re, org-todo-kwd-max-priority) + (org-version, org-done-string) + (org-table-clean-did-remove-column-1, org-disputed-keys): + Remove Variables. + (org-table-translate-regexp, org-repeat-re, org-version): New consts. + (org-ts-lengths): Constant removed. + (org-follow-gnus-link): Don't ask how many articles to read. + (org-export-find-first-export-line): Rename from + `org-export-find-first-heading'. + Use `org-export-skip-text-before-1st-heading'. + (org-table-fedit-post-command): Rename from + `org-table-edit-formulas-post-command'. + (org-table-fedit-finish): Rename from `org-finish-edit-formulas'. + (org-table-fedit-abort): Rename from `org-abort-edit-formulas'. + (org-table-fedit-lisp-indent): Rename from + `org-edit-formula-lisp-indent'. + (org-table-show-reference): Rename from `org-show-reference'. + (org-table-store-formulas): Use `org-table-formula-less-p'. + (org-table-edit-formulas): Position cursor to current field equation. + (org-update-checkbox-count, org-hide-archived-subtrees) + (org-timestamp-up-day, org-timestamp-down-day) + (org-shiftmetaleft, org-shiftmetaright, org-shiftmetaup) + (org-shiftmetadown, org-metaleft, org-metaright, org-metaup) + (org-metadown, org-shiftup, org-shiftdown, org-shiftright) + (org-shiftleft, org-ctrl-c-ctrl-c, org-context): + Let `org-on-heading-p' also check for invisible heading. + (org-read-date): Match am/pm times. + (org-eval-in-calendar): Fix default date in prompt. + +2007-06-05 Chong Yidong <cyd@stupidchicken.com> + + * files.el (auto-mode-alist): Separate "ChangeLog.1" and + "ChangeLog.a" entries, giving the latter lower priority. + +2007-06-05 Juanma Barranquero <lekktu@gmail.com> + + * faces.el (face-id): If the argument is a face alias, + return the ID of the target face. + +2007-06-05 Michael Albinus <michael.albinus@gmx.de> + + * net/socks.el (top): Remove unnecessary copyright line. + +2007-06-04 Chong Yidong <cyd@stupidchicken.com> + + * longlines.el (longlines-auto-wrap): Handle argument correctly. + +2007-06-04 Michael Albinus <michael.albinus@gmx.de> + + * net/socks.el: New file, taken from w3 repository. + (top): Update Copyright. Don't load cl.el. + (all): Replace `case' by `cond', `string-to-int' by + `string-to-number', and `process-kill-without-query' by + `set-process-query-on-exit-flag'. + (socks-char-int): Remove defalias and all occurencies. + +2007-06-04 Juanma Barranquero <lekktu@gmail.com> + + * progmodes/compile.el (compilation-find-file, compilation-handle-exit): + Fix typos in docstrings. + (compilation-search-path, compilation-buffer-name-function): Doc fixes. + (compilation-finish-function): Fix typo in obsolescence declaration. + +2007-06-03 Sam Steingold <sds@gnu.org> + + * progmodes/compile.el: Add TIMESTAMP to the LOC data structure, to + handle unending automatic recompilation of changed files (`omake -P'). + (compilation-loop): VISITED is now 5th CDR. + (compilation-next-error-function): Set TIMESTAMP. + +2007-06-03 Sam Steingold <sds@gnu.org> + + * files.el (kill-buffer-ask): New function. + (kill-some-buffers): Use it. + (kill-matching-buffers): New user command. + +2007-06-01 David Kastrup <dak@gnu.org> + + * dired.el (dired-recursive-deletes, dired-recursive-copies): + Change default to `top'. + +2007-05-31 Richard Stallman <rms@gnu.org> + + * dired.el (dired-do-flagged-delete, dired-do-delete): Doc fix. + +2007-05-31 Stefan Monnier <monnier@iro.umontreal.ca> + + * textmodes/css-mode.el: New file. + 2007-05-30 Michael Olson <mwolson@gnu.org> * emacs-lisp/tq.el (tq-queue-pop): Stifle error when a process has @@ -9,8 +273,8 @@ 2007-05-29 Martin Rudalics <rudalics@gmx.at> * textmodes/table.el (table--point-entered-cell-function) - (table--point-left-cell-function): Bind - `inhibit-point-motion-hooks' to t. + (table--point-left-cell-function): + Bind `inhibit-point-motion-hooks' to t. 2007-05-29 Nikolaj Schumacher <n_schumacher@web.de> (tiny change) @@ -35,18 +299,17 @@ * net/tramp.el (top): Make `set-buffer-multibyte' an alias if it doesn't exist. - (with-parsed-tramp-file-name): Protect debug spec during - compilation. + (with-parsed-tramp-file-name): Protect debug spec during compilation. (tramp-handle-insert-directory): Check (featurep 'ls-lisp). (tramp-file-name-p, tramp-file-name-multi-method) (tramp-file-name-method, tramp-file-name-user) (tramp-file-name-host, tramp-file-name-localname): New defuns, replacing defstruct `tramp-file-name'. (tramp-handle-file-remote-p, tramp-completion-dissect-file-name1) - (tramp-dissect-file-name, tramp-dissect-multi-file-name): Apply - `vector' instead of `make-tramp-file-name'. - (tramp-handle-make-auto-save-file-name): Apply - `tramp-temporary-file-directory' for compatibility reasons. + (tramp-dissect-file-name, tramp-dissect-multi-file-name): + Apply `vector' instead of `make-tramp-file-name'. + (tramp-handle-make-auto-save-file-name): + Apply `tramp-temporary-file-directory' for compatibility reasons. (tramp-completion-mode): Use `natnump' instead of `wholenump' because of XEmacs. (tramp-completion-mode): `last-input-event' is nil when XEmacs is @@ -170,8 +433,8 @@ 2007-05-22 Katsumi Yamaoka <yamaoka@jpl.org> (tiny change) - * mail/mail-extr.el (mail-extract-address-components): Recognize - non-ASCII characters except for NBSP as words. + * mail/mail-extr.el (mail-extract-address-components): + Recognize non-ASCII characters except for NBSP as words. 2007-05-21 Trent Buck <trentbuck@gmail.com> (tiny change) @@ -182,8 +445,8 @@ 2007-05-21 Chong Yidong <cyd@stupidchicken.com> * image-mode.el (image-toggle-display): Don't clear image cache. - Only use filename in image spec if the file is readable. Call - image-refresh. + Only use filename in image spec if the file is readable. + Call image-refresh. * image.el (image-type-from-file-name, image-type): Simplify. (image-type-auto-detected-p): Don't scan auto-mode-alist. @@ -211,6 +474,10 @@ * files.el (auto-mode-alist): Change the regexp so that ChangeLog.unicode and ChangeLog.multi-tty use change-log-mode. +2007-06-02 Chong Yidong <cyd@stupidchicken.com> + + * Version 22.1 released. + 2007-05-19 Chong Yidong <cyd@stupidchicken.com> * paren.el (show-paren-function): Undo 2007-04-19 and 2007-04-20 @@ -230,7 +497,7 @@ 2007-05-18 Rob Riepel <riepel@Stanford.EDU> - * emulation/tpu-edt.el (CSI-map, SS3-map): Moved from global-map to + * emulation/tpu-edt.el (CSI-map, SS3-map): Move from global-map to tpu-global-map. (tpu-original-global-map): Variable deleted. (tpu-control-keys-map): New keymap variable. diff --git a/lisp/ChangeLog.12 b/lisp/ChangeLog.12 index 52cd55f87b5..2bfbe99e1f0 100644 --- a/lisp/ChangeLog.12 +++ b/lisp/ChangeLog.12 @@ -271,7 +271,7 @@ 2007-04-14 Nick Roberts <nickrob@snap.net.nz> * tmm.el (tmm-get-keybind): Use copy-sequence to ensure that the - global map isn't modified + global map isn't modified. 2007-04-14 Glenn Morris <rgm@gnu.org> @@ -1413,7 +1413,7 @@ * progmodes/python.el (python-quote-syntax): Don't bother with syntax-ppss-context. (python-fill-paragraph): Make sure that fenced-string delimiters that - stand on their own line stay there + stand on their own line stay there. 2007-03-01 Lennart Borgman <lennart.borgman.073@student.lu.se> @@ -2549,7 +2549,7 @@ * type-break.el (type-break-demo-hanoi, type-break-demo-life) (type-break-demo-boring): Call read-event instead of read-char. -2007-01-19 Daniel Pfeiffer <occitan@esperanto.org> (small change) +2007-01-19 Daniel Pfeiffer <occitan@esperanto.org> (tiny change) * progmodes/compile.el: Add handling for makepplog. @@ -3414,7 +3414,7 @@ (wdired-search-and-rename): Simplify code. (wdired-preprocess-files, wdired-preprocess-perms): Make read-only property of preceding character rear-nonsticky to - avoid that it can be modified. Put old-name and old-link + avoid that it can be modified. Put old-name and old-link properties on character preceding name and replace put-text-property by add-text-properties. (wdired-get-filename, wdired-get-previous-link): Get old-name @@ -3605,7 +3605,7 @@ allout-mode-map. Call it on file load, so the mode docstring substitutions work even if allout mode has not yet been invoked. (allout-mode): Use new allout-setup-mode-map to track any keybinding - customizations since the map was last processed. Also, refine the + customizations since the map was last processed. Also, refine the docstring so it's ship-shape for release. (allout-default-layout, allout-beginning-of-line-cycles) (allout-distinctive-bullets-string, allout-use-mode-specific-leader) @@ -5281,7 +5281,7 @@ New C-c key bindings: for `cperl-find-bad-style', `cperl-pod-spell', `cperl-here-doc-spell', `cperl-narrow-to-here-doc', `cperl-perdoc', and `cperl-perldoc-at-point'. - CPerl Mode menu changes: "Fix style by spaces", "Imenu on Perl Info" + CPerl Mode menu changes: "Fix style by spaces", "Imenu on Perl Info" moved, new submenu of Tools with Ispell entries and narrowing. (cperl-after-sub-regexp): New defsubst. (cperl-imenu--function-name-regexp-perl): Use `cperl-after-sub-regexp'. @@ -5304,7 +5304,7 @@ (cperl-calculate-indent): Try to allow '_' be non-word char Support subs with attributes. (cperl-where-am-i): Quiet (?) a warning. - (cperl-cached-syntax-table) New function. + (cperl-cached-syntax-table): New function. (cperl-forward-re): Use `cperl-cached-syntax-table'. (cperl-unwind-to-safe): Recognize `syntax-type' property changing in a middle of line. @@ -5478,7 +5478,7 @@ (cperl-string-syntax-table): Make { and } not-grouping (Sometimes they ARE grouping in RExen, but matching them would only confuse in many situations when they are not) - (beginning-of-buffer): Replace two occurences with goto-char... + (beginning-of-buffer): Replace two occurrences with goto-char... (cperl-calculate-indent): `char-after' could be nil... (cperl-find-pods-heres): REx can start after "[" too. Hightlight (??{}) in RExen too. @@ -5551,7 +5551,7 @@ (cperl-next-interpolated-REx): New function. (cperl-next-interpolated-REx-0): Likewise. (cperl-next-interpolated-REx-1): Likewise. - "\C-c\C-x", "\C-c\C-y", "\C-c\C-v": New keybinding for these functions. + "\C-c\C-x", "\C-c\C-y", "\C-c\C-v": New keybinding for these functions. Perl/Regexp menu: 3 new entries for `cperl-next-interpolated-REx'. (cperl-praise): Mention finded interpolated RExen. @@ -5797,7 +5797,7 @@ * wid-edit.el (widget-button-click-moves-point): New variable. (widget-button-click): If widget-button-click-moves-point is - non-nil, set point after performing the button action + non-nil, set point after performing the button action. * cus-edit.el (custom-mode): Set widget-button-click-moves-point. @@ -6069,8 +6069,8 @@ buffer-read-only isn't set. (allout-annotate-hidden): Enable topic annotation during copies even when the buffer is read-only, eg for topic copies. Ensure that the loop - advances, even when the span extends beyond the deletion region. - (allout-toggle-subtree-encryption): Use allout-structure-added-hook + advances, even when the span extends beyond the deletion region. + (allout-toggle-subtree-encryption): Use allout-structure-added-hook rather than allout-exposure-changed-hook, as a stronger assertion. (allout-keybindings-list): Add bindings for allout-copy-line-as-kill and allout-copy-topic-as-kill. @@ -6121,7 +6121,7 @@ * cus-start.el (all): Rename x-gtk-show-chooser-help-text to x-gtk-file-dialog-help-text. Rename x-use-old-gtk-file-dialog - to x-gtk-use-old-file-dialog + to x-gtk-use-old-file-dialog. 2006-09-18 Richard Stallman <rms@gnu.org> @@ -8116,7 +8116,7 @@ * tumme.el (tumme-create-thumb, tumme-thumbnail-display-external) (tumme-display-image, tumme-rotate-thumbnail, tumme-rotate-original) - (tumme-set-exif-data, tumme-get-exif-data): Use shell-command-switch. + (tumme-set-exif-data, tumme-get-exif-data): Use shell-command-switch. * thumbs.el (thumbs-call-convert): Use shell-command-switch. @@ -8652,7 +8652,7 @@ (viper-next-line-at-bol): If point is on a widget or a button, simulate clicking on that widget/button. - * viper.el (viper-mode): Allow a separate cursor color in Emacs state. + * viper.el (viper-mode): Allow a separate cursor color in Emacs state. * ediff-diff (ediff-test-patch-utility): Catch errors. (ediff-actual-diff-options, ediff-actual-diff3-options): New variables. @@ -9203,7 +9203,7 @@ (ewoc--wrap): New func. (ewoc-create): Take additional arg NOSEP. If nil, wrap node and header/footer pretty-printers. Save header/footer pretty-printer. - (ewoc-set-hf): Use ewoc's header/footer pretty-printer. * + (ewoc-set-hf): Use ewoc's header/footer pretty-printer. * pcvs.el (cvs-make-cvs-buffer): Specify NOSEP to `ewoc-create'. @@ -10152,7 +10152,7 @@ 2006-05-05 Eli Zaretskii <eliz@gnu.org> * startup.el (command-line): On MS-Windows, probe "~", not - "~USER", for warning about non-existent home directory + "~USER", for warning about non-existent home directory. * arc-mode.el (archive-l-e): New optional argument `float' means generate a float value. @@ -12103,7 +12103,7 @@ preserve window-start. (speedbar-update-directory-contents): Try to preserve window-start and window-point. - (speedbar-update-special-contents): Don't move back to start of window. + (speedbar-update-special-contents): Don't move back to start of window. * progmodes/gdb-ui.el (gdb-speedbar-refresh): Rename from gdb-speedbar-timer-fn. Use speedbar-refresh instead of @@ -12729,7 +12729,7 @@ (allout-mode): Explicitly specify the mode map in the docstring. Clarify provision for various write-file hook var names. - Adjusted for invisible-text overlays instead of selective-display. + Adjusted for invisible-text overlays instead of selective-display. (allout-depth): Really return 0 if not within any topic. This rectifies `allout-beginning-of-level' and sequence numbering @@ -15747,10 +15747,10 @@ 2005-12-08 Alan Mackenzie <bug-cc-mode@gnu.org> * progmodes/cc-fix.el: Add definitions of the macros push and pop - (for GNU Emacs 20.4) + (for GNU Emacs 20.4). * progmodes/cc-defs.el: - (i): Load cc-fix.elc for `push' and `pop' (for GNU Emacs 20.4) + (i): Load cc-fix.elc for `push' and `pop' (for GNU Emacs 20.4). * progmodes/cc-cmds.el (c-show-syntactic-information): Change the highlighting mechanism so it will work in XEmacs too. @@ -16051,7 +16051,7 @@ Introduce an "awk" style, mainly for auto-newline and clean-ups. - * progmodes/cc-align.el: New function c-snug-1line-defun-close + * progmodes/cc-align.el: New function c-snug-1line-defun-close. * progmodes/cc-cmds.el: In c-electric-brace, add code for new clean-up one-liner-defun. @@ -16185,7 +16185,7 @@ * progmodes/cc-awk.el: Move regexps for analysing AWK code to near the start of the file. ^L now separate sections of the file. - (c-awk-non-eol-esc-pair-re, c-awk-blank-or-comment-line-re) + (c-awk-non-eol-esc-pair-re, c-awk-blank-or-comment-line-re) (c-awk-one-line-possibly-open-string-re) (c-awk-regexp-one-line-possibly-open-char-class-re) (c-awk-one-line-possibly-open-regexp-re) @@ -17298,7 +17298,7 @@ 2005-11-30 Kim F. Storm <storm@cua.dk> - * emulation/cua-rect.el (cua--rectangle-overlays): Make permanent-local. + * emulation/cua-rect.el (cua--rectangle-overlays): Make permanent-local. (cua--rectangle-post-command): Cleanup overlays and deactivate mark after revert-buffer (or anything else which kills all local variables). @@ -18540,7 +18540,7 @@ (pgg-pgp5-sign-region, pgg-pgp5-sign): Add optional PASSPHRASE argument to all these routines, so the passphrase can be managed externally and passed in to the system. - (pgg-pgp5-sign-region): Use new name of pgg-add-passphrase-to-cache + (pgg-pgp5-sign-region): Use new name of pgg-add-passphrase-to-cache function. 2005-11-04 Dan Nicolaescu <dann@ics.uci.edu> @@ -18762,7 +18762,7 @@ (pgg-pgp5-sign-region, pgg-pgp5-sign): Add optional PASSPHRASE argument to all these routines, so the passphrase can be managed externally and passed in to the system. - (pgg-pgp5-sign-region): Use new name of pgg-add-passphrase-to-cache + (pgg-pgp5-sign-region): Use new name of pgg-add-passphrase-to-cache function. 2005-11-04 Edward O'Connor <hober0@gmail.com> (tiny change) @@ -19664,14 +19664,14 @@ New defvar. Replaces `dired-move-to-filename-regexp' from dired.el. * dired.el (dired-move-to-filename-regexp): Remove. - All occurences replaced by `directory-listing-before-filename-regexp'. + All occurrences replaced by `directory-listing-before-filename-regexp'. * dired-x.el, locate.el, vc.el: Replace `dired-move-to-filename-regexp' by `directory-listing-before-filename-regexp'. In vc.el it is overwritten locally; maybe this can be handled in files.el too. - * net/ange-ftp.el (ange-ftp-date-regexp): Remove. All occurences + * net/ange-ftp.el (ange-ftp-date-regexp): Remove. All occurrences replaced by `directory-listing-before-filename-regexp'. 2005-10-23 Andreas Schwab <schwab@suse.de> @@ -19923,7 +19923,7 @@ (outlineify-sticky): Use the file vars mechanism. (allout-inhibit-protection, allout-during-write-cue) (allout-override-protect, allout-before-change-protect): Remove. - (allout-flag-region, allout-open-topic): Adjust read-only text. + (allout-flag-region, allout-open-topic): Adjust read-only text. (allout-open-line-not-read-only): Add to facilitate read-only text based protection. (allout-kill-line): Revise to adjust read-only text, clue the @@ -20402,7 +20402,7 @@ 2005-10-12 Jan Dj,Ad(Brv <jan.h.d@swipnet.se> - * startup.el (command-line-x-option-alist): -nb => -nbi + * startup.el (command-line-x-option-alist): -nb => -nbi. 2005-10-12 Kim F. Storm <storm@cua.dk> @@ -20580,7 +20580,7 @@ * term/x-win.el: Remove -i, --icon-type from comment. * startup.el (command-line-x-option-alist): Remove options -i, - -itype, --icon-type, added -nb, --no-bitmap-icon + -itype, --icon-type, added -nb, --no-bitmap-icon. 2005-10-09 Nick Roberts <nickrob@snap.net.nz> @@ -20866,7 +20866,7 @@ * textmodes/ispell.el (ispell-word, ispell-region): Call ispell-maybe-find-aspell-dictionaries. (ispell-accept-buffer-local-defs): - Don't call ispell-maybe-find-aspell-dictionaries + Don't call ispell-maybe-find-aspell-dictionaries. 2005-10-04 Richard M. Stallman <rms@gnu.org> @@ -22474,7 +22474,7 @@ * calendar/diary-lib.el (diary-modify-entry-list-string-function): New hook. - (add-to-diary-list): Call `diary-modify-entry-list-string-function' + (add-to-diary-list): Call `diary-modify-entry-list-string-function'. 2005-08-24 Stefan Monnier <monnier@iro.umontreal.ca> @@ -24379,7 +24379,7 @@ * viper-init.el: Get rid of -face in face names. * ediff-diff.el (ediff-extract-diffs, ediff-extract-diffs3): - Make it work with longlines mode + Make it work with longlines mode. * ediff-mult.el (ediff-meta-mode-hook): New variable. @@ -27822,7 +27822,7 @@ (reftex-unhighlight): Use `reftex-delete-overlay'. (reftex-uniq): Function removed. Use `reftex-uniquify' instead. (reftex-access-search-path): Use `reftex-uniquify' instead of - `reftex-uniq' + `reftex-uniq'. * textmodes/reftex-sel.el (reftex-select-unmark): Overlay `before-string' property modification enables for Emacs as well. @@ -29301,7 +29301,7 @@ * isearch.el (isearch-edit-string): Make the search-ring available for minibuffer history commands. - (minibuffer-local-isearch-map): Remove bindings for M-p and M-n, + (minibuffer-local-isearch-map): Remove bindings for M-p and M-n, the default history commands now work just as well. (isearch-ring-retreat-edit, isearch-ring-advance-edit): Remove. @@ -29461,7 +29461,7 @@ `org-insert-mode-line-in-empty-file' has been set. (org-agenda-todo, org-agenda-priority): Modify to use `org-agenda-change-all-lines'. - (org-warning-face): Change color on dark background + (org-warning-face): Change color on dark background. 2005-04-14 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> @@ -29585,7 +29585,7 @@ 2005-04-11 Rajesh Vaidheeswarran <rv@gnu.org> - * whitespace.el (whitespace-version): Bump to 3.5 + * whitespace.el (whitespace-version): Bump to 3.5. (whitespace-buffer-leading, whitespace-buffer-trailing): Invert sense of the test to highlight the whitespace. @@ -29613,7 +29613,7 @@ * dired.el (dired-mode): Use dnd-* instead of x-dnd-* (dired-dnd-handle-local-file): Call dnd-get-local-file-name. - (dired-dnd-handle-file): Call dnd-get-local-file-uri + (dired-dnd-handle-file): Call dnd-get-local-file-uri. * cus-edit.el (dnd): New group. @@ -32029,7 +32029,7 @@ (calcFunc-sech, calcFunc-csch, calcFunc-coth, math-sec-raw) (math-csc-raw, math-cot-raw): New functions. - * calc/calc-rules.el (calc-DistribRules, calc-NegateRules): Add rules. + * calc/calc-rules.el (calc-DistribRules, calc-NegateRules): Add rules. * calc/calc-undo.el (calc-handle-undo): Remove prefix from the variable name in a message. @@ -32604,7 +32604,7 @@ 2005-01-21 Ren,Ai(B Kyllingstad <listmailxemacs@kyllingstad.com> * pcomplete.el: Define pcomplete-read-event instead of read-event, - since it's not a complete read-event implementation + since it's not a complete read-event implementation. 2005-01-20 Jay Belanger <belanger@truman.edu> diff --git a/lisp/calc/calc-help.el b/lisp/calc/calc-help.el index 9f324a67785..e310020e399 100644 --- a/lisp/calc/calc-help.el +++ b/lisp/calc/calc-help.el @@ -414,7 +414,7 @@ C-w Describe how there is no warranty for Calc." (princ (format "GNU Emacs Calculator version %s.\n" calc-version)) (princ " By Dave Gillespie.\n") - (princ " Copyright (C) 2007 Free Software Foundation, Inc.\n\n") + (princ (format " %s\n\n" emacs-copyright)) (princ "Type `h s' for a more detailed summary.\n") (princ "Or type `h i' to read the full Calc manual on-line.\n\n") (princ "Basic keys:\n") diff --git a/lisp/calendar/icalendar.el b/lisp/calendar/icalendar.el index 7bbd12a436e..6238a7f1ea9 100644 --- a/lisp/calendar/icalendar.el +++ b/lisp/calendar/icalendar.el @@ -678,7 +678,7 @@ takes care of european-style." nil))) (defun icalendar--diarytime-to-isotime (timestring ampmstring) - "Convert a a time like 9:30pm to an iso-conform string like T213000. + "Convert a time like 9:30pm to an iso-conform string like T213000. In this example the TIMESTRING would be \"9:30\" and the AMPMSTRING would be \"pm\"." (if timestring diff --git a/lisp/desktop.el b/lisp/desktop.el index 92f6a448574..e44e943db3e 100644 --- a/lisp/desktop.el +++ b/lisp/desktop.el @@ -423,7 +423,7 @@ Furthermore the major mode function must be autoloaded.") Each entry has the form (NAME RESTORE-FUNCTION). NAME is the name of the buffer-local variable indicating that the minor mode is active. RESTORE-FUNCTION is the function to activate the minor mode. -called. RESTORE-FUNCTION nil means don't try to restore the minor mode. +RESTORE-FUNCTION nil means don't try to restore the minor mode. Only minor modes for which the name of the buffer-local variable and the name of the minor mode function are different have to be added to this table. See also `desktop-minor-mode-handlers'." diff --git a/lisp/dframe.el b/lisp/dframe.el index eda6d45bf21..7971db19dd8 100644 --- a/lisp/dframe.el +++ b/lisp/dframe.el @@ -152,13 +152,11 @@ ;;; Compatibility functions ;; -(if (fboundp 'frame-parameter) - - (defalias 'dframe-frame-parameter 'frame-parameter) - - (defun dframe-frame-parameter (frame parameter) - "Return FRAME's PARAMETER value." - (cdr (assoc parameter (frame-parameters frame))))) +(defun dframe-frame-parameter (frame parameter) + "Return FRAME's PARAMETER value." + (if (fboundp 'frame-parameter) + (frame-parameter frame parameter) + (cdr (assoc parameter (frame-parameters frame))))) ; XEmacs ;;; Variables @@ -887,10 +885,10 @@ Must be bound to event E." ;;; Interactive user functions for the mouse ;; -(if dframe-xemacsp - (defalias 'dframe-mouse-event-p 'button-press-event-p) - (defun dframe-mouse-event-p (event) - "Return t if the event is a mouse related event." +(defun dframe-mouse-event-p (event) + "Return t if the event is a mouse related event." + (if (fboundp 'button-press-event-p) + (button-press-event-p event) ; XEmacs (if (and (listp event) (member (event-basic-type event) '(mouse-1 mouse-2 mouse-3))) diff --git a/lisp/dired.el b/lisp/dired.el index 4244954d467..4525cc2ea97 100644 --- a/lisp/dired.el +++ b/lisp/dired.el @@ -1452,9 +1452,6 @@ Do so according to the former subdir alist OLD-SUBDIR-ALIST." (define-key map [menu-bar operate] (cons "Operate" (make-sparse-keymap "Operate"))) - (define-key map [menu-bar operate dashes-2] - '("--")) - (define-key map [menu-bar operate image-dired-delete-tag] '(menu-item "Delete Image Tag..." image-dired-delete-tag @@ -2362,7 +2359,7 @@ Optional argument means return a file name relative to `default-directory'." ;; Deleting files -(defcustom dired-recursive-deletes nil ; Default only delete empty directories. +(defcustom dired-recursive-deletes 'top ; Default only delete empty directories. "*Decide whether recursive deletes are allowed. A value of nil means no recursive deletes. `always' means delete recursively without asking. This is DANGEROUS! @@ -2410,7 +2407,9 @@ Anything else, ask for each sub-directory." (defun dired-do-flagged-delete (&optional nomessage) "In Dired, delete the files flagged for deletion. If NOMESSAGE is non-nil, we don't display any message -if there are no flagged files." +if there are no flagged files. +`dired-recursive-deletes' controls whether +deletion of non-empty directories is allowed." (interactive) (let* ((dired-marker-char dired-del-marker) (regexp (dired-marker-regexp)) @@ -2426,7 +2425,9 @@ if there are no flagged files." (message "(No deletions requested)"))))) (defun dired-do-delete (&optional arg) - "Delete all marked (or next ARG) files." + "Delete all marked (or next ARG) files. +`dired-recursive-deletes' controls whether +deletion of non-empty directories is allowed." ;; This is more consistent with the file marking feature than ;; dired-do-flagged-delete. (interactive "P") @@ -3206,7 +3207,7 @@ To be called first in body of `dired-sort-other', etc." ;;;; Drag and drop support -(defcustom dired-recursive-copies nil +(defcustom dired-recursive-copies 'top "*Decide whether recursive copies are allowed. A value of nil means no recursive copies. `always' means copy recursively without asking. diff --git a/lisp/emacs-lisp/bytecomp.el b/lisp/emacs-lisp/bytecomp.el index f1761c125ac..619b7533ca7 100644 --- a/lisp/emacs-lisp/bytecomp.el +++ b/lisp/emacs-lisp/bytecomp.el @@ -98,9 +98,11 @@ ;; `obsolete' (obsolete variables and functions) ;; `noruntime' (calls to functions only defined ;; within `eval-when-compile') -;; `cl-warnings' (calls to CL functions) +;; `cl-functions' (calls to CL functions) ;; `interactive-only' (calls to commands that are ;; not good to call from Lisp) +;; `make-local' (dubious calls to +;; `make-variable-buffer-local') ;; byte-compile-compatibility Whether the compiler should ;; generate .elc files which can be loaded into ;; generic emacs 18. @@ -356,14 +358,16 @@ Elements of the list may be: cl-functions calls to runtime functions from the CL package (as distinguished from macros and aliases). interactive-only - commands that normally shouldn't be called from Lisp code." + commands that normally shouldn't be called from Lisp code. + make-local calls to make-variable-buffer-local that may be incorrect." :group 'bytecomp :type `(choice (const :tag "All" t) (set :menu-tag "Some" (const free-vars) (const unresolved) (const callargs) (const redefine) (const obsolete) (const noruntime) - (const cl-functions) (const interactive-only)))) + (const cl-functions) (const interactive-only) + (const make-local)))) (put 'byte-compile-warnings 'safe-local-variable 'byte-compile-warnings-safe-p) ;;;###autoload (defun byte-compile-warnings-safe-p (x) @@ -374,7 +378,7 @@ Elements of the list may be: (when (memq e '(free-vars unresolved callargs redefine obsolete noruntime - cl-functions interactive-only)) + cl-functions interactive-only make-local)) e)) x) x)))) @@ -1344,7 +1348,8 @@ extra args." (unless byte-compile-cl-functions (dolist (elt load-history) (when (and (stringp (car elt)) - (string-match "^cl\\>" (car elt))) + (string-match + "^cl\\>" (file-name-nondirectory (car elt)))) (setq byte-compile-cl-functions (append byte-compile-cl-functions (cdr elt))))) @@ -3888,7 +3893,8 @@ that suppresses all warnings during execution of BODY." ;; Warn about misuses of make-variable-buffer-local. (byte-defop-compiler-1 make-variable-buffer-local byte-compile-make-variable-buffer-local) (defun byte-compile-make-variable-buffer-local (form) - (if (eq (car-safe (car-safe (cdr-safe form))) 'quote) + (if (and (eq (car-safe (car-safe (cdr-safe form))) 'quote) + (memq 'make-local byte-compile-warnings)) (byte-compile-warn "`make-variable-buffer-local' should be called at toplevel")) (byte-compile-normal-call form)) diff --git a/lisp/emacs-lisp/checkdoc.el b/lisp/emacs-lisp/checkdoc.el index 14b9ce55d9e..b4d925686ca 100644 --- a/lisp/emacs-lisp/checkdoc.el +++ b/lisp/emacs-lisp/checkdoc.el @@ -263,7 +263,7 @@ system. Possible values are: (const t))) (defvar checkdoc-ispell-lisp-words - '("alist" "emacs" "etags" "iff" "keymap" "paren" "regexp" "sexp" "xemacs") + '("alist" "emacs" "etags" "keymap" "paren" "regexp" "sexp" "xemacs") "List of words that are correct when spell-checking Lisp documentation.") (defcustom checkdoc-max-keyref-before-warn 10 diff --git a/lisp/erc/ChangeLog b/lisp/erc/ChangeLog index 70ffa4ede48..9ffbcbd5201 100644 --- a/lisp/erc/ChangeLog +++ b/lisp/erc/ChangeLog @@ -1,3 +1,8 @@ +2007-06-06 Juanma Barranquero <lekktu@gmail.com> + + * erc.el (erc-show-channel-key-p, erc-startup-file-list): + Fix typo in docstring. + 2007-04-01 Michael Olson <mwolson@gnu.org> * erc.el (erc-version-string): Release ERC 5.2. diff --git a/lisp/erc/erc.el b/lisp/erc/erc.el index 37c2c2e0883..d6875ffc4af 100644 --- a/lisp/erc/erc.el +++ b/lisp/erc/erc.el @@ -842,7 +842,7 @@ See `erc-server-flood-margin' for other flood-related parameters.") The first existent and readable one will get executed. If the filename ends with `.el' it is presumed to be an Emacs Lisp -script and it gets (load)ed. Otherwise is is treated as a bunch of +script and it gets (load)ed. Otherwise it is treated as a bunch of regular IRC commands." :group 'erc-scripts :type '(repeat file)) @@ -5756,7 +5756,7 @@ Otherwise, use the `erc-header-line' face." (function :tag "Call a function"))) (defcustom erc-show-channel-key-p t - "Show the the channel key in the header line." + "Show the channel key in the header line." :group 'erc-paranoia :type 'boolean) diff --git a/lisp/faces.el b/lisp/faces.el index 47fb2fa0295..32d0c0af068 100644 --- a/lisp/faces.el +++ b/lisp/faces.el @@ -222,11 +222,12 @@ Value is FACE." (defun face-id (face &optional frame) "Return the internal ID of face with name FACE. +If FACE is a face-alias, return the ID of the target face. The optional argument FRAME is ignored, since the internal face ID of a face name is the same for all frames." (check-face face) - (get face 'face)) - + (or (get face 'face) + (face-id (get face 'face-alias)))) (defun face-equal (face1 face2 &optional frame) "Non-nil if faces FACE1 and FACE2 are equal. diff --git a/lisp/files.el b/lisp/files.el index 4c68ac94b40..b54251b1605 100644 --- a/lisp/files.el +++ b/lisp/files.el @@ -1924,7 +1924,7 @@ since only a single case-insensitive search through the alist is made." ("\\.[sS]\\'" . asm-mode) ("\\.asm\\'" . asm-mode) ("[cC]hange\\.?[lL]og?\\'" . change-log-mode) - ("[cC]hange[lL]og[-.][-0-9a-z]+\\'" . change-log-mode) + ("[cC]hange[lL]og[-.][0-9]+\\'" . change-log-mode) ("\\$CHANGE_LOG\\$\\.TXT" . change-log-mode) ("\\.scm\\.[0-9]*\\'" . scheme-mode) ("\\.[ck]?sh\\'\\|\\.shar\\'\\|/\\.z?profile\\'" . sh-mode) @@ -2012,6 +2012,9 @@ since only a single case-insensitive search through the alist is made." ("[/.]c\\(?:on\\)?f\\(?:i?g\\)?\\(?:\\.[a-zA-Z0-9._-]+\\)?\\'" . conf-mode) ("\\`/etc/\\(?:DIR_COLORS\\|ethers\\|.?fstab\\|.*hosts\\|lesskey\\|login\\.?de\\(?:fs\\|vperm\\)\\|magic\\|mtab\\|pam\\.d/.*\\|permissions\\(?:\\.d/.+\\)?\\|protocols\\|rpc\\|services\\)\\'" . conf-space-mode) ("\\`/etc/\\(?:acpid?/.+\\|aliases\\(?:\\.d/.+\\)?\\|default/.+\\|group-?\\|hosts\\..+\\|inittab\\|ksysguarddrc\\|opera6rc\\|passwd-?\\|shadow-?\\|sysconfig/.+\\)\\'" . conf-mode) + ;; ChangeLog.old etc. Other change-log-mode entries are above; + ;; this has lower priority to avoid matching changelog.sgml etc. + ("[cC]hange[lL]og[-.][-0-9a-z]+\\'" . change-log-mode) ;; either user's dot-files or under /etc or some such ("/\\.?\\(?:gnokiirc\\|kde.*rc\\|mime\\.types\\|wgetrc\\)\\'" . conf-mode) ;; alas not all ~/.*rc files are like this @@ -4390,6 +4393,14 @@ This command is used in the special Dired buffer created by (message "No files can be recovered from this session now"))) (kill-buffer buffer)))) +(defun kill-buffer-ask (buffer) + "Kill buffer if confirmed." + (when (yes-or-no-p + (format "Buffer %s %s. Kill? " (buffer-name buffer) + (if (buffer-modified-p buffer) + "HAS BEEN EDITED" "is unmodified"))) + (kill-buffer buffer))) + (defun kill-some-buffers (&optional list) "Kill some buffers. Asks the user whether to kill each one of them. Non-interactively, if optional argument LIST is non-nil, it @@ -4404,13 +4415,20 @@ specifies the list of buffers to kill, asking for approval for each one." ; if we killed the base buffer. (not (string-equal name "")) (/= (aref name 0) ?\s) - (yes-or-no-p - (format "Buffer %s %s. Kill? " - name - (if (buffer-modified-p buffer) - "HAS BEEN EDITED" "is unmodified"))) - (kill-buffer buffer))) + (kill-buffer-ask buffer))) (setq list (cdr list)))) + +(defun kill-matching-buffers (regexp &optional internal-too) + "Kill buffers whose name matches the specified regexp. +The optional second argument indicates whether to kill internal buffers too." + (interactive "sKill buffers matching this regular expression: \nP") + (dolist (buffer (buffer-list)) + (let ((name (buffer-name buffer))) + (when (and name (not (string-equal name "")) + (or internal-too (/= (aref name 0) ?\s)) + (string-match regexp name)) + (kill-buffer-ask buffer))))) + (defun auto-save-mode (arg) "Toggle auto-saving of contents of current buffer. diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog index 631869e4f34..17ef7f996b3 100644 --- a/lisp/gnus/ChangeLog +++ b/lisp/gnus/ChangeLog @@ -1,3 +1,34 @@ +2007-06-08 Katsumi Yamaoka <yamaoka@jpl.org> + + * gnus-ems.el (gnus-x-splash): Make it work. + + * gnus-start.el (gnus-1): Relax restrictions that prevent gnus-x-splash + from being used. + + * gnus-art.el (gnus-article-summary-command-nosave): Correct the order + of the arguments passed to pop-to-buffer. + (gnus-article-read-summary-keys): Ditto. + +2007-06-07 Juanma Barranquero <lekktu@gmail.com> + + * gnus-art.el (gnus-split-methods): Fix typo in docstring. + +2007-06-06 Juanma Barranquero <lekktu@gmail.com> + + * gnus-diary.el (gnus-diary-time-format, gnus-summary-sort-by-schedule): + * gnus-sum.el (gnus-summary-highlight): + * mail-source.el (mail-source-delete-old-incoming-confirm): + * nndiary.el (nndiary-reminders): Fix typos in docstrings. + +2007-06-04 Katsumi Yamaoka <yamaoka@jpl.org> + + * gnus-art.el (gnus-mime-view-part-externally) + (gnus-mime-view-part-internally): Fix predicate function passed to + completing-read. + + * mm-decode.el (mm-image-fit-p): Return t if argument is not an image; + return t if image size is just the same as window size. + 2007-05-28 Katsumi Yamaoka <yamaoka@jpl.org> * message.el (message-pop-to-buffer): Add switch-function argument. @@ -355,7 +386,7 @@ (message-simplify-subject): New function to remove duplicate code. (message-reply, message-followup): Use it. (message-simplify-subject-functions): New variable. - (message-strip-subject-encoded-words): New function + (message-strip-subject-encoded-words): New function. 2006-11-08 Wolfgang Jenkner <wjenkner@inode.at> (tiny change) @@ -1195,8 +1226,7 @@ * mm-view.el (mm-fill-flowed): New variable. (mm-inline-text): Use it. -2006-02-21 Wolfram Fenske <wolfram.fenske@student.uni-magdeburg.de> - (tiny change) +2006-02-21 Wolfram Fenske <wolfram.fenske@student.uni-magdeburg.de> (tiny change) * nnimap.el (nnimap-request-move-article): Change folder back to source group before deleting. @@ -1758,7 +1788,7 @@ (pgg-pgp5-sign-region, pgg-pgp5-sign): Add optional 'passphrase' argument to all these routines, so the passphrase can be managed externally and passed in to the system. - (pgg-pgp5-sign-region): Use new name of pgg-add-passphrase-to-cache + (pgg-pgp5-sign-region): Use new name of pgg-add-passphrase-to-cache function. 2005-10-29 Ken Manheimer <ken.manheimer@gmail.com> @@ -3633,7 +3663,7 @@ * nnmail.el (nnmail-split-fancy-with-parent-ignore-groups) (nnmail-cache-ignore-groups, nnmail-spool-hook) (nnmail-split-fancy-match-partial-words) - (nnmail-split-lowercase-expanded): + (nnmail-split-lowercase-expanded): Add :version. * nndiary.el (nndiary): Add :version. @@ -3909,7 +3939,7 @@ * gnus-int.el (gnus-request-delete-group): Use gnus-cache-delete-group and gnus-agent-delete-group to keep the local disk in sync with the server. - (gnus-request-rename-group): + (gnus-request-rename-group): Use gnus-cache-rename-group and gnus-agent-rename-group to keep the local disk in sync with the server. @@ -4036,7 +4066,7 @@ * gnus-sum.el (gnus-select-newgroup): Replace inline code with gnus-agent-possibly-alter-active. - (gnus-adjust-marked-articles): Faster handling of simple lists + (gnus-adjust-marked-articles): Faster handling of simple lists. 2004-10-18 David Edmondson <dme@dme.org> @@ -4179,7 +4209,7 @@ * gnus-fun.el: Require gnus-ems and gnus-util. - * gnus-diary.el (gnus-diary-header-schedule): caddr -> car (cddr + * gnus-diary.el (gnus-diary-header-schedule): caddr -> car (cddr). * gnus-art.el (gnus-article-edit-mode): Define before first reference. @@ -4262,6 +4292,7 @@ * nnmail.el (nnmail-fancy-expiry-targets) (nnmail-mail-splitting-charset, nnmail-mail-splitting-decodes): + Add :version. * nnimap.el (nnimap-split-download-body, nnimap-dont-close) (nnimap-retrieve-groups-asynchronous): Add :version. @@ -4270,7 +4301,7 @@ * mml.el (mml-content-disposition-parameters) (mml-insert-mime-headers-always): Add :version. - * mm-util.el (mm-coding-system-priorities): + * mm-util.el (mm-coding-system-priorities): Add :version. * mm-decode.el (mm-inline-text-html-with-images) (mm-keep-viewer-alive-types, mm-external-terminal-program) @@ -4327,7 +4358,7 @@ * gnus-srvr.el (gnus-server-browse-in-group-buffer) (gnus-server-offline-face): Add :version. - * gnus-score.el (gnus-adaptive-word-length-limit): + * gnus-score.el (gnus-adaptive-word-length-limit): Add :version. * gnus-msg.el (gnus-gcc-externalize-attachments) (gnus-debug-files, gnus-debug-exclude-variables) @@ -4349,7 +4380,7 @@ * gnus-delay.el (gnus-delay-default-hour): Add :version. * gnus-cite.el (gnus-cite-blank-line-after-header) - (gnus-article-boring-faces): + (gnus-article-boring-faces): Add :version. * gnus-art.el (gnus-buttonized-mime-types) (gnus-inhibit-mime-unbuttonizing) @@ -4413,10 +4444,10 @@ 2004-09-10 Teodor Zlatanov <tzz@lifelogs.com> * nnimap.el (nnimap-open-connection): Allow 'imaps' as a synonym - for the 'imap' port in netrc files + for the 'imap' port in netrc files. * gnus-registry.el (gnus-registry-trim): Watch out for negatives - in gnus-registry-trim + in gnus-registry-trim. 2004-09-10 Simon Josefsson <jas@extundo.com> diff --git a/lisp/gnus/gnus-art.el b/lisp/gnus/gnus-art.el index 013bf48110d..90af0740318 100644 --- a/lisp/gnus/gnus-art.el +++ b/lisp/gnus/gnus-art.el @@ -651,7 +651,7 @@ value is a list of possible files to save in if the match is non-nil. If the match is a string, it is used as a regexp match on the article. If the match is a symbol, that symbol will be funcalled from the buffer of the article to be saved with the newsgroup as the -parameter. If it is a list, it will be evaled in the same buffer. +parameter. If it is a list, it will be evalled in the same buffer. If this form or function returns a string, this string will be used as a possible file name; and if it returns a non-nil list, that list will @@ -4674,7 +4674,7 @@ specified charset." (mm-enable-external t)) (if (not (stringp method)) (gnus-mime-view-part-as-type - nil (lambda (type) (stringp (mailcap-mime-info type)))) + nil (lambda (types) (stringp (mailcap-mime-info (car types))))) (when handle (if (mm-handle-undisplayer handle) (mm-remove-part handle) @@ -4695,7 +4695,7 @@ If no internal viewer is available, use an external viewer." (inhibit-read-only t)) (if (not (mm-inlinable-p handle)) (gnus-mime-view-part-as-type - nil (lambda (type) (mm-inlinable-p handle type))) + nil (lambda (types) (mm-inlinable-p handle (car types)))) (when handle (if (mm-handle-undisplayer handle) (mm-remove-part handle) @@ -5607,7 +5607,7 @@ not have a face in `gnus-article-boring-faces'." "Execute the last keystroke in the summary buffer." (interactive) (let (func) - (pop-to-buffer gnus-article-current-summary 'norecord) + (pop-to-buffer gnus-article-current-summary nil 'norecord) (setq func (lookup-key (current-local-map) (this-command-keys))) (call-interactively func))) @@ -5646,7 +5646,7 @@ not have a face in `gnus-article-boring-faces'." (member keys nosave-in-article)) (let (func) (save-window-excursion - (pop-to-buffer gnus-article-current-summary 'norecord) + (pop-to-buffer gnus-article-current-summary nil 'norecord) ;; We disable the pick minor mode commands. (let (gnus-pick-mode) (setq func (lookup-key (current-local-map) keys)))) @@ -5658,14 +5658,14 @@ not have a face in `gnus-article-boring-faces'." (call-interactively func) (setq new-sum-point (point))) (when (member keys nosave-but-article) - (pop-to-buffer gnus-article-buffer 'norecord))) + (pop-to-buffer gnus-article-buffer nil 'norecord))) ;; These commands should restore window configuration. (let ((obuf (current-buffer)) (owin (current-window-configuration)) (opoint (point)) win func in-buffer selected new-sum-start new-sum-hscroll) (cond (not-restore-window - (pop-to-buffer gnus-article-current-summary 'norecord)) + (pop-to-buffer gnus-article-current-summary nil 'norecord)) ((setq win (get-buffer-window gnus-article-current-summary)) (select-window win)) (t diff --git a/lisp/gnus/gnus-diary.el b/lisp/gnus/gnus-diary.el index a7f7ee65ec3..d5bc9c3a05d 100644 --- a/lisp/gnus/gnus-diary.el +++ b/lisp/gnus/gnus-diary.el @@ -59,7 +59,7 @@ :group 'gnus-summary-format) (defcustom gnus-diary-time-format "%a, %b %e %y, %H:%M" - "*Time format to display appointements in nndiary summary buffers. + "*Time format to display appointments in nndiary summary buffers. Please refer to `format-time-string' for information on possible values." :type 'string :group 'gnus-diary) @@ -224,7 +224,7 @@ There are currently two built-in format functions: (gnus-thread-header h2))) (defun gnus-summary-sort-by-schedule (&optional reverse) - "Sort nndiary summary buffers by schedule of appointements. + "Sort nndiary summary buffers by schedule of appointments. Optional prefix (or REVERSE argument) means sort in reverse order." (interactive "P") (gnus-summary-sort 'schedule reverse)) diff --git a/lisp/gnus/gnus-ems.el b/lisp/gnus/gnus-ems.el index 60e66adc98b..4400b81f041 100644 --- a/lisp/gnus/gnus-ems.el +++ b/lisp/gnus/gnus-ems.el @@ -172,40 +172,95 @@ (defun gnus-x-splash () "Show a splash screen using a pixmap in the current buffer." - (let ((dir (nnheader-find-etc-directory "gnus")) - pixmap file height beg i) - (save-excursion - (switch-to-buffer (gnus-get-buffer-create gnus-group-buffer)) - (let ((buffer-read-only nil) - width height) - (erase-buffer) - (when (and dir - (file-exists-p (setq file - (expand-file-name "x-splash" dir)))) - (let ((coding-system-for-read 'raw-text) - default-enable-multibyte-characters) - (with-temp-buffer - (insert-file-contents file) - (goto-char (point-min)) - (ignore-errors - (setq pixmap (read (current-buffer))))))) - (when pixmap - (make-face 'gnus-splash) - (setq height (/ (car pixmap) (frame-char-height)) - width (/ (cadr pixmap) (frame-char-width))) - (set-face-foreground 'gnus-splash "Brown") - (set-face-stipple 'gnus-splash pixmap) - (insert-char ?\n (* (/ (window-height) 2 height) height)) - (setq i height) - (while (> i 0) - (insert-char ?\ (* (/ (window-width) 2 width) width)) - (setq beg (point)) - (insert-char ?\ width) - (set-text-properties beg (point) '(face gnus-splash)) - (insert ?\n) - (decf i)) - (goto-char (point-min)) - (sit-for 0)))))) + (interactive) + (unless window-system + (error "`gnus-x-splash' requires running on the window system")) + (switch-to-buffer (gnus-get-buffer-create (if (or (gnus-alive-p) + (interactive-p)) + "*gnus-x-splash*" + gnus-group-buffer))) + (let ((inhibit-read-only nil) + (file (nnheader-find-etc-directory "images/gnus/x-splash" t)) + pixmap fcw fch width height fringes sbars left yoffset top ls) + (erase-buffer) + (when (and file + (ignore-errors + (let ((coding-system-for-read 'raw-text) + default-enable-multibyte-characters) + (with-temp-buffer + (insert-file-contents file) + (goto-char (point-min)) + (setq pixmap (read (current-buffer))))))) + (setq fcw (float (frame-char-width)) + fch (float (frame-char-height)) + width (/ (car pixmap) fcw) + height (/ (cadr pixmap) fch) + fringes (if (fboundp 'window-fringes) + (eval '(window-fringes)) + '(10 11 nil)) + sbars (frame-parameter nil 'vertical-scroll-bars)) + (cond ((eq sbars 'right) + (setq sbars + (cons 0 (/ (or (frame-parameter nil 'scroll-bar-width) 14) + fcw)))) + (sbars + (setq sbars + (cons (/ (or (frame-parameter nil 'scroll-bar-width) 14) + fcw) + 0)))) + (setq left (- (* (round (/ (1- (/ (+ (window-width) + (car sbars) (cdr sbars) + (/ (+ (or (car fringes) 0) + (or (cadr fringes) 0)) + fcw)) + width)) + 2)) + width) + (car sbars) + (/ (or (car fringes) 0) fcw)) + yoffset (cadr (window-edges)) + top (max 0 (- (* (max (if (and tool-bar-mode + (not (featurep 'gtk)) + (eq (frame-first-window) + (selected-window))) + 1 0) + (round (/ (1- (/ (+ (1- (window-height)) + (* 2 yoffset)) + height)) + 2))) + height) + yoffset)) + ls (/ (or line-spacing 0) fch) + height (max 0 (- height ls))) + (cond ((>= (- top ls) 1) + (insert + (propertize + " " + 'display `(space :width 0 :ascent 100)) + "\n" + (propertize + " " + 'display `(space :width 0 :height ,(- top ls 1) :ascent 100)) + "\n")) + ((> (- top ls) 0) + (insert + (propertize + " " + 'display `(space :width 0 :height ,(- top ls) :ascent 100)) + "\n"))) + (if (and (> width 0) (> left 0)) + (insert (propertize + " " + 'display `(space :width ,left :height ,height :ascent 0))) + (setq width (+ width left))) + (when (> width 0) + (insert (propertize + " " + 'display `(space :width ,width :height ,height :ascent 0) + 'face `(gnus-splash :stipple ,pixmap)))) + (goto-char (if (<= (- top ls) 0) (1- (point)) (point-min))) + (redraw-frame (selected-frame)) + (sit-for 0)))) ;;; Image functions. diff --git a/lisp/gnus/gnus-start.el b/lisp/gnus/gnus-start.el index 9fbab8b340b..d906cec6c6a 100644 --- a/lisp/gnus/gnus-start.el +++ b/lisp/gnus/gnus-start.el @@ -758,8 +758,7 @@ prompt the user for the name of an NNTP server to use." (cond ((featurep 'xemacs) (gnus-xmas-splash)) - ((and window-system - (= (frame-height) (1+ (window-height)))) + (window-system (gnus-x-splash)))) (let ((level (and (numberp arg) (> arg 0) arg)) diff --git a/lisp/gnus/gnus-sum.el b/lisp/gnus/gnus-sum.el index 5653c8be746..b1b6c8b760b 100644 --- a/lisp/gnus/gnus-sum.el +++ b/lisp/gnus/gnus-sum.el @@ -973,14 +973,14 @@ automatically when it is selected." . gnus-summary-normal-read)) "*Controls the highlighting of summary buffer lines. -A list of (FORM . FACE) pairs. When deciding how a a particular +A list of (FORM . FACE) pairs. When deciding how a particular summary line should be displayed, each form is evaluated. The content of the face field after the first true form is used. You can change how those summary lines are displayed, by editing the face field. You can use the following variables in the FORM field. -score: The article's score +score: The article's score. default: The default article score. default-high: The default score for high scored articles. default-low: The default score for low scored articles. diff --git a/lisp/gnus/mail-source.el b/lisp/gnus/mail-source.el index b991415342d..99596d2584b 100644 --- a/lisp/gnus/mail-source.el +++ b/lisp/gnus/mail-source.el @@ -284,7 +284,7 @@ files older than number of days." (integer :tag "days"))) (defcustom mail-source-delete-old-incoming-confirm t - "*If non-nil, ask for for confirmation before deleting old incoming files. + "*If non-nil, ask for confirmation before deleting old incoming files. This variable only applies when `mail-source-delete-incoming' is a positive number." :version "22.1" diff --git a/lisp/gnus/mm-decode.el b/lisp/gnus/mm-decode.el index 6d52d8b2f16..028855ab341 100644 --- a/lisp/gnus/mm-decode.el +++ b/lisp/gnus/mm-decode.el @@ -1371,18 +1371,19 @@ be determined." (defun mm-image-fit-p (handle) "Say whether the image in HANDLE will fit the current window." (let ((image (mm-get-image handle))) - (if (fboundp 'glyph-width) - ;; XEmacs' glyphs can actually tell us about their width, so - ;; lets be nice and smart about them. - (or mm-inline-large-images - (and (< (glyph-width image) (window-pixel-width)) - (< (glyph-height image) (window-pixel-height)))) - (let* ((size (image-size image)) - (w (car size)) - (h (cdr size))) - (or mm-inline-large-images - (and (< h (1- (window-height))) ; Don't include mode line. - (< w (window-width)))))))) + (or (not image) + (if (fboundp 'glyph-width) + ;; XEmacs' glyphs can actually tell us about their width, so + ;; lets be nice and smart about them. + (or mm-inline-large-images + (and (<= (glyph-width image) (window-pixel-width)) + (<= (glyph-height image) (window-pixel-height)))) + (let* ((size (image-size image)) + (w (car size)) + (h (cdr size))) + (or mm-inline-large-images + (and (<= h (1- (window-height))) ; Don't include mode line. + (<= w (window-width))))))))) (defun mm-valid-image-format-p (format) "Say whether FORMAT can be displayed natively by Emacs." diff --git a/lisp/gnus/nndiary.el b/lisp/gnus/nndiary.el index 483c2ee1070..f6e0ae44cb2 100644 --- a/lisp/gnus/nndiary.el +++ b/lisp/gnus/nndiary.el @@ -131,7 +131,7 @@ non-nil." (defcustom nndiary-reminders '((0 . day)) - "*Different times when you want to be reminded of your appointements. + "*Different times when you want to be reminded of your appointments. Diary articles will appear again, as if they'd been just received. Entries look like (3 . day) which means something like \"Please @@ -145,7 +145,7 @@ not 'century, sorry). NOTE: the units of measure actually express dates, not durations: if you use 'week, messages will pop up on Sundays at 00:00 (or Mondays if `nndiary-week-starts-on-monday' is non-nil) and *not* 7 days before the -appointement, if you use 'month, messages will pop up on the first day of +appointment, if you use 'month, messages will pop up on the first day of each months, at 00:00 and so on. If you really want to specify a duration (like 24 hours exactly), you can @@ -155,15 +155,15 @@ scheme might appear somewhat weird at a first glance, it is very powerful. In order to make this clear, here are some examples: - '(0 . day): this is the default value of `nndiary-reminders'. It means - pop up the appointements of the day each morning at 00:00. + pop up the appointments of the day each morning at 00:00. -- '(1 . day): this means pop up the appointements the day before, at 00:00. +- '(1 . day): this means pop up the appointments the day before, at 00:00. -- '(6 . hour): for an appointement at 18:30, this would pop up the - appointement message at 12:00. +- '(6 . hour): for an appointment at 18:30, this would pop up the + appointment message at 12:00. -- '(360 . minute): for an appointement at 18:30 and 15 seconds, this would - pop up the appointement message at 12:30." +- '(360 . minute): for an appointment at 18:30 and 15 seconds, this would + pop up the appointment message at 12:30." :group 'nndiary :type '(repeat (cons :format "%v\n" (integer :format "%v") diff --git a/lisp/help-mode.el b/lisp/help-mode.el index afaf06bec3c..f7c33d85286 100644 --- a/lisp/help-mode.el +++ b/lisp/help-mode.el @@ -40,6 +40,7 @@ (define-key help-mode-map [mouse-2] 'help-follow-mouse) (define-key help-mode-map "\C-c\C-b" 'help-go-back) +(define-key help-mode-map "\C-c\C-f" 'help-go-forward) (define-key help-mode-map "\C-c\C-c" 'help-follow-symbol) ;; Documentation only, since we use minor-mode-overriding-map-alist. (define-key help-mode-map "\r" 'help-follow) @@ -52,13 +53,28 @@ To use the element, do (apply FUNCTION ARGS) then goto the point.") (put 'help-xref-stack 'permanent-local t) (make-variable-buffer-local 'help-xref-stack) +(defvar help-xref-forward-stack nil + "The stack of used to navigate help forwards after using the back button. +Used by `help-follow' and `help-xref-go-forward'. +An element looks like (POSITION FUNCTION ARGS...). +To use the element, do (apply FUNCTION ARGS) then goto the point.") +(put 'help-xref-forward-stack 'permanent-local t) +(make-variable-buffer-local 'help-xref-forward-stack) + (defvar help-xref-stack-item nil "An item for `help-follow' in this buffer to push onto `help-xref-stack'. The format is (FUNCTION ARGS...).") (put 'help-xref-stack-item 'permanent-local t) (make-variable-buffer-local 'help-xref-stack-item) +(defvar help-xref-stack-forward-item nil + "An item for `help-go-back' to push onto `help-xref-forward-stack'. +The format is (FUNCTION ARGS...).") +(put 'help-xref-stack-forward-item 'permanent-local t) +(make-variable-buffer-local 'help-xref-stack-forward-item) + (setq-default help-xref-stack nil help-xref-stack-item nil) +(setq-default help-xref-forward-stack nil help-xref-forward-stack-item nil) (defcustom help-mode-hook nil "Hook run by `help-mode'." @@ -123,6 +139,11 @@ The format is (FUNCTION ARGS...).") 'help-function #'help-xref-go-back 'help-echo (purecopy "mouse-2, RET: go back to previous help buffer")) +(define-button-type 'help-forward + :supertype 'help-xref + 'help-function #'help-xref-go-forward + 'help-echo (purecopy "mouse-2, RET: move forward to next help buffer")) + (define-button-type 'help-info :supertype 'help-xref 'help-function #'info @@ -242,6 +263,9 @@ Commands: (defvar help-back-label (purecopy "[back]") "Label to use by `help-make-xrefs' for the go-back reference.") +(defvar help-forward-label (purecopy "[forward]") + "Label to use by `help-make-xrefs' for the go-forward reference.") + (defconst help-xref-symbol-regexp (purecopy (concat "\\(\\<\\(\\(variable\\|option\\)\\|" ; Link to var "\\(function\\|command\\)\\|" ; Link to function @@ -286,7 +310,8 @@ because we want to record the \"previous\" position of point so we can restore it properly when going back." (with-current-buffer (help-buffer) (when help-xref-stack-item - (push (cons (point) help-xref-stack-item) help-xref-stack)) + (push (cons (point) help-xref-stack-item) help-xref-stack) + (setq help-xref-forward-stack nil)) (when interactive-p (let ((tail (nthcdr 10 help-xref-stack))) ;; Truncate the stack. @@ -480,6 +505,11 @@ that." (insert "\n") (help-insert-xref-button help-back-label 'help-back (current-buffer)) + (insert "\t")) + ;; Make a forward-reference in this buffer if appropriate. + (when help-xref-forward-stack + (help-insert-xref-button help-forward-label 'help-forward + (current-buffer)) (insert "\n"))) ;; View mode steals RET from us. (set (make-local-variable 'minor-mode-overriding-map-alist) @@ -598,6 +628,7 @@ help buffer." "From BUFFER, go back to previous help buffer text using `help-xref-stack'." (let (item position method args) (with-current-buffer buffer + (push (cons (point) help-xref-stack-item) help-xref-forward-stack) (when help-xref-stack (setq item (pop help-xref-stack) ;; Clear the current item so that it won't get pushed @@ -613,12 +644,39 @@ help buffer." (set-window-point (get-buffer-window buffer) position) (goto-char position))))) +(defun help-xref-go-forward (buffer) + "From BUFFER, go forward to next help buffer." + (let (item position method args) + (with-current-buffer buffer + (push (cons (point) help-xref-stack-item) help-xref-stack) + (when help-xref-forward-stack + (setq item (pop help-xref-forward-stack) + ;; Clear the current item so that it won't get pushed + ;; by the function we're about to call. TODO: We could also + ;; push it onto a "forward" stack and add a `forw' button. + help-xref-stack-item nil + position (car item) + method (cadr item) + args (cddr item)))) + (apply method args) + (with-current-buffer buffer + (if (get-buffer-window buffer) + (set-window-point (get-buffer-window buffer) position) + (goto-char position))))) + (defun help-go-back () "Go back to previous topic in this help buffer." (interactive) (if help-xref-stack (help-xref-go-back (current-buffer)) (error "No previous help buffer"))) + +(defun help-go-forward () + "Go back to next topic in this help buffer." + (interactive) + (if help-xref-forward-stack + (help-xref-go-forward (current-buffer)) + (error "No next help buffer"))) (defun help-do-xref (pos function args) "Call the help cross-reference function FUNCTION with args ARGS. diff --git a/lisp/international/mule-cmds.el b/lisp/international/mule-cmds.el index 980cb346600..21985259e98 100644 --- a/lisp/international/mule-cmds.el +++ b/lisp/international/mule-cmds.el @@ -1,4 +1,4 @@ -;;; mule-cmds.el --- commands for mulitilingual environment -*-coding: iso-2022-7bit -*- +;;; mule-cmds.el --- commands for multilingual environment -*-coding: iso-2022-7bit -*- ;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, ;; 2006, 2007 Free Software Foundation, Inc. @@ -203,7 +203,7 @@ "`\\(\\sw\\(\\sw\\|\\s_\\)+\\)'"))) (defun coding-system-change-eol-conversion (coding-system eol-type) - "Return a coding system which differs from CODING-SYSTEM in eol conversion. + "Return a coding system which differs from CODING-SYSTEM in EOL conversion. The returned coding system converts end-of-line by EOL-TYPE but text as the same way as CODING-SYSTEM. EOL-TYPE should be `unix', `dos', `mac', or nil. @@ -253,8 +253,8 @@ the buffer; it only changes the way those bytes are interpreted. In general, therefore, this command *changes* the sequence of characters that the current buffer contains. -We suggest you avoid using use this command unless you know what you -are doing. If you use it by mistake, and the buffer is now displayed +We suggest you avoid using this command unless you know what you are +doing. If you use it by mistake, and the buffer is now displayed wrong, use this command again to toggle back to the right mode." (interactive "P") (let ((new-flag @@ -327,10 +327,10 @@ This sets the following coding systems: o default coding system for subprocess I/O This also sets the following values: o default value used as `file-name-coding-system' for converting file names - if CODING-SYSTEM is ASCII-compatible. + if CODING-SYSTEM is ASCII-compatible o default value for the command `set-terminal-coding-system' (not on MSDOS) o default value for the command `set-keyboard-coding-system' - if CODING-SYSTEM is ASCII-compatible.." + if CODING-SYSTEM is ASCII-compatible" (check-coding-system coding-system) (setq-default buffer-file-coding-system coding-system) (if (fboundp 'ucs-set-table-for-input) @@ -372,7 +372,7 @@ This also sets the following coding systems: o coding system of a newly created buffer o default coding system for subprocess I/O This also sets the following values: - o default value used as `file-name-coding-system' for converting file names. + o default value used as `file-name-coding-system' for converting file names o default value for the command `set-terminal-coding-system' (not on MSDOS) o default value for the command `set-keyboard-coding-system' @@ -423,16 +423,16 @@ The function `sort-coding-systems' use it.") (defun sort-coding-systems (codings) "Sort coding system list CODINGS by a priority of each coding system. -Returns the sorted list. CODINGS is modified by side effects. +Return the sorted list. CODINGS is modified by side effects. If a coding system is most preferred, it has the highest priority. -Otherwise, a coding system corresponds to some MIME charset has higher -priorities. Among them, a coding system included in `coding-system' -key of the current language environment has higher priorities. See -also the documentation of `language-info-alist'. +Otherwise, coding systems that correspond to MIME charsets have +higher priorities. Among them, a coding system included in the +`coding-system' key of the current language environment has higher +priority. See also the documentation of `language-info-alist'. If the variable `sort-coding-systems-predicate' (which see) is -non-nil, it is used to sort CODINGS in the different way than above." +non-nil, it is used to sort CODINGS instead." (if sort-coding-systems-predicate (sort codings sort-coding-systems-predicate) (let* ((from-categories (mapcar #'(lambda (x) (symbol-value x)) @@ -566,7 +566,7 @@ where COUNT is a number of characters, CHARs are the characters found from the character set. Optional 3rd arg MAXCOUNT limits how many CHARs are put in the above list. -Optional 4th arg EXCLUDE is a list of character sets to be ignored. +Optional 4th arg EXCLUDES is a list of character sets to be ignored. For invalid characters, CHARs are actually strings." (let ((chars nil) @@ -616,8 +616,8 @@ It asks which coding system to check. If such a character is found, set point after that character. Otherwise, don't move point. -When called from a program, the value is a position of the found character, -or nil if all characters are encodable." +When called from a program, the value is the position of the unencodable +character found, or nil if all characters are encodable." (interactive (list (let ((default (or buffer-file-coding-system 'us-ascii))) (read-coding-system @@ -1295,7 +1295,7 @@ Emacs loads this file at startup time.") (defvar leim-list-entry-regexp "^(register-input-method" "Regexp matching head of each entry in LEIM list file. -See also the variable `leim-list-header'") +See also the variable `leim-list-header'.") (defvar update-leim-list-functions '(quail-update-leim-list-file) @@ -1479,7 +1479,7 @@ When called interactively, the optional arg INTERACTIVE is non-nil, which marks the variable `default-input-method' as set for Custom buffers. To deactivate the input method interactively, use \\[toggle-input-method]. -To deactivate it programmatically, use \\[inactivate-input-method]." +To deactivate it programmatically, use `inactivate-input-method'." (interactive (let* ((default (or (car input-method-history) default-input-method))) (list (read-input-method-name @@ -1648,7 +1648,7 @@ just inactivated.") "This flag controls when an input method returns. Usually, the input method does not return while there's a possibility that it may find a different translation if a user types another key. -But, it this flag is non-nil, the input method returns as soon as +But, if this flag is non-nil, the input method returns as soon as the current key sequence gets long enough to have some valid translation.") (defvar input-method-use-echo-area nil @@ -1680,7 +1680,7 @@ When this hook is run, the variable `current-language-environment' is still bound to the language environment being exited. This hook is mainly used for canceling the effect of -`set-language-environment-hook' (which-see).") +`set-language-environment-hook' (which see).") (put 'setup-specified-language-environment 'apropos-inhibit t) @@ -2015,7 +2015,7 @@ specifies the character set for the major languages of Western Europe." (set-display-table-and-terminal-coding-system language-name)) (defsubst princ-list (&rest args) - "Print all arguments with `princ', then print \"\n\"." + "Print all arguments with `princ', then print \"\\n\"." (while args (princ (car args)) (setq args (cdr args))) (princ "\n")) @@ -2345,10 +2345,10 @@ specifies the character set for the major languages of Western Europe." ("wen" . "Latin-2") ; MS Windows Upper Sorbian )) "Alist of locale regexps vs the corresponding languages and coding systems. -Each element has these form: +Each element has this form: \(LOCALE-REGEXP LANG-ENV CODING-SYSTEM) The first element whose LOCALE-REGEXP matches the start of a -downcased locale specifies the LANG-ENV \(language environtment) +downcased locale specifies the LANG-ENV \(language environment) and CODING-SYSTEM corresponding to that locale. If there is no appropriate language environment, the element may have this form: \(LOCALE-REGEXP . LANG-ENV) @@ -2372,7 +2372,7 @@ specific encoding such as \"Latin-1\" and \"UTF-8\".") The first element whose locale regexp matches the start of a downcased locale specifies the language name whose charset corresponds to that locale. This language name is used if the locale is not listed in -`locale-language-names'") +`locale-language-names'.") (defconst locale-preferred-coding-systems (purecopy diff --git a/lisp/ldefs-boot.el b/lisp/ldefs-boot.el index 25b0585058e..98a856a2987 100644 --- a/lisp/ldefs-boot.el +++ b/lisp/ldefs-boot.el @@ -906,7 +906,7 @@ This is a good function to put in `comint-output-filter-functions'. ;;;*** ;;;### (autoloads (antlr-set-tabs antlr-mode antlr-show-makefile-rules) -;;;;;; "antlr-mode" "progmodes/antlr-mode.el" (17994 6715)) +;;;;;; "antlr-mode" "progmodes/antlr-mode.el" (17833 42928)) ;;; Generated autoloads from progmodes/antlr-mode.el (autoload (quote antlr-show-makefile-rules) "antlr-mode" "\ @@ -945,7 +945,7 @@ Used in `antlr-mode'. Also a useful function in `java-mode-hook'. ;;;### (autoloads (appt-activate appt-make-list appt-delete appt-add ;;;;;; appt-display-diary appt-display-duration appt-display-mode-line ;;;;;; appt-msg-window appt-visible appt-audible appt-message-warning-time -;;;;;; appt-issue-message) "appt" "calendar/appt.el" (17994 6715)) +;;;;;; appt-issue-message) "appt" "calendar/appt.el" (17952 17513)) ;;; Generated autoloads from calendar/appt.el (defvar appt-issue-message t "\ @@ -1033,7 +1033,7 @@ ARG is positive, otherwise off. ;;;### (autoloads (apropos-documentation apropos-value apropos apropos-documentation-property ;;;;;; apropos-command apropos-variable apropos-read-pattern) "apropos" -;;;;;; "apropos.el" (17994 6715)) +;;;;;; "apropos.el" (17842 58280)) ;;; Generated autoloads from apropos.el (autoload (quote apropos-read-pattern) "apropos" "\ @@ -1129,8 +1129,8 @@ Returns list of symbols and documentation found. ;;;*** -;;;### (autoloads (archive-mode) "arc-mode" "arc-mode.el" (17994 -;;;;;; 6715)) +;;;### (autoloads (archive-mode) "arc-mode" "arc-mode.el" (17960 +;;;;;; 49045)) ;;; Generated autoloads from arc-mode.el (autoload (quote archive-mode) "arc-mode" "\ @@ -1150,7 +1150,7 @@ archive. ;;;*** -;;;### (autoloads (array-mode) "array" "array.el" (17994 6715)) +;;;### (autoloads (array-mode) "array" "array.el" (17842 58280)) ;;; Generated autoloads from array.el (autoload (quote array-mode) "array" "\ @@ -1221,8 +1221,8 @@ Entering array mode calls the function `array-mode-hook'. ;;;*** -;;;### (autoloads (artist-mode) "artist" "textmodes/artist.el" (17994 -;;;;;; 6715)) +;;;### (autoloads (artist-mode) "artist" "textmodes/artist.el" (17842 +;;;;;; 58277)) ;;; Generated autoloads from textmodes/artist.el (autoload (quote artist-mode) "artist" "\ @@ -1427,8 +1427,8 @@ Keymap summary ;;;*** -;;;### (autoloads (asm-mode) "asm-mode" "progmodes/asm-mode.el" (17994 -;;;;;; 6715)) +;;;### (autoloads (asm-mode) "asm-mode" "progmodes/asm-mode.el" (17842 +;;;;;; 56333)) ;;; Generated autoloads from progmodes/asm-mode.el (autoload (quote asm-mode) "asm-mode" "\ @@ -1472,7 +1472,7 @@ This command is obsolete. ;;;*** ;;;### (autoloads (autoarg-kp-mode autoarg-mode) "autoarg" "autoarg.el" -;;;;;; (17994 6715)) +;;;;;; (17842 58280)) ;;; Generated autoloads from autoarg.el (defvar autoarg-mode nil "\ @@ -1526,7 +1526,7 @@ etc. to supply digit arguments. ;;;*** ;;;### (autoloads (autoconf-mode) "autoconf" "progmodes/autoconf.el" -;;;;;; (17994 6715)) +;;;;;; (17842 56333)) ;;; Generated autoloads from progmodes/autoconf.el (autoload (quote autoconf-mode) "autoconf" "\ @@ -1537,7 +1537,7 @@ Major mode for editing Autoconf configure.in files. ;;;*** ;;;### (autoloads (auto-insert-mode define-auto-insert auto-insert) -;;;;;; "autoinsert" "autoinsert.el" (17994 6715)) +;;;;;; "autoinsert" "autoinsert.el" (17842 58280)) ;;; Generated autoloads from autoinsert.el (autoload (quote auto-insert) "autoinsert" "\ @@ -1576,7 +1576,7 @@ insert a template for the file depending on the mode of the buffer. ;;;### (autoloads (batch-update-autoloads update-directory-autoloads ;;;;;; update-file-autoloads) "autoload" "emacs-lisp/autoload.el" -;;;;;; (17994 6715)) +;;;;;; (17860 50557)) ;;; Generated autoloads from emacs-lisp/autoload.el (autoload (quote update-file-autoloads) "autoload" "\ @@ -1611,7 +1611,7 @@ Calls `update-directory-autoloads' on the command line arguments. ;;;### (autoloads (global-auto-revert-mode turn-on-auto-revert-tail-mode ;;;;;; auto-revert-tail-mode turn-on-auto-revert-mode auto-revert-mode) -;;;;;; "autorevert" "autorevert.el" (17994 6715)) +;;;;;; "autorevert" "autorevert.el" (17925 15265)) ;;; Generated autoloads from autorevert.el (autoload (quote auto-revert-mode) "autorevert" "\ @@ -1680,7 +1680,7 @@ Use `auto-revert-mode' to revert a particular buffer. ;;;*** ;;;### (autoloads (mouse-avoidance-mode mouse-avoidance-mode) "avoid" -;;;;;; "avoid.el" (17994 6715)) +;;;;;; "avoid.el" (17842 58280)) ;;; Generated autoloads from avoid.el (defvar mouse-avoidance-mode nil "\ @@ -1721,7 +1721,7 @@ definition of \"random distance\".) ;;;*** ;;;### (autoloads (backquote) "backquote" "emacs-lisp/backquote.el" -;;;;;; (17994 6715)) +;;;;;; (17842 54152)) ;;; Generated autoloads from emacs-lisp/backquote.el (autoload (quote backquote) "backquote" "\ @@ -1746,7 +1746,7 @@ Vectors work just like lists. Nested backquotes are permitted. ;;;*** ;;;### (autoloads (display-battery-mode battery) "battery" "battery.el" -;;;;;; (17994 6715)) +;;;;;; (17842 58280)) ;;; Generated autoloads from battery.el (put 'battery-mode-line-string 'risky-local-variable t) @@ -1778,7 +1778,7 @@ seconds. ;;;*** ;;;### (autoloads (benchmark benchmark-run-compiled benchmark-run) -;;;;;; "benchmark" "emacs-lisp/benchmark.el" (17994 6715)) +;;;;;; "benchmark" "emacs-lisp/benchmark.el" (17842 54152)) ;;; Generated autoloads from emacs-lisp/benchmark.el (autoload (quote benchmark-run) "benchmark" "\ @@ -1810,8 +1810,8 @@ non-interactive use see also `benchmark-run' and ;;;*** -;;;### (autoloads (bibtex-mode) "bibtex" "textmodes/bibtex.el" (17994 -;;;;;; 6715)) +;;;### (autoloads (bibtex-mode) "bibtex" "textmodes/bibtex.el" (17956 +;;;;;; 21270)) ;;; Generated autoloads from textmodes/bibtex.el (autoload (quote bibtex-mode) "bibtex" "\ @@ -1873,7 +1873,7 @@ if that value is non-nil. ;;;### (autoloads (binhex-decode-region binhex-decode-region-external ;;;;;; binhex-decode-region-internal) "binhex" "gnus/binhex.el" -;;;;;; (17994 6715)) +;;;;;; (17842 54741)) ;;; Generated autoloads from gnus/binhex.el (defconst binhex-begin-line "^:...............................................................$") @@ -1896,8 +1896,8 @@ Binhex decode region between START and END. ;;;*** -;;;### (autoloads (blackbox) "blackbox" "play/blackbox.el" (17994 -;;;;;; 6715)) +;;;### (autoloads (blackbox) "blackbox" "play/blackbox.el" (17842 +;;;;;; 55395)) ;;; Generated autoloads from play/blackbox.el (autoload (quote blackbox) "blackbox" "\ @@ -2019,7 +2019,7 @@ a reflection. ;;;### (autoloads (bookmark-bmenu-list bookmark-load bookmark-save ;;;;;; bookmark-write bookmark-delete bookmark-insert bookmark-rename ;;;;;; bookmark-insert-location bookmark-relocate bookmark-jump -;;;;;; bookmark-set) "bookmark" "bookmark.el" (17994 6715)) +;;;;;; bookmark-set) "bookmark" "bookmark.el" (17842 58280)) ;;; Generated autoloads from bookmark.el (define-key ctl-x-map "rb" 'bookmark-jump) (define-key ctl-x-map "rm" 'bookmark-set) @@ -2209,7 +2209,7 @@ deletion, or > if it is flagged for displaying. ;;;;;; browse-url browse-url-of-region browse-url-of-dired-file ;;;;;; browse-url-of-buffer browse-url-of-file browse-url-url-at-point ;;;;;; browse-url-galeon-program browse-url-firefox-program browse-url-browser-function) -;;;;;; "browse-url" "net/browse-url.el" (17994 6715)) +;;;;;; "browse-url" "net/browse-url.el" (17842 55218)) ;;; Generated autoloads from net/browse-url.el (defvar browse-url-browser-function (cond ((memq system-type (quote (windows-nt ms-dos cygwin))) (quote browse-url-default-windows-browser)) ((memq system-type (quote (darwin))) (quote browse-url-default-macosx-browser)) (t (quote browse-url-default-browser))) "\ @@ -2540,8 +2540,8 @@ Default to the URL around or before point. ;;;*** -;;;### (autoloads (snarf-bruces bruce) "bruce" "play/bruce.el" (17994 -;;;;;; 6715)) +;;;### (autoloads (snarf-bruces bruce) "bruce" "play/bruce.el" (17842 +;;;;;; 55395)) ;;; Generated autoloads from play/bruce.el (autoload (quote bruce) "bruce" "\ @@ -2557,7 +2557,7 @@ Return a vector containing the lines from `bruce-phrases-file'. ;;;*** ;;;### (autoloads (bs-show bs-customize bs-cycle-previous bs-cycle-next) -;;;;;; "bs" "bs.el" (17994 6715)) +;;;;;; "bs" "bs.el" (17842 58280)) ;;; Generated autoloads from bs.el (autoload (quote bs-cycle-next) "bs" "\ @@ -2598,8 +2598,8 @@ name of buffer configuration. ;;;*** ;;;### (autoloads (insert-text-button make-text-button insert-button -;;;;;; make-button define-button-type) "button" "button.el" (17994 -;;;;;; 6724)) +;;;;;; make-button define-button-type) "button" "button.el" (17992 +;;;;;; 30877)) ;;; Generated autoloads from button.el (defvar button-map (let ((map (make-sparse-keymap))) (define-key map "
" (quote push-button)) (define-key map [mouse-2] (quote push-button)) map) "\ @@ -2687,7 +2687,7 @@ Also see `make-text-button'. ;;;;;; batch-byte-compile-if-not-done display-call-tree byte-compile ;;;;;; compile-defun byte-compile-file byte-recompile-directory ;;;;;; byte-force-recompile byte-compile-warnings-safe-p) "bytecomp" -;;;;;; "emacs-lisp/bytecomp.el" (17994 6715)) +;;;;;; "emacs-lisp/bytecomp.el" (17949 41467)) ;;; Generated autoloads from emacs-lisp/bytecomp.el (put 'byte-compile-dynamic 'safe-local-variable 'booleanp) (put 'byte-compile-disable-print-circle 'safe-local-variable 'booleanp) @@ -2793,7 +2793,7 @@ and corresponding effects. ;;;*** -;;;### (autoloads nil "cal-dst" "calendar/cal-dst.el" (17994 6715)) +;;;### (autoloads nil "cal-dst" "calendar/cal-dst.el" (17956 13479)) ;;; Generated autoloads from calendar/cal-dst.el (put (quote calendar-daylight-savings-starts) (quote risky-local-variable) t) @@ -2803,7 +2803,7 @@ and corresponding effects. ;;;*** ;;;### (autoloads (list-yahrzeit-dates) "cal-hebrew" "calendar/cal-hebrew.el" -;;;;;; (17994 6715)) +;;;;;; (17956 13479)) ;;; Generated autoloads from calendar/cal-hebrew.el (autoload (quote list-yahrzeit-dates) "cal-hebrew" "\ @@ -2818,7 +2818,7 @@ from the cursor position. ;;;### (autoloads (defmath calc-embedded-activate calc-embedded calc-grab-rectangle ;;;;;; calc-grab-region full-calc-keypad calc-keypad calc-eval quick-calc ;;;;;; full-calc calc calc-dispatch calc-settings-file) "calc" "calc/calc.el" -;;;;;; (17994 6715)) +;;;;;; (17965 11665)) ;;; Generated autoloads from calc/calc.el (defvar calc-settings-file (convert-standard-filename "~/.calc.el") "\ @@ -2896,8 +2896,8 @@ Not documented ;;;*** -;;;### (autoloads (calculator) "calculator" "calculator.el" (17994 -;;;;;; 6715)) +;;;### (autoloads (calculator) "calculator" "calculator.el" (17870 +;;;;;; 28179)) ;;; Generated autoloads from calculator.el (autoload (quote calculator) "calculator" "\ @@ -2925,7 +2925,7 @@ See the documentation for `calculator-mode' for more information. ;;;;;; mark-holidays-in-calendar view-calendar-holidays-initially ;;;;;; calendar-remove-frame-by-deleting mark-diary-entries-in-calendar ;;;;;; view-diary-entries-initially calendar-offset) "calendar" -;;;;;; "calendar/calendar.el" (17994 6715)) +;;;;;; "calendar/calendar.el" (17956 13479)) ;;; Generated autoloads from calendar/calendar.el (defvar calendar-offset 0 "\ @@ -3498,7 +3498,7 @@ movement commands will not work correctly.") ;;;*** ;;;### (autoloads (canlock-verify canlock-insert-header) "canlock" -;;;;;; "gnus/canlock.el" (17994 6715)) +;;;;;; "gnus/canlock.el" (17842 54741)) ;;; Generated autoloads from gnus/canlock.el (autoload (quote canlock-insert-header) "canlock" "\ @@ -3515,15 +3515,15 @@ it fails. ;;;*** -;;;### (autoloads nil "cc-compat" "progmodes/cc-compat.el" (17994 -;;;;;; 6715)) +;;;### (autoloads nil "cc-compat" "progmodes/cc-compat.el" (17842 +;;;;;; 56333)) ;;; Generated autoloads from progmodes/cc-compat.el (put 'c-indent-level 'safe-local-variable 'integerp) ;;;*** ;;;### (autoloads (c-guess-basic-syntax) "cc-engine" "progmodes/cc-engine.el" -;;;;;; (17994 6715)) +;;;;;; (17942 63381)) ;;; Generated autoloads from progmodes/cc-engine.el (autoload (quote c-guess-basic-syntax) "cc-engine" "\ @@ -3535,7 +3535,7 @@ Return the syntactic context of the current line. ;;;### (autoloads (pike-mode idl-mode java-mode objc-mode c++-mode ;;;;;; c-mode c-initialize-cc-mode) "cc-mode" "progmodes/cc-mode.el" -;;;;;; (17994 6728)) +;;;;;; (17992 30878)) ;;; Generated autoloads from progmodes/cc-mode.el (autoload (quote c-initialize-cc-mode) "cc-mode" "\ @@ -3693,7 +3693,7 @@ Key bindings: ;;;*** ;;;### (autoloads (c-set-offset c-add-style c-set-style) "cc-styles" -;;;;;; "progmodes/cc-styles.el" (17994 6715)) +;;;;;; "progmodes/cc-styles.el" (17842 56333)) ;;; Generated autoloads from progmodes/cc-styles.el (autoload (quote c-set-style) "cc-styles" "\ @@ -3744,14 +3744,14 @@ and exists only for compatibility reasons. ;;;*** -;;;### (autoloads nil "cc-subword" "progmodes/cc-subword.el" (17994 -;;;;;; 6715)) +;;;### (autoloads nil "cc-subword" "progmodes/cc-subword.el" (17949 +;;;;;; 41467)) ;;; Generated autoloads from progmodes/cc-subword.el (autoload 'c-subword-mode "cc-subword" "Mode enabling subword movement and editing keys." t) ;;;*** -;;;### (autoloads nil "cc-vars" "progmodes/cc-vars.el" (17994 6715)) +;;;### (autoloads nil "cc-vars" "progmodes/cc-vars.el" (17941 38806)) ;;; Generated autoloads from progmodes/cc-vars.el (put 'c-basic-offset 'safe-local-variable 'integerp) (put 'c-backslash-column 'safe-local-variable 'integerp) @@ -3761,7 +3761,7 @@ and exists only for compatibility reasons. ;;;### (autoloads (ccl-execute-with-args check-ccl-program define-ccl-program ;;;;;; declare-ccl-program ccl-dump ccl-compile) "ccl" "international/ccl.el" -;;;;;; (17994 6715)) +;;;;;; (17842 54888)) ;;; Generated autoloads from international/ccl.el (autoload (quote ccl-compile) "ccl" "\ @@ -4020,7 +4020,7 @@ See the documentation of `define-ccl-program' for the detail of CCL program. ;;;*** ;;;### (autoloads (cfengine-mode) "cfengine" "progmodes/cfengine.el" -;;;;;; (17994 6715)) +;;;;;; (17842 56333)) ;;; Generated autoloads from progmodes/cfengine.el (autoload (quote cfengine-mode) "cfengine" "\ @@ -4042,7 +4042,7 @@ to the action header. ;;;;;; checkdoc-comments checkdoc-continue checkdoc-start checkdoc-current-buffer ;;;;;; checkdoc-eval-current-buffer checkdoc-message-interactive ;;;;;; checkdoc-interactive checkdoc) "checkdoc" "emacs-lisp/checkdoc.el" -;;;;;; (17994 6715)) +;;;;;; (17842 54152)) ;;; Generated autoloads from emacs-lisp/checkdoc.el (autoload (quote checkdoc) "checkdoc" "\ @@ -4225,8 +4225,8 @@ checking of documentation strings. ;;;*** ;;;### (autoloads (encode-hz-buffer encode-hz-region decode-hz-buffer -;;;;;; decode-hz-region) "china-util" "language/china-util.el" (17994 -;;;;;; 6715)) +;;;;;; decode-hz-region) "china-util" "language/china-util.el" (17842 +;;;;;; 58278)) ;;; Generated autoloads from language/china-util.el (autoload (quote decode-hz-region) "china-util" "\ @@ -4254,7 +4254,7 @@ Encode the text in the current buffer to HZ. ;;;*** ;;;### (autoloads (command-history list-command-history repeat-matching-complex-command) -;;;;;; "chistory" "chistory.el" (17994 6715)) +;;;;;; "chistory" "chistory.el" (17842 58280)) ;;; Generated autoloads from chistory.el (autoload (quote repeat-matching-complex-command) "chistory" "\ @@ -4293,7 +4293,7 @@ and runs the normal hook `command-history-hook'. ;;;*** -;;;### (autoloads nil "cl" "emacs-lisp/cl.el" (17994 6715)) +;;;### (autoloads nil "cl" "emacs-lisp/cl.el" (17842 54152)) ;;; Generated autoloads from emacs-lisp/cl.el (defvar custom-print-functions nil "\ @@ -4309,7 +4309,7 @@ a future Emacs interpreter will be able to use it.") ;;;*** ;;;### (autoloads (common-lisp-indent-function) "cl-indent" "emacs-lisp/cl-indent.el" -;;;;;; (17994 6715)) +;;;;;; (17842 54152)) ;;; Generated autoloads from emacs-lisp/cl-indent.el (autoload (quote common-lisp-indent-function) "cl-indent" "\ @@ -4320,7 +4320,7 @@ Not documented ;;;*** ;;;### (autoloads (c-macro-expand) "cmacexp" "progmodes/cmacexp.el" -;;;;;; (17994 6715)) +;;;;;; (17842 56333)) ;;; Generated autoloads from progmodes/cmacexp.el (autoload (quote c-macro-expand) "cmacexp" "\ @@ -4340,8 +4340,8 @@ For use inside Lisp programs, see also `c-macro-expansion'. ;;;*** -;;;### (autoloads (run-scheme) "cmuscheme" "cmuscheme.el" (17994 -;;;;;; 6715)) +;;;### (autoloads (run-scheme) "cmuscheme" "cmuscheme.el" (17842 +;;;;;; 58280)) ;;; Generated autoloads from cmuscheme.el (autoload (quote run-scheme) "cmuscheme" "\ @@ -4363,7 +4363,7 @@ is run). ;;;*** ;;;### (autoloads (cp-make-coding-system) "code-pages" "international/code-pages.el" -;;;;;; (17994 6715)) +;;;;;; (17842 54888)) ;;; Generated autoloads from international/code-pages.el (autoload (quote cp-make-coding-system) "code-pages" "\ @@ -4424,7 +4424,7 @@ Return an updated `non-iso-charset-alist'. ;;;### (autoloads (codepage-setup cp-supported-codepages cp-offset-for-codepage ;;;;;; cp-language-for-codepage cp-charset-for-codepage cp-make-coding-systems-for-codepage) -;;;;;; "codepage" "international/codepage.el" (17994 6715)) +;;;;;; "codepage" "international/codepage.el" (17842 54888)) ;;; Generated autoloads from international/codepage.el (autoload (quote cp-make-coding-systems-for-codepage) "codepage" "\ @@ -4483,7 +4483,7 @@ read/written by MS-DOS software, or for display on the MS-DOS terminal. ;;;### (autoloads (comint-redirect-results-list-from-process comint-redirect-results-list ;;;;;; comint-redirect-send-command-to-process comint-redirect-send-command ;;;;;; comint-run make-comint make-comint-in-buffer) "comint" "comint.el" -;;;;;; (17994 6715)) +;;;;;; (17937 3189)) ;;; Generated autoloads from comint.el (defvar comint-output-filter-functions (quote (comint-postoutput-scroll-to-bottom comint-watch-for-password-prompt)) "\ @@ -4573,8 +4573,8 @@ REGEXP-GROUP is the regular expression group in REGEXP to use. ;;;*** -;;;### (autoloads (compare-windows) "compare-w" "compare-w.el" (17994 -;;;;;; 6715)) +;;;### (autoloads (compare-windows) "compare-w" "compare-w.el" (17926 +;;;;;; 45410)) ;;; Generated autoloads from compare-w.el (autoload (quote compare-windows) "compare-w" "\ @@ -4611,7 +4611,7 @@ on third call it again advances points to the next difference and so on. ;;;;;; compilation-shell-minor-mode compilation-mode compilation-start ;;;;;; compile compilation-disable-input compile-command compilation-search-path ;;;;;; compilation-ask-about-save compilation-window-height compilation-mode-hook) -;;;;;; "compile" "progmodes/compile.el" (18000 24333)) +;;;;;; "compile" "progmodes/compile.el" (18006 55797)) ;;; Generated autoloads from progmodes/compile.el (defvar compilation-mode-hook nil "\ @@ -4774,7 +4774,7 @@ This is the value of `next-error-function' in Compilation buffers. ;;;*** ;;;### (autoloads (partial-completion-mode) "complete" "complete.el" -;;;;;; (17994 6715)) +;;;;;; (17954 15344)) ;;; Generated autoloads from complete.el (defvar partial-completion-mode nil "\ @@ -4816,7 +4816,7 @@ second TAB brings up the `*Completions*' buffer. ;;;*** ;;;### (autoloads (dynamic-completion-mode) "completion" "completion.el" -;;;;;; (17994 6715)) +;;;;;; (17842 58280)) ;;; Generated autoloads from completion.el (defvar dynamic-completion-mode nil "\ @@ -4838,7 +4838,7 @@ Enable dynamic word-completion. ;;;### (autoloads (decompose-composite-char compose-last-chars compose-chars-after ;;;;;; find-composition compose-chars decompose-string compose-string ;;;;;; decompose-region compose-region encode-composition-rule) -;;;;;; "composite" "composite.el" (17994 6715)) +;;;;;; "composite" "composite.el" (17842 58280)) ;;; Generated autoloads from composite.el (defconst reference-point-alist (quote ((tl . 0) (tc . 1) (tr . 2) (Bl . 3) (Bc . 4) (Br . 5) (bl . 6) (bc . 7) (br . 8) (cl . 9) (cc . 10) (cr . 11) (top-left . 0) (top-center . 1) (top-right . 2) (base-left . 3) (base-center . 4) (base-right . 5) (bottom-left . 6) (bottom-center . 7) (bottom-right . 8) (center-left . 9) (center-center . 10) (center-right . 11) (ml . 3) (mc . 10) (mr . 5) (mid-left . 3) (mid-center . 10) (mid-right . 5))) "\ @@ -5060,7 +5060,7 @@ Optional 3rd arg WITH-COMPOSITION-RULE is ignored. ;;;### (autoloads (conf-xdefaults-mode conf-ppd-mode conf-colon-mode ;;;;;; conf-space-keywords conf-space-mode conf-javaprop-mode conf-windows-mode ;;;;;; conf-unix-mode conf-mode) "conf-mode" "textmodes/conf-mode.el" -;;;;;; (17994 6715)) +;;;;;; (17842 58277)) ;;; Generated autoloads from textmodes/conf-mode.el (autoload (quote conf-mode) "conf-mode" "\ @@ -5216,7 +5216,7 @@ For details see `conf-mode'. Example: ;;;*** ;;;### (autoloads (shuffle-vector cookie-snarf cookie-insert cookie) -;;;;;; "cookie1" "play/cookie1.el" (17994 6715)) +;;;;;; "cookie1" "play/cookie1.el" (17842 55395)) ;;; Generated autoloads from play/cookie1.el (autoload (quote cookie) "cookie1" "\ @@ -5248,7 +5248,7 @@ Randomly permute the elements of VECTOR (all permutations equally likely). ;;;*** ;;;### (autoloads (copyright copyright-fix-years copyright-update) -;;;;;; "copyright" "emacs-lisp/copyright.el" (17994 6715)) +;;;;;; "copyright" "emacs-lisp/copyright.el" (17842 54152)) ;;; Generated autoloads from emacs-lisp/copyright.el (autoload (quote copyright-update) "copyright" "\ @@ -5276,7 +5276,7 @@ Insert a copyright by $ORGANIZATION notice at cursor. ;;;*** ;;;### (autoloads (cperl-perldoc-at-point cperl-perldoc cperl-mode) -;;;;;; "cperl-mode" "progmodes/cperl-mode.el" (17994 6715)) +;;;;;; "cperl-mode" "progmodes/cperl-mode.el" (17955 36604)) ;;; Generated autoloads from progmodes/cperl-mode.el (autoload (quote cperl-mode) "cperl-mode" "\ @@ -5467,7 +5467,7 @@ Run a `perldoc' on the word around point. ;;;*** ;;;### (autoloads (cpp-parse-edit cpp-highlight-buffer) "cpp" "progmodes/cpp.el" -;;;;;; (17994 6715)) +;;;;;; (17842 56333)) ;;; Generated autoloads from progmodes/cpp.el (autoload (quote cpp-highlight-buffer) "cpp" "\ @@ -5486,7 +5486,7 @@ Edit display information for cpp conditionals. ;;;*** ;;;### (autoloads (crisp-mode crisp-mode) "crisp" "emulation/crisp.el" -;;;;;; (17994 6715)) +;;;;;; (17842 54264)) ;;; Generated autoloads from emulation/crisp.el (defvar crisp-mode nil "\ @@ -5510,7 +5510,7 @@ With ARG, turn CRiSP mode on if ARG is positive, off otherwise. ;;;*** ;;;### (autoloads (completing-read-multiple) "crm" "emacs-lisp/crm.el" -;;;;;; (17994 6715)) +;;;;;; (17842 54152)) ;;; Generated autoloads from emacs-lisp/crm.el (autoload (quote completing-read-multiple) "crm" "\ @@ -5546,7 +5546,7 @@ INHERIT-INPUT-METHOD. ;;;*** ;;;### (autoloads (cua-selection-mode cua-mode) "cua-base" "emulation/cua-base.el" -;;;;;; (17994 6751)) +;;;;;; (17888 45995)) ;;; Generated autoloads from emulation/cua-base.el (defvar cua-mode nil "\ @@ -5614,7 +5614,7 @@ Enable CUA selection mode without the C-z/C-x/C-c/C-v bindings. ;;;;;; customize-mode customize customize-save-variable customize-set-variable ;;;;;; customize-set-value custom-menu-sort-alphabetically custom-buffer-sort-alphabetically ;;;;;; custom-browse-sort-alphabetically) "cus-edit" "cus-edit.el" -;;;;;; (17994 6715)) +;;;;;; (17952 11093)) ;;; Generated autoloads from cus-edit.el (defvar custom-browse-sort-alphabetically nil "\ @@ -5912,7 +5912,7 @@ The format is suitable for use with `easy-menu-define'. ;;;*** ;;;### (autoloads (custom-reset-faces custom-theme-reset-faces custom-set-faces -;;;;;; custom-declare-face) "cus-face" "cus-face.el" (17994 6750)) +;;;;;; custom-declare-face) "cus-face" "cus-face.el" (17842 58280)) ;;; Generated autoloads from cus-face.el (autoload (quote custom-declare-face) "cus-face" "\ @@ -5982,7 +5982,7 @@ This means reset FACE to its value in FROM-THEME. ;;;*** ;;;### (autoloads (customize-create-theme) "cus-theme" "cus-theme.el" -;;;;;; (17994 6715)) +;;;;;; (17842 58280)) ;;; Generated autoloads from cus-theme.el (autoload (quote customize-create-theme) "cus-theme" "\ @@ -5993,7 +5993,7 @@ Create a custom theme. ;;;*** ;;;### (autoloads (cvs-status-mode) "cvs-status" "cvs-status.el" -;;;;;; (17994 6715)) +;;;;;; (17842 58280)) ;;; Generated autoloads from cvs-status.el (autoload (quote cvs-status-mode) "cvs-status" "\ @@ -6004,7 +6004,7 @@ Mode used for cvs status output. ;;;*** ;;;### (autoloads (global-cwarn-mode turn-on-cwarn-mode cwarn-mode) -;;;;;; "cwarn" "progmodes/cwarn.el" (17994 6715)) +;;;;;; "cwarn" "progmodes/cwarn.el" (17860 50532)) ;;; Generated autoloads from progmodes/cwarn.el (autoload (quote cwarn-mode) "cwarn" "\ @@ -6047,7 +6047,7 @@ See `cwarn-mode' for more information on Cwarn mode. ;;;### (autoloads (standard-display-cyrillic-translit cyrillic-encode-alternativnyj-char ;;;;;; cyrillic-encode-koi8-r-char) "cyril-util" "language/cyril-util.el" -;;;;;; (17994 6715)) +;;;;;; (17842 58278)) ;;; Generated autoloads from language/cyril-util.el (autoload (quote cyrillic-encode-koi8-r-char) "cyril-util" "\ @@ -6076,7 +6076,7 @@ If the argument is nil, we return the display table to its standard state. ;;;*** ;;;### (autoloads (dabbrev-expand dabbrev-completion) "dabbrev" "dabbrev.el" -;;;;;; (18000 24333)) +;;;;;; (18006 55794)) ;;; Generated autoloads from dabbrev.el (define-key esc-map "/" 'dabbrev-expand) (define-key esc-map [?\C-/] 'dabbrev-completion) @@ -6120,8 +6120,8 @@ See also `dabbrev-abbrev-char-regexp' and \\[dabbrev-completion]. ;;;*** -;;;### (autoloads (dcl-mode) "dcl-mode" "progmodes/dcl-mode.el" (17994 -;;;;;; 6715)) +;;;### (autoloads (dcl-mode) "dcl-mode" "progmodes/dcl-mode.el" (17949 +;;;;;; 41468)) ;;; Generated autoloads from progmodes/dcl-mode.el (autoload (quote dcl-mode) "dcl-mode" "\ @@ -6248,7 +6248,7 @@ There is some minimal font-lock support (see vars ;;;*** ;;;### (autoloads (cancel-debug-on-entry debug-on-entry debug) "debug" -;;;;;; "emacs-lisp/debug.el" (17994 6715)) +;;;;;; "emacs-lisp/debug.el" (17842 54152)) ;;; Generated autoloads from emacs-lisp/debug.el (setq debugger (quote debug)) @@ -6292,7 +6292,7 @@ To specify a nil argument interactively, exit with an empty minibuffer. ;;;*** ;;;### (autoloads (decipher-mode decipher) "decipher" "play/decipher.el" -;;;;;; (17994 6715)) +;;;;;; (17842 55395)) ;;; Generated autoloads from play/decipher.el (autoload (quote decipher) "decipher" "\ @@ -6321,8 +6321,8 @@ The most useful commands are: ;;;*** ;;;### (autoloads (delimit-columns-rectangle delimit-columns-region -;;;;;; delimit-columns-customize) "delim-col" "delim-col.el" (17994 -;;;;;; 6715)) +;;;;;; delimit-columns-customize) "delim-col" "delim-col.el" (17842 +;;;;;; 58280)) ;;; Generated autoloads from delim-col.el (autoload (quote delimit-columns-customize) "delim-col" "\ @@ -6346,8 +6346,8 @@ START and END delimits the corners of text rectangle. ;;;*** -;;;### (autoloads (delphi-mode) "delphi" "progmodes/delphi.el" (17994 -;;;;;; 6715)) +;;;### (autoloads (delphi-mode) "delphi" "progmodes/delphi.el" (17842 +;;;;;; 56333)) ;;; Generated autoloads from progmodes/delphi.el (autoload (quote delphi-mode) "delphi" "\ @@ -6397,8 +6397,8 @@ no args, if that value is non-nil. ;;;*** -;;;### (autoloads (delete-selection-mode) "delsel" "delsel.el" (17994 -;;;;;; 6715)) +;;;### (autoloads (delete-selection-mode) "delsel" "delsel.el" (17842 +;;;;;; 58280)) ;;; Generated autoloads from delsel.el (defalias (quote pending-delete-mode) (quote delete-selection-mode)) @@ -6427,7 +6427,7 @@ any selection. ;;;*** ;;;### (autoloads (derived-mode-init-mode-variables define-derived-mode) -;;;;;; "derived" "emacs-lisp/derived.el" (17994 6715)) +;;;;;; "derived" "emacs-lisp/derived.el" (17842 54152)) ;;; Generated autoloads from emacs-lisp/derived.el (autoload (quote define-derived-mode) "derived" "\ @@ -6492,7 +6492,7 @@ the first time the mode is used. ;;;*** ;;;### (autoloads (describe-char describe-text-properties) "descr-text" -;;;;;; "descr-text.el" (17994 6715)) +;;;;;; "descr-text.el" (17874 62047)) ;;; Generated autoloads from descr-text.el (autoload (quote describe-text-properties) "descr-text" "\ @@ -6518,7 +6518,7 @@ as well as widgets, buttons, overlays, and text properties. ;;;### (autoloads (desktop-revert desktop-save-in-desktop-dir desktop-change-dir ;;;;;; desktop-load-default desktop-read desktop-remove desktop-save ;;;;;; desktop-clear desktop-locals-to-save desktop-save-mode) "desktop" -;;;;;; "desktop.el" (17994 6715)) +;;;;;; "desktop.el" (17949 41467)) ;;; Generated autoloads from desktop.el (defvar desktop-save-mode nil "\ @@ -6701,7 +6701,7 @@ Revert to the last loaded desktop. ;;;### (autoloads (gnus-article-outlook-deuglify-article gnus-outlook-deuglify-article ;;;;;; gnus-article-outlook-repair-attribution gnus-article-outlook-unwrap-lines) -;;;;;; "deuglify" "gnus/deuglify.el" (17994 6715)) +;;;;;; "deuglify" "gnus/deuglify.el" (17842 54741)) ;;; Generated autoloads from gnus/deuglify.el (autoload (quote gnus-article-outlook-unwrap-lines) "deuglify" "\ @@ -6734,7 +6734,7 @@ Deuglify broken Outlook (Express) articles and redisplay. ;;;*** ;;;### (autoloads (devanagari-post-read-conversion devanagari-compose-region) -;;;;;; "devan-util" "language/devan-util.el" (17994 6715)) +;;;;;; "devan-util" "language/devan-util.el" (17842 58278)) ;;; Generated autoloads from language/devan-util.el (defconst devanagari-consonant "[\x51ad5-\x51af9\x51b38-\x51b3f]") @@ -6752,7 +6752,7 @@ Not documented ;;;*** ;;;### (autoloads (diary-mode diary-mail-entries diary) "diary-lib" -;;;;;; "calendar/diary-lib.el" (17994 6715)) +;;;;;; "calendar/diary-lib.el" (17958 11887)) ;;; Generated autoloads from calendar/diary-lib.el (autoload (quote diary) "diary-lib" "\ @@ -6798,7 +6798,7 @@ Major mode for editing the diary file. ;;;*** ;;;### (autoloads (diff-backup diff diff-command diff-switches) "diff" -;;;;;; "diff.el" (17994 6736)) +;;;;;; "diff.el" (17992 30877)) ;;; Generated autoloads from diff.el (defvar diff-switches "-c" "\ @@ -6832,7 +6832,7 @@ With prefix arg, prompt for diff switches. ;;;*** ;;;### (autoloads (diff-minor-mode diff-mode) "diff-mode" "diff-mode.el" -;;;;;; (17994 6740)) +;;;;;; (17992 30877)) ;;; Generated autoloads from diff-mode.el (autoload (quote diff-mode) "diff-mode" "\ @@ -6864,7 +6864,7 @@ Minor mode for viewing/editing context diffs. ;;;;;; dired dired-copy-preserve-time dired-dwim-target dired-keep-marker-symlink ;;;;;; dired-keep-marker-hardlink dired-keep-marker-copy dired-keep-marker-rename ;;;;;; dired-trivial-filenames dired-ls-F-marks-symlinks dired-listing-switches) -;;;;;; "dired" "dired.el" (18000 24335)) +;;;;;; "dired" "dired.el" (18015 32019)) ;;; Generated autoloads from dired.el (defvar dired-listing-switches "-al" "\ @@ -7069,7 +7069,7 @@ Keybindings: ;;;;;; dired-run-shell-command dired-do-shell-command dired-clean-directory ;;;;;; dired-do-print dired-do-touch dired-do-chown dired-do-chgrp ;;;;;; dired-do-chmod dired-compare-directories dired-backup-diff -;;;;;; dired-diff) "dired-aux" "dired-aux.el" (17994 6715)) +;;;;;; dired-diff) "dired-aux" "dired-aux.el" (17859 20444)) ;;; Generated autoloads from dired-aux.el (autoload (quote dired-diff) "dired-aux" "\ @@ -7484,7 +7484,7 @@ true then the type of the file linked to by FILE is printed instead. ;;;*** ;;;### (autoloads (dired-do-relsymlink dired-jump) "dired-x" "dired-x.el" -;;;;;; (17994 6731)) +;;;;;; (17992 30877)) ;;; Generated autoloads from dired-x.el (autoload (quote dired-jump) "dired-x" "\ @@ -7513,7 +7513,7 @@ For absolute symlinks, use \\[dired-do-symlink]. ;;;*** -;;;### (autoloads (dirtrack) "dirtrack" "dirtrack.el" (17994 6715)) +;;;### (autoloads (dirtrack) "dirtrack" "dirtrack.el" (17842 58280)) ;;; Generated autoloads from dirtrack.el (autoload (quote dirtrack) "dirtrack" "\ @@ -7532,8 +7532,8 @@ You can enable directory tracking by adding this function to ;;;*** -;;;### (autoloads (disassemble) "disass" "emacs-lisp/disass.el" (17994 -;;;;;; 6715)) +;;;### (autoloads (disassemble) "disass" "emacs-lisp/disass.el" (17842 +;;;;;; 54152)) ;;; Generated autoloads from emacs-lisp/disass.el (autoload (quote disassemble) "disass" "\ @@ -7552,7 +7552,7 @@ redefine OBJECT if it is a symbol. ;;;;;; standard-display-g1 standard-display-ascii standard-display-default ;;;;;; standard-display-8bit describe-current-display-table describe-display-table ;;;;;; set-display-table-slot display-table-slot make-display-table) -;;;;;; "disp-table" "disp-table.el" (17994 6715)) +;;;;;; "disp-table" "disp-table.el" (17874 62056)) ;;; Generated autoloads from disp-table.el (autoload (quote make-display-table) "disp-table" "\ @@ -7668,7 +7668,7 @@ for users who call this function in `.emacs'. ;;;*** ;;;### (autoloads (dissociated-press) "dissociate" "play/dissociate.el" -;;;;;; (17994 6715)) +;;;;;; (17941 38806)) ;;; Generated autoloads from play/dissociate.el (autoload (quote dissociated-press) "dissociate" "\ @@ -7684,7 +7684,7 @@ Default is 2. ;;;*** -;;;### (autoloads (dnd-protocol-alist) "dnd" "dnd.el" (17994 6715)) +;;;### (autoloads (dnd-protocol-alist) "dnd" "dnd.el" (17949 41467)) ;;; Generated autoloads from dnd.el (defvar dnd-protocol-alist (quote (("^file:///" . dnd-open-local-file) ("^file://" . dnd-open-file) ("^file:" . dnd-open-local-file) ("^\\(https?\\|ftp\\|file\\|nfs\\)://" . dnd-open-file))) "\ @@ -7705,7 +7705,7 @@ if some action was made, or nil if the URL is ignored.") ;;;*** ;;;### (autoloads (dns-mode-soa-increment-serial dns-mode) "dns-mode" -;;;;;; "textmodes/dns-mode.el" (17994 6715)) +;;;;;; "textmodes/dns-mode.el" (17842 58277)) ;;; Generated autoloads from textmodes/dns-mode.el (autoload (quote dns-mode) "dns-mode" "\ @@ -7729,7 +7729,7 @@ Locate SOA record and increment the serial field. ;;;*** -;;;### (autoloads (doctor) "doctor" "play/doctor.el" (17994 6715)) +;;;### (autoloads (doctor) "doctor" "play/doctor.el" (17941 38806)) ;;; Generated autoloads from play/doctor.el (autoload (quote doctor) "doctor" "\ @@ -7740,7 +7740,7 @@ Switch to *doctor* buffer and start giving psychotherapy. ;;;*** ;;;### (autoloads (double-mode double-mode) "double" "double.el" -;;;;;; (17994 6750)) +;;;;;; (17842 58280)) ;;; Generated autoloads from double.el (defvar double-mode nil "\ @@ -7761,7 +7761,7 @@ when pressed twice. See variable `double-map' for details. ;;;*** -;;;### (autoloads (dunnet) "dunnet" "play/dunnet.el" (17994 6715)) +;;;### (autoloads (dunnet) "dunnet" "play/dunnet.el" (17842 55395)) ;;; Generated autoloads from play/dunnet.el (autoload (quote dunnet) "dunnet" "\ @@ -7772,7 +7772,7 @@ Switch to *dungeon* buffer and start game. ;;;*** ;;;### (autoloads (gnus-earcon-display) "earcon" "gnus/earcon.el" -;;;;;; (17994 6715)) +;;;;;; (17842 54741)) ;;; Generated autoloads from gnus/earcon.el (autoload (quote gnus-earcon-display) "earcon" "\ @@ -7784,7 +7784,7 @@ Play sounds in message buffers. ;;;### (autoloads (easy-mmode-defsyntax easy-mmode-defmap easy-mmode-define-keymap ;;;;;; define-globalized-minor-mode define-minor-mode) "easy-mmode" -;;;;;; "emacs-lisp/easy-mmode.el" (17994 6743)) +;;;;;; "emacs-lisp/easy-mmode.el" (17992 30878)) ;;; Generated autoloads from emacs-lisp/easy-mmode.el (defalias (quote easy-mmode-define-minor-mode) (quote define-minor-mode)) @@ -7878,8 +7878,8 @@ CSS contains a list of syntax specifications of the form (CHAR . SYNTAX). ;;;*** ;;;### (autoloads (easy-menu-change easy-menu-create-menu easy-menu-do-define -;;;;;; easy-menu-define) "easymenu" "emacs-lisp/easymenu.el" (17994 -;;;;;; 6715)) +;;;;;; easy-menu-define) "easymenu" "emacs-lisp/easymenu.el" (17842 +;;;;;; 54152)) ;;; Generated autoloads from emacs-lisp/easymenu.el (put (quote easy-menu-define) (quote lisp-indent-function) (quote defun)) @@ -8028,7 +8028,7 @@ To implement dynamic menus, either call this from ;;;;;; ebnf-eps-directory ebnf-spool-region ebnf-spool-buffer ebnf-spool-file ;;;;;; ebnf-spool-directory ebnf-print-region ebnf-print-buffer ;;;;;; ebnf-print-file ebnf-print-directory ebnf-customize) "ebnf2ps" -;;;;;; "progmodes/ebnf2ps.el" (17994 6715)) +;;;;;; "progmodes/ebnf2ps.el" (17952 11093)) ;;; Generated autoloads from progmodes/ebnf2ps.el (autoload (quote ebnf-customize) "ebnf2ps" "\ @@ -8295,8 +8295,8 @@ See `ebnf-style-database' documentation. ;;;;;; ebrowse-tags-find-declaration-other-window ebrowse-tags-find-definition ;;;;;; ebrowse-tags-view-definition ebrowse-tags-find-declaration ;;;;;; ebrowse-tags-view-declaration ebrowse-member-mode ebrowse-electric-choose-tree -;;;;;; ebrowse-tree-mode) "ebrowse" "progmodes/ebrowse.el" (17994 -;;;;;; 6751)) +;;;;;; ebrowse-tree-mode) "ebrowse" "progmodes/ebrowse.el" (17821 +;;;;;; 5918)) ;;; Generated autoloads from progmodes/ebrowse.el (autoload (quote ebrowse-tree-mode) "ebrowse" "\ @@ -8447,7 +8447,7 @@ Display statistics for a class tree. ;;;*** ;;;### (autoloads (electric-buffer-list) "ebuff-menu" "ebuff-menu.el" -;;;;;; (17994 6750)) +;;;;;; (17842 58280)) ;;; Generated autoloads from ebuff-menu.el (autoload (quote electric-buffer-list) "ebuff-menu" "\ @@ -8472,7 +8472,7 @@ Run hooks in `electric-buffer-menu-mode-hook' on entry. ;;;*** ;;;### (autoloads (Electric-command-history-redo-expression) "echistory" -;;;;;; "echistory.el" (17994 6750)) +;;;;;; "echistory.el" (17842 58280)) ;;; Generated autoloads from echistory.el (autoload (quote Electric-command-history-redo-expression) "echistory" "\ @@ -8485,7 +8485,7 @@ With prefix arg NOCONFIRM, execute current line as-is without editing. ;;;### (autoloads (edebug-all-forms edebug-all-defs edebug-eval-top-level-form ;;;;;; edebug-basic-spec edebug-all-forms edebug-all-defs) "edebug" -;;;;;; "emacs-lisp/edebug.el" (17994 6715)) +;;;;;; "emacs-lisp/edebug.el" (17952 11093)) ;;; Generated autoloads from emacs-lisp/edebug.el (defvar edebug-all-defs nil "\ @@ -8558,7 +8558,7 @@ Toggle edebugging of all forms. ;;;;;; ediff-merge-directory-revisions ediff-merge-directories-with-ancestor ;;;;;; ediff-merge-directories ediff-directories3 ediff-directory-revisions ;;;;;; ediff-directories ediff-buffers3 ediff-buffers ediff-backup -;;;;;; ediff-files3 ediff-files) "ediff" "ediff.el" (17994 6715)) +;;;;;; ediff-files3 ediff-files) "ediff" "ediff.el" (17846 30361)) ;;; Generated autoloads from ediff.el (autoload (quote ediff-files) "ediff" "\ @@ -8790,7 +8790,7 @@ With optional NODE, goes to that node. ;;;*** ;;;### (autoloads (ediff-customize) "ediff-help" "ediff-help.el" -;;;;;; (17994 6715)) +;;;;;; (17842 58280)) ;;; Generated autoloads from ediff-help.el (autoload (quote ediff-customize) "ediff-help" "\ @@ -8800,7 +8800,7 @@ Not documented ;;;*** -;;;### (autoloads nil "ediff-hook" "ediff-hook.el" (17994 6715)) +;;;### (autoloads nil "ediff-hook" "ediff-hook.el" (17842 58280)) ;;; Generated autoloads from ediff-hook.el (defvar ediff-window-setup-function) @@ -8813,7 +8813,7 @@ Not documented ;;;*** ;;;### (autoloads (ediff-show-registry) "ediff-mult" "ediff-mult.el" -;;;;;; (17994 6715)) +;;;;;; (17842 58279)) ;;; Generated autoloads from ediff-mult.el (autoload (quote ediff-show-registry) "ediff-mult" "\ @@ -8826,7 +8826,7 @@ Display Ediff's registry. ;;;*** ;;;### (autoloads (ediff-toggle-use-toolbar ediff-toggle-multiframe) -;;;;;; "ediff-util" "ediff-util.el" (17994 6715)) +;;;;;; "ediff-util" "ediff-util.el" (17846 30361)) ;;; Generated autoloads from ediff-util.el (autoload (quote ediff-toggle-multiframe) "ediff-util" "\ @@ -8847,7 +8847,7 @@ To change the default, set the variable `ediff-use-toolbar-p', which see. ;;;### (autoloads (format-kbd-macro read-kbd-macro edit-named-kbd-macro ;;;;;; edit-last-kbd-macro edit-kbd-macro) "edmacro" "edmacro.el" -;;;;;; (17994 6750)) +;;;;;; (17842 58279)) ;;; Generated autoloads from edmacro.el (defvar edmacro-eight-bits nil "\ @@ -8900,7 +8900,7 @@ or nil, use a compact 80-column format. ;;;*** ;;;### (autoloads (edt-emulation-on edt-set-scroll-margins) "edt" -;;;;;; "emulation/edt.el" (17994 6715)) +;;;;;; "emulation/edt.el" (17842 54264)) ;;; Generated autoloads from emulation/edt.el (autoload (quote edt-set-scroll-margins) "edt" "\ @@ -8918,7 +8918,7 @@ Turn on EDT Emulation. ;;;*** ;;;### (autoloads (electric-helpify with-electric-help) "ehelp" "ehelp.el" -;;;;;; (17994 6715)) +;;;;;; (17873 45892)) ;;; Generated autoloads from ehelp.el (autoload (quote with-electric-help) "ehelp" "\ @@ -8955,7 +8955,7 @@ Not documented ;;;*** ;;;### (autoloads (turn-on-eldoc-mode eldoc-mode eldoc-minor-mode-string) -;;;;;; "eldoc" "emacs-lisp/eldoc.el" (17994 6737)) +;;;;;; "eldoc" "emacs-lisp/eldoc.el" (17992 30878)) ;;; Generated autoloads from emacs-lisp/eldoc.el (defvar eldoc-minor-mode-string " ElDoc" "\ @@ -8993,8 +8993,8 @@ Emacs Lisp mode) that support Eldoc.") ;;;*** -;;;### (autoloads (elide-head) "elide-head" "elide-head.el" (17994 -;;;;;; 6715)) +;;;### (autoloads (elide-head) "elide-head" "elide-head.el" (17842 +;;;;;; 58279)) ;;; Generated autoloads from elide-head.el (autoload (quote elide-head) "elide-head" "\ @@ -9010,7 +9010,7 @@ This is suitable as an entry on `find-file-hook' or appropriate mode hooks. ;;;*** ;;;### (autoloads (elint-initialize) "elint" "emacs-lisp/elint.el" -;;;;;; (17994 6715)) +;;;;;; (17842 54152)) ;;; Generated autoloads from emacs-lisp/elint.el (autoload (quote elint-initialize) "elint" "\ @@ -9021,8 +9021,8 @@ Initialize elint. ;;;*** ;;;### (autoloads (elp-results elp-instrument-package elp-instrument-list -;;;;;; elp-instrument-function) "elp" "emacs-lisp/elp.el" (17994 -;;;;;; 6715)) +;;;;;; elp-instrument-function) "elp" "emacs-lisp/elp.el" (17842 +;;;;;; 54152)) ;;; Generated autoloads from emacs-lisp/elp.el (autoload (quote elp-instrument-function) "elp" "\ @@ -9056,7 +9056,7 @@ displayed. ;;;*** ;;;### (autoloads (report-emacs-bug) "emacsbug" "mail/emacsbug.el" -;;;;;; (17994 6751)) +;;;;;; (17907 23437)) ;;; Generated autoloads from mail/emacsbug.el (autoload (quote report-emacs-bug) "emacsbug" "\ @@ -9148,12 +9148,26 @@ Not documented ;;;*** -;;;### (autoloads (encoded-kbd-setup-display) "encoded-kb" "international/encoded-kb.el" -;;;;;; (17994 6751)) +;;;### (autoloads (encoded-kbd-mode) "encoded-kb" "international/encoded-kb.el" +;;;;;; (17842 54888)) ;;; Generated autoloads from international/encoded-kb.el -(autoload (quote encoded-kbd-setup-display) "encoded-kb" "\ -Set up a `key-translation-map' for `keyboard-coding-system' on DISPLAY. +(defvar encoded-kbd-mode nil "\ +Non-nil if Encoded-Kbd mode is enabled. +See the command `encoded-kbd-mode' for a description of this minor mode. +Setting this variable directly does not take effect; +either customize it (see the info node `Easy Customization') +or call the function `encoded-kbd-mode'.") + +(custom-autoload (quote encoded-kbd-mode) "encoded-kb" nil) + +(autoload (quote encoded-kbd-mode) "encoded-kb" "\ +Toggle Encoded-kbd minor mode. +With arg, turn Encoded-kbd mode on if and only if arg is positive. + +You should not turn this mode on manually, instead use the command +\\[set-keyboard-coding-system] which turns on or off this mode +automatically. DISPLAY may be a display id, a frame, or nil for the selected frame's display. @@ -9162,7 +9176,7 @@ DISPLAY may be a display id, a frame, or nil for the selected frame's display. ;;;*** ;;;### (autoloads (enriched-decode enriched-encode enriched-mode) -;;;;;; "enriched" "textmodes/enriched.el" (17994 6715)) +;;;;;; "enriched" "textmodes/enriched.el" (17842 58277)) ;;; Generated autoloads from textmodes/enriched.el (autoload (quote enriched-mode) "enriched" "\ @@ -9193,7 +9207,7 @@ Not documented ;;;*** ;;;### (autoloads (erc-handle-irc-url erc erc-select-read-args) "erc" -;;;;;; "erc/erc.el" (17994 6715)) +;;;;;; "erc/erc.el" (17935 53318)) ;;; Generated autoloads from erc/erc.el (autoload (quote erc-select-read-args) "erc" "\ @@ -9235,33 +9249,33 @@ Otherwise, connect to HOST:PORT as USER and /join CHANNEL. ;;;*** -;;;### (autoloads nil "erc-autoaway" "erc/erc-autoaway.el" (17994 -;;;;;; 6715)) +;;;### (autoloads nil "erc-autoaway" "erc/erc-autoaway.el" (17935 +;;;;;; 53318)) ;;; Generated autoloads from erc/erc-autoaway.el (autoload 'erc-autoaway-mode "erc-autoaway") ;;;*** -;;;### (autoloads nil "erc-button" "erc/erc-button.el" (17994 6715)) +;;;### (autoloads nil "erc-button" "erc/erc-button.el" (17935 53318)) ;;; Generated autoloads from erc/erc-button.el (autoload 'erc-button-mode "erc-button" nil t) ;;;*** -;;;### (autoloads nil "erc-capab" "erc/erc-capab.el" (17994 6715)) +;;;### (autoloads nil "erc-capab" "erc/erc-capab.el" (17935 53318)) ;;; Generated autoloads from erc/erc-capab.el (autoload 'erc-capab-identify-mode "erc-capab" nil t) ;;;*** -;;;### (autoloads nil "erc-compat" "erc/erc-compat.el" (17994 6715)) +;;;### (autoloads nil "erc-compat" "erc/erc-compat.el" (17935 53318)) ;;; Generated autoloads from erc/erc-compat.el (autoload 'erc-define-minor-mode "erc-compat") ;;;*** ;;;### (autoloads (erc-ctcp-query-DCC pcomplete/erc-mode/DCC erc-cmd-DCC) -;;;;;; "erc-dcc" "erc/erc-dcc.el" (17994 6715)) +;;;;;; "erc-dcc" "erc/erc-dcc.el" (17842 54344)) ;;; Generated autoloads from erc/erc-dcc.el (autoload (quote erc-cmd-DCC) "erc-dcc" "\ @@ -9293,7 +9307,7 @@ that subcommand. ;;;;;; erc-ezb-add-session erc-ezb-end-of-session-list erc-ezb-init-session-list ;;;;;; erc-ezb-identify erc-ezb-notice-autodetect erc-ezb-lookup-action ;;;;;; erc-ezb-get-login erc-cmd-ezb) "erc-ezbounce" "erc/erc-ezbounce.el" -;;;;;; (17994 6715)) +;;;;;; (17842 54344)) ;;; Generated autoloads from erc/erc-ezbounce.el (autoload (quote erc-cmd-ezb) "erc-ezbounce" "\ @@ -9355,8 +9369,8 @@ Add EZBouncer convenience functions to ERC. ;;;*** -;;;### (autoloads (erc-fill) "erc-fill" "erc/erc-fill.el" (17994 -;;;;;; 6715)) +;;;### (autoloads (erc-fill) "erc-fill" "erc/erc-fill.el" (17935 +;;;;;; 53318)) ;;; Generated autoloads from erc/erc-fill.el (autoload 'erc-fill-mode "erc-fill" nil t) @@ -9368,15 +9382,15 @@ You can put this on `erc-insert-modify-hook' and/or `erc-send-modify-hook'. ;;;*** -;;;### (autoloads nil "erc-hecomplete" "erc/erc-hecomplete.el" (17994 -;;;;;; 6715)) +;;;### (autoloads nil "erc-hecomplete" "erc/erc-hecomplete.el" (17842 +;;;;;; 54344)) ;;; Generated autoloads from erc/erc-hecomplete.el (autoload 'erc-hecomplete-mode "erc-hecomplete" nil t) ;;;*** ;;;### (autoloads (erc-identd-stop erc-identd-start) "erc-identd" -;;;;;; "erc/erc-identd.el" (17994 6715)) +;;;;;; "erc/erc-identd.el" (17935 53318)) ;;; Generated autoloads from erc/erc-identd.el (autoload 'erc-identd-mode "erc-identd") @@ -9398,7 +9412,7 @@ Not documented ;;;*** ;;;### (autoloads (erc-create-imenu-index) "erc-imenu" "erc/erc-imenu.el" -;;;;;; (17994 6715)) +;;;;;; (17842 54344)) ;;; Generated autoloads from erc/erc-imenu.el (autoload (quote erc-create-imenu-index) "erc-imenu" "\ @@ -9408,14 +9422,14 @@ Not documented ;;;*** -;;;### (autoloads nil "erc-join" "erc/erc-join.el" (17994 6715)) +;;;### (autoloads nil "erc-join" "erc/erc-join.el" (17842 54344)) ;;; Generated autoloads from erc/erc-join.el (autoload 'erc-autojoin-mode "erc-join" nil t) ;;;*** ;;;### (autoloads (erc-save-buffer-in-logs erc-logging-enabled) "erc-log" -;;;;;; "erc/erc-log.el" (17994 6715)) +;;;;;; "erc/erc-log.el" (17935 53318)) ;;; Generated autoloads from erc/erc-log.el (autoload 'erc-log-mode "erc-log" nil t) @@ -9447,7 +9461,7 @@ You can save every individual message by putting this function on ;;;### (autoloads (erc-delete-dangerous-host erc-add-dangerous-host ;;;;;; erc-delete-keyword erc-add-keyword erc-delete-fool erc-add-fool ;;;;;; erc-delete-pal erc-add-pal) "erc-match" "erc/erc-match.el" -;;;;;; (17994 6715)) +;;;;;; (17935 53318)) ;;; Generated autoloads from erc/erc-match.el (autoload 'erc-match-mode "erc-match") @@ -9493,14 +9507,14 @@ Delete dangerous-host interactively to `erc-dangerous-hosts'. ;;;*** -;;;### (autoloads nil "erc-menu" "erc/erc-menu.el" (17994 6715)) +;;;### (autoloads nil "erc-menu" "erc/erc-menu.el" (17935 53318)) ;;; Generated autoloads from erc/erc-menu.el (autoload 'erc-menu-mode "erc-menu" nil t) ;;;*** ;;;### (autoloads (erc-cmd-WHOLEFT) "erc-netsplit" "erc/erc-netsplit.el" -;;;;;; (17994 6715)) +;;;;;; (17935 53318)) ;;; Generated autoloads from erc/erc-netsplit.el (autoload 'erc-netsplit-mode "erc-netsplit") @@ -9512,7 +9526,7 @@ Show who's gone. ;;;*** ;;;### (autoloads (erc-server-select erc-determine-network) "erc-networks" -;;;;;; "erc/erc-networks.el" (17994 6715)) +;;;;;; "erc/erc-networks.el" (17935 53318)) ;;; Generated autoloads from erc/erc-networks.el (autoload (quote erc-determine-network) "erc-networks" "\ @@ -9530,7 +9544,7 @@ Interactively select a server to connect to using `erc-server-alist'. ;;;*** ;;;### (autoloads (pcomplete/erc-mode/NOTIFY erc-cmd-NOTIFY) "erc-notify" -;;;;;; "erc/erc-notify.el" (17994 6715)) +;;;;;; "erc/erc-notify.el" (17935 53318)) ;;; Generated autoloads from erc/erc-notify.el (autoload 'erc-notify-mode "erc-notify" nil t) @@ -9548,33 +9562,33 @@ Not documented ;;;*** -;;;### (autoloads nil "erc-page" "erc/erc-page.el" (17994 6715)) +;;;### (autoloads nil "erc-page" "erc/erc-page.el" (17842 54344)) ;;; Generated autoloads from erc/erc-page.el (autoload 'erc-page-mode "erc-page") ;;;*** -;;;### (autoloads nil "erc-pcomplete" "erc/erc-pcomplete.el" (17994 -;;;;;; 6715)) +;;;### (autoloads nil "erc-pcomplete" "erc/erc-pcomplete.el" (17935 +;;;;;; 53318)) ;;; Generated autoloads from erc/erc-pcomplete.el (autoload 'erc-completion-mode "erc-pcomplete" nil t) ;;;*** -;;;### (autoloads nil "erc-replace" "erc/erc-replace.el" (17994 6715)) +;;;### (autoloads nil "erc-replace" "erc/erc-replace.el" (17842 54344)) ;;; Generated autoloads from erc/erc-replace.el (autoload 'erc-replace-mode "erc-replace") ;;;*** -;;;### (autoloads nil "erc-ring" "erc/erc-ring.el" (17994 6715)) +;;;### (autoloads nil "erc-ring" "erc/erc-ring.el" (17935 53318)) ;;; Generated autoloads from erc/erc-ring.el (autoload 'erc-ring-mode "erc-ring" nil t) ;;;*** ;;;### (autoloads (erc-nickserv-identify erc-nickserv-identify-mode) -;;;;;; "erc-services" "erc/erc-services.el" (17994 6715)) +;;;;;; "erc-services" "erc/erc-services.el" (17935 53318)) ;;; Generated autoloads from erc/erc-services.el (autoload 'erc-services-mode "erc-services" nil t) @@ -9591,14 +9605,14 @@ When called interactively, read the password using `read-passwd'. ;;;*** -;;;### (autoloads nil "erc-sound" "erc/erc-sound.el" (17994 6715)) +;;;### (autoloads nil "erc-sound" "erc/erc-sound.el" (17842 54344)) ;;; Generated autoloads from erc/erc-sound.el (autoload 'erc-sound-mode "erc-sound") ;;;*** ;;;### (autoloads (erc-speedbar-browser) "erc-speedbar" "erc/erc-speedbar.el" -;;;;;; (17994 6715)) +;;;;;; (17935 53318)) ;;; Generated autoloads from erc/erc-speedbar.el (autoload (quote erc-speedbar-browser) "erc-speedbar" "\ @@ -9609,21 +9623,21 @@ This will add a speedbar major display mode. ;;;*** -;;;### (autoloads nil "erc-spelling" "erc/erc-spelling.el" (17994 -;;;;;; 6715)) +;;;### (autoloads nil "erc-spelling" "erc/erc-spelling.el" (17935 +;;;;;; 53318)) ;;; Generated autoloads from erc/erc-spelling.el (autoload 'erc-spelling-mode "erc-spelling" nil t) ;;;*** -;;;### (autoloads nil "erc-stamp" "erc/erc-stamp.el" (17994 6715)) +;;;### (autoloads nil "erc-stamp" "erc/erc-stamp.el" (17935 53318)) ;;; Generated autoloads from erc/erc-stamp.el (autoload 'erc-timestamp-mode "erc-stamp" nil t) ;;;*** ;;;### (autoloads (erc-track-minor-mode) "erc-track" "erc/erc-track.el" -;;;;;; (17994 6715)) +;;;;;; (17935 53318)) ;;; Generated autoloads from erc/erc-track.el (defvar erc-track-minor-mode nil "\ @@ -9646,7 +9660,7 @@ module, otherwise the keybindings will not do anything useful. ;;;*** ;;;### (autoloads (erc-truncate-buffer erc-truncate-buffer-to-size) -;;;;;; "erc-truncate" "erc/erc-truncate.el" (17994 6715)) +;;;;;; "erc-truncate" "erc/erc-truncate.el" (17842 54344)) ;;; Generated autoloads from erc/erc-truncate.el (autoload 'erc-truncate-mode "erc-truncate" nil t) @@ -9666,7 +9680,7 @@ Meant to be used in hooks, like `erc-insert-post-hook'. ;;;*** ;;;### (autoloads (erc-xdcc-add-file) "erc-xdcc" "erc/erc-xdcc.el" -;;;;;; (17994 6715)) +;;;;;; (17842 54344)) ;;; Generated autoloads from erc/erc-xdcc.el (autoload (quote erc-xdcc-add-file) "erc-xdcc" "\ @@ -9676,8 +9690,8 @@ Add a file to `erc-xdcc-files'. ;;;*** -;;;### (autoloads (eshell-mode) "esh-mode" "eshell/esh-mode.el" (17994 -;;;;;; 6715)) +;;;### (autoloads (eshell-mode) "esh-mode" "eshell/esh-mode.el" (17914 +;;;;;; 52082)) ;;; Generated autoloads from eshell/esh-mode.el (autoload (quote eshell-mode) "esh-mode" "\ @@ -9689,8 +9703,8 @@ Emacs shell interactive mode. ;;;*** -;;;### (autoloads (eshell-test) "esh-test" "eshell/esh-test.el" (17994 -;;;;;; 6715)) +;;;### (autoloads (eshell-test) "esh-test" "eshell/esh-test.el" (17842 +;;;;;; 54411)) ;;; Generated autoloads from eshell/esh-test.el (autoload (quote eshell-test) "esh-test" "\ @@ -9701,7 +9715,7 @@ Test Eshell to verify that it works as expected. ;;;*** ;;;### (autoloads (eshell-report-bug eshell-command-result eshell-command -;;;;;; eshell) "eshell" "eshell/eshell.el" (17994 6715)) +;;;;;; eshell) "eshell" "eshell/eshell.el" (17842 54411)) ;;; Generated autoloads from eshell/eshell.el (autoload (quote eshell) "eshell" "\ @@ -9747,7 +9761,7 @@ Please include any configuration details that might be involved. ;;;;;; visit-tags-table tags-table-mode find-tag-default-function ;;;;;; find-tag-hook tags-add-tables tags-compression-info-list ;;;;;; tags-table-list tags-case-fold-search) "etags" "progmodes/etags.el" -;;;;;; (17994 6715)) +;;;;;; (17842 56333)) ;;; Generated autoloads from progmodes/etags.el (defvar tags-file-name nil "\ @@ -10049,7 +10063,7 @@ for \\[find-tag] (which see). ;;;;;; ethio-fidel-to-sera-buffer ethio-fidel-to-sera-region ethio-sera-to-fidel-marker ;;;;;; ethio-sera-to-fidel-mail ethio-sera-to-fidel-mail-or-marker ;;;;;; ethio-sera-to-fidel-buffer ethio-sera-to-fidel-region setup-ethiopic-environment-internal) -;;;;;; "ethio-util" "language/ethio-util.el" (17994 6715)) +;;;;;; "ethio-util" "language/ethio-util.el" (17842 58278)) ;;; Generated autoloads from language/ethio-util.el (autoload (quote setup-ethiopic-environment-internal) "ethio-util" "\ @@ -10244,7 +10258,7 @@ Transcribe Ethiopic characters in ASCII depending on the file extension. ;;;### (autoloads (eudc-load-eudc eudc-query-form eudc-expand-inline ;;;;;; eudc-get-phone eudc-get-email eudc-set-server) "eudc" "net/eudc.el" -;;;;;; (17994 6715)) +;;;;;; (17842 55218)) ;;; Generated autoloads from net/eudc.el (autoload (quote eudc-set-server) "eudc" "\ @@ -10300,7 +10314,7 @@ This does nothing except loading eudc by autoload side-effect. ;;;### (autoloads (eudc-display-jpeg-as-button eudc-display-jpeg-inline ;;;;;; eudc-display-sound eudc-display-mail eudc-display-url eudc-display-generic-binary) -;;;;;; "eudc-bob" "net/eudc-bob.el" (17994 6715)) +;;;;;; "eudc-bob" "net/eudc-bob.el" (17842 55218)) ;;; Generated autoloads from net/eudc-bob.el (autoload (quote eudc-display-generic-binary) "eudc-bob" "\ @@ -10336,7 +10350,7 @@ Display a button for the JPEG DATA. ;;;*** ;;;### (autoloads (eudc-try-bbdb-insert eudc-insert-record-at-point-into-bbdb) -;;;;;; "eudc-export" "net/eudc-export.el" (17994 6715)) +;;;;;; "eudc-export" "net/eudc-export.el" (17842 55218)) ;;; Generated autoloads from net/eudc-export.el (autoload (quote eudc-insert-record-at-point-into-bbdb) "eudc-export" "\ @@ -10353,7 +10367,7 @@ Call `eudc-insert-record-at-point-into-bbdb' if on a record. ;;;*** ;;;### (autoloads (eudc-edit-hotlist) "eudc-hotlist" "net/eudc-hotlist.el" -;;;;;; (17994 6715)) +;;;;;; (17842 55218)) ;;; Generated autoloads from net/eudc-hotlist.el (autoload (quote eudc-edit-hotlist) "eudc-hotlist" "\ @@ -10363,8 +10377,8 @@ Edit the hotlist of directory servers in a specialized buffer. ;;;*** -;;;### (autoloads (ewoc-create) "ewoc" "emacs-lisp/ewoc.el" (17994 -;;;;;; 6715)) +;;;### (autoloads (ewoc-create) "ewoc" "emacs-lisp/ewoc.el" (17933 +;;;;;; 14283)) ;;; Generated autoloads from emacs-lisp/ewoc.el (autoload (quote ewoc-create) "ewoc" "\ @@ -10393,7 +10407,7 @@ fourth arg NOSEP non-nil inhibits this. ;;;### (autoloads (executable-make-buffer-file-executable-if-script-p ;;;;;; executable-self-display executable-set-magic executable-interpret ;;;;;; executable-command-find-posix-p) "executable" "progmodes/executable.el" -;;;;;; (17994 6715)) +;;;;;; (17842 56333)) ;;; Generated autoloads from progmodes/executable.el (autoload (quote executable-command-find-posix-p) "executable" "\ @@ -10436,7 +10450,7 @@ file modes. ;;;### (autoloads (expand-jump-to-next-slot expand-jump-to-previous-slot ;;;;;; expand-abbrev-hook expand-add-abbrevs) "expand" "expand.el" -;;;;;; (17994 6715)) +;;;;;; (17925 52793)) ;;; Generated autoloads from expand.el (autoload (quote expand-add-abbrevs) "expand" "\ @@ -10485,7 +10499,7 @@ This is used only in conjunction with `expand-add-abbrevs'. ;;;*** -;;;### (autoloads (f90-mode) "f90" "progmodes/f90.el" (17994 6715)) +;;;### (autoloads (f90-mode) "f90" "progmodes/f90.el" (17842 56333)) ;;; Generated autoloads from progmodes/f90.el (autoload (quote f90-mode) "f90" "\ @@ -10552,7 +10566,7 @@ with no args, if that value is non-nil. ;;;;;; facemenu-remove-all facemenu-remove-face-props facemenu-set-read-only ;;;;;; facemenu-set-intangible facemenu-set-invisible facemenu-set-face-from-menu ;;;;;; facemenu-set-background facemenu-set-foreground facemenu-set-face) -;;;;;; "facemenu" "facemenu.el" (17994 6715)) +;;;;;; "facemenu" "facemenu.el" (17842 58279)) ;;; Generated autoloads from facemenu.el (define-key global-map "\M-o" 'facemenu-keymap) (autoload 'facemenu-keymap "facemenu" "Keymap for face-changing commands." t 'keymap) @@ -10761,7 +10775,7 @@ Unconditionally turn on Fast Lock mode. ;;;### (autoloads (feedmail-queue-reminder feedmail-run-the-queue ;;;;;; feedmail-run-the-queue-global-prompt feedmail-run-the-queue-no-prompts -;;;;;; feedmail-send-it) "feedmail" "mail/feedmail.el" (17994 6715)) +;;;;;; feedmail-send-it) "feedmail" "mail/feedmail.el" (17888 29839)) ;;; Generated autoloads from mail/feedmail.el (autoload (quote feedmail-send-it) "feedmail" "\ @@ -10815,7 +10829,7 @@ you can set `feedmail-queue-reminder-alist' to nil. ;;;*** ;;;### (autoloads (ffap-bindings dired-at-point ffap-at-mouse ffap-menu -;;;;;; find-file-at-point ffap-next) "ffap" "ffap.el" (17994 6715)) +;;;;;; find-file-at-point ffap-next) "ffap" "ffap.el" (17943 4602)) ;;; Generated autoloads from ffap.el (autoload (quote ffap-next) "ffap" "\ @@ -10874,7 +10888,7 @@ Evaluate the forms in variable `ffap-bindings'. ;;;### (autoloads (file-cache-minibuffer-complete file-cache-add-directory-recursively ;;;;;; file-cache-add-directory-using-locate file-cache-add-directory-using-find ;;;;;; file-cache-add-file file-cache-add-directory-list file-cache-add-directory) -;;;;;; "filecache" "filecache.el" (17994 6715)) +;;;;;; "filecache" "filecache.el" (17842 58279)) ;;; Generated autoloads from filecache.el (autoload (quote file-cache-add-directory) "filecache" "\ @@ -10933,8 +10947,8 @@ the name is considered already unique; only the second substitution ;;;*** -;;;### (autoloads (filesets-init) "filesets" "filesets.el" (17994 -;;;;;; 6715)) +;;;### (autoloads (filesets-init) "filesets" "filesets.el" (17842 +;;;;;; 58279)) ;;; Generated autoloads from filesets.el (autoload (quote filesets-init) "filesets" "\ @@ -10945,7 +10959,7 @@ Set up hooks, load the cache file -- if existing -- and build the menu. ;;;*** -;;;### (autoloads nil "fill" "textmodes/fill.el" (17994 6726)) +;;;### (autoloads nil "fill" "textmodes/fill.el" (18007 39658)) ;;; Generated autoloads from textmodes/fill.el (put 'colon-double-space 'safe-local-variable 'booleanp) @@ -10953,7 +10967,7 @@ Set up hooks, load the cache file -- if existing -- and build the menu. ;;;### (autoloads (find-grep-dired find-name-dired find-dired find-grep-options ;;;;;; find-ls-subdir-switches find-ls-option) "find-dired" "find-dired.el" -;;;;;; (17994 6729)) +;;;;;; (17992 30877)) ;;; Generated autoloads from find-dired.el (defvar find-ls-option (if (eq system-type (quote berkeley-unix)) (quote ("-ls" . "-gilsb")) (quote ("-exec ls -ld {} \\;" . "-ld"))) "\ @@ -11014,7 +11028,7 @@ Thus ARG can also contain additional grep options. ;;;### (autoloads (ff-mouse-find-other-file-other-window ff-mouse-find-other-file ;;;;;; ff-find-other-file ff-get-other-file) "find-file" "find-file.el" -;;;;;; (17994 6715)) +;;;;;; (17842 58279)) ;;; Generated autoloads from find-file.el (defvar ff-special-constructs (quote (("^#\\s *\\(include\\|import\\)\\s +[<\"]\\(.*\\)[>\"]" lambda nil (buffer-substring (match-beginning 2) (match-end 2))))) "\ @@ -11108,7 +11122,7 @@ Visit the file you click on in another window. ;;;;;; find-variable find-variable-noselect find-function-other-frame ;;;;;; find-function-other-window find-function find-function-noselect ;;;;;; find-function-search-for-symbol find-library) "find-func" -;;;;;; "emacs-lisp/find-func.el" (17994 6715)) +;;;;;; "emacs-lisp/find-func.el" (17842 54152)) ;;; Generated autoloads from emacs-lisp/find-func.el (autoload (quote find-library) "find-func" "\ @@ -11262,7 +11276,7 @@ Define some key bindings for the find-function family of functions. ;;;*** ;;;### (autoloads (find-lisp-find-dired-filter find-lisp-find-dired-subdirectories -;;;;;; find-lisp-find-dired) "find-lisp" "find-lisp.el" (17994 6715)) +;;;;;; find-lisp-find-dired) "find-lisp" "find-lisp.el" (17893 23802)) ;;; Generated autoloads from find-lisp.el (autoload (quote find-lisp-find-dired) "find-lisp" "\ @@ -11283,7 +11297,7 @@ Change the filter on a find-lisp-find-dired buffer to REGEXP. ;;;*** ;;;### (autoloads (finder-by-keyword finder-commentary finder-list-keywords) -;;;;;; "finder" "finder.el" (17994 6715)) +;;;;;; "finder" "finder.el" (17842 58279)) ;;; Generated autoloads from finder.el (autoload (quote finder-list-keywords) "finder" "\ @@ -11305,7 +11319,7 @@ Find packages matching a given keyword. ;;;*** ;;;### (autoloads (enable-flow-control-on enable-flow-control) "flow-ctrl" -;;;;;; "flow-ctrl.el" (17994 6715)) +;;;;;; "flow-ctrl.el" (17842 58279)) ;;; Generated autoloads from flow-ctrl.el (autoload (quote enable-flow-control) "flow-ctrl" "\ @@ -11327,7 +11341,7 @@ to get the effect of a C-q. ;;;*** ;;;### (autoloads (fill-flowed fill-flowed-encode) "flow-fill" "gnus/flow-fill.el" -;;;;;; (17994 6715)) +;;;;;; (17842 54741)) ;;; Generated autoloads from gnus/flow-fill.el (autoload (quote fill-flowed-encode) "flow-fill" "\ @@ -11343,7 +11357,7 @@ Not documented ;;;*** ;;;### (autoloads (flymake-mode-off flymake-mode-on flymake-mode) -;;;;;; "flymake" "progmodes/flymake.el" (17994 6715)) +;;;;;; "flymake" "progmodes/flymake.el" (17934 27588)) ;;; Generated autoloads from progmodes/flymake.el (autoload (quote flymake-mode) "flymake" "\ @@ -11367,7 +11381,7 @@ Turn flymake mode off. ;;;### (autoloads (flyspell-buffer flyspell-region flyspell-mode-off ;;;;;; turn-off-flyspell turn-on-flyspell flyspell-mode flyspell-prog-mode) -;;;;;; "flyspell" "textmodes/flyspell.el" (17994 6726)) +;;;;;; "flyspell" "textmodes/flyspell.el" (18006 55797)) ;;; Generated autoloads from textmodes/flyspell.el (autoload (quote flyspell-prog-mode) "flyspell" "\ @@ -11436,7 +11450,7 @@ Flyspell whole buffer. ;;;### (autoloads (follow-delete-other-windows-and-split follow-mode ;;;;;; turn-off-follow-mode turn-on-follow-mode) "follow" "follow.el" -;;;;;; (17994 6715)) +;;;;;; (17842 58279)) ;;; Generated autoloads from follow.el (autoload (quote turn-on-follow-mode) "follow" "\ @@ -11510,8 +11524,8 @@ in your `~/.emacs' file, replacing [f7] by your favourite key: ;;;*** -;;;### (autoloads (footnote-mode) "footnote" "mail/footnote.el" (17994 -;;;;;; 6715)) +;;;### (autoloads (footnote-mode) "footnote" "mail/footnote.el" (17954 +;;;;;; 24686)) ;;; Generated autoloads from mail/footnote.el (autoload (quote footnote-mode) "footnote" "\ @@ -11532,7 +11546,7 @@ key binding ;;;*** ;;;### (autoloads (forms-find-file-other-window forms-find-file forms-mode) -;;;;;; "forms" "forms.el" (17994 6715)) +;;;;;; "forms" "forms.el" (17842 58279)) ;;; Generated autoloads from forms.el (autoload (quote forms-mode) "forms" "\ @@ -11569,7 +11583,7 @@ Visit a file in Forms mode in other window. ;;;*** ;;;### (autoloads (fortran-mode fortran-tab-mode-default) "fortran" -;;;;;; "progmodes/fortran.el" (17994 6715)) +;;;;;; "progmodes/fortran.el" (17842 56333)) ;;; Generated autoloads from progmodes/fortran.el (defvar fortran-tab-mode-default nil "\ @@ -11655,7 +11669,7 @@ with no args, if that value is non-nil. ;;;*** ;;;### (autoloads (fortune fortune-to-signature fortune-compile fortune-from-region -;;;;;; fortune-add-fortune) "fortune" "play/fortune.el" (17994 6715)) +;;;;;; fortune-add-fortune) "fortune" "play/fortune.el" (17842 55395)) ;;; Generated autoloads from play/fortune.el (autoload (quote fortune-add-fortune) "fortune" "\ @@ -11705,7 +11719,7 @@ and choose the directory as the fortune-file. ;;;*** ;;;### (autoloads (gdb-enable-debug gdba) "gdb-ui" "progmodes/gdb-ui.el" -;;;;;; (17994 6715)) +;;;;;; (17941 38806)) ;;; Generated autoloads from progmodes/gdb-ui.el (autoload (quote gdba) "gdb-ui" "\ @@ -11768,8 +11782,8 @@ Non-nil means record the process input and output in `gdb-debug-log'.") ;;;*** ;;;### (autoloads (generic-make-keywords-list generic-mode generic-mode-internal -;;;;;; define-generic-mode) "generic" "emacs-lisp/generic.el" (17994 -;;;;;; 6715)) +;;;;;; define-generic-mode) "generic" "emacs-lisp/generic.el" (17842 +;;;;;; 54152)) ;;; Generated autoloads from emacs-lisp/generic.el (defvar generic-mode-list nil "\ @@ -11844,7 +11858,7 @@ regular expression that can be used as an element of ;;;*** ;;;### (autoloads (glasses-mode) "glasses" "progmodes/glasses.el" -;;;;;; (17994 6715)) +;;;;;; (17842 56333)) ;;; Generated autoloads from progmodes/glasses.el (autoload (quote glasses-mode) "glasses" "\ @@ -11857,7 +11871,7 @@ at places they belong to. ;;;*** ;;;### (autoloads (gmm-tool-bar-from-list gmm-widget-p gmm-error -;;;;;; gmm-message) "gmm-utils" "gnus/gmm-utils.el" (17994 6715)) +;;;;;; gmm-message) "gmm-utils" "gnus/gmm-utils.el" (17934 27588)) ;;; Generated autoloads from gnus/gmm-utils.el (autoload (quote gmm-message) "gmm-utils" "\ @@ -11904,7 +11918,7 @@ DEFAULT-MAP specifies the default key map for ICON-LIST. ;;;*** ;;;### (autoloads (gnus gnus-other-frame gnus-slave gnus-no-server -;;;;;; gnus-slave-no-server) "gnus" "gnus/gnus.el" (17994 6715)) +;;;;;; gnus-slave-no-server) "gnus" "gnus/gnus.el" (17842 54741)) ;;; Generated autoloads from gnus/gnus.el (when (fboundp 'custom-autoload) (custom-autoload 'gnus-select-method "gnus")) @@ -11957,7 +11971,7 @@ prompt the user for the name of an NNTP server to use. ;;;;;; gnus-agent-get-undownloaded-list gnus-agent-delete-group ;;;;;; gnus-agent-rename-group gnus-agent-possibly-save-gcc gnus-agentize ;;;;;; gnus-slave-unplugged gnus-plugged gnus-unplugged) "gnus-agent" -;;;;;; "gnus/gnus-agent.el" (17994 6715)) +;;;;;; "gnus/gnus-agent.el" (17842 54741)) ;;; Generated autoloads from gnus/gnus-agent.el (autoload (quote gnus-unplugged) "gnus-agent" "\ @@ -12048,7 +12062,7 @@ If CLEAN, obsolete (ignore). ;;;*** ;;;### (autoloads (gnus-article-prepare-display) "gnus-art" "gnus/gnus-art.el" -;;;;;; (18000 24325)) +;;;;;; (17960 49045)) ;;; Generated autoloads from gnus/gnus-art.el (autoload (quote gnus-article-prepare-display) "gnus-art" "\ @@ -12059,7 +12073,7 @@ Make the current buffer look like a nice article. ;;;*** ;;;### (autoloads (gnus-audio-play) "gnus-audio" "gnus/gnus-audio.el" -;;;;;; (17994 6715)) +;;;;;; (17842 54741)) ;;; Generated autoloads from gnus/gnus-audio.el (autoload (quote gnus-audio-play) "gnus-audio" "\ @@ -12071,8 +12085,8 @@ Play a sound FILE through the speaker. ;;;### (autoloads (gnus-cache-delete-group gnus-cache-rename-group ;;;;;; gnus-cache-generate-nov-databases gnus-cache-generate-active -;;;;;; gnus-jog-cache) "gnus-cache" "gnus/gnus-cache.el" (17994 -;;;;;; 6715)) +;;;;;; gnus-jog-cache) "gnus-cache" "gnus/gnus-cache.el" (17842 +;;;;;; 54741)) ;;; Generated autoloads from gnus/gnus-cache.el (autoload (quote gnus-jog-cache) "gnus-cache" "\ @@ -12114,7 +12128,7 @@ supported. ;;;*** ;;;### (autoloads (gnus-delay-initialize gnus-delay-send-queue gnus-delay-article) -;;;;;; "gnus-delay" "gnus/gnus-delay.el" (17994 6715)) +;;;;;; "gnus-delay" "gnus/gnus-delay.el" (17842 54741)) ;;; Generated autoloads from gnus/gnus-delay.el (autoload (quote gnus-delay-article) "gnus-delay" "\ @@ -12150,7 +12164,7 @@ Checking delayed messages is skipped if optional arg NO-CHECK is non-nil. ;;;*** ;;;### (autoloads (gnus-user-format-function-D gnus-user-format-function-d) -;;;;;; "gnus-diary" "gnus/gnus-diary.el" (17994 6741)) +;;;;;; "gnus-diary" "gnus/gnus-diary.el" (17992 30878)) ;;; Generated autoloads from gnus/gnus-diary.el (autoload (quote gnus-user-format-function-d) "gnus-diary" "\ @@ -12166,7 +12180,7 @@ Not documented ;;;*** ;;;### (autoloads (turn-on-gnus-dired-mode) "gnus-dired" "gnus/gnus-dired.el" -;;;;;; (17994 6715)) +;;;;;; (17842 54741)) ;;; Generated autoloads from gnus/gnus-dired.el (autoload (quote turn-on-gnus-dired-mode) "gnus-dired" "\ @@ -12177,7 +12191,7 @@ Convenience method to turn on gnus-dired-mode. ;;;*** ;;;### (autoloads (gnus-draft-reminder) "gnus-draft" "gnus/gnus-draft.el" -;;;;;; (17994 6715)) +;;;;;; (17842 54741)) ;;; Generated autoloads from gnus/gnus-draft.el (autoload (quote gnus-draft-reminder) "gnus-draft" "\ @@ -12189,8 +12203,8 @@ Reminder user if there are unsent drafts. ;;;### (autoloads (gnus-convert-png-to-face gnus-convert-face-to-png ;;;;;; gnus-face-from-file gnus-x-face-from-file gnus-insert-random-x-face-header -;;;;;; gnus-random-x-face) "gnus-fun" "gnus/gnus-fun.el" (17994 -;;;;;; 6715)) +;;;;;; gnus-random-x-face) "gnus-fun" "gnus/gnus-fun.el" (17842 +;;;;;; 54741)) ;;; Generated autoloads from gnus/gnus-fun.el (autoload (quote gnus-random-x-face) "gnus-fun" "\ @@ -12229,7 +12243,7 @@ FILE should be a PNG file that's 48x48 and smaller than or equal to ;;;*** ;;;### (autoloads (gnus-fetch-group-other-frame gnus-fetch-group) -;;;;;; "gnus-group" "gnus/gnus-group.el" (17994 6715)) +;;;;;; "gnus-group" "gnus/gnus-group.el" (17842 54741)) ;;; Generated autoloads from gnus/gnus-group.el (autoload (quote gnus-fetch-group) "gnus-group" "\ @@ -12246,7 +12260,7 @@ Pop up a frame and enter GROUP. ;;;*** ;;;### (autoloads (gnus-batch-score) "gnus-kill" "gnus/gnus-kill.el" -;;;;;; (17994 6715)) +;;;;;; (17842 54741)) ;;; Generated autoloads from gnus/gnus-kill.el (defalias (quote gnus-batch-kill) (quote gnus-batch-score)) @@ -12261,7 +12275,7 @@ Usage: emacs -batch -l ~/.emacs -l gnus -f gnus-batch-score ;;;### (autoloads (gnus-mailing-list-mode gnus-mailing-list-insinuate ;;;;;; turn-on-gnus-mailing-list-mode) "gnus-ml" "gnus/gnus-ml.el" -;;;;;; (17994 6715)) +;;;;;; (17842 54741)) ;;; Generated autoloads from gnus/gnus-ml.el (autoload (quote turn-on-gnus-mailing-list-mode) "gnus-ml" "\ @@ -12286,7 +12300,7 @@ Minor mode for providing mailing-list commands. ;;;### (autoloads (gnus-group-split-fancy gnus-group-split gnus-group-split-update ;;;;;; gnus-group-split-setup) "gnus-mlspl" "gnus/gnus-mlspl.el" -;;;;;; (17994 6715)) +;;;;;; (17842 54741)) ;;; Generated autoloads from gnus/gnus-mlspl.el (autoload (quote gnus-group-split-setup) "gnus-mlspl" "\ @@ -12387,7 +12401,7 @@ Calling (gnus-group-split-fancy nil nil \"mail.others\") returns: ;;;*** ;;;### (autoloads (gnus-change-server) "gnus-move" "gnus/gnus-move.el" -;;;;;; (17994 6715)) +;;;;;; (17842 54741)) ;;; Generated autoloads from gnus/gnus-move.el (autoload (quote gnus-change-server) "gnus-move" "\ @@ -12399,7 +12413,7 @@ Update the .newsrc.eld file to reflect the change of nntp server. ;;;*** ;;;### (autoloads (gnus-button-reply gnus-button-mailto gnus-msg-mail) -;;;;;; "gnus-msg" "gnus/gnus-msg.el" (17994 6715)) +;;;;;; "gnus-msg" "gnus/gnus-msg.el" (17949 41467)) ;;; Generated autoloads from gnus/gnus-msg.el (autoload (quote gnus-msg-mail) "gnus-msg" "\ @@ -12424,7 +12438,7 @@ Like `message-reply'. ;;;*** ;;;### (autoloads (gnus-nocem-load-cache gnus-nocem-scan-groups) -;;;;;; "gnus-nocem" "gnus/gnus-nocem.el" (17994 6715)) +;;;;;; "gnus-nocem" "gnus/gnus-nocem.el" (17842 54741)) ;;; Generated autoloads from gnus/gnus-nocem.el (autoload (quote gnus-nocem-scan-groups) "gnus-nocem" "\ @@ -12441,7 +12455,7 @@ Load the NoCeM cache. ;;;### (autoloads (gnus-treat-newsgroups-picon gnus-treat-mail-picon ;;;;;; gnus-treat-from-picon) "gnus-picon" "gnus/gnus-picon.el" -;;;;;; (17994 6715)) +;;;;;; (17842 54741)) ;;; Generated autoloads from gnus/gnus-picon.el (autoload (quote gnus-treat-from-picon) "gnus-picon" "\ @@ -12468,7 +12482,7 @@ If picons are already displayed, remove them. ;;;;;; gnus-sorted-nintersection gnus-sorted-range-intersection ;;;;;; gnus-sorted-intersection gnus-intersection gnus-sorted-complement ;;;;;; gnus-sorted-ndifference gnus-sorted-difference) "gnus-range" -;;;;;; "gnus/gnus-range.el" (17994 6715)) +;;;;;; "gnus/gnus-range.el" (17842 54741)) ;;; Generated autoloads from gnus/gnus-range.el (autoload (quote gnus-sorted-difference) "gnus-range" "\ @@ -12536,7 +12550,7 @@ Add NUM into sorted LIST by side effect. ;;;*** ;;;### (autoloads (gnus-registry-install-hooks gnus-registry-initialize) -;;;;;; "gnus-registry" "gnus/gnus-registry.el" (17994 6715)) +;;;;;; "gnus-registry" "gnus/gnus-registry.el" (17934 27588)) ;;; Generated autoloads from gnus/gnus-registry.el (autoload (quote gnus-registry-initialize) "gnus-registry" "\ @@ -12552,8 +12566,8 @@ Install the registry hooks. ;;;*** ;;;### (autoloads (gnus-sieve-article-add-rule gnus-sieve-generate -;;;;;; gnus-sieve-update) "gnus-sieve" "gnus/gnus-sieve.el" (17994 -;;;;;; 6715)) +;;;;;; gnus-sieve-update) "gnus-sieve" "gnus/gnus-sieve.el" (17842 +;;;;;; 54741)) ;;; Generated autoloads from gnus/gnus-sieve.el (autoload (quote gnus-sieve-update) "gnus-sieve" "\ @@ -12581,7 +12595,7 @@ Not documented ;;;*** ;;;### (autoloads (gnus-batch-brew-soup) "gnus-soup" "gnus/gnus-soup.el" -;;;;;; (17994 6715)) +;;;;;; (17842 54741)) ;;; Generated autoloads from gnus/gnus-soup.el (autoload (quote gnus-batch-brew-soup) "gnus-soup" "\ @@ -12601,7 +12615,7 @@ Note -- this function hasn't been implemented yet. ;;;*** ;;;### (autoloads (gnus-update-format) "gnus-spec" "gnus/gnus-spec.el" -;;;;;; (17994 6715)) +;;;;;; (17842 54741)) ;;; Generated autoloads from gnus/gnus-spec.el (autoload (quote gnus-update-format) "gnus-spec" "\ @@ -12612,8 +12626,8 @@ Update the format specification near point. ;;;*** ;;;### (autoloads (gnus-fixup-nnimap-unread-after-getting-new-news -;;;;;; gnus-declare-backend) "gnus-start" "gnus/gnus-start.el" (17994 -;;;;;; 6715)) +;;;;;; gnus-declare-backend) "gnus-start" "gnus/gnus-start.el" (17842 +;;;;;; 54741)) ;;; Generated autoloads from gnus/gnus-start.el (autoload (quote gnus-declare-backend) "gnus-start" "\ @@ -12629,7 +12643,7 @@ Not documented ;;;*** ;;;### (autoloads (gnus-add-configuration) "gnus-win" "gnus/gnus-win.el" -;;;;;; (17994 6715)) +;;;;;; (17842 54741)) ;;; Generated autoloads from gnus/gnus-win.el (autoload (quote gnus-add-configuration) "gnus-win" "\ @@ -12639,7 +12653,7 @@ Add the window configuration CONF to `gnus-buffer-configuration'. ;;;*** -;;;### (autoloads (gomoku) "gomoku" "play/gomoku.el" (17994 6715)) +;;;### (autoloads (gomoku) "gomoku" "play/gomoku.el" (17941 38806)) ;;; Generated autoloads from play/gomoku.el (autoload (quote gomoku) "gomoku" "\ @@ -12666,7 +12680,7 @@ Use \\[describe-mode] for more info. ;;;*** ;;;### (autoloads (goto-address goto-address-at-point) "goto-addr" -;;;;;; "net/goto-addr.el" (17994 6715)) +;;;;;; "net/goto-addr.el" (17842 55218)) ;;; Generated autoloads from net/goto-addr.el (define-obsolete-function-alias (quote goto-address-at-mouse) (quote goto-address-at-point) "22.1") @@ -12696,7 +12710,7 @@ Also fontifies the buffer appropriately (see `goto-address-fontify-p' and ;;;### (autoloads (rgrep lgrep grep-find grep grep-mode grep-compute-defaults ;;;;;; grep-process-setup grep-setup-hook grep-find-command grep-command -;;;;;; grep-window-height) "grep" "progmodes/grep.el" (17994 6715)) +;;;;;; grep-window-height) "grep" "progmodes/grep.el" (17944 20144)) ;;; Generated autoloads from progmodes/grep.el (defvar grep-window-height nil "\ @@ -12836,7 +12850,7 @@ This command shares argument histories with \\[lgrep] and \\[grep-find]. ;;;*** -;;;### (autoloads (gs-load-image) "gs" "gs.el" (17994 6715)) +;;;### (autoloads (gs-load-image) "gs" "gs.el" (17842 58279)) ;;; Generated autoloads from gs.el (autoload (quote gs-load-image) "gs" "\ @@ -12850,7 +12864,7 @@ the form \"WINDOW-ID PIXMAP-ID\". Value is non-nil if successful. ;;;*** ;;;### (autoloads (gdb-script-mode jdb pdb perldb xdb dbx sdb gdb) -;;;;;; "gud" "progmodes/gud.el" (17994 6727)) +;;;;;; "gud" "progmodes/gud.el" (17992 30878)) ;;; Generated autoloads from progmodes/gud.el (autoload (quote gdb) "gud" "\ @@ -12933,8 +12947,8 @@ Major mode for editing GDB scripts ;;;*** -;;;### (autoloads (handwrite) "handwrite" "play/handwrite.el" (17994 -;;;;;; 6715)) +;;;### (autoloads (handwrite) "handwrite" "play/handwrite.el" (17842 +;;;;;; 55395)) ;;; Generated autoloads from play/handwrite.el (autoload (quote handwrite) "handwrite" "\ @@ -12952,7 +12966,7 @@ Variables: handwrite-linespace (default 12) ;;;*** ;;;### (autoloads (hanoi-unix-64 hanoi-unix hanoi) "hanoi" "play/hanoi.el" -;;;;;; (17994 6715)) +;;;;;; (17742 40275)) ;;; Generated autoloads from play/hanoi.el (autoload (quote hanoi) "hanoi" "\ @@ -12982,7 +12996,7 @@ to be updated. ;;;### (autoloads (scan-buf-previous-region scan-buf-next-region ;;;;;; scan-buf-move-to-region help-at-pt-display-when-idle help-at-pt-set-timer ;;;;;; help-at-pt-cancel-timer display-local-help help-at-pt-kbd-string -;;;;;; help-at-pt-string) "help-at-pt" "help-at-pt.el" (17994 6715)) +;;;;;; help-at-pt-string) "help-at-pt" "help-at-pt.el" (17842 58279)) ;;; Generated autoloads from help-at-pt.el (autoload (quote help-at-pt-string) "help-at-pt" "\ @@ -13112,7 +13126,7 @@ different regions. With numeric argument ARG, behaves like ;;;### (autoloads (describe-categories describe-syntax describe-variable ;;;;;; variable-at-point describe-function-1 describe-simplify-lib-file-name ;;;;;; help-C-file-name describe-function) "help-fns" "help-fns.el" -;;;;;; (17994 6751)) +;;;;;; (17845 46651)) ;;; Generated autoloads from help-fns.el (autoload (quote describe-function) "help-fns" "\ @@ -13170,7 +13184,7 @@ BUFFER should be a buffer or a buffer name. ;;;*** ;;;### (autoloads (three-step-help) "help-macro" "help-macro.el" -;;;;;; (17994 6715)) +;;;;;; (17842 58279)) ;;; Generated autoloads from help-macro.el (defvar three-step-help nil "\ @@ -13186,7 +13200,7 @@ A value of nil means skip the middle step, so that ;;;### (autoloads (help-xref-on-pp help-insert-xref-button help-xref-button ;;;;;; help-make-xrefs help-setup-xref help-mode-finish help-mode-setup -;;;;;; help-mode) "help-mode" "help-mode.el" (17994 6715)) +;;;;;; help-mode) "help-mode" "help-mode.el" (17842 58279)) ;;; Generated autoloads from help-mode.el (autoload (quote help-mode) "help-mode" "\ @@ -13269,7 +13283,7 @@ Add xrefs for symbols in `pp's output between FROM and TO. ;;;*** ;;;### (autoloads (Helper-help Helper-describe-bindings) "helper" -;;;;;; "emacs-lisp/helper.el" (17994 6715)) +;;;;;; "emacs-lisp/helper.el" (17842 54152)) ;;; Generated autoloads from emacs-lisp/helper.el (autoload (quote Helper-describe-bindings) "helper" "\ @@ -13285,7 +13299,7 @@ Provide help for current mode. ;;;*** ;;;### (autoloads (hexlify-buffer hexl-find-file hexl-mode) "hexl" -;;;;;; "hexl.el" (17994 6715)) +;;;;;; "hexl.el" (17844 53657)) ;;; Generated autoloads from hexl.el (autoload (quote hexl-mode) "hexl" "\ @@ -13382,7 +13396,7 @@ This discards the buffer's undo information. ;;;### (autoloads (hi-lock-write-interactive-patterns hi-lock-unface-buffer ;;;;;; hi-lock-face-phrase-buffer hi-lock-face-buffer hi-lock-line-face-buffer ;;;;;; global-hi-lock-mode hi-lock-mode) "hi-lock" "hi-lock.el" -;;;;;; (17994 6726)) +;;;;;; (17992 30877)) ;;; Generated autoloads from hi-lock.el (autoload (quote hi-lock-mode) "hi-lock" "\ @@ -13512,7 +13526,7 @@ be found in variable `hi-lock-interactive-patterns'. ;;;*** ;;;### (autoloads (hide-ifdef-lines hide-ifdef-read-only hide-ifdef-initially -;;;;;; hide-ifdef-mode) "hideif" "progmodes/hideif.el" (17994 6715)) +;;;;;; hide-ifdef-mode) "hideif" "progmodes/hideif.el" (17842 56333)) ;;; Generated autoloads from progmodes/hideif.el (autoload (quote hide-ifdef-mode) "hideif" "\ @@ -13567,7 +13581,7 @@ how the hiding is done: ;;;*** ;;;### (autoloads (turn-off-hideshow hs-minor-mode) "hideshow" "progmodes/hideshow.el" -;;;;;; (17994 6715)) +;;;;;; (17934 43341)) ;;; Generated autoloads from progmodes/hideshow.el (defvar hs-special-modes-alist (quote ((c-mode "{" "}" "/[*/]" nil hs-c-like-adjust-block-beginning) (c++-mode "{" "}" "/[*/]" nil hs-c-like-adjust-block-beginning) (bibtex-mode ("^@\\S(*\\(\\s(\\)" 1)) (java-mode "{" "}" "/[*/]" nil hs-c-like-adjust-block-beginning))) "\ @@ -13630,7 +13644,7 @@ Unconditionally turn off `hs-minor-mode'. ;;;;;; highlight-compare-buffers highlight-changes-rotate-faces ;;;;;; highlight-changes-previous-change highlight-changes-next-change ;;;;;; highlight-changes-mode highlight-changes-remove-highlight) -;;;;;; "hilit-chg" "hilit-chg.el" (18000 24338)) +;;;;;; "hilit-chg" "hilit-chg.el" (17842 58279)) ;;; Generated autoloads from hilit-chg.el (autoload (quote highlight-changes-remove-highlight) "hilit-chg" "\ @@ -13760,7 +13774,7 @@ variable `highlight-changes-global-changes-existing-buffers' is non-nil). ;;;;;; hippie-expand-ignore-buffers hippie-expand-max-buffers hippie-expand-no-restriction ;;;;;; hippie-expand-dabbrev-as-symbol hippie-expand-dabbrev-skip-space ;;;;;; hippie-expand-verbose hippie-expand-try-functions-list) "hippie-exp" -;;;;;; "hippie-exp.el" (17994 6715)) +;;;;;; "hippie-exp.el" (17842 58279)) ;;; Generated autoloads from hippie-exp.el (defvar hippie-expand-try-functions-list (quote (try-complete-file-name-partially try-complete-file-name try-expand-all-abbrevs try-expand-list try-expand-line try-expand-dabbrev try-expand-dabbrev-all-buffers try-expand-dabbrev-from-kill try-complete-lisp-symbol-partially try-complete-lisp-symbol)) "\ @@ -13833,7 +13847,7 @@ argument VERBOSE non-nil makes the function verbose. ;;;*** ;;;### (autoloads (global-hl-line-mode hl-line-mode) "hl-line" "hl-line.el" -;;;;;; (17994 6715)) +;;;;;; (17842 58279)) ;;; Generated autoloads from hl-line.el (autoload (quote hl-line-mode) "hl-line" "\ @@ -13874,7 +13888,7 @@ Global-Hl-Line mode uses the functions `global-hl-line-unhighlight' and ;;;*** ;;;### (autoloads (list-holidays holidays) "holidays" "calendar/holidays.el" -;;;;;; (17994 6715)) +;;;;;; (17956 13479)) ;;; Generated autoloads from calendar/holidays.el (autoload (quote holidays) "holidays" "\ @@ -13910,35 +13924,8 @@ The optional LABEL is used to label the buffer created. ;;;*** -;;;### (autoloads (hscroll-global-mode hscroll-mode turn-on-hscroll) -;;;;;; "hscroll" "obsolete/hscroll.el" (17994 6715)) -;;; Generated autoloads from obsolete/hscroll.el - -(autoload (quote turn-on-hscroll) "hscroll" "\ -This function is obsolete. -Emacs now does hscrolling automatically, if `truncate-lines' is non-nil. -Also see `automatic-hscrolling'. - -\(fn)" nil nil) - -(autoload (quote hscroll-mode) "hscroll" "\ -This function is obsolete. -Emacs now does hscrolling automatically, if `truncate-lines' is non-nil. -Also see `automatic-hscrolling'. - -\(fn &optional ARG)" t nil) - -(autoload (quote hscroll-global-mode) "hscroll" "\ -This function is obsolete. -Emacs now does hscrolling automatically, if `truncate-lines' is non-nil. -Also see `automatic-hscrolling'. - -\(fn &optional ARG)" t nil) - -;;;*** - -;;;### (autoloads (html2text) "html2text" "gnus/html2text.el" (17994 -;;;;;; 6715)) +;;;### (autoloads (html2text) "html2text" "gnus/html2text.el" (17842 +;;;;;; 54741)) ;;; Generated autoloads from gnus/html2text.el (autoload (quote html2text) "html2text" "\ @@ -13970,7 +13957,7 @@ Convert HTML to plain text in the current buffer. ;;;;;; ibuffer-backward-filter-group ibuffer-forward-filter-group ;;;;;; ibuffer-toggle-filter-group ibuffer-mouse-toggle-filter-group ;;;;;; ibuffer-interactive-filter-by-mode ibuffer-mouse-filter-by-mode -;;;;;; ibuffer-auto-mode) "ibuf-ext" "ibuf-ext.el" (17994 6715)) +;;;;;; ibuffer-auto-mode) "ibuf-ext" "ibuf-ext.el" (17842 58279)) ;;; Generated autoloads from ibuf-ext.el (autoload (quote ibuffer-auto-mode) "ibuf-ext" "\ @@ -14336,8 +14323,8 @@ defaults to one. ;;;*** ;;;### (autoloads (define-ibuffer-filter define-ibuffer-op define-ibuffer-sorter -;;;;;; define-ibuffer-column) "ibuf-macs" "ibuf-macs.el" (17994 -;;;;;; 6715)) +;;;;;; define-ibuffer-column) "ibuf-macs" "ibuf-macs.el" (17842 +;;;;;; 58279)) ;;; Generated autoloads from ibuf-macs.el (autoload (quote define-ibuffer-column) "ibuf-macs" "\ @@ -14426,7 +14413,7 @@ bound to the current value of the filter. ;;;*** ;;;### (autoloads (ibuffer ibuffer-other-window ibuffer-list-buffers) -;;;;;; "ibuffer" "ibuffer.el" (17994 6715)) +;;;;;; "ibuffer" "ibuffer.el" (17842 58279)) ;;; Generated autoloads from ibuffer.el (autoload (quote ibuffer-list-buffers) "ibuffer" "\ @@ -14467,7 +14454,7 @@ FORMATS is the value to use for `ibuffer-formats'. ;;;### (autoloads (icalendar-import-buffer icalendar-import-file ;;;;;; icalendar-export-region icalendar-export-file) "icalendar" -;;;;;; "calendar/icalendar.el" (17994 6715)) +;;;;;; "calendar/icalendar.el" (17921 16827)) ;;; Generated autoloads from calendar/icalendar.el (autoload (quote icalendar-export-file) "icalendar" "\ @@ -14519,8 +14506,8 @@ buffer `*icalendar-errors*'. ;;;*** -;;;### (autoloads (icomplete-mode) "icomplete" "icomplete.el" (17994 -;;;;;; 6715)) +;;;### (autoloads (icomplete-mode) "icomplete" "icomplete.el" (17907 +;;;;;; 1407)) ;;; Generated autoloads from icomplete.el (defvar icomplete-mode nil "\ @@ -14540,7 +14527,7 @@ With a numeric argument, turn Icomplete mode on iff ARG is positive. ;;;*** -;;;### (autoloads (icon-mode) "icon" "progmodes/icon.el" (17994 6715)) +;;;### (autoloads (icon-mode) "icon" "progmodes/icon.el" (17842 56333)) ;;; Generated autoloads from progmodes/icon.el (autoload (quote icon-mode) "icon" "\ @@ -14581,7 +14568,7 @@ with no args, if that value is non-nil. ;;;*** ;;;### (autoloads (idlwave-shell) "idlw-shell" "progmodes/idlw-shell.el" -;;;;;; (17994 6715)) +;;;;;; (17965 23638)) ;;; Generated autoloads from progmodes/idlw-shell.el (autoload (quote idlwave-shell) "idlw-shell" "\ @@ -14607,7 +14594,7 @@ See also the variable `idlwave-shell-prompt-pattern'. ;;;*** ;;;### (autoloads (idlwave-mode) "idlwave" "progmodes/idlwave.el" -;;;;;; (17994 6723)) +;;;;;; (17992 30878)) ;;; Generated autoloads from progmodes/idlwave.el (autoload (quote idlwave-mode) "idlwave" "\ @@ -14742,8 +14729,8 @@ The main features of this mode are ;;;;;; ido-find-alternate-file ido-find-file-other-window ido-find-file ;;;;;; ido-find-file-in-dir ido-switch-buffer-other-frame ido-insert-buffer ;;;;;; ido-kill-buffer ido-display-buffer ido-switch-buffer-other-window -;;;;;; ido-switch-buffer ido-mode ido-mode) "ido" "ido.el" (17994 -;;;;;; 6715)) +;;;;;; ido-switch-buffer ido-mode ido-mode) "ido" "ido.el" (17963 +;;;;;; 25911)) ;;; Generated autoloads from ido.el (defvar ido-mode nil "\ @@ -15004,7 +14991,7 @@ DEF, if non-nil, is the default value. ;;;*** -;;;### (autoloads (ielm) "ielm" "ielm.el" (17994 6715)) +;;;### (autoloads (ielm) "ielm" "ielm.el" (17842 58279)) ;;; Generated autoloads from ielm.el (add-hook 'same-window-buffer-names "*ielm*") @@ -15017,7 +15004,7 @@ Switches to the buffer `*ielm*', or creates it if it does not exist. ;;;*** ;;;### (autoloads (iimage-mode turn-on-iimage-mode) "iimage" "iimage.el" -;;;;;; (17994 6715)) +;;;;;; (17842 58279)) ;;; Generated autoloads from iimage.el (autoload (quote turn-on-iimage-mode) "iimage" "\ @@ -15036,7 +15023,7 @@ Toggle inline image minor mode. ;;;;;; insert-image put-image create-image image-type-auto-detected-p ;;;;;; image-type-available-p image-type image-type-from-file-name ;;;;;; image-type-from-file-header image-type-from-buffer image-type-from-data) -;;;;;; "image" "image.el" (17994 6715)) +;;;;;; "image" "image.el" (17868 42568)) ;;; Generated autoloads from image.el (autoload (quote image-type-from-data) "image" "\ @@ -15217,7 +15204,7 @@ Example: ;;;;;; image-dired-jump-thumbnail-buffer image-dired-delete-tag ;;;;;; image-dired-tag-files image-dired-show-all-from-dir image-dired-display-thumbs ;;;;;; image-dired-dired-with-window-configuration image-dired-dired-insert-marked-thumbs) -;;;;;; "image-dired" "image-dired.el" (17994 6727)) +;;;;;; "image-dired" "image-dired.el" (17992 30877)) ;;; Generated autoloads from image-dired.el (autoload (quote image-dired-dired-insert-marked-thumbs) "image-dired" "\ @@ -15351,7 +15338,7 @@ easy-to-use form. ;;;### (autoloads (auto-image-file-mode insert-image-file image-file-name-regexp ;;;;;; image-file-name-regexps image-file-name-extensions) "image-file" -;;;;;; "image-file.el" (17994 6715)) +;;;;;; "image-file.el" (17842 58279)) ;;; Generated autoloads from image-file.el (defvar image-file-name-extensions (quote ("png" "jpeg" "jpg" "gif" "tiff" "tif" "xbm" "xpm" "pbm" "pgm" "ppm" "pnm")) "\ @@ -15413,7 +15400,7 @@ Image files are those whose name has an extension in ;;;*** ;;;### (autoloads (image-mode-maybe image-minor-mode image-mode) -;;;;;; "image-mode" "image-mode.el" (17994 6715)) +;;;;;; "image-mode" "image-mode.el" (17868 42581)) ;;; Generated autoloads from image-mode.el (push '("\\.jpe?g\\'" . image-mode) auto-mode-alist) (push '("\\.png\\'" . image-mode) auto-mode-alist) @@ -15451,7 +15438,7 @@ information on these modes. ;;;*** ;;;### (autoloads (imenu imenu-add-menubar-index imenu-add-to-menubar -;;;;;; imenu-sort-function) "imenu" "imenu.el" (17994 6715)) +;;;;;; imenu-sort-function) "imenu" "imenu.el" (17842 58279)) ;;; Generated autoloads from imenu.el (defvar imenu-sort-function nil "\ @@ -15566,7 +15553,7 @@ for more information. ;;;### (autoloads (indian-char-glyph indian-glyph-char in-is13194-pre-write-conversion ;;;;;; in-is13194-post-read-conversion indian-compose-string indian-compose-region) -;;;;;; "ind-util" "language/ind-util.el" (17994 6715)) +;;;;;; "ind-util" "language/ind-util.el" (17842 58278)) ;;; Generated autoloads from language/ind-util.el (autoload (quote indian-compose-region) "ind-util" "\ @@ -15609,7 +15596,7 @@ See also the function `indian-glyph-char'. ;;;### (autoloads (inferior-lisp inferior-lisp-prompt inferior-lisp-load-command ;;;;;; inferior-lisp-program inferior-lisp-filter-regexp) "inf-lisp" -;;;;;; "progmodes/inf-lisp.el" (17994 6715)) +;;;;;; "progmodes/inf-lisp.el" (17842 56332)) ;;; Generated autoloads from progmodes/inf-lisp.el (defvar inferior-lisp-filter-regexp "\\`\\s *\\(:\\(\\w\\|\\s_\\)\\)?\\s *\\'" "\ @@ -15676,7 +15663,7 @@ of `inferior-lisp-program'). Runs the hooks from ;;;### (autoloads (Info-speedbar-browser Info-goto-emacs-key-command-node ;;;;;; Info-goto-emacs-command-node Info-mode info-apropos Info-index ;;;;;; Info-directory Info-on-current-buffer info-standalone info-emacs-manual -;;;;;; info info-other-window) "info" "info.el" (18000 24374)) +;;;;;; info info-other-window) "info" "info.el" (18006 55795)) ;;; Generated autoloads from info.el (autoload (quote info-other-window) "info" "\ @@ -15842,7 +15829,7 @@ This will add a speedbar major display mode. ;;;### (autoloads (info-complete-file info-complete-symbol info-lookup-file ;;;;;; info-lookup-symbol info-lookup-reset) "info-look" "info-look.el" -;;;;;; (17994 6715)) +;;;;;; (17878 61008)) ;;; Generated autoloads from info-look.el (autoload (quote info-lookup-reset) "info-look" "\ @@ -15890,7 +15877,7 @@ Perform completion on file preceding point. ;;;*** ;;;### (autoloads (info-xref-check-all-custom info-xref-check-all -;;;;;; info-xref-check) "info-xref" "info-xref.el" (17994 6715)) +;;;;;; info-xref-check) "info-xref" "info-xref.el" (17842 58279)) ;;; Generated autoloads from info-xref.el (autoload (quote info-xref-check) "info-xref" "\ @@ -15917,7 +15904,7 @@ quite a while. ;;;*** ;;;### (autoloads (batch-info-validate Info-validate Info-split Info-tagify) -;;;;;; "informat" "informat.el" (17994 6715)) +;;;;;; "informat" "informat.el" (17842 58279)) ;;; Generated autoloads from informat.el (autoload (quote Info-tagify) "informat" "\ @@ -15958,7 +15945,7 @@ For example, invoke \"emacs -batch -f batch-info-validate $info/ ~/*.info\" ;;;### (autoloads (isearch-process-search-multibyte-characters isearch-toggle-input-method ;;;;;; isearch-toggle-specified-input-method) "isearch-x" "international/isearch-x.el" -;;;;;; (17994 6715)) +;;;;;; (17903 2305)) ;;; Generated autoloads from international/isearch-x.el (autoload (quote isearch-toggle-specified-input-method) "isearch-x" "\ @@ -15978,8 +15965,8 @@ Not documented ;;;*** -;;;### (autoloads (isearchb-activate) "isearchb" "isearchb.el" (17994 -;;;;;; 6715)) +;;;### (autoloads (isearchb-activate) "isearchb" "isearchb.el" (17918 +;;;;;; 44913)) ;;; Generated autoloads from isearchb.el (autoload (quote isearchb-activate) "isearchb" "\ @@ -16026,7 +16013,7 @@ and a negative argument disables it. ;;;### (autoloads (iso-cvt-define-menu iso-cvt-write-only iso-cvt-read-only ;;;;;; iso-sgml2iso iso-iso2sgml iso-iso2duden iso-iso2gtex iso-gtex2iso ;;;;;; iso-tex2iso iso-iso2tex iso-german iso-spanish) "iso-cvt" -;;;;;; "international/iso-cvt.el" (17994 6743)) +;;;;;; "international/iso-cvt.el" (17992 30878)) ;;; Generated autoloads from international/iso-cvt.el (autoload (quote iso-spanish) "iso-cvt" "\ @@ -16110,7 +16097,7 @@ Add submenus to the File menu, to convert to and from various formats. ;;;*** ;;;### (autoloads nil "iso-transl" "international/iso-transl.el" -;;;;;; (17994 6715)) +;;;;;; (17842 54888)) ;;; Generated autoloads from international/iso-transl.el (or key-translation-map (setq key-translation-map (make-sparse-keymap))) (define-key key-translation-map "\C-x8" 'iso-transl-ctl-x-8-map) @@ -16123,7 +16110,7 @@ Add submenus to the File menu, to convert to and from various formats. ;;;;;; ispell-region ispell-change-dictionary ispell-kill-ispell ;;;;;; ispell-help ispell-pdict-save ispell-word ispell-local-dictionary-alist ;;;;;; ispell-personal-dictionary) "ispell" "textmodes/ispell.el" -;;;;;; (18000 24377)) +;;;;;; (18006 55797)) ;;; Generated autoloads from textmodes/ispell.el (put 'ispell-check-comments 'safe-local-variable (lambda (a) (memq a '(nil t exclusive)))) @@ -16410,8 +16397,8 @@ You can bind this to the key C-c i in GNUS or mail by adding to ;;;*** -;;;### (autoloads (iswitchb-mode) "iswitchb" "iswitchb.el" (17994 -;;;;;; 6715)) +;;;### (autoloads (iswitchb-mode) "iswitchb" "iswitchb.el" (17819 +;;;;;; 9451)) ;;; Generated autoloads from iswitchb.el (defvar iswitchb-mode nil "\ @@ -16436,7 +16423,7 @@ This mode enables switching between buffers using substrings. See ;;;### (autoloads (read-hiragana-string japanese-zenkaku-region japanese-hankaku-region ;;;;;; japanese-hiragana-region japanese-katakana-region japanese-zenkaku ;;;;;; japanese-hankaku japanese-hiragana japanese-katakana setup-japanese-environment-internal) -;;;;;; "japan-util" "language/japan-util.el" (17994 6715)) +;;;;;; "japan-util" "language/japan-util.el" (17842 58278)) ;;; Generated autoloads from language/japan-util.el (autoload (quote setup-japanese-environment-internal) "japan-util" "\ @@ -16514,7 +16501,7 @@ If non-nil, second arg INITIAL-INPUT is a string to insert before reading. ;;;*** ;;;### (autoloads (jka-compr-uninstall jka-compr-handler) "jka-compr" -;;;;;; "jka-compr.el" (17994 6715)) +;;;;;; "jka-compr.el" (17853 24893)) ;;; Generated autoloads from jka-compr.el (defvar jka-compr-inhibit nil "\ @@ -16539,7 +16526,7 @@ by `jka-compr-installed'. ;;;### (autoloads (keypad-setup keypad-numlock-shifted-setup keypad-shifted-setup ;;;;;; keypad-numlock-setup keypad-setup) "keypad" "emulation/keypad.el" -;;;;;; (17994 6715)) +;;;;;; (17833 41203)) ;;; Generated autoloads from emulation/keypad.el (defvar keypad-setup nil "\ @@ -16595,7 +16582,7 @@ the decimal key on the keypad is mapped to DECIMAL instead of `.' ;;;*** ;;;### (autoloads (kinsoku) "kinsoku" "international/kinsoku.el" -;;;;;; (17994 6715)) +;;;;;; (17842 54888)) ;;; Generated autoloads from international/kinsoku.el (autoload (quote kinsoku) "kinsoku" "\ @@ -16616,8 +16603,8 @@ the context of text formatting. ;;;*** -;;;### (autoloads (kkc-region) "kkc" "international/kkc.el" (17994 -;;;;;; 6715)) +;;;### (autoloads (kkc-region) "kkc" "international/kkc.el" (17842 +;;;;;; 54888)) ;;; Generated autoloads from international/kkc.el (defvar kkc-after-update-conversion-functions nil "\ @@ -16642,7 +16629,7 @@ and the return value is the length of the conversion. ;;;### (autoloads (kmacro-end-call-mouse kmacro-end-and-call-macro ;;;;;; kmacro-end-or-call-macro kmacro-start-macro-or-insert-counter ;;;;;; kmacro-call-macro kmacro-end-macro kmacro-start-macro) "kmacro" -;;;;;; "kmacro.el" (17994 6715)) +;;;;;; "kmacro.el" (17833 41350)) ;;; Generated autoloads from kmacro.el (global-set-key "\C-x(" 'kmacro-start-macro) (global-set-key "\C-x)" 'kmacro-end-macro) @@ -16749,7 +16736,7 @@ If kbd macro currently being defined end it before activating it. ;;;### (autoloads (kannada-post-read-conversion kannada-compose-string ;;;;;; kannada-compose-region) "knd-util" "language/knd-util.el" -;;;;;; (17994 6715)) +;;;;;; (17842 58278)) ;;; Generated autoloads from language/knd-util.el (defconst kannada-consonant "[\x51f75-\x51fb9]") @@ -16772,7 +16759,7 @@ Not documented ;;;*** ;;;### (autoloads (setup-korean-environment-internal) "korea-util" -;;;;;; "language/korea-util.el" (17994 6715)) +;;;;;; "language/korea-util.el" (17842 58278)) ;;; Generated autoloads from language/korea-util.el (defvar default-korean-keyboard (if (string-match "3" (or (getenv "HANGUL_KEYBOARD_TYPE") "")) "3" "") "\ @@ -16787,7 +16774,7 @@ Not documented ;;;*** ;;;### (autoloads (lm lm-test-run) "landmark" "play/landmark.el" -;;;;;; (17994 6715)) +;;;;;; (17941 38806)) ;;; Generated autoloads from play/landmark.el (defalias (quote landmark-repeat) (quote lm-test-run)) @@ -16821,8 +16808,8 @@ Use \\[describe-mode] for more info. ;;;### (autoloads (lao-compose-region lao-composition-function lao-post-read-conversion ;;;;;; lao-transcribe-roman-to-lao-string lao-transcribe-single-roman-syllable-to-lao -;;;;;; lao-compose-string) "lao-util" "language/lao-util.el" (17994 -;;;;;; 6715)) +;;;;;; lao-compose-string) "lao-util" "language/lao-util.el" (17842 +;;;;;; 58278)) ;;; Generated autoloads from language/lao-util.el (autoload (quote lao-compose-string) "lao-util" "\ @@ -16871,7 +16858,7 @@ Not documented ;;;### (autoloads (latexenc-find-file-coding-system latexenc-coding-system-to-inputenc ;;;;;; latexenc-inputenc-to-coding-system latex-inputenc-coding-alist) -;;;;;; "latexenc" "international/latexenc.el" (17994 6715)) +;;;;;; "latexenc" "international/latexenc.el" (17842 54888)) ;;; Generated autoloads from international/latexenc.el (defvar latex-inputenc-coding-alist (quote (("ansinew" . windows-1252) ("applemac" . mac-roman) ("ascii" . us-ascii) ("cp1250" . windows-1250) ("cp1252" . windows-1252) ("cp1257" . cp1257) ("cp437de" . cp437) ("cp437" . cp437) ("cp850" . cp850) ("cp852" . cp852) ("cp858" . cp858) ("cp865" . cp865) ("latin1" . iso-8859-1) ("latin2" . iso-8859-2) ("latin3" . iso-8859-3) ("latin4" . iso-8859-4) ("latin5" . iso-8859-5) ("latin9" . iso-8859-15) ("next" . next) ("utf8" . utf-8) ("utf8x" . utf-8))) "\ @@ -16903,7 +16890,7 @@ coding system names is determined from `latex-inputenc-coding-alist'. ;;;*** ;;;### (autoloads (latin1-display-ucs-per-lynx latin1-display latin1-display) -;;;;;; "latin1-disp" "international/latin1-disp.el" (17994 6715)) +;;;;;; "latin1-disp" "international/latin1-disp.el" (17874 62081)) ;;; Generated autoloads from international/latin1-disp.el (defvar latin1-display nil "\ @@ -17015,7 +17002,7 @@ Unconditionally turn on Lazy Lock mode. ;;;*** ;;;### (autoloads (ld-script-mode) "ld-script" "progmodes/ld-script.el" -;;;;;; (17994 6715)) +;;;;;; (17842 56332)) ;;; Generated autoloads from progmodes/ld-script.el (add-to-list (quote auto-mode-alist) (quote ("\\.ld[si]?\\>" . ld-script-mode))) @@ -17030,7 +17017,7 @@ A major mode to edit GNU ld script files ;;;*** ;;;### (autoloads (ledit-from-lisp-mode ledit-mode) "ledit" "ledit.el" -;;;;;; (17994 6715)) +;;;;;; (17842 58279)) ;;; Generated autoloads from ledit.el (defconst ledit-save-files t "\ @@ -17065,7 +17052,7 @@ Not documented ;;;*** -;;;### (autoloads (life) "life" "play/life.el" (17994 6715)) +;;;### (autoloads (life) "life" "play/life.el" (17842 55395)) ;;; Generated autoloads from play/life.el (autoload (quote life) "life" "\ @@ -17078,8 +17065,8 @@ generations (this defaults to 1). ;;;*** -;;;### (autoloads (unload-feature) "loadhist" "loadhist.el" (17994 -;;;;;; 6715)) +;;;### (autoloads (unload-feature) "loadhist" "loadhist.el" (17942 +;;;;;; 63381)) ;;; Generated autoloads from loadhist.el (autoload (quote unload-feature) "loadhist" "\ @@ -17102,7 +17089,7 @@ such as redefining an Emacs function. ;;;*** ;;;### (autoloads (locate-with-filter locate locate-ls-subdir-switches) -;;;;;; "locate" "locate.el" (17994 6728)) +;;;;;; "locate" "locate.el" (17992 30877)) ;;; Generated autoloads from locate.el (defvar locate-ls-subdir-switches "-al" "\ @@ -17153,7 +17140,7 @@ except that FILTER is not optional. ;;;*** -;;;### (autoloads (log-edit) "log-edit" "log-edit.el" (17994 6715)) +;;;### (autoloads (log-edit) "log-edit" "log-edit.el" (18010 5298)) ;;; Generated autoloads from log-edit.el (autoload (quote log-edit) "log-edit" "\ @@ -17174,8 +17161,8 @@ If BUFFER is non-nil `log-edit' will jump to that buffer, use it to edit the ;;;*** -;;;### (autoloads (log-view-mode) "log-view" "log-view.el" (17994 -;;;;;; 6715)) +;;;### (autoloads (log-view-mode) "log-view" "log-view.el" (17842 +;;;;;; 58279)) ;;; Generated autoloads from log-view.el (autoload (quote log-view-mode) "log-view" "\ @@ -17185,8 +17172,8 @@ Major mode for browsing CVS log output. ;;;*** -;;;### (autoloads (longlines-mode) "longlines" "longlines.el" (18000 -;;;;;; 23879)) +;;;### (autoloads (longlines-mode) "longlines" "longlines.el" (17992 +;;;;;; 30877)) ;;; Generated autoloads from longlines.el (autoload (quote longlines-mode) "longlines" "\ @@ -17207,8 +17194,8 @@ are indicated with a symbol. ;;;*** ;;;### (autoloads (print-region lpr-region print-buffer lpr-buffer -;;;;;; lpr-command lpr-switches printer-name) "lpr" "lpr.el" (17994 -;;;;;; 6715)) +;;;;;; lpr-command lpr-switches printer-name) "lpr" "lpr.el" (17842 +;;;;;; 58279)) ;;; Generated autoloads from lpr.el (defvar lpr-windows-system (memq system-type (quote (emx win32 w32 mswindows ms-dos windows-nt)))) @@ -17302,7 +17289,7 @@ for further customization of the printer command. ;;;*** ;;;### (autoloads (ls-lisp-support-shell-wildcards) "ls-lisp" "ls-lisp.el" -;;;;;; (18000 24333)) +;;;;;; (18006 55796)) ;;; Generated autoloads from ls-lisp.el (defvar ls-lisp-support-shell-wildcards t "\ @@ -17313,8 +17300,8 @@ Otherwise they are treated as Emacs regexps (for backward compatibility).") ;;;*** -;;;### (autoloads (phases-of-moon) "lunar" "calendar/lunar.el" (17994 -;;;;;; 6715)) +;;;### (autoloads (phases-of-moon) "lunar" "calendar/lunar.el" (17956 +;;;;;; 13479)) ;;; Generated autoloads from calendar/lunar.el (autoload (quote phases-of-moon) "lunar" "\ @@ -17327,8 +17314,8 @@ This function is suitable for execution in a .emacs file. ;;;*** -;;;### (autoloads (m4-mode) "m4-mode" "progmodes/m4-mode.el" (17994 -;;;;;; 6715)) +;;;### (autoloads (m4-mode) "m4-mode" "progmodes/m4-mode.el" (17923 +;;;;;; 63540)) ;;; Generated autoloads from progmodes/m4-mode.el (autoload (quote m4-mode) "m4-mode" "\ @@ -17340,7 +17327,7 @@ A major mode to edit m4 macro files. ;;;*** ;;;### (autoloads (macroexpand-all) "macroexp" "emacs-lisp/macroexp.el" -;;;;;; (17994 6715)) +;;;;;; (17842 54152)) ;;; Generated autoloads from emacs-lisp/macroexp.el (autoload (quote macroexpand-all) "macroexp" "\ @@ -17354,7 +17341,7 @@ definitions to shadow the loaded ones for use in file byte-compilation. ;;;*** ;;;### (autoloads (apply-macro-to-region-lines kbd-macro-query insert-kbd-macro -;;;;;; name-last-kbd-macro) "macros" "macros.el" (17994 6715)) +;;;;;; name-last-kbd-macro) "macros" "macros.el" (17842 58279)) ;;; Generated autoloads from macros.el (autoload (quote name-last-kbd-macro) "macros" "\ @@ -17443,7 +17430,7 @@ and then select the region of un-tablified names and use ;;;*** ;;;### (autoloads (what-domain mail-extract-address-components) "mail-extr" -;;;;;; "mail/mail-extr.el" (17994 6715)) +;;;;;; "mail/mail-extr.el" (17842 55035)) ;;; Generated autoloads from mail/mail-extr.el (autoload (quote mail-extract-address-components) "mail-extr" "\ @@ -17475,7 +17462,7 @@ Convert mail domain DOMAIN to the country it corresponds to. ;;;### (autoloads (mail-hist-put-headers-into-history mail-hist-keep-history ;;;;;; mail-hist-enable mail-hist-define-keys) "mail-hist" "mail/mail-hist.el" -;;;;;; (17994 6715)) +;;;;;; (17842 55035)) ;;; Generated autoloads from mail/mail-hist.el (autoload (quote mail-hist-define-keys) "mail-hist" "\ @@ -17506,8 +17493,8 @@ This function normally would be called when the message is sent. ;;;### (autoloads (mail-fetch-field mail-unquote-printable-region ;;;;;; mail-unquote-printable mail-quote-printable mail-file-babyl-p -;;;;;; mail-use-rfc822) "mail-utils" "mail/mail-utils.el" (17994 -;;;;;; 6715)) +;;;;;; mail-use-rfc822) "mail-utils" "mail/mail-utils.el" (17842 +;;;;;; 55035)) ;;; Generated autoloads from mail/mail-utils.el (defvar mail-use-rfc822 nil "\ @@ -17559,7 +17546,7 @@ If 4th arg LIST is non-nil, return a list of all such fields. ;;;*** ;;;### (autoloads (define-mail-abbrev build-mail-abbrevs mail-abbrevs-setup) -;;;;;; "mailabbrev" "mail/mailabbrev.el" (17994 6741)) +;;;;;; "mailabbrev" "mail/mailabbrev.el" (17992 30878)) ;;; Generated autoloads from mail/mailabbrev.el (autoload (quote mail-abbrevs-setup) "mailabbrev" "\ @@ -17582,8 +17569,8 @@ If DEFINITION contains multiple addresses, separate them with commas. ;;;*** ;;;### (autoloads (mail-complete define-mail-alias expand-mail-aliases -;;;;;; mail-complete-style) "mailalias" "mail/mailalias.el" (17994 -;;;;;; 6715)) +;;;;;; mail-complete-style) "mailalias" "mail/mailalias.el" (17842 +;;;;;; 55035)) ;;; Generated autoloads from mail/mailalias.el (defvar mail-complete-style (quote angles) "\ @@ -17629,7 +17616,7 @@ current header, calls `mail-complete-function' and passes prefix arg if any. ;;;*** ;;;### (autoloads (mailclient-send-it) "mailclient" "mail/mailclient.el" -;;;;;; (17994 6715)) +;;;;;; (17842 55035)) ;;; Generated autoloads from mail/mailclient.el (autoload (quote mailclient-send-it) "mailclient" "\ @@ -17643,7 +17630,7 @@ The mail client is taken to be the handler of mailto URLs. ;;;### (autoloads (makefile-imake-mode makefile-bsdmake-mode makefile-makepp-mode ;;;;;; makefile-gmake-mode makefile-automake-mode makefile-mode) -;;;;;; "make-mode" "progmodes/make-mode.el" (17994 6715)) +;;;;;; "make-mode" "progmodes/make-mode.el" (17842 56332)) ;;; Generated autoloads from progmodes/make-mode.el (autoload (quote makefile-mode) "make-mode" "\ @@ -17760,8 +17747,8 @@ An adapted `makefile-mode' that knows about imake. ;;;*** -;;;### (autoloads (make-command-summary) "makesum" "makesum.el" (17994 -;;;;;; 6715)) +;;;### (autoloads (make-command-summary) "makesum" "makesum.el" (17842 +;;;;;; 58279)) ;;; Generated autoloads from makesum.el (autoload (quote make-command-summary) "makesum" "\ @@ -17772,7 +17759,7 @@ Previous contents of that buffer are killed first. ;;;*** -;;;### (autoloads (man-follow man) "man" "man.el" (17994 6743)) +;;;### (autoloads (man-follow man) "man" "man.el" (17992 30877)) ;;; Generated autoloads from man.el (defalias (quote manual-entry) (quote man)) @@ -17799,7 +17786,7 @@ Get a Un*x manual page of the item under point and put it in a buffer. ;;;*** -;;;### (autoloads (master-mode) "master" "master.el" (17994 6715)) +;;;### (autoloads (master-mode) "master" "master.el" (17842 58279)) ;;; Generated autoloads from master.el (autoload (quote master-mode) "master" "\ @@ -17821,8 +17808,8 @@ yourself the value of `master-of' by calling `master-show-slave'. ;;;*** -;;;### (autoloads (menu-bar-mode) "menu-bar" "menu-bar.el" (17994 -;;;;;; 6751)) +;;;### (autoloads (menu-bar-mode) "menu-bar" "menu-bar.el" (17942 +;;;;;; 63381)) ;;; Generated autoloads from menu-bar.el (put (quote menu-bar-mode) (quote standard-value) (quote (t))) @@ -17857,7 +17844,7 @@ turn on menu bars; otherwise, turn off menu bars. ;;;;;; message-cite-function message-yank-prefix message-citation-line-function ;;;;;; message-send-mail-function message-user-organization-file ;;;;;; message-signature-separator message-from-style) "message" -;;;;;; "gnus/message.el" (17994 6715)) +;;;;;; "gnus/message.el" (18010 19867)) ;;; Generated autoloads from gnus/message.el (defvar message-from-style (quote default) "\ @@ -18113,7 +18100,7 @@ which specify the range to operate on. ;;;*** ;;;### (autoloads (metapost-mode metafont-mode) "meta-mode" "progmodes/meta-mode.el" -;;;;;; (17994 6715)) +;;;;;; (17842 56332)) ;;; Generated autoloads from progmodes/meta-mode.el (autoload (quote metafont-mode) "meta-mode" "\ @@ -18140,7 +18127,7 @@ Turning on MetaPost mode calls the value of the variable ;;;### (autoloads (metamail-region metamail-buffer metamail-interpret-body ;;;;;; metamail-interpret-header) "metamail" "mail/metamail.el" -;;;;;; (17994 6715)) +;;;;;; (17842 55035)) ;;; Generated autoloads from mail/metamail.el (autoload (quote metamail-interpret-header) "metamail" "\ @@ -18185,7 +18172,7 @@ redisplayed as output is inserted. ;;;### (autoloads (mh-fully-kill-draft mh-send-letter mh-user-agent-compose ;;;;;; mh-smail-batch mh-smail-other-window mh-smail) "mh-comp" -;;;;;; "mh-e/mh-comp.el" (17994 6715)) +;;;;;; "mh-e/mh-comp.el" (17842 55144)) ;;; Generated autoloads from mh-e/mh-comp.el (autoload (quote mh-smail) "mh-comp" "\ @@ -18272,7 +18259,7 @@ delete the draft message. ;;;*** -;;;### (autoloads (mh-version) "mh-e" "mh-e/mh-e.el" (17994 6715)) +;;;### (autoloads (mh-version) "mh-e" "mh-e/mh-e.el" (17842 55144)) ;;; Generated autoloads from mh-e/mh-e.el (put (quote mh-progs) (quote risky-local-variable) t) @@ -18289,7 +18276,7 @@ Display version information about MH-E and the MH mail handling system. ;;;*** ;;;### (autoloads (mh-folder-mode mh-nmail mh-rmail) "mh-folder" -;;;;;; "mh-e/mh-folder.el" (17994 6715)) +;;;;;; "mh-e/mh-folder.el" (17842 55144)) ;;; Generated autoloads from mh-e/mh-folder.el (autoload (quote mh-rmail) "mh-folder" "\ @@ -18371,7 +18358,7 @@ perform the operation on all messages in that region. ;;;*** ;;;### (autoloads (midnight-delay-set clean-buffer-list) "midnight" -;;;;;; "midnight.el" (17994 6715)) +;;;;;; "midnight.el" (17842 58279)) ;;; Generated autoloads from midnight.el (autoload (quote clean-buffer-list) "midnight" "\ @@ -18398,7 +18385,7 @@ to its second argument TM. ;;;*** ;;;### (autoloads (minibuffer-electric-default-mode) "minibuf-eldef" -;;;;;; "minibuf-eldef.el" (17994 6715)) +;;;;;; "minibuf-eldef.el" (17842 58279)) ;;; Generated autoloads from minibuf-eldef.el (defvar minibuffer-electric-default-mode nil "\ @@ -18426,7 +18413,7 @@ Returns non-nil if the new state is enabled. ;;;*** ;;;### (autoloads (mixal-mode) "mixal-mode" "progmodes/mixal-mode.el" -;;;;;; (17994 6715)) +;;;;;; (17842 56332)) ;;; Generated autoloads from progmodes/mixal-mode.el (autoload (quote mixal-mode) "mixal-mode" "\ @@ -18441,7 +18428,7 @@ Major mode for the mixal asm language. ;;;### (autoloads (malayalam-composition-function malayalam-post-read-conversion ;;;;;; malayalam-compose-region) "mlm-util" "language/mlm-util.el" -;;;;;; (17994 6715)) +;;;;;; (17842 58278)) ;;; Generated autoloads from language/mlm-util.el (autoload (quote malayalam-compose-region) "mlm-util" "\ @@ -18464,7 +18451,7 @@ PATTERN regexp. ;;;*** ;;;### (autoloads (mm-inline-external-body mm-extern-cache-contents) -;;;;;; "mm-extern" "gnus/mm-extern.el" (17994 6715)) +;;;;;; "mm-extern" "gnus/mm-extern.el" (17842 54741)) ;;; Generated autoloads from gnus/mm-extern.el (autoload (quote mm-extern-cache-contents) "mm-extern" "\ @@ -18483,7 +18470,7 @@ If NO-DISPLAY is nil, display it. Otherwise, do nothing after replacing. ;;;*** ;;;### (autoloads (mm-inline-partial) "mm-partial" "gnus/mm-partial.el" -;;;;;; (17994 6715)) +;;;;;; (17842 54741)) ;;; Generated autoloads from gnus/mm-partial.el (autoload (quote mm-inline-partial) "mm-partial" "\ @@ -18497,7 +18484,7 @@ If NO-DISPLAY is nil, display it. Otherwise, do nothing after replacing. ;;;*** ;;;### (autoloads (mm-url-insert-file-contents-external mm-url-insert-file-contents) -;;;;;; "mm-url" "gnus/mm-url.el" (17994 6715)) +;;;;;; "mm-url" "gnus/mm-url.el" (17842 54741)) ;;; Generated autoloads from gnus/mm-url.el (autoload (quote mm-url-insert-file-contents) "mm-url" "\ @@ -18514,7 +18501,7 @@ Insert file contents of URL using `mm-url-program'. ;;;*** ;;;### (autoloads (mm-uu-dissect-text-parts mm-uu-dissect) "mm-uu" -;;;;;; "gnus/mm-uu.el" (17994 6715)) +;;;;;; "gnus/mm-uu.el" (17842 54741)) ;;; Generated autoloads from gnus/mm-uu.el (autoload (quote mm-uu-dissect) "mm-uu" "\ @@ -18534,7 +18521,7 @@ Assume text has been decoded if DECODED is non-nil. ;;;*** ;;;### (autoloads (mml1991-sign mml1991-encrypt) "mml1991" "gnus/mml1991.el" -;;;;;; (17994 6715)) +;;;;;; (17842 54741)) ;;; Generated autoloads from gnus/mml1991.el (autoload (quote mml1991-encrypt) "mml1991" "\ @@ -18551,7 +18538,7 @@ Not documented ;;;### (autoloads (mml2015-self-encrypt mml2015-sign mml2015-encrypt ;;;;;; mml2015-verify-test mml2015-verify mml2015-decrypt-test mml2015-decrypt) -;;;;;; "mml2015" "gnus/mml2015.el" (17994 6715)) +;;;;;; "mml2015" "gnus/mml2015.el" (17842 54741)) ;;; Generated autoloads from gnus/mml2015.el (autoload (quote mml2015-decrypt) "mml2015" "\ @@ -18592,7 +18579,7 @@ Not documented ;;;*** ;;;### (autoloads (modula-2-mode) "modula2" "progmodes/modula2.el" -;;;;;; (17994 6715)) +;;;;;; (17276 13069)) ;;; Generated autoloads from progmodes/modula2.el (autoload (quote modula-2-mode) "modula2" "\ @@ -18624,7 +18611,7 @@ followed by the first character of the construct. ;;;*** ;;;### (autoloads (unmorse-region morse-region) "morse" "play/morse.el" -;;;;;; (17994 6715)) +;;;;;; (17842 55395)) ;;; Generated autoloads from play/morse.el (autoload (quote morse-region) "morse" "\ @@ -18639,8 +18626,8 @@ Convert morse coded text in region to ordinary ASCII text. ;;;*** -;;;### (autoloads (mouse-sel-mode) "mouse-sel" "mouse-sel.el" (17994 -;;;;;; 6715)) +;;;### (autoloads (mouse-sel-mode) "mouse-sel" "mouse-sel.el" (17842 +;;;;;; 58279)) ;;; Generated autoloads from mouse-sel.el (defvar mouse-sel-mode nil "\ @@ -18692,7 +18679,7 @@ primary selection and region. ;;;*** -;;;### (autoloads (mpuz) "mpuz" "play/mpuz.el" (17994 6715)) +;;;### (autoloads (mpuz) "mpuz" "play/mpuz.el" (17862 6157)) ;;; Generated autoloads from play/mpuz.el (autoload (quote mpuz) "mpuz" "\ @@ -18702,7 +18689,7 @@ Multiplication puzzle with GNU Emacs. ;;;*** -;;;### (autoloads (msb-mode) "msb" "msb.el" (18000 24333)) +;;;### (autoloads (msb-mode) "msb" "msb.el" (18006 55796)) ;;; Generated autoloads from msb.el (defvar msb-mode nil "\ @@ -18729,7 +18716,7 @@ different buffer menu using the function `msb'. ;;;;;; describe-current-coding-system describe-current-coding-system-briefly ;;;;;; describe-coding-system describe-character-set list-charset-chars ;;;;;; read-charset list-character-sets) "mule-diag" "international/mule-diag.el" -;;;;;; (17994 6715)) +;;;;;; (17842 54888)) ;;; Generated autoloads from international/mule-diag.el (defvar non-iso-charset-alist (\` ((mac-roman (ascii latin-iso8859-1 mule-unicode-2500-33ff mule-unicode-0100-24ff mule-unicode-e000-ffff) mac-roman-decoder ((0 255))) (viscii (ascii vietnamese-viscii-lower vietnamese-viscii-upper) viet-viscii-nonascii-translation-table ((0 255))) (vietnamese-tcvn (ascii vietnamese-viscii-lower vietnamese-viscii-upper) viet-tcvn-nonascii-translation-table ((0 255))) (koi8-r (ascii cyrillic-iso8859-5) cyrillic-koi8-r-nonascii-translation-table ((32 255))) (alternativnyj (ascii cyrillic-iso8859-5) cyrillic-alternativnyj-nonascii-translation-table ((32 255))) (koi8-u (ascii cyrillic-iso8859-5 mule-unicode-0100-24ff) cyrillic-koi8-u-nonascii-translation-table ((32 255))) (big5 (ascii chinese-big5-1 chinese-big5-2) decode-big5-char ((32 127) ((161 254) 64 126 161 254))) (sjis (ascii katakana-jisx0201 japanese-jisx0208) decode-sjis-char ((32 127 161 223) ((129 159 224 239) 64 126 128 252))))) "\ @@ -18903,7 +18890,7 @@ system which uses fontsets). ;;;;;; coding-system-translation-table-for-decode coding-system-pre-write-conversion ;;;;;; coding-system-post-read-conversion lookup-nested-alist set-nested-alist ;;;;;; truncate-string-to-width store-substring string-to-sequence) -;;;;;; "mule-util" "international/mule-util.el" (17994 6715)) +;;;;;; "mule-util" "international/mule-util.el" (17842 54888)) ;;; Generated autoloads from international/mule-util.el (autoload (quote string-to-sequence) "mule-util" "\ @@ -19032,7 +19019,7 @@ basis, this may not be accurate. ;;;*** ;;;### (autoloads (mwheel-install mouse-wheel-mode) "mwheel" "mwheel.el" -;;;;;; (17994 6715)) +;;;;;; (17842 58279)) ;;; Generated autoloads from mwheel.el (defvar mouse-wheel-mode nil "\ @@ -19061,7 +19048,7 @@ Enable mouse wheel support. ;;;### (autoloads (network-connection network-connection-to-service ;;;;;; whois-reverse-lookup whois finger ftp run-dig dns-lookup-host ;;;;;; nslookup nslookup-host route arp netstat ipconfig ping traceroute) -;;;;;; "net-utils" "net/net-utils.el" (17994 6715)) +;;;;;; "net-utils" "net/net-utils.el" (17891 7215)) ;;; Generated autoloads from net/net-utils.el (autoload (quote traceroute) "net-utils" "\ @@ -19157,7 +19144,7 @@ Open a network connection to HOST on PORT. ;;;;;; uncomment-region comment-kill comment-set-column comment-indent ;;;;;; comment-indent-default comment-normalize-vars comment-multi-line ;;;;;; comment-padding comment-style comment-column) "newcomment" -;;;;;; "newcomment.el" (17994 6740)) +;;;;;; "newcomment.el" (17992 30877)) ;;; Generated autoloads from newcomment.el (defalias (quote indent-for-comment) (quote comment-indent)) @@ -19353,7 +19340,7 @@ unless optional argument SOFT is non-nil. ;;;### (autoloads (newsticker-show-news newsticker-start-ticker newsticker-start ;;;;;; newsticker-ticker-running-p newsticker-running-p) "newsticker" -;;;;;; "net/newsticker.el" (17994 6715)) +;;;;;; "net/newsticker.el" (17873 44590)) ;;; Generated autoloads from net/newsticker.el (autoload (quote newsticker-running-p) "newsticker" "\ @@ -19395,7 +19382,7 @@ Switch to newsticker buffer. You may want to bind this to a key. ;;;*** ;;;### (autoloads (nndiary-generate-nov-databases) "nndiary" "gnus/nndiary.el" -;;;;;; (17994 6741)) +;;;;;; (17992 30878)) ;;; Generated autoloads from gnus/nndiary.el (autoload (quote nndiary-generate-nov-databases) "nndiary" "\ @@ -19405,8 +19392,8 @@ Generate NOV databases in all nndiary directories. ;;;*** -;;;### (autoloads (nndoc-add-type) "nndoc" "gnus/nndoc.el" (17994 -;;;;;; 6715)) +;;;### (autoloads (nndoc-add-type) "nndoc" "gnus/nndoc.el" (17842 +;;;;;; 54741)) ;;; Generated autoloads from gnus/nndoc.el (autoload (quote nndoc-add-type) "nndoc" "\ @@ -19421,7 +19408,7 @@ symbol in the alist. ;;;*** ;;;### (autoloads (nnfolder-generate-active-file) "nnfolder" "gnus/nnfolder.el" -;;;;;; (17994 6715)) +;;;;;; (17842 54741)) ;;; Generated autoloads from gnus/nnfolder.el (autoload (quote nnfolder-generate-active-file) "nnfolder" "\ @@ -19433,7 +19420,7 @@ This command does not work if you use short group names. ;;;*** ;;;### (autoloads (nnkiboze-generate-groups) "nnkiboze" "gnus/nnkiboze.el" -;;;;;; (17994 6715)) +;;;;;; (17842 54741)) ;;; Generated autoloads from gnus/nnkiboze.el (autoload (quote nnkiboze-generate-groups) "nnkiboze" "\ @@ -19445,7 +19432,7 @@ Finds out what articles are to be part of the nnkiboze groups. ;;;*** ;;;### (autoloads (nnml-generate-nov-databases) "nnml" "gnus/nnml.el" -;;;;;; (17994 6715)) +;;;;;; (17842 54741)) ;;; Generated autoloads from gnus/nnml.el (autoload (quote nnml-generate-nov-databases) "nnml" "\ @@ -19456,7 +19443,7 @@ Generate NOV databases in all nnml directories. ;;;*** ;;;### (autoloads (nnsoup-revert-variables nnsoup-set-variables nnsoup-pack-replies) -;;;;;; "nnsoup" "gnus/nnsoup.el" (17994 6715)) +;;;;;; "nnsoup" "gnus/nnsoup.el" (17842 54741)) ;;; Generated autoloads from gnus/nnsoup.el (autoload (quote nnsoup-pack-replies) "nnsoup" "\ @@ -19477,7 +19464,7 @@ Revert posting and mailing methods to the standard Emacs methods. ;;;*** ;;;### (autoloads (disable-command enable-command disabled-command-function) -;;;;;; "novice" "novice.el" (17994 6715)) +;;;;;; "novice" "novice.el" (17842 58279)) ;;; Generated autoloads from novice.el (defvar disabled-command-function (quote disabled-command-function) "\ @@ -19510,7 +19497,7 @@ to future sessions. ;;;*** ;;;### (autoloads (nroff-mode) "nroff-mode" "textmodes/nroff-mode.el" -;;;;;; (17994 6715)) +;;;;;; (17842 58277)) ;;; Generated autoloads from textmodes/nroff-mode.el (autoload (quote nroff-mode) "nroff-mode" "\ @@ -19525,7 +19512,7 @@ closing requests for requests that are used in matched pairs. ;;;*** ;;;### (autoloads (octave-help) "octave-hlp" "progmodes/octave-hlp.el" -;;;;;; (17994 6715)) +;;;;;; (17842 56332)) ;;; Generated autoloads from progmodes/octave-hlp.el (autoload (quote octave-help) "octave-hlp" "\ @@ -19539,7 +19526,7 @@ If KEY is not a string, prompt for it with completion. ;;;*** ;;;### (autoloads (inferior-octave) "octave-inf" "progmodes/octave-inf.el" -;;;;;; (17994 6715)) +;;;;;; (17842 56332)) ;;; Generated autoloads from progmodes/octave-inf.el (autoload (quote inferior-octave) "octave-inf" "\ @@ -19562,7 +19549,7 @@ startup file, `~/.emacs-octave'. ;;;*** ;;;### (autoloads (octave-mode) "octave-mod" "progmodes/octave-mod.el" -;;;;;; (17994 6715)) +;;;;;; (17842 56332)) ;;; Generated autoloads from progmodes/octave-mod.el (autoload (quote octave-mode) "octave-mod" "\ @@ -19688,7 +19675,7 @@ The Custom feature is intended to make this obsolete. ;;;;;; org-remember-handler org-remember org-remember-apply-template ;;;;;; org-remember-annotation org-store-link orgtbl-mode turn-on-orgtbl ;;;;;; org-global-cycle org-cycle org-mode) "org" "textmodes/org.el" -;;;;;; (17994 6715)) +;;;;;; (17922 37459)) ;;; Generated autoloads from textmodes/org.el (autoload (quote org-mode) "org" "\ @@ -19963,7 +19950,7 @@ The file is stored under the name `org-combined-agenda-icalendar-file'. ;;;*** ;;;### (autoloads (outline-minor-mode outline-mode) "outline" "outline.el" -;;;;;; (17994 6715)) +;;;;;; (17952 11093)) ;;; Generated autoloads from outline.el (put 'outline-regexp 'safe-local-variable 'string-or-null-p) @@ -20019,8 +20006,8 @@ See the command `outline-mode' for more information on this mode. ;;;*** -;;;### (autoloads nil "paragraphs" "textmodes/paragraphs.el" (17994 -;;;;;; 6715)) +;;;### (autoloads nil "paragraphs" "textmodes/paragraphs.el" (17842 +;;;;;; 58277)) ;;; Generated autoloads from textmodes/paragraphs.el (put 'paragraph-start 'safe-local-variable 'stringp) (put 'paragraph-separate 'safe-local-variable 'stringp) @@ -20034,7 +20021,7 @@ See the command `outline-mode' for more information on this mode. ;;;*** -;;;### (autoloads (show-paren-mode) "paren" "paren.el" (17994 6715)) +;;;### (autoloads (show-paren-mode) "paren" "paren.el" (18016 8765)) ;;; Generated autoloads from paren.el (defvar show-paren-mode nil "\ @@ -20059,7 +20046,7 @@ in `show-paren-style' after `show-paren-delay' seconds of Emacs idle time. ;;;*** ;;;### (autoloads (parse-time-string) "parse-time" "calendar/parse-time.el" -;;;;;; (17994 6715)) +;;;;;; (17957 43164)) ;;; Generated autoloads from calendar/parse-time.el (autoload (quote parse-time-string) "parse-time" "\ @@ -20071,8 +20058,8 @@ unknown are returned as nil. ;;;*** -;;;### (autoloads (pascal-mode) "pascal" "progmodes/pascal.el" (17994 -;;;;;; 6715)) +;;;### (autoloads (pascal-mode) "pascal" "progmodes/pascal.el" (17842 +;;;;;; 56332)) ;;; Generated autoloads from progmodes/pascal.el (autoload (quote pascal-mode) "pascal" "\ @@ -20125,7 +20112,7 @@ no args, if that value is non-nil. ;;;*** ;;;### (autoloads (pc-bindings-mode) "pc-mode" "emulation/pc-mode.el" -;;;;;; (17994 6715)) +;;;;;; (17842 54264)) ;;; Generated autoloads from emulation/pc-mode.el (autoload (quote pc-bindings-mode) "pc-mode" "\ @@ -20143,7 +20130,7 @@ C-Escape does list-buffers. ;;;*** ;;;### (autoloads (pc-selection-mode pc-selection-mode) "pc-select" -;;;;;; "emulation/pc-select.el" (17994 6715)) +;;;;;; "emulation/pc-select.el" (17842 54264)) ;;; Generated autoloads from emulation/pc-select.el (defvar pc-selection-mode nil "\ @@ -20219,8 +20206,8 @@ you must modify it using \\[customize] or \\[pc-selection-mode].") ;;;*** -;;;### (autoloads (pcomplete/cvs) "pcmpl-cvs" "pcmpl-cvs.el" (17994 -;;;;;; 6715)) +;;;### (autoloads (pcomplete/cvs) "pcmpl-cvs" "pcmpl-cvs.el" (17842 +;;;;;; 58279)) ;;; Generated autoloads from pcmpl-cvs.el (autoload (quote pcomplete/cvs) "pcmpl-cvs" "\ @@ -20231,7 +20218,7 @@ Completion rules for the `cvs' command. ;;;*** ;;;### (autoloads (pcomplete/tar pcomplete/make pcomplete/bzip2 pcomplete/gzip) -;;;;;; "pcmpl-gnu" "pcmpl-gnu.el" (17994 6715)) +;;;;;; "pcmpl-gnu" "pcmpl-gnu.el" (17842 58279)) ;;; Generated autoloads from pcmpl-gnu.el (autoload (quote pcomplete/gzip) "pcmpl-gnu" "\ @@ -20259,7 +20246,7 @@ Completion for the GNU tar utility. ;;;*** ;;;### (autoloads (pcomplete/mount pcomplete/umount pcomplete/kill) -;;;;;; "pcmpl-linux" "pcmpl-linux.el" (17994 6715)) +;;;;;; "pcmpl-linux" "pcmpl-linux.el" (17842 58279)) ;;; Generated autoloads from pcmpl-linux.el (autoload (quote pcomplete/kill) "pcmpl-linux" "\ @@ -20279,8 +20266,8 @@ Completion for GNU/Linux `mount'. ;;;*** -;;;### (autoloads (pcomplete/rpm) "pcmpl-rpm" "pcmpl-rpm.el" (17994 -;;;;;; 6715)) +;;;### (autoloads (pcomplete/rpm) "pcmpl-rpm" "pcmpl-rpm.el" (17842 +;;;;;; 58279)) ;;; Generated autoloads from pcmpl-rpm.el (autoload (quote pcomplete/rpm) "pcmpl-rpm" "\ @@ -20296,7 +20283,7 @@ You can use \\[eshell-report-bug] to do so. ;;;### (autoloads (pcomplete/chgrp pcomplete/chown pcomplete/which ;;;;;; pcomplete/xargs pcomplete/rm pcomplete/rmdir pcomplete/cd) -;;;;;; "pcmpl-unix" "pcmpl-unix.el" (17994 6715)) +;;;;;; "pcmpl-unix" "pcmpl-unix.el" (17842 58279)) ;;; Generated autoloads from pcmpl-unix.el (autoload (quote pcomplete/cd) "pcmpl-unix" "\ @@ -20342,8 +20329,8 @@ Completion for the `chgrp' command. ;;;### (autoloads (pcomplete-shell-setup pcomplete-comint-setup pcomplete-list ;;;;;; pcomplete-help pcomplete-expand pcomplete-continue pcomplete-expand-and-complete -;;;;;; pcomplete-reverse pcomplete) "pcomplete" "pcomplete.el" (17994 -;;;;;; 6715)) +;;;;;; pcomplete-reverse pcomplete) "pcomplete" "pcomplete.el" (17944 +;;;;;; 62194)) ;;; Generated autoloads from pcomplete.el (autoload (quote pcomplete) "pcomplete" "\ @@ -20402,7 +20389,7 @@ Setup shell-mode to use pcomplete. ;;;### (autoloads (cvs-dired-use-hook cvs-dired-action cvs-status ;;;;;; cvs-update cvs-examine cvs-quickdir cvs-checkout) "pcvs" -;;;;;; "pcvs.el" (18000 24333)) +;;;;;; "pcvs.el" (18006 55796)) ;;; Generated autoloads from pcvs.el (autoload (quote cvs-checkout) "pcvs" "\ @@ -20479,7 +20466,7 @@ The exact behavior is determined also by `cvs-dired-use-hook'." (when (stringp d ;;;*** -;;;### (autoloads nil "pcvs-defs" "pcvs-defs.el" (17994 6715)) +;;;### (autoloads nil "pcvs-defs" "pcvs-defs.el" (17842 58279)) ;;; Generated autoloads from pcvs-defs.el (defvar cvs-global-menu (let ((m (make-sparse-keymap "PCL-CVS"))) (define-key m [status] (quote (menu-item "Directory Status" cvs-status :help "A more verbose status of a workarea"))) (define-key m [checkout] (quote (menu-item "Checkout Module" cvs-checkout :help "Check out a module from the repository"))) (define-key m [update] (quote (menu-item "Update Directory" cvs-update :help "Fetch updates from the repository"))) (define-key m [examine] (quote (menu-item "Examine Directory" cvs-examine :help "Examine the current state of a workarea"))) (fset (quote cvs-global-menu) m))) @@ -20487,7 +20474,7 @@ The exact behavior is determined also by `cvs-dired-use-hook'." (when (stringp d ;;;*** ;;;### (autoloads (perl-mode) "perl-mode" "progmodes/perl-mode.el" -;;;;;; (17994 6715)) +;;;;;; (17962 28280)) ;;; Generated autoloads from progmodes/perl-mode.el (autoload (quote perl-mode) "perl-mode" "\ @@ -20545,7 +20532,7 @@ Turning on Perl mode runs the normal hook `perl-mode-hook'. ;;;### (autoloads (pgg-snarf-keys pgg-snarf-keys-region pgg-insert-key ;;;;;; pgg-verify pgg-verify-region pgg-sign pgg-sign-region pgg-decrypt ;;;;;; pgg-decrypt-region pgg-encrypt pgg-encrypt-symmetric pgg-encrypt-symmetric-region -;;;;;; pgg-encrypt-region) "pgg" "pgg.el" (17994 6715)) +;;;;;; pgg-encrypt-region) "pgg" "pgg.el" (17842 58279)) ;;; Generated autoloads from pgg.el (autoload (quote pgg-encrypt-region) "pgg" "\ @@ -20679,7 +20666,7 @@ Import public keys in the current buffer. ;;;*** ;;;### (autoloads (pgg-gpg-symmetric-key-p) "pgg-gpg" "pgg-gpg.el" -;;;;;; (17994 6715)) +;;;;;; (17887 33207)) ;;; Generated autoloads from pgg-gpg.el (autoload (quote pgg-gpg-symmetric-key-p) "pgg-gpg" "\ @@ -20690,7 +20677,7 @@ True if decoded armor MESSAGE-KEYS has symmetric encryption indicator. ;;;*** ;;;### (autoloads (picture-mode) "picture" "textmodes/picture.el" -;;;;;; (17994 6715)) +;;;;;; (17842 58277)) ;;; Generated autoloads from textmodes/picture.el (autoload (quote picture-mode) "picture" "\ @@ -20771,7 +20758,7 @@ they are not defaultly assigned to keys. ;;;*** ;;;### (autoloads (po-find-file-coding-system) "po" "textmodes/po.el" -;;;;;; (17994 6715)) +;;;;;; (17842 58277)) ;;; Generated autoloads from textmodes/po.el (autoload (quote po-find-file-coding-system) "po" "\ @@ -20782,7 +20769,7 @@ Called through `file-coding-system-alist', before the file is visited for real. ;;;*** -;;;### (autoloads (pong) "pong" "play/pong.el" (17994 6715)) +;;;### (autoloads (pong) "pong" "play/pong.el" (17842 55395)) ;;; Generated autoloads from play/pong.el (autoload (quote pong) "pong" "\ @@ -20799,7 +20786,7 @@ pong-mode keybindings:\\<pong-mode-map> ;;;*** ;;;### (autoloads (pp-eval-last-sexp pp-eval-expression pp pp-buffer -;;;;;; pp-to-string) "pp" "emacs-lisp/pp.el" (17994 6715)) +;;;;;; pp-to-string) "pp" "emacs-lisp/pp.el" (17852 19612)) ;;; Generated autoloads from emacs-lisp/pp.el (autoload (quote pp-to-string) "pp" "\ @@ -20855,7 +20842,7 @@ Ignores leading comment characters. ;;;;;; pr-ps-buffer-print pr-ps-buffer-using-ghostscript pr-ps-buffer-preview ;;;;;; pr-ps-directory-ps-print pr-ps-directory-print pr-ps-directory-using-ghostscript ;;;;;; pr-ps-directory-preview pr-interface) "printing" "printing.el" -;;;;;; (18000 24338)) +;;;;;; (18006 55796)) ;;; Generated autoloads from printing.el (autoload (quote pr-interface) "printing" "\ @@ -21443,7 +21430,7 @@ are both set to t. ;;;*** ;;;### (autoloads (switch-to-prolog prolog-mode) "prolog" "progmodes/prolog.el" -;;;;;; (17994 6715)) +;;;;;; (17842 56332)) ;;; Generated autoloads from progmodes/prolog.el (autoload (quote prolog-mode) "prolog" "\ @@ -21466,7 +21453,7 @@ With prefix argument \\[universal-prefix], prompt for the program to use. ;;;*** -;;;### (autoloads nil "ps-bdf" "ps-bdf.el" (17994 6715)) +;;;### (autoloads nil "ps-bdf" "ps-bdf.el" (17842 58279)) ;;; Generated autoloads from ps-bdf.el (defvar bdf-directory-list (if (memq system-type (quote (ms-dos windows-nt))) (list (expand-file-name "fonts/bdf" installation-directory)) (quote ("/usr/local/share/emacs/fonts/bdf"))) "\ @@ -21475,8 +21462,8 @@ The default value is '(\"/usr/local/share/emacs/fonts/bdf\").") ;;;*** -;;;### (autoloads (ps-mode) "ps-mode" "progmodes/ps-mode.el" (17994 -;;;;;; 6715)) +;;;### (autoloads (ps-mode) "ps-mode" "progmodes/ps-mode.el" (17842 +;;;;;; 56332)) ;;; Generated autoloads from progmodes/ps-mode.el (autoload (quote ps-mode) "ps-mode" "\ @@ -21525,7 +21512,7 @@ Typing \\<ps-run-mode-map>\\[ps-run-goto-error] when the cursor is at the number ;;;### (autoloads (ps-mule-begin-page ps-mule-begin-job ps-mule-encode-header-string ;;;;;; ps-mule-initialize ps-mule-plot-composition ps-mule-plot-string ;;;;;; ps-mule-set-ascii-font ps-mule-prepare-ascii-font ps-multibyte-buffer) -;;;;;; "ps-mule" "ps-mule.el" (17994 6715)) +;;;;;; "ps-mule" "ps-mule.el" (17842 58279)) ;;; Generated autoloads from ps-mule.el (defvar ps-multibyte-buffer nil "\ @@ -21646,8 +21633,8 @@ Not documented ;;;;;; ps-spool-region ps-spool-buffer-with-faces ps-spool-buffer ;;;;;; ps-print-region-with-faces ps-print-region ps-print-buffer-with-faces ;;;;;; ps-print-buffer ps-print-customize ps-print-color-p ps-paper-type -;;;;;; ps-page-dimensions-database) "ps-print" "ps-print.el" (18000 -;;;;;; 24245)) +;;;;;; ps-page-dimensions-database) "ps-print" "ps-print.el" (18006 +;;;;;; 55796)) ;;; Generated autoloads from ps-print.el (defvar ps-page-dimensions-database (list (list (quote a4) (/ (* 72 21.0) 2.54) (/ (* 72 29.7) 2.54) "A4") (list (quote a3) (/ (* 72 29.7) 2.54) (/ (* 72 42.0) 2.54) "A3") (list (quote letter) (* 72 8.5) (* 72 11.0) "Letter") (list (quote legal) (* 72 8.5) (* 72 14.0) "Legal") (list (quote letter-small) (* 72 7.68) (* 72 10.16) "LetterSmall") (list (quote tabloid) (* 72 11.0) (* 72 17.0) "Tabloid") (list (quote ledger) (* 72 17.0) (* 72 11.0) "Ledger") (list (quote statement) (* 72 5.5) (* 72 8.5) "Statement") (list (quote executive) (* 72 7.5) (* 72 10.0) "Executive") (list (quote a4small) (* 72 7.47) (* 72 10.85) "A4Small") (list (quote b4) (* 72 10.125) (* 72 14.33) "B4") (list (quote b5) (* 72 7.16) (* 72 10.125) "B5")) "\ @@ -21844,7 +21831,7 @@ If EXTENSION is any other symbol, it is ignored. ;;;*** ;;;### (autoloads (jython-mode python-mode run-python) "python" "progmodes/python.el" -;;;;;; (17994 6741)) +;;;;;; (17992 30878)) ;;; Generated autoloads from progmodes/python.el (add-to-list (quote interpreter-mode-alist) (quote ("jython" . jython-mode))) @@ -21919,7 +21906,7 @@ Runs `jython-mode-hook' after `python-mode-hook'. ;;;*** ;;;### (autoloads (quoted-printable-decode-region) "qp" "gnus/qp.el" -;;;;;; (17994 6715)) +;;;;;; (17842 54741)) ;;; Generated autoloads from gnus/qp.el (autoload (quote quoted-printable-decode-region) "qp" "\ @@ -21942,7 +21929,7 @@ them into characters should be done separately. ;;;;;; quail-defrule quail-install-decode-map quail-install-map ;;;;;; quail-define-rules quail-show-keyboard-layout quail-set-keyboard-layout ;;;;;; quail-define-package quail-use-package quail-title) "quail" -;;;;;; "international/quail.el" (17994 6715)) +;;;;;; "international/quail.el" (17921 16827)) ;;; Generated autoloads from international/quail.el (autoload (quote quail-title) "quail" "\ @@ -22173,8 +22160,8 @@ of each directory. ;;;### (autoloads (quickurl-list quickurl-list-mode quickurl-edit-urls ;;;;;; quickurl-browse-url-ask quickurl-browse-url quickurl-add-url -;;;;;; quickurl-ask quickurl) "quickurl" "net/quickurl.el" (17994 -;;;;;; 6715)) +;;;;;; quickurl-ask quickurl) "quickurl" "net/quickurl.el" (17842 +;;;;;; 55218)) ;;; Generated autoloads from net/quickurl.el (defconst quickurl-reread-hook-postfix "\n;; Local Variables:\n;; eval: (progn (require 'quickurl) (add-hook 'local-write-file-hooks (lambda () (quickurl-read) nil)))\n;; End:\n" "\ @@ -22246,7 +22233,7 @@ Display `quickurl-list' as a formatted list using `quickurl-list-mode'. ;;;*** ;;;### (autoloads (rcirc-track-minor-mode rcirc-connect rcirc) "rcirc" -;;;;;; "net/rcirc.el" (17994 6737)) +;;;;;; "net/rcirc.el" (18006 55797)) ;;; Generated autoloads from net/rcirc.el (autoload (quote rcirc) "rcirc" "\ @@ -22278,8 +22265,8 @@ Global minor mode for tracking activity in rcirc buffers. ;;;*** -;;;### (autoloads (remote-compile) "rcompile" "net/rcompile.el" (17994 -;;;;;; 6715)) +;;;### (autoloads (remote-compile) "rcompile" "net/rcompile.el" (17842 +;;;;;; 55218)) ;;; Generated autoloads from net/rcompile.el (autoload (quote remote-compile) "rcompile" "\ @@ -22291,7 +22278,7 @@ See \\[compile]. ;;;*** ;;;### (autoloads (re-builder) "re-builder" "emacs-lisp/re-builder.el" -;;;;;; (17994 6715)) +;;;;;; (17917 37732)) ;;; Generated autoloads from emacs-lisp/re-builder.el (defalias (quote regexp-builder) (quote re-builder)) @@ -22303,7 +22290,7 @@ Construct a regexp interactively. ;;;*** -;;;### (autoloads (recentf-mode) "recentf" "recentf.el" (17994 6715)) +;;;### (autoloads (recentf-mode) "recentf" "recentf.el" (17930 34071)) ;;; Generated autoloads from recentf.el (defvar recentf-mode nil "\ @@ -22330,8 +22317,8 @@ that were operated on recently. ;;;### (autoloads (clear-rectangle string-insert-rectangle string-rectangle ;;;;;; delete-whitespace-rectangle open-rectangle insert-rectangle ;;;;;; yank-rectangle kill-rectangle extract-rectangle delete-extract-rectangle -;;;;;; delete-rectangle move-to-column-force) "rect" "rect.el" (17994 -;;;;;; 6715)) +;;;;;; delete-rectangle move-to-column-force) "rect" "rect.el" (17842 +;;;;;; 58279)) ;;; Generated autoloads from rect.el (autoload (quote move-to-column-force) "rect" "\ @@ -22459,8 +22446,8 @@ rectangle which were empty. ;;;*** -;;;### (autoloads (refill-mode) "refill" "textmodes/refill.el" (17994 -;;;;;; 6715)) +;;;### (autoloads (refill-mode) "refill" "textmodes/refill.el" (17842 +;;;;;; 58277)) ;;; Generated autoloads from textmodes/refill.el (autoload (quote refill-mode) "refill" "\ @@ -22476,7 +22463,7 @@ refilling if they would cause auto-filling. ;;;*** ;;;### (autoloads (reftex-reset-scanning-information reftex-mode -;;;;;; turn-on-reftex) "reftex" "textmodes/reftex.el" (17994 6715)) +;;;;;; turn-on-reftex) "reftex" "textmodes/reftex.el" (17923 8784)) ;;; Generated autoloads from textmodes/reftex.el (autoload (quote turn-on-reftex) "reftex" "\ @@ -22526,7 +22513,7 @@ This enforces rescanning the buffer on next use. ;;;*** ;;;### (autoloads (reftex-citation) "reftex-cite" "textmodes/reftex-cite.el" -;;;;;; (17994 6715)) +;;;;;; (17923 8784)) ;;; Generated autoloads from textmodes/reftex-cite.el (autoload (quote reftex-citation) "reftex-cite" "\ @@ -22556,7 +22543,7 @@ While entering the regexp, completion on knows citation keys is possible. ;;;*** ;;;### (autoloads (reftex-isearch-minor-mode) "reftex-global" "textmodes/reftex-global.el" -;;;;;; (17994 6715)) +;;;;;; (17923 8784)) ;;; Generated autoloads from textmodes/reftex-global.el (autoload (quote reftex-isearch-minor-mode) "reftex-global" "\ @@ -22573,7 +22560,7 @@ With no argument, this command toggles ;;;*** ;;;### (autoloads (reftex-index-phrases-mode) "reftex-index" "textmodes/reftex-index.el" -;;;;;; (17994 6715)) +;;;;;; (17923 8784)) ;;; Generated autoloads from textmodes/reftex-index.el (autoload (quote reftex-index-phrases-mode) "reftex-index" "\ @@ -22606,7 +22593,7 @@ Here are all local bindings. ;;;*** ;;;### (autoloads (reftex-all-document-files) "reftex-parse" "textmodes/reftex-parse.el" -;;;;;; (17994 6715)) +;;;;;; (17923 8784)) ;;; Generated autoloads from textmodes/reftex-parse.el (autoload (quote reftex-all-document-files) "reftex-parse" "\ @@ -22618,8 +22605,8 @@ of master file. ;;;*** -;;;### (autoloads nil "reftex-vars" "textmodes/reftex-vars.el" (17994 -;;;;;; 6715)) +;;;### (autoloads nil "reftex-vars" "textmodes/reftex-vars.el" (17923 +;;;;;; 8784)) ;;; Generated autoloads from textmodes/reftex-vars.el (put 'reftex-vref-is-default 'safe-local-variable (lambda (x) (or (stringp x) (symbolp x)))) (put 'reftex-fref-is-default 'safe-local-variable (lambda (x) (or (stringp x) (symbolp x)))) @@ -22629,7 +22616,7 @@ of master file. ;;;*** ;;;### (autoloads (regexp-opt-depth regexp-opt) "regexp-opt" "emacs-lisp/regexp-opt.el" -;;;;;; (17994 6715)) +;;;;;; (17842 54152)) ;;; Generated autoloads from emacs-lisp/regexp-opt.el (autoload (quote regexp-opt) "regexp-opt" "\ @@ -22656,7 +22643,7 @@ This means the number of non-shy regexp grouping constructs ;;;*** -;;;### (autoloads (repeat) "repeat" "repeat.el" (17994 6715)) +;;;### (autoloads (repeat) "repeat" "repeat.el" (17842 58279)) ;;; Generated autoloads from repeat.el (autoload (quote repeat) "repeat" "\ @@ -22674,7 +22661,7 @@ can be modified by the global variable `repeat-on-final-keystroke'. ;;;*** ;;;### (autoloads (reporter-submit-bug-report) "reporter" "mail/reporter.el" -;;;;;; (17994 6715)) +;;;;;; (17842 55035)) ;;; Generated autoloads from mail/reporter.el (autoload (quote reporter-submit-bug-report) "reporter" "\ @@ -22706,7 +22693,7 @@ mail-sending package is used for editing and sending the message. ;;;*** ;;;### (autoloads (reposition-window) "reposition" "reposition.el" -;;;;;; (17994 6715)) +;;;;;; (17842 58279)) ;;; Generated autoloads from reposition.el (autoload (quote reposition-window) "reposition" "\ @@ -22733,8 +22720,8 @@ first comment line visible (if point is in a comment). ;;;*** -;;;### (autoloads (resume-suspend-hook) "resume" "resume.el" (17994 -;;;;;; 6715)) +;;;### (autoloads (resume-suspend-hook) "resume" "resume.el" (17842 +;;;;;; 58279)) ;;; Generated autoloads from resume.el (autoload (quote resume-suspend-hook) "resume" "\ @@ -22745,7 +22732,7 @@ Clear out the file used for transmitting args when Emacs resumes. ;;;*** ;;;### (autoloads (global-reveal-mode reveal-mode) "reveal" "reveal.el" -;;;;;; (17994 6715)) +;;;;;; (17842 58279)) ;;; Generated autoloads from reveal.el (autoload (quote reveal-mode) "reveal" "\ @@ -22780,7 +22767,7 @@ With zero or negative ARG turn mode off. ;;;*** ;;;### (autoloads (make-ring ring-p) "ring" "emacs-lisp/ring.el" -;;;;;; (17994 6715)) +;;;;;; (17842 54152)) ;;; Generated autoloads from emacs-lisp/ring.el (autoload (quote ring-p) "ring" "\ @@ -22795,7 +22782,7 @@ Make a ring that can contain SIZE elements. ;;;*** -;;;### (autoloads (rlogin) "rlogin" "net/rlogin.el" (17994 6715)) +;;;### (autoloads (rlogin) "rlogin" "net/rlogin.el" (17842 55218)) ;;; Generated autoloads from net/rlogin.el (add-hook 'same-window-regexps "^\\*rlogin-.*\\*\\(\\|<[0-9]+>\\)") @@ -22846,8 +22833,8 @@ variable. ;;;;;; rmail-mail-new-frame rmail-primary-inbox-list rmail-delete-after-output ;;;;;; rmail-highlight-face rmail-highlighted-headers rmail-retry-ignored-headers ;;;;;; rmail-displayed-headers rmail-ignored-headers rmail-dont-reply-to-names -;;;;;; rmail-movemail-variant-p) "rmail" "mail/rmail.el" (18000 -;;;;;; 24323)) +;;;;;; rmail-movemail-variant-p) "rmail" "mail/rmail.el" (18006 +;;;;;; 55797)) ;;; Generated autoloads from mail/rmail.el (autoload (quote rmail-movemail-variant-p) "rmail" "\ @@ -23112,7 +23099,7 @@ Set PASSWORD to be used for retrieving mail from a POP or IMAP server. ;;;*** ;;;### (autoloads (rmail-edit-current-message) "rmailedit" "mail/rmailedit.el" -;;;;;; (17994 6715)) +;;;;;; (17887 18399)) ;;; Generated autoloads from mail/rmailedit.el (autoload (quote rmail-edit-current-message) "rmailedit" "\ @@ -23124,7 +23111,7 @@ Edit the contents of this message. ;;;### (autoloads (rmail-next-labeled-message rmail-previous-labeled-message ;;;;;; rmail-read-label rmail-kill-label rmail-add-label) "rmailkwd" -;;;;;; "mail/rmailkwd.el" (17994 6715)) +;;;;;; "mail/rmailkwd.el" (17842 55035)) ;;; Generated autoloads from mail/rmailkwd.el (autoload (quote rmail-add-label) "rmailkwd" "\ @@ -23163,7 +23150,7 @@ With prefix argument N moves forward N messages with these labels. ;;;*** ;;;### (autoloads (set-rmail-inbox-list) "rmailmsc" "mail/rmailmsc.el" -;;;;;; (17994 6715)) +;;;;;; (17842 55035)) ;;; Generated autoloads from mail/rmailmsc.el (autoload (quote set-rmail-inbox-list) "rmailmsc" "\ @@ -23177,7 +23164,7 @@ If FILE-NAME is empty, remove any existing inbox list. ;;;### (autoloads (rmail-output-body-to-file rmail-output rmail-fields-not-to-output ;;;;;; rmail-output-to-rmail-file rmail-output-file-alist) "rmailout" -;;;;;; "mail/rmailout.el" (17994 6715)) +;;;;;; "mail/rmailout.el" (17842 55035)) ;;; Generated autoloads from mail/rmailout.el (defvar rmail-output-file-alist nil "\ @@ -23244,8 +23231,8 @@ FILE-NAME defaults, interactively, from the Subject field of the message. ;;;### (autoloads (rmail-sort-by-labels rmail-sort-by-lines rmail-sort-by-correspondent ;;;;;; rmail-sort-by-recipient rmail-sort-by-author rmail-sort-by-subject -;;;;;; rmail-sort-by-date) "rmailsort" "mail/rmailsort.el" (17994 -;;;;;; 6715)) +;;;;;; rmail-sort-by-date) "rmailsort" "mail/rmailsort.el" (17842 +;;;;;; 55035)) ;;; Generated autoloads from mail/rmailsort.el (autoload (quote rmail-sort-by-date) "rmailsort" "\ @@ -23297,7 +23284,7 @@ KEYWORDS is a comma-separated list of labels. ;;;;;; rmail-summary-by-senders rmail-summary-by-topic rmail-summary-by-regexp ;;;;;; rmail-summary-by-recipients rmail-summary-by-labels rmail-summary ;;;;;; rmail-summary-line-count-flag rmail-summary-scroll-between-messages) -;;;;;; "rmailsum" "mail/rmailsum.el" (17994 6715)) +;;;;;; "rmailsum" "mail/rmailsum.el" (17842 55035)) ;;; Generated autoloads from mail/rmailsum.el (defvar rmail-summary-scroll-between-messages t "\ @@ -23392,7 +23379,7 @@ If NOQUERY is non-nil, we do not query before doing the work. ;;;*** ;;;### (autoloads (toggle-rot13-mode rot13-other-window rot13-region -;;;;;; rot13-string rot13) "rot13" "rot13.el" (17994 6715)) +;;;;;; rot13-string rot13) "rot13" "rot13.el" (17842 58279)) ;;; Generated autoloads from rot13.el (autoload (quote rot13) "rot13" "\ @@ -23429,52 +23416,8 @@ Toggle the use of ROT13 encoding for the current window. ;;;*** -;;;### (autoloads (resize-minibuffer-mode resize-minibuffer-frame-exactly -;;;;;; resize-minibuffer-frame-max-height resize-minibuffer-frame -;;;;;; resize-minibuffer-window-exactly resize-minibuffer-window-max-height -;;;;;; resize-minibuffer-mode) "rsz-mini" "obsolete/rsz-mini.el" -;;;;;; (17994 6715)) -;;; Generated autoloads from obsolete/rsz-mini.el - -(defvar resize-minibuffer-mode nil "\ -*This variable is obsolete.") - -(custom-autoload (quote resize-minibuffer-mode) "rsz-mini" t) - -(defvar resize-minibuffer-window-max-height nil "\ -*This variable is obsolete.") - -(custom-autoload (quote resize-minibuffer-window-max-height) "rsz-mini" t) - -(defvar resize-minibuffer-window-exactly t "\ -*This variable is obsolete.") - -(custom-autoload (quote resize-minibuffer-window-exactly) "rsz-mini" t) - -(defvar resize-minibuffer-frame nil "\ -*This variable is obsolete.") - -(custom-autoload (quote resize-minibuffer-frame) "rsz-mini" t) - -(defvar resize-minibuffer-frame-max-height nil "\ -*This variable is obsolete.") - -(custom-autoload (quote resize-minibuffer-frame-max-height) "rsz-mini" t) - -(defvar resize-minibuffer-frame-exactly t "\ -*This variable is obsolete.") - -(custom-autoload (quote resize-minibuffer-frame-exactly) "rsz-mini" t) - -(autoload (quote resize-minibuffer-mode) "rsz-mini" "\ -This function is obsolete. - -\(fn &optional PREFIX)" t nil) - -;;;*** - -;;;### (autoloads (ruler-mode) "ruler-mode" "ruler-mode.el" (17994 -;;;;;; 6715)) +;;;### (autoloads (ruler-mode) "ruler-mode" "ruler-mode.el" (17833 +;;;;;; 43069)) ;;; Generated autoloads from ruler-mode.el (autoload (quote ruler-mode) "ruler-mode" "\ @@ -23484,8 +23427,8 @@ Display a ruler in the header line if ARG > 0. ;;;*** -;;;### (autoloads (rx rx-to-string) "rx" "emacs-lisp/rx.el" (17994 -;;;;;; 6715)) +;;;### (autoloads (rx rx-to-string) "rx" "emacs-lisp/rx.el" (18011 +;;;;;; 44080)) ;;; Generated autoloads from emacs-lisp/rx.el (autoload (quote rx-to-string) "rx" "\ @@ -23557,8 +23500,7 @@ CHAR matches the empty string, but only at point. `word-start', `bow' - matches the empty string, but only at the beginning or end of a - word. + matches the empty string, but only at the beginning of a word. `word-end', `eow' matches the empty string, but only at the end of a word. @@ -23572,6 +23514,12 @@ CHAR matches the empty string, but not at the beginning or end of a word. +`symbol-start' + matches the empty string, but only at the beginning of a symbol. + +`symbol-end' + matches the empty string, but only at the end of a symbol. + `digit', `numeric', `num' matches 0 through 9. @@ -23793,7 +23741,7 @@ enclosed in `(and ...)'. ;;;*** ;;;### (autoloads (savehist-mode savehist-mode) "savehist" "savehist.el" -;;;;;; (17994 6715)) +;;;;;; (17842 58279)) ;;; Generated autoloads from savehist.el (defvar savehist-mode nil "\ @@ -23819,7 +23767,7 @@ which is probably undesirable. ;;;*** ;;;### (autoloads (dsssl-mode scheme-mode) "scheme" "progmodes/scheme.el" -;;;;;; (17994 6715)) +;;;;;; (17842 56332)) ;;; Generated autoloads from progmodes/scheme.el (autoload (quote scheme-mode) "scheme" "\ @@ -23861,7 +23809,7 @@ that variable's value is a string. ;;;*** ;;;### (autoloads (gnus-score-mode) "score-mode" "gnus/score-mode.el" -;;;;;; (17994 6715)) +;;;;;; (17842 54741)) ;;; Generated autoloads from gnus/score-mode.el (autoload (quote gnus-score-mode) "score-mode" "\ @@ -23900,7 +23848,7 @@ Interesting variables: ;;;*** ;;;### (autoloads (scroll-all-mode) "scroll-all" "scroll-all.el" -;;;;;; (17994 6715)) +;;;;;; (17842 58278)) ;;; Generated autoloads from scroll-all.el (defvar scroll-all-mode nil "\ @@ -23923,7 +23871,7 @@ apply to all visible windows in the same frame. ;;;*** ;;;### (autoloads (scroll-lock-mode) "scroll-lock" "scroll-lock.el" -;;;;;; (17994 6715)) +;;;;;; (17842 58278)) ;;; Generated autoloads from scroll-lock.el (autoload (quote scroll-lock-mode) "scroll-lock" "\ @@ -23945,7 +23893,7 @@ during scrolling. ;;;;;; mail-alias-file mail-default-reply-to mail-archive-file-name ;;;;;; mail-header-separator send-mail-function mail-interactive ;;;;;; mail-self-blind mail-specify-envelope-from mail-from-style) -;;;;;; "sendmail" "mail/sendmail.el" (17994 6715)) +;;;;;; "sendmail" "mail/sendmail.el" (17942 63381)) ;;; Generated autoloads from mail/sendmail.el (defvar mail-from-style (quote angles) "\ @@ -24245,8 +24193,8 @@ Like `mail' command, but display mail buffer in another frame. ;;;*** -;;;### (autoloads (server-save-buffers-kill-terminal server-mode -;;;;;; server-start) "server" "server.el" (18000 23796)) +;;;### (autoloads (server-mode server-start) "server" "server.el" +;;;;;; (17921 16827)) ;;; Generated autoloads from server.el (autoload (quote server-start) "server" "\ @@ -24290,7 +24238,7 @@ only these files will be asked to be saved. ;;;*** -;;;### (autoloads (ses-mode) "ses" "ses.el" (17994 6715)) +;;;### (autoloads (ses-mode) "ses" "ses.el" (17902 31690)) ;;; Generated autoloads from ses.el (autoload (quote ses-mode) "ses" "\ @@ -24309,7 +24257,7 @@ These are active only in the minibuffer, when entering or editing a formula: ;;;*** ;;;### (autoloads (html-mode sgml-mode) "sgml-mode" "textmodes/sgml-mode.el" -;;;;;; (18000 24371)) +;;;;;; (18010 58080)) ;;; Generated autoloads from textmodes/sgml-mode.el (autoload (quote sgml-mode) "sgml-mode" "\ @@ -24377,7 +24325,7 @@ To work around that, do: ;;;*** ;;;### (autoloads (sh-mode) "sh-script" "progmodes/sh-script.el" -;;;;;; (17994 6728)) +;;;;;; (17992 30878)) ;;; Generated autoloads from progmodes/sh-script.el (put 'sh-shell 'safe-local-variable 'symbolp) @@ -24441,7 +24389,7 @@ with your script for an edit-interpret-debug cycle. ;;;*** -;;;### (autoloads (sha1) "sha1" "gnus/sha1.el" (17994 6715)) +;;;### (autoloads (sha1) "sha1" "gnus/sha1.el" (17842 54741)) ;;; Generated autoloads from gnus/sha1.el (autoload (quote sha1) "sha1" "\ @@ -24456,7 +24404,7 @@ If BINARY is non-nil, return a string in binary form. ;;;*** ;;;### (autoloads (list-load-path-shadows) "shadow" "emacs-lisp/shadow.el" -;;;;;; (17994 6715)) +;;;;;; (17853 57352)) ;;; Generated autoloads from emacs-lisp/shadow.el (autoload (quote list-load-path-shadows) "shadow" "\ @@ -24503,8 +24451,8 @@ buffer called `*Shadows*'. Shadowings are located by calling the ;;;*** ;;;### (autoloads (shadow-initialize shadow-define-regexp-group shadow-define-literal-group -;;;;;; shadow-define-cluster) "shadowfile" "shadowfile.el" (17994 -;;;;;; 6715)) +;;;;;; shadow-define-cluster) "shadowfile" "shadowfile.el" (17842 +;;;;;; 58278)) ;;; Generated autoloads from shadowfile.el (autoload (quote shadow-define-cluster) "shadowfile" "\ @@ -24543,7 +24491,7 @@ Set up file shadowing. ;;;*** ;;;### (autoloads (shell shell-dumb-shell-regexp) "shell" "shell.el" -;;;;;; (17994 6715)) +;;;;;; (17899 1575)) ;;; Generated autoloads from shell.el (defvar shell-dumb-shell-regexp "cmd\\(proxy\\)?\\.exe" "\ @@ -24590,7 +24538,7 @@ Otherwise, one argument `-i' is passed to the shell. ;;;*** ;;;### (autoloads (sieve-upload-and-bury sieve-upload sieve-manage) -;;;;;; "sieve" "gnus/sieve.el" (17994 6715)) +;;;;;; "sieve" "gnus/sieve.el" (17842 54741)) ;;; Generated autoloads from gnus/sieve.el (autoload (quote sieve-manage) "sieve" "\ @@ -24611,7 +24559,7 @@ Not documented ;;;*** ;;;### (autoloads (sieve-mode) "sieve-mode" "gnus/sieve-mode.el" -;;;;;; (17994 6715)) +;;;;;; (17842 54741)) ;;; Generated autoloads from gnus/sieve-mode.el (autoload (quote sieve-mode) "sieve-mode" "\ @@ -24626,14 +24574,14 @@ Turning on Sieve mode runs `sieve-mode-hook'. ;;;*** -;;;### (autoloads nil "simple" "simple.el" (18000 24377)) +;;;### (autoloads nil "simple" "simple.el" (18009 38727)) ;;; Generated autoloads from simple.el (put 'fill-prefix 'safe-local-variable 'string-or-null-p) ;;;*** -;;;### (autoloads (simula-mode) "simula" "progmodes/simula.el" (17994 -;;;;;; 6715)) +;;;### (autoloads (simula-mode) "simula" "progmodes/simula.el" (17842 +;;;;;; 56332)) ;;; Generated autoloads from progmodes/simula.el (autoload (quote simula-mode) "simula" "\ @@ -24682,7 +24630,7 @@ with no arguments, if that value is non-nil. ;;;*** ;;;### (autoloads (skeleton-pair-insert-maybe skeleton-insert skeleton-proxy-new -;;;;;; define-skeleton) "skeleton" "skeleton.el" (17994 6715)) +;;;;;; define-skeleton) "skeleton" "skeleton.el" (17842 58278)) ;;; Generated autoloads from skeleton.el (defvar skeleton-filter-function (quote identity) "\ @@ -24792,7 +24740,7 @@ symmetrical ones, and the same character twice for the others. ;;;*** ;;;### (autoloads (smerge-mode smerge-ediff) "smerge-mode" "smerge-mode.el" -;;;;;; (17994 6715)) +;;;;;; (17904 28230)) ;;; Generated autoloads from smerge-mode.el (autoload (quote smerge-ediff) "smerge-mode" "\ @@ -24811,7 +24759,7 @@ Minor mode to simplify editing output from the diff3 program. ;;;*** ;;;### (autoloads (smiley-buffer smiley-region) "smiley" "gnus/smiley.el" -;;;;;; (17994 6715)) +;;;;;; (17875 18370)) ;;; Generated autoloads from gnus/smiley.el (autoload (quote smiley-region) "smiley" "\ @@ -24829,7 +24777,7 @@ interactively. If there's no argument, do it at the current buffer ;;;*** ;;;### (autoloads (smtpmail-send-queued-mail smtpmail-send-it) "smtpmail" -;;;;;; "mail/smtpmail.el" (17994 6715)) +;;;;;; "mail/smtpmail.el" (17939 50716)) ;;; Generated autoloads from mail/smtpmail.el (autoload (quote smtpmail-send-it) "smtpmail" "\ @@ -24844,7 +24792,7 @@ Send mail that was queued as a result of setting `smtpmail-queue-mail'. ;;;*** -;;;### (autoloads (snake) "snake" "play/snake.el" (17994 6715)) +;;;### (autoloads (snake) "snake" "play/snake.el" (17842 55395)) ;;; Generated autoloads from play/snake.el (autoload (quote snake) "snake" "\ @@ -24868,7 +24816,7 @@ Snake mode keybindings: ;;;*** ;;;### (autoloads (snmpv2-mode snmp-mode) "snmp-mode" "net/snmp-mode.el" -;;;;;; (17994 6715)) +;;;;;; (17842 55218)) ;;; Generated autoloads from net/snmp-mode.el (autoload (quote snmp-mode) "snmp-mode" "\ @@ -24899,7 +24847,7 @@ then `snmpv2-mode-hook'. ;;;### (autoloads (solar-equinoxes-solstices sunrise-sunset calendar-location-name ;;;;;; calendar-longitude calendar-latitude calendar-time-display-form) -;;;;;; "solar" "calendar/solar.el" (17994 6715)) +;;;;;; "solar" "calendar/solar.el" (17956 13479)) ;;; Generated autoloads from calendar/solar.el (defvar calendar-time-display-form (quote (12-hours ":" minutes am-pm (if time-zone " (") time-zone (if time-zone ")"))) "\ @@ -24970,8 +24918,8 @@ Requires floating point. ;;;*** -;;;### (autoloads (solitaire) "solitaire" "play/solitaire.el" (17994 -;;;;;; 6715)) +;;;### (autoloads (solitaire) "solitaire" "play/solitaire.el" (17842 +;;;;;; 55395)) ;;; Generated autoloads from play/solitaire.el (autoload (quote solitaire) "solitaire" "\ @@ -25048,7 +24996,7 @@ Pick your favourite shortcuts: ;;;### (autoloads (reverse-region sort-columns sort-regexp-fields ;;;;;; sort-fields sort-numeric-fields sort-pages sort-paragraphs -;;;;;; sort-lines sort-subr) "sort" "sort.el" (17994 6715)) +;;;;;; sort-lines sort-subr) "sort" "sort.el" (17842 58278)) ;;; Generated autoloads from sort.el (autoload (quote sort-subr) "sort" "\ @@ -25190,8 +25138,8 @@ From a program takes two point or marker arguments, BEG and END. ;;;*** -;;;### (autoloads (spam-initialize) "spam" "gnus/spam.el" (17994 -;;;;;; 6715)) +;;;### (autoloads (spam-initialize) "spam" "gnus/spam.el" (17842 +;;;;;; 54741)) ;;; Generated autoloads from gnus/spam.el (autoload (quote spam-initialize) "spam" "\ @@ -25203,7 +25151,7 @@ Install the spam.el hooks and do other initialization ;;;### (autoloads (spam-report-deagentize spam-report-agentize spam-report-url-to-file ;;;;;; spam-report-url-ping-mm-url spam-report-process-queue) "spam-report" -;;;;;; "gnus/spam-report.el" (17994 6715)) +;;;;;; "gnus/spam-report.el" (17842 54741)) ;;; Generated autoloads from gnus/spam-report.el (autoload (quote spam-report-process-queue) "spam-report" "\ @@ -25246,7 +25194,7 @@ Spam reports will be queued with the method used when ;;;*** ;;;### (autoloads (speedbar-get-focus speedbar-frame-mode) "speedbar" -;;;;;; "speedbar.el" (17994 6715)) +;;;;;; "speedbar.el" (17881 43027)) ;;; Generated autoloads from speedbar.el (defalias (quote speedbar) (quote speedbar-frame-mode)) @@ -25271,7 +25219,7 @@ selected. If the speedbar frame is active, then select the attached frame. ;;;*** ;;;### (autoloads (spell-string spell-region spell-word spell-buffer) -;;;;;; "spell" "textmodes/spell.el" (17994 6715)) +;;;;;; "spell" "textmodes/spell.el" (17842 58276)) ;;; Generated autoloads from textmodes/spell.el (put (quote spell-filter) (quote risky-local-variable) t) @@ -25307,8 +25255,8 @@ Check spelling of string supplied as argument. ;;;*** -;;;### (autoloads (snarf-spooks spook) "spook" "play/spook.el" (17994 -;;;;;; 6715)) +;;;### (autoloads (snarf-spooks spook) "spook" "play/spook.el" (17842 +;;;;;; 55395)) ;;; Generated autoloads from play/spook.el (autoload (quote spook) "spook" "\ @@ -25326,8 +25274,8 @@ Return a vector containing the lines from `spook-phrases-file'. ;;;### (autoloads (sql-linter sql-db2 sql-interbase sql-postgres ;;;;;; sql-ms sql-ingres sql-solid sql-mysql sql-sqlite sql-informix ;;;;;; sql-sybase sql-oracle sql-product-interactive sql-mode sql-help -;;;;;; sql-add-product-keywords) "sql" "progmodes/sql.el" (17994 -;;;;;; 6715)) +;;;;;; sql-add-product-keywords) "sql" "progmodes/sql.el" (17842 +;;;;;; 56332)) ;;; Generated autoloads from progmodes/sql.el (autoload (quote sql-add-product-keywords) "sql" "\ @@ -25758,8 +25706,8 @@ input. See `sql-interactive-mode'. ;;;;;; strokes-mode strokes-list-strokes strokes-load-user-strokes ;;;;;; strokes-help strokes-describe-stroke strokes-do-complex-stroke ;;;;;; strokes-do-stroke strokes-read-complex-stroke strokes-read-stroke -;;;;;; strokes-global-set-stroke) "strokes" "strokes.el" (17994 -;;;;;; 6715)) +;;;;;; strokes-global-set-stroke) "strokes" "strokes.el" (17842 +;;;;;; 58278)) ;;; Generated autoloads from strokes.el (autoload (quote strokes-global-set-stroke) "strokes" "\ @@ -25889,7 +25837,7 @@ Studlify-case the current buffer. ;;;*** -;;;### (autoloads (locate-library) "subr" "subr.el" (17994 6751)) +;;;### (autoloads (locate-library) "subr" "subr.el" (17964 48351)) ;;; Generated autoloads from subr.el (autoload (quote locate-library) "subr" "\ @@ -25911,7 +25859,7 @@ and the file name is displayed in the echo area. ;;;*** ;;;### (autoloads (sc-cite-original) "supercite" "mail/supercite.el" -;;;;;; (17994 6715)) +;;;;;; (17854 7564)) ;;; Generated autoloads from mail/supercite.el (autoload (quote sc-cite-original) "supercite" "\ @@ -25943,7 +25891,7 @@ before, and `sc-post-hook' is run after the guts of this function. ;;;*** -;;;### (autoloads (t-mouse-mode) "t-mouse" "t-mouse.el" (18000 28945)) +;;;### (autoloads (t-mouse-mode) "t-mouse" "t-mouse.el" (18006 55796)) ;;; Generated autoloads from t-mouse.el (defvar t-mouse-mode nil "\ @@ -25967,7 +25915,7 @@ It requires the `mev' program, part of the `gpm' utilities. ;;;*** -;;;### (autoloads (tabify untabify) "tabify" "tabify.el" (17994 6715)) +;;;### (autoloads (tabify untabify) "tabify" "tabify.el" (17842 58278)) ;;; Generated autoloads from tabify.el (autoload (quote untabify) "tabify" "\ @@ -26002,7 +25950,7 @@ The variable `tab-width' controls the spacing of tab stops. ;;;;;; table-recognize table-insert-row-column table-insert-column ;;;;;; table-insert-row table-insert table-point-left-cell-hook ;;;;;; table-point-entered-cell-hook table-load-hook table-cell-map-hook) -;;;;;; "table" "textmodes/table.el" (17994 6716)) +;;;;;; "table" "textmodes/table.el" (18012 17784)) ;;; Generated autoloads from textmodes/table.el (defvar table-cell-map-hook nil "\ @@ -26590,7 +26538,7 @@ converts a table into plain text without frames. It is a companion to ;;;*** -;;;### (autoloads (talk talk-connect) "talk" "talk.el" (17994 6751)) +;;;### (autoloads (talk-connect) "talk" "talk.el" (17842 58278)) ;;; Generated autoloads from talk.el (autoload (quote talk-connect) "talk" "\ @@ -26605,7 +26553,7 @@ Connect to the Emacs talk group from the current X display or tty frame. ;;;*** -;;;### (autoloads (tar-mode) "tar-mode" "tar-mode.el" (17994 6715)) +;;;### (autoloads (tar-mode) "tar-mode" "tar-mode.el" (18010 5426)) ;;; Generated autoloads from tar-mode.el (autoload (quote tar-mode) "tar-mode" "\ @@ -26629,7 +26577,7 @@ See also: variables `tar-update-datestamp' and `tar-anal-blocksize'. ;;;*** ;;;### (autoloads (tcl-help-on-word inferior-tcl tcl-mode) "tcl" -;;;;;; "progmodes/tcl.el" (17994 6715)) +;;;;;; "progmodes/tcl.el" (17842 56332)) ;;; Generated autoloads from progmodes/tcl.el (autoload (quote tcl-mode) "tcl" "\ @@ -26680,7 +26628,7 @@ Prefix argument means invert sense of `tcl-use-smart-word-finder'. ;;;*** -;;;### (autoloads (rsh telnet) "telnet" "net/telnet.el" (17994 6715)) +;;;### (autoloads (rsh telnet) "telnet" "net/telnet.el" (17842 55218)) ;;; Generated autoloads from net/telnet.el (add-hook 'same-window-regexps "\\*telnet-.*\\*\\(\\|<[0-9]+>\\)") @@ -26707,8 +26655,8 @@ Normally input is edited in Emacs and sent a line at a time. ;;;*** -;;;### (autoloads (ansi-term term make-term) "term" "term.el" (17994 -;;;;;; 6715)) +;;;### (autoloads (ansi-term term make-term) "term" "term.el" (17952 +;;;;;; 11093)) ;;; Generated autoloads from term.el (autoload (quote make-term) "term" "\ @@ -26736,8 +26684,8 @@ Start a terminal-emulator in a new buffer. ;;;*** -;;;### (autoloads (terminal-emulator) "terminal" "terminal.el" (17994 -;;;;;; 6715)) +;;;### (autoloads (terminal-emulator) "terminal" "terminal.el" (17842 +;;;;;; 58278)) ;;; Generated autoloads from terminal.el (autoload (quote terminal-emulator) "terminal" "\ @@ -26774,7 +26722,7 @@ subprocess started. ;;;*** ;;;### (autoloads (testcover-this-defun) "testcover" "emacs-lisp/testcover.el" -;;;;;; (17994 6715)) +;;;;;; (17925 52793)) ;;; Generated autoloads from emacs-lisp/testcover.el (autoload (quote testcover-this-defun) "testcover" "\ @@ -26784,7 +26732,7 @@ Start coverage on function under point. ;;;*** -;;;### (autoloads (tetris) "tetris" "play/tetris.el" (17994 6715)) +;;;### (autoloads (tetris) "tetris" "play/tetris.el" (17941 38806)) ;;; Generated autoloads from play/tetris.el (autoload (quote tetris) "tetris" "\ @@ -26815,7 +26763,7 @@ tetris-mode keybindings: ;;;;;; tex-start-commands tex-start-options slitex-run-command latex-run-command ;;;;;; tex-run-command tex-offer-save tex-main-file tex-first-line-header-regexp ;;;;;; tex-directory tex-shell-file-name) "tex-mode" "textmodes/tex-mode.el" -;;;;;; (17994 6743)) +;;;;;; (17992 30878)) ;;; Generated autoloads from textmodes/tex-mode.el (defvar tex-shell-file-name nil "\ @@ -27117,7 +27065,7 @@ Major mode to edit DocTeX files. ;;;*** ;;;### (autoloads (texi2info texinfo-format-region texinfo-format-buffer) -;;;;;; "texinfmt" "textmodes/texinfmt.el" (17994 6716)) +;;;;;; "texinfmt" "textmodes/texinfmt.el" (17842 58276)) ;;; Generated autoloads from textmodes/texinfmt.el (autoload (quote texinfo-format-buffer) "texinfmt" "\ @@ -27157,7 +27105,7 @@ if large. You can use Info-split to do this manually. ;;;*** ;;;### (autoloads (texinfo-mode texinfo-close-quote texinfo-open-quote) -;;;;;; "texinfo" "textmodes/texinfo.el" (17994 6716)) +;;;;;; "texinfo" "textmodes/texinfo.el" (17842 58276)) ;;; Generated autoloads from textmodes/texinfo.el (defvar texinfo-open-quote "``" "\ @@ -27244,7 +27192,7 @@ value of `texinfo-mode-hook'. ;;;### (autoloads (thai-auto-composition-mode thai-composition-function ;;;;;; thai-post-read-conversion thai-compose-buffer thai-compose-string ;;;;;; thai-compose-region) "thai-util" "language/thai-util.el" -;;;;;; (17994 6715)) +;;;;;; (17842 58278)) ;;; Generated autoloads from language/thai-util.el (autoload (quote thai-compose-region) "thai-util" "\ @@ -27288,7 +27236,7 @@ Minor mode for automatically correct Thai character composition. ;;;### (autoloads (list-at-point number-at-point symbol-at-point ;;;;;; sexp-at-point thing-at-point bounds-of-thing-at-point forward-thing) -;;;;;; "thingatpt" "thingatpt.el" (17994 6716)) +;;;;;; "thingatpt" "thingatpt.el" (17842 58278)) ;;; Generated autoloads from thingatpt.el (autoload (quote forward-thing) "thingatpt" "\ @@ -27345,7 +27293,7 @@ Not documented ;;;### (autoloads (thumbs-dired-setroot thumbs-dired-show thumbs-dired-show-marked ;;;;;; thumbs-show-from-dir thumbs-find-thumb) "thumbs" "thumbs.el" -;;;;;; (17994 6716)) +;;;;;; (17963 26308)) ;;; Generated autoloads from thumbs.el (autoload (quote thumbs-find-thumb) "thumbs" "\ @@ -27384,7 +27332,7 @@ In dired, call the setroot program on the image at point. ;;;;;; tibetan-composition-function tibetan-decompose-string tibetan-decompose-region ;;;;;; tibetan-compose-region tibetan-compose-string tibetan-transcription-to-tibetan ;;;;;; tibetan-tibetan-to-transcription tibetan-char-p) "tibet-util" -;;;;;; "language/tibet-util.el" (17994 6715)) +;;;;;; "language/tibet-util.el" (17842 58278)) ;;; Generated autoloads from language/tibet-util.el (autoload (quote tibetan-char-p) "tibet-util" "\ @@ -27463,7 +27411,7 @@ Not documented ;;;*** ;;;### (autoloads (tildify-buffer tildify-region) "tildify" "textmodes/tildify.el" -;;;;;; (17994 6716)) +;;;;;; (17842 58276)) ;;; Generated autoloads from textmodes/tildify.el (autoload (quote tildify-region) "tildify" "\ @@ -27487,7 +27435,7 @@ This function performs no refilling of the changed text. ;;;*** ;;;### (autoloads (display-time-mode display-time display-time-day-and-date) -;;;;;; "time" "time.el" (18000 24333)) +;;;;;; "time" "time.el" (18006 55796)) ;;; Generated autoloads from time.el (defvar display-time-day-and-date nil "\ @@ -27529,8 +27477,8 @@ This runs the normal hook `display-time-hook' after each update. ;;;### (autoloads (safe-date-to-time time-to-days time-to-day-in-year ;;;;;; date-leap-year-p days-between date-to-day time-add time-subtract ;;;;;; time-since days-to-time time-less-p seconds-to-time time-to-seconds -;;;;;; date-to-time) "time-date" "calendar/time-date.el" (17994 -;;;;;; 6715)) +;;;;;; date-to-time) "time-date" "calendar/time-date.el" (17842 +;;;;;; 53792)) ;;; Generated autoloads from calendar/time-date.el (autoload (quote date-to-time) "time-date" "\ @@ -27616,7 +27564,7 @@ If DATE is malformed, return a time value of zeros. ;;;*** ;;;### (autoloads (time-stamp-toggle-active time-stamp) "time-stamp" -;;;;;; "time-stamp.el" (17994 6716)) +;;;;;; "time-stamp.el" (17842 58278)) ;;; Generated autoloads from time-stamp.el (put 'time-stamp-format 'safe-local-variable 'stringp) (put 'time-stamp-line-limit 'safe-local-variable 'integerp) @@ -27659,7 +27607,7 @@ With ARG, turn time stamping on if and only if arg is positive. ;;;;;; timeclock-workday-remaining-string timeclock-reread-log timeclock-query-out ;;;;;; timeclock-change timeclock-status-string timeclock-out timeclock-in ;;;;;; timeclock-modeline-display) "timeclock" "calendar/timeclock.el" -;;;;;; (17994 6731)) +;;;;;; (17992 30878)) ;;; Generated autoloads from calendar/timeclock.el (autoload (quote timeclock-modeline-display) "timeclock" "\ @@ -27760,7 +27708,7 @@ relative only to the time worked today, and not to past time. ;;;### (autoloads (with-timeout run-with-idle-timer add-timeout run-with-timer ;;;;;; run-at-time cancel-function-timers cancel-timer) "timer" -;;;;;; "emacs-lisp/timer.el" (17994 6715)) +;;;;;; "emacs-lisp/timer.el" (17935 13348)) ;;; Generated autoloads from emacs-lisp/timer.el (defalias (quote disable-timeout) (quote cancel-timer)) @@ -27841,7 +27789,7 @@ be detected. ;;;*** ;;;### (autoloads (batch-titdic-convert titdic-convert) "titdic-cnv" -;;;;;; "international/titdic-cnv.el" (17994 6715)) +;;;;;; "international/titdic-cnv.el" (17870 32853)) ;;; Generated autoloads from international/titdic-cnv.el (autoload (quote titdic-convert) "titdic-cnv" "\ @@ -27864,8 +27812,8 @@ To get complete usage, invoke \"emacs -batch -f batch-titdic-convert -h\". ;;;*** ;;;### (autoloads (tamil-composition-function tamil-post-read-conversion -;;;;;; tamil-compose-region) "tml-util" "language/tml-util.el" (17994 -;;;;;; 6715)) +;;;;;; tamil-compose-region) "tml-util" "language/tml-util.el" (17842 +;;;;;; 58278)) ;;; Generated autoloads from language/tml-util.el (autoload (quote tamil-compose-region) "tml-util" "\ @@ -27888,7 +27836,7 @@ PATTERN regexp. ;;;*** ;;;### (autoloads (tmm-prompt tmm-menubar-mouse tmm-menubar) "tmm" -;;;;;; "tmm.el" (17994 6751)) +;;;;;; "tmm.el" (17952 58711)) ;;; Generated autoloads from tmm.el (define-key global-map "\M-`" 'tmm-menubar) (define-key global-map [menu-bar mouse-1] 'tmm-menubar-mouse) @@ -27928,7 +27876,7 @@ Its value should be an event that has a binding in MENU. ;;;### (autoloads (todo-show todo-cp todo-mode todo-print todo-top-priorities ;;;;;; todo-insert-item todo-add-item-non-interactively todo-add-category) -;;;;;; "todo-mode" "calendar/todo-mode.el" (17994 6715)) +;;;;;; "todo-mode" "calendar/todo-mode.el" (17962 52848)) ;;; Generated autoloads from calendar/todo-mode.el (autoload (quote todo-add-category) "todo-mode" "\ @@ -27988,8 +27936,8 @@ Show TODO list. ;;;*** ;;;### (autoloads (tool-bar-local-item-from-menu tool-bar-add-item-from-menu -;;;;;; tool-bar-local-item tool-bar-add-item toggle-tool-bar-mode-from-frame) -;;;;;; "tool-bar" "tool-bar.el" (17994 6751)) +;;;;;; tool-bar-local-item tool-bar-add-item) "tool-bar" "tool-bar.el" +;;;;;; (17842 58278)) ;;; Generated autoloads from tool-bar.el (autoload (quote toggle-tool-bar-mode-from-frame) "tool-bar" "\ @@ -28062,7 +28010,7 @@ holds a keymap. ;;;*** ;;;### (autoloads (tpu-edt-on tpu-edt-mode) "tpu-edt" "emulation/tpu-edt.el" -;;;;;; (18000 24377)) +;;;;;; (18006 55796)) ;;; Generated autoloads from emulation/tpu-edt.el (defvar tpu-edt-mode nil "\ @@ -28089,7 +28037,7 @@ Turn on TPU/edt emulation. ;;;*** ;;;### (autoloads (tpu-set-cursor-bound tpu-set-cursor-free tpu-set-scroll-margins) -;;;;;; "tpu-extras" "emulation/tpu-extras.el" (17994 6715)) +;;;;;; "tpu-extras" "emulation/tpu-extras.el" (17842 54264)) ;;; Generated autoloads from emulation/tpu-extras.el (autoload (quote tpu-set-scroll-margins) "tpu-extras" "\ @@ -28109,7 +28057,7 @@ Constrain the cursor to the flow of the text. ;;;*** -;;;### (autoloads (tq-create) "tq" "emacs-lisp/tq.el" (17994 6715)) +;;;### (autoloads (tq-create) "tq" "emacs-lisp/tq.el" (17842 54152)) ;;; Generated autoloads from emacs-lisp/tq.el (autoload (quote tq-create) "tq" "\ @@ -28123,7 +28071,7 @@ to a tcp server on another machine. ;;;*** ;;;### (autoloads (trace-function-background trace-function trace-buffer) -;;;;;; "trace" "emacs-lisp/trace.el" (17994 6715)) +;;;;;; "trace" "emacs-lisp/trace.el" (17842 54152)) ;;; Generated autoloads from emacs-lisp/trace.el (defvar trace-buffer "*trace-output*" "\ @@ -28160,7 +28108,7 @@ BUFFER defaults to `trace-buffer'. ;;;### (autoloads (tramp-unload-tramp tramp-completion-handle-file-name-completion ;;;;;; tramp-completion-handle-file-name-all-completions tramp-unload-file-name-handlers ;;;;;; tramp-file-name-handler tramp-completion-file-name-regexp -;;;;;; tramp-file-name-regexp) "tramp" "net/tramp.el" (17994 6715)) +;;;;;; tramp-file-name-regexp) "tramp" "net/tramp.el" (17934 45069)) ;;; Generated autoloads from net/tramp.el (defvar tramp-unified-filenames (not (featurep (quote xemacs))) "\ @@ -28277,7 +28225,7 @@ Discard Tramp from loading remote files. ;;;*** ;;;### (autoloads (tramp-ftp-enable-ange-ftp) "tramp-ftp" "net/tramp-ftp.el" -;;;;;; (17994 6715)) +;;;;;; (17842 55218)) ;;; Generated autoloads from net/tramp-ftp.el (autoload (quote tramp-ftp-enable-ange-ftp) "tramp-ftp" "\ @@ -28287,8 +28235,8 @@ Not documented ;;;*** -;;;### (autoloads (help-with-tutorial) "tutorial" "tutorial.el" (18000 -;;;;;; 24333)) +;;;### (autoloads (help-with-tutorial) "tutorial" "tutorial.el" (18006 +;;;;;; 55796)) ;;; Generated autoloads from tutorial.el (autoload (quote help-with-tutorial) "tutorial" "\ @@ -28313,7 +28261,7 @@ resumed later. ;;;*** ;;;### (autoloads (2C-split 2C-associate-buffer 2C-two-columns) "two-column" -;;;;;; "textmodes/two-column.el" (17994 6716)) +;;;;;; "textmodes/two-column.el" (17842 58276)) ;;; Generated autoloads from textmodes/two-column.el (autoload '2C-command "two-column" () t 'keymap) (global-set-key "\C-x6" '2C-command) @@ -28364,7 +28312,7 @@ First column's text sSs Second column's text ;;;;;; type-break type-break-mode type-break-keystroke-threshold ;;;;;; type-break-good-break-interval type-break-good-rest-interval ;;;;;; type-break-interval type-break-mode) "type-break" "type-break.el" -;;;;;; (17994 6716)) +;;;;;; (17908 29123)) ;;; Generated autoloads from type-break.el (defvar type-break-mode nil "\ @@ -28547,7 +28495,7 @@ FRAC should be the inverse of the fractional value; for example, a value of ;;;*** ;;;### (autoloads (ununderline-region underline-region) "underline" -;;;;;; "textmodes/underline.el" (17994 6716)) +;;;;;; "textmodes/underline.el" (17842 58276)) ;;; Generated autoloads from textmodes/underline.el (autoload (quote underline-region) "underline" "\ @@ -28568,7 +28516,7 @@ which specify the range to operate on. ;;;*** ;;;### (autoloads (unforward-rmail-message undigestify-rmail-message) -;;;;;; "undigest" "mail/undigest.el" (17994 6715)) +;;;;;; "undigest" "mail/undigest.el" (17842 55035)) ;;; Generated autoloads from mail/undigest.el (autoload (quote undigestify-rmail-message) "undigest" "\ @@ -28587,7 +28535,7 @@ following the containing message. ;;;*** ;;;### (autoloads (unrmail batch-unrmail) "unrmail" "mail/unrmail.el" -;;;;;; (17994 6715)) +;;;;;; (17842 55035)) ;;; Generated autoloads from mail/unrmail.el (autoload (quote batch-unrmail) "unrmail" "\ @@ -28606,8 +28554,8 @@ Convert Rmail file FILE to system inbox format file TO-FILE. ;;;*** -;;;### (autoloads (unsafep) "unsafep" "emacs-lisp/unsafep.el" (17994 -;;;;;; 6715)) +;;;### (autoloads (unsafep) "unsafep" "emacs-lisp/unsafep.el" (17842 +;;;;;; 54152)) ;;; Generated autoloads from emacs-lisp/unsafep.el (autoload (quote unsafep) "unsafep" "\ @@ -28620,7 +28568,7 @@ of symbols with local bindings. ;;;*** ;;;### (autoloads (url-retrieve-synchronously url-retrieve) "url" -;;;;;; "url/url.el" (17994 6716)) +;;;;;; "url/url.el" (17842 56569)) ;;; Generated autoloads from url/url.el (autoload (quote url-retrieve) "url" "\ @@ -28660,7 +28608,7 @@ no further processing). URL is either a string or a parsed URL. ;;;*** ;;;### (autoloads (url-register-auth-scheme url-get-authentication) -;;;;;; "url-auth" "url/url-auth.el" (17994 6716)) +;;;;;; "url-auth" "url/url-auth.el" (17854 10173)) ;;; Generated autoloads from url/url-auth.el (autoload (quote url-get-authentication) "url-auth" "\ @@ -28702,8 +28650,8 @@ RATING a rating between 1 and 10 of the strength of the authentication. ;;;*** ;;;### (autoloads (url-cache-expired url-cache-extract url-is-cached -;;;;;; url-store-in-cache) "url-cache" "url/url-cache.el" (17994 -;;;;;; 6716)) +;;;;;; url-store-in-cache) "url-cache" "url/url-cache.el" (17842 +;;;;;; 56569)) ;;; Generated autoloads from url/url-cache.el (autoload (quote url-store-in-cache) "url-cache" "\ @@ -28728,7 +28676,7 @@ Return t iff a cached file has expired. ;;;*** -;;;### (autoloads (url-cid) "url-cid" "url/url-cid.el" (17994 6716)) +;;;### (autoloads (url-cid) "url-cid" "url/url-cid.el" (17842 56569)) ;;; Generated autoloads from url/url-cid.el (autoload (quote url-cid) "url-cid" "\ @@ -28739,7 +28687,7 @@ Not documented ;;;*** ;;;### (autoloads (url-dav-vc-registered url-dav-supported-p) "url-dav" -;;;;;; "url/url-dav.el" (17994 6716)) +;;;;;; "url/url-dav.el" (17842 56569)) ;;; Generated autoloads from url/url-dav.el (autoload (quote url-dav-supported-p) "url-dav" "\ @@ -28754,8 +28702,8 @@ Not documented ;;;*** -;;;### (autoloads (url-file) "url-file" "url/url-file.el" (17994 -;;;;;; 6716)) +;;;### (autoloads (url-file) "url-file" "url/url-file.el" (17842 +;;;;;; 56569)) ;;; Generated autoloads from url/url-file.el (autoload (quote url-file) "url-file" "\ @@ -28766,7 +28714,7 @@ Handle file: and ftp: URLs. ;;;*** ;;;### (autoloads (url-open-stream url-gateway-nslookup-host) "url-gw" -;;;;;; "url/url-gw.el" (17994 6716)) +;;;;;; "url/url-gw.el" (17842 56569)) ;;; Generated autoloads from url/url-gw.el (autoload (quote url-gateway-nslookup-host) "url-gw" "\ @@ -28785,8 +28733,8 @@ Might do a non-blocking connection; use `process-status' to check. ;;;*** ;;;### (autoloads (url-insert-file-contents url-file-local-copy url-copy-file -;;;;;; url-handler-mode) "url-handlers" "url/url-handlers.el" (17994 -;;;;;; 6716)) +;;;;;; url-handler-mode) "url-handlers" "url/url-handlers.el" (17842 +;;;;;; 56569)) ;;; Generated autoloads from url/url-handlers.el (defvar url-handler-mode nil "\ @@ -28830,7 +28778,7 @@ Not documented ;;;*** ;;;### (autoloads (url-http-options url-http-file-attributes url-http-file-exists-p -;;;;;; url-http) "url-http" "url/url-http.el" (17994 6716)) +;;;;;; url-http) "url-http" "url/url-http.el" (17952 11683)) ;;; Generated autoloads from url/url-http.el (autoload (quote url-http) "url-http" "\ @@ -28895,7 +28843,7 @@ HTTPS retrievals are asynchronous.") ;;;*** -;;;### (autoloads (url-irc) "url-irc" "url/url-irc.el" (17994 6716)) +;;;### (autoloads (url-irc) "url-irc" "url/url-irc.el" (17842 56569)) ;;; Generated autoloads from url/url-irc.el (autoload (quote url-irc) "url-irc" "\ @@ -28905,8 +28853,8 @@ Not documented ;;;*** -;;;### (autoloads (url-ldap) "url-ldap" "url/url-ldap.el" (17994 -;;;;;; 6716)) +;;;### (autoloads (url-ldap) "url-ldap" "url/url-ldap.el" (17842 +;;;;;; 56569)) ;;; Generated autoloads from url/url-ldap.el (autoload (quote url-ldap) "url-ldap" "\ @@ -28920,7 +28868,7 @@ URL can be a URL string, or a URL vector of the type returned by ;;;*** ;;;### (autoloads (url-mailto url-mail) "url-mailto" "url/url-mailto.el" -;;;;;; (17994 6716)) +;;;;;; (18012 18089)) ;;; Generated autoloads from url/url-mailto.el (autoload (quote url-mail) "url-mailto" "\ @@ -28936,7 +28884,7 @@ Handle the mailto: URL syntax. ;;;*** ;;;### (autoloads (url-data url-generic-emulator-loader url-info -;;;;;; url-man) "url-misc" "url/url-misc.el" (17994 6716)) +;;;;;; url-man) "url-misc" "url/url-misc.el" (17842 56569)) ;;; Generated autoloads from url/url-misc.el (autoload (quote url-man) "url-misc" "\ @@ -28968,7 +28916,7 @@ Fetch a data URL (RFC 2397). ;;;*** ;;;### (autoloads (url-snews url-news) "url-news" "url/url-news.el" -;;;;;; (17994 6716)) +;;;;;; (17842 56569)) ;;; Generated autoloads from url/url-news.el (autoload (quote url-news) "url-news" "\ @@ -28985,7 +28933,7 @@ Not documented ;;;### (autoloads (url-ns-user-pref url-ns-prefs isInNet isResolvable ;;;;;; dnsResolve dnsDomainIs isPlainHostName) "url-ns" "url/url-ns.el" -;;;;;; (17994 6716)) +;;;;;; (17842 56569)) ;;; Generated autoloads from url/url-ns.el (autoload (quote isPlainHostName) "url-ns" "\ @@ -29026,7 +28974,7 @@ Not documented ;;;*** ;;;### (autoloads (url-generic-parse-url url-recreate-url) "url-parse" -;;;;;; "url/url-parse.el" (17994 6716)) +;;;;;; "url/url-parse.el" (17954 22157)) ;;; Generated autoloads from url/url-parse.el (autoload (quote url-recreate-url) "url-parse" "\ @@ -29044,7 +28992,7 @@ Format is: ;;;*** ;;;### (autoloads (url-setup-privacy-info) "url-privacy" "url/url-privacy.el" -;;;;;; (17994 6716)) +;;;;;; (17842 56569)) ;;; Generated autoloads from url/url-privacy.el (autoload (quote url-setup-privacy-info) "url-privacy" "\ @@ -29060,7 +29008,7 @@ Setup variables that expose info about you and your system. ;;;;;; url-strip-leading-spaces url-eat-trailing-space url-get-normalized-date ;;;;;; url-lazy-message url-normalize-url url-insert-entities-in-string ;;;;;; url-parse-args url-debug url-debug) "url-util" "url/url-util.el" -;;;;;; (17994 6716)) +;;;;;; (17842 56569)) ;;; Generated autoloads from url/url-util.el (defvar url-debug nil "\ @@ -29189,7 +29137,7 @@ This uses `url-current-object', set locally to the buffer. ;;;*** ;;;### (autoloads (ask-user-about-supersession-threat ask-user-about-lock) -;;;;;; "userlock" "userlock.el" (17994 6716)) +;;;;;; "userlock" "userlock.el" (17842 58278)) ;;; Generated autoloads from userlock.el (autoload (quote ask-user-about-lock) "userlock" "\ @@ -29217,7 +29165,7 @@ The buffer in question is current when this function is called. ;;;*** -;;;### (autoloads nil "utf-7" "international/utf-7.el" (17994 6715)) +;;;### (autoloads nil "utf-7" "international/utf-7.el" (17842 54888)) ;;; Generated autoloads from international/utf-7.el (autoload-coding-system 'utf-7 '(require 'utf-7)) @@ -29225,7 +29173,7 @@ The buffer in question is current when this function is called. ;;;### (autoloads (uudecode-decode-region uudecode-decode-region-internal ;;;;;; uudecode-decode-region-external) "uudecode" "gnus/uudecode.el" -;;;;;; (17994 6715)) +;;;;;; (17855 50203)) ;;; Generated autoloads from gnus/uudecode.el (autoload (quote uudecode-decode-region-external) "uudecode" "\ @@ -29255,7 +29203,7 @@ If FILE-NAME is non-nil, save the result to FILE-NAME. ;;;;;; vc-directory vc-merge vc-insert-headers vc-version-other-window ;;;;;; vc-diff vc-register vc-next-action vc-do-command edit-vc-file ;;;;;; with-vc-file vc-branch-part vc-trunk-p vc-before-checkin-hook -;;;;;; vc-checkin-hook vc-checkout-hook) "vc" "vc.el" (17994 6739)) +;;;;;; vc-checkin-hook vc-checkout-hook) "vc" "vc.el" (17992 30877)) ;;; Generated autoloads from vc.el (defvar vc-checkout-hook nil "\ @@ -29543,7 +29491,7 @@ colors. `vc-annotate-background' specifies the background color. ;;;*** -;;;### (autoloads nil "vc-arch" "vc-arch.el" (17994 6716)) +;;;### (autoloads nil "vc-arch" "vc-arch.el" (17930 34221)) ;;; Generated autoloads from vc-arch.el (defun vc-arch-registered (file) (if (vc-find-root file "{arch}/=tagging-method") @@ -29553,7 +29501,7 @@ colors. `vc-annotate-background' specifies the background color. ;;;*** -;;;### (autoloads nil "vc-cvs" "vc-cvs.el" (17994 6716)) +;;;### (autoloads nil "vc-cvs" "vc-cvs.el" (17842 58278)) ;;; Generated autoloads from vc-cvs.el (defun vc-cvs-registered (f) (when (file-readable-p (expand-file-name @@ -29563,7 +29511,7 @@ colors. `vc-annotate-background' specifies the background color. ;;;*** -;;;### (autoloads nil "vc-mcvs" "vc-mcvs.el" (17994 6716)) +;;;### (autoloads nil "vc-mcvs" "vc-mcvs.el" (17842 58278)) ;;; Generated autoloads from vc-mcvs.el (defun vc-mcvs-registered (file) (if (vc-find-root file "MCVS/CVS") @@ -29574,7 +29522,7 @@ colors. `vc-annotate-background' specifies the background color. ;;;*** ;;;### (autoloads (vc-rcs-master-templates) "vc-rcs" "vc-rcs.el" -;;;;;; (17994 6716)) +;;;;;; (17925 15266)) ;;; Generated autoloads from vc-rcs.el (defvar vc-rcs-master-templates (quote ("%sRCS/%s,v" "%s%s,v" "%sRCS/%s")) "\ @@ -29587,7 +29535,7 @@ For a description of possible values, see `vc-check-master-templates'.") ;;;*** ;;;### (autoloads (vc-sccs-master-templates) "vc-sccs" "vc-sccs.el" -;;;;;; (17994 6716)) +;;;;;; (17842 58278)) ;;; Generated autoloads from vc-sccs.el (defvar vc-sccs-master-templates (quote ("%sSCCS/s.%s" "%ss.%s" vc-sccs-search-project-dir)) "\ @@ -29604,7 +29552,7 @@ find any project directory." (let ((project-dir (getenv "PROJECTDIR")) dirs dir) ;;;*** -;;;### (autoloads nil "vc-svn" "vc-svn.el" (17994 6716)) +;;;### (autoloads nil "vc-svn" "vc-svn.el" (17881 64914)) ;;; Generated autoloads from vc-svn.el (defun vc-svn-registered (f) (let ((admin-dir (cond ((and (eq system-type 'windows-nt) @@ -29622,7 +29570,7 @@ find any project directory." (let ((project-dir (getenv "PROJECTDIR")) dirs dir) ;;;*** ;;;### (autoloads (vhdl-mode) "vhdl-mode" "progmodes/vhdl-mode.el" -;;;;;; (17994 6715)) +;;;;;; (17962 27361)) ;;; Generated autoloads from progmodes/vhdl-mode.el (autoload (quote vhdl-mode) "vhdl-mode" "\ @@ -30163,7 +30111,7 @@ Key bindings: ;;;*** -;;;### (autoloads (vi-mode) "vi" "emulation/vi.el" (17994 6715)) +;;;### (autoloads (vi-mode) "vi" "emulation/vi.el" (17788 40208)) ;;; Generated autoloads from emulation/vi.el (autoload (quote vi-mode) "vi" "\ @@ -30218,7 +30166,7 @@ Syntax table and abbrevs while in vi mode remain as they were in Emacs. ;;;### (autoloads (viqr-pre-write-conversion viqr-post-read-conversion ;;;;;; viet-encode-viqr-buffer viet-encode-viqr-region viet-decode-viqr-buffer ;;;;;; viet-decode-viqr-region viet-encode-viscii-char) "viet-util" -;;;;;; "language/viet-util.el" (17994 6715)) +;;;;;; "language/viet-util.el" (17842 58278)) ;;; Generated autoloads from language/viet-util.el (autoload (quote viet-encode-viscii-char) "viet-util" "\ @@ -30264,8 +30212,8 @@ Not documented ;;;### (autoloads (View-exit-and-edit view-mode-enter view-mode view-buffer-other-frame ;;;;;; view-buffer-other-window view-buffer view-file-other-frame -;;;;;; view-file-other-window view-file) "view" "view.el" (18000 -;;;;;; 24333)) +;;;;;; view-file-other-window view-file) "view" "view.el" (18006 +;;;;;; 55796)) ;;; Generated autoloads from view.el (defvar view-mode nil "\ @@ -30474,8 +30422,8 @@ Exit View mode and make the current buffer editable. ;;;*** -;;;### (autoloads (vip-mode vip-setup) "vip" "emulation/vip.el" (17994 -;;;;;; 6715)) +;;;### (autoloads (vip-mode vip-setup) "vip" "emulation/vip.el" (17842 +;;;;;; 54264)) ;;; Generated autoloads from emulation/vip.el (autoload (quote vip-setup) "vip" "\ @@ -30491,7 +30439,7 @@ Turn on VIP emulation of VI. ;;;*** ;;;### (autoloads (viper-mode toggle-viper-mode) "viper" "emulation/viper.el" -;;;;;; (17994 6715)) +;;;;;; (17921 23052)) ;;; Generated autoloads from emulation/viper.el (autoload (quote toggle-viper-mode) "viper" "\ @@ -30508,7 +30456,7 @@ Turn on Viper emulation of Vi in Emacs. See Info node `(viper)Top'. ;;;*** ;;;### (autoloads (warn lwarn display-warning) "warnings" "emacs-lisp/warnings.el" -;;;;;; (17994 6715)) +;;;;;; (17935 13348)) ;;; Generated autoloads from emacs-lisp/warnings.el (defvar warning-prefix-function nil "\ @@ -30598,7 +30546,7 @@ this is equivalent to `display-warning', using ;;;*** ;;;### (autoloads (wdired-change-to-wdired-mode) "wdired" "wdired.el" -;;;;;; (17994 6716)) +;;;;;; (17842 58278)) ;;; Generated autoloads from wdired.el (autoload (quote wdired-change-to-wdired-mode) "wdired" "\ @@ -30614,7 +30562,7 @@ See `wdired-mode'. ;;;*** -;;;### (autoloads (webjump) "webjump" "net/webjump.el" (17994 6715)) +;;;### (autoloads (webjump) "webjump" "net/webjump.el" (17842 55218)) ;;; Generated autoloads from net/webjump.el (autoload (quote webjump) "webjump" "\ @@ -30631,7 +30579,7 @@ Please submit bug reports and other feedback to the author, Neil W. Van Dyke ;;;*** ;;;### (autoloads (which-function-mode) "which-func" "progmodes/which-func.el" -;;;;;; (17994 6715)) +;;;;;; (17842 56332)) ;;; Generated autoloads from progmodes/which-func.el (put 'which-func-format 'risky-local-variable t) (put 'which-func-current 'risky-local-variable t) @@ -30664,7 +30612,7 @@ and off otherwise. ;;;;;; whitespace-buffer whitespace-toggle-ateol-check whitespace-toggle-spacetab-check ;;;;;; whitespace-toggle-indent-check whitespace-toggle-trailing-check ;;;;;; whitespace-toggle-leading-check) "whitespace" "whitespace.el" -;;;;;; (17994 6716)) +;;;;;; (17925 15266)) ;;; Generated autoloads from whitespace.el (autoload (quote whitespace-toggle-leading-check) "whitespace" "\ @@ -30755,7 +30703,7 @@ This is meant to be added buffer-locally to `write-file-functions'. ;;;*** ;;;### (autoloads (widget-minor-mode widget-browse-other-window widget-browse -;;;;;; widget-browse-at) "wid-browse" "wid-browse.el" (17994 6716)) +;;;;;; widget-browse-at) "wid-browse" "wid-browse.el" (17842 58278)) ;;; Generated autoloads from wid-browse.el (autoload (quote widget-browse-at) "wid-browse" "\ @@ -30782,8 +30730,8 @@ With arg, turn widget mode on if and only if arg is positive. ;;;*** ;;;### (autoloads (widget-setup widget-insert widget-delete widget-create -;;;;;; widget-prompt-value widgetp) "wid-edit" "wid-edit.el" (17994 -;;;;;; 6716)) +;;;;;; widget-prompt-value widgetp) "wid-edit" "wid-edit.el" (17952 +;;;;;; 11093)) ;;; Generated autoloads from wid-edit.el (autoload (quote widgetp) "wid-edit" "\ @@ -30827,8 +30775,8 @@ Setup current buffer so editing string widgets works. ;;;*** ;;;### (autoloads (windmove-default-keybindings windmove-down windmove-right -;;;;;; windmove-up windmove-left) "windmove" "windmove.el" (17994 -;;;;;; 6716)) +;;;;;; windmove-up windmove-left) "windmove" "windmove.el" (17842 +;;;;;; 58278)) ;;; Generated autoloads from windmove.el (autoload (quote windmove-left) "windmove" "\ @@ -30881,7 +30829,7 @@ Default MODIFIER is 'shift. ;;;*** ;;;### (autoloads (winner-mode winner-mode) "winner" "winner.el" -;;;;;; (17994 6716)) +;;;;;; (17842 58278)) ;;; Generated autoloads from winner.el (defvar winner-mode nil "\ @@ -30900,7 +30848,7 @@ With arg, turn Winner mode on if and only if arg is positive. ;;;*** ;;;### (autoloads (woman-find-file woman-dired-find-file woman) "woman" -;;;;;; "woman.el" (17994 6716)) +;;;;;; "woman.el" (17949 41467)) ;;; Generated autoloads from woman.el (autoload (quote woman) "woman" "\ @@ -30936,7 +30884,7 @@ decompress the file if appropriate. See the documentation for the ;;;*** ;;;### (autoloads (wordstar-mode) "ws-mode" "emulation/ws-mode.el" -;;;;;; (17994 6715)) +;;;;;; (17842 54264)) ;;; Generated autoloads from emulation/ws-mode.el (autoload (quote wordstar-mode) "ws-mode" "\ @@ -31049,7 +30997,7 @@ The key bindings are: ;;;*** ;;;### (autoloads (xml-parse-region xml-parse-file) "xml" "xml.el" -;;;;;; (17994 6716)) +;;;;;; (17916 14776)) ;;; Generated autoloads from xml.el (autoload (quote xml-parse-file) "xml" "\ @@ -31074,8 +31022,8 @@ If PARSE-NS is non-nil, then QNAMES are expanded. ;;;*** -;;;### (autoloads (xterm-mouse-mode) "xt-mouse" "xt-mouse.el" (18000 -;;;;;; 23909)) +;;;### (autoloads (xterm-mouse-mode) "xt-mouse" "xt-mouse.el" (18007 +;;;;;; 39657)) ;;; Generated autoloads from xt-mouse.el (defvar xterm-mouse-mode nil "\ @@ -31103,7 +31051,7 @@ down the SHIFT key while pressing the mouse button. ;;;*** ;;;### (autoloads (yenc-extract-filename yenc-decode-region) "yenc" -;;;;;; "gnus/yenc.el" (17994 6715)) +;;;;;; "gnus/yenc.el" (17842 54741)) ;;; Generated autoloads from gnus/yenc.el (autoload (quote yenc-decode-region) "yenc" "\ @@ -31119,7 +31067,7 @@ Extract file name from an yenc header. ;;;*** ;;;### (autoloads (psychoanalyze-pinhead apropos-zippy insert-zippyism -;;;;;; yow) "yow" "play/yow.el" (17994 6715)) +;;;;;; yow) "yow" "play/yow.el" (17842 55395)) ;;; Generated autoloads from play/yow.el (autoload (quote yow) "yow" "\ @@ -31145,7 +31093,7 @@ Zippy goes to the analyst. ;;;*** -;;;### (autoloads (zone) "zone" "play/zone.el" (17994 6715)) +;;;### (autoloads (zone) "zone" "play/zone.el" (17941 38806)) ;;; Generated autoloads from play/zone.el (autoload (quote zone) "zone" "\ @@ -31285,7 +31233,7 @@ Zone out, completely. ;;;;;; "url/url-vars.el" "url/vc-dav.el" "vc-hooks.el" "vcursor.el" ;;;;;; "version.el" "vms-patch.el" "vmsproc.el" "vt-control.el" ;;;;;; "vt100-led.el" "w32-fns.el" "w32-vars.el" "widget.el" "window.el" -;;;;;; "x-dnd.el") (18000 29139 491614)) +;;;;;; "x-dnd.el") (18016 62249 573562)) ;;;*** diff --git a/lisp/longlines.el b/lisp/longlines.el index f39d31e69f0..149f69c9f26 100644 --- a/lisp/longlines.el +++ b/lisp/longlines.el @@ -368,10 +368,10 @@ Hard newlines are left intact." With optional argument ARG, turn on line wrapping if and only if ARG is positive. If automatic line wrapping is turned on, wrap the entire buffer." (interactive "P") - (and (null arg) - (null longlines-auto-wrap) - (setq arg 1)) - (if (> (prefix-numeric-value arg) 0) + (setq arg (if arg + (> (prefix-numeric-value arg) 0) + (not longlines-auto-wrap))) + (if arg (let ((mod (buffer-modified-p))) (setq longlines-auto-wrap t) (longlines-wrap-region (point-min) (point-max)) diff --git a/lisp/mail/rmail.el b/lisp/mail/rmail.el index 13aba1a3fb0..2a2f0355ab2 100644 --- a/lisp/mail/rmail.el +++ b/lisp/mail/rmail.el @@ -228,7 +228,7 @@ Otherwise, look for `movemail' in the directories in `emacs' Means any implementation, compatible with the native Emacs one. This is the default; `mailutils' Means GNU mailutils implementation, capable of handling full -mail URLs as the source mailbox;") +mail URLs as the source mailbox.") ;;;###autoload (defun rmail-movemail-variant-p (&rest variants) diff --git a/lisp/mail/rmailsum.el b/lisp/mail/rmailsum.el index 6383722a4be..288f3f24e66 100644 --- a/lisp/mail/rmailsum.el +++ b/lisp/mail/rmailsum.el @@ -854,6 +854,15 @@ Search, the `unseen' attribute is restored.") (set-buffer rmail-buffer) (rmail-show-message msg-num t)))))) (rmail-summary-update-highlight nil))))) + +(defun rmail-summary-save-buffer () + "Save the buffer associated with this RMAIL summary." + (interactive) + (save-window-excursion + (save-excursion + (switch-to-buffer rmail-buffer) + (save-buffer)))) + (if rmail-summary-mode-map nil @@ -923,6 +932,7 @@ Search, the `unseen' attribute is restored.") 'rmail-summary-sort-by-lines) (define-key rmail-summary-mode-map "\C-c\C-s\C-k" 'rmail-summary-sort-by-labels) + (define-key rmail-summary-mode-map "\C-x\C-s" 'rmail-summary-save-buffer) ) ;;; Menu bar bindings. diff --git a/lisp/mh-e/ChangeLog b/lisp/mh-e/ChangeLog index 8b122f89b49..3d3a08e0528 100644 --- a/lisp/mh-e/ChangeLog +++ b/lisp/mh-e/ChangeLog @@ -1,3 +1,8 @@ +2007-06-06 Juanma Barranquero <lekktu@gmail.com> + + * mh-mime.el (mh-mh-directive-present-p): + * mh-search.el (mh-index-group-by-folder): Fix typos in docstrings. + 2006-11-14 Bill Wohler <wohler@newt.com> * mh-xface.el (mh-x-image-url-cache-canonicalize): Add `*' to @@ -10,7 +15,7 @@ * mh-e.el (Version, mh-version): Update for release 8.0.3. * mh-e.el (mh-alias-local-users): Boolean docstrings should start - with "Non-nil means". Perhaps this option should have a -flag + with "Non-nil means". Perhaps this option should have a -flag appended. (mh-junk-background): Sync docstring with manual. @@ -62,7 +67,7 @@ * mh-tool-bar.el (mh-tool-bar-define): Fix XEmacs' vector-list so it refers to the icons in mh-xemacs-icon-map instead of trying to declare the icons in situ. This allows mh-tool-bar.el to be - compiled under XEmacs. Remove initial value for + compiled under XEmacs. Remove initial value for mh-tool-bar-folder-buttons, mh-tool-bar-show-buttons, mh-tool-bar-letter-buttons. The MH-E icons now appear in XEmacs. In mh-tool-bar-init, check for mh-xemacs-use-tool-bar-flag sooner. @@ -133,7 +138,7 @@ 2006-04-26 Eric Ding <ericding@alum.mit.edu> * mh-e.el (mh-invisible-header-fields-internal): Add entry - "X-Provags-ID:" + "X-Provags-ID:". 2006-04-25 Bill Wohler <wohler@newt.com> @@ -155,9 +160,9 @@ * mh-letter.el (mh-insert-letter): If a message number isn't given, throw an error rather than using a potentially incorrect - message number (closes SF #1473729). In addition, use the cur + message number (closes SF #1473729). In addition, use the cur message if mh-sent-from-msg is nil (when sending a message, in - contrast to replying). Move conversion of int to string into + contrast to replying). Move conversion of int to string into interactive stanza so body can assume variables are of proper type. @@ -177,15 +182,15 @@ (mh-tool-bar-folder-buttons-set, mh-tool-bar-letter-buttons-set): Call it (closes SF #1452718). - * mh-folder.el (mh-folder-buttons-init-flag): Delete. Use + * mh-folder.el (mh-folder-buttons-init-flag): Delete. Use mh-folder-tool-bar-map instead. - (image-load-path): Delete. No longer used. + (image-load-path): Delete. No longer used. (mh-folder-mode): Moved setting of image-load-path into mh-tool-bar-folder-buttons-init. - * mh-letter.el (mh-letter-buttons-init-flag): Delete. Use + * mh-letter.el (mh-letter-buttons-init-flag): Delete. Use mh-letter-tool-bar-map instead. - (image-load-path): Delete. No longer used. + (image-load-path): Delete. No longer used. (mh-letter-mode): Moved setting of image-load-path into mh-tool-bar-letter-buttons-init. @@ -202,10 +207,10 @@ * mh-e.el (defcustom-mh, defface-mh, defgroup-mh, mh-face-data) (mh-strip-package-version, mh-face-data, mh-inherit-face-flag) (mh-min-colors-defined-flag): Do not unbind these macros and - variables. Nice idea, but too many nasty side-effects. These + variables. Nice idea, but too many nasty side-effects. These macros are needed by [Cc]ustom-make-dependencies when creating the - MH-E customization groups in mh-cus-load.el. These disappeared - when the macros above were introduced. Besides, if a developer + MH-E customization groups in mh-cus-load.el. These disappeared + when the macros above were introduced. Besides, if a developer were to try to show the help for a macro or variable they were looking at and got [No match] when they did so, that would be bad. @@ -218,11 +223,11 @@ variables and functions with the same name are found correctly by find-func (invoked by clicking on the filename link in the *Help* buffer). - (mh-defmacro-compat): Rename to defmacro-mh. Ditto. + (mh-defmacro-compat): Rename to defmacro-mh. Ditto. - * mh-e.el: (mh-defgroup): Rename to defgroup-mh. Ditto. - (mh-defcustom): Rename to defcustom-mh. Ditto. - (mh-defface): Rename to defface-mh. Ditto. + * mh-e.el (mh-defgroup): Rename to defgroup-mh. Ditto. + (mh-defcustom): Rename to defcustom-mh. Ditto. + (mh-defface): Rename to defface-mh. Ditto. (mh-font-lock-add-keywords): Make changes according to these renamings. @@ -232,11 +237,11 @@ * mh-utils.el (mh-sub-folders-actual): Mention that folder must have been processed by mh-normalize-folder-name. (mh-folder-completion-function): Handle completion of folders with - absolute names. Also, when flag is t, display complete folder name + absolute names. Also, when flag is t, display complete folder name to provide proper highlighting in Emacs 22 now that minibuffer-completing-file-name is nil (closes SF #1470518). (mh-folder-completing-read): No longer set - minibuffer-completing-file-name to t. This was causing "Can't set + minibuffer-completing-file-name to t. This was causing "Can't set current directory errors" when browsing absolute file names. Another benefit of this change is that SPC can be used for completion again (closes SF #1470518). @@ -256,9 +261,9 @@ * mh-show.el (font-lock-auto-fontify): Ditto. - * mh-utils.el (mh-speed-flists-cache): Ditto + * mh-utils.el (mh-speed-flists-cache): Ditto. - * mh-acros.el (struct, x, y): No need to wrap defvar with + * mh-acros.el (struct, x, y): No need to wrap defvar with eval-when-compile when shushing compiler, even when mh-do-in-xemacs or another construct is used. @@ -287,7 +292,7 @@ * mh-xface.el (default-enable-multibyte-characters): Ditto. * mh-compat.el (mh-font-lock-add-keywords): New alias for - font-lock-add-keywords. Returns nil on XEmacs. + font-lock-add-keywords. Returns nil on XEmacs. * mh-e.el: Add MH-E function and variable keywords such as mh-defun-compat and mh-defcustom to font-lock-keywords. @@ -297,7 +302,7 @@ * mh-e.el (customize-package-emacs-version-alist) (mh-e, mh-alias, mh-folder, mh-folder-selection) (mh-identity, mh-inc, mh-junk, mh-letter, mh-ranges) - (mh-scan-line-formats, mh-search, mh-sending-mail, ) + (mh-scan-line-formats, mh-search, mh-sending-mail) (mh-sequences, mh-show, mh-speedbar, mh-thread, mh-tool-bar) (mh-hooks, mh-faces, mh-alias-completion-ignore-case-flag) (mh-alias-expand-aliases-flag, mh-alias-flash-on-comma) @@ -307,7 +312,7 @@ (mh-new-messages-folders, mh-ticked-messages-folders) (mh-large-folder, mh-recenter-summary-flag) (mh-recursive-folders-flag, mh-sortm-args) - (mh-default-folder-for-message-function, ) + (mh-default-folder-for-message-function) (mh-default-folder-list, mh-default-folder-must-exist-flag) (mh-default-folder-prefix, mh-identity-list) (mh-auto-fields-list, mh-auto-fields-prompt-flag) @@ -320,18 +325,18 @@ (mh-extract-from-attribution-verb, mh-ins-buf-prefix) (mh-letter-complete-function, mh-letter-fill-column) (mh-mml-method-default, mh-signature-file-name) - (mh-signature-separator-flag, mh-x-face-file, ) + (mh-signature-separator-flag, mh-x-face-file) (mh-yank-behavior, mh-interpret-number-as-range-flag) (mh-adaptive-cmd-note-flag, mh-scan-format-file, mh-scan-prog) (mh-search-program, mh-compose-forward-as-mime-flag) (mh-compose-letter-function, mh-compose-prompt-flag) (mh-forward-subject-format, mh-insert-x-mailer-flag) (mh-redist-full-contents-flag, mh-reply-default-reply-to) - (mh-reply-show-message-flag, ) + (mh-reply-show-message-flag) (mh-refile-preserves-sequences-flag, mh-tick-seq) (mh-update-sequences-after-mh-show-flag) (mh-bury-show-buffer-flag, mh-clean-message-header-flag) - (mh-decode-mime-flag, ) + (mh-decode-mime-flag) (mh-display-buttons-for-alternatives-flag) (mh-display-buttons-for-inline-parts-flag) (mh-do-not-confirm-flag, mh-fetch-x-image-url) @@ -348,8 +353,7 @@ (mh-alias-reloaded-hook, mh-before-commands-processed-hook) (mh-before-quit-hook, mh-before-send-letter-hook) (mh-delete-msg-hook, mh-find-path-hook, mh-folder-mode-hook) - (mh-forward-hook, mh-inc-folder-hook, ) - (mh-insert-signature-hook, ) + (mh-forward-hook, mh-inc-folder-hook, mh-insert-signature-hook) (mh-kill-folder-suppress-prompt-hooks, mh-letter-mode-hook) (mh-mh-to-mime-hook, mh-search-mode-hook, mh-quit-hook) (mh-refile-msg-hook, mh-show-hook, mh-show-mode-hook) @@ -361,7 +365,7 @@ (mh-letter-header-field, mh-search-folder, mh-show-cc) (mh-show-date, mh-show-from, mh-show-header, mh-show-pgg-bad) (mh-show-pgg-good, mh-show-pgg-unknown, mh-show-signature) - (mh-show-subject, mh-show-to, mh-show-xface, ) + (mh-show-subject, mh-show-to, mh-show-xface) (mh-speedbar-folder, mh-speedbar-folder-with-unseen-messages) (mh-speedbar-selected-folder) (mh-speedbar-selected-folder-with-unseen-messages): Use dotted @@ -375,7 +379,7 @@ 2006-03-31 Bill Wohler <wohler@newt.com> * mh-e.el (mh-strip-package-version): Move before use to avoid - compiler error. Make macro, also to avoid compiler error. + compiler error. Make macro, also to avoid compiler error. (mh-defface-compat): Incorporate body into mh-face-data and delete. @@ -474,7 +478,7 @@ MH-Letter mode, move save-buffer and mh-fully-kill-draft icons in front of mh-compose-insertion to be consistent with other mailers, such as Evolution. In MH-Folder mode, move vanilla reply icon to - the left of the other reply icons. Use mail/inbox icon instead of + the left of the other reply icons. Use mail/inbox icon instead of mail, next-page instead of page-down, delete instead of close, mail/move instead of mail/refile, data-save instead of execute, mail/flag-for-followup instead of highlight, contact instead of @@ -513,7 +517,7 @@ 2006-03-15 Bill Wohler <wohler@newt.com> * mh-compat.el (mh-image-load-path-for-library): Fix example by - not recommending that one binds image-load-path. Just defvar it to + not recommending that one binds image-load-path. Just defvar it to placate compiler and only use it if previously defined. * mh-e.el (image-load-path): Don't bind! @@ -551,11 +555,11 @@ 2006-03-10 Bill Wohler <wohler@newt.com> * mh-compat.el (mh-replace-regexp-in-string): Pass the literal - flag to replace-in-string. This was badly needed by + flag to replace-in-string. This was badly needed by mh-quote-pick-expr in order to properly quote subjects when using / s on XEmacs (closes SF #1447598). - (mh-image-load-path-for-library): Merged changes from Reiner. Add - no-error argument. If path t, just return directory. + (mh-image-load-path-for-library): Merged changes from Reiner. Add + no-error argument. If path t, just return directory. * mh-e.el (mh-profile-component): Drop `s' from mhparam -components for Mailutils compatibility (closes SF #1446985). @@ -598,11 +602,11 @@ (mh-sub-folders): Use new flag to mh-normalize-folder-name to make this function more robust. It could too easily list the folders in /. (mh-folder-list): Fix a couple of problems pointed out by Thomas - Baumann. Set folder to nil if empty. Don't append "/" if folder nil. + Baumann. Set folder to nil if empty. Don't append "/" if folder nil. 2006-03-03 Bill Wohler <wohler@newt.com> - * mh-folder.el (mh-folder-mode): Rename mh-image-load-path to + * mh-folder.el (mh-folder-mode): Rename mh-image-load-path to mh-image-load-path-for-library. * mh-letter.el (mh-letter-mode): Rename mh-image-load-path to @@ -689,7 +693,7 @@ 2006-02-21 Eric Ding <ericding@alum.mit.edu> * mh-e.el (mh-invisible-header-fields-internal): Add entry - "X-Sasl-enc:" + "X-Sasl-enc:". 2006-02-20 Eric Ding <ericding@alum.mit.edu> @@ -958,7 +962,7 @@ * mh-comp.el (mh-send-sub): Don't find components file in current directory--this seems to have been a side-effect of commenting out - the use of an old mh-etc variable. Improve error message. + the use of an old mh-etc variable. Improve error message. 2006-01-31 Bill Wohler <wohler@newt.com> @@ -979,7 +983,7 @@ (mh-display-completion-list): Move here from mh-comp.el. (mh-face-foreground, mh-face-background): Move here from mh-xface.el. - (mh-write-file-functions): Move here from mh-folder.el + (mh-write-file-functions): Move here from mh-folder.el. * mh-folder.el (mh-write-file-functions-compat): Move to mh-compat.el and rename to mh-write-file-functions. @@ -1042,7 +1046,7 @@ mh-adaptive-cmd-note-flag. * mh-comp.el (sc-cite-original): Remove autoload of "sc" with old - docstring. sc-cite-original is autoloaded via loaddefs.el for all + docstring. sc-cite-original is autoloaded via loaddefs.el for all supported versions. In addition, the package name "sc" has been made obsolete by "supercite since at least Emacs 21. @@ -1323,7 +1327,7 @@ * mh-exec.el: Move content into mh-e.el and remove. - * mh-folder.el: New file. Contains mh-folder-mode from mh-e.el. + * mh-folder.el: New file. Contains mh-folder-mode from mh-e.el. * mh-funcs.el (mh-note-copied, mh-note-printed): Move to new file mh-scan.el. @@ -1368,7 +1372,7 @@ * mh-print.el: Rearrange for consistency with other files. - * mh-scan.el: New file. Contains scan line constants and utilities + * mh-scan.el: New file. Contains scan line constants and utilities from XXX, mh-funcs, mh-utils.el. * mh-search.el: Rearrange for consistency with other files. @@ -1565,7 +1569,7 @@ * mh-comp.el (mh-pgp-support-flag): Move here from mh-utils.el; needed to help remove dependency on mh-utils. - * mh-exec.el: New file. Move process support routines here from + * mh-exec.el: New file. Move process support routines here from mh-utils.el. * mh-init.el (mh-utils): Remove require. @@ -1612,7 +1616,7 @@ (mh-kill-folder-suppress-prompt-hooks): Rename mh-index-p to mh-search-p. (mh-search-mode-hook): Change group from mh-index to mh-search. - (mh-index-folder): Rename to mh-search-folder. Change group from + (mh-index-folder): Rename to mh-search-folder. Change group from mh-index to mh-search. * mh-e.el (mh-folder-font-lock-keywords): Rename mh-index-folder @@ -1667,7 +1671,7 @@ 2006-01-12 Bill Wohler <wohler@newt.com> * mh-search.el: New file containing contents of mh-index.el and - mh-pick.el. C-c C-c launches your mh-index-program; C-c C-p runs + mh-pick.el. C-c C-c launches your mh-index-program; C-c C-p runs pick. Pick no longer sets the "search" sequence. Instead, it brings up a folder view that we're accustomed to. (Closes SF #829207.) @@ -1722,13 +1726,13 @@ * mh-utils.el (mh-x-image-url-cache-canonicalize): Use url-hexify-string to remove special characters from filenames - (closes SF #1396499). Note that this invalidates the existing + (closes SF #1396499). Note that this invalidates the existing names in your cache so you might as well remove ~/Mail/.mhe-x-image-cache/* now. (url-unreserved-chars, url-hexify-string): Define if not defined. Copied from url-util.el in Emacs22 for Emacs 21. - * mh-buffers.el: New file. Contains constants and code from + * mh-buffers.el: New file. Contains constants and code from mh-index.el and mh-utils.el. * mh-alias.el: @@ -1758,7 +1762,7 @@ 2006-01-10 Bill Wohler <wohler@newt.com> * mh-comp.el (mh-insert-letter): If you choose a different folder, - the cur message is used. Sync docstring with manual (closes SF + the cur message is used. Sync docstring with manual (closes SF #1205890). * mh-mime.el (mh-compose-forward): Use standard range argument @@ -1776,7 +1780,7 @@ use function mh-variants instead. (mh-variant-info, mh-variant-mh-info, mh-variant-mu-mh-info) (mh-variant-nmh-info): Co-locate next to mh-variants, which uses - them. Updated to use mh-file-command-p which is more accurrate + them. Updated to use mh-file-command-p which is more accurrate than file-executable-p which returns t for directories. (mh-file-command-p): Move here from mh-utils, since mh-variant-*-info are the only functions to use it. @@ -1962,8 +1966,8 @@ * mh-customize.el (mh-folder-msg-number): Snow is actually off-white on low color displays which turns to white when bold. - This is unreadable on white backgrounds. Use snow with min-colors - requirement. Use cyan on low-color displays. + This is unreadable on white backgrounds. Use snow with min-colors + requirement. Use cyan on low-color displays. * mh-init.el (mh-defface-compat): On low-color displays, delete the high-color display rather than simply strip the min-colors @@ -1976,13 +1980,13 @@ 2006-01-02 Bill Wohler <wohler@newt.com> * mh-alias.el (mh-alias-grab-from-field): Remove leading * from - docstring. Does this mean something in a defun? + docstring. Does this mean something in a defun? * mh-customize.el (bw-new-face-to-old, bw-old-face-to-new): Checkdoc fix. * mh-e.el (mh-inc-folder): Rename maildrop-name argument to file - so it reads better in docstring and manual. Sync docstring with + so it reads better in docstring and manual. Sync docstring with manual. * mh-init.el (mh-defface-compat): Remove trailing space (checkdoc). @@ -2004,7 +2008,7 @@ * mh-e.el (mh-refile-or-write-again, mh-toggle-showing): Ditto. * mh-funcs.el (mh-pipe-msg, mh-sort-folder, mh-undo-folder) - (mh-store-msg, mh-store-buffer): Ditto + (mh-store-msg, mh-store-buffer): Ditto. * mh-index.el (mh-index-search, mh-index-do-search) (mh-index-next-folder, mh-index-sequenced-messages): Ditto. @@ -2014,7 +2018,7 @@ * mh-mime.el (mh-mh-compose-external-compressed-tar) (mh-mh-compose-external-type, mh-mh-to-mime, mh-mh-to-mime-undo) (mh-mml-secure-message-sign, mh-mml-secure-message-encrypt) - (mh-mml-secure-message-signencrypt): Ditto + (mh-mml-secure-message-signencrypt): Ditto. * mh-pick.el (mh-search-folder): Ditto. @@ -2068,7 +2072,7 @@ (mh-scan-date-regexp, mh-scan-rcpt-regexp, mh-scan-body-regexp) (mh-scan-subject-regexp): Sync docstrings with manual (mh-scan-format-regexp): Rename to - mh-scan-sent-to-me-sender-regexp. Drop date parenthesized + mh-scan-sent-to-me-sender-regexp. Drop date parenthesized expression. Make expression more like the others (anchored at the beginning of line). Sync docstrings with manual. (mh-folder-font-lock-keywords): Use faces directly rather than @@ -2228,7 +2232,7 @@ (mh-tool-bar-define): Replace toolbar with tool-bar or tool bar depending on context. (mh-toolbar-init): Rename to mh-tool-bar-init. Simplify condition - for calling set-specifier. Only look at the value of + for calling set-specifier. Only look at the value of mh-xemacs-use-tool-bar-flag. (mh-tool-bar-folder-buttons, mh-tool-bar-letter-buttons): Sync docstrings with manual. @@ -2501,7 +2505,7 @@ msg argument to message (to make for a better docstring). * mh-customize.el (mh-redist-full-contents-flag): Convert defvar - to defcustom. Rename by adding -flag. + to defcustom. Rename by adding -flag. (mh-compose-forward-as-mime-flag) (mh-compose-letter-function, mh-forward-subject-format) (mh-insert-x-mailer-flag, mh-reply-default-reply-to) @@ -2623,10 +2627,10 @@ Sync docstring with manual. * mh-identity.el (mh-assoc-ignore-case): Merge with version in - mh-alias.el and move to mh-acros.el + mh-alias.el and move to mh-acros.el. * mh-alias.el (mh-assoc-ignore-case): Merge with version in - mh-identity.el and move to mh-acros.el + mh-identity.el and move to mh-acros.el. * mh-acros.el (mh-assoc-ignore-case): Merge of function from mh-identity.el and mh-alias.el. @@ -2667,15 +2671,15 @@ mh-mhn-compose-external-compressed-tar to mh-mh-compose-external-compressed-tar. Rename mh-mhn-compose-anon-ftp to mh-mh-compose-anon-ftp. Rename - mh-edit-mhn to mh-mh-to-mime. Rename mh-mhn-directive-present-p to - mh-mh-directive-present-p. Rename mh-revert-mhn-edit to + mh-edit-mhn to mh-mh-to-mime. Rename mh-mhn-directive-present-p to + mh-mh-directive-present-p. Rename mh-revert-mhn-edit to mh-mh-to-mime-undo. Rename mh-gnus-pgp-support-flag to mh-pgp-support-flag. Rename mh-compose-insertion value from 'mhn to 'mh. (mh-insert-signature): Rename mh-mhn-directive-present-p to mh-mh-directive-present-p. (mh-send-letter): Rename mh-mhn-directive-present-p to - mh-mh-directive-present-p. Rename mh-edit-mhn to mh-mh-to-mime. + mh-mh-directive-present-p. Rename mh-edit-mhn to mh-mh-to-mime. (mh-letter-mode-map): Rename mh-edit-mhn to mh-mh-to-mime. Rename mh-mhn-compose-anon-ftp to mh-mh-compose-anon-ftp. Rename mh-mhn-compose-external-compressed-tar to @@ -2829,7 +2833,7 @@ * mh-e.el (Version, mh-version): Add +cvs to version. -2005-10-14 Bill Wohler <wohler@newt.com> +2005-10-14 Bill Wohler <wohler@newt.com> Released MH-E version 7.85. diff --git a/lisp/mh-e/mh-mime.el b/lisp/mh-e/mh-mime.el index 0f2b7daa741..56cfc6544ce 100644 --- a/lisp/mh-e/mh-mime.el +++ b/lisp/mh-e/mh-mime.el @@ -1667,7 +1667,7 @@ This action can be undone by running \\[undo]." (defun mh-mh-directive-present-p (&optional begin end) "Check if the text between BEGIN and END might be a MH-style directive. The optional argument BEGIN defaults to the beginning of the -buffer, while END defaults to the the end of the buffer." +buffer, while END defaults to the end of the buffer." (unless begin (setq begin (point-min))) (unless end (setq end (point-max))) (save-excursion diff --git a/lisp/mh-e/mh-search.el b/lisp/mh-e/mh-search.el index 715556ad16d..ebd45aef6a6 100644 --- a/lisp/mh-e/mh-search.el +++ b/lisp/mh-e/mh-search.el @@ -1357,7 +1357,7 @@ record is invalid return 'error." ;;;###mh-autoload (defun mh-index-group-by-folder () "Partition the messages based on source folder. -Returns an alist with the the folder names in the car and the cdr +Returns an alist with the folder names in the car and the cdr being the list of messages originally from that folder." (save-excursion (goto-char (point-min)) diff --git a/lisp/net/socks.el b/lisp/net/socks.el new file mode 100644 index 00000000000..ee2bc0c1d2d --- /dev/null +++ b/lisp/net/socks.el @@ -0,0 +1,650 @@ +;;; socks.el --- A Socks v5 Client for Emacs + +;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2002, +;; 2007 Free Software Foundation, Inc. + +;; Author: William M. Perry <wmperry@gnu.org> +;; Dave Love <fx@gnu.org> +;; Keywords: comm, firewalls + +;; This file is part of GNU Emacs. + +;; GNU Emacs is free software; you can redistribute it and/or modify +;; it under the terms of the GNU General Public License as published by +;; the Free Software Foundation; either version 2, or (at your option) +;; any later version. + +;; GNU Emacs is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. + +;; You should have received a copy of the GNU General Public License +;; along with GNU Emacs; see the file COPYING. If not, write to the +;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +;; Boston, MA 02110-1301, USA. + +;;; Commentary: + +;; This is an implementation of the SOCKS v5 protocol as defined in +;; RFC 1928. + +;; TODO +;; - Finish the redirection rules stuff +;; - Implement composition of servers. Recursively evaluate the +;; redirection rules and do SOCKS-over-HTTP and SOCKS-in-SOCKS + +(eval-when-compile + (require 'wid-edit)) +(require 'custom) + +(if (not (fboundp 'split-string)) + (defun split-string (string &optional pattern) + "Return a list of substrings of STRING which are separated by PATTERN. +If PATTERN is omitted, it defaults to \"[ \\f\\t\\n\\r\\v]+\"." + (or pattern + (setq pattern "[ \f\t\n\r\v]+")) + (let (parts (start 0)) + (while (string-match pattern string start) + (setq parts (cons (substring string start (match-beginning 0)) parts) + start (match-end 0))) + (nreverse (cons (substring string start) parts))))) +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;; Custom widgets +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +(define-widget 'dynamic-choice 'menu-choice + "A pretty simple dynamic dropdown list" + :format "%[%t%]: %v" + :tag "Network" + :case-fold t + :void '(item :format "invalid (%t)\n") + :value-create 's5-widget-value-create + :value-delete 'widget-children-value-delete + :value-get 'widget-choice-value-get + :value-inline 'widget-choice-value-inline + :mouse-down-action 'widget-choice-mouse-down-action + :action 'widget-choice-action + :error "Make a choice" + :validate 'widget-choice-validate + :match 's5-dynamic-choice-match + :match-inline 's5-dynamic-choice-match-inline) + +(defun s5-dynamic-choice-match (widget value) + (let ((choices (funcall (widget-get widget :choice-function))) + current found) + (while (and choices (not found)) + (setq current (car choices) + choices (cdr choices) + found (widget-apply current :match value))) + found)) + +(defun s5-dynamic-choice-match-inline (widget value) + (let ((choices (funcall (widget-get widget :choice-function))) + current found) + (while (and choices (not found)) + (setq current (car choices) + choices (cdr choices) + found (widget-match-inline current value))) + found)) + +(defun s5-widget-value-create (widget) + (let ((choices (funcall (widget-get widget :choice-function))) + (value (widget-get widget :value))) + (if (not value) + (widget-put widget :value (widget-value (car choices)))) + (widget-put widget :args choices) + (widget-choice-value-create widget))) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;; Customization support +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +(defgroup socks nil + "SOCKS Support" + :prefix "socks-" + :group 'processes) + +'(defcustom socks-server-aliases nil + "A list of server aliases for use in access control and filtering rules." + :group 'socks + :type '(repeat (list :format "%v" + :value ("" "" 1080 5) + (string :tag "Alias") + (string :tag "Hostname/IP Address") + (integer :tag "Port #") + (choice :tag "SOCKS Version" + (integer :tag "SOCKS v4" :value 4) + (integer :tag "SOCKS v5" :value 5))))) + +'(defcustom socks-network-aliases + '(("Anywhere" (netmask "0.0.0.0" "0.0.0.0"))) + "A list of network aliases for use in subsequent rules." + :group 'socks + :type '(repeat (list :format "%v" + :value (netmask "" "255.255.255.0") + (string :tag "Alias") + (radio-button-choice + :format "%v" + (list :tag "IP address range" + (const :format "" :value range) + (string :tag "From") + (string :tag "To")) + (list :tag "IP address/netmask" + (const :format "" :value netmask) + (string :tag "IP Address") + (string :tag "Netmask")) + (list :tag "Domain Name" + (const :format "" :value domain) + (string :tag "Domain name")) + (list :tag "Unique hostname/IP address" + (const :format "" :value exact) + (string :tag "Hostname/IP Address")))))) + +'(defun s5-servers-filter () + (if socks-server-aliases + (mapcar (lambda (x) (list 'const :tag (car x) :value (car x))) s5-server-aliases) + '((const :tag "No aliases defined" :value nil)))) + +'(defun s5-network-aliases-filter () + (mapcar (lambda (x) (list 'const :tag (car x) :value (car x))) + socks-network-aliases)) + +'(defcustom socks-redirection-rules + nil + "A list of redirection rules." + :group 'socks + :type '(repeat (list :format "%v" + :value ("Anywhere" nil) + (dynamic-choice :choice-function s5-network-aliases-filter + :tag "Destination network") + (radio-button-choice + :tag "Connection type" + (const :tag "Direct connection" :value nil) + (dynamic-choice :format "%t: %[%v%]" + :choice-function s5-servers-filter + :tag "Proxy chain via"))))) + +(defcustom socks-server + (list "Default server" "socks" 1080 5) + "" + :group 'socks + :type '(list + (string :format "" :value "Default server") + (string :tag "Server") + (integer :tag "Port") + (radio-button-choice :tag "SOCKS Version" + :format "%t: %v" + (const :tag "SOCKS v4 " :format "%t" :value 4) + (const :tag "SOCKS v5" :format "%t" :value 5)))) + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;; Get down to the nitty gritty +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +(defconst socks-version 5) +(defvar socks-debug nil) + +;; Common socks v5 commands +(defconst socks-connect-command 1) +(defconst socks-bind-command 2) +(defconst socks-udp-associate-command 3) + +;; Miscellaneous other socks constants +(defconst socks-authentication-null 0) +(defconst socks-authentication-failure 255) + +;; Response codes +(defconst socks-response-success 0) +(defconst socks-response-general-failure 1) +(defconst socks-response-access-denied 2) +(defconst socks-response-network-unreachable 3) +(defconst socks-response-host-unreachable 4) +(defconst socks-response-connection-refused 5) +(defconst socks-response-ttl-expired 6) +(defconst socks-response-cmd-not-supported 7) +(defconst socks-response-address-not-supported 8) + +(defvar socks-errors + '("Succeeded" + "General SOCKS server failure" + "Connection not allowed by ruleset" + "Network unreachable" + "Host unreachable" + "Connection refused" + "Time-to-live expired" + "Command not supported" + "Address type not supported")) + +;; The socks v5 address types +(defconst socks-address-type-v4 1) +(defconst socks-address-type-name 3) +(defconst socks-address-type-v6 4) + +;; Base variables +(defvar socks-timeout 5) +(defvar socks-connections (make-hash-table :size 13)) + +;; Miscellaneous stuff for authentication +(defvar socks-authentication-methods nil) +(defvar socks-username (user-login-name)) +(defvar socks-password nil) + +(defun socks-register-authentication-method (id desc callback) + (let ((old (assq id socks-authentication-methods))) + (if old + (setcdr old (cons desc callback)) + (setq socks-authentication-methods + (cons (cons id (cons desc callback)) + socks-authentication-methods))))) + +(defun socks-unregister-authentication-method (id) + (let ((old (assq id socks-authentication-methods))) + (if old + (setq socks-authentication-methods + (delq old socks-authentication-methods))))) + +(socks-register-authentication-method 0 "No authentication" 'identity) + +(defun socks-build-auth-list () + (let ((num 0) + (retval "")) + (mapcar + (function + (lambda (x) + (if (fboundp (cdr (cdr x))) + (setq retval (format "%s%c" retval (car x)) + num (1+ num))))) + (reverse socks-authentication-methods)) + (format "%c%s" num retval))) + +(defconst socks-state-waiting-for-auth 0) +(defconst socks-state-submethod-negotiation 1) +(defconst socks-state-authenticated 2) +(defconst socks-state-waiting 3) +(defconst socks-state-connected 4) + +(defmacro socks-wait-for-state-change (proc htable cur-state) + (` + (while (and (= (gethash 'state (, htable)) (, cur-state)) + (memq (process-status (, proc)) '(run open))) + (accept-process-output (, proc) socks-timeout)))) + +(defun socks-filter (proc string) + (let ((info (gethash proc socks-connections)) + state version desired-len) + (or info (error "socks-filter called on non-SOCKS connection %S" proc)) + (setq state (gethash 'state info)) + (cond + ((= state socks-state-waiting-for-auth) + (puthash 'scratch (concat string (gethash 'scratch info)) info) + (setq string (gethash 'scratch info)) + (if (< (length string) 2) + nil ; We need to spin some more + (puthash 'authtype (aref string 1) info) + (puthash 'scratch (substring string 2 nil) info) + (puthash 'state socks-state-submethod-negotiation info))) + ((= state socks-state-submethod-negotiation) + ) + ((= state socks-state-authenticated) + ) + ((= state socks-state-waiting) + (puthash 'scratch (concat string (gethash 'scratch info)) info) + (setq string (gethash 'scratch info)) + (setq version (gethash 'server-protocol info)) + (cond + ((equal version 'http) + (if (not (string-match "\r\n\r\n" string)) + nil ; Need to spin some more + (puthash 'state socks-state-connected info) + (puthash 'reply 0 info) + (puthash 'response string info))) + ((equal version 4) + (if (< (length string) 2) + nil ; Can't know how much to read yet + (setq desired-len + (+ 4 ; address length + 2 ; port + 2 ; initial data + )) + (if (< (length string) desired-len) + nil ; need to spin some more + (let ((response (aref string 1))) + (if (= response 90) + (setq response 0)) + (puthash 'state socks-state-connected info) + (puthash 'reply response info) + (puthash 'response string info))))) + ((equal version 5) + (if (< (length string) 4) + nil + (setq desired-len + (+ 6 ; Standard socks header + (cond + ((= (aref string 3) socks-address-type-v4) 4) + ((= (aref string 3) socks-address-type-v6) 16) + ((= (aref string 3) socks-address-type-name) + (if (< (length string) 5) + 255 + (+ 1 (aref string 4))))))) + (if (< (length string) desired-len) + nil ; Need to spin some more + (puthash 'state socks-state-connected info) + (puthash 'reply (aref string 1) info) + (puthash 'response string info)))))) + ((= state socks-state-connected) + ) + ) + ) + ) + +(defun socks-open-connection (server-info) + (interactive) + (save-excursion + (let ((proc (socks-original-open-network-stream "socks" + nil + (nth 1 server-info) + (nth 2 server-info))) + (info (make-hash-table :size 13)) + (authtype nil) + version) + + ;; Initialize process and info about the process + (set-process-filter proc 'socks-filter) + (set-process-query-on-exit-flag proc nil) + (puthash proc info socks-connections) + (puthash 'state socks-state-waiting-for-auth info) + (puthash 'authtype socks-authentication-failure info) + (puthash 'server-protocol (nth 3 server-info) info) + (puthash 'server-name (nth 1 server-info) info) + (setq version (nth 3 server-info)) + (cond + ((equal version 'http) + ;; Don't really have to do any connection setup under http + nil) + ((equal version 4) + ;; Don't really have to do any connection setup under v4 + nil) + ((equal version 5) + ;; Need to handle all the authentication crap under v5 + ;; Send what we think we can handle for authentication types + (process-send-string proc (format "%c%s" socks-version + (socks-build-auth-list))) + + ;; Basically just do a select() until we change states. + (socks-wait-for-state-change proc info socks-state-waiting-for-auth) + (setq authtype (gethash 'authtype info)) + (cond + ((= authtype socks-authentication-null) + (and socks-debug (message "No authentication necessary"))) + ((= authtype socks-authentication-failure) + (error "No acceptable authentication methods found.")) + (t + (let* ((auth-type (gethash 'authtype info)) + (auth-handler (assoc auth-type socks-authentication-methods)) + (auth-func (and auth-handler (cdr (cdr auth-handler)))) + (auth-desc (and auth-handler (car (cdr auth-handler))))) + (set-process-filter proc nil) + (if (and auth-func (fboundp auth-func) + (funcall auth-func proc)) + nil ; We succeeded! + (delete-process proc) + (error "Failed to use auth method: %s (%d)" + (or auth-desc "Unknown") auth-type)) + ) + ) + ) + (puthash 'state socks-state-authenticated info) + (set-process-filter proc 'socks-filter))) + proc))) + +(defun socks-send-command (proc command atype address port) + (let ((addr (cond + ((or (= atype socks-address-type-v4) + (= atype socks-address-type-v6)) + address) + ((= atype socks-address-type-name) + (format "%c%s" (length address) address)) + (t + (error "Unkown address type: %d" atype)))) + (info (gethash proc socks-connections)) + request version) + (or info (error "socks-send-command called on non-SOCKS connection %S" + proc)) + (puthash 'state socks-state-waiting info) + (setq version (gethash 'server-protocol info)) + (cond + ((equal version 'http) + (setq request (format (eval-when-compile + (concat + "CONNECT %s:%d HTTP/1.0\r\n" + "User-Agent: Emacs/SOCKS v1.0\r\n" + "\r\n")) + (cond + ((equal atype socks-address-type-name) address) + (t + (error "Unsupported address type for HTTP: %d" atype))) + port))) + ((equal version 4) + (setq request (format + "%c%c%c%c%s%s%c" + version ; version + command ; command + (lsh port -8) ; port, high byte + (- port (lsh (lsh port -8) 8)) ; port, low byte + addr ; address + (user-full-name) ; username + 0 ; terminate username + ))) + ((equal version 5) + (setq request (format + "%c%c%c%c%s%c%c" + version ; version + command ; command + 0 ; reserved + atype ; address type + addr ; address + (lsh port -8) ; port, high byte + (- port (lsh (lsh port -8) 8)) ; port, low byte + ))) + (t + (error "Unknown protocol version: %d" version))) + (process-send-string proc request) + (socks-wait-for-state-change proc info socks-state-waiting) + (process-status proc) + (if (= (or (gethash 'reply info) 1) socks-response-success) + nil ; Sweet sweet success! + (delete-process proc) + (error "SOCKS: %s" (nth (or (gethash 'reply info) 1) socks-errors))) + proc)) + + +;; Replacement functions for open-network-stream, etc. +(defvar socks-noproxy nil + "*List of regexps matching hosts that we should not socksify connections to") + +(defun socks-find-route (host service) + (let ((route socks-server) + (noproxy socks-noproxy)) + (while noproxy + (if (eq ?! (aref (car noproxy) 0)) + (if (string-match (substring (car noproxy) 1) host) + (setq noproxy nil)) + (if (string-match (car noproxy) host) + (setq route nil + noproxy nil))) + (setq noproxy (cdr noproxy))) + route)) + +(defvar socks-override-functions nil + "*Whether to overwrite the open-network-stream function with the SOCKSified +version.") + +(if (fboundp 'socks-original-open-network-stream) + nil ; Do nothing, we've been here already + (defalias 'socks-original-open-network-stream + (symbol-function 'open-network-stream)) + (if socks-override-functions + (defalias 'open-network-stream 'socks-open-network-stream))) + +(defvar socks-services-file "/etc/services") +(defvar socks-tcp-services (make-hash-table :size 13 :test 'equal)) +(defvar socks-udp-services (make-hash-table :size 13 :test 'equal)) + +(defun socks-parse-services () + (if (not (and (file-exists-p socks-services-file) + (file-readable-p socks-services-file))) + (error "Could not find services file: %s" socks-services-file)) + (save-excursion + (clrhash socks-tcp-services) + (clrhash socks-udp-services) + (set-buffer (get-buffer-create " *socks-tmp*")) + (erase-buffer) + (insert-file-contents socks-services-file) + ;; Nuke comments + (goto-char (point-min)) + (while (re-search-forward "#.*" nil t) + (replace-match "")) + ;; Nuke empty lines + (goto-char (point-min)) + (while (re-search-forward "^[ \t\n]+" nil t) + (replace-match "")) + ;; Now find all the lines + (goto-char (point-min)) + (let (name port type) + (while (re-search-forward "^\\([^ \t]+\\)[ \t]+\\([0-9]+\\)/\\([a-z]+\\)" + nil t) + (setq name (downcase (match-string 1)) + port (string-to-number (match-string 2)) + type (downcase (match-string 3))) + (puthash name port (if (equal type "udp") + socks-udp-services + socks-tcp-services)))))) + +(defun socks-find-services-entry (service &optional udp) + "Return the port # associated with SERVICE" + (if (= (hash-table-count socks-tcp-services) 0) + (socks-parse-services)) + (gethash (downcase service) + (if udp socks-udp-services socks-tcp-services))) + +(defun socks-open-network-stream (name buffer host service) + (let* ((route (socks-find-route host service)) + proc info version atype) + (if (not route) + (socks-original-open-network-stream name buffer host service) + (setq proc (socks-open-connection route) + info (gethash proc socks-connections) + version (gethash 'server-protocol info)) + (cond + ((equal version 4) + (setq host (socks-nslookup-host host)) + (if (not (listp host)) + (error "Could not get IP address for: %s" host)) + (setq host (apply 'format "%c%c%c%c" host)) + (setq atype socks-address-type-v4)) + (t + (setq atype socks-address-type-name))) + (socks-send-command proc + socks-connect-command + atype + host + (if (stringp service) + (socks-find-services-entry service) + service)) + (puthash 'buffer buffer info) + (puthash 'host host info) + (puthash 'service host info) + (set-process-filter proc nil) + (set-process-buffer proc (if buffer (get-buffer-create buffer))) + proc))) + +;; Authentication modules go here + +;; Basic username/password authentication, ala RFC 1929 +(socks-register-authentication-method 2 "Username/Password" + 'socks-username/password-auth) + +(defconst socks-username/password-auth-version 1) + +(defun socks-username/password-auth-filter (proc str) + (let ((info (gethash proc socks-connections)) + state desired-len) + (or info (error "socks-filter called on non-SOCKS connection %S" proc)) + (setq state (gethash 'state info)) + (puthash 'scratch (concat (gethash 'scratch info) str) info) + (if (< (length (gethash 'scratch info)) 2) + nil + (puthash 'password-auth-status (aref (gethash 'scratch info) 1) info) + (puthash 'state socks-state-authenticated info)))) + +(defun socks-username/password-auth (proc) + (let* ((info (gethash proc socks-connections)) + (state (gethash 'state info))) + (if (not socks-password) + (setq socks-password (read-passwd + (format "Password for %s@%s: " + socks-username + (gethash 'server-name info))))) + (puthash 'scratch "" info) + (set-process-filter proc 'socks-username/password-auth-filter) + (process-send-string proc + (format "%c%c%s%c%s" + socks-username/password-auth-version + (length socks-username) + socks-username + (length socks-password) + socks-password)) + (socks-wait-for-state-change proc info state) + (= (gethash 'password-auth-status info) 0))) + + +;; More advanced GSS/API stuff, not yet implemented - volunteers? +;; (socks-register-authentication-method 1 "GSS/API" 'socks-gssapi-auth) + +(defun socks-gssapi-auth (proc) + nil) + + +;; CHAP stuff +;; (socks-register-authentication-method 3 "CHAP" 'socks-chap-auth) +(defun socks-chap-auth (proc) + nil) + + +;; CRAM stuff +;; (socks-register-authentication-method 5 "CRAM" 'socks-cram-auth) +(defun socks-cram-auth (proc) + nil) + + +(defcustom socks-nslookup-program "nslookup" + "*If non-NIL then a string naming the nslookup program." + :type '(choice (const :tag "None" :value nil) string) + :group 'socks) + +(defun socks-nslookup-host (host) + "Attempt to resolve the given HOSTNAME using nslookup if possible." + (interactive "sHost: ") + (if socks-nslookup-program + (let ((proc (start-process " *nslookup*" " *nslookup*" + socks-nslookup-program host)) + (res host)) + (set-process-query-on-exit-flag proc nil) + (save-excursion + (set-buffer (process-buffer proc)) + (while (progn + (accept-process-output proc) + (memq (process-status proc) '(run open)))) + (goto-char (point-min)) + (if (re-search-forward "Name:.*\nAddress\\(es\\)?: *\\([0-9.]+\\)$" nil t) + (progn + (setq res (buffer-substring (match-beginning 2) + (match-end 2)) + res (mapcar 'string-to-int (split-string res "\\."))))) + (kill-buffer (current-buffer))) + res) + host)) + +(provide 'socks) + +;; arch-tag: 67aef0d9-f4f7-4056-89c3-b4c9bf93ce7f +;;; socks.el ends here diff --git a/lisp/pgg.el b/lisp/pgg.el index f6a5a96d2b8..eabc4f47408 100644 --- a/lisp/pgg.el +++ b/lisp/pgg.el @@ -332,7 +332,7 @@ cache or user." (interactive "r") (let ((status (pgg-save-coding-system start end - (pgg-invoke "encrypt-symmetric-region" + (pgg-invoke "encrypt-symmetric-region" (or pgg-scheme pgg-default-scheme) (point-min) (point-max) passphrase)))) (when (interactive-p) @@ -416,7 +416,7 @@ If the optional 3rd argument CLEARTEXT is non-nil, it does not create a detached signature. If this function is called interactively, CLEARTEXT is enabled -and the the output is displayed. +and the output is displayed. If optional PASSPHRASE is not specified, it will be obtained from the passphrase cache or user." @@ -441,7 +441,7 @@ If optional arguments START and END are specified, only sign data within the region. If this function is called interactively, CLEARTEXT is enabled -and the the output is displayed. +and the output is displayed. If optional PASSPHRASE is not specified, it will be obtained from the passphrase cache or user." @@ -485,7 +485,7 @@ signer's public key from `pgg-default-keyserver-address'." (or (cdr (assq 'preferred-key-server packet)) pgg-default-keyserver-address)) (pgg-fetch-key keyserver key)) - (setq status + (setq status (pgg-save-coding-system start end (pgg-invoke "verify-region" (or pgg-scheme pgg-default-scheme) (point-min) (point-max) signature))) diff --git a/lisp/progmodes/compile.el b/lisp/progmodes/compile.el index 7701809463d..a9f5f77c126 100644 --- a/lisp/progmodes/compile.el +++ b/lisp/progmodes/compile.el @@ -38,11 +38,14 @@ ;; LINE will be nil for a message that doesn't contain them. Then the ;; location refers to a indented beginning of line or beginning of file. ;; Once any location in some file has been jumped to, the list is extended to -;; (COLUMN LINE FILE-STRUCTURE MARKER . VISITED) for all LOCs pertaining to -;; that file. +;; (COLUMN LINE FILE-STRUCTURE MARKER TIMESTAMP . VISITED) +;; for all LOCs pertaining to that file. ;; MARKER initially points to LINE and COLUMN in a buffer visiting that file. ;; Being a marker it sticks to some text, when the buffer grows or shrinks ;; before that point. VISITED is t if we have jumped there, else nil. +;; TIMESTAMP is necessary because of "incremental compilation": `omake -P' +;; polls filesystem for changes and recompiles when a file is modified +;; using the same *compilation* buffer. this necessitates re-parsing markers. ;; FILE-STRUCTURE is a list of ;; ((FILENAME . DIRECTORY) FORMATS (LINE LOC ...) ...) @@ -117,7 +120,7 @@ bound to the compilation buffer and window, respectively.") "Function to compute the name of a compilation buffer. The function receives one argument, the name of the major mode of the compilation buffer. It should return a string. -nil means compute the name with `(concat \"*\" (downcase major-mode) \"*\")'.") +If nil, compute the name with `(concat \"*\" (downcase major-mode) \"*\")'.") ;;;###autoload (defvar compilation-finish-function nil @@ -126,7 +129,7 @@ It is called with two arguments: the compilation buffer, and a string describing how the process finished.") (make-obsolete-variable 'compilation-finish-function - "Use `compilation-finish-functions', but it works a little differently." + "use `compilation-finish-functions', but it works a little differently." "22.1") ;;;###autoload @@ -466,7 +469,7 @@ Otherwise, it saves all modified buffers without asking." (defcustom compilation-search-path '(nil) "*List of directories to search for source files named in error messages. Elements should be directory names, not file names of directories. -nil as an element means to try the default directory." +The value nil as an element means to try the default directory." :type '(repeat (choice (const :tag "Default" nil) (string :tag "Directory"))) :group 'compilation) @@ -1419,7 +1422,7 @@ Turning the mode on runs the normal hook `compilation-minor-mode-hook'." (font-lock-fontify-buffer))) (defun compilation-handle-exit (process-status exit-status msg) - "Write MSG in the current buffer and hack its mode-line-process." + "Write MSG in the current buffer and hack its `mode-line-process'." (let ((inhibit-read-only t) (status (if compilation-exit-message-function (funcall compilation-exit-message-function @@ -1516,7 +1519,7 @@ Just inserts the text, but uses `insert-before-markers'." (eq (prog1 last (setq last (nth 2 (car msg)))) last)) (if compilation-skip-visited - (nthcdr 4 (car msg))) + (nthcdr 5 (car msg))) (if compilation-skip-to-next-location (eq (car msg) loc)) ;; count this message only if none of the above are true @@ -1619,7 +1622,7 @@ This is the value of `next-error-function' in Compilation buffers." (when reset (setq compilation-current-error nil)) (let* ((columns compilation-error-screen-columns) ; buffer's local value - (last 1) + (last 1) timestamp (loc (compilation-next-error (or n 1) nil (or compilation-current-error compilation-messages-start @@ -1632,10 +1635,17 @@ This is the value of `next-error-function' in Compilation buffers." compilation-current-error (copy-marker (line-beginning-position))) loc (car loc)) - ;; If loc contains no marker, no error in that file has been visited. If - ;; the marker is invalid the buffer has been killed. So, recalculate all - ;; markers for that file. - (unless (and (nth 3 loc) (marker-buffer (nth 3 loc))) + ;; If loc contains no marker, no error in that file has been visited. + ;; If the marker is invalid the buffer has been killed. + ;; If the file is newer than the timestamp, it has been modified + ;; (`omake -P' polls filesystem for changes and recompiles when needed + ;; in the same process and buffer). + ;; So, recalculate all markers for that file. + (unless (and (nth 3 loc) (marker-buffer (nth 3 loc)) + (equal (nth 4 loc) + (setq timestamp + (with-current-buffer (marker-buffer (nth 3 loc)) + (visited-file-modtime))))) (with-current-buffer (compilation-find-file marker (caar (nth 2 loc)) (cadr (car (nth 2 loc)))) (save-restriction @@ -1658,7 +1668,8 @@ This is the value of `next-error-function' in Compilation buffers." (set-marker (nth 3 col) (point)) (setcdr (nthcdr 2 col) `(,(point-marker))))))))) (compilation-goto-locus marker (nth 3 loc) (nth 3 end-loc)) - (setcdr (nthcdr 3 loc) t))) ; Set this one as visited. + (setcdr (nthcdr 3 loc) (list timestamp)) + (setcdr (nthcdr 4 loc) t))) ; Set this one as visited. (defvar compilation-gcpro nil "Internal variable used to keep some values from being GC'd.") @@ -1825,8 +1836,8 @@ and overlay is highlighted between MK and END-MK." Search the directories in `compilation-search-path'. A nil in `compilation-search-path' means to try the \"current\" directory, which is passed in DIRECTORY. -If DIRECTORY. is relative, it is combined with `default-directory'. -If DIRECTORY. is nil, that means use `default-directory'. +If DIRECTORY is relative, it is combined with `default-directory'. +If DIRECTORY is nil, that means use `default-directory'. If FILENAME is not found at all, ask the user where to find it. Pop up the buffer containing MARKER and scroll to MARKER if we ask the user." (or formats (setq formats '("%s"))) @@ -1867,7 +1878,7 @@ Pop up the buffer containing MARKER and scroll to MARKER if we ask the user." ;; restrictive otherwise, since it also prevents the ;; user from completing "fo" to "foo/" when she ;; wants to enter "foo/bar". - ;; + ;; ;; Try to make sure the user can only select ;; a valid answer. This predicate may be ignored, ;; tho, so we still have to double-check afterwards. diff --git a/lisp/progmodes/ebrowse.el b/lisp/progmodes/ebrowse.el index cc808adda39..d3e00888889 100644 --- a/lisp/progmodes/ebrowse.el +++ b/lisp/progmodes/ebrowse.el @@ -1003,7 +1003,7 @@ type `ebrowse-hs' is set to the resulting obarray." (defun ebrowse-member-table (header) - "Return the member obarray. Build it it hasn't been set up yet. + "Return the member obarray. Build it if it hasn't been set up yet. HEADER is the tree header structure of the class tree." (when (null (ebrowse-hs-member-table header)) (loop for buffer in (ebrowse-browser-buffer-list) @@ -3598,7 +3598,7 @@ The file name is read from the minibuffer." (defun* ebrowse-draw-file-member-info (info &optional (kind "")) - "Display a line in an the members per file info buffer. + "Display a line in the members info buffer. INFO describes the member. It has the form (TREE ACCESSOR MEMBER). TREE is the class of the member to display. ACCESSOR is the accessor symbol of its member list. diff --git a/lisp/progmodes/idlwave.el b/lisp/progmodes/idlwave.el index cf518b17d94..4c58919ec1f 100644 --- a/lisp/progmodes/idlwave.el +++ b/lisp/progmodes/idlwave.el @@ -7095,7 +7095,7 @@ sort the list before displaying" "Make the user select an element from the alist in the variable SYM. The keys of the alist are expected to be strings. The function returns the car of the selected association. -To do this, PROMPT is displayed and and the user must hit a letter key to +To do this, PROMPT is displayed and the user must hit a letter key to select an entry. If the user does not reply within DELAY seconds, a help window with the options is displayed automatically. The key which is associated with each option is generated automatically. diff --git a/lisp/progmodes/mixal-mode.el b/lisp/progmodes/mixal-mode.el index d2b78b1d143..146b228453e 100644 --- a/lisp/progmodes/mixal-mode.el +++ b/lisp/progmodes/mixal-mode.el @@ -1017,7 +1017,7 @@ The converted character representation is stored in rAX." "Alist that contains all the possible operation codes for mix. Each elt has the form (OP-CODE GROUP FULL-NAME C-BYTE F-BYTE DESCRIPTION EXECUTION-TIME) -Where OP-CODE is the text of the opcode as an symbol, +Where OP-CODE is the text of the opcode as a symbol, FULL-NAME is the human readable name as a string, C-BYTE is the operation code telling what operation is to be performed, F-BYTE holds a modification of the operation code which can be a symbol diff --git a/lisp/ses.el b/lisp/ses.el index 2eec1b68e47..4f51c803de1 100644 --- a/lisp/ses.el +++ b/lisp/ses.el @@ -878,9 +878,9 @@ preceding cell has spilled over." (defun ses-call-printer (printer &optional value) "Invokes PRINTER (a string or parenthesized string or function-symbol or -lambda of one argument) on VALUE. Result is the the printed cell as a -string. The variable `ses-call-printer-return' is set to t if the printer -used parenthesis to request left-justification, or the error-signal if the +lambda of one argument) on VALUE. Result is the printed cell as a string. +The variable `ses-call-printer-return' is set to t if the printer used +parenthesis to request left-justification, or the error-signal if the printer signaled one (and \"%s\" is used as the default printer), else nil." (setq ses-call-printer-return nil) (unless value diff --git a/lisp/startup.el b/lisp/startup.el index b36c9f1cfc4..4c2ae272545 100644 --- a/lisp/startup.el +++ b/lisp/startup.el @@ -1295,7 +1295,7 @@ using the mouse.\n\n") (emacs-version) "\n" :face '(variable-pitch :height 0.5) - "Copyright (C) 2007 Free Software Foundation, Inc.") + emacs-copyright) (and auto-save-list-file-prefix ;; Don't signal an error if the ;; directory for auto-save-list files diff --git a/lisp/tar-mode.el b/lisp/tar-mode.el index 65e2b0f1c0b..b97cb11165e 100644 --- a/lisp/tar-mode.el +++ b/lisp/tar-mode.el @@ -658,15 +658,15 @@ appear on disk when you save the tar-file's buffer." (size (tar-header-size tokens)) (link-p (tar-header-link-type tokens))) (if link-p - (error "This is a%s, not a real file" - (cond ((eq link-p 5) " directory") - ((eq link-p 20) " tar directory header") - ((eq link-p 28) " next has longname") - ((eq link-p 29) " multivolume-continuation") - ((eq link-p 35) " sparse entry") - ((eq link-p 38) " volume header") - ((eq link-p 55) "n extended pax header") - (t "link")))) + (error "This is %s, not a real file" + (cond ((eq link-p 5) "a directory") + ((eq link-p 20) "a tar directory header") + ((eq link-p 28) "a next has longname") + ((eq link-p 29) "a multivolume-continuation") + ((eq link-p 35) "a sparse entry") + ((eq link-p 38) "a volume header") + ((eq link-p 55) "an extended pax header") + (t "a link")))) (if (zerop size) (error "This is a zero-length file")) descriptor)) diff --git a/lisp/textmodes/css-mode.el b/lisp/textmodes/css-mode.el new file mode 100644 index 00000000000..00a438a3e95 --- /dev/null +++ b/lisp/textmodes/css-mode.el @@ -0,0 +1,469 @@ +;;; css-mode.el --- Major mode to edit CSS files + +;; Copyright (C) 2006, 2007 Free Software Foundation, Inc. + +;; Author: Stefan Monnier <monnier@iro.umontreal.ca> +;; Keywords: hypermedia + +;; This file is free software; you can redistribute it and/or modify +;; it under the terms of the GNU General Public License as published by +;; the Free Software Foundation; either version 2, or (at your option) +;; any later version. + +;; This file is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. + +;; You should have received a copy of the GNU General Public License +;; along with GNU Emacs; see the file COPYING. If not, write to +;; the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +;; Boston, MA 02110-1301, USA. + +;;; Commentary: + +;; Yet another CSS mode. + +;;; Todo: + +;; - electric ; and } +;; - filling code with auto-fill-mode +;; - completion +;; - fix font-lock errors with multi-line selectors + +;;; Code: + +(defun css-extract-keyword-list (res) + (with-temp-buffer + (url-insert-file-contents "http://www.w3.org/TR/REC-CSS2/css2.txt") + (goto-char (point-max)) + (search-backward "Appendix H. Index") + (forward-line) + (delete-region (point-min) (point)) + (let ((result nil) + keys) + (dolist (re res) + (goto-char (point-min)) + (setq keys nil) + (while (re-search-forward (cdr re) nil t) + (push (match-string 1) keys)) + (push (cons (car re) (sort keys 'string-lessp)) result)) + (nreverse result)))) + +(defun css-extract-parse-val-grammar (string env) + (let ((start 0) + (elems ()) + name) + (while (string-match + (concat "\\(?:" + (concat "<a [^>]+><span [^>]+>\\(?:" + "<\\([^&]+\\)>\\|'\\([^']+\\)'" + "\\)</span></a>") + "\\|" "\\(\\[\\)" + "\\|" "\\(]\\)" + "\\|" "\\(||\\)" + "\\|" "\\(|\\)" + "\\|" "\\([*+?]\\)" + "\\|" "\\({[^}]+}\\)" + "\\|" "\\(\\w+\\(?:-\\w+\\)*\\)" + "\\)[ \t\n]*") + string start) + ;; (assert (eq start (match-beginning 0))) + (setq start (match-end 0)) + (cond + ;; Reference to a type of value. + ((setq name (match-string-no-properties 1 string)) + (push (intern name) elems)) + ;; Reference to another property's values. + ((setq name (match-string-no-properties 2 string)) + (setq elems (delete-dups (append (cdr (assoc name env)) elems)))) + ;; A literal + ((setq name (match-string-no-properties 9 string)) + (push name elems)) + ;; We just ignore the rest. I.e. we ignore the structure because + ;; it's too difficult to exploit anyway (it would allow us to only + ;; complete top/center/bottom after one of left/center/right and + ;; vice-versa). + (t nil))) + elems)) + + +(defun css-extract-props-and-vals () + (with-temp-buffer + (url-insert-file-contents "http://www.w3.org/TR/CSS21/propidx.html") + (goto-char (point-min)) + (let ((props ())) + (while (re-search-forward "#propdef-\\([^\"]+\\)\"><span class=\"propinst-\\1 xref\">'\\1'</span></a>" nil t) + (let ((prop (match-string-no-properties 1))) + (save-excursion + (goto-char (match-end 0)) + (search-forward "<td>") + (let ((vals-string (buffer-substring (point) + (progn + (re-search-forward "[ \t\n]+|[ \t\n]+<a href=\"cascade.html#value-def-inherit\" class=\"noxref\"><span class=\"value-inst-inherit\">inherit</span></a>") + (match-beginning 0))))) + ;; + (push (cons prop (css-extract-parse-val-grammar vals-string props)) + props))))) + props))) + +;; Extraction was done with: +;; (css-extract-keyword-list +;; '((pseudo . "^ +\\* :\\([^ \n,]+\\)") +;; (at . "^ +\\* @\\([^ \n,]+\\)") +;; (descriptor . "^ +\\* '\\([^ '\n]+\\)' (descriptor)") +;; (media . "^ +\\* '\\([^ '\n]+\\)' media group") +;; (property . "^ +\\* '\\([^ '\n]+\\)',"))) + +(defconst css-pseudo-ids + '("active" "after" "before" "first" "first-child" "first-letter" "first-line" + "focus" "hover" "lang" "left" "link" "right" "visited") + "Identifiers for pseudo-elements and pseudo-classes.") + +(defconst css-at-ids + '("charset" "font-face" "import" "media" "page") + "Identifiers that appear in the form @foo.") + +(defconst css-descriptor-ids + '("ascent" "baseline" "bbox" "cap-height" "centerline" "definition-src" + "descent" "font-family" "font-size" "font-stretch" "font-style" + "font-variant" "font-weight" "mathline" "panose-1" "slope" "src" "stemh" + "stemv" "topline" "unicode-range" "units-per-em" "widths" "x-height") + "Identifiers for font descriptors.") + +(defconst css-media-ids + '("all" "aural" "bitmap" "continuous" "grid" "paged" "static" "tactile" + "visual") + "Identifiers for types of media.") + +(defconst css-property-ids + '("azimuth" "background" "background-attachment" "background-color" + "background-image" "background-position" "background-repeat" "block" + "border" "border-bottom" "border-bottom-color" "border-bottom-style" + "border-bottom-width" "border-collapse" "border-color" "border-left" + "border-left-color" "border-left-style" "border-left-width" "border-right" + "border-right-color" "border-right-style" "border-right-width" + "border-spacing" "border-style" "border-top" "border-top-color" + "border-top-style" "border-top-width" "border-width" "bottom" + "caption-side" "clear" "clip" "color" "compact" "content" + "counter-increment" "counter-reset" "cue" "cue-after" "cue-before" + "cursor" "dashed" "direction" "display" "dotted" "double" "elevation" + "empty-cells" "float" "font" "font-family" "font-size" "font-size-adjust" + "font-stretch" "font-style" "font-variant" "font-weight" "groove" "height" + "hidden" "inline" "inline-table" "inset" "left" "letter-spacing" + "line-height" "list-item" "list-style" "list-style-image" + "list-style-position" "list-style-type" "margin" "margin-bottom" + "margin-left" "margin-right" "margin-top" "marker-offset" "marks" + "max-height" "max-width" "min-height" "min-width" "orphans" "outline" + "outline-color" "outline-style" "outline-width" "outset" "overflow" + "padding" "padding-bottom" "padding-left" "padding-right" "padding-top" + "page" "page-break-after" "page-break-before" "page-break-inside" "pause" + "pause-after" "pause-before" "pitch" "pitch-range" "play-during" "position" + "quotes" "richness" "ridge" "right" "run-in" "size" "solid" "speak" + "speak-header" "speak-numeral" "speak-punctuation" "speech-rate" "stress" + "table" "table-caption" "table-cell" "table-column" "table-column-group" + "table-footer-group" "table-header-group" "table-layout" "table-row" + "table-row-group" "text-align" "text-decoration" "text-indent" + "text-shadow" "text-transform" "top" "unicode-bidi" "vertical-align" + "visibility" "voice-family" "volume" "white-space" "widows" "width" + "word-spacing" "z-index") + "Identifiers for properties.") + +(defcustom css-electrick-keys '(?\} ?\;) ;; '() + "Self inserting keys which should trigger re-indentation." + :type '(repeat character) + :options '((?\} ?\;))) + +(defvar css-mode-syntax-table + (let ((st (make-syntax-table))) + ;; C-style comments. + (modify-syntax-entry ?/ ". 14" st) + (modify-syntax-entry ?* ". 23" st) + ;; Strings. + (modify-syntax-entry ?\" "\"" st) + (modify-syntax-entry ?\' "\"" st) + ;; Blocks. + (modify-syntax-entry ?\{ "(}" st) + (modify-syntax-entry ?\} "){" st) + ;; Args in url(...) thingies and other "function calls". + (modify-syntax-entry ?\( "()" st) + (modify-syntax-entry ?\) ")(" st) + ;; To match attributes in selectors. + (modify-syntax-entry ?\[ "(]" st) + (modify-syntax-entry ?\] ")[" st) + ;; Special chars that sometimes come at the beginning of words. + (modify-syntax-entry ?@ "'" st) + ;; (modify-syntax-entry ?: "'" st) + (modify-syntax-entry ?# "'" st) + ;; Distinction between words and symbols. + (modify-syntax-entry ?- "_" st) + st)) + +(defconst css-escapes-re + "\\\\\\(?:[^\000-\037\177]\\|[0-9a-fA-F]+[ \n\t\r\f]?\\)") +(defconst css-nmchar-re (concat "\\(?:[-[:alnum:]]\\|" css-escapes-re "\\)")) +(defconst css-nmstart-re (concat "\\(?:[[:alpha:]]\\|" css-escapes-re "\\)")) +(defconst css-ident-re (concat css-nmstart-re css-nmchar-re "*")) +(defconst css-name-re (concat css-nmchar-re "+")) + +(defface css-selector '((t :inherit font-lock-function-name-face)) + "Face to use for selectors.") +(defface css-property '((t :inherit font-lock-variable-name-face)) + "Face to use for properties.") + +(defvar css-font-lock-keywords + `(("!\\s-*important" . font-lock-builtin-face) + ;; Atrules keywords. IDs not in css-at-ids are valid (ignored). + ;; In fact the regexp should probably be + ;; (,(concat "\\(@" css-ident-re "\\)\\([ \t\n][^;{]*\\)[;{]") + ;; (1 font-lock-builtin-face)) + ;; Since "An at-rule consists of everything up to and including the next + ;; semicolon (;) or the next block, whichever comes first." + (,(concat "@" css-ident-re) . font-lock-builtin-face) + ;; Selectors. + ;; FIXME: attribute selectors don't work well because they may contain + ;; strings which have already been highlighted as f-l-string-face and + ;; thus prevent this highlighting from being applied (actually now that + ;; I use `append' this should work better). But really the part of hte + ;; selector between [...] should simply not be highlighted. + (,(concat "^\\([ \t]*[^@:{\n][^:{\n]+\\(?::" (regexp-opt css-pseudo-ids t) + "\\(?:([^)]+)\\)?[^:{\n]*\\)*\\)\\(?:\n[ \t]*\\)*{") + (1 'css-selector append)) + ;; In the above rule, we allow the open-brace to be on some subsequent + ;; line. This will only work if we properly mark the intervening text + ;; as being part of a multiline element (and even then, this only + ;; ensures proper refontification, but not proper discovery). + ("^[ \t]*{" (0 (save-excursion + (goto-char (match-beginning 0)) + (skip-chars-backward " \n\t") + (put-text-property (point) (match-end 0) + 'font-lock-multiline t) + ;; No face. + nil))) + ;; Properties. Again, we don't limit ourselves to css-property-ids. + (,(concat "\\(?:[{;]\\|^\\)[ \t]*\\(" css-ident-re "\\)\\s-*:") + (1 'css-property)))) + +(defvar css-font-lock-defaults + '(css-font-lock-keywords nil t)) + +(unless (fboundp 'prog-mode) (defalias 'prog-mode 'fundamental-mode)) + +;;;###autoload (add-to-list 'auto-mode-alist '("\\.css\\'" . css-mode)) +;;;###autoload +(define-derived-mode css-mode prog-mode "CSS" + "Major mode to edit Cascading Style Sheets." + (set (make-local-variable 'font-lock-defaults) css-font-lock-defaults) + (set (make-local-variable 'comment-start) "/*") + (set (make-local-variable 'comment-start-skip) "/\\*+[ \t]*") + (set (make-local-variable 'comment-end) "*/") + (set (make-local-variable 'comment-end-skip) "[ \t]*\\*+/") + (set (make-local-variable 'forward-sexp-function) 'css-forward-sexp) + (set (make-local-variable 'parse-sexp-ignore-comments) t) + (set (make-local-variable 'indent-line-function) 'css-indent-line) + (set (make-local-variable 'fill-paragraph-function) + 'css-fill-paragraph) + (when css-electrick-keys + (let ((fc (make-char-table 'auto-fill-chars))) + (set-char-table-parent fc auto-fill-chars) + (dolist (c css-electrick-keys) + (aset fc c 'indent-according-to-mode)) + (set (make-local-variable 'auto-fill-chars) fc)))) + +(defun css-fill-paragraph (&optional justify) + (save-excursion + (let ((ppss (syntax-ppss)) + (eol (line-end-position))) + (cond + ((and (nth 4 ppss) + (save-excursion + (goto-char (nth 8 ppss)) + (forward-comment 1) + (prog1 (not (bolp)) + (setq eol (point))))) + ;; Filling inside a comment whose comment-end marker is not \n. + ;; This code is meant to be generic, so that it works not only for + ;; css-mode but for all modes. + (save-restriction + (narrow-to-region (nth 8 ppss) eol) + (comment-normalize-vars) + (let ((fill-paragraph-function nil) + (paragraph-separate + (if (and comment-continue + (string-match "[^ \t]" comment-continue)) + (concat "\\(?:[ \t]*" (regexp-quote comment-continue) + "\\)?\\(?:" paragraph-separate "\\)") + paragraph-separate)) + (paragraph-start + (if (and comment-continue + (string-match "[^ \t]" comment-continue)) + (concat "\\(?:[ \t]*" (regexp-quote comment-continue) + "\\)?\\(?:" paragraph-start "\\)") + paragraph-start))) + (fill-paragraph justify) + ;; Don't try filling again. + t))) + + ((and (null (nth 8 ppss)) + (or (nth 1 ppss) + (and (ignore-errors + (down-list 1) + (when (<= (point) eol) + (setq ppss (syntax-ppss))))))) + (goto-char (nth 1 ppss)) + (let ((end (save-excursion + (ignore-errors (forward-sexp 1) (copy-marker (point) t))))) + (when end + (while (re-search-forward "[{;}]" end t) + (cond + ;; This is a false positive inside a string or comment. + ((nth 8 (syntax-ppss)) nil) + ((eq (char-before) ?\}) + (save-excursion + (forward-char -1) + (skip-chars-backward " \t") + (unless (bolp) (newline)))) + (t + (while + (progn + (setq eol (line-end-position)) + (and (forward-comment 1) + (> (point) eol) + ;; A multi-line comment should be on its own line. + (save-excursion (forward-comment -1) + (when (< (point) eol) + (newline) + t))))) + (if (< (point) eol) (newline))))) + (goto-char (nth 1 ppss)) + (indent-region (line-beginning-position 2) end) + ;; Don't use the default filling code. + t))))))) + +;;; Navigation and indentation. + +(defconst css-navigation-syntax-table + (let ((st (make-syntax-table css-mode-syntax-table))) + (map-char-table (lambda (c v) + ;; Turn punctuation (code = 1) into symbol (code = 1). + (if (eq (car-safe v) 1) + (set-char-table-range st c (cons 3 (cdr v))))) + st) + st)) + +(defun css-backward-sexp (n) + (let ((forward-sexp-function nil)) + (if (< n 0) (css-forward-sexp (- n)) + (while (> n 0) + (setq n (1- n)) + (forward-comment (- (point-max))) + (if (not (eq (char-before) ?\;)) + (backward-sexp 1) + (while (progn (backward-sexp 1) + (save-excursion + (forward-comment (- (point-max))) + ;; FIXME: We should also skip punctuation. + (not (memq (char-before) '(?\; ?\{))))))))))) + +(defun css-forward-sexp (n) + (let ((forward-sexp-function nil)) + (if (< n 0) (css-backward-sexp (- n)) + (while (> n 0) + (setq n (1- n)) + (forward-comment (point-max)) + (if (not (eq (char-after) ?\;)) + (forward-sexp 1) + (while (progn (forward-sexp 1) + (save-excursion + (forward-comment (point-max)) + ;; FIXME: We should also skip punctuation. + (not (memq (char-after) '(?\; ?\}))))))))))) + +(defun css-indent-calculate-virtual () + (if (or (save-excursion (skip-chars-backward " \t") (bolp)) + (if (looking-at "\\s(") + (save-excursion + (forward-char 1) (skip-chars-forward " \t") + (not (or (eolp) (looking-at comment-start-skip)))))) + (current-column) + (css-indent-calculate))) + +(defcustom css-indent-offset 4 + "Basic size of one indentation step." + :type 'integer) + +(defun css-indent-calculate () + (let ((ppss (syntax-ppss)) + pos) + (with-syntax-table css-navigation-syntax-table + (save-excursion + (cond + ;; Inside a string. + ((nth 3 ppss) 'noindent) + ;; Inside a comment. + ((nth 4 ppss) + (setq pos (point)) + (forward-line -1) + (skip-chars-forward " \t") + (if (>= (nth 8 ppss) (point)) + (progn + (goto-char (nth 8 ppss)) + (if (eq (char-after pos) ?*) + (forward-char 1) + (if (not (looking-at comment-start-skip)) + (error "Internal css-mode error") + (goto-char (match-end 0)))) + (current-column)) + (if (and (eq (char-after pos) ?*) (eq (char-after) ?*)) + (current-column) + ;; 'noindent + (current-column) + ))) + ;; In normal code. + (t + (or + (when (looking-at "\\s)") + (forward-char 1) + (backward-sexp 1) + (css-indent-calculate-virtual)) + (when (looking-at comment-start-skip) + (forward-comment (point-max)) + (css-indent-calculate)) + (when (save-excursion (forward-comment (- (point-max))) + (setq pos (point)) + (eq (char-syntax (preceding-char)) ?\()) + (goto-char (1- pos)) + (if (not (looking-at "\\s([ \t]*")) + (error "Internal css-mode error") + (if (or (memq (char-after (match-end 0)) '(?\n nil)) + (save-excursion (goto-char (match-end 0)) + (looking-at comment-start-skip))) + (+ (css-indent-calculate-virtual) css-indent-offset) + (progn (goto-char (match-end 0)) (current-column))))) + (progn + (css-backward-sexp 1) + (if (looking-at "\\s(") + (css-indent-calculate) + (css-indent-calculate-virtual)))))))))) + + +(defun css-indent-line () + "Indent current line according to CSS indentation rules." + (interactive) + (let* ((savep (point)) + (forward-sexp-function nil) + (indent (condition-case nil + (save-excursion + (forward-line 0) + (skip-chars-forward " \t") + (if (>= (point) savep) (setq savep nil)) + (css-indent-calculate)) + (error nil)))) + (if (not (numberp indent)) 'noindent + (if savep + (save-excursion (indent-line-to indent)) + (indent-line-to indent))))) + +(provide 'css-mode) +;; arch-tag: b4d8b8e2-b130-4e74-b3aa-cd8f1ab659d0 +;;; css-mode.el ends here diff --git a/lisp/textmodes/org-publish.el b/lisp/textmodes/org-publish.el new file mode 100644 index 00000000000..74cd7096935 --- /dev/null +++ b/lisp/textmodes/org-publish.el @@ -0,0 +1,603 @@ +;;; org-publish.el --- publish related org-mode files as a website + +;; Copyright (C) 2006, 2007 Free Software Foundation, Inc. + +;; Author: David O'Toole <dto@gnu.org> +;; Keywords: hypermedia, outlines +;; Version: 1.80 + +;; $Id: org-publish.el,v 1.2 2007/06/07 02:04:17 miles Exp $ + +;; This file is free software; you can redistribute it and/or modify +;; it under the terms of the GNU General Public License as published by +;; the Free Software Foundation; either version 2, or (at your option) +;; any later version. + +;; This file is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. + +;; You should have received a copy of the GNU General Public License +;; along with GNU Emacs; see the file COPYING. If not, write to +;; the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +;; Boston, MA 02110-1301, USA. + +;; This file is part of GNU Emacs. + +;;; Commentary: + +;; Requires at least version 4.27 of org.el +;; +;; The official org-mode website: +;; http://staff.science.uva.nl/~dominik/Tools/org/ +;; +;; Home page for org-publish.el: +;; http://dto.freeshell.org/notebook/OrgMode.html + +;; This program extends the HTML publishing support of Emacs Org-mode +;; to allow configurable publishing of related sets of files as a +;; complete website. +;; +;; org-publish.el can do the following: +;; +;; + Publish all one's org-files to html +;; + Upload html, images, attachments and other files to a web server +;; + Exclude selected private pages from publishing +;; + Publish a clickable index of pages +;; + Manage local timestamps, for publishing only changed files +;; + Accept plugin functions to extend range of publishable content +;; +;; Special thanks to the org-mode maintainer Carsten Dominik for his +;; ideas, enthusiasm, and cooperation. + +;;; Installation: + +;; Put org-publish.el in your load path, byte-compile it, and then add +;; the following lines to your emacs initialization file: + +;; (autoload 'org-publish "org-publish" nil t) +;; (autoload 'org-publish "org-publish-all" nil t) +;; (autoload 'org-publish "org-publish-current-file" nil t) +;; (autoload 'org-publish "org-publish-current-project" nil t) + +;; NOTE: When org-publish.el is included with org.el, those forms are +;; already in the file org-install.el, and hence don't need to be put +;; in your emacs initialization file in this case. + +;;; Usage: +;; +;; The program's main configuration variable is +;; `org-publish-project-alist'. See below for example configurations +;; with commentary. + +;; The main interactive functions are: +;; +;; M-x org-publish +;; M-x org-publish-all +;; M-x org-publish-current-file +;; M-x org-publish-current-project + +;;;; Simple example configuration: + +;; (setq org-publish-project-alist +;; (list +;; '("org" . (:base-directory "~/org/" +;; :base-extension "org" +;; :publishing-directory "~/public_html" +;; :with-section-numbers nil +;; :table-of-contents nil +;; :style "<link rel=stylesheet href=\"../other/mystyle.css\" type=\"text/css\">"))) + +;;;; More complex example configuration: + +;; Imagine your *.org files are kept in ~/org, your images in +;; ~/images, and stylesheets in ~/other. Now imagine you want to +;; publish the files through an ssh connection to a remote host, via +;; Tramp-mode. To maintain relative links from *.org files to /images +;; and /other, we should replicate the same directory structure in +;; your web server account's designated html root (in this case, +;; assumed to be ~/html) + +;; Once you've done created the proper directories, you can adapt the +;; following example configuration to your specific paths, run M-x +;; org-publish-all, and it should publish the files to the correct +;; directories on the web server, transforming the *.org files into +;; HTML, and leaving other files alone. + +;; (setq org-publish-project-alist +;; (list +;; '("orgfiles" :base-directory "~/org/" +;; :base-extension "org" +;; :publishing-directory "/ssh:user@host:~/html/notebook/" +;; :publishing-function org-publish-org-to-html +;; :exclude "PrivatePage.org" ;; regexp +;; :headline-levels 3 +;; :with-section-numbers nil +;; :table-of-contents nil +;; :style "<link rel=stylesheet href=\"../other/mystyle.css\" type=\"text/css\">" +;; :auto-preamble t +;; :auto-postamble nil) +;; +;; ("images" :base-directory "~/images/" +;; :base-extension "jpg\\|gif\\|png" +;; :publishing-directory "/ssh:user@host:~/html/images/" +;; :publishing-function org-publish-attachment) +;; +;; ("other" :base-directory "~/other/" +;; :base-extension "css" +;; :publishing-directory "/ssh:user@host:~/html/other/" +;; :publishing-function org-publish-attachment) +;; ("website" :components ("orgfiles" "images" "other")))) + +;; For more information, see the documentation for the variable +;; `org-publish-project-alist'. + +;; Of course, you don't have to publish to remote directories from +;; within emacs. You can always just publish to local folders, and +;; then use the synchronization/upload tool of your choice. + + +;;; List of user-visible changes since version 1.27 + +;; 1.78: Allow list-valued :publishing-function +;; 1.77: Added :preparation-function, this allows you to use GNU Make etc. +;; 1.65: Remove old "composite projects". They're redundant. +;; 1.64: Allow meta-projects with :components +;; 1.57: Timestamps flag is now called "org-publish-use-timestamps-flag" +;; 1.52: Properly set default for :index-filename +;; 1.48: Composite projects allowed. +;; :include keyword allowed. +;; 1.43: Index no longer includes itself in the index. +;; 1.42: Fix "function definition is void" error +;; when :publishing-function not set in org-publish-current-file. +;; 1.41: Fixed bug where index isn't published on first try. +;; 1.37: Added interactive function "org-publish". Prompts for particular +;; project name to publish. +;; 1.34: Added force-publish option to all interactive functions. +;; 1.32: Fixed "index.org has changed on disk" error during index publishing. +;; 1.30: Fixed startup error caused by (require 'em-unix) + +;;; Code: + + +(eval-when-compile + (require 'cl)) + + +(defgroup org-publish nil + "Options for publishing a set of Org-mode and related files." + :tag "Org Publishing" + :group 'org) + + +(defcustom org-publish-project-alist nil + "Association list to control publishing behavior. +Each element of the alist is a publishing 'project.' The CAR of +each element is a string, uniquely identifying the project. The +CDR of each element is in one of the following forms: + + (:property value :property value ... ) + +OR, + + (:components (\"project-1\" \"project-2\" ...)) + +When the CDR of an element of org-publish-project-alist is in +this second form, the elements of the list after :components are +taken to be components of the project, which group together files +requiring different publishing options. When you publish such a +project with M-x org-publish, the components all publish. + +When a property is given a value in org-publish-project-alist, its +setting overrides the value of the corresponding user variable + (if any) during publishing. However, options set within a file +override everything. + +Most properties are optional, but some should always be set: + + :base-directory Directory containing publishing source files + :base-extension Extension (without the dot!) of source files. + This can be a regular expression. + :publishing-directory Directory (possibly remote) where output + files will be published + +The :exclude property may be used to prevent certain files from +being published. Its value may be a string or regexp matching +file names you don't want to be published. + +The :include property may be used to include extra files. Its +value may be a list of filenames to include. The filenames are +considered relative to the publishing directory. + +When both :include and :exclude properties are given values, the +exclusion step happens first. + +One special property controls which back-end function to use for +publishing files in the project. This can be used to extend the +set of file types publishable by org-publish, as well as the set +of output formats. + + :publishing-function Function to publish file. The default is + org-publish-org-to-html, but other + values are possible. May also be a + list of functions, in which case + each function in the list is invoked + in turn. + +Another property allows you to insert code that prepares a +project for publishing. For example, you could call GNU Make on a +certain makefile, to ensure published files are built up to date. + + :preparation-function Function to be called before publishing + this project. + +Some properties control details of the Org publishing process, +and are equivalent to the corresponding user variables listed in +the right column. See the documentation for those variables to +learn more about their use and default values. + + :language org-export-default-language + :headline-levels org-export-headline-levels + :section-numbers org-export-with-section-numbers + :table-of-contents org-export-with-toc + :emphasize org-export-with-emphasize + :sub-superscript org-export-with-sub-superscripts + :TeX-macros org-export-with-TeX-macros + :fixed-width org-export-with-fixed-width + :tables org-export-with-tables + :table-auto-headline org-export-highlight-first-table-line + :style org-export-html-style + :convert-org-links org-export-html-link-org-files-as-html + :inline-images org-export-html-inline-images + :expand-quoted-html org-export-html-expand + :timestamp org-export-html-with-timestamp + :publishing-directory org-export-publishing-directory + :preamble org-export-html-preamble + :postamble org-export-html-postamble + :auto-preamble org-export-html-auto-preamble + :auto-postamble org-export-html-auto-postamble + :author user-full-name + :email user-mail-address + +The following properties may be used to control publishing of an +index of files or summary page for a given project. + + :auto-index Whether to publish an index during + org-publish-current-project or org-publish-all. + :index-filename Filename for output of index. Defaults + to 'index.org' (which becomes 'index.html') + :index-title Title of index page. Defaults to name of file. + :index-function Plugin function to use for generation of index. + Defaults to 'org-publish-org-index', which + generates a plain list of links to all files + in the project. +" + :group 'org-publish + :type 'alist) + + +(defcustom org-publish-use-timestamps-flag t + "When non-nil, use timestamp checking to publish only changed files. +When nil, do no timestamp checking and always publish all +files." + :group 'org-publish + :type 'boolean) + + +(defcustom org-publish-timestamp-directory "~/.org-timestamps/" + "Name of directory in which to store publishing timestamps." + :group 'org-publish + :type 'string) + + +;;;; Timestamp-related functions + + +(defun org-publish-timestamp-filename (filename) + "Return path to timestamp file for filename FILENAME." + (while (string-match "~\\|/" filename) + (setq filename (replace-match "_" nil t filename))) + (concat org-publish-timestamp-directory filename ".timestamp")) + + +(defun org-publish-needed-p (filename) + "Check whether file should be published. +If org-publish-use-timestamps-flag is set to nil, this function always +returns t. Otherwise, check the timestamps folder to determine +whether file should be published." + (if org-publish-use-timestamps-flag + (progn + ;; + ;; create folder if needed + (if (not (file-exists-p org-publish-timestamp-directory)) + (make-directory org-publish-timestamp-directory) + (if (not (file-directory-p org-publish-timestamp-directory)) + (error "org-publish-timestamp-directory must be a directory."))) + ;; + ;; check timestamp. ok if timestamp file doesn't exist + (let* ((timestamp (org-publish-timestamp-filename filename)) + (rtn (file-newer-than-file-p filename timestamp))) + (if rtn + ;; handle new timestamps + (if (not (file-exists-p timestamp)) + ;; create file + (with-temp-buffer + (make-directory (file-name-directory timestamp) :parents) + (write-file timestamp) + (kill-buffer (current-buffer))))) + rtn)) + t)) + + +(defun org-publish-update-timestamp (filename) + "Update publishing timestamp for file FILENAME." + (let ((timestamp (org-publish-timestamp-filename filename))) + ;; Emacs 21 doesn't have set-file-times + (if (fboundp 'set-file-times) + (set-file-times timestamp) + (call-process "touch" nil 0 nil timestamp)))) + + +;;;; A hash mapping files to project names + + +(defvar org-publish-files (make-hash-table :test 'equal) "Hash +table mapping file names to project names.") + + +;;;; Checking filenames against this hash + + +(defun org-publish-validate-link (link &optional directory) + (gethash (file-truename (expand-file-name link directory)) + org-publish-files)) + + +;;;; Getting project information out of org-publish-project-alist + + +(defun org-publish-get-plists (&optional project-name) + "Return a list of property lists for project PROJECT-NAME. +When argument is not given, return all property lists for all projects." + (let ((alist (if project-name + (list (assoc project-name org-publish-project-alist)) + org-publish-project-alist)) + (project nil) + (plists nil) + (single nil) + (components nil)) + + ;; + ;; + (while (setq project (pop alist)) + ;; what kind of project is it? + (if (setq components (plist-get (cdr project) :components)) + ;; meta project. annotate each plist with name of enclosing project + (setq single + (apply 'append + (mapcar 'org-publish-get-plists components))) + ;; normal project + (setq single (list (cdr project)))) + ;; + (setq plists (append plists single)) + (dolist (p single) + (let* ((exclude (plist-get p :exclude)) + (files (org-publish-get-base-files p exclude))) + (dolist (f files) + (puthash (file-truename f) (car project) org-publish-files))))) + plists)) + + + +(defun org-publish-get-base-files (plist &optional exclude-regexp) + "Return a list of all files in project defined by PLIST. +If EXCLUDE-REGEXP is set, this will be used to filter out +matching filenames." + (let* ((dir (file-name-as-directory (plist-get plist :base-directory))) + (include-list (plist-get plist :include)) + (extension (or (plist-get plist :base-extension) "org")) + (regexp (concat "^[^\\.].*\\.\\(" extension "\\)$")) + (allfiles (directory-files dir t regexp))) + ;; + ;; exclude files + (setq allfiles + (if (not exclude-regexp) + allfiles + (delq nil + (mapcar (lambda (x) + (if (string-match exclude-regexp x) nil x)) + allfiles)))) + ;; + ;; include extra files + (let ((inc nil)) + (while (setq inc (pop include-list)) + (setq allfiles (cons (expand-file-name inc dir) allfiles)))) + + allfiles)) + + +(defun org-publish-get-project-from-filename (filename) + "Figure out which project a given FILENAME belongs to, if any. +Filename should contain full path. Returns name of project, or +nil if not found." + (org-publish-get-plists) + (gethash (file-truename filename) org-publish-files)) + + +(defun org-publish-get-plist-from-filename (filename) + "Return publishing configuration plist for file FILENAME." + (let ((found nil)) + (mapcar + (lambda (plist) + (let ((files (org-publish-get-base-files plist))) + (if (member (expand-file-name filename) files) + (setq found plist)))) + (org-publish-get-plists)) + found)) + + + +;;;; Pluggable publishing back-end functions + + +(defun org-publish-org-to-html (plist filename) + "Publish an org file to HTML. +PLIST is the property list for the given project. +FILENAME is the filename of the org file to be published." + (require 'org) + (let* ((arg (plist-get plist :headline-levels))) + (progn + (find-file filename) + (org-export-as-html arg nil plist) + ;; get rid of HTML buffer + (kill-buffer (current-buffer))))) + + +(defun org-publish-attachment (plist filename) + "Publish a file with no transformation of any kind. +PLIST is the property list for the given project. +FILENAME is the filename of the file to be published." + ;; make sure eshell/cp code is loaded + (require 'eshell) + (require 'esh-maint) + (require 'em-unix) + (let ((destination (file-name-as-directory (plist-get plist :publishing-directory)))) + (eshell/cp filename destination))) + + +;;;; Publishing files, sets of files, and indices + + +(defun org-publish-file (filename) + "Publish file FILENAME." + (let* ((project-name (org-publish-get-project-from-filename filename)) + (plist (org-publish-get-plist-from-filename filename)) + (publishing-function (or (plist-get plist :publishing-function) 'org-publish-org-to-html))) + (if (not project-name) + (error (format "File %s is not part of any known project." filename))) + (when (org-publish-needed-p filename) + (if (listp publishing-function) + ;; allow chain of publishing functions + (mapc (lambda (f) + (funcall f plist filename)) + publishing-function) + (funcall publishing-function plist filename)) + (org-publish-update-timestamp filename)))) + + +(defun org-publish-plist (plist) + "Publish all files in set defined by PLIST. + If :auto-index is set, publish the index too." + (let* ((exclude-regexp (plist-get plist :exclude)) + (publishing-function (or (plist-get plist :publishing-function) 'org-publish-org-to-html)) + (index-p (plist-get plist :auto-index)) + (index-filename (or (plist-get plist :index-filename) "index.org")) + (index-function (or (plist-get plist :index-function) 'org-publish-org-index)) + (preparation-function (plist-get plist :preparation-function)) + (f nil)) + ;; + (when preparation-function + (funcall preparation-function)) + (if index-p + (funcall index-function plist index-filename)) + (let ((files (org-publish-get-base-files plist exclude-regexp))) + (while (setq f (pop files)) + ;; check timestamps + (when (org-publish-needed-p f) + (if (listp publishing-function) + ;; allow chain of publishing functions + (mapc (lambda (func) + (funcall func plist f)) + publishing-function) + (funcall publishing-function plist f)) + (org-publish-update-timestamp f)))))) + + +(defun org-publish-org-index (plist &optional index-filename) + "Create an index of pages in set defined by PLIST. +Optionally set the filename of the index with INDEX-FILENAME; +default is 'index.org'." + (let* ((dir (file-name-as-directory (plist-get plist :base-directory))) + (exclude-regexp (plist-get plist :exclude)) + (files (org-publish-get-base-files plist exclude-regexp)) + (index-filename (concat dir (or index-filename "index.org"))) + (index-buffer (find-buffer-visiting index-filename)) + (ifn (file-name-nondirectory index-filename)) + (f nil)) + ;; + ;; if buffer is already open, kill it to prevent error message + (if index-buffer + (kill-buffer index-buffer)) + (with-temp-buffer + (while (setq f (pop files)) + (let ((fn (file-name-nondirectory f))) + (unless (string= fn ifn) ;; index shouldn't index itself + (insert (concat " + [[file:" fn "][" + (file-name-sans-extension fn) + "]]\n"))))) + (write-file index-filename) + (kill-buffer (current-buffer))))) + + +;(defun org-publish-meta-index (meta-plist &optional index-filename) +; "Create an index for a metaproject." +; (let* ((plists ( + + +;;;; Interactive publishing functions + + +;;;###autoload +(defun org-publish (project-name &optional force) + "Publish the project PROJECT-NAME." + (interactive (list (completing-read "Project name: " org-publish-project-alist + nil t) + current-prefix-arg)) + (save-window-excursion + (let ((org-publish-use-timestamps-flag (if force nil t)) + (plists (org-publish-get-plists project-name))) + (mapcar 'org-publish-plist plists)))) + + +;;;###autoload +(defun org-publish-current-project (&optional force) + "Publish the project associated with the current file. +With prefix argument, force publishing all files in project." + (interactive "P") + (save-window-excursion + (let* ((project-name (org-publish-get-project-from-filename (buffer-file-name))) + (org-publish-use-timestamps-flag (if force nil t))) + (if (not project-name) + (error (format "File %s is not part of any known project." (buffer-file-name)))) + (org-publish project-name)))) + + +;;;###autoload +(defun org-publish-current-file (&optional force) + "Publish the current file. +With prefix argument, force publish the file." + (interactive "P") + (save-window-excursion + (let ((org-publish-use-timestamps-flag + (if force nil t))) + (org-publish-file (buffer-file-name))))) + + +;;;###autoload +(defun org-publish-all (&optional force) + "Publish all projects. +With prefix argument, force publish all files." + (interactive "P") + (save-window-excursion + (let ((org-publish-use-timestamps-flag + (if force nil t)) + (plists (org-publish-get-plists))) + (mapcar 'org-publish-plist plists)))) + + + +(provide 'org-publish) + +;; arch-tag: 72807f3c-8af0-4a6b-8dca-c3376eb25adb +;;; org-publish.el ends here diff --git a/lisp/textmodes/org.el b/lisp/textmodes/org.el index 8ee12638dee..d669ebe586c 100644 --- a/lisp/textmodes/org.el +++ b/lisp/textmodes/org.el @@ -1,11 +1,11 @@ -;;;; org.el --- Outline-based notes management and organize +;;; org.el --- Outline-based notes management and organizer ;; Carstens outline-mode for keeping track of everything. ;; Copyright (C) 2004, 2005, 2006, 2007 Free Software Foundation, Inc. ;; ;; Author: Carsten Dominik <dominik at science dot uva dot nl> ;; Keywords: outlines, hypermedia, calendar, wp ;; Homepage: http://www.astro.uva.nl/~dominik/Tools/org/ -;; Version: 4.67d +;; Version: 4.77 ;; ;; This file is part of GNU Emacs. ;; @@ -83,7 +83,7 @@ ;;; Version -(defvar org-version "4.67c" +(defconst org-version "4.77" "The version number of the file org.el.") (defun org-version () (interactive) @@ -153,21 +153,13 @@ has been set." :group 'org-startup :type 'boolean) -(defcustom org-CUA-compatible nil - "Non-nil means use alternative key bindings for S-<cursor movement>. -Org-mode used S-<cursor movement> for changing timestamps and priorities. -S-<cursor movement> is also used for example by `CUA-mode' to select text. -If you want to use Org-mode together with `CUA-mode', Org-mode needs to use -alternative bindings. Setting this variable to t will replace the following -keys both in Org-mode and in the Org-agenda buffer. - -S-RET -> C-S-RET -S-up -> M-p -S-down -> M-n -S-left -> M-- -S-right -> M-+ - -If you do not like the alternative keys, take a look at the variable +(defcustom org-replace-disputed-keys nil + "Non-nil means use alternative key bindings for some keys. +Org-mode uses S-<cursor> keys for changing timestamps and priorities. +These keys are also used by other packages like `CUA-mode' or `windmove.el'. +If you want to use Org-mode together with one of these other modes, +or more generally if you would like to move some Org-mode commands to +other keys, set this variable and configure the keys with the variable `org-disputed-keys'. This option is only relevant at load-time of Org-mode, and must be set @@ -176,21 +168,47 @@ become effective." :group 'org-startup :type 'boolean) -(defvar org-disputed-keys - '((S-up [(shift up)] [(meta ?p)]) - (S-down [(shift down)] [(meta ?n)]) - (S-left [(shift left)] [(meta ?-)]) - (S-right [(shift right)] [(meta ?+)]) - (S-return [(shift return)] [(control shift return)])) +(if (fboundp 'defvaralias) + (defvaralias 'org-CUA-compatible 'org-replace-disputed-keys)) + +(defcustom org-disputed-keys + '(([(shift up)] . [(meta p)]) + ([(shift down)] . [(meta n)]) + ([(shift left)] . [(meta -)]) + ([(shift right)] . [(meta +)]) + ([(control shift right)] . [(meta shift +)]) + ([(control shift left)] . [(meta shift -)])) "Keys for which Org-mode and other modes compete. -This is an alist, cars are symbols for lookup, 1st element is the default key, -second element will be used when `org-CUA-compatible' is t.") +This is an alist, cars are the default keys, second element specifies +the alternative to use when `org-replace-disputed-keys' is t. + +Keys can be specified in any syntax supported by `define-key'. +The value of this option takes effect only at Org-mode's startup, +therefore you'll have to restart Emacs to apply it after changing." + :group 'org-startup + :type 'alist) (defun org-key (key) - "Select a key according to `org-CUA-compatible'." - (nth (if org-CUA-compatible 2 1) - (or (assq key org-disputed-keys) - (error "Invalid Key %s in `org-key'" key)))) + "Select key according to `org-replace-disputed-keys' and `org-disputed-keys'. +Or return the original if not disputed." + (if org-replace-disputed-keys + (let* ((nkey (key-description key)) + (x (org-find-if (lambda (x) + (equal (key-description (car x)) nkey)) + org-disputed-keys))) + (if x (cdr x) key)) + key)) + +(defun org-find-if (predicate seq) + (catch 'exit + (while seq + (if (funcall predicate (car seq)) + (throw 'exit (car seq)) + (pop seq))))) + +(defun org-defkey (keymap key def) + "Define a key, possibly translated, as returned by `org-key'." + (define-key keymap (org-key key) def)) (defcustom org-ellipsis nil "The ellipsis to use in the Org-mode outline. @@ -255,7 +273,9 @@ An entry can be toggled between QUOTE and normal with :group 'org-keywords :type 'string) -(defvar org-repeat-re "\\<REPEAT(\\([-+ 0-9dwmy]+\\))" +(defconst org-repeat-re + (concat "\\(?:\\<\\(?:" org-scheduled-string "\\|" org-deadline-string "\\)" + " +<[0-9]\\{4\\}-[0-9][0-9]-[0-9][0-9] [^>\n]*\\)\\(\\+[0-9]+[dwmy]\\)") "Regular expression for specifying repeated events. After a match, group 1 contains the repeat expression.") @@ -304,7 +324,7 @@ contexts. Valid contexts are (const default)) (boolean))))) -(defcustom org-show-following-heading '((default . t)) +(defcustom org-show-following-heading '((default . nil)) "Non-nil means, show following heading when revealing a location. Org-mode often shows locations in an org-mode file which might have been invisible before. When this is set, the heading following the @@ -386,6 +406,7 @@ nil Never white Only in completely white lines whitestart Only at the beginning of lines, before the first non-white char. t Everywhere except in headlines +exc-hl-bol Everywhere except at the start of a headline If TAB is used in a place where it does not emulate TAB, the current subtree visibility is cycled." :group 'org-cycle @@ -393,9 +414,25 @@ visibility is cycled." (const :tag "Only in completely white lines" white) (const :tag "Before first char in a line" whitestart) (const :tag "Everywhere except in headlines" t) + (const :tag "Everywhere except at bol in headlines" exc-hl-bol) )) +(defcustom org-cycle-separator-lines 2 + "Number of empty lines needed to keep an empty line between collapsed trees. +If you leave an empty line between the end of a subtree and the following +headline, this empty line is hidden when the subtree is folded. +Org-mode will leave (exactly) one empty line visible if the number of +empty lines is equal or larger to the number given in this variable. +So the default 2 means, at least 2 empty lines after the end of a subtree +are needed to produce free space between a collapsed subtree and the +following headline. + +Special case: when 0, never leave empty lines in collapsed view." + :group 'org-cycle + :type 'integer) + (defcustom org-cycle-hook '(org-cycle-hide-archived-subtrees + org-cycle-show-empty-lines org-optimize-window-after-visibility-change) "Hook that is run after `org-cycle' has changed the buffer visibility. The function(s) in this hook must accept a single argument which indicates @@ -406,12 +443,20 @@ the values `folded', `children', or `subtree'." :group 'org-cycle :type 'hook) - (defgroup org-edit-structure nil "Options concerning structure editing in Org-mode." :tag "Org Edit Structure" :group 'org-structure) +(defcustom org-special-ctrl-a nil + "Non-nil means `C-a' behaves specially in headlines. +When set, `C-a' will bring back the cursor to the beginning of the +headline text, i.e. after the stars and after a possible TODO keyword. +When the cursor is already at that position, another `C-a' will bring +it to the beginning of the line." + :group 'org-edit-structure + :type 'boolean) + (defcustom org-odd-levels-only nil "Non-nil means, skip even levels and only use odd levels for the outline. This has the effect that two stars are being added/taken away in @@ -783,6 +828,18 @@ calls `table-recognize-table'." :tag "Org Table Calculation" :group 'org-table) +(defcustom org-table-use-standard-references t + "Should org-mode work with table refrences like B3 instead of @3$2? +Possible values are: +nil never use them +from accept as input, do not present for editing +t: accept as input and present for editing" + :group 'org-table-calculation + :type '(choice + (const :tag "Never, don't even check unser input for them" nil) + (const :tag "Always, both as user input, and when editing" t) + (const :tag "Convert user input, don't offer during editing" 'from))) + (defcustom org-table-copy-increment t "Non-nil means, increment when copying current field with \\[org-table-copy-down]." :group 'org-table-calculation @@ -815,9 +872,6 @@ the command \\[org-table-eval-formula]." :group 'org-table-calculation :type 'boolean) -;; FIXME this is also a variable that makes Org-mode files non-portable -;; Maybe I should have a #+ options for constants? -;; How about the SI/cgs issue? (defcustom org-table-formula-use-constants t "Non-nil means, interpret constants in formulas in tables. A constant looks like `$c' or `$Grav' and will be replaced before evaluation @@ -826,6 +880,8 @@ from the `constants.el' package." :group 'org-table-calculation :type 'boolean) +;; FIXME this is also a variable that makes Org-mode files non-portable +;; Maybe I should have a #+ options for constants? (defcustom org-table-formula-constants nil "Alist with constant names and values, for use in table formulas. The car of each element is a name of a constant, without the `$' before it. @@ -852,7 +908,7 @@ Automatically means, when TAB or RET or C-c C-c are pressed in the line." :group 'org) (defvar org-link-abbrev-alist-local nil - "buffer-local version of `org-link-abbrev-alist', which see. + "Buffer-local version of `org-link-abbrev-alist', which see. The value of this is taken from the #+LINK lines.") (make-variable-buffer-local 'org-link-abbrev-alist-local) @@ -1318,30 +1374,64 @@ When nil, new notes will be filed to the end of a file or entry." :tag "Org Progress" :group 'org-time) -(defcustom org-todo-keywords '("TODO" "DONE") - "List of TODO entry keywords. -\\<org-mode-map>By default, this is '(\"TODO\" \"DONE\"). The last entry in the list is -considered to mean that the entry is \"done\". All the other mean that -action is required, and will make the entry show up in todo lists, diaries -etc. -The command \\[org-todo] cycles an entry through these states, and an +(defcustom org-todo-keywords '((sequence "TODO" "DONE")) + "List of TODO entry keyword sequences and their interpretation. +\\<org-mode-map>This is a list of sequences. + +Each sequence starts with a symbol, either `sequence' or `type', +indicating if the keywords should be interpreted as a sequence of +action steps, or as different types of TODO items. The first +keywords are states requiring action - these states will select a headline +for inclusion into the global TODO list Org-mode produces. If one of +the \"keywords\" is the vertical bat \"|\" the remaining keywords +signify that no further action is necessary. If \"|\" is not found, +the last keyword is treated as the only DONE state of the sequence. + +The command \\[org-todo] cycles an entry through these states, and one additional state where no keyword is present. For details about this -cycling, see also the variable `org-todo-interpretation' -Changes become only effective after restarting Emacs." +cycling, see the manual. + +TODO keywords and interpretation can also be set on a per-file basis with +the special #+SEQ_TODO and #+TYP_TODO lines. + +For backward compatibility, this variable may also be just a list +of keywords - in this case the interptetation (sequence or type) will be +taken from the (otherwise obsolete) variable `org-todo-interpretation'." :group 'org-todo :group 'org-keywords - :type '(repeat (string :tag "Keyword"))) + :type '(choice + (repeat :tag "Old syntax, just keywords" + (string :tag "Keyword")) + (repeat :tag "New syntax" + (cons + (choice + :tag "Interpretation" + (const :tag "Sequence (cycling hits every state)" sequence) + (const :tag "Type (cycling directly to DONE)" type)) + (repeat + (string :tag "Keyword")))))) + +(defvar org-todo-keywords-1 nil) +(make-variable-buffer-local 'org-todo-keywords-1) +(defvar org-todo-keywords-for-agenda nil) +(defvar org-done-keywords-for-agenda nil) +(defvar org-not-done-keywords nil) +(make-variable-buffer-local 'org-not-done-keywords) +(defvar org-done-keywords nil) +(make-variable-buffer-local 'org-done-keywords) +(defvar org-todo-heads nil) +(make-variable-buffer-local 'org-todo-heads) +(defvar org-todo-sets nil) +(make-variable-buffer-local 'org-todo-sets) +(defvar org-todo-kwd-alist nil) +(make-variable-buffer-local 'org-todo-kwd-alist) (defcustom org-todo-interpretation 'sequence "Controls how TODO keywords are interpreted. -This variable is only relevant if `org-todo-keywords' contains more than two -states. \\<org-mode-map>Possible values are `sequence' and `type'. - -When `sequence', \\[org-todo] will always switch to the next state in the -`org-todo-keywords' list. When `type', \\[org-todo] only cycles from state -to state when executed several times in direct succession. Otherwise, it -switches directly to DONE from any state. -See the manual for more information." +This variable is in principle obsolete and is only used for +backward compatibility, if the interpretation of todo keywords is +not given already in `org-todo-keywords'. See that variable for +more information." :group 'org-todo :group 'org-keywords :type '(choice (const sequence) @@ -1393,6 +1483,12 @@ the following lines anywhere in the buffer: (const :tag "when TODO state changes" state) (const :tag "when clocking out" clock-out)))) +(defcustom org-log-done-with-time t + "Non-nil means, the CLOSED time stamp will contain date and time. +When nil, only the date will be recorded." + :group 'org-progress + :type 'boolean) + (defcustom org-log-note-headings '((done . "CLOSING NOTE %t") (state . "State %-12s %t") @@ -1414,11 +1510,9 @@ empty string. state) string) (cons (const :tag "Heading when clocking out" clock-out) string))) -(defcustom org-allow-auto-repeat t - "Non-nil means, find REPEAT cookies in entries and apply them. -A repeat cookie looks like REPEAT(+1m) and causes deadlines and schedules -to repeat themselves shifted by a certain amount of time, each time an -entry is marked DONE." +(defcustom org-log-repeat t + "Non-nil means, prompt for a note when REPEAT is resetting a TODO entry. +When nil, no note will be taken." :group 'org-todo :group 'org-progress :type 'boolean) @@ -1428,14 +1522,21 @@ entry is marked DONE." :tag "Org Priorities" :group 'org-todo) -(defcustom org-default-priority ?B - "The default priority of TODO items. -This is the priority an item get if no explicit priority is given." +(defcustom org-highest-priority ?A + "The highest priority of TODO items. A character like ?A, ?B etc. +Must have a smaller ASCII number than `org-lowest-priority'." :group 'org-priorities :type 'character) (defcustom org-lowest-priority ?C - "The lowest priority of TODO items. A character like ?A, ?B etc." + "The lowest priority of TODO items. A character like ?A, ?B etc. +Must have a larger ASCII number than `org-highest-priority'." + :group 'org-priorities + :type 'character) + +(defcustom org-default-priority ?B + "The default priority of TODO items. +This is the priority an item get if no explicit priority is given." :group 'org-priorities :type 'character) @@ -1612,7 +1713,7 @@ make sure all corresponding TODO items find their way into the list." "Variable used by org files to set a category for agenda display. Such files should use a file variable to set it, for example - -*- mode: org; org-category: \"ELisp\" +# -*- mode: org; org-category: \"ELisp\" or contain a special line @@ -1654,17 +1755,75 @@ forth between agenda and calendar." :group 'org-agenda :type 'sexp) +(defgroup org-agenda-export nil + "Options concerning exporting agenda views in Org-mode." + :tag "Org Agenda Export" + :group 'org-agenda) + +(defcustom org-agenda-with-colors t + "Non-nil means, use colors in agenda views." + :group 'org-agenda-export + :type 'boolean) + +(defcustom org-agenda-exporter-settings nil + "Alist of variable/value pairs that should be active during agenda export. +This is a good place to set uptions for ps-print and for htmlize." + :group 'org-agenda-export + :type '(repeat + (list + (variable) + (sexp :tag "Value")))) + +(defcustom org-agenda-export-html-style "" + "The style specification for exported HTML Agenda files. +If this variable contains a string, it will replace the default <style> +section as produced by `htmlize'. +Since there are different ways of setting style information, this variable +needs to contain the full HTML structure to provide a style, including the +surrounding HTML tags. The style specifications should include definitions +the fonts used by the agenda, here is an example: + + <style type=\"text/css\"> + p { font-weight: normal; color: gray; } + .org-agenda-structure { + font-size: 110%; + color: #003399; + font-weight: 600; + } + .org-todo { + color: #cc6666;Week-agenda: + font-weight: bold; + } + .org-done { + color: #339933; + } + .title { text-align: center; } + .todo, .deadline { color: red; } + .done { color: green; } + </style> + +or, if you want to keep the style in a file, + + <link rel=\"stylesheet\" type=\"text/css\" href=\"mystyles.css\"> + +As the value of this option simply gets inserted into the HTML <head> header, +you can \"misuse\" it to also add other text to the header. However, +<style>...</style> is required, if not present the variable will be ignored." + :group 'org-agenda-export + :group 'org-export-html + :type 'string) + (defgroup org-agenda-custom-commands nil "Options concerning agenda views in Org-mode." :tag "Org Agenda Custom Commands" :group 'org-agenda) -(defcustom org-agenda-custom-commands '(("w" todo "WAITING")) +(defcustom org-agenda-custom-commands nil "Custom commands for the agenda. These commands will be offered on the splash screen displayed by the agenda dispatcher \\[org-agenda]. Each entry is a list like this: - (key type match options) + (key type match options files) key The key (a single char as a string) to be associated with the command. type The command type, any of the following symbols: @@ -1680,11 +1839,16 @@ match What to search for: - a regular expression for occur searches options A list of option setttings, similar to that in a let form, so like this: ((opt1 val1) (opt2 val2) ...) +files A list of files file to write the produced agenda buffer to + with the command `org-store-agenda-views'. + If a file name ends in \".html\", an HTML version of the buffer + is written out. If it ends in \".ps\", a postscript version is + produced. Otherwide, only the plain text is written to the file. You can also define a set of commands, to create a composite agenda buffer. In this case, an entry looks like this: - (key desc (cmd1 cmd2 ...) general-options) + (key desc (cmd1 cmd2 ...) general-options file) where @@ -1695,19 +1859,22 @@ cmd An agenda command, similar to the above. However, tree commands (agenda) (alltodo) (stuck) - (todo \"match\" options) - (tags \"match\" options ) - (tags-todo \"match\" options) + (todo \"match\" options files) + (tags \"match\" options files) + (tags-todo \"match\" options files) Each command can carry a list of options, and another set of options can be given for the whole set of commands. Individual command options take precedence over the general options." :group 'org-agenda-custom-commands :type '(repeat - (choice + (choice :value ("a" tags "" nil) (list :tag "Single command" (string :tag "Key") (choice + (const :tag "Agenda" agenda) + (const :tag "TODO list" alltodo) + (const :tag "Stuck projects" stuck) (const :tag "Tags search (all agenda files)" tags) (const :tag "Tags search of TODO entries (all agenda files)" tags-todo) (const :tag "TODO keyword search (all agenda files)" todo) @@ -1717,7 +1884,8 @@ precedence over the general options." (symbol :tag "Other, user-defined function")) (string :tag "Match") (repeat :tag "Local options" - (list (variable :tag "Option") (sexp :tag "Value")))) + (list (variable :tag "Option") (sexp :tag "Value"))) + (option (repeat :tag "Export" (file :tag "Export to")))) (list :tag "Command series, all agenda files" (string :tag "Key") (string :tag "Description") @@ -1756,20 +1924,24 @@ precedence over the general options." (repeat :tag "General options" (list (variable :tag "Option") - (sexp :tag "Value"))))))) + (sexp :tag "Value"))) + (option (repeat :tag "Export" (file :tag "Export to"))))))) (defcustom org-stuck-projects - '("+LEVEL=2/-DONE" ("TODO" "NEXT" "NEXTACTION") nil) + '("+LEVEL=2/-DONE" ("TODO" "NEXT" "NEXTACTION") nil "") "How to identify stuck projects. -This is a list of three items: +This is a list of four items: 1. A tags/todo matcher string that is used to identify a project. - The entire tree below a headline matched by this is considered a project. -2. A list of TODO keywords itentifying non-stuck projects. + The entire tree below a headline matched by this is considered one project. +2. A list of TODO keywords identifying non-stuck projects. If the project subtree contains any headline with one of these todo - keywords, the project is consitered to be not stuck. + keywords, the project is considered to be not stuck. If you specify + \"*\" as a keyword, any TODO keyword will mark the project unstuck. 3. A list of tags identifying non-stuck projects. If the project subtree contains any headline with one of these tags, - the project is consitered to be not stuck. + the project is considered to be not stuck. If you specify \"*\" as + a tag, any tag will mark the project unstuck. +4. An arbitrary regular expression matching non-stuck projects. After defining this variable, you may use \\[org-agenda-list-stuck-projects] or `C-c a #' to produce the list." @@ -1777,7 +1949,8 @@ or `C-c a #' to produce the list." :type '(list (string :tag "Tags/TODO match to identify a project") (repeat :tag "Projects are *not* stuck if they have an entry with TODO keyword any of" (string)) - (repeat :tag "Projects are *not* stuck if they have an entry with TAG being any of" (string)))) + (repeat :tag "Projects are *not* stuck if they have an entry with TAG being any of" (string)) + (regexp :tag "Projects are *not* stuck if this regexp matches\ninside the subtree"))) (defgroup org-agenda-skip nil @@ -1815,6 +1988,14 @@ This is relevant for the daily/weekly agenda, not for the TODO list." :group 'org-agenda-skip :type 'boolean) +(defcustom org-agenda-skip-deadline-if-done nil + "Non-nil means don't show deadines when the corresponding item is done. +When nil, the deadline is still shown and should give you a happy feeling. + +This is relevant for the daily/weekly agenda." + :group 'org-agenda-skip + :type 'boolean) + (defcustom org-timeline-show-empty-dates 3 "Non-nil means, `org-timeline' also shows dates without an entry. When nil, only the days which actually have entries are shown. @@ -1846,7 +2027,7 @@ Needs to be set before org.el is loaded." :type 'boolean) (defcustom org-agenda-start-with-follow-mode nil - "The initial value of follwo-mode in a newly created agenda window." + "The initial value of follow-mode in a newly created agenda window." :group 'org-agenda-startup :type 'boolean) @@ -1931,7 +2112,7 @@ a format string understood by `format-time-string'. FIXME: Not used currently, because of timezone problem." :group 'org-agenda-daily/weekly :type 'string) - + (defcustom org-agenda-include-diary nil "If non-nil, include in the agenda entries from the Emacs Calendar's diary." :group 'org-agenda-daily/weekly @@ -2006,7 +2187,7 @@ a grid line." (defcustom org-agenda-sorting-strategy '((agenda time-up category-keep priority-down) (todo category-keep priority-down) - (tags category-keep)) + (tags category-keep priority-down)) "Sorting structure for the agenda items of a single day. This is a list of symbols which will be used in sequence to determine if an entry should be listed before another entry. The following @@ -2113,7 +2294,7 @@ the prefix, you could use: (setq org-agenda-prefix-format \" %-11:c% s\") See also the variables `org-agenda-remove-times-when-in-prefix' and -`org-agenda-remove-tags-when-in-prefix'." +`org-agenda-remove-tags'." :type '(choice (string :tag "General format") (list :greedy t :tag "View dependent" @@ -2144,7 +2325,7 @@ the headline/diary entry." (const :tag "Never" nil) (const :tag "When at beginning of entry" beg))) -(defcustom org-agenda-remove-tags-when-in-prefix nil +(defcustom org-agenda-remove-tags nil "Non-nil means, remove the tags from the headline copy in the agenda. When this is the symbol `prefix', only remove tags when `org-agenda-prefix-format' contains a `%T' specifier." @@ -2154,6 +2335,10 @@ When this is the symbol `prefix', only remove tags when (const :tag "Never" nil) (const :tag "When prefix format contains %T" prefix))) +(if (fboundp 'defvaralias) + (defvaralias 'org-agenda-remove-tags-when-in-prefix + 'org-agenda-remove-tags)) + (defcustom org-agenda-align-tags-to-column 65 "Shift tags in agenda items to this column." :group 'org-agenda-prefix @@ -2165,13 +2350,18 @@ When this is the symbol `prefix', only remove tags when :group 'org) (defcustom org-format-latex-options - '(:foreground "Black" :background "Transparent" :scale 1.0 - :matchers ("begin" "$" "$$" "\\(" "\\[")) + '(:foreground default :background default :scale 1.0 + :html-foreground "Black" :html-background "Transparent" :html-scale 1.0 + :matchers ("begin" "$" "$$" "\\(" "\\[")) "Options for creating images from LaTeX fragments. This is a property list with the following properties: -:foreground the foreground color, for example \"Black\". +:foreground the foreground color for images embedded in emacs, e.g. \"Black\". + `default' means use the forground of the default face. :background the background color, or \"Transparent\". + `default' means use the background of the default face. :scale a scaling factor for the size of the images +:html-foreground, :html-background, :html-scale + The same numbers for HTML export. :matchers a list indicating which matchers should be used to find LaTeX fragments. Valid members of this list are: \"begin\" find environments @@ -2182,6 +2372,18 @@ This is a property list with the following properties: :group 'org-latex :type 'plist) +(defcustom org-format-latex-header "\\documentclass{article} +\\usepackage{fullpage} % do not remove +\\usepackage{amssymb} +\\usepackage[usenames]{color} +\\usepackage{amsmath} +\\usepackage{latexsym} +\\usepackage[mathscr]{eucal} +\\pagestyle{empty} % do not remove" + "The document header used for processing LaTeX fragments." + :group 'org-latex + :type 'string) + (defgroup org-export nil "Options for exporting org-listings." :tag "Org Export" @@ -2237,6 +2439,12 @@ This should have an association in `org-export-language-setup'." :group 'org-export-general :type 'string) +(defcustom org-export-skip-text-before-1st-heading t + "Non-nil means, skip all text before the first headline when exporting. +When nil, that text is exported as well." + :group 'org-export-general + :type 'boolean) + (defcustom org-export-headline-levels 3 "The last level which is still exported as a headline. Inferior levels will produce itemize lists when exported. @@ -2354,12 +2562,19 @@ sub- or superscripts. x_{i^2} or x^(2-i) braces or parenthesis do grouping. Still, ambiguity is possible - so when in doubt use {} to enclose the -sub/superscript. +sub/superscript. If you set this variable to the symbol `{}', +the braces are *required* in order to trigger interpretations as +sub/superscript. This can be helpful in documents that need \"_\" +frequently in plain text. + Not all export backends support this, but HTML does. This option can also be set with the +OPTIONS line, e.g. \"^:nil\"." :group 'org-export-translation - :type 'boolean) + :type '(choice + (const :tag "Always interpret" t) + (const :tag "Only with braces" {}) + (const :tag "Never interpret" nil))) (defcustom org-export-with-TeX-macros t "Non-nil means, interpret simple TeX-like macros when exporting. @@ -2467,7 +2682,7 @@ In the given sequence, these characters will be used for level 1, 2, ..." (defcustom org-export-ascii-bullets '(?* ?+ ?-) "Bullet characters for headlines converted to lists in ASCII export. -The first character is is used for the first lest level generated in this +The first character is used for the first lest level generated in this way, and so on. If there are more levels than characters given here, the list will be repeated. Note that plain lists will keep the same bullets as the have in the @@ -2534,6 +2749,7 @@ you can \"misuse\" it to add arbitrary text to the header." :group 'org-export-html :type 'string) + (defcustom org-export-html-title-format "<h1 class=\"title\">%s</h1>\n" "Format for typesetting the document title in HTML export." :group 'org-export-html @@ -2567,7 +2783,7 @@ be linked only." (const :tag "Always" t) (const :tag "When there is no description" maybe))) -;; FIXME: rename +;; FIXME: rename (defcustom org-export-html-expand t "Non-nil means, for HTML export, treat @<...> as HTML tag. When nil, these tags will be exported as plain text and therefore @@ -2579,12 +2795,24 @@ This option can also be set with the +OPTIONS line, e.g. \"@:nil\"." (defcustom org-export-html-table-tag "<table border=\"2\" cellspacing=\"0\" cellpadding=\"6\" rules=\"groups\" frame=\"hsides\">" - "The HTML tag used to start a table. + "The HTML tag that is used to start a table. This must be a <table> tag, but you may change the options like borders and spacing." :group 'org-export-html :type 'string) +(defcustom org-export-table-header-tags '("<th>" . "</th>") + "The opening tag for table header fields. +This is customizable so that alignment options can be specified." + :group 'org-export-tables + :type '(cons (string :tag "Opening tag") (string :tag "Closing tag"))) + +(defcustom org-export-table-data-tags '("<td>" . "</td>") + "The opening tag for table data fields. +This is customizable so that alignment options can be specified." + :group 'org-export-tables + :type '(cons (string :tag "Opening tag") (string :tag "Closing tag"))) + (defcustom org-export-html-with-timestamp nil "If non-nil, write `org-export-html-html-helper-timestamp' into the exported HTML text. Otherwise, the buffer will just be saved @@ -2618,6 +2846,12 @@ The file name should be absolute." (const :tag "Unfinished" t) (const :tag "All" all))) +(defcustom org-icalendar-include-sexps t + "Non-nil means, export to iCalendar files should also cover sexp entries. +These are entries like in the diary, but directly in an Org-mode file." + :group 'org-export-icalendar + :type 'boolean) + (defcustom org-icalendar-combined-name "OrgMode" "Calendar name for the combined iCalendar representing all agenda files." :group 'org-export-icalendar @@ -2690,8 +2924,6 @@ Changing this variable requires a restart of Emacs to take effect." (setq markers (concat (replace-match "" t t markers) "^"))) (if (string-match "-" markers) (setq markers (concat (replace-match "" t t markers) "-"))) -; (while (>= (setq nl (1- nl)) 0) (setq body1 (concat body1 "\n?" body "*?"))) -; (while (>= (setq nl (1- nl)) 0) (setq body1 (concat body1 "\\(?:\n?" body "*?\\)?"))) (if (> nl 0) (setq body1 (concat body1 "\\(?:\n" body "*?\\)\\{0," (int-to-string nl) "\\}"))) @@ -2701,15 +2933,15 @@ Changing this variable requires a restart of Emacs to take effect." "\\(" "\\([" markers "]\\)" "\\(" - "[^" border markers "]" + "[^" border (if (and nil stacked) markers) "]" body1 - "[^" border markers "]" + "[^" border (if (and nil stacked) markers) "]" "\\)" "\\3\\)" "\\([" post (if stacked markers) "]\\|$\\)"))))) (defcustom org-emphasis-regexp-components - '(" \t('\"" " \t.,?;'\")" " \t\r\n," "." 1 nil) + '(" \t('\"" "- \t.,:?;'\")" " \t\r\n,\"'" "." 1 nil) "Components used to build the reqular expression for emphasis. This is a list with 6 entries. Terminology: In an emphasis string like \" *strong word* \", we call the initial space PREMATCH, the final @@ -2719,8 +2951,7 @@ specify what is allowed/forbidden in each part: pre Chars allowed as prematch. Beginning of line will be allowed too. post Chars allowed as postmatch. End of line will be allowed too. -border The chars *forbidden* as border characters. In addition to the - characters given here, all marker characters are forbidden too. +border The chars *forbidden* as border characters. body-regexp A regexp like \".\" to match a body character. Don't use non-shy groups here, and don't allow newline here. newline The maximum number of newlines allowed in an emphasis exp. @@ -2745,11 +2976,11 @@ Use customize to modify this, or restart Emacs after changing it." ("_" underline "<u>" "</u>") ("=" shadow "<code>" "</code>") ("+" (:strike-through t) "<del>" "</del>") -) + ) "Special syntax for emphasized text. Text starting and ending with a special character will be emphasized, for example *bold*, _underlined_ and /italic/. This variable sets the marker -characters, the face to bbe used by font-lock for highlighting in Org-mode +characters, the face to be used by font-lock for highlighting in Org-mode Emacs buffers, and the HTML tags to be used for this. Use customize to modify this, or restart Emacs after changing it." :group 'org-font-lock @@ -2894,15 +3125,6 @@ color of the frame." "Face for deadlines and TODO keywords." :group 'org-faces) -(defface org-headline-done ;; font-lock-string-face - (org-compatible-face - '((((class color) (min-colors 16) (background light)) (:foreground "RosyBrown")) - (((class color) (min-colors 16) (background dark)) (:foreground "LightSalmon")) - (((class color) (min-colors 8) (background light)) (:bold nil)))) - "Face used to indicate that a headline is DONE. -This face is only used if `org-fontify-done-headline' is set." - :group 'org-faces) - (defface org-archived ; similar to shadow (org-compatible-face '((((class color grayscale) (min-colors 88) (background light)) @@ -2930,6 +3152,13 @@ This face is only used if `org-fontify-done-headline' is set." "Face for links." :group 'org-faces) +(defface org-sexp-date + '((((class color) (background light)) (:foreground "Purple")) + (((class color) (background dark)) (:foreground "Cyan")) + (t (:underline t))) + "Face for links." + :group 'org-faces) + (defface org-tag '((t (:bold t))) "Face for tags." @@ -2951,7 +3180,17 @@ This face is only used if `org-fontify-done-headline' is set." (((class color) (min-colors 16) (background dark)) (:foreground "PaleGreen" :bold t)) (((class color) (min-colors 8)) (:foreground "green")) (t (:bold t)))) - "Face used for DONE." + "Face used for todo keywords that indicate DONE items." + :group 'org-faces) + +(defface org-headline-done ;; font-lock-string-face + (org-compatible-face + '((((class color) (min-colors 16) (background light)) (:foreground "RosyBrown")) + (((class color) (min-colors 16) (background dark)) (:foreground "LightSalmon")) + (((class color) (min-colors 8) (background light)) (:bold nil)))) + "Face used to indicate that a headline is DONE. +This face is only used if `org-fontify-done-headline' is set. If applies +to the part of the headline after the DONE keyword." :group 'org-faces) (defface org-table ;; font-lock-function-name-face @@ -2975,6 +3214,17 @@ This face is only used if `org-fontify-done-headline' is set." "Face for formulas." :group 'org-faces) +(defface org-agenda-structure ;; font-lock-function-name-face + (org-compatible-face + '((((class color) (min-colors 88) (background light)) (:foreground "Blue1")) + (((class color) (min-colors 88) (background dark)) (:foreground "LightSkyBlue")) + (((class color) (min-colors 16) (background light)) (:foreground "Blue")) + (((class color) (min-colors 16) (background dark)) (:foreground "LightSkyBlue")) + (((class color) (min-colors 8)) (:foreground "blue" :bold t)) + (t (:bold t)))) + "Face used in agenda for captions and dates." + :group 'org-faces) + (defface org-scheduled-today (org-compatible-face '((((class color) (min-colors 88) (background light)) (:foreground "DarkGreen")) @@ -3021,9 +3271,6 @@ This face is only used if `org-fontify-done-headline' is set." ;;; Variables for pre-computed regular expressions, all buffer local -(defvar org-done-string nil - "The last string in `org-todo-keywords', indicating an item is DONE.") -(make-variable-buffer-local 'org-done-string) (defvar org-todo-regexp nil "Matches any of the TODO state keywords.") (make-variable-buffer-local 'org-todo-regexp) @@ -3043,12 +3290,6 @@ Also put tags into group 4 if tags are present.") (defvar org-looking-at-done-regexp nil "Matches the DONE keyword a point.") (make-variable-buffer-local 'org-looking-at-done-regexp) -(defvar org-todo-kwd-priority-p nil - "Do TODO items have priorities?") -(make-variable-buffer-local 'org-todo-kwd-priority-p) -(defvar org-todo-kwd-max-priority nil - "Maximum priority of TODO items.") -(make-variable-buffer-local 'org-todo-kwd-max-priority) (defvar org-ds-keyword-length 12 "Maximum length of the Deadline and SCHEDULED keywords.") (make-variable-buffer-local 'org-ds-keyword-length) @@ -3080,6 +3321,9 @@ Also put tags into group 4 if tags are present.") (defvar org-maybe-keyword-time-regexp nil "Matches a timestamp, possibly preceeded by a keyword.") (make-variable-buffer-local 'org-maybe-keyword-time-regexp) +(defvar org-planning-or-clock-line-re nil + "Matches a line with planning or clock info.") +(make-variable-buffer-local 'org-planning-or-clock-line-re) (defconst org-rm-props '(invisible t face t keymap t intangible t mouse-face t rear-nonsticky t mouse-map t fontified t) @@ -3102,6 +3346,12 @@ Also put tags into group 4 if tags are present.") ((assoc key option) (cdr (assoc key option))) (t (cdr (assq 'default option))))) +(defsubst org-inhibit-invisibility () + "Modified `buffer-invisibility-spec' for Emacs 21. +Some ops with invisible text do not work correctly on Emacs 21. For these +we turn off invisibility temporarily. Use this in a `let' form." + (if (< emacs-major-version 22) nil buffer-invisibility-spec)) + (defsubst org-set-local (var value) "Make VAR local in current buffer and set it to VALUE." (set (make-variable-buffer-local var) value)) @@ -3139,7 +3389,11 @@ Also put tags into group 4 if tags are present.") ("nologging" org-log-done nil) ("lognotedone" org-log-done done push) ("lognotestate" org-log-done state push) - ("lognoteclock-out" org-log-done clock-out push)) + ("lognoteclock-out" org-log-done clock-out push) + ("logrepeat" org-log-repeat t) + ("nologrepeat" org-log-repeat nil) + ("constcgs" constants-unit-system cgs) + ("constSI" constants-unit-system SI)) "Variable associated with STARTUP options for org-mode. Each element is a list of three items: The startup options as written in the #+STARTUP line, the corresponding variable, and the value to @@ -3149,11 +3403,16 @@ means to push this value onto the list in the variable.") (defun org-set-regexps-and-options () "Precompute regular expressions for current buffer." (when (org-mode-p) + (org-set-local 'org-todo-kwd-alist nil) + (org-set-local 'org-todo-keywords-1 nil) + (org-set-local 'org-done-keywords nil) + (org-set-local 'org-todo-heads nil) + (org-set-local 'org-todo-sets nil) (let ((re (org-make-options-regexp '("CATEGORY" "SEQ_TODO" "PRI_TODO" "TYP_TODO" - "STARTUP" "ARCHIVE" "TAGS" "LINK"))) + "STARTUP" "ARCHIVE" "TAGS" "LINK" "PRIORITIES"))) (splitre "[ \t]+") - kwds int key value cat arch tags links) + kwds key value cat arch tags links hw dws tail sep kws1 prio) (save-excursion (save-restriction (widen) @@ -3166,14 +3425,9 @@ means to push this value onto the list in the variable.") (setq value (replace-match "" t t value))) (setq cat (intern value))) ((equal key "SEQ_TODO") - (setq int 'sequence - kwds (append kwds (org-split-string value splitre)))) - ((equal key "PRI_TODO") - (setq int 'priority - kwds (append kwds (org-split-string value splitre)))) + (push (cons 'sequence (org-split-string value splitre)) kwds)) ((equal key "TYP_TODO") - (setq int 'type - kwds (append kwds (org-split-string value splitre)))) + (push (cons 'type (org-split-string value splitre)) kwds)) ((equal key "TAGS") (setq tags (append tags (org-split-string value splitre)))) ((equal key "LINK") @@ -3181,17 +3435,20 @@ means to push this value onto the list in the variable.") (push (cons (match-string 1 value) (org-trim (match-string 2 value))) links))) + ((equal key "PRIORITIES") + (setq prio (org-split-string value " +"))) ((equal key "STARTUP") (let ((opts (org-split-string value splitre)) l var val) - (while (setq l (assoc (pop opts) org-startup-options)) - (setq var (nth 1 l) val (nth 2 l)) - (if (not (nth 3 l)) - (set (make-local-variable var) val) - (if (not (listp (symbol-value var))) - (set (make-local-variable var) nil)) - (set (make-local-variable var) (symbol-value var)) - (add-to-list var val))))) + (while (setq l (pop opts)) + (when (setq l (assoc l org-startup-options)) + (setq var (nth 1 l) val (nth 2 l)) + (if (not (nth 3 l)) + (set (make-local-variable var) val) + (if (not (listp (symbol-value var))) + (set (make-local-variable var) nil)) + (set (make-local-variable var) (symbol-value var)) + (add-to-list var val)))))) ((equal key "ARCHIVE") (string-match " *$" value) (setq arch (replace-match "" t t value)) @@ -3199,10 +3456,38 @@ means to push this value onto the list in the variable.") '(face t fontified t) arch))) ))) (and cat (org-set-local 'org-category cat)) - (and kwds (org-set-local 'org-todo-keywords kwds)) + (when prio + (if (< (length prio) 3) (setq prio '("A" "C" "B"))) + (setq prio (mapcar 'string-to-char prio)) + (org-set-local 'org-highest-priority (nth 0 prio)) + (org-set-local 'org-lowest-priority (nth 1 prio)) + (org-set-local 'org-default-priority (nth 2 prio))) (and arch (org-set-local 'org-archive-location arch)) - (and int (org-set-local 'org-todo-interpretation int)) (and links (setq org-link-abbrev-alist-local (nreverse links))) + ;; Process the TODO keywords + (unless kwds + ;; Use the global values as if they had been given locally. + (setq kwds (default-value 'org-todo-keywords)) + (if (stringp (car kwds)) + (setq kwds (list (cons org-todo-interpretation + (default-value 'org-todo-keywords))))) + (setq kwds (reverse kwds))) + (setq kwds (nreverse kwds)) + (let (inter kws) + (while (setq kws (pop kwds)) + (setq inter (pop kws) sep (member "|" kws) + kws1 (delete "|" (copy-sequence kws)) + hw (car kws1) + dws (if sep (cdr sep) (last kws1)) + tail (list inter hw (car dws) (org-last dws))) + (add-to-list 'org-todo-heads hw 'append) + (push kws1 org-todo-sets) + (setq org-done-keywords (append org-done-keywords dws nil)) + (mapc (lambda (x) (push (cons x tail) org-todo-kwd-alist)) kws1) + (setq org-todo-keywords-1 (append org-todo-keywords-1 kws1 nil))) + (setq org-todo-sets (nreverse org-todo-sets) + org-todo-kwd-alist (nreverse org-todo-kwd-alist))) + ;; Process the tags. (when tags (let (e tgs) (while (setq e (pop tags)) @@ -3221,32 +3506,35 @@ means to push this value onto the list in the variable.") (push e org-tag-alist)))))) ;; Compute the regular expressions and other local variables - (setq org-todo-kwd-priority-p (equal org-todo-interpretation 'priority) - org-todo-kwd-max-priority (1- (length org-todo-keywords)) - org-ds-keyword-length (+ 2 (max (length org-deadline-string) + (if (not org-done-keywords) + (setq org-done-keywords (list (org-last org-todo-keywords-1)))) + (setq org-ds-keyword-length (+ 2 (max (length org-deadline-string) (length org-scheduled-string))) - org-done-string - (nth (1- (length org-todo-keywords)) org-todo-keywords) + org-not-done-keywords + (org-delete-all org-done-keywords (copy-sequence org-todo-keywords-1)) org-todo-regexp - (concat "\\<\\(" (mapconcat 'regexp-quote org-todo-keywords + (concat "\\<\\(" (mapconcat 'regexp-quote org-todo-keywords-1 "\\|") "\\)\\>") org-not-done-regexp (concat "\\<\\(" - (mapconcat 'regexp-quote - (nreverse (cdr (reverse org-todo-keywords))) - "\\|") + (mapconcat 'regexp-quote org-not-done-keywords "\\|") "\\)\\>") org-todo-line-regexp (concat "^\\(\\*+\\)[ \t]*\\(?:\\(" - (mapconcat 'regexp-quote org-todo-keywords "\\|") + (mapconcat 'regexp-quote org-todo-keywords-1 "\\|") "\\)\\>\\)? *\\(.*\\)") org-nl-done-regexp - (concat "[\r\n]\\*+[ \t]+" org-done-string "\\>") + (concat "[\r\n]\\*+[ \t]+" + "\\(?:" (mapconcat 'regexp-quote org-done-keywords "\\|") + "\\)" "\\>") org-todo-line-tags-regexp (concat "^\\(\\*+\\)[ \t]*\\(?:\\(" - (mapconcat 'regexp-quote org-todo-keywords "\\|") + (mapconcat 'regexp-quote org-todo-keywords-1 "\\|") "\\)\\>\\)? *\\(.*?\\([ \t]:[a-zA-Z0-9:_@]+:[ \t]*\\)?$\\)") - org-looking-at-done-regexp (concat "^" org-done-string "\\>") + org-looking-at-done-regexp + (concat "^" "\\(?:" + (mapconcat 'regexp-quote org-done-keywords "\\|") "\\)" + "\\>") org-deadline-regexp (concat "\\<" org-deadline-string) org-deadline-time-regexp (concat "\\<" org-deadline-string " *<\\([^>]+\\)>") @@ -3274,7 +3562,12 @@ means to push this value onto the list in the variable.") "\\|" org-deadline-string "\\|" org-closed-string "\\|" org-clock-string "\\)\\)?" - " *\\([[<][0-9]\\{4\\}-[0-9]\\{2\\}-[0-9]\\{2\\}[^]\r\n>]*?[]>]\\)")) + " *\\([[<][0-9]\\{4\\}-[0-9]\\{2\\}-[0-9]\\{2\\} [^]\r\n>]*?[]>]\\|<%%([^\r\n>]*>\\)") + org-planning-or-clock-line-re + (concat "\\(?:^[ \t]*\\(" org-scheduled-string + "\\|" org-deadline-string + "\\|" org-closed-string "\\|" org-clock-string "\\)\\>\\)") + ) (org-set-font-lock-defaults))) @@ -3325,6 +3618,7 @@ This is for getting out of special buffers like remember.") (defvar annotation) ; from remember.el, dynamically scoped in `remember-mode' (defvar initial) ; from remember.el, dynamically scoped in `remember-mode' (defvar org-latex-regexps) +(defvar constants-unit-system) (defvar original-date) ; dynamically scoped in calendar.el does scope this @@ -3394,6 +3688,7 @@ This is for getting out of special buffers like remember.") (overlay-get ovl prop))) (defun org-overlays-at (pos) (if (featurep 'xemacs) (extents-at pos) (overlays-at pos))) +;; FIXME: this is currently not used (defun org-overlays-in (&optional start end) (if (featurep 'xemacs) (extent-list nil start end) @@ -3402,6 +3697,7 @@ This is for getting out of special buffers like remember.") (if (featurep 'xemacs) (extent-start-position o) (overlay-start o))) (defun org-overlay-end (o) (if (featurep 'xemacs) (extent-end-position o) (overlay-end o))) +;; FIXME: this is currently not used (defun org-find-overlays (prop &optional pos delete) "Find all overlays specifying PROP at POS or point. If DELETE is non-nil, delete all those overlays." @@ -3455,6 +3751,7 @@ that can be added." (setq buffer-invisibility-spec (delete arg buffer-invisibility-spec))))) +;; FIXME: this is currently not used (defun org-in-invisibility-spec-p (arg) "Is ARG a member of `buffer-invisibility-spec'?" (if (consp buffer-invisibility-spec) @@ -3477,6 +3774,7 @@ This variable is set by `org-before-change-function'. (defvar org-mode-hook nil) (defvar org-inhibit-startup nil) ; Dynamically-scoped param. (defvar org-agenda-keep-modes nil) ; Dynamically-scoped param. +(defvar org-table-buffer-is-an nil) ;;;###autoload @@ -3521,7 +3819,6 @@ The following commands are available: (when (featurep 'xemacs) (org-set-local 'line-move-ignore-invisible t)) (setq outline-regexp "\\*+") - ;;(setq outline-regexp "\\(?:\\*+\\|[ \t]*\\(?:[-+*]\\|[0-9]+[.)]\\) \\)") (setq outline-level 'org-outline-level) (when (and org-ellipsis (stringp org-ellipsis) (fboundp 'set-display-table-slot) (boundp 'buffer-display-table)) @@ -3534,6 +3831,7 @@ The following commands are available: ;; Calc embedded (org-set-local 'calc-embedded-open-mode "# ") (modify-syntax-entry ?# "<") + (modify-syntax-entry ?@ "w") (if org-startup-truncated (setq truncate-lines t)) (org-set-local 'font-lock-unfontify-region-function 'org-unfontify-region) @@ -3545,6 +3843,7 @@ The following commands are available: (org-add-hook 'kill-buffer-hook 'org-check-running-clock nil 'local) ;; Paragraphs and auto-filling (org-set-autofill-regexps) + (setq indent-line-function 'org-indent-line-function) (org-update-radio-target-regexp) ;; Comment characters @@ -3564,7 +3863,7 @@ The following commands are available: (if (and org-insert-mode-line-in-empty-file (interactive-p) (= (point-min) (point-max))) - (insert " -*- mode: org -*-\n\n")) + (insert "# -*- mode: org -*-\n\n")) (unless org-inhibit-startup (when org-startup-align-all-tables @@ -3578,6 +3877,8 @@ The following commands are available: (let ((this-command 'org-cycle) (last-command 'org-cycle)) (org-cycle '(4)) (org-cycle '(4))))))) +(put 'org-mode 'flyspell-mode-predicate 'org-mode-flyspell-verify) + (defsubst org-call-with-arg (command arg) "Call COMMAND interactively, but pretend prefix are was ARG." (let ((current-prefix-arg arg)) (call-interactively command))) @@ -3610,23 +3911,23 @@ that will be added to PLIST. Returns the string that was modified." ;;;; Font-Lock stuff, including the activators (defvar org-mouse-map (make-sparse-keymap)) -(define-key org-mouse-map +(org-defkey org-mouse-map (if (featurep 'xemacs) [button2] [mouse-2]) 'org-open-at-mouse) -(define-key org-mouse-map +(org-defkey org-mouse-map (if (featurep 'xemacs) [button3] [mouse-3]) 'org-find-file-at-mouse) (when org-mouse-1-follows-link - (define-key org-mouse-map [follow-link] 'mouse-face)) + (org-defkey org-mouse-map [follow-link] 'mouse-face)) (when org-tab-follows-link - (define-key org-mouse-map [(tab)] 'org-open-at-point) - (define-key org-mouse-map "\C-i" 'org-open-at-point)) + (org-defkey org-mouse-map [(tab)] 'org-open-at-point) + (org-defkey org-mouse-map "\C-i" 'org-open-at-point)) (when org-return-follows-link - (define-key org-mouse-map [(return)] 'org-open-at-point) - (define-key org-mouse-map "\C-m" 'org-open-at-point)) + (org-defkey org-mouse-map [(return)] 'org-open-at-point) + (org-defkey org-mouse-map "\C-m" 'org-open-at-point)) (require 'font-lock) (defconst org-non-link-chars "]\t\n\r<>") -(defconst org-link-types '("https?" "ftp" "mailto" "file" "news" "bbdb" "vm" +(defconst org-link-types '("http" "https" "ftp" "mailto" "file" "news" "bbdb" "vm" "wl" "mhe" "rmail" "gnus" "shell" "info" "elisp")) (defconst org-link-re-with-space (concat @@ -3679,21 +3980,17 @@ that will be added to PLIST. Returns the string that was modified." (concat "\\(" org-bracket-link-regexp "\\)\\|\\(" org-angle-link-re "\\)\\|\\(" org-plain-link-re "\\)") - "Regular expression matching any link.") + "Regular expression matching any link.") -(defconst org-ts-lengths - (cons (length (format-time-string (car org-time-stamp-formats))) - (length (format-time-string (cdr org-time-stamp-formats)))) - "This holds the lengths of the two different time formats.") -(defconst org-ts-regexp "<\\([0-9]\\{4\\}-[0-9]\\{2\\}-[0-9]\\{2\\}[^\r\n>]*?\\)>" +(defconst org-ts-regexp "<\\([0-9]\\{4\\}-[0-9]\\{2\\}-[0-9]\\{2\\} [^\r\n>]*?\\)>" "Regular expression for fast time stamp matching.") -(defconst org-ts-regexp-both "[[<]\\([0-9]\\{4\\}-[0-9]\\{2\\}-[0-9]\\{2\\}[^\r\n>]*?\\)[]>]" +(defconst org-ts-regexp-both "[[<]\\([0-9]\\{4\\}-[0-9]\\{2\\}-[0-9]\\{2\\} [^\r\n>]*?\\)[]>]" "Regular expression for fast time stamp matching.") -(defconst org-ts-regexp1 "\\(\\([0-9]\\{4\\}\\)-\\([0-9]\\{2\\}\\)-\\([0-9]\\{2\\}\\)\\([^]0-9>\r\n]*\\)\\(\\([0-9]\\{2\\}\\):\\([0-9]\\{2\\}\\)\\)?\\)" +(defconst org-ts-regexp1 "\\(\\([0-9]\\{4\\}\\)-\\([0-9]\\{2\\}\\)-\\([0-9]\\{2\\}\\) \\([^]0-9>\r\n]*\\)\\(\\([0-9]\\{2\\}\\):\\([0-9]\\{2\\}\\)\\)?\\)" "Regular expression matching time strings for analysis.") -(defconst org-ts-regexp2 (concat "<" org-ts-regexp1 ">") +(defconst org-ts-regexp2 (concat "<" org-ts-regexp1 "[^>\n]\\{0,6\\}>") "Regular expression matching time stamps, with groups.") -(defconst org-ts-regexp3 (concat "[[<]" org-ts-regexp1 "[]>]") +(defconst org-ts-regexp3 (concat "[[<]" org-ts-regexp1 "[^]>\n]\\{0,6\\}[]>]") "Regular expression matching time stamps (also [..]), with groups.") (defconst org-tr-regexp (concat org-ts-regexp "--?-?" org-ts-regexp) "Regular expression matching a time stamp range.") @@ -3712,27 +4009,87 @@ The time stamps may be either active or inactive.") (defun org-do-emphasis-faces (limit) "Run through the buffer and add overlays to links." - (if (re-search-forward org-emph-re limit t) - (progn - (font-lock-prepend-text-property (match-beginning 2) (match-end 2) - 'face - (nth 1 (assoc (match-string 3) - org-emphasis-alist))) - (add-text-properties (match-beginning 2) (match-end 2) - '(font-lock-multiline t)) - (backward-char 1) - t))) + (let (rtn) + (while (and (not rtn) (re-search-forward org-emph-re limit t)) + (if (not (= (char-after (match-beginning 3)) + (char-after (match-beginning 4)))) + (progn + (setq rtn t) + (font-lock-prepend-text-property (match-beginning 2) (match-end 2) + 'face + (nth 1 (assoc (match-string 3) + org-emphasis-alist))) + (add-text-properties (match-beginning 2) (match-end 2) + '(font-lock-multiline t)) + (backward-char 1)))) + rtn)) + +(defun org-emphasize (&optional char) + "Insert or change an emphasis, i.e. a font like bold or italic. +If there is an active region, change that region to a new emphasis. +If there is no region, just insert the marker characters and position +the cursor between them. +CHAR should be either the marker character, or the first character of the +HTML tag associated with that emphasis. If CHAR is a space, the means +to remove the emphasis of the selected region. +If char is not given (for example in an interactive call) it +will be prompted for." + (interactive) + (let ((eal org-emphasis-alist) e det + (erc org-emphasis-regexp-components) + (prompt "") + (string "") beg end move tag c s) + (if (org-region-active-p) + (setq beg (region-beginning) end (region-end) + string (buffer-substring beg end)) + (setq move t)) + + (while (setq e (pop eal)) + (setq tag (car (org-split-string (nth 2 e) "[ <>/]+")) + c (aref tag 0)) + (push (cons c (string-to-char (car e))) det) + (setq prompt (concat prompt (format " [%s%c]%s" (car e) c + (substring tag 1))))) + (unless char + (message "%s" (concat "Emphasis marker or tag:" prompt)) + (setq char (read-char-exclusive))) + (setq char (or (cdr (assoc char det)) char)) + (if (equal char ?\ ) + (setq s "" move nil) + (unless (assoc (char-to-string char) org-emphasis-alist) + (error "No such emphasis marker: \"%c\"" char)) + (setq s (char-to-string char))) + (while (and (> (length string) 1) + (equal (substring string 0 1) (substring string -1)) + (assoc (substring string 0 1) org-emphasis-alist)) + (setq string (substring string 1 -1))) + (setq string (concat s string s)) + (if beg (delete-region beg end)) + (unless (or (bolp) + (string-match (concat "[" (nth 0 erc) "\n]") + (char-to-string (char-before (point))))) + (insert " ")) + (unless (string-match (concat "[" (nth 1 erc) "\n]") + (char-to-string (char-after (point)))) + (insert " ") (backward-char 1)) + (insert string) + (and move (backward-char 1)))) (defun org-activate-plain-links (limit) "Run through the buffer and add overlays to links." - (if (re-search-forward org-plain-link-re limit t) - (progn - (add-text-properties (match-beginning 0) (match-end 0) - (list 'mouse-face 'highlight - 'rear-nonsticky t - 'keymap org-mouse-map - )) - t))) + (catch 'exit + (let (f) + (while (re-search-forward org-plain-link-re limit t) + (setq f (get-text-property (match-beginning 0) 'face)) + (if (or (eq f 'org-tag) + (and (listp f) (memq 'org-tag f))) + nil + (add-text-properties (match-beginning 0) (match-end 0) + (list 'mouse-face 'highlight + 'rear-nonsticky t + 'keymap org-mouse-map + )) + (throw 'exit t)))))) (defun org-activate-angle-links (limit) "Run through the buffer and add overlays to links." @@ -3881,11 +4238,6 @@ between words." 'keymap org-mouse-map)) t))) -(defun org-font-lock-level () - (save-excursion - (org-back-to-heading t) - (- (match-end 0) (match-beginning 0)))) - (defun org-outline-level () (save-excursion (looking-at outline-regexp) @@ -3906,20 +4258,20 @@ between words." '("^[ \t]*\\(\\(|\\|\\+-[-+]\\).*\\S-\\)" (1 'org-table)) ;; Links + (if (memq 'tag lk) '(org-activate-tags (1 'org-tag prepend))) (if (memq 'angle lk) '(org-activate-angle-links (0 'org-link t))) (if (memq 'plain lk) '(org-activate-plain-links (0 'org-link t))) (if (memq 'bracket lk) '(org-activate-bracket-links (0 'org-link t))) (if (memq 'radio lk) '(org-activate-target-links (0 'org-link t))) (if (memq 'date lk) '(org-activate-dates (0 'org-date t))) - (if (memq 'tag lk) '(org-activate-tags (1 'org-tag prepend))) + '("^&?%%(.*\\|<%%([^>\n]*?>" (0 'org-sexp-date t)) '(org-hide-wide-columns (0 nil append)) ;; TODO lines (list (concat "^\\*+[ \t]*" org-not-done-regexp) '(1 'org-todo t)) ;; Priorities - (list (concat "\\[#[A-Z]\\]") '(0 'org-special-keyword t)) + (list (concat "\\[#[A-Z0-9]\\]") '(0 'org-special-keyword t)) ;; Special keywords - (list org-repeat-re '(0 'org-special-keyword t)) (list (concat "\\<" org-deadline-string) '(0 'org-special-keyword t)) (list (concat "\\<" org-scheduled-string) '(0 'org-special-keyword t)) (list (concat "\\<" org-closed-string) '(0 'org-special-keyword t)) @@ -3942,9 +4294,13 @@ between words." '("^#.*" (0 'font-lock-comment-face t)) ;; DONE (if org-fontify-done-headline - (list (concat "^[*]+ +\\<\\(" org-done-string "\\)\\(.*\\)\\>") + (list (concat "^[*]+ +\\<\\(" + (mapconcat 'regexp-quote org-done-keywords "\\|") + "\\)\\(.*\\)") '(1 'org-done t) '(2 'org-headline-done t)) - (list (concat "^[*]+ +\\<\\(" org-done-string "\\)\\>") + (list (concat "^[*]+ +\\<\\(" + (mapconcat 'regexp-quote org-done-keywords "\\|") + "\\)\\>") '(1 'org-done t))) ;; Table stuff '("^[ \t]*\\(:.*\\)" (1 'org-table t)) @@ -4022,8 +4378,8 @@ between words." `indent-relative', like TAB normally does. See the option `org-cycle-emulate-tab' for details. -- Special case: if point is the the beginning of the buffer and there is - no headline in line 1, this function will act as if called with prefix arg." +- Special case: if point is the beginning of the buffer and there is no + headline in line 1, this function will act as if called with prefix arg." (interactive "P") (let* ((outline-regexp (if (and (org-mode-p) org-cycle-include-plain-lists) @@ -4088,7 +4444,8 @@ between words." (- (funcall outline-level) arg))) (org-show-subtree))) - ((save-excursion (beginning-of-line 1) (looking-at outline-regexp)) + ((and (save-excursion (beginning-of-line 1) (looking-at outline-regexp)) + (or (bolp) (not (eq org-cycle-emulate-tab 'exc-hl-bol)))) ;; At a heading: rotate between three different views (org-back-to-heading) (let ((goal-column 0) eoh eol eos) @@ -4102,20 +4459,30 @@ between words." (beginning-of-line 2)) (setq eol (point))) (outline-end-of-heading) (setq eoh (point)) (org-end-of-subtree t) - (skip-chars-forward " \t\n") - (beginning-of-line 1) ; in case this is an item + (unless (eobp) + (skip-chars-forward " \t\n") + (beginning-of-line 1) ; in case this is an item + ) (setq eos (1- (point)))) ;; Find out what to do next and set `this-command' (cond ((= eos eoh) ;; Nothing is hidden behind this heading (message "EMPTY ENTRY") - (setq org-cycle-subtree-status nil)) + (setq org-cycle-subtree-status nil) + (save-excursion + (goto-char eos) + (outline-next-heading) + (if (org-invisible-p) (org-flag-heading nil)))) ((>= eol eos) ;; Entire subtree is hidden in one line: open it (org-show-entry) (show-children) (message "CHILDREN") + (save-excursion + (goto-char eos) + (outline-next-heading) + (if (org-invisible-p) (org-flag-heading nil))) (setq org-cycle-subtree-status 'children) (run-hook-with-args 'org-cycle-hook 'children)) ((and (eq last-command this-command) @@ -4137,6 +4504,11 @@ between words." ((org-try-cdlatex-tab)) + ((and (eq org-cycle-emulate-tab 'exc-hl-bol) + (or (not (bolp)) + (not (looking-at outline-regexp)))) + (call-interactively (global-key-binding "\t"))) + ((if (and (memq org-cycle-emulate-tab '(white whitestart)) (save-excursion (beginning-of-line 1) (looking-at "[ \t]*")) (or (and (eq org-cycle-emulate-tab 'white) @@ -4151,7 +4523,7 @@ between words." (progn (beginning-of-line 1) (and (looking-at "[ \t]+") (replace-match "")))) - (indent-relative)) + (call-interactively (global-key-binding "\t"))) (t (save-excursion (org-back-to-heading) @@ -4177,13 +4549,13 @@ of the first headline in the buffer. This is important, because if the first headline is not level one, then (hide-sublevels 1) gives confusing results." (interactive) - (hide-sublevels (save-excursion - (goto-char (point-min)) - (if (re-search-forward (concat "^" outline-regexp) nil t) - (progn - (goto-char (match-beginning 0)) - (funcall outline-level)) - 1)))) + (let ((level (save-excursion + (goto-char (point-min)) + (if (re-search-forward (concat "^" outline-regexp) nil t) + (progn + (goto-char (match-beginning 0)) + (funcall outline-level)))))) + (and level (hide-sublevels level)))) (defun org-content (&optional arg) "Show all headlines in the buffer, like a table of contents. @@ -4210,13 +4582,53 @@ With numerical argument N, show content up to level N." This function is the default value of the hook `org-cycle-hook'." (when (get-buffer-window (current-buffer)) (cond - ((eq state 'overview) (org-first-headline-recenter 1)) +; ((eq state 'overview) (org-first-headline-recenter 1)) +; ((eq state 'overview) (org-beginning-of-line)) ((eq state 'content) nil) ((eq state 'all) nil) ((eq state 'folded) nil) ((eq state 'children) (or (org-subtree-end-visible-p) (recenter 1))) ((eq state 'subtree) (or (org-subtree-end-visible-p) (recenter 1)))))) + +(defun org-cycle-show-empty-lines (state) + "Show empty lines above all visible headlines. +The region to be covered depends on STATE when called through +`org-cycle-hook'. Lisp program can use t for STATE to get the +entire buffer covered. Note that an empty line is only shown if there +are at least `org-cycle-separator-lines' empty lines before the headeline." + (when (> org-cycle-separator-lines 0) + (save-excursion + (let* ((n org-cycle-separator-lines) + (re (cond + ((= n 1) "\\(\n[ \t]*\n\\*+\\) ") + ((= n 2) "^[ \t]*\\(\n[ \t]*\n\\*+\\) ") + (t (let ((ns (number-to-string (- n 2)))) + (concat "^\\(?:[ \t]*\n\\)\\{" ns "," ns "\\}" + "[ \t]*\\(\n[ \t]*\n\\*+\\) "))))) + beg end) + (cond + ((memq state '(overview contents t)) + (setq beg (point-min) end (point-max))) + ((memq state '(children folded)) + (setq beg (point) end (progn (org-end-of-subtree t t) + (beginning-of-line 2) + (point))))) + (when beg + (goto-char beg) + (while (re-search-forward re end t) + (if (not (get-char-property (match-end 1) 'invisible)) + (outline-flag-region + (match-beginning 1) (match-end 1) nil))))))) + ;; Never hide empty lines at the end of the file. + (save-excursion + (goto-char (point-max)) + (outline-previous-heading) + (outline-end-of-heading) + (if (and (looking-at "[ \t\n]+") + (= (match-end 0) (point-max))) + (outline-flag-region (point) (match-end 0) nil)))) + (defun org-subtree-end-visible-p () "Is the end of the current subtree visible?" (pos-visible-in-window-p @@ -4238,27 +4650,27 @@ Optional argument N means, put the headline into the Nth line of the window." (let ((cmds '(isearch-forward isearch-backward)) cmd) (while (setq cmd (pop cmds)) (substitute-key-definition cmd cmd org-goto-map global-map))) -(define-key org-goto-map "\C-m" 'org-goto-ret) -(define-key org-goto-map [(left)] 'org-goto-left) -(define-key org-goto-map [(right)] 'org-goto-right) -(define-key org-goto-map [(?q)] 'org-goto-quit) -(define-key org-goto-map [(control ?g)] 'org-goto-quit) -(define-key org-goto-map "\C-i" 'org-cycle) -(define-key org-goto-map [(tab)] 'org-cycle) -(define-key org-goto-map [(down)] 'outline-next-visible-heading) -(define-key org-goto-map [(up)] 'outline-previous-visible-heading) -(define-key org-goto-map "n" 'outline-next-visible-heading) -(define-key org-goto-map "p" 'outline-previous-visible-heading) -(define-key org-goto-map "f" 'outline-forward-same-level) -(define-key org-goto-map "b" 'outline-backward-same-level) -(define-key org-goto-map "u" 'outline-up-heading) -(define-key org-goto-map "\C-c\C-n" 'outline-next-visible-heading) -(define-key org-goto-map "\C-c\C-p" 'outline-previous-visible-heading) -(define-key org-goto-map "\C-c\C-f" 'outline-forward-same-level) -(define-key org-goto-map "\C-c\C-b" 'outline-backward-same-level) -(define-key org-goto-map "\C-c\C-u" 'outline-up-heading) +(org-defkey org-goto-map "\C-m" 'org-goto-ret) +(org-defkey org-goto-map [(left)] 'org-goto-left) +(org-defkey org-goto-map [(right)] 'org-goto-right) +(org-defkey org-goto-map [(?q)] 'org-goto-quit) +(org-defkey org-goto-map [(control ?g)] 'org-goto-quit) +(org-defkey org-goto-map "\C-i" 'org-cycle) +(org-defkey org-goto-map [(tab)] 'org-cycle) +(org-defkey org-goto-map [(down)] 'outline-next-visible-heading) +(org-defkey org-goto-map [(up)] 'outline-previous-visible-heading) +(org-defkey org-goto-map "n" 'outline-next-visible-heading) +(org-defkey org-goto-map "p" 'outline-previous-visible-heading) +(org-defkey org-goto-map "f" 'outline-forward-same-level) +(org-defkey org-goto-map "b" 'outline-backward-same-level) +(org-defkey org-goto-map "u" 'outline-up-heading) +(org-defkey org-goto-map "\C-c\C-n" 'outline-next-visible-heading) +(org-defkey org-goto-map "\C-c\C-p" 'outline-previous-visible-heading) +(org-defkey org-goto-map "\C-c\C-f" 'outline-forward-same-level) +(org-defkey org-goto-map "\C-c\C-b" 'outline-backward-same-level) +(org-defkey org-goto-map "\C-c\C-u" 'outline-up-heading) (let ((l '(1 2 3 4 5 6 7 8 9 0))) - (while l (define-key org-goto-map (int-to-string (pop l)) 'digit-argument))) + (while l (org-defkey org-goto-map (int-to-string (pop l)) 'digit-argument))) (defconst org-goto-help "Select a location to jump to, press RET @@ -4474,10 +4886,13 @@ the current headline." pos) (cond ((and (org-on-heading-p) (bolp) - (save-excursion (backward-char 1) (not (org-invisible-p)))) + (or (bobp) + (save-excursion (backward-char 1) (not (org-invisible-p))))) (open-line (if blank 2 1))) - ((and (bolp) (save-excursion - (backward-char 1) (not (org-invisible-p)))) + ((and (bolp) + (or (bobp) + (save-excursion + (backward-char 1) (not (org-invisible-p))))) nil) (t (newline (if blank 2 1)))) (insert head) (just-one-space) @@ -4500,8 +4915,8 @@ state (TODO by default). Also with prefix arg, force first state." (looking-at org-todo-line-regexp)) (if (or arg (not (match-beginning 2)) - (equal (match-string 2) org-done-string)) - (insert (car org-todo-keywords) " ") + (member (match-string 2) org-done-keywords)) + (insert (car org-todo-keywords-1) " ") (insert (match-string 2) " ")))) ;;; Promotion and Demotion @@ -4724,6 +5139,7 @@ is signaled in this case." (setq txt (buffer-substring beg end)) (delete-region beg end) (insert txt) + (or (bolp) (insert "\n")) (goto-char ins-point) (if folded (hide-subtree)) (move-marker ins-point nil))) @@ -4749,7 +5165,9 @@ This is a short-hand for marking the subtree and then copying it. If CUT is non-nil, actually cut the subtree." (interactive) (let (beg end folded) - (org-back-to-heading) + (if (interactive-p) + (org-back-to-heading nil) ; take what looks like a subtree + (org-back-to-heading t)) ; take what is really there (setq beg (point)) (save-match-data (save-excursion (outline-end-of-heading) @@ -4888,7 +5306,7 @@ If optional TXT is given, check this string instead of the current kill." (save-excursion (narrow-to-region (progn (org-back-to-heading) (point)) - (progn (org-end-of-subtree t) (point))))) + (progn (org-end-of-subtree t t) (point))))) ;;; Outline Sorting @@ -5130,7 +5548,7 @@ with the current numbers. With optional prefix argument ALL, do this for the whole buffer." (interactive "P") (save-excursion - (let* ((buffer-invisibility-spec nil) ; Emacs 21 compatibility + (let* ((buffer-invisibility-spec (org-inhibit-invisibility)) ; Emacs 21 (beg (progn (outline-back-to-heading) (point))) (end (move-marker (make-marker) (progn (outline-next-heading) (point)))) @@ -5214,13 +5632,24 @@ leave it alone. If it is larger than ind, set it to the target." (concat (make-string i1 ?\ ) l) l))) +(defcustom org-empty-line-terminates-plain-lists nil + "Non-nil means, an empty line ends all plain list levels. +When nil, empty lines are part of the preceeding item." + :group 'org-plain-lists + :type 'boolean) + (defun org-beginning-of-item () "Go to the beginning of the current hand-formatted item. If the cursor is not in an item, throw an error." (interactive) (let ((pos (point)) - (limit (save-excursion (org-back-to-heading) - (beginning-of-line 2) (point))) + (limit (save-excursion + (condition-case nil + (progn + (org-back-to-heading) + (beginning-of-line 2) (point)) + (error (point-min))))) + (ind-empty (if org-empty-line-terminates-plain-lists 0 10000)) ind ind1) (if (org-at-item-p) (beginning-of-line 1) @@ -5230,12 +5659,14 @@ If the cursor is not in an item, throw an error." (if (catch 'exit (while t (beginning-of-line 0) - (if (< (point) limit) (throw 'exit nil)) - (unless (looking-at "[ \t]*$") + (if (or (bobp) (< (point) limit)) (throw 'exit nil)) + + (if (looking-at "[ \t]*$") + (setq ind1 ind-empty) (skip-chars-forward " \t") - (setq ind1 (current-column)) - (if (< ind1 ind) - (throw 'exit (org-at-item-p)))))) + (setq ind1 (current-column))) + (if (< ind1 ind) + (progn (beginning-of-line 1) (throw 'exit (org-at-item-p)))))) nil (goto-char pos) (error "Not in an item"))))) @@ -5244,22 +5675,27 @@ If the cursor is not in an item, throw an error." "Go to the end of the current hand-formatted item. If the cursor is not in an item, throw an error." (interactive) - (let ((pos (point)) - (limit (save-excursion (outline-next-heading) (point))) - (ind (save-excursion - (org-beginning-of-item) - (skip-chars-forward " \t") - (current-column))) - ind1) - (if (catch 'exit - (while t - (beginning-of-line 2) - (if (>= (point) limit) (throw 'exit t)) - (unless (looking-at "[ \t]*$") - (skip-chars-forward " \t") - (setq ind1 (current-column)) - (if (<= ind1 ind) (throw 'exit t))))) - (beginning-of-line 1) + (let* ((pos (point)) + ind1 + (ind-empty (if org-empty-line-terminates-plain-lists 0 10000)) + (limit (save-excursion (outline-next-heading) (point))) + (ind (save-excursion + (org-beginning-of-item) + (skip-chars-forward " \t") + (current-column))) + (end (catch 'exit + (while t + (beginning-of-line 2) + (if (eobp) (throw 'exit (point))) + (if (>= (point) limit) (throw 'exit (point-at-bol))) + (if (looking-at "[ \t]*$") + (setq ind1 ind-empty) + (skip-chars-forward " \t") + (setq ind1 (current-column))) + (if (<= ind1 ind) + (throw 'exit (point-at-bol))))))) + (if end + (goto-char end) (goto-char pos) (error "Not in an item")))) @@ -5338,7 +5774,11 @@ so this really moves item trees." (while t (beginning-of-line 0) (if (looking-at "[ \t]*$") - nil + (if org-empty-line-terminates-plain-lists + (progn + (goto-char pos) + (error "Cannot move this item further up")) + nil) (if (<= (setq ind1 (org-get-indentation)) ind) (throw 'exit t))))) (condition-case nil @@ -5468,16 +5908,16 @@ When called with prefix argument FIND-DONE, find whole trees without any open TODO items and archive them (after getting confirmation from the user). If the cursor is not at a headline when this comand is called, try all level 1 trees. If the cursor is on a headline, only try the direct children of -this heading. " +this heading." (interactive "P") (if find-done (org-archive-all-done) ;; Save all relevant TODO keyword-relatex variables (let ((tr-org-todo-line-regexp org-todo-line-regexp) ; keep despite compiler - (tr-org-todo-keywords org-todo-keywords) - (tr-org-todo-interpretation org-todo-interpretation) - (tr-org-done-string org-done-string) + (tr-org-todo-keywords-1 org-todo-keywords-1) + (tr-org-todo-kwd-alist org-todo-kwd-alist) + (tr-org-done-keywords org-done-keywords) (tr-org-todo-regexp org-todo-regexp) (tr-org-todo-line-regexp org-todo-line-regexp) (tr-org-odd-levels-only org-odd-levels-only) @@ -5488,8 +5928,10 @@ this heading. " ;; Try to find a local archive location (save-excursion - (if (or (re-search-backward re nil t) (re-search-forward re nil t)) - (setq org-archive-location (match-string 1)))) + (save-restriction + (widen) + (if (or (re-search-backward re nil t) (re-search-forward re nil t)) + (setq org-archive-location (match-string 1))))) (if (string-match "\\(.*\\)::\\(.*\\)" org-archive-location) (progn @@ -5516,7 +5958,8 @@ this heading. " ;; Enforce org-mode for the archive buffer (if (not (org-mode-p)) ;; Force the mode for future visits. - (let ((org-insert-mode-line-in-empty-file t)) + (let ((org-insert-mode-line-in-empty-file t) + (org-inhibit-startup t)) (call-interactively 'org-mode))) (when newfile-p (goto-char (point-max)) @@ -5524,13 +5967,13 @@ this heading. " (buffer-file-name this-buffer)))) ;; Force the TODO keywords of the original buffer (let ((org-todo-line-regexp tr-org-todo-line-regexp) - (org-todo-keywords tr-org-todo-keywords) - (org-todo-interpretation tr-org-todo-interpretation) - (org-done-string tr-org-done-string) + (org-todo-keywords-1 tr-org-todo-keywords-1) + (org-todo-kwd-alist tr-org-todo-kwd-alist) + (org-done-keywords tr-org-done-keywords) (org-todo-regexp tr-org-todo-regexp) (org-todo-line-regexp tr-org-todo-line-regexp) (org-odd-levels-only - (if (local-variable-p 'org-odd-levels-only) + (if (local-variable-p 'org-odd-levels-only (current-buffer)) org-odd-levels-only tr-org-odd-levels-only))) (goto-char (point-min)) @@ -5556,10 +5999,10 @@ this heading. " (goto-char (point-max)) (insert "\n")) ;; Paste (org-paste-subtree (org-get-legal-level level 1)) - ;; Mark the entry as done, i.e. set to last work in org-todo-keywords + ;; Mark the entry as done, i.e. set to last word in org-todo-keywords-1 FIXME: not right anymore!!!!!!! (if org-archive-mark-done (let (org-log-done) - (org-todo (length org-todo-keywords)))) + (org-todo (length org-todo-keywords-1)))) ;; Move cursor to right after the TODO keyword (when org-archive-stamp-time (beginning-of-line 1) @@ -5653,7 +6096,7 @@ When TAG is non-nil, don't move trees, but mark them with the ARCHIVE tag." (defun org-toggle-tag (tag &optional onoff) "Toggle the tag TAG for the current line. If ONOFF is `on' or `off', don't toggle but set to this state." - (unless (org-on-heading-p) (error "Not on headling")) + (unless (org-on-heading-p t) (error "Not on headling")) (let (res current) (save-excursion (beginning-of-line) @@ -5749,6 +6192,8 @@ outside the table.") "Table row types, non-nil only for the duration of a comand.") (defvar org-table-current-begin-line nil "Table begin line, non-nil only for the duration of a comand.") +(defvar org-table-current-begin-pos nil + "Table begin position, non-nil only for the duration of a comand.") (defvar org-table-dlines nil "Vector of data line line numbers in the current table.") (defvar org-table-hlines nil @@ -5760,11 +6205,17 @@ outside the table.") "Regular expression for matching ranges in formulas.") (defconst org-table-range-regexp2 - "@\\([-+]?I*[-+]?[0-9]*\\)?\\(\\$[-+]?[a-zA-Z0-9]+\\)?\\(\\.\\.@?\\([-+]?I*[-+]?[0-9]*\\)?\\(\\$[-+]?[a-zA-Z0-9]+\\)?\\)?\\|\\$[a-zA-Z0-9]+\\.\\.\\$[a-zA-Z0-9]+" - "Regular expression to recognize ranges in formulas for highlighting.") + (concat + "\\(" "@[-0-9I$&]+" "\\|" "[a-zA-Z]\\{1,2\\}\\([0-9]+\\|&\\)" "\\|" "\\$[a-zA-Z0-9]+" "\\)" + "\\.\\." + "\\(" "@?[-0-9I$&]+" "\\|" "[a-zA-Z]\\{1,2\\}\\([0-9]+\\|&\\)" "\\|" "\\$[a-zA-Z0-9]+" "\\)") + "Match a range for reference display.") -(defvar org-inhibit-highlight-removal nil) +(defconst org-table-translate-regexp + (concat "\\(" "@[-0-9I$]+" "\\|" "[a-zA-Z]\\{1,2\\}\\([0-9]+\\|&\\)" "\\)") + "Match a reference that needs translation, for reference display.") +(defvar org-inhibit-highlight-removal nil) ; dynamically scoped param (defun org-table-create-with-table.el () "Use the table.el package to insert a new table. @@ -5783,8 +6234,9 @@ and table.el tables." (defun org-table-create-or-convert-from-region (arg) "Convert region to table, or create an empty table. -If there is an active region, convert it to a table. If there is no such -region, create an empty table." +If there is an active region, convert it to a table, using the function +`org-table-convert-region'. +If there is no such region, create an empty table with `org-table-create'." (interactive "P") (if (org-region-active-p) (org-table-convert-region (region-beginning) (region-end) arg) @@ -5827,7 +6279,9 @@ SIZE is a string Columns x Rows like for example \"3x2\"." The region goes from BEG0 to END0, but these borders will be moved slightly, to make sure a beginning of line in the first line is included. When NSPACE is non-nil, it indicates the minimum number of spaces that -separate columns (default: just one space)." +separate columns. By default, the function first checks if every line +contains at lease one TAB. If yes, it assumes that the material is TAB +separated. If not, it assumes a single space as separator." (interactive "rP") (let* ((beg (min beg0 end0)) (end (max beg0 end0)) @@ -6249,9 +6703,13 @@ If the current field is not empty, it is copied down to the next row, and the cursor is moved with it. Therefore, repeating this command causes the column to be filled row-by-row. If the variable `org-table-copy-increment' is non-nil and the field is an -integer, it will be incremented while copying." +integer or a timestamp, it will be incremented while copying. In the case of +a timestamp, if the cursor is on the year, change the year. If it is on the +month or the day, change that. Point will stay on the current date field +in order to easily repeat the interval." (interactive "p") (let* ((colpos (org-table-current-column)) + (col (current-column)) (field (org-table-get-field)) (non-empty (string-match "[^ \t]" field)) (beg (org-table-begin)) @@ -6279,8 +6737,12 @@ integer, it will be incremented while copying." (string-match "^[0-9]+$" txt)) (setq txt (format "%d" (+ (string-to-number txt) 1)))) (insert txt) - (org-table-maybe-recalculate-line) - (org-table-align)) + (move-to-column col) + (if (and org-table-copy-increment (org-at-timestamp-p t)) + (org-timestamp-up 1) + (org-table-maybe-recalculate-line)) + (org-table-align) + (move-to-column col)) (error "No non-empty field found")))) (defun org-table-check-inside-data-field () @@ -6333,7 +6795,7 @@ is always the old value." (defun org-table-field-info (arg) "Show info about the current field, and highlight any reference at point." - (interactive "P") + (interactive "P") (org-table-get-specials) (save-excursion (let* ((pos (point)) @@ -6344,21 +6806,26 @@ is always the old value." (eql (org-table-get-stored-formulas)) (dline (org-table-current-dline)) (ref (format "@%d$%d" dline col)) + (ref1 (org-table-convert-refs-to-an ref)) (fequation (or (assoc name eql) (assoc ref eql))) - (cequation (assoc (int-to-string col) eql))) + (cequation (assoc (int-to-string col) eql)) + (eqn (or fequation cequation))) (goto-char pos) (condition-case nil - (org-show-reference 'local) + (org-table-show-reference 'local) (error nil)) - (message "line @%d, col $%s%s, ref @%d$%d%s%s" + (message "line @%d, col $%s%s, ref @%d$%d or %s%s%s" dline col (if cname (concat " or $" cname) "") - dline col + dline col ref1 (if name (concat " or $" name) "") ;; FIXME: formula info not correct if special table line - (if (or fequation cequation) - (concat ", " (if fequation "field" "column") - " formula applies" "") + (if eqn + (concat ", formula: " + (org-table-formula-to-user + (concat + (if (string-match "^[$@]"(car eqn)) "" "$") + (car eqn) "=" (cdr eqn)))) ""))))) (defun org-table-current-column () @@ -6573,7 +7040,7 @@ If TABLE-TYPE is non-nil, also check for table.el-type tables." (goto-line linepos) (org-table-goto-column colpos) (org-table-align) - (org-table-fix-formulas + (org-table-fix-formulas "$" (list (cons (number-to-string col) (number-to-string colpos)) (cons (number-to-string colpos) (number-to-string col)))))) @@ -6591,7 +7058,7 @@ If TABLE-TYPE is non-nil, also check for table.el-type tables." (interactive "P") (let* ((col (current-column)) (pos (point)) - (hline1p (save-excursion (beginning-of-line 1) + (hline1p (save-excursion (beginning-of-line 1) (looking-at org-table-hline-regexp))) (dline1 (org-table-current-dline)) (dline2 (+ dline1 (if up -1 1))) @@ -6612,7 +7079,7 @@ If TABLE-TYPE is non-nil, also check for table.el-type tables." (beginning-of-line 0) (move-to-column col) (unless (or hline1p hline2p) - (org-table-fix-formulas + (org-table-fix-formulas "@" (list (cons (number-to-string dline1) (number-to-string dline2)) (cons (number-to-string dline2) (number-to-string dline1))))))) @@ -6635,9 +7102,9 @@ With prefix ARG, insert below the current line." (org-table-align)) (org-table-fix-formulas "@" nil (1- (org-table-current-dline)) 1))) -(defun org-table-insert-hline (&optional arg) +(defun org-table-insert-hline (&optional above) "Insert a horizontal-line below the current line into the table. -With prefix ARG, insert above the current line." +With prefix ABOVE, insert above the current line." (interactive "P") (if (not (org-at-table-p)) (error "Not at a table")) @@ -6649,12 +7116,25 @@ With prefix ARG, insert above the current line." (concat "+" (make-string (- (match-end 1) (match-beginning 1)) ?-) "|") t t line))) (and (string-match "\\+" line) (setq line (replace-match "|" t t line))) - (beginning-of-line (if arg 1 2)) + (beginning-of-line (if above 1 2)) (insert line "\n") - (beginning-of-line (if arg 1 -1)) + (beginning-of-line (if above 1 -1)) (move-to-column col) (and org-table-overlay-coordinates (org-table-align)))) +(defun org-table-hline-and-move (&optional same-column) + "Insert a hline and move to the row below that line." + (interactive "P") + (let ((col (org-table-current-column))) + (org-table-maybe-eval-formula) + (org-table-maybe-recalculate-line) + (org-table-insert-hline) + (end-of-line 2) + (if (looking-at "\n[ \t]*|-") + (progn (insert "\n|") (org-table-align)) + (org-table-next-field)) + (if same-column (org-table-goto-column col)))) + (defun org-table-clean-line (s) "Convert a table line S into a string with only \"|\" and space. In particular, this does handle wide and invisible characters." @@ -6959,15 +7439,14 @@ it can be edited in place." (switch-to-buffer-other-window "*Org tmp*") (erase-buffer) (insert "#\n# Edit field and finish with C-c C-c\n#\n") - (org-mode) + (let ((org-inhibit-startup t)) (org-mode)) (goto-char (setq p (point-max))) (insert (org-trim field)) (remove-text-properties p (point-max) '(invisible t org-cwidth t display t intangible t)) (goto-char p) - (org-set-local 'org-finish-function - 'org-table-finish-edit-field) + (org-set-local 'org-finish-function 'org-table-finish-edit-field) (org-set-local 'org-window-configuration cw) (org-set-local 'org-field-marker pos) (message "Edit and finish with C-c C-c")))) @@ -6997,8 +7476,8 @@ the table and kill the editing buffer." (defun org-trim (s) "Remove whitespace at beginning and end of string." - (if (string-match "^[ \t]+" s) (setq s (replace-match "" t t s))) - (if (string-match "[ \t]+$" s) (setq s (replace-match "" t t s))) + (if (string-match "^[ \t\n\r]+" s) (setq s (replace-match "" t t s))) + (if (string-match "[ \t\n\r]+$" s) (setq s (replace-match "" t t s))) s) (defun org-wrap (string &optional width lines) @@ -7159,21 +7638,25 @@ If NLAST is a number, only the NLAST fields will actually be summed." ((equal n 0) nil) (t n)))) -(defun org-table-current-field-formula () +(defun org-table-current-field-formula (&optional key noerror) "Return the formula active for the current field. -Assumes that specials are in place." +Assumes that specials are in place. +If KEY is given, return the key to this formula. +Otherwise return the formula preceeded with \"=\" or \":=\"." (let* ((name (car (rassoc (list (org-current-line) (org-table-current-column)) org-table-named-field-locations))) (col (org-table-current-column)) (scol (int-to-string col)) (ref (format "@%d$%d" (org-table-current-dline) col)) - (stored-list (org-table-get-stored-formulas)) + (stored-list (org-table-get-stored-formulas noerror)) (ass (or (assoc name stored-list) (assoc ref stored-list) (assoc scol stored-list)))) - (if ass (concat (if (string-match "^[0-9]+$" (car ass)) "=" ":=") - (cdr ass))))) + (if key + (car ass) + (if ass (concat (if (string-match "^[0-9]+$" (car ass)) "=" ":=") + (cdr ass)))))) (defun org-table-get-formula (&optional equation named) "Read a formula from the minibuffer, offer stored formula as default. @@ -7199,11 +7682,16 @@ When NAMED is non-nil, look for a named equation." stored) ((stringp equation) equation) - (t (read-string - (format "%s formula $%s=" (if named "Field" "Column") scol) - (or stored "") 'org-table-formula-history - ;stored - )))) + (t (org-table-formula-from-user + (read-string + (org-table-formula-to-user + (format "%s formula %s%s=" + (if named "Field" "Column") + (if (member (string-to-char scol) '(?$ ?@)) "" "$") + scol)) + (if stored (org-table-formula-to-user stored) "") + 'org-table-formula-history + ))))) mustsave) (when (not (string-match "\\S-" eq)) ;; remove formula @@ -7225,7 +7713,7 @@ When NAMED is non-nil, look for a named equation." (defun org-table-store-formulas (alist) "Store the list of formulas below the current table." - (setq alist (sort alist (lambda (a b) (string< (car a) (car b))))) + (setq alist (sort alist 'org-table-formula-less-p)) (save-excursion (goto-char (org-table-end)) (if (looking-at "\\([ \t]*\n\\)*#\\+TBLFM:\\(.*\n?\\)") @@ -7242,7 +7730,20 @@ When NAMED is non-nil, look for a named equation." alist "::") "\n"))) -(defun org-table-get-stored-formulas () +(defsubst org-table-formula-make-cmp-string (a) + (when (string-match "^\\(@\\([0-9]+\\)\\)?\\(\\$?\\([0-9]+\\)\\)?\\(\\$?[a-zA-Z0-9]+\\)?" a) + (concat + (if (match-end 2) (format "@%05d" (string-to-number (match-string 2 a))) "") + (if (match-end 4) (format "$%05d" (string-to-number (match-string 4 a))) "") + (if (match-end 5) (concat "@@" (match-string 5 a)))))) + +(defun org-table-formula-less-p (a b) + "Compare two formulas for sorting." + (let ((as (org-table-formula-make-cmp-string (car a))) + (bs (org-table-formula-make-cmp-string (car b)))) + (and as bs (string< as bs)))) + +(defun org-table-get-stored-formulas (&optional noerror) "Return an alist with the stored formulas directly after current table." (interactive) (let (scol eq eq-alist strings string seen) @@ -7252,13 +7753,18 @@ When NAMED is non-nil, look for a named equation." (setq strings (org-split-string (match-string 2) " *:: *")) (while (setq string (pop strings)) (when (string-match "\\(@[0-9]+\\$[0-9]+\\|\\$\\([a-zA-Z0-9]+\\)\\) *= *\\(.*[^ \t]\\)" string) - (setq scol (if (match-end 2) - (match-string 2 string) + (setq scol (if (match-end 2) + (match-string 2 string) (match-string 1 string)) eq (match-string 3 string) eq-alist (cons (cons scol eq) eq-alist)) (if (member scol seen) - (error "Double definition `$%s=' in TBLFM line, please fix by hand" scol) + (if noerror + (progn + (message "Double definition `$%s=' in TBLFM line, please fix by hand" scol) + (ding) + (sit-for 2)) + (error "Double definition `$%s=' in TBLFM line, please fix by hand" scol)) (push scol seen)))))) (nreverse eq-alist))) @@ -7297,7 +7803,8 @@ For all numbers larger than LIMIT, shift them by DELTA." org-table-local-parameters nil org-table-named-field-locations nil org-table-current-begin-line nil - org-table-current-line-types nil) + org-table-current-begin-pos nil + org-table-current-line-types nil) (goto-char beg) (when (re-search-forward "^[ \t]*| *! *\\(|.*\\)" end t) (setq names (org-split-string (match-string 1) " *| *") @@ -7334,7 +7841,8 @@ For all numbers larger than LIMIT, shift them by DELTA." ;; Analyse the line types (goto-char beg) (setq org-table-current-begin-line (org-current-line) - l org-table-current-begin-line) + org-table-current-begin-pos (point) + l org-table-current-begin-line) (while (looking-at "[ \t]*|\\(-\\)?") (push (if (match-end 1) 'hline 'dline) types) (if (match-end 1) (push l hlines) (push l dlines)) @@ -7344,13 +7852,6 @@ For all numbers larger than LIMIT, shift them by DELTA." org-table-dlines (apply 'vector (cons nil (nreverse dlines))) org-table-hlines (apply 'vector (cons nil (nreverse hlines))))))) -(defun org-this-word () - ;; Get the current word - (save-excursion - (let ((beg (progn (skip-chars-backward "^ \t\n") (point))) - (end (progn (skip-chars-forward "^ \t\n") (point)))) - (buffer-substring-no-properties beg end)))) - (defun org-table-maybe-eval-formula () "Check if the current field starts with \"=\" or \":=\". If yes, store the formula and apply it." @@ -7364,7 +7865,8 @@ If yes, store the formula and apply it." eq (match-string 1 field)) (if (or (fboundp 'calc-eval) (equal (substring eq 0 (min 2 (length eq))) "'(")) - (org-table-eval-formula (if named '(4) nil) eq) + (org-table-eval-formula (if named '(4) nil) + (org-table-formula-from-user eq)) (error "Calc does not seem to be installed, and is needed to evaluate the formula")))))) (defvar org-recalc-commands nil @@ -7485,7 +7987,7 @@ formula is installed as valid in only this specific field. When called with two `C-u' prefixes, insert the active equation for the field back into the current field, so that it can be -edited there. This is useful in order to use \\[org-show-reference] +edited there. This is useful in order to use \\[org-table-show-reference] to check the referenced fields. When called, the command first prompts for a formula, which is read in @@ -7577,7 +8079,7 @@ not overwrite the stored one." ;; Insert complex ranges (while (string-match org-table-range-regexp form) (setq form - (replace-match + (replace-match (save-match-data (org-table-make-reference (org-table-get-range (match-string 0 form) nil n0) @@ -7585,7 +8087,7 @@ not overwrite the stored one." t t form))) ;; Insert simple ranges (while (string-match "\\$\\([0-9]+\\)\\.\\.\\$\\([0-9]+\\)" form) - (setq form + (setq form (replace-match (save-match-data (org-table-make-reference @@ -7596,17 +8098,16 @@ not overwrite the stored one." t t form))) (setq form0 form) ;; Insert the references to fields in same row - (while (string-match "\\$\\([0-9]+\\)?" form) - (setq n (if (match-beginning 1) - (string-to-number (match-string 1 form)) - n0) - x (nth (1- n) fields)) + (while (string-match "\\$\\([0-9]+\\)" form) + (setq n (string-to-number (match-string 1 form)) + x (nth (1- (if (= n 0) n0 n)) fields)) (unless x (error "Invalid field specifier \"%s\"" (match-string 0 form))) (setq form (replace-match (save-match-data (org-table-make-reference x nil numbers lispp)) t t form))) + (if lispp (setq ev (condition-case nil (eval (eval (read form))) @@ -7616,7 +8117,7 @@ not overwrite the stored one." (error "Calc does not seem to be installed, and is needed to evaluate the formula")) (setq ev (calc-eval (cons form modes) (if numbers 'num)))) - + (when org-table-formula-debug (with-output-to-temp-buffer "*Substitution History*" (princ (format "Substitution history of formula @@ -7738,7 +8239,7 @@ and TABLE is a vector with line types." (setq i 0 hdir "+") (if (eq (aref table 0) 'hline) (setq hn (1- hn))))) (if (and (not hn) on (not odir)) - (error "should never happen");;(aref org-table-dlines on) FIXME + (error "should never happen");;(aref org-table-dlines on) (if (and hn (> hn 0)) (setq i (org-find-row-type table i 'hline (equal hdir "-") nil hn))) (if on @@ -7837,7 +8338,7 @@ With prefix arg ALL, do this for all lines in the table." (goto-char beg) (and all (message "Re-applying formulas to full table...")) (while (re-search-forward line-re end t) - (unless (string-match "^ *[_^!$] *$" (org-table-get-field 1)) + (unless (string-match "^ *[_^!$/] *$" (org-table-get-field 1)) ;; Unprotected line, recalculate (and all (message "Re-applying formulas to full table...(line %d)" (setq cnt (1+ cnt)))) @@ -7858,7 +8359,7 @@ With prefix arg ALL, do this for all lines in the table." a (assoc name org-table-named-field-locations)) (and (not a) (string-match "@\\([0-9]+\\)\\$\\([0-9]+\\)" name) - (setq a + (setq a (list name (aref org-table-dlines @@ -7876,12 +8377,12 @@ With prefix arg ALL, do this for all lines in the table." (org-table-goto-column thiscol) (or noalign (and org-table-may-need-update (org-table-align)) (and all (message "Re-applying formulas...done")))))) - + (defun org-table-iterate (&optional arg) "Recalculate the table until it does not change anymore." (interactive "P") (let ((imax (if arg (prefix-numeric-value arg) 10)) - (i 0) + (i 0) (lasttbl (buffer-substring (org-table-begin) (org-table-end))) thistbl) (catch 'exit @@ -7924,32 +8425,74 @@ Parameters get priority." (and (fboundp 'constants-get) (constants-get const)) "#UNDEFINED_NAME")) -(defvar org-edit-formulas-map (make-sparse-keymap)) -(define-key org-edit-formulas-map "\C-c\C-c" 'org-finish-edit-formulas) -(define-key org-edit-formulas-map "\C-c\C-q" 'org-abort-edit-formulas) -(define-key org-edit-formulas-map "\C-c?" 'org-show-reference) -(define-key org-edit-formulas-map [(shift up)] 'org-table-edit-line-up) -(define-key org-edit-formulas-map [(shift down)] 'org-table-edit-line-down) -(define-key org-edit-formulas-map [(shift left)] 'org-table-edit-backward-field) -(define-key org-edit-formulas-map [(shift right)] 'org-table-edit-next-field) -(define-key org-edit-formulas-map [(meta up)] 'org-table-edit-scroll-down) -(define-key org-edit-formulas-map [(meta down)] 'org-table-edit-scroll) -(define-key org-edit-formulas-map [(meta tab)] 'lisp-complete-symbol) -(define-key org-edit-formulas-map "\M-\C-i" 'lisp-complete-symbol) -(define-key org-edit-formulas-map [(tab)] 'org-edit-formula-lisp-indent) -(define-key org-edit-formulas-map "\C-i" 'org-edit-formula-lisp-indent) +(defvar org-table-fedit-map (make-sparse-keymap)) +(org-defkey org-table-fedit-map "\C-x\C-s" 'org-table-fedit-finish) +(org-defkey org-table-fedit-map "\C-c\C-s" 'org-table-fedit-finish) +(org-defkey org-table-fedit-map "\C-c\C-c" 'org-table-fedit-finish) +(org-defkey org-table-fedit-map "\C-c\C-q" 'org-table-fedit-abort) +(org-defkey org-table-fedit-map "\C-c?" 'org-table-show-reference) +(org-defkey org-table-fedit-map [(meta shift up)] 'org-table-fedit-line-up) +(org-defkey org-table-fedit-map [(meta shift down)] 'org-table-fedit-line-down) +(org-defkey org-table-fedit-map [(shift up)] 'org-table-fedit-ref-up) +(org-defkey org-table-fedit-map [(shift down)] 'org-table-fedit-ref-down) +(org-defkey org-table-fedit-map [(shift left)] 'org-table-fedit-ref-left) +(org-defkey org-table-fedit-map [(shift right)] 'org-table-fedit-ref-right) +(org-defkey org-table-fedit-map [(meta up)] 'org-table-fedit-scroll-down) +(org-defkey org-table-fedit-map [(meta down)] 'org-table-fedit-scroll) +(org-defkey org-table-fedit-map [(meta tab)] 'lisp-complete-symbol) +(org-defkey org-table-fedit-map "\M-\C-i" 'lisp-complete-symbol) +(org-defkey org-table-fedit-map [(tab)] 'org-table-fedit-lisp-indent) +(org-defkey org-table-fedit-map "\C-i" 'org-table-fedit-lisp-indent) +(org-defkey org-table-fedit-map "\C-c\C-r" 'org-table-fedit-toggle-ref-type) +(org-defkey org-table-fedit-map "\C-c}" 'org-table-fedit-toggle-coordinates) + +(easy-menu-define org-table-fedit-menu org-table-fedit-map "Org Edit Formulas Menu" + '("Edit-Formulas" + ["Finish and Install" org-table-fedit-finish t] + ["Finish, Install, and Apply" (org-table-fedit-finish t) :keys "C-u C-c C-c"] + ["Abort" org-table-fedit-abort t] + "--" + ["Pretty-Print Lisp Formula" org-table-fedit-lisp-indent t] + ["Complete Lisp Symbol" lisp-complete-symbol t] + "--" + "Shift Reference at Point" + ["Up" org-table-fedit-ref-up t] + ["Down" org-table-fedit-ref-down t] + ["Left" org-table-fedit-ref-left t] + ["Right" org-table-fedit-ref-right t] + "-" + "Change Test Row for Column Formulas" + ["Up" org-table-fedit-line-up t] + ["Down" org-table-fedit-line-down t] + "--" + ["Scroll Table Window" org-table-fedit-scroll t] + ["Scroll Table Window down" org-table-fedit-scroll-down t] + ["Show Table Grid" org-table-fedit-toggle-coordinates + :style toggle :selected (with-current-buffer (marker-buffer org-pos) + org-table-overlay-coordinates)] + "--" + ["Standard Refs (B3 instead of @3$2)" org-table-fedit-toggle-ref-type + :style toggle :selected org-table-buffer-is-an])) (defvar org-pos) (defun org-table-edit-formulas () "Edit the formulas of the current table in a separate buffer." (interactive) + (when (save-excursion (beginning-of-line 1) (looking-at "#\\+TBLFM")) + (beginning-of-line 0)) (unless (org-at-table-p) (error "Not at a table")) (org-table-get-specials) - (let ((eql (org-table-get-stored-formulas)) + (let ((key (org-table-current-field-formula 'key 'noerror)) + (eql (sort (org-table-get-stored-formulas 'noerror) + 'org-table-formula-less-p)) (pos (move-marker (make-marker) (point))) + (startline 1) (wc (current-window-configuration)) - entry s) + (titles '((column . "# Column Formulas\n") + (field . "# Field Formulas\n") + (named . "# Named Field Formulas\n"))) + entry s type title) (switch-to-buffer-other-window "*Edit Formulas*") (erase-buffer) ;; Keep global-font-lock-mode from turning on font-lock-mode @@ -7958,38 +8501,226 @@ Parameters get priority." (org-set-local 'font-lock-global-modes (list 'not major-mode)) (org-set-local 'org-pos pos) (org-set-local 'org-window-configuration wc) - (use-local-map org-edit-formulas-map) - (org-add-hook 'post-command-hook 'org-table-edit-formulas-post-command t t) - (setq s "# `C-c C-c' to finish, `C-u C-c C-c' to also apply, `C-c C-q' to abort. -# `TAB' to pretty-print Lisp expressions, `M-TAB' to complete List symbols -# `M-up/down' to scroll table, `S-up/down' to change line for column formulas\n\n") - - (put-text-property 0 (length s) 'face 'font-lock-comment-face s) - (insert s) + (use-local-map org-table-fedit-map) + (org-add-hook 'post-command-hook 'org-table-fedit-post-command t t) + (easy-menu-add org-table-fedit-menu) + (setq startline (org-current-line)) (while (setq entry (pop eql)) + (setq type (cond + ((equal (string-to-char (car entry)) ?@) 'field) + ((string-match "^[0-9]" (car entry)) 'column) + (t 'named))) + (when (setq title (assq type titles)) + (or (bobp) (insert "\n")) + (insert (org-add-props (cdr title) nil 'face font-lock-comment-face)) + (setq titles (delq title titles))) + (if (equal key (car entry)) (setq startline (org-current-line))) (setq s (concat (if (equal (string-to-char (car entry)) ?@) "" "$") (car entry) " = " (cdr entry) "\n")) (remove-text-properties 0 (length s) '(face nil) s) (insert s)) - (goto-char (point-min)) - (message "Edit formulas and finish with `C-c C-c'."))) + (if (eq org-table-use-standard-references t) + (org-table-fedit-toggle-ref-type)) + (goto-line startline) + (message "Edit formulas and finish with `C-c C-c'. See menu for more commands."))) -(defun org-table-edit-formulas-post-command () +(defun org-table-fedit-post-command () (when (not (memq this-command '(lisp-complete-symbol))) (let ((win (selected-window))) (save-excursion (condition-case nil - (org-show-reference) + (org-table-show-reference) (error nil)) (select-window win))))) -(defun org-finish-edit-formulas (&optional arg) +(defun org-table-formula-to-user (s) + "Convert a formula from internal to user representation." + (if (eq org-table-use-standard-references t) + (org-table-convert-refs-to-an s) + s)) + +(defun org-table-formula-from-user (s) + "Convert a formula from user to internal representation." + (if org-table-use-standard-references + (org-table-convert-refs-to-rc s) + s)) + +(defun org-table-convert-refs-to-rc (s) + "Convert spreadsheet references from AB7 to @7$28. +Works for single references, but also for entire formulas and even the +full TBLFM line." + (let ((start 0)) + (while (string-match "\\<\\([a-zA-Z]+\\)\\([0-9]+\\>\\|&\\)\\|\\(;[^\r\n:]+\\)" s start) + (cond + ((match-end 3) + ;; format match, just advance + (setq start (match-end 0))) + ((and (> (match-beginning 0) 0) + (equal ?. (aref s (max (1- (match-beginning 0)) 0)))) + ;; 3.e5 or something like this. FIXME: is this ok???? + (setq start (match-end 0))) + (t + (setq start (match-beginning 0) + s (replace-match + (if (equal (match-string 2 s) "&") + (format "$%d" (org-letters-to-number (match-string 1 s))) + (format "@%d$%d" + (string-to-number (match-string 2 s)) + (org-letters-to-number (match-string 1 s)))) + t t s))))) + s)) + +(defun org-table-convert-refs-to-an (s) + "Convert spreadsheet references from to @7$28 to AB7. +Works for single references, but also for entire formulas and even the +full TBLFM line." + (while (string-match "@\\([0-9]+\\)$\\([0-9]+\\)" s) + (setq s (replace-match + (format "%s%d" + (org-number-to-letters + (string-to-number (match-string 2 s))) + (string-to-number (match-string 1 s))) + t t s))) + (while (string-match "\\(^\\|[^0-9a-zA-Z]\\)\\$\\([0-9]+\\)" s) + (setq s (replace-match (concat "\\1" + (org-number-to-letters + (string-to-number (match-string 2 s))) "&") + t nil s))) + s) + +(defun org-letters-to-number (s) + "Convert a base 26 number represented by letters into an integer. +For example: AB -> 28." + (let ((n 0)) + (setq s (upcase s)) + (while (> (length s) 0) + (setq n (+ (* n 26) (string-to-char s) (- ?A) 1) + s (substring s 1))) + n)) + +(defun org-number-to-letters (n) + "Convert an integer into a base 26 number represented by letters. +For example: 28 -> AB." + (let ((s "")) + (while (> n 0) + (setq s (concat (char-to-string (+ (mod (1- n) 26) ?A)) s) + n (/ (1- n) 26))) + s)) + +(defun org-table-fedit-convert-buffer (function) + "Convert all references in this buffer, using FUNTION." + (let ((line (org-current-line))) + (goto-char (point-min)) + (while (not (eobp)) + (insert (funcall function (buffer-substring (point) (point-at-eol)))) + (delete-region (point) (point-at-eol)) + (or (eobp) (forward-char 1))) + (goto-line line))) + +(defun org-table-fedit-toggle-ref-type () + "Convert all references in the buffer from B3 to @3$2 and back." + (interactive) + (org-set-local 'org-table-buffer-is-an (not org-table-buffer-is-an)) + (org-table-fedit-convert-buffer + (if org-table-buffer-is-an + 'org-table-convert-refs-to-an 'org-table-convert-refs-to-rc)) + (message "Reference type switched to %s" + (if org-table-buffer-is-an "A1 etc" "@row$column"))) + +(defun org-table-fedit-ref-up () + "Shift the reference at point one row/hline up." + (interactive) + (org-table-fedit-shift-reference 'up)) +(defun org-table-fedit-ref-down () + "Shift the reference at point one row/hline down." + (interactive) + (org-table-fedit-shift-reference 'down)) +(defun org-table-fedit-ref-left () + "Shift the reference at point one field to the left." + (interactive) + (org-table-fedit-shift-reference 'left)) +(defun org-table-fedit-ref-right () + "Shift the reference at point one field to the right." + (interactive) + (org-table-fedit-shift-reference 'right)) + +(defun org-table-fedit-shift-reference (dir) + (cond + ((org-at-regexp-p "\\(\\<[a-zA-Z]\\)&") + (if (memq dir '(left right)) + (org-rematch-and-replace 1 (eq dir 'left)) + (error "Cannot shift reference in this direction"))) + ((org-at-regexp-p "\\(\\<[a-zA-Z]\\{1,2\\}\\)\\([0-9]+\\)") + ;; A B3-like reference + (if (memq dir '(up down)) + (org-rematch-and-replace 2 (eq dir 'up)) + (org-rematch-and-replace 1 (eq dir 'left)))) + ((org-at-regexp-p + "\\(@\\|\\.\\.\\)\\([-+]?\\(I+\\>\\|[0-9]+\\)\\)\\(\\$\\([-+]?[0-9]+\\)\\)?") + ;; An internal reference + (if (memq dir '(up down)) + (org-rematch-and-replace 2 (eq dir 'up) (match-end 3)) + (org-rematch-and-replace 5 (eq dir 'left)))))) + +(defun org-rematch-and-replace (n &optional decr hline) + "Re-match the group N, and replace it with the shifted refrence." + (or (match-end n) (error "Cannot shift reference in this direction")) + (goto-char (match-beginning n)) + (and (looking-at (regexp-quote (match-string n))) + (replace-match (org-shift-refpart (match-string 0) decr hline) + t t))) + +(defun org-shift-refpart (ref &optional decr hline) + "Shift a refrence part REF. +If DECR is set, decrease the references row/column, else increase. +If HLINE is set, this may be a hline reference, it certainly is not +a translation reference." + (save-match-data + (let* ((sign (string-match "^[-+]" ref)) n) + + (if sign (setq sign (substring ref 0 1) ref (substring ref 1))) + (cond + ((and hline (string-match "^I+" ref)) + (setq n (string-to-number (concat sign (number-to-string (length ref))))) + (setq n (+ n (if decr -1 1))) + (if (= n 0) (setq n (+ n (if decr -1 1)))) + (if sign + (setq sign (if (< n 0) "-" "+") n (abs n)) + (setq n (max 1 n))) + (concat sign (make-string n ?I))) + + ((string-match "^[0-9]+" ref) + (setq n (string-to-number (concat sign ref))) + (setq n (+ n (if decr -1 1))) + (if sign + (concat (if (< n 0) "-" "+") (number-to-string (abs n))) + (number-to-string (max 1 n)))) + + ((string-match "^[a-zA-Z]+" ref) + (org-number-to-letters + (max 1 (+ (org-letters-to-number ref) (if decr -1 1))))) + + (t (error "Cannot shift reference")))))) + +(defun org-table-fedit-toggle-coordinates () + "Toggle the display of coordinates in the refrenced table." + (interactive) + (let ((pos (marker-position org-pos))) + (with-current-buffer (marker-buffer org-pos) + (save-excursion + (goto-char pos) + (org-table-toggle-coordinate-overlays))))) + +(defun org-table-fedit-finish (&optional arg) "Parse the buffer for formula definitions and install them. With prefix ARG, apply the new formulas to the table." (interactive "P") (org-table-remove-rectangle-highlight) + (if org-table-use-standard-references + (progn + (org-table-fedit-convert-buffer 'org-table-convert-refs-to-rc) + (setq org-table-buffer-is-an nil))) (let ((pos org-pos) eql var form) - (setq org-pos nil) (goto-char (point-min)) (while (re-search-forward "^\\(@[0-9]+\\$[0-9]+\\|\\$\\([a-zA-Z0-9]+\\)\\) *= *\\(.*\\(\n[ \t]+.*$\\)*\\)" @@ -7997,9 +8728,13 @@ With prefix ARG, apply the new formulas to the table." (setq var (if (match-end 2) (match-string 2) (match-string 1)) form (match-string 3)) (setq form (org-trim form)) - (while (string-match "[ \t]*\n[ \t]*" form) - (setq form (replace-match " " t t form))) - (push (cons var form) eql)) + (when (not (equal form "")) + (while (string-match "[ \t]*\n[ \t]*" form) + (setq form (replace-match " " t t form))) + (when (assoc var eql) + (error "Double formulas for %s" var)) + (push (cons var form) eql))) + (setq org-pos nil) (set-window-configuration org-window-configuration) (select-window (get-buffer-window (marker-buffer pos))) (goto-char pos) @@ -8012,7 +8747,7 @@ With prefix ARG, apply the new formulas to the table." (org-table-recalculate 'all) (message "New formulas installed - press C-u C-c C-c to apply.")))) -(defun org-abort-edit-formulas () +(defun org-table-fedit-abort () "Abort editing formulas, without installing the changes." (interactive) (org-table-remove-rectangle-highlight) @@ -8023,7 +8758,7 @@ With prefix ARG, apply the new formulas to the table." (move-marker pos nil) (message "Formula editing aborted without installing changes"))) -(defun org-edit-formula-lisp-indent () +(defun org-table-fedit-lisp-indent () "Pretty-print and re-indent Lisp expressions in the Formula Editor." (interactive) (let ((pos (point)) beg end ind) @@ -8064,7 +8799,7 @@ With prefix ARG, apply the new formulas to the table." (defvar org-show-positions nil) -(defun org-show-reference (&optional local) +(defun org-table-show-reference (&optional local) "Show the location/value of the $ expression at point." (interactive) (org-table-remove-rectangle-highlight) @@ -8077,12 +8812,18 @@ With prefix ARG, apply the new formulas to the table." var name e what match dest) (if local (org-table-get-specials)) (setq what (cond - ((org-at-regexp-p org-table-range-regexp2) 'range) + ((or (org-at-regexp-p org-table-range-regexp2) + (org-at-regexp-p org-table-translate-regexp) + (org-at-regexp-p org-table-range-regexp)) + (setq match + (save-match-data + (org-table-convert-refs-to-rc (match-string 0)))) + 'range) ((org-at-regexp-p "\\$[a-zA-Z][a-zA-Z0-9]*") 'name) ((org-at-regexp-p "\\$[0-9]+") 'column) ((not local) nil) (t (error "No reference at point"))) - match (and what (match-string 0))) + match (and what (or match (match-string 0)))) (when (and match (not (equal (match-beginning 0) (point-at-bol)))) (org-table-add-rectangle-overlay (match-beginning 0) (match-end 0) 'secondary-selection)) @@ -8094,9 +8835,13 @@ With prefix ARG, apply the new formulas to the table." (setq match (org-table-formula-substitute-names match))) (unless local (save-excursion + (end-of-line 1) + (re-search-backward "^\\S-" nil t) (beginning-of-line 1) - (when (looking-at "\\(\\$[0-9a-zA-Z]+\\|@[0-9]+\\$[0-9]+\\)=") - (setq dest (match-string 1)) + (when (looking-at "\\(\\$[0-9a-zA-Z]+\\|@[0-9]+\\$[0-9]+\\|[a-zA-Z]+\\([0-9]+\\|&\\)\\) *=") + (setq dest + (save-match-data + (org-table-convert-refs-to-rc (match-string 1)))) (org-table-add-rectangle-overlay (match-beginning 1) (match-end 1) face2)))) (if (and (markerp pos) (marker-buffer pos)) @@ -8165,18 +8910,20 @@ With prefix ARG, apply the new formulas to the table." (message "Constant: $%s=%s in `org-table-formula-constants'." var (cdr e))) ((setq e (and (fboundp 'constants-get) (constants-get var))) - (message "Constant: $%s=%s, retrieved from `constants.el'." var e)) + (message "Constant: $%s=%s, from `constants.el'%s." + var e (format " (%s units)" constants-unit-system))) (t (error "Undefined name $%s" var))))) (goto-char pos) - (when org-show-positions + (when (and org-show-positions + (not (memq this-command '(org-table-fedit-scroll + org-table-fedit-scroll-down)))) (push pos org-show-positions) + (push org-table-current-begin-pos org-show-positions) (let ((min (apply 'min org-show-positions)) (max (apply 'max org-show-positions))) - (when (or (not (pos-visible-in-window-p min)) - (not (pos-visible-in-window-p max))) - (goto-char min) - (set-window-start (selected-window) (point-at-bol)) - (goto-char pos)))) + (goto-char min) (recenter 0) + (goto-char max) + (or (pos-visible-in-window-p max) (recenter -1)))) (select-window win)))) (defun org-table-force-dataline () @@ -8193,27 +8940,17 @@ With prefix ARG, apply the new formulas to the table." ((or p1 p2) (goto-char (or p1 p2))) (t (error "No table dataline around here")))))) -(defun org-table-edit-line-up () +(defun org-table-fedit-line-up () "Move cursor one line up in the window showing the table." (interactive) - (org-table-edit-move 'previous-line)) + (org-table-fedit-move 'previous-line)) -(defun org-table-edit-line-down () +(defun org-table-fedit-line-down () "Move cursor one line down in the window showing the table." (interactive) - (org-table-edit-move 'next-line)) + (org-table-fedit-move 'next-line)) -(defun org-table-edit-backward-field () - "Move cursor one field backward in the window showing the table." - (interactive) - (org-table-edit-move 'org-table-previous-field)) - -(defun org-table-edit-next-field () - "Move cursor one field forward in the window showing the table." - (interactive) - (org-table-edit-move 'org-table-next-field)) - -(defun org-table-edit-move (command) +(defun org-table-fedit-move (command) "Move the cursor in the window shoinw the table. Use COMMAND to do the motion, repeat if necessary to end up in a data line." (let ((org-table-allow-automatic-line-recalculation nil) @@ -8228,17 +8965,17 @@ Use COMMAND to do the motion, repeat if necessary to end up in a data line." (move-marker pos (point)) (select-window win))) -(defun org-table-edit-scroll (N) +(defun org-table-fedit-scroll (N) (interactive "p") (let ((other-window-scroll-buffer (marker-buffer org-pos))) (scroll-other-window N))) -(defun org-table-edit-scroll-down (N) +(defun org-table-fedit-scroll-down (N) (interactive "p") - (org-table-edit-scroll (- N))) + (org-table-fedit-scroll (- N))) (defvar org-table-rectangle-overlays nil) - + (defun org-table-add-rectangle-overlay (beg end &optional face) "Add a new overlay." (let ((ov (org-make-overlay beg end))) @@ -8290,7 +9027,7 @@ Use COMMAND to do the motion, repeat if necessary to end up in a data line." (mapc 'org-delete-overlay org-table-coordinate-overlays) (setq org-table-coordinate-overlays nil) (save-excursion - (let ((id 0) (ih 0) hline eol str ic ov beg) + (let ((id 0) (ih 0) hline eol s1 s2 str ic ov beg) (goto-char (org-table-begin)) (while (org-at-table-p) (setq eol (point-at-eol)) @@ -8299,15 +9036,18 @@ Use COMMAND to do the motion, repeat if necessary to end up in a data line." (setq hline (looking-at org-table-hline-regexp)) (setq str (if hline (format "I*%-2d" (setq ih (1+ ih))) (format "%4d" (setq id (1+ id))))) - (org-overlay-before-string ov str 'org-formula 'evaporate) + (org-overlay-before-string ov str 'org-special-keyword 'evaporate) (when hline (setq ic 0) - (while (re-search-forward "[+|]-+" eol t) + (while (re-search-forward "[+|]\\(-+\\)" eol t) (setq beg (1+ (match-beginning 0)) - str (concat "$" (int-to-string (setq ic (1+ ic))))) + ic (1+ ic) + s1 (concat "$" (int-to-string ic)) + s2 (org-number-to-letters ic) + str (if (eq org-table-use-standard-references t) s2 s1)) (setq ov (org-make-overlay beg (+ beg (length str)))) (push ov org-table-coordinate-overlays) - (org-overlay-display ov str 'org-formula 'evaporate))) + (org-overlay-display ov str 'org-special-keyword 'evaporate))) (beginning-of-line 2))))) (defun org-table-toggle-coordinate-overlays () @@ -8492,7 +9232,7 @@ to execute outside of tables." '("\C-c}" org-table-toggle-coordinate-overlays) '("\C-c{" org-table-toggle-formula-debugger) '("\C-m" org-table-next-row) - (list (org-key 'S-return) 'org-table-copy-down) + '([(shift return)] org-table-copy-down) '("\C-c\C-q" org-table-wrap-region) '("\C-c?" org-table-field-info) '("\C-c " org-table-blank-field) @@ -8507,34 +9247,34 @@ to execute outside of tables." elt key fun cmd) (while (setq elt (pop bindings)) (setq nfunc (1+ nfunc)) - (setq key (car elt) + (setq key (org-key (car elt)) fun (nth 1 elt) cmd (orgtbl-make-binding fun nfunc key)) - (define-key orgtbl-mode-map key cmd)) + (org-defkey orgtbl-mode-map key cmd)) ;; Special treatment needed for TAB and RET - (define-key orgtbl-mode-map [(return)] + (org-defkey orgtbl-mode-map [(return)] (orgtbl-make-binding 'orgtbl-ret 100 [(return)] "\C-m")) - (define-key orgtbl-mode-map "\C-m" + (org-defkey orgtbl-mode-map "\C-m" (orgtbl-make-binding 'orgtbl-ret 101 "\C-m" [(return)])) - (define-key orgtbl-mode-map [(tab)] + (org-defkey orgtbl-mode-map [(tab)] (orgtbl-make-binding 'orgtbl-tab 102 [(tab)] "\C-i")) - (define-key orgtbl-mode-map "\C-i" + (org-defkey orgtbl-mode-map "\C-i" (orgtbl-make-binding 'orgtbl-tab 103 "\C-i" [(tab)])) - (define-key orgtbl-mode-map [(shift tab)] + (org-defkey orgtbl-mode-map [(shift tab)] (orgtbl-make-binding 'org-table-previous-field 104 [(shift tab)] [(tab)] "\C-i")) - (define-key orgtbl-mode-map "\M-\C-m" + (org-defkey orgtbl-mode-map "\M-\C-m" (orgtbl-make-binding 'org-table-wrap-region 105 "\M-\C-m" [(meta return)])) - (define-key orgtbl-mode-map [(meta return)] + (org-defkey orgtbl-mode-map [(meta return)] (orgtbl-make-binding 'org-table-wrap-region 106 [(meta return)] "\M-\C-m")) - (define-key orgtbl-mode-map "\C-c\C-c" 'orgtbl-ctrl-c-ctrl-c) + (org-defkey orgtbl-mode-map "\C-c\C-c" 'orgtbl-ctrl-c-ctrl-c) (when orgtbl-optimized ;; If the user wants maximum table support, we need to hijack ;; some standard editing functions @@ -8542,7 +9282,7 @@ to execute outside of tables." 'self-insert-command 'orgtbl-self-insert-command 'delete-char 'org-delete-char 'delete-backward-char 'org-delete-backward-char) - (define-key orgtbl-mode-map "|" 'org-force-self-insert)) + (org-defkey orgtbl-mode-map "|" 'org-force-self-insert)) (easy-menu-define orgtbl-mode-menu orgtbl-mode-map "OrgTbl menu" '("OrgTbl" ["Align" org-ctrl-c-ctrl-c :active (org-at-table-p) :keys "C-c C-c"] @@ -8678,7 +9418,31 @@ overwritten, and the table is not marked as requiring realignment." (defvar orgtbl-exp-regexp "^\\([-+]?[0-9][0-9.]*\\)[eE]\\([-+]?[0-9]+\\)$" "Regula expression matching exponentials as produced by calc.") -(defvar org-table-clean-did-remove-column-1 nil) +(defvar org-table-clean-did-remove-column nil) + +(defun orgtbl-export (table target) + (let ((func (intern (concat "orgtbl-to-" (symbol-name target)))) + (lines (org-split-string table "[ \t]*\n[ \t]*")) + org-table-last-alignment org-table-last-column-widths + maxcol column) + (if (not (fboundp func)) + (error "Cannot export orgtbl table to %s" target)) + (setq lines (org-table-clean-before-export lines)) + (setq table + (mapcar + (lambda (x) + (if (string-match org-table-hline-regexp x) + 'hline + (org-split-string (org-trim x) "\\s-*|\\s-*"))) + lines)) + (setq maxcol (apply 'max (mapcar (lambda (x) (if (listp x) (length x) 0)) + table))) + (loop for i from (1- maxcol) downto 0 do + (setq column (mapcar (lambda (x) (if (listp x) (nth i x) nil)) table)) + (setq column (delq nil column)) + (push (apply 'max (mapcar 'string-width column)) org-table-last-column-widths) + (push (> (/ (apply '+ (mapcar (lambda (x) (if (string-match org-table-number-regexp x) 1 0)) column)) maxcol) org-table-number-fraction) org-table-last-alignment)) + (funcall func table nil))) (defun orgtbl-send-table (&optional maybe) "Send a tranformed version of this table to the receiver position. @@ -8706,7 +9470,7 @@ this table." (org-table-begin) (org-table-end))) (lines (nthcdr (or skip 0) (org-split-string txt "[ \t]*\n[ \t]*"))) (lines (org-table-clean-before-export lines)) - (i0 (if org-table-clean-did-remove-column-1 2 1)) + (i0 (if org-table-clean-did-remove-column 2 1)) (table (mapcar (lambda (x) (if (string-match org-table-hline-regexp x) @@ -8722,7 +9486,7 @@ this table." (org-table-last-column-widths (org-remove-by-index (funcall fun org-table-last-column-widths) skipcols i0))) - + (unless (fboundp transform) (error "No such transformation function %s" transform)) (setq txt (funcall transform table params)) @@ -8754,7 +9518,7 @@ First element has index 0, or I0 if given." (setq i0 (1+ i0)) (if (memq i0 indices) :rm x)) list)))) - + (defun orgtbl-toggle-comment () "Comment or uncomment the orgtbl at point." (interactive) @@ -8850,7 +9614,7 @@ directly by `orgtbl-send-table'. See manual." (splicep (plist-get p :splice)) (hline (plist-get p :hline)) rtn line i fm efm lfmt h) - + ;; Do we have a header? (if (and (not splicep) (listp (car table)) (memq 'hline table)) (setq h t)) @@ -8858,7 +9622,7 @@ directly by `orgtbl-send-table'. See manual." ;; Put header (unless splicep (push (or (plist-get p :tstart) "ERROR: no :tstart") rtn)) - + ;; Now loop over all lines (while (setq line (pop table)) (if (eq line 'hline) @@ -8886,10 +9650,10 @@ directly by `orgtbl-send-table'. See manual." (mapconcat 'identity line (org-get-param p h i :sep :hsep)) (org-get-param p h i :lend :hlend)) rtn)))) - - (unless splicep + + (unless splicep (push (or (plist-get p :tend) "ERROR: no :tend") rtn)) - + (mapconcat 'identity (nreverse rtn) "\n"))) (defun orgtbl-to-latex (table params) @@ -9041,7 +9805,7 @@ For file links, arg negates `org-context-in-file-links'." (setq cpltxt (concat "bbdb:" (or name company)) link (org-make-link cpltxt)) (org-store-link-props :type "bbdb" :name name :company company))) - + ((eq major-mode 'Info-mode) (setq link (org-make-link "info:" (file-name-nondirectory Info-current-file) @@ -9219,7 +9983,7 @@ For file links, arg negates `org-context-in-file-links'." (if (string-match "::\\'" cpltxt) (setq cpltxt (substring cpltxt 0 -2))) (setq link (org-make-link cpltxt))) - + (buffer-file-name ;; Just link to this file here. (setq cpltxt (concat "file:" @@ -9430,7 +10194,8 @@ is in the current directory or below. With three \\[universal-argument] prefixes, negate the meaning of `org-keep-stored-link-after-insertion'." (interactive "P") - (let ((region (if (org-region-active-p) + (let ((wcf (current-window-configuration)) + (region (if (org-region-active-p) (prog1 (buffer-substring (region-beginning) (region-end)) (delete-region (region-beginning) (region-end))))) tmphist ; byte-compile incorrectly complains about this @@ -9469,13 +10234,31 @@ With three \\[universal-argument] prefixes, negate the meaning of (t (setq link (org-make-link "file:" file)))))) (t ;; Read link, with completion for stored links. - ;; Fake a link history + (with-output-to-temp-buffer "*Org Links*" + (princ "Insert a link. Use TAB to complete valid link prefixes.\n") + (when org-stored-links + (princ "\nStored links ar available with <up>/<down> (most recent with RET):\n\n") + (princ (mapconcat 'car (reverse org-stored-links) "\n")))) + (let ((cw (selected-window))) + (select-window (get-buffer-window "*Org Links*")) + (shrink-window-if-larger-than-buffer) + (setq truncate-lines t) + (select-window cw)) + ;; Fake a link history, containing the stored links. (setq tmphist (append (mapcar 'car org-stored-links) org-insert-link-history)) - (setq link (org-completing-read - "Link: " org-stored-links nil nil nil - 'tmphist - (or (car (car org-stored-links))))) + (unwind-protect + (setq link (org-completing-read + "Link: " + (append + (mapcar (lambda (x) (concat (car x) ":")) + (append org-link-abbrev-alist-local org-link-abbrev-alist)) + (mapcar (lambda (x) (concat x ":")) org-link-types)) + nil nil nil + 'tmphist + (or (car (car org-stored-links))))) + (set-window-configuration wcf) + (kill-buffer "*Org Links*")) (setq entry (assoc link org-stored-links)) (or entry (push link org-insert-link-history)) (if (funcall (if (equal complete-file '(64)) 'not 'identity) @@ -9531,7 +10314,7 @@ With three \\[universal-argument] prefixes, negate the meaning of (defun org-completing-read (&rest args) (let ((minibuffer-local-completion-map (copy-keymap minibuffer-local-completion-map))) - (define-key minibuffer-local-completion-map " " 'self-insert-command) + (org-defkey minibuffer-local-completion-map " " 'self-insert-command) (apply 'completing-read args))) ;;; Opening/following a link @@ -9637,7 +10420,7 @@ optional argument IN-EMACS is non-nil, Emacs will visit the file." (setq type (match-string 1) path (match-string 2)) (throw 'match t))) (save-excursion - (when (org-in-regexp "\\(:[A-Za-z_@0-9:]+\\):[ \t\r\n]") + (when (org-in-regexp "\\(:[A-Za-z_@0-9:]+\\):[ \t]*$") (setq type "tags" path (match-string 1)) (while (string-match ":" path) @@ -9830,6 +10613,10 @@ If the current buffer is in `dired-mode', grep will be used to search in all files. If AVOID-POS is given, ignore matches near that position." (let ((case-fold-search t) (s0 (mapconcat 'identity (org-split-string s "[ \t\r\n]+") " ")) + (markers (concat "\\(?:" (mapconcat (lambda (x) (regexp-quote (car x))) + (append '((" ") ("\t") ("\n")) + org-emphasis-alist) + "\\|") "\\)")) (pos (point)) (pre "") (post "") words re0 re1 re2 re3 re4 re5 re2a reall) @@ -9866,7 +10653,8 @@ in all files. If AVOID-POS is given, ignore matches near that position." ;; Make a series of regular expressions to find a match (setq words (org-split-string s "[ \n\r\t]+") re0 (concat "\\(<<" (regexp-quote s0) ">>\\)") - re2 (concat "[ \t\r\n]\\(" (mapconcat 'downcase words "[ \t]+") "\\)[ \t\r\n]") + re2 (concat markers "\\(" (mapconcat 'downcase words "[ \t]+") + "\\)" markers) re2a (concat "[ \t\r\n]\\(" (mapconcat 'downcase words "[ \t\r\n]+") "\\)[ \t\r\n]") re4 (concat "[^a-zA-Z_]\\(" (mapconcat 'downcase words "[^a-zA-Z_\r\n]+") "\\)[^a-zA-Z_]") re1 (concat pre re2 post) @@ -9908,16 +10696,18 @@ enclose the position of `org-open-link-marker'." (let ((m org-open-link-marker)) (catch 'exit (while (apply 're-search-forward args) - (goto-char (match-end group)) - (if (and (or (not (eq (marker-buffer m) (current-buffer))) - (> (match-beginning 0) (marker-position m)) - (< (match-end 0) (marker-position m))) - (save-match-data - (or (not (org-in-regexp org-bracket-link-analytic-regexp 1)) - (not (match-end 4)) ; no description - (and (<= (match-beginning 4) (point)) - (>= (match-end 4) (point)))))) - (throw 'exit (point))))))) + (unless (get-text-property (match-end group) 'intangible) ; Emacs 21 + (goto-char (match-end group)) + (if (and (or (not (eq (marker-buffer m) (current-buffer))) + (> (match-beginning 0) (marker-position m)) + (< (match-end 0) (marker-position m))) + (save-match-data + (or (not (org-in-regexp + org-bracket-link-analytic-regexp 1)) + (not (match-end 4)) ; no description + (and (<= (match-beginning 4) (point)) + (>= (match-end 4) (point)))))) + (throw 'exit (point)))))))) (defun org-get-buffer-for-internal-link (buffer) "Return a buffer to be used for displaying the link target of internal links." @@ -10065,7 +10855,7 @@ onto the ring." (funcall (cdr (assq 'gnus org-link-frame-setup))) (if gnus-other-frame-object (select-frame gnus-other-frame-object)) (cond ((and group article) - (gnus-group-read-group 0 nil group) + (gnus-group-read-group 1 nil group) (gnus-summary-goto-article (string-to-number article) nil t)) (group (gnus-group-jump-to-group group)))) @@ -10346,7 +11136,7 @@ If the file does not exist, an error is thrown." (if (stringp command) (setq cmd command) (setq cmd 'emacs)))) - (if (and (not (eq cmd 'emacs)) ; Emacs has not problems with non-ex files + (if (and (not (eq cmd 'emacs)) ; Emacs has no problems with non-ex files (not (file-exists-p file)) (not org-open-non-existing-files)) (error "No such file: %s" file)) @@ -10380,10 +11170,6 @@ If the file does not exist, an error is thrown." org-file-apps-defaults-windowsnt) (t org-file-apps-defaults-gnu))) -(defun org-expand-file-name (path) - "Replace special path abbreviations and expand the file name." - (expand-file-name path)) - (defvar ange-ftp-name-format) ; to silence the XEmacs compiler. (defun org-file-remote-p (file) "Test whether FILE specifies a location on a remote system. @@ -10569,7 +11355,7 @@ See also the variable `org-reverse-note-order'." (replace-match "")) (catch 'quit (let* ((txt (buffer-substring (point-min) (point-max))) - (fastp current-prefix-arg) + (fastp (equal current-prefix-arg '(4))) (file (if fastp org-default-notes-file (org-get-org-file))) (heading org-remember-default-headline) (visiting (org-find-base-buffer-visiting file)) @@ -10577,6 +11363,7 @@ See also the variable `org-reverse-note-order'." (org-startup-align-all-tables nil) (org-goto-start-pos 1) spos level indent reversed) + (setq current-prefix-arg nil) ;; Modify text so that it becomes a nice subtree which can be inserted ;; into an org tree. (let* ((lines (split-string txt "\n")) @@ -10597,13 +11384,13 @@ See also the variable `org-reverse-note-order'." ;; Find the file (if (not visiting) (find-file-noselect file)) (with-current-buffer (or visiting (get-file-buffer file)) - (save-excursion (and (goto-char (point-min)) - (not (re-search-forward "^\\* " nil t)) - (insert "\n* Notes\n"))) - (setq reversed (org-notes-order-reversed-p)) (save-excursion (save-restriction (widen) + (and (goto-char (point-min)) + (not (re-search-forward "^\\* " nil t)) + (insert "\n* Notes\n")) + (setq reversed (org-notes-order-reversed-p)) ;; Find the default location (when (and heading (stringp heading) (string-match "\\S-" heading)) @@ -10619,7 +11406,7 @@ See also the variable `org-reverse-note-order'." org-goto-start-pos (org-get-location (current-buffer) org-remember-help))) (if (not spos) (throw 'quit nil)) ; return nil to show we did - ; not handle this note + ; not handle this note (goto-char spos) (cond ((and (bobp) (not reversed)) ;; Put it at the end, one level below level 1 @@ -10636,12 +11423,12 @@ See also the variable `org-reverse-note-order'." (re-search-forward "^\\*" nil t) (beginning-of-line 1) (org-paste-subtree 1 txt))) - ((and (org-on-heading-p nil) (not current-prefix-arg)) + ((and (org-on-heading-p t) (not current-prefix-arg)) ;; Put it below this entry, at the beg/end of the subtree (org-back-to-heading t) (setq level (funcall outline-level)) (if reversed - (outline-end-of-heading) + (outline-next-heading) (org-end-of-subtree t)) (if (not (bolp)) (newline)) (beginning-of-line 1) @@ -10649,7 +11436,9 @@ See also the variable `org-reverse-note-order'." (t ;; Put it right there, with automatic level determined by ;; org-paste-subtree or from prefix arg - (org-paste-subtree current-prefix-arg txt))) + (org-paste-subtree + (if (numberp current-prefix-arg) current-prefix-arg) + txt))) (when remember-save-after-remembering (save-buffer) (if (not visiting) (kill-buffer (current-buffer))))))))) @@ -10838,7 +11627,7 @@ At all other locations, this simply calls `ispell-complete-word'." ((string-match "\\`\\*+[ \t]*\\'" (buffer-substring (point-at-bol) beg)) (setq type :todo) - (mapcar 'list org-todo-keywords)) + (mapcar 'list org-todo-keywords-1)) (searchhead (setq type :searchhead) (save-excursion @@ -10926,6 +11715,8 @@ For calling through lisp, arg is also interpreted in the following way: 'none -> empty state \"\"(empty string) -> switch to empty state 'done -> switch to DONE +'nextset -> switch to the next set of keywords +'previousset -> switch to the previous set of keywords \"WAITING\" -> switch to the specified keyword, but only if it really is a member of `org-todo-keywords'." (interactive "P") @@ -10935,52 +11726,76 @@ For calling through lisp, arg is also interpreted in the following way: (or (looking-at (concat " +" org-todo-regexp " *")) (looking-at " *")) (let* ((this (match-string 1)) + (head (org-get-todo-sequence-head this)) + (ass (assoc head org-todo-kwd-alist)) + (interpret (nth 1 ass)) + (done-word (nth 3 ass)) + (final-done-word (nth 4 ass)) (last-state (or this "")) (completion-ignore-case t) - (member (member this org-todo-keywords)) + (member (member this org-todo-keywords-1)) (tail (cdr member)) (state (cond ((equal arg '(4)) ;; Read a state with completion (completing-read "State: " (mapcar (lambda(x) (list x)) - org-todo-keywords) + org-todo-keywords-1) nil t)) ((eq arg 'right) (if this (if tail (car tail) nil) - (car org-todo-keywords))) + (car org-todo-keywords-1))) ((eq arg 'left) - (if (equal member org-todo-keywords) + (if (equal member org-todo-keywords-1) nil (if this - (nth (- (length org-todo-keywords) (length tail) 2) - org-todo-keywords) - org-done-string))) + (nth (- (length org-todo-keywords-1) (length tail) 2) + org-todo-keywords-1) + (org-last org-todo-keywords-1)))) (arg - ;; user requests a specific state + ;; user or caller requests a specific state (cond ((equal arg "") nil) ((eq arg 'none) nil) - ((eq arg 'done) (org-last org-todo-keywords)) - ((car (member arg org-todo-keywords))) + ((eq arg 'done) (or done-word (car org-done-keywords))) + ((eq arg 'nextset) + (or (car (cdr (member head org-todo-heads))) + (car org-todo-heads))) + ((eq arg 'previousset) + (let ((org-todo-heads (reverse org-todo-heads))) + (or (car (cdr (member head org-todo-heads))) + (car org-todo-heads)))) + ((car (member arg org-todo-keywords-1))) ((nth (1- (prefix-numeric-value arg)) - org-todo-keywords)))) - ((null member) (car org-todo-keywords)) + org-todo-keywords-1)))) + ((null member) (or head (car org-todo-keywords-1))) + ((equal this final-done-word) nil) ;; -> make empty ((null tail) nil) ;; -> first entry - ((eq org-todo-interpretation 'sequence) + ((eq interpret 'sequence) (car tail)) - ((memq org-todo-interpretation '(type priority)) + ((memq interpret '(type priority)) (if (eq this-command last-command) (car tail) - (if (> (length tail) 0) org-done-string nil))) + (if (> (length tail) 0) + (or done-word (car org-done-keywords)) + nil))) (t nil))) (next (if state (concat " " state " ") " ")) dostates) (replace-match next t t) + (unless head + (setq head (org-get-todo-sequence-head state) + ass (assoc head org-todo-kwd-alist) + interpret (nth 1 ass) + done-word (nth 3 ass) + final-done-word (nth 4 ass))) + (when (memq arg '(nextset previousset)) + (message "Keyword set: %s" + (mapconcat 'identity (assoc state org-todo-sets) " "))) (setq org-last-todo-state-is-todo - (not (equal state org-done-string))) - (when org-log-done - (setq dostates (and (eq org-todo-interpretation 'sequence) + (not (member state org-done-keywords))) + (when (and org-log-done (not (memq arg '(nextset previousset)))) + (setq dostates (and (eq interpret 'sequence) (listp org-log-done) (memq 'state org-log-done))) (cond ((and state (not this)) @@ -10988,7 +11803,7 @@ For calling through lisp, arg is also interpreted in the following way: (and dostates (org-add-log-maybe 'state state 'findpos))) ((and state dostates) (org-add-log-maybe 'state state 'findpos)) - ((equal state org-done-string) + ((member state org-done-keywords) ;; Planning info calls the note-setting command. (org-add-planning-info 'closed (org-current-time) (if (org-get-repeat) nil 'scheduled)) @@ -10996,8 +11811,10 @@ For calling through lisp, arg is also interpreted in the following way: ;; Fixup tag positioning (and org-auto-align-tags (org-set-tags nil t)) (run-hooks 'org-after-todo-state-change-hook) - (and (equal state org-done-string) (org-auto-repeat-maybe)) - )) + (and (member state org-done-keywords) (org-auto-repeat-maybe)) + (if (and arg (not (member state org-done-keywords))) + (setq head (org-get-todo-sequence-head state))) + (put-text-property (point-at-bol) (point-at-eol) 'org-todo-head head))) ;; Fixup cursor location if close to the keyword (if (and (outline-on-heading-p) (not (bolp)) @@ -11008,8 +11825,24 @@ For calling through lisp, arg is also interpreted in the following way: (goto-char (or (match-end 2) (match-end 1))) (just-one-space)))) +(defun org-get-todo-sequence-head (kwd) + "Return the head of the TODO sequence to which KWD belongs. +If KWD is not set, check if there is a text property remembering the +right sequence." + (let (p) + (cond + ((not kwd) + (or (get-text-property (point-at-bol) 'org-todo-head) + (progn + (setq p (next-single-property-change (point-at-bol) 'org-todo-head + nil (point-at-eol))) + (get-text-property p 'org-todo-head)))) + ((not (member kwd org-todo-keywords-1)) + (car org-todo-keywords-1)) + (t (nth 2 (assoc kwd org-todo-kwd-alist)))))) + (defun org-get-repeat () - "Return the REPEAT statement of this entry." + "Check if tere is a deadline/schedule with repeater in this entry." (save-match-data (save-excursion (org-back-to-heading t) @@ -11020,24 +11853,29 @@ For calling through lisp, arg is also interpreted in the following way: (defvar org-last-changed-timestamp) (defvar org-log-post-message) (defun org-auto-repeat-maybe () - "Check if the current headline contains a REPEAT key. -If yes, set TODO state back to what it was and change any SCHEDULED -or DEADLINE times the new date. + "Check if the current headline contains a repeated deadline/schedule. +If yes, set TODO state back to what it was and change the base date +of repeating deadline/scheduled time stamps to new date. This function should be run in the `org-after-todo-state-change-hook'." ;; last-state is dynamically scoped into this function - (let ((repeat (org-get-repeat)) - (whata '(("d" . day) ("m" . month) ("y" . year))) - (msg "Entry repeats: ") - (org-log-done) - re type n what start) + (let* ((repeat (org-get-repeat)) + (aa (assoc last-state org-todo-kwd-alist)) + (interpret (nth 1 aa)) + (head (nth 2 aa)) + (done-word (nth 3 aa)) + (whata '(("d" . day) ("m" . month) ("y" . year))) + (msg "Entry repeats: ") + (org-log-done) + re type n what ts) (when repeat - (org-todo (if (eq 'org-todo-interpretation 'type) - last-state - (car org-todo-keywords))) - (unless (memq 'org-add-log-note (default-value 'post-command-hook)) + (org-todo (if (eq interpret 'type) last-state head)) + (when (and org-log-repeat + (not (memq 'org-add-log-note + (default-value 'post-command-hook)))) ;; Make sure a note is taken (let ((org-log-done '(done))) - (org-add-log-maybe 'done org-done-string 'findpos))) + (org-add-log-maybe 'done (or done-word (car org-done-keywords)) + 'findpos))) (org-back-to-heading t) (org-add-planning-info nil nil 'closed) (setq re (concat "\\(" org-scheduled-time-regexp "\\)\\|\\(" @@ -11045,11 +11883,10 @@ This function should be run in the `org-after-todo-state-change-hook'." (while (re-search-forward re (save-excursion (outline-next-heading) (point)) t) (setq type (if (match-end 1) org-scheduled-string org-deadline-string) - start 0) - (while (string-match "\\([-+]?[0-9]+\\)\\([dwmy]\\)" repeat start) - (setq start (match-end 0) - n (string-to-number (match-string 1 repeat)) - what (match-string 2 repeat)) + ts (match-string (if (match-end 2) 2 4))) + (when (string-match "\\([-+]?[0-9]+\\)\\([dwmy]\\)" ts) + (setq n (string-to-number (match-string 1 ts)) + what (match-string 2 ts)) (if (equal what "w") (setq n (* n 7) what "d")) (org-timestamp-change n (cdr (assoc what whata)))) (setq msg (concat msg type org-last-changed-timestamp " "))) @@ -11062,15 +11899,20 @@ The tree will show the lines where the regexp matches, and all higher headlines above the match. With \\[universal-argument] prefix, also show the DONE entries. With a numeric prefix N, construct a sparse tree for the Nth element -of `org-todo-keywords'." +of `org-todo-keywords-1'." (interactive "P") (let ((case-fold-search nil) (kwd-re (cond ((null arg) org-not-done-regexp) - ((equal arg '(4)) org-todo-regexp) - ((<= (prefix-numeric-value arg) (length org-todo-keywords)) + ((equal arg '(4)) + (let ((kwd (completing-read "Keyword (or KWD1|KWD2|...): " + (mapcar 'list org-todo-keywords-1)))) + (concat "\\(" + (mapconcat 'identity (org-split-string kwd "|") "\\|") + "\\)\\>"))) + ((<= (prefix-numeric-value arg) (length org-todo-keywords-1)) (regexp-quote (nth (1- (prefix-numeric-value arg)) - org-todo-keywords))) + org-todo-keywords-1))) (t (error "Invalid prefix argument: %s" arg))))) (message "%d TODO entries found" (org-occur (concat "^" outline-regexp " +" kwd-re ))))) @@ -11143,9 +11985,11 @@ be removed." ((eq what 'deadline) org-deadline-string) ((eq what 'closed) org-closed-string)) " ") - (org-insert-time-stamp time - (or org-time-was-given (eq what 'closed)) - (eq what 'closed)) + (org-insert-time-stamp + time + (or org-time-was-given + (and (eq what 'closed) org-log-done-with-time)) + (eq what 'closed)) (end-of-line 1)) (goto-char (point-min)) (widen) @@ -11163,6 +12007,7 @@ be removed." The auto-repeater uses this.") (defun org-add-log-maybe (&optional purpose state findpos) + "Set up the post command hook to take a note." (save-excursion (when (and (listp org-log-done) (memq purpose org-log-done)) @@ -11221,17 +12066,18 @@ The auto-repeater uses this.") ""))))) (if lines (setq note (concat note " \\\\"))) (push note lines)) - (save-excursion - (set-buffer (marker-buffer org-log-note-marker)) + (when lines (save-excursion - (goto-char org-log-note-marker) - (move-marker org-log-note-marker nil) - (end-of-line 1) - (if (not (bolp)) (insert "\n")) (indent-relative nil) - (setq ind (concat (buffer-substring (point-at-bol) (point)) " ")) - (insert " - " (pop lines)) - (while lines - (insert "\n" ind (pop lines)))))) + (set-buffer (marker-buffer org-log-note-marker)) + (save-excursion + (goto-char org-log-note-marker) + (move-marker org-log-note-marker nil) + (end-of-line 1) + (if (not (bolp)) (insert "\n")) (indent-relative nil) + (setq ind (concat (buffer-substring (point-at-bol) (point)) " ")) + (insert " - " (pop lines)) + (while lines + (insert "\n" ind (pop lines))))))) (set-window-configuration org-log-note-window-configuration) (with-current-buffer (marker-buffer org-log-note-return-to) (goto-char org-log-note-return-to)) @@ -11264,7 +12110,8 @@ that the match should indeed be shown." (when (or (not callback) (save-match-data (funcall callback))) (setq cnt (1+ cnt)) - (org-highlight-new-match (match-beginning 0) (match-end 0)) + (when org-highlight-sparse-tree-matches + (org-highlight-new-match (match-beginning 0) (match-end 0))) (org-show-context 'occur-tree)))) (when org-remove-highlights-with-change (org-add-hook 'before-change-functions 'org-remove-occur-highlights @@ -11342,7 +12189,7 @@ from the `before-change-functions' in the current buffer." ;;;; Priorities -(defvar org-priority-regexp ".*?\\(\\[#\\([A-Z]\\)\\] ?\\)" +(defvar org-priority-regexp ".*?\\(\\[#\\([A-Z0-9]\\)\\] ?\\)" "Regular expression matching the priority indicator.") (defvar org-remove-priority-next-time nil) @@ -11371,18 +12218,18 @@ ACTION can be set, up, or down." (setq current org-default-priority)) (cond ((eq action 'set) - (message "Priority A-%c, SPC to remove: " org-lowest-priority) + (message "Priority %c-%c, SPC to remove: " org-highest-priority org-lowest-priority) (setq new (read-char-exclusive)) (cond ((equal new ?\ ) (setq remove t)) - ((or (< (upcase new) ?A) (> (upcase new) org-lowest-priority)) + ((or (< (upcase new) org-highest-priority) (> (upcase new) org-lowest-priority)) (error "Priority must be between `%c' and `%c'" - ?A org-lowest-priority)))) + org-highest-priority org-lowest-priority)))) ((eq action 'up) (setq new (1- current))) ((eq action 'down) (setq new (1+ current))) (t (error "Invalid action"))) - (setq new (min (max ?A (upcase new)) org-lowest-priority)) + (setq new (min (max org-highest-priority (upcase new)) org-lowest-priority)) (setq news (format "%c" new)) (if have (if remove @@ -11419,15 +12266,14 @@ evaluated, testing if a given set of tags qualifies a headline for inclusion. When TODO-ONLY is non-nil, only lines with a TODO keyword are included in the output." (let* ((re (concat "[\n\r]" outline-regexp " *\\(\\<\\(" - (mapconcat 'regexp-quote - (nreverse (cdr (reverse org-todo-keywords))) - "\\|") + (mapconcat 'regexp-quote org-todo-keywords-1 "\\|") "\\>\\)\\)? *\\(.*?\\)\\(:[A-Za-z_@0-9:]+:\\)?[ \t]*$")) (props (list 'face nil 'done-face 'org-done 'undone-face nil 'mouse-face 'highlight 'org-not-done-regexp org-not-done-regexp + 'org-todo-regexp org-todo-regexp 'keymap org-agenda-keymap 'help-echo (format "mouse-2 or RET jump to org file %s" @@ -11435,7 +12281,7 @@ are included in the output." (case-fold-search nil) lspos tags tags-list tags-alist (llast 0) rtn level category i txt - todo marker entry) + todo marker entry priority) (save-excursion (goto-char (point-min)) (when (eq action 'sparse-tree) (org-overview)) @@ -11462,7 +12308,7 @@ are included in the output." (if org-use-tag-inheritance (apply 'append (mapcar 'cdr tags-alist)) tags)) - (when (and (or (not todo-only) todo) + (when (and (or (not todo-only) (member todo org-not-done-keywords)) (eval matcher) (or (not org-agenda-skip-archived-trees) (not (member org-archive-tag tags-list)))) @@ -11477,11 +12323,13 @@ are included in the output." (if org-tags-match-list-sublevels (make-string (1- level) ?.) "") (org-get-heading)) - category tags-list)) + category tags-list) + priority (org-get-priority txt)) (goto-char lspos) (setq marker (org-agenda-new-marker)) (org-add-props txt props - 'org-marker marker 'org-hd-marker marker 'org-category category) + 'org-marker marker 'org-hd-marker marker 'org-category category + 'priority priority 'type "tagsmatch") (push txt rtn)) ;; if we are to skip sublevels, jump to end of subtree (or org-tags-match-list-sublevels (org-end-of-subtree t)))))) @@ -11610,7 +12458,7 @@ With prefix ARG, realign all tags in headings in the current buffer." (if arg (save-excursion (goto-char (point-min)) - (let (buffer-invisibility-spec) ; Emacs 21 compatibility + (let ((buffer-invisibility-spec (org-inhibit-invisibility))) (while (re-search-forward re nil t) (org-set-tags nil t) (end-of-line 1))) @@ -11637,11 +12485,12 @@ With prefix ARG, realign all tags in headings in the current buffer." (while (string-match "[-+&]+" tags) ;; No boolean logic, just a list (setq tags (replace-match ":" t t tags)))) + (if (string-match "\\`[\t ]*\\'" tags) (setq tags "") (unless (string-match ":$" tags) (setq tags (concat tags ":"))) (unless (string-match "^:" tags) (setq tags (concat ":" tags)))) - + ;; Insert new tags at the correct column (beginning-of-line 1) (if (re-search-forward @@ -11728,7 +12577,7 @@ Returns the new tags string, or nil to not change the current settings." (fwidth (+ maxlen 3 1 3)) (ncol (/ (- (window-width) 4) fwidth)) (i-face 'org-done) - (c-face 'org-tag) + (c-face 'org-todo) tg cnt e c char c1 c2 ntable tbl rtn ov-start ov-end ov-prefix (exit-after-next org-fast-tag-selection-single-key) @@ -12014,9 +12863,9 @@ used to insert the time stamp into the buffer to include the time." (timestr (format-time-string (if with-time "%Y-%m-%d %H:%M" "%Y-%m-%d") default-time)) (prompt (concat (if prompt (concat prompt " ") "") - (format "YYYY-MM-DD [%s]: " timestr))) + (format "Date and/or time (default [%s]): " timestr))) ans (org-ans0 "") org-ans1 org-ans2 (deltadays 0) - second minute hour day month year tl wday wday1) + second minute hour day month year tl wday wday1 pm) (cond (from-string (setq ans from-string)) @@ -12027,44 +12876,43 @@ used to insert the time stamp into the buffer to include the time." (calendar-forward-day (- (time-to-days default-time) (calendar-absolute-from-gregorian (calendar-current-date)))) - (org-eval-in-calendar nil) + (org-eval-in-calendar nil t) (let* ((old-map (current-local-map)) (map (copy-keymap calendar-mode-map)) (minibuffer-local-map (copy-keymap minibuffer-local-map))) - (define-key map (kbd "RET") 'org-calendar-select) - (define-key map (if (featurep 'xemacs) [button1] [mouse-1]) + (org-defkey map (kbd "RET") 'org-calendar-select) + (org-defkey map (if (featurep 'xemacs) [button1] [mouse-1]) 'org-calendar-select-mouse) - (define-key map (if (featurep 'xemacs) [button2] [mouse-2]) + (org-defkey map (if (featurep 'xemacs) [button2] [mouse-2]) 'org-calendar-select-mouse) - (define-key minibuffer-local-map [(meta shift left)] + (org-defkey minibuffer-local-map [(meta shift left)] (lambda () (interactive) (org-eval-in-calendar '(calendar-backward-month 1)))) - (define-key minibuffer-local-map [(meta shift right)] + (org-defkey minibuffer-local-map [(meta shift right)] (lambda () (interactive) (org-eval-in-calendar '(calendar-forward-month 1)))) - (define-key minibuffer-local-map [(shift up)] + (org-defkey minibuffer-local-map [(shift up)] (lambda () (interactive) (org-eval-in-calendar '(calendar-backward-week 1)))) - (define-key minibuffer-local-map [(shift down)] + (org-defkey minibuffer-local-map [(shift down)] (lambda () (interactive) (org-eval-in-calendar '(calendar-forward-week 1)))) - (define-key minibuffer-local-map [(shift left)] + (org-defkey minibuffer-local-map [(shift left)] (lambda () (interactive) (org-eval-in-calendar '(calendar-backward-day 1)))) - (define-key minibuffer-local-map [(shift right)] + (org-defkey minibuffer-local-map [(shift right)] (lambda () (interactive) (org-eval-in-calendar '(calendar-forward-day 1)))) - (define-key minibuffer-local-map ">" + (org-defkey minibuffer-local-map ">" (lambda () (interactive) (org-eval-in-calendar '(scroll-calendar-left 1)))) - (define-key minibuffer-local-map "<" + (org-defkey minibuffer-local-map "<" (lambda () (interactive) (org-eval-in-calendar '(scroll-calendar-right 1)))) (unwind-protect (progn (use-local-map map) (setq org-ans0 (read-string prompt "" nil nil)) -; (if (not (string-match "\\S-" org-ans0)) (setq org-ans0 nil)) ;; org-ans0: from prompt ;; org-ans1: from mouse click ;; org-ans2: from calendar motion @@ -12077,17 +12925,30 @@ used to insert the time stamp into the buffer to include the time." (if (string-match "^[ \t]*[-+][0-9]+[ \t]*$" org-ans0) (setq deltadays (string-to-number ans) ans "")) - (if (string-match - "^ *\\(\\([0-9]+\\)-\\)?\\([0-1]?[0-9]\\)-\\([0-3]?[0-9]\\)\\([^-0-9]\\|$\\)" ans) - (progn - (setq year (if (match-end 2) - (string-to-number (match-string 2 ans)) - (string-to-number (format-time-string "%Y"))) - month (string-to-number (match-string 3 ans)) - day (string-to-number (match-string 4 ans))) - (if (< year 100) (setq year (+ 2000 year))) - (setq ans (replace-match (format "%04d-%02d-%02d\\5" year month day) - t nil ans)))) + ;; Help matching ISO dates with single digit month ot day, like 2006-8-11. + (when (string-match + "^ *\\(\\([0-9]+\\)-\\)?\\([0-1]?[0-9]\\)-\\([0-3]?[0-9]\\)\\([^-0-9]\\|$\\)" ans) + (setq year (if (match-end 2) + (string-to-number (match-string 2 ans)) + (string-to-number (format-time-string "%Y"))) + month (string-to-number (match-string 3 ans)) + day (string-to-number (match-string 4 ans))) + (if (< year 100) (setq year (+ 2000 year))) + (setq ans (replace-match (format "%04d-%02d-%02d\\5" year month day) + t nil ans))) + ;; Help matching am/pm times, because `parse-time-string' does not do that. + ;; If there is a time with am/pm, and *no* time without it, we convert + ;; convert so that matching will be successful. + (when (and (not (string-match "[012]?[0-9]:[0-9][0-9]\\([ \t\n]\\|$\\)" ans)) + (string-match "\\([012]?[0-9]\\)\\(:\\([0-5][0-9]\\)\\)?\\(am\\|AM\\|pm\\|PM\\)\\>" ans)) + (setq hour (string-to-number (match-string 1 ans)) + minute (if (match-end 3) (string-to-number (match-string 3 ans)) 0) + pm (equal ?p (string-to-char (downcase (match-string 4 ans))))) + (if (and (= hour 12) (not pm)) + (setq hour 0) + (if (and pm (< hour 12)) (setq hour (+ 12 hour)))) + (setq ans (replace-match (format "%02d:%02d" hour minute) t t ans))) + (setq tl (parse-time-string ans) year (or (nth 5 tl) (string-to-number (format-time-string "%Y" ct))) month (or (nth 4 tl) (string-to-number (format-time-string "%m" ct))) @@ -12113,18 +12974,28 @@ used to insert the time stamp into the buffer to include the time." (format "%04d-%02d-%02d %02d:%02d" year month day hour minute) (format "%04d-%02d-%02d" year month day))))) -(defun org-eval-in-calendar (form) +(defun org-eval-in-calendar (form &optional keepdate) "Eval FORM in the calendar window and return to current window. Also, store the cursor date in variable org-ans2." (let ((sw (selected-window))) (select-window (get-buffer-window "*Calendar*")) (eval form) - (when (calendar-cursor-to-date) + (when (and (not keepdate) (calendar-cursor-to-date)) (let* ((date (calendar-cursor-to-date)) (time (encode-time 0 0 0 (nth 1 date) (nth 0 date) (nth 2 date)))) (setq org-ans2 (format-time-string "%Y-%m-%d" time)))) (org-move-overlay org-date-ovl (1- (point)) (1+ (point)) (current-buffer)) - (select-window sw))) + (select-window sw) + ;; Update the prompt to show new default date + (save-excursion + (goto-char (point-min)) + (when (and org-ans2 + (re-search-forward "\\[[-0-9]+\\]" nil t) + (get-text-property (match-end 0) 'field)) + (let ((inhibit-read-only t)) + (replace-match (concat "[" org-ans2 "]") t t) + (add-text-properties (point-min) (1+ (match-end 0)) + (text-properties-at (1+ (point-min))))))))) (defun org-calendar-select () "Return to `org-read-date' with the date currently selected. @@ -12136,7 +13007,7 @@ This is used by `org-read-date' in a temporary keymap for the calendar buffer." (setq org-ans1 (format-time-string "%Y-%m-%d" time))) (if (active-minibuffer-window) (exit-minibuffer)))) -(defun org-insert-time-stamp (time &optional with-hm inactive pre post) +(defun org-insert-time-stamp (time &optional with-hm inactive pre post extra) "Insert a date stamp for the date given by the internal TIME. WITH-HM means, use the stamp format that includes the time of the day. INACTIVE means use square brackets instead of angular ones, so that the @@ -12149,6 +13020,10 @@ The command returns the inserted time stamp." (if inactive (setq fmt (concat "[" (substring fmt 1 -1) "]"))) (insert (or pre "")) (insert (setq stamp (format-time-string fmt time))) + (when extra + (backward-char 1) + (insert extra) + (forward-char 1)) (insert (or post "")) stamp)) @@ -12175,17 +13050,22 @@ The command returns the inserted time stamp." (defun org-display-custom-time (beg end) "Overlay modified time stamp format over timestamp between BED and END." - (let* ((t1 (save-match-data - (org-parse-time-string (buffer-substring beg end) t))) - (w1 (- end beg)) - (with-hm (and (nth 1 t1) (nth 2 t1))) - (tf (funcall (if with-hm 'cdr 'car) org-time-stamp-custom-formats)) - (time (org-fix-decoded-time t1)) - (str (org-add-props + (let* ((ts (buffer-substring beg end)) + t1 w1 with-hm tf time str w2 (off 0)) + (save-match-data + (setq t1 (org-parse-time-string ts t)) + (if (string-match " \\+[0-9]+[dwmy]\\'" ts) + (setq off (- (match-end 0) (match-beginning 0))))) + (setq end (- end off)) + (setq w1 (- end beg) + with-hm (and (nth 1 t1) (nth 2 t1)) + tf (funcall (if with-hm 'cdr 'car) org-time-stamp-custom-formats) + time (org-fix-decoded-time t1) + str (org-add-props (format-time-string (substring tf 1 -1) (apply 'encode-time time)) - nil 'mouse-face 'highlight)) - (w2 (length str))) + nil 'mouse-face 'highlight) + w2 (length str)) (if (not (= w2 w1)) (add-text-properties (1+ beg) (+ 2 beg) (list 'org-dwidth t 'org-dwidth-n (- w1 w2)))) @@ -12349,6 +13229,133 @@ days in order to avoid rounding problems." (defun org-time-string-to-time (s) (apply 'encode-time (org-parse-time-string s))) +(defun org-time-string-to-absolute (s &optional daynr) + "Convert a time stamp to an absolute day number. +If there is a specifyer for a cyclic time stamp, get the closest date to +DATE." + (cond + ((and daynr (string-match "\\`%%\\((.*)\\)" s)) + (if (org-diary-sexp-entry (match-string 1 s) "" date) + daynr + (+ daynr 1000))) + ((and daynr (string-match "\\+[0-9]+[dwmy]" s)) + (org-closest-date s (if (and (boundp 'daynr) (integerp daynr)) daynr + (time-to-days (current-time))) (match-string 0 s))) + (t (time-to-days (apply 'encode-time (org-parse-time-string s)))))) + +(defun org-calendar-holiday () + "List of holidays, for Diary display in Org-mode." + (let ((hl (check-calendar-holidays date))) + (if hl (mapconcat 'identity hl "; ")))) + +(defun org-diary-sexp-entry (sexp entry date) + "Process a SEXP diary ENTRY for DATE." + (let ((result (if calendar-debug-sexp + (let ((stack-trace-on-error t)) + (eval (car (read-from-string sexp)))) + (condition-case nil + (eval (car (read-from-string sexp))) + (error + (beep) + (message "Bad sexp at line %d in %s: %s" + (org-current-line) + (buffer-file-name) sexp) + (sleep-for 2)))))) + (cond ((stringp result) result) + ((and (consp result) + (stringp (cdr result))) (cdr result)) + (result entry) + (t nil)))) + +(defun org-diary-to-ical-string (frombuf) + "FIXME" + (let* ((tmpdir (if (featurep 'xemacs) + (temp-directory) + temporary-file-directory)) + (tmpfile (make-temp-name + (expand-file-name "orgics" tmpdir))) + buf rtn b e) + (save-excursion + (set-buffer frombuf) + (icalendar-export-region (point-min) (point-max) tmpfile) + (setq buf (find-buffer-visiting tmpfile)) + (set-buffer buf) + (goto-char (point-min)) + (if (re-search-forward "^BEGIN:VEVENT" nil t) + (setq b (match-beginning 0))) + (goto-char (point-max)) + (if (re-search-backward "^END:VEVENT" nil t) + (setq e (match-end 0))) + (setq rtn (if (and b e) (concat (buffer-substring b e) "\n") ""))) + (kill-buffer buf) + (kill-buffer frombuf) + (delete-file tmpfile) + rtn)) + +(defun org-closest-date (start current change) + "Find the date closest to CURRENT that is consistent with START and CHANGE." + ;; Make the proper lists from the dates + (catch 'exit + (let ((a1 '(("d" . day) ("w" . week) ("m" . month) ("y" . year))) + dn dw sday cday n1 n2 + d m y y1 y2 date1 date2 nmonths nm ny m2) + + (setq start (org-date-to-gregorian start) + current (org-date-to-gregorian current) + sday (calendar-absolute-from-gregorian start) + cday (calendar-absolute-from-gregorian current)) + + (if (<= cday sday) (throw 'exit sday)) + + (if (string-match "\\(\\+[0-9]+\\)\\([dwmy]\\)" change) + (setq dn (string-to-number (match-string 1 change)) + dw (cdr (assoc (match-string 2 change) a1))) + (error "Invalid change specifyer: %s" change)) + (if (eq dw 'week) (setq dw 'day dn (* 7 dn))) + (cond + ((eq dw 'day) + (setq n1 (+ sday (* dn (floor (/ (- cday sday) dn)))) + n2 (+ n1 dn))) + ((eq dw 'year) + (setq d (nth 1 start) m (car start) y1 (nth 2 start) y2 (nth 2 current)) + (setq y1 (+ (* (floor (/ (- y2 y1) dn)) dn) y1)) + (setq date1 (list m d y1) + n1 (calendar-absolute-from-gregorian date1) + date2 (list m d (+ y1 (* (if (< n1 cday) 1 -1) dn))) + n2 (calendar-absolute-from-gregorian date2))) + ((eq dw 'month) + ;; approx number of month between the tow dates + (setq nmonths (floor (/ (- cday sday) 30.436875))) + ;; How often does dn fit in there? + (setq d (nth 1 start) m (car start) y (nth 2 start) + nm (* dn (max 0 (1- (floor (/ nmonths dn))))) + m (+ m nm) + ny (floor (/ m 12)) + y (+ y ny) + m (- m (* ny 12))) + (while (> m 12) (setq m (- m 12) y (1+ y))) + (setq n1 (calendar-absolute-from-gregorian (list m d y))) + (setq m2 (+ m dn) y2 y) + (if (> m2 12) (setq y2 (1+ y2) m2 (- m2 12))) + (setq n2 (calendar-absolute-from-gregorian (list m2 d y2))) + (while (< n2 cday) + (setq n1 n2 m m2 y y2) + (setq m2 (+ m dn) y2 y) + (if (> m2 12) (setq y2 (1+ y2) m2 (- m2 12))) + (setq n2 (calendar-absolute-from-gregorian (list m2 d y2)))))) + + (if (> (abs (- cday n1)) (abs (- cday n2))) n2 n1)))) + +(defun org-date-to-gregorian (date) + "Turn any specification of DATE into a gregorian date for the calendar." + (cond ((integerp date) (calendar-gregorian-from-absolute date)) + ((and (listp date) (= (length date) 3)) date) + ((stringp date) + (setq date (org-parse-time-string date)) + (list (nth 4 date) (nth 3 date) (nth 5 date))) + ((listp date) + (list (nth 4 date) (nth 3 date) (nth 5 date))))) + (defun org-parse-time-string (s &optional nodefault) "Parse the standard Org-mode time string. This should be a lot faster than the normal `parse-time-string'. @@ -12436,6 +13443,7 @@ in the timestamp determines what will be changed." (let ((pos (point)) with-hm inactive org-ts-what + extra ts time time0) (if (not (org-at-timestamp-p t)) (error "Not at a timestamp")) @@ -12445,12 +13453,13 @@ in the timestamp determines what will be changed." (not (get-text-property (1- (point)) 'display))) (setq org-ts-what 'day)) (setq org-ts-what (or what org-ts-what) - with-hm (<= (abs (- (cdr org-ts-lengths) - (- (match-end 0) (match-beginning 0)))) - 1) inactive (= (char-after (match-beginning 0)) ?\[) ts (match-string 0)) (replace-match "") + (if (string-match " \\+[0-9]+[dwmy]" ts) + (setq extra (match-string 0 ts))) + (if (string-match "^.\\{10\\}.*?[0-9]+:[0-9][0-9]" ts) + (setq with-hm t)) (setq time0 (org-parse-time-string ts)) (setq time (apply 'encode-time @@ -12476,7 +13485,7 @@ in the timestamp determines what will be changed." (setcar (nthcdr 2 time0) (or (nth 1 time0) 0)) (setq time (apply 'encode-time time0)))) (setq org-last-changed-timestamp - (org-insert-time-stamp time with-hm inactive)) + (org-insert-time-stamp time with-hm inactive nil nil extra)) (org-clock-update-time-maybe) (goto-char pos) ;; Try to recenter the calendar window, if any @@ -12525,8 +13534,27 @@ If there is already a time stamp at the cursor position, update it." ;;; The clock for measuring work time. +(defvar org-mode-line-string "") +(put 'org-mode-line-string 'risky-local-variable t) + +(defvar org-mode-line-timer nil) +(defvar org-clock-heading "") +(defvar org-clock-start-time "") + +(defun org-update-mode-line () + (let* ((delta (- (time-to-seconds (current-time)) + (time-to-seconds org-clock-start-time))) + (h (floor delta 3600)) + (m (floor (- delta (* 3600 h)) 60))) + (setq org-mode-line-string + (propertize (format "-[%d:%02d (%s)]" h m org-clock-heading) + 'help-echo "Org-mode clock is running")) + (force-mode-line-update))) + (defvar org-clock-marker (make-marker) "Marker recording the last clock-in.") +(defvar org-clock-mode-line-entry nil + "Information for the modeline about the running clock.") (defun org-clock-in () "Start the clock on the current item. @@ -12536,6 +13564,10 @@ If necessary, clock-out of the currently active clock." (let (ts) (save-excursion (org-back-to-heading t) + (if (looking-at org-todo-line-regexp) + (setq org-clock-heading (match-string 3)) + (setq org-clock-heading "???")) + (setq org-clock-heading (propertize org-clock-heading 'face nil)) (beginning-of-line 2) (when (and (looking-at (concat "[ \t]*" org-keyword-time-regexp)) (not (equal (match-string 1) org-clock-string))) @@ -12545,8 +13577,15 @@ If necessary, clock-out of the currently active clock." (insert "\n") (backward-char 1) (indent-relative) (insert org-clock-string " ") + (setq org-clock-start-time (current-time)) (setq ts (org-insert-time-stamp (current-time) 'with-hm 'inactive)) (move-marker org-clock-marker (point) (buffer-base-buffer)) + (or global-mode-string (setq global-mode-string '(""))) + (or (memq 'org-mode-line-string global-mode-string) + (setq global-mode-string + (append global-mode-string '(org-mode-line-string)))) + (org-update-mode-line) + (setq org-mode-line-timer (run-with-timer 60 60 'org-update-mode-line)) (message "Clock started at %s" ts)))) (defun org-clock-out (&optional fail-quietly) @@ -12577,6 +13616,12 @@ If there is no running clock, throw an error, unless FAIL-QUIETLY is set." (insert " => " (format "%2d:%02d" h m)) (move-marker org-clock-marker nil) (org-add-log-maybe 'clock-out) + (when org-mode-line-timer + (cancel-timer org-mode-line-timer) + (setq org-mode-line-timer nil)) + (setq global-mode-string + (delq 'org-mode-line-string global-mode-string)) + (force-mode-line-update) (message "Clock stopped at %s after HH:MM = %d:%02d" te h m))))) (defun org-clock-cancel () @@ -12704,7 +13749,7 @@ from the `before-change-functions' in the current buffer." (defun org-clock-out-if-current () "Clock out if the current entry contains the running clock. This is used to stop the clock after a TODO entry is marked DONE." - (when (and (equal state org-done-string) + (when (and (member state org-done-keywords) (equal (marker-buffer org-clock-marker) (current-buffer)) (< (point) org-clock-marker) (> (save-excursion (outline-next-heading) (point)) @@ -12984,86 +14029,89 @@ The following commands are available: (substitute-key-definition 'undo 'org-agenda-undo org-agenda-mode-map global-map) -(define-key org-agenda-mode-map "\C-i" 'org-agenda-goto) -(define-key org-agenda-mode-map [(tab)] 'org-agenda-goto) -(define-key org-agenda-mode-map "\C-m" 'org-agenda-switch-to) -(define-key org-agenda-mode-map "\C-k" 'org-agenda-kill) -(define-key org-agenda-mode-map "\C-c$" 'org-agenda-archive) -(define-key org-agenda-mode-map "\C-c\C-x\C-s" 'org-agenda-archive) -(define-key org-agenda-mode-map "$" 'org-agenda-archive) -(define-key org-agenda-mode-map "\C-c\C-o" 'org-agenda-open-link) -(define-key org-agenda-mode-map " " 'org-agenda-show) -(define-key org-agenda-mode-map "\C-c\C-t" 'org-agenda-todo) -(define-key org-agenda-mode-map "\C-c\C-xb" 'org-agenda-tree-to-indirect-buffer) -(define-key org-agenda-mode-map "b" 'org-agenda-tree-to-indirect-buffer) -(define-key org-agenda-mode-map "o" 'delete-other-windows) -(define-key org-agenda-mode-map "L" 'org-agenda-recenter) -(define-key org-agenda-mode-map "t" 'org-agenda-todo) -(define-key org-agenda-mode-map "a" 'org-agenda-toggle-archive-tag) -(define-key org-agenda-mode-map ":" 'org-agenda-set-tags) -(define-key org-agenda-mode-map "." 'org-agenda-goto-today) -(define-key org-agenda-mode-map "d" 'org-agenda-day-view) -(define-key org-agenda-mode-map "w" 'org-agenda-week-view) -(define-key org-agenda-mode-map (org-key 'S-right) 'org-agenda-date-later) -(define-key org-agenda-mode-map (org-key 'S-left) 'org-agenda-date-earlier) -(define-key org-agenda-mode-map [?\C-c ?\C-x (right)] 'org-agenda-date-later) -(define-key org-agenda-mode-map [?\C-c ?\C-x (left)] 'org-agenda-date-earlier) - -(define-key org-agenda-mode-map ">" 'org-agenda-date-prompt) -(define-key org-agenda-mode-map "\C-c\C-s" 'org-agenda-schedule) -(define-key org-agenda-mode-map "\C-c\C-d" 'org-agenda-deadline) +(org-defkey org-agenda-mode-map "\C-i" 'org-agenda-goto) +(org-defkey org-agenda-mode-map [(tab)] 'org-agenda-goto) +(org-defkey org-agenda-mode-map "\C-m" 'org-agenda-switch-to) +(org-defkey org-agenda-mode-map "\C-k" 'org-agenda-kill) +(org-defkey org-agenda-mode-map "\C-c$" 'org-agenda-archive) +(org-defkey org-agenda-mode-map "\C-c\C-x\C-s" 'org-agenda-archive) +(org-defkey org-agenda-mode-map "$" 'org-agenda-archive) +(org-defkey org-agenda-mode-map "\C-c\C-o" 'org-agenda-open-link) +(org-defkey org-agenda-mode-map " " 'org-agenda-show) +(org-defkey org-agenda-mode-map "\C-c\C-t" 'org-agenda-todo) +(org-defkey org-agenda-mode-map [(control shift right)] 'org-agenda-todo-nextset) +(org-defkey org-agenda-mode-map [(control shift left)] 'org-agenda-todo-previousset) +(org-defkey org-agenda-mode-map "\C-c\C-xb" 'org-agenda-tree-to-indirect-buffer) +(org-defkey org-agenda-mode-map "b" 'org-agenda-tree-to-indirect-buffer) +(org-defkey org-agenda-mode-map "o" 'delete-other-windows) +(org-defkey org-agenda-mode-map "L" 'org-agenda-recenter) +(org-defkey org-agenda-mode-map "t" 'org-agenda-todo) +(org-defkey org-agenda-mode-map "a" 'org-agenda-toggle-archive-tag) +(org-defkey org-agenda-mode-map ":" 'org-agenda-set-tags) +(org-defkey org-agenda-mode-map "." 'org-agenda-goto-today) +(org-defkey org-agenda-mode-map "d" 'org-agenda-day-view) +(org-defkey org-agenda-mode-map "w" 'org-agenda-week-view) +(org-defkey org-agenda-mode-map [(shift right)] 'org-agenda-date-later) +(org-defkey org-agenda-mode-map [(shift left)] 'org-agenda-date-earlier) +(org-defkey org-agenda-mode-map [?\C-c ?\C-x (right)] 'org-agenda-date-later) +(org-defkey org-agenda-mode-map [?\C-c ?\C-x (left)] 'org-agenda-date-earlier) + +(org-defkey org-agenda-mode-map ">" 'org-agenda-date-prompt) +(org-defkey org-agenda-mode-map "\C-c\C-s" 'org-agenda-schedule) +(org-defkey org-agenda-mode-map "\C-c\C-d" 'org-agenda-deadline) (let ((l '(1 2 3 4 5 6 7 8 9 0))) - (while l (define-key org-agenda-mode-map + (while l (org-defkey org-agenda-mode-map (int-to-string (pop l)) 'digit-argument))) -(define-key org-agenda-mode-map "f" 'org-agenda-follow-mode) -(define-key org-agenda-mode-map "l" 'org-agenda-log-mode) -(define-key org-agenda-mode-map "D" 'org-agenda-toggle-diary) -(define-key org-agenda-mode-map "g" 'org-agenda-toggle-time-grid) -(define-key org-agenda-mode-map "r" 'org-agenda-redo) -(define-key org-agenda-mode-map "q" 'org-agenda-quit) -(define-key org-agenda-mode-map "x" 'org-agenda-exit) -(define-key org-agenda-mode-map "s" 'org-save-all-org-buffers) -(define-key org-agenda-mode-map "P" 'org-agenda-show-priority) -(define-key org-agenda-mode-map "T" 'org-agenda-show-tags) -(define-key org-agenda-mode-map "n" 'next-line) -(define-key org-agenda-mode-map "p" 'previous-line) -(define-key org-agenda-mode-map "\C-n" 'org-agenda-next-date-line) -(define-key org-agenda-mode-map "\C-p" 'org-agenda-previous-date-line) -(define-key org-agenda-mode-map "," 'org-agenda-priority) -(define-key org-agenda-mode-map "\C-c," 'org-agenda-priority) -(define-key org-agenda-mode-map "i" 'org-agenda-diary-entry) -(define-key org-agenda-mode-map "c" 'org-agenda-goto-calendar) +(org-defkey org-agenda-mode-map "f" 'org-agenda-follow-mode) +(org-defkey org-agenda-mode-map "l" 'org-agenda-log-mode) +(org-defkey org-agenda-mode-map "D" 'org-agenda-toggle-diary) +(org-defkey org-agenda-mode-map "g" 'org-agenda-toggle-time-grid) +(org-defkey org-agenda-mode-map "r" 'org-agenda-redo) +(org-defkey org-agenda-mode-map "q" 'org-agenda-quit) +(org-defkey org-agenda-mode-map "x" 'org-agenda-exit) +(org-defkey org-agenda-mode-map "\C-x\C-w" 'org-write-agenda) +(org-defkey org-agenda-mode-map "s" 'org-save-all-org-buffers) +(org-defkey org-agenda-mode-map "P" 'org-agenda-show-priority) +(org-defkey org-agenda-mode-map "T" 'org-agenda-show-tags) +(org-defkey org-agenda-mode-map "n" 'next-line) +(org-defkey org-agenda-mode-map "p" 'previous-line) +(org-defkey org-agenda-mode-map "\C-n" 'org-agenda-next-date-line) +(org-defkey org-agenda-mode-map "\C-p" 'org-agenda-previous-date-line) +(org-defkey org-agenda-mode-map "," 'org-agenda-priority) +(org-defkey org-agenda-mode-map "\C-c," 'org-agenda-priority) +(org-defkey org-agenda-mode-map "i" 'org-agenda-diary-entry) +(org-defkey org-agenda-mode-map "c" 'org-agenda-goto-calendar) (eval-after-load "calendar" - '(define-key calendar-mode-map org-calendar-to-agenda-key + '(org-defkey calendar-mode-map org-calendar-to-agenda-key 'org-calendar-goto-agenda)) -(define-key org-agenda-mode-map "C" 'org-agenda-convert-date) -(define-key org-agenda-mode-map "m" 'org-agenda-phases-of-moon) -(define-key org-agenda-mode-map "M" 'org-agenda-phases-of-moon) -(define-key org-agenda-mode-map "S" 'org-agenda-sunrise-sunset) -(define-key org-agenda-mode-map "h" 'org-agenda-holidays) -(define-key org-agenda-mode-map "H" 'org-agenda-holidays) -(define-key org-agenda-mode-map "+" 'org-agenda-priority-up) -(define-key org-agenda-mode-map "I" 'org-agenda-clock-in) -(define-key org-agenda-mode-map "O" 'org-agenda-clock-out) -(define-key org-agenda-mode-map "X" 'org-agenda-clock-cancel) -(define-key org-agenda-mode-map "-" 'org-agenda-priority-down) -(define-key org-agenda-mode-map (org-key 'S-up) 'org-agenda-priority-up) -(define-key org-agenda-mode-map (org-key 'S-down) 'org-agenda-priority-down) -(define-key org-agenda-mode-map [?\C-c ?\C-x (up)] 'org-agenda-priority-up) -(define-key org-agenda-mode-map [?\C-c ?\C-x (down)] 'org-agenda-priority-down) -(define-key org-agenda-mode-map [(right)] 'org-agenda-later) -(define-key org-agenda-mode-map [(left)] 'org-agenda-earlier) -(define-key org-agenda-mode-map "\C-c\C-x\C-c" 'org-export-icalendar-combine-agenda-files) +(org-defkey org-agenda-mode-map "C" 'org-agenda-convert-date) +(org-defkey org-agenda-mode-map "m" 'org-agenda-phases-of-moon) +(org-defkey org-agenda-mode-map "M" 'org-agenda-phases-of-moon) +(org-defkey org-agenda-mode-map "S" 'org-agenda-sunrise-sunset) +(org-defkey org-agenda-mode-map "h" 'org-agenda-holidays) +(org-defkey org-agenda-mode-map "H" 'org-agenda-holidays) +(org-defkey org-agenda-mode-map "I" 'org-agenda-clock-in) +(org-defkey org-agenda-mode-map "O" 'org-agenda-clock-out) +(org-defkey org-agenda-mode-map "X" 'org-agenda-clock-cancel) +(org-defkey org-agenda-mode-map "+" 'org-agenda-priority-up) +(org-defkey org-agenda-mode-map "-" 'org-agenda-priority-down) +(org-defkey org-agenda-mode-map [(shift up)] 'org-agenda-priority-up) +(org-defkey org-agenda-mode-map [(shift down)] 'org-agenda-priority-down) +(org-defkey org-agenda-mode-map [?\C-c ?\C-x (up)] 'org-agenda-priority-up) +(org-defkey org-agenda-mode-map [?\C-c ?\C-x (down)] 'org-agenda-priority-down) +(org-defkey org-agenda-mode-map [(right)] 'org-agenda-later) +(org-defkey org-agenda-mode-map [(left)] 'org-agenda-earlier) +(org-defkey org-agenda-mode-map "\C-c\C-x\C-c" 'org-export-icalendar-combine-agenda-files) (defvar org-agenda-keymap (copy-keymap org-agenda-mode-map) "Local keymap for agenda entries from Org-mode.") -(define-key org-agenda-keymap +(org-defkey org-agenda-keymap (if (featurep 'xemacs) [(button2)] [(mouse-2)]) 'org-agenda-goto-mouse) -(define-key org-agenda-keymap +(org-defkey org-agenda-keymap (if (featurep 'xemacs) [(button3)] [(mouse-3)]) 'org-agenda-show-mouse) (when org-agenda-mouse-1-follows-link - (define-key org-agenda-keymap [follow-link] 'mouse-face)) + (org-defkey org-agenda-keymap [follow-link] 'mouse-face)) (easy-menu-define org-agenda-menu org-agenda-mode-map "Agenda menu" '("Agenda" ("Agenda Files") @@ -13120,6 +14168,7 @@ The following commands are available: :style toggle :selected org-agenda-include-diary :active (org-agenda-check-type nil 'agenda)] ["Use Time Grid" org-agenda-toggle-time-grid :style toggle :selected org-agenda-use-time-grid :active (org-agenda-check-type nil 'agenda)]) + ["Write view to file" org-write-agenda t] ["Rebuild buffer" org-agenda-redo t] ["Save all Org-mode Buffers" org-save-all-org-buffers t] "--" @@ -13146,6 +14195,11 @@ The following commands are available: `(unless (get-text-property (point) 'org-protected) ,@body)) +(defmacro org-unmodified (&rest body) + "Execute body without changing buffer-modified-p." + `(set-buffer-modified-p + (prog1 (buffer-modified-p) ,@body))) + (defmacro org-with-remote-undo (_buffer &rest _body) "Execute BODY while recording undo information in two buffers." (declare (indent 1) (debug t)) @@ -13230,7 +14284,8 @@ T Call `org-todo-list' to display the global todo list, select only m Call `org-tags-view' to display headlines with tags matching a condition (the user is prompted for the condition). M Like `m', but select only TODO entries, no ordinary headlines. -l Create a timeeline for the current buffer. +l Create a timeline for the current buffer. +e Export views to associated files. More commands can be added by configuring the variable `org-agenda-custom-commands'. In particular, specific tags and TODO keyword @@ -13261,7 +14316,7 @@ next use of \\[org-agenda]) restricted to the current file." (let ((header "Press key for an agenda command: -------------------------------- C Configure custom agenda commands -a Agenda for current week or day +a Agenda for current week or day e Export agenda views t List of all TODO entries T Entries with special TODO kwd m Match a TAGS query M Like m, but only TODO entries L Timeline for current buffer # List stuck projects (!=configure) @@ -13279,6 +14334,9 @@ L Timeline for current buffer # List stuck projects (!=configure) '(face bold)) (cond ((stringp type) type) + ((eq type 'agenda) "Agenda for current week or day") + ((eq type 'alltodo) "List of all TODO entries") + ((eq type 'stuck) "List of stuck projects") ((eq type 'todo) "TODO keyword") ((eq type 'tags) "Tags query") ((eq type 'tags-todo) "Tags (TODO)") @@ -13333,6 +14391,13 @@ L Timeline for current buffer # List stuck projects (!=configure) (setq type (nth 1 entry) match (nth 2 entry) lprops (nth 3 entry) lprops (nth 3 entry)) (cond + ((eq type 'agenda) + (org-let lprops '(org-agenda-list current-prefix-arg))) + ((eq type 'alltodo) + (org-let lprops '(org-todo-list current-prefix-arg))) + ((eq type 'stuck) + (org-let lprops '(org-agenda-list-stuck-projects + current-prefix-arg))) ((eq type 'tags) (org-let lprops '(org-tags-view current-prefix-arg match))) ((eq type 'tags-todo) @@ -13353,13 +14418,14 @@ L Timeline for current buffer # List stuck projects (!=configure) ((fboundp type) (org-let lprops '(funcall type match))) (t (error "Invalid custom agenda command type %s" type)))) - (org-run-agenda-series (cddr entry)))) + (org-run-agenda-series (nth 1 entry) (cddr entry)))) ((equal c ?C) (customize-variable 'org-agenda-custom-commands)) ((equal c ?a) (call-interactively 'org-agenda-list)) ((equal c ?t) (call-interactively 'org-todo-list)) ((equal c ?T) (org-call-with-arg 'org-todo-list (or arg '(4)))) ((equal c ?m) (call-interactively 'org-tags-view)) ((equal c ?M) (org-call-with-arg 'org-tags-view (or arg '(4)))) + ((equal c ?e) (call-interactively 'org-store-agenda-views)) ((equal c ?L) (unless restrict-ok (error "This is not an Org-mode file")) @@ -13368,10 +14434,10 @@ L Timeline for current buffer # List stuck projects (!=configure) ((equal c ?!) (customize-variable 'org-stuck-projects)) (t (error "Invalid key")))))) -(defun org-run-agenda-series (series) - (org-prepare-agenda) +(defun org-run-agenda-series (name series) + (org-prepare-agenda name) (let* ((org-agenda-multi t) - (redo (list 'org-run-agenda-series (list 'quote series))) + (redo (list 'org-run-agenda-series name (list 'quote series))) (cmds (car series)) (gprops (nth 1 series)) match ;; The byte compiler incorrectly complains about this. Keep it! @@ -13380,11 +14446,14 @@ L Timeline for current buffer # List stuck projects (!=configure) (setq type (car cmd) match (nth 1 cmd) lprops (nth 2 cmd)) (cond ((eq type 'agenda) - (call-interactively 'org-agenda-list)) + (org-let2 gprops lprops + '(call-interactively 'org-agenda-list))) ((eq type 'alltodo) - (call-interactively 'org-todo-list)) + (org-let2 gprops lprops + '(call-interactively 'org-todo-list))) ((eq type 'stuck) - (call-interactively 'org-agenda-list-stuck-projects)) + (org-let2 gprops lprops + '(call-interactively 'org-agenda-list-stuck-projects))) ((eq type 'tags) (org-let2 gprops lprops '(org-tags-view current-prefix-arg match))) @@ -13405,17 +14474,208 @@ L Timeline for current buffer # List stuck projects (!=configure) ;;;###autoload (defmacro org-batch-agenda (cmd-key &rest parameters) - "Run an agenda command in batch mode, send result to STDOUT. -CMD-KEY is a string that is also a key in `org-agenda-custom-commands'. + "Run an agenda command in batch mode and send the result to STDOUT. +If CMD-KEY is a string of length 1, it is used as a key in +`org-agenda-custom-commands' and triggers this command. If it is a +longer string it is used as a tags/todo match string. Paramters are alternating variable names and values that will be bound before running the agenda command." (let (pars) (while parameters (push (list (pop parameters) (if parameters (pop parameters))) pars)) - (flet ((read-char-exclusive () (string-to-char cmd-key))) - (eval (list 'let (nreverse pars) '(org-agenda nil)))) + (if (> (length cmd-key) 1) + (eval (list 'let (nreverse pars) + (list 'org-tags-view nil cmd-key))) + (flet ((read-char-exclusive () (string-to-char cmd-key))) + (eval (list 'let (nreverse pars) '(org-agenda nil))))) + (set-buffer "*Org Agenda*") + (princ (org-encode-for-stdout (buffer-string))))) + +(defun org-encode-for-stdout (string) + (if (fboundp 'encode-coding-string) + (encode-coding-string string buffer-file-coding-system) + string)) + +(defvar org-agenda-info nil) + +;;;###autoload +(defmacro org-batch-agenda-csv (cmd-key &rest parameters) + "Run an agenda command in batch mode and send the result to STDOUT. +If CMD-KEY is a string of length 1, it is used as a key in +`org-agenda-custom-commands' and triggers this command. If it is a +longer string it is used as a tags/todo match string. +Paramters are alternating variable names and values that will be bound +before running the agenda command. + +The output gives a line for each selected agenda item. Each +item is a list of comma-separated values, like this: + +category,head,type,todo,tags,date,time,extra,priority-l,priority-n + +category The category of the item +head The headline, without TODO kwd, TAGS and PRIORITY +type The type of the agenda entry, can be + todo selected in TODO match + tagsmatch selected in tags match + diary imported from diary + deadline a deadline on given date + scheduled scheduled on given date + timestamp entry has timestamp on given date + closed entry was closed on given date + upcoming-deadline warning about deadline + past-scheduled forwarded scheduled item + block entry has date block including g. date +todo The todo keyword, if any +tags All tags including inherited ones, separated by colons +date The relevant date, like 2007-2-14 +time The time, like 15:00-16:50 +extra Sting with extra planning info +priority-l The priority letter if any was given +priority-n The computed numerical priority" + + (let (pars) + (while parameters + (push (list (pop parameters) (if parameters (pop parameters))) pars)) + (push (list 'org-agenda-remove-tags t) pars) + (if (> (length cmd-key) 1) + (eval (list 'let (nreverse pars) + (list 'org-tags-view nil cmd-key))) + (flet ((read-char-exclusive () (string-to-char cmd-key))) + (eval (list 'let (nreverse pars) '(org-agenda nil))))) (set-buffer "*Org Agenda*") - (princ (buffer-string)))) + (let* ((lines (org-split-string (buffer-string) "\n")) + line) + (while (setq line (pop lines)) + (catch 'next + (if (not (get-text-property 0 'org-category line)) (throw 'next nil)) + (setq org-agenda-info + (org-fix-agenda-info (text-properties-at 0 line))) + (princ + (org-encode-for-stdout + (mapconcat 'org-agenda-export-csv-mapper + '(org-category txt type todo tags date time-of-day extra + priority-letter priority) + ","))) + (princ "\n")))))) + +(defun org-fix-agenda-info (props) + "FIXME" + (let (tmp re) + (when (setq tmp (plist-get props 'tags)) + (setq props (plist-put props 'tags (mapconcat 'identity tmp ":")))) + (when (setq tmp (plist-get props 'date)) + (if (integerp tmp) (setq tmp (calendar-gregorian-from-absolute tmp))) + (let ((calendar-date-display-form '(year "-" month "-" day))) + '((format "%4d, %9s %2s, %4s" dayname monthname day year)) + + (setq tmp (calendar-date-string tmp))) + (setq props (plist-put props 'date tmp))) + (when (setq tmp (plist-get props 'day)) + (if (integerp tmp) (setq tmp (calendar-gregorian-from-absolute tmp))) + (let ((calendar-date-display-form '(year "-" month "-" day))) + (setq tmp (calendar-date-string tmp))) + (setq props (plist-put props 'day tmp))) + (when (setq tmp (plist-get props 'txt)) + (when (string-match "\\[#\\([A-Z0-9]\\)\\] ?" tmp) + (plist-put props 'priority-letter (match-string 1 tmp)) + (setq tmp (replace-match "" t t tmp))) + (when (and (setq re (plist-get props 'org-todo-regexp)) + (setq re (concat "\\`\\.*" re " ?")) + (string-match re tmp)) + (plist-put props 'todo (match-string 1 tmp)) + (setq tmp (replace-match "" t t tmp))) + (plist-put props 'txt tmp))) + props) + +(defun org-agenda-export-csv-mapper (prop) + (let ((res (plist-get org-agenda-info prop))) + (setq res + (cond + ((not res) "") + ((stringp res) res) + (t (prin1-to-string res)))) + (while (string-match "," res) + (setq res (replace-match ";" t t res))) + (org-trim res))) + + +;;;###autoload +(defun org-store-agenda-views (&rest parameters) + (interactive) + (eval (list 'org-batch-store-agenda-views))) + +(defvar org-agenda-buffer-name) + +;; FIXME, why is this a macro????? +;;;###autoload +(defmacro org-batch-store-agenda-views (&rest parameters) + "Run all custom agenda commands that have a file argument." + (let ((cmds org-agenda-custom-commands) + (dir (default-directory)) + pars cmd thiscmdkey files opts) + (while parameters + (push (list (pop parameters) (if parameters (pop parameters))) pars)) + (setq pars (reverse pars)) + (save-window-excursion + (while cmds + (setq cmd (pop cmds) + thiscmdkey (car cmd) + opts (nth 3 cmd) + files (org-last cmd)) + (if (stringp files) (setq files (list files))) + (when files + (flet ((read-char-exclusive () (string-to-char thiscmdkey))) + (eval (list 'let (append org-agenda-exporter-settings opts pars) + '(org-agenda nil)))) + (set-buffer "*Org Agenda*") + (while files + (eval (list 'let (append org-agenda-exporter-settings opts pars) + (list 'org-write-agenda + (expand-file-name (pop files) dir) t))))) + (kill-buffer org-agenda-buffer-name))))) + +(defun org-write-agenda (file &optional nosettings) + "Write the current buffer (an agenda view) as a file. +Depending on the extension of the file name, plain text (.txt), +HTML (.html or .htm) or Postscript (.ps) is produced. +If NOSETTINGS is given, do not scope the settings of +`org-agenda-exporter-settings' into the export commands. This is used when +the settings have already been scoped and we do not wish to overrule other, +higher priority settings." + (interactive "FWrite agenda to file: ") + (if (not (file-writable-p file)) + (error "Cannot write agenda to file %s" file)) + (cond + ((string-match "\\.html?\\'" file) (require 'htmlize)) + ((string-match "\\.ps\\'" file) (require 'ps-print))) + (org-let (if nosettings nil org-agenda-exporter-settings) + '(save-excursion + (save-window-excursion + (cond + ((string-match "\\.html?\\'" file) + (set-buffer (htmlize-buffer (current-buffer))) + + (when (and org-agenda-export-html-style + (string-match "<style>" org-agenda-export-html-style)) + ;; replace <style> section with org-agenda-export-html-style + (goto-char (point-min)) + (kill-region (- (search-forward "<style") 6) + (search-forward "</style>")) + (insert org-agenda-export-html-style)) + (write-file file) + (kill-buffer (current-buffer)) + (message "HTML written to %s" file)) + ((string-match "\\.ps\\'" file) + (ps-print-buffer-with-faces file) + (message "Postscript written to %s" file)) + (t + (let ((bs (buffer-string))) + (find-file file) + (insert bs) + (save-buffer 0) + (kill-buffer (current-buffer)) + (message "Plain text written to %s" file)))))) + (set-buffer org-agenda-buffer-name))) (defmacro org-no-read-only (&rest body) "Inhibit read-only for BODY." @@ -13508,13 +14768,6 @@ If the current buffer does not, find the first agenda file." (find-file (car fs))) (if (buffer-base-buffer) (switch-to-buffer (buffer-base-buffer))))) -(defun org-agenda-file-to-end () - "Move/add the current file to the end of the agenda file list. -If the file is not present in the list, it is appended to the list. If it is -present, it is moved there." - (interactive) - (org-agenda-file-to-front 'to-end)) - (defun org-agenda-file-to-front (&optional to-end) "Move/add the current file to the top of the agenda file list. If the file is not present in the list, it is added to the front. If it is @@ -13578,7 +14831,10 @@ Optional argument FILE means, use this file instead of the current." (defvar org-agenda-multi nil) ; dynammically scoped (defvar org-agenda-buffer-name "*Org Agenda*") (defvar org-pre-agenda-window-conf nil) -(defun org-prepare-agenda () +(defvar org-agenda-name nil) +(defun org-prepare-agenda (&optional name) + (setq org-todo-keywords-for-agenda nil) + (setq org-done-keywords-for-agenda nil) (if org-agenda-multi (progn (setq buffer-read-only nil) @@ -13588,6 +14844,10 @@ Optional argument FILE means, use this file instead of the current." (narrow-to-region (point) (point-max))) (org-agenda-maybe-reset-markers 'force) (org-prepare-agenda-buffers (org-agenda-files)) + (setq org-todo-keywords-for-agenda + (org-uniquify org-todo-keywords-for-agenda)) + (setq org-done-keywords-for-agenda + (org-uniquify org-done-keywords-for-agenda)) (let* ((abuf (get-buffer-create org-agenda-buffer-name)) (awin (get-buffer-window abuf))) (cond @@ -13605,7 +14865,9 @@ Optional argument FILE means, use this file instead of the current." (switch-to-buffer-other-window abuf)))) (setq buffer-read-only nil) (erase-buffer) - (org-agenda-mode)) + (org-agenda-mode) + (and name (not org-agenda-name) + (org-set-local 'org-agenda-name name))) (setq buffer-read-only nil)) (defun org-finalize-agenda () @@ -13617,7 +14879,9 @@ Optional argument FILE means, use this file instead of the current." (goto-char (point-min)) (while (org-activate-bracket-links (point-max)) (add-text-properties (match-beginning 0) (match-end 0) - '(face org-link)))) + '(face org-link))) + (unless org-agenda-with-colors + (remove-text-properties (point-min) (point-max) '(face nil)))) (run-hooks 'org-finalize-agenda-hook)))) (defun org-prepare-agenda-buffers (files) @@ -13635,6 +14899,10 @@ Optional argument FILE means, use this file instead of the current." (set-buffer (org-get-agenda-file-buffer file)) (widen) (setq bmp (buffer-modified-p)) + (setq org-todo-keywords-for-agenda + (append org-todo-keywords-for-agenda org-todo-keywords-1)) + (setq org-done-keywords-for-agenda + (append org-done-keywords-for-agenda org-done-keywords)) (save-excursion (remove-text-properties (point-min) (point-max) pall) (when org-agenda-skip-archived-trees @@ -13648,7 +14916,7 @@ Optional argument FILE means, use this file instead of the current." (add-text-properties (match-beginning 0) (org-end-of-subtree t) pc))) (set-buffer-modified-p bmp)))))) - + (defvar org-agenda-skip-function nil "Function to be called at each match during agenda construction. If this function return nil, the current match should not be skipped. @@ -13733,9 +15001,13 @@ When a buffer is unmodified, it is just killed. When modified, it is saved "Get the table of categories and positions in current buffer." (let (tbl) (save-excursion - (goto-char (point-min)) - (while (re-search-forward "\\(^\\|\r\\)#\\+CATEGORY:[ \t]*\\(.*\\)" nil t) - (push (cons (point) (org-trim (match-string 2))) tbl))) + (save-restriction + (widen) + (goto-char (point-min)) + (while (re-search-forward "^#\\+CATEGORY:[ \t]*\\(.*\\)" + nil t) + (push (cons (match-beginning 1) + (org-trim (match-string 1))) tbl)))) tbl)) (defun org-get-category (&optional pos) @@ -13792,16 +15064,18 @@ dates." (setq day-numbers (delq nil (mapcar (lambda(x) (if (>= x today) x nil)) day-numbers)))) - (org-prepare-agenda) + (org-prepare-agenda (concat "Timeline " + (file-name-nondirectory buffer-file-name))) (if doclosed (push :closed args)) (push :timestamp args) + (push :sexp args) (if dotodo (push :todo args)) (while (setq d (pop day-numbers)) (if (and (listp d) (eq (car d) :omitted)) (progn (setq s (point)) (insert (format "\n[... %d empty days omitted]\n\n" (cdr d))) - (put-text-property s (1- (point)) 'face 'org-level-3)) + (put-text-property s (1- (point)) 'face 'org-agenda-structure)) (if (listp d) (setq d (car d) emptyp t) (setq emptyp nil)) (if (and (>= d today) dopast @@ -13824,7 +15098,7 @@ dates." ; (insert (format-time-string org-agenda-date-format ; (calendar-time-from-absolute d 0)) ; "\n") - (put-text-property s (1- (point)) 'face 'org-level-3) + (put-text-property s (1- (point)) 'face 'org-agenda-structure) (put-text-property s (1- (point)) 'org-date-line t) (if (equal d today) (put-text-property s (1- (point)) 'org-today t)) @@ -13936,7 +15210,7 @@ NDAYS defaults to `org-agenda-ndays'." (push (1+ (car day-numbers)) day-numbers) (setq ndays (1- ndays))) (setq day-numbers (nreverse day-numbers)) - (org-prepare-agenda) + (org-prepare-agenda "Day/Week") (org-set-local 'org-starting-day (car day-numbers)) (org-set-local 'org-include-all-loc include-all) (when (and (or include-all org-agenda-include-all-todo) @@ -13953,11 +15227,12 @@ NDAYS defaults to `org-agenda-ndays'." (when rtnall (insert "ALL CURRENTLY OPEN TODO ITEMS:\n") (add-text-properties (point-min) (1- (point)) - (list 'face 'org-level-3)) + (list 'face 'org-agenda-structure)) (insert (org-finalize-agenda-entries rtnall) "\n"))) (setq s (point)) (insert (if (= nd 7) "Week-" "Day-") "agenda:\n") - (add-text-properties s (1- (point)) (list 'face 'org-level-3)) + (add-text-properties s (1- (point)) (list 'face 'org-agenda-structure + 'org-date-line t)) (while (setq d (pop day-numbers)) (setq date (calendar-gregorian-from-absolute d) s (point)) @@ -13974,10 +15249,10 @@ NDAYS defaults to `org-agenda-ndays'." (if org-agenda-show-log (setq rtn (org-agenda-get-day-entries file date - :deadline :scheduled :timestamp :closed)) + :deadline :scheduled :timestamp :sexp :closed)) (setq rtn (org-agenda-get-day-entries file date - :deadline :scheduled :timestamp))) + :deadline :scheduled :sexp :timestamp))) (setq rtnall (append rtnall rtn)))) (if org-agenda-include-diary (progn @@ -13994,7 +15269,7 @@ NDAYS defaults to `org-agenda-ndays'." ; FIXME: this gives a timezone problem ; (insert (format-time-string org-agenda-date-format ; (calendar-time-from-absolute d 0)) "\n") - (put-text-property s (1- (point)) 'face 'org-level-3) + (put-text-property s (1- (point)) 'face 'org-agenda-structure) (put-text-property s (1- (point)) 'org-date-line t) (if todayp (put-text-property s (1- (point)) 'org-today t)) (if rtnall (insert @@ -14030,28 +15305,28 @@ NDAYS defaults to `org-agenda-ndays'." The prefix arg can be used to select a specific TODO keyword and limit the list to these. When using \\[universal-argument], you will be prompted for a keyword. A numeric prefix directly selects the Nth keyword in -`org-todo-keywords'." +`org-todo-keywords-1'." (interactive "P") (require 'calendar) (org-compile-prefix-format 'todo) (org-set-sorting-strategy 'todo) + (org-prepare-agenda "TODO") (let* ((today (time-to-days (current-time))) (date (calendar-gregorian-from-absolute today)) - (kwds org-todo-keywords) + (kwds org-todo-keywords-for-agenda) (completion-ignore-case t) (org-select-this-todo-keyword (if (stringp arg) arg (and arg (integerp arg) (> arg 0) - (nth (1- arg) org-todo-keywords)))) + (nth (1- arg) kwds)))) rtn rtnall files file pos) (when (equal arg '(4)) (setq org-select-this-todo-keyword - (completing-read "Keyword: " (mapcar 'list org-todo-keywords) - nil t))) + (completing-read "Keyword (or KWD1|K2D2|...): " + (mapcar 'list kwds) nil nil))) (and (equal 0 arg) (setq org-select-this-todo-keyword nil)) - (org-prepare-agenda) (org-set-local 'org-last-arg arg) - (org-set-local 'org-todo-keywords kwds) +;FIXME (org-set-local 'org-todo-keywords-for-agenda kwds) (setq org-agenda-redo-command '(org-todo-list (or current-prefix-arg org-last-arg))) (setq files (org-agenda-files) @@ -14063,23 +15338,25 @@ for a keyword. A numeric prefix directly selects the Nth keyword in (setq rtnall (append rtnall rtn)))) (if org-agenda-overriding-header (insert (org-add-props (copy-sequence org-agenda-overriding-header) - nil 'face 'org-level-3) "\n") + nil 'face 'org-agenda-structure) "\n") (insert "Global list of TODO items of type: ") (add-text-properties (point-min) (1- (point)) - (list 'face 'org-level-3)) + (list 'face 'org-agenda-structure)) (setq pos (point)) (insert (or org-select-this-todo-keyword "ALL") "\n") (add-text-properties pos (1- (point)) (list 'face 'org-warning)) (setq pos (point)) (unless org-agenda-multi - (insert - "Available with `N r': (0)ALL " - (let ((n 0)) - (mapconcat (lambda (x) - (format "(%d)%s" (setq n (1+ n)) x)) - org-todo-keywords " ")) - "\n")) - (add-text-properties pos (1- (point)) (list 'face 'org-level-3))) + (insert "Available with `N r': (0)ALL") + (let ((n 0) s) + (mapc (lambda (x) + (setq s (format "(%d)%s" (setq n (1+ n)) x)) + (if (> (+ (current-column) (string-width s) 1) (frame-width)) + (insert "\n ")) + (insert " " s)) + kwds)) + (insert "\n")) + (add-text-properties pos (1- (point)) (list 'face 'org-agenda-structure))) (when rtnall (insert (org-finalize-agenda-entries rtnall) "\n")) (goto-char (point-min)) @@ -14104,7 +15381,7 @@ The prefix arg TODO-ONLY limits the search to TODO entries." buffer) (setq matcher (org-make-tags-matcher match) match (car matcher) matcher (cdr matcher)) - (org-prepare-agenda) + (org-prepare-agenda (concat "TAGS " match)) (setq org-agenda-redo-command (list 'org-tags-view (list 'quote todo-only) (list 'if 'current-prefix-arg nil match))) @@ -14135,17 +15412,17 @@ The prefix arg TODO-ONLY limits the search to TODO entries." (setq rtnall (append rtnall rtn)))))))) (if org-agenda-overriding-header (insert (org-add-props (copy-sequence org-agenda-overriding-header) - nil 'face 'org-level-3) "\n") + nil 'face 'org-agenda-structure) "\n") (insert "Headlines with TAGS match: ") (add-text-properties (point-min) (1- (point)) - (list 'face 'org-level-3)) + (list 'face 'org-agenda-structure)) (setq pos (point)) (insert match "\n") (add-text-properties pos (1- (point)) (list 'face 'org-warning)) (setq pos (point)) (unless org-agenda-multi (insert "Press `C-u r' to search again with new search string\n")) - (add-text-properties pos (1- (point)) (list 'face 'org-level-3))) + (add-text-properties pos (1- (point)) (list 'face 'org-agenda-structure))) (when rtnall (insert (org-finalize-agenda-entries rtnall) "\n")) (goto-char (point-min)) @@ -14187,21 +15464,34 @@ MATCH is being ignored." (org-agenda-overriding-header "List of stuck projects: ") (matcher (nth 0 org-stuck-projects)) (todo (nth 1 org-stuck-projects)) - (tags (nth 2 org-stuck-projects)) + (todo-wds (if (member "*" todo) + (progn + (org-prepare-agenda-buffers (org-agenda-files)) + (org-delete-all + org-done-keywords-for-agenda + (copy-sequence org-todo-keywords-for-agenda))) + todo)) (todo-re (concat "^\\*+[ \t]+\\(" - (mapconcat 'identity todo "\\|") + (mapconcat 'identity todo-wds "\\|") "\\)\\>")) - (tags-re (concat "^\\*+.*:\\(" - (mapconcat 'identity tags "\\|") - "\\):[a-zA-Z0-9_@:]*[ \t]*$"))) - + (tags (nth 2 org-stuck-projects)) + (tags-re (if (member "*" tags) + "^\\*+.*:[a-zA-Z0-9_@]+:[ \t]*$" + (concat "^\\*+.*:\\(" + (mapconcat 'identity tags "\\|") + "\\):[a-zA-Z0-9_@:]*[ \t]*$"))) + (gen-re (nth 3 org-stuck-projects)) + (re-list + (delq nil + (list + (if todo todo-re) + (if tags tags-re) + (and gen-re (stringp gen-re) (string-match "\\S-" gen-re) + gen-re))))) (setq org-agenda-skip-regexp - (cond - ((and todo tags) - (concat todo-re "\\|" tags-re)) - (todo todo-re) - (tags tags-re) - (t (error "No information how to identify unstuck projects")))) + (if re-list + (mapconcat 'identity re-list "\\|") + (error "No information how to identify unstuck projects"))) (org-tags-view nil matcher) (with-current-buffer org-agenda-buffer-name (setq org-agenda-redo-command @@ -14247,7 +15537,8 @@ MATCH is being ignored." (lambda (x) (setq x (org-format-agenda-item "" x "Diary" nil 'time)) ;; Extend the text properties to the beginning of the line - (org-add-props x (text-properties-at (1- (length x)) x))) + (org-add-props x (text-properties-at (1- (length x)) x) + 'type "diary" 'date date)) entries))))) (defun org-agenda-cleanup-fancy-diary () @@ -14316,6 +15607,8 @@ items should be listed. The following arguments are allowed: date range matching the selected date. Deadlines will also be listed, on the expiration day. + :sexp FIXME + :deadline List any deadlines past due, or due within `org-deadline-warning-days'. The listing occurs only in the diary for *today*, not at any other date. If @@ -14340,10 +15633,10 @@ all files listed in `org-agenda-files' will be checked automatically: &%%(org-diary) If you don't give any arguments (as in the example above), the default -arguments (:deadline :scheduled :timestamp) are used. So the example above may -also be written as +arguments (:deadline :scheduled :timestamp :sexp) are used. +So the example above may also be written as - &%%(org-diary :deadline :timestamp :scheduled) + &%%(org-diary :deadline :timestamp :sexp :scheduled) The function expects the lisp variables `entry' and `date' to be provided by the caller, because this is how the calendar works. Don't use this @@ -14351,11 +15644,12 @@ function from a program - use `org-agenda-get-day-entries' instead." (org-agenda-maybe-reset-markers) (org-compile-prefix-format 'agenda) (org-set-sorting-strategy 'agenda) - (setq args (or args '(:deadline :scheduled :timestamp))) + (setq args (or args '(:deadline :scheduled :timestamp :sexp))) (let* ((files (if (and entry (stringp entry) (string-match "\\S-" entry)) (list entry) (org-agenda-files t))) file rtn results) + (org-prepare-agenda-buffers files) ;; If this is called during org-agenda, don't return any entries to ;; the calendar. Org Agenda will list these entries itself. (if org-disable-agenda-to-diary (setq files nil)) @@ -14373,7 +15667,7 @@ FILE is the path to a file to be checked for entries. DATE is date like the one returned by `calendar-current-date'. ARGS are symbols indicating which kind of entries should be extracted. For details about these, see the documentation of `org-diary'." - (setq args (or args '(:deadline :scheduled :timestamp))) + (setq args (or args '(:deadline :scheduled :timestamp :sexp))) (let* ((org-startup-folded nil) (org-startup-align-all-tables nil) (buffer (if (file-exists-p file) @@ -14406,6 +15700,9 @@ the documentation of `org-diary'." (setq results (append results rtn)) (setq rtn (org-agenda-get-timestamps)) (setq results (append results rtn))) + ((eq arg :sexp) + (setq rtn (org-agenda-get-sexps)) + (setq results (append results rtn))) ((eq arg :scheduled) (setq rtn (org-agenda-get-scheduled)) (setq results (append results rtn))) @@ -14447,15 +15744,20 @@ the documentation of `org-diary'." (let* ((props (list 'face nil 'done-face 'org-done 'org-not-done-regexp org-not-done-regexp + 'org-todo-regexp org-todo-regexp 'mouse-face 'highlight 'keymap org-agenda-keymap 'help-echo (format "mouse-2 or RET jump to org file %s" (abbreviate-file-name buffer-file-name)))) + ;; FIXME: get rid of the \n at some point but watch out (regexp (concat "[\n\r]\\*+ *\\(" (if org-select-this-todo-keyword - (concat "\\<\\(" org-select-this-todo-keyword - "\\)\\>") + (if (equal org-select-this-todo-keyword "*") + org-todo-regexp + (concat "\\<\\(" + (mapconcat 'identity (org-split-string org-select-this-todo-keyword "|") "\\|") + "\\)\\>")) org-not-done-regexp) "[^\n\r]*\\)")) marker priority category tags @@ -14481,16 +15783,11 @@ the documentation of `org-diary'." category (org-get-category) tags (org-get-tags-at (point)) txt (org-format-agenda-item "" (match-string 1) category tags) - priority - (+ (org-get-priority txt) - (if org-todo-kwd-priority-p - (- org-todo-kwd-max-priority -2 - (length - (member (match-string 2) org-todo-keywords))) - 1))) + priority (1+ (org-get-priority txt))) (org-add-props txt props 'org-marker marker 'org-hd-marker marker - 'priority priority 'org-category category) + 'priority priority 'org-category category + 'type "todo") (push txt ee) (if org-agenda-todo-list-sublevels (goto-char (match-end 1)) @@ -14504,38 +15801,61 @@ the documentation of `org-diary'." "Return the date stamp information for agenda display." (let* ((props (list 'face nil 'org-not-done-regexp org-not-done-regexp + 'org-todo-regexp org-todo-regexp 'mouse-face 'highlight 'keymap org-agenda-keymap 'help-echo (format "mouse-2 or RET jump to org file %s" (abbreviate-file-name buffer-file-name)))) - (regexp (regexp-quote - (substring - (format-time-string - (car org-time-stamp-formats) - (apply 'encode-time ; DATE bound by calendar - (list 0 0 0 (nth 1 date) (car date) (nth 2 date)))) - 0 11))) +;???? (regexp (regexp-quote +; (substring +; (format-time-string +; (car org-time-stamp-formats) +; (apply 'encode-time ; DATE bound by calendar +; (list 0 0 0 (nth 1 date) (car date) (nth 2 date)))) +; 0 11))) + (d1 (calendar-absolute-from-gregorian date)) + (regexp + (concat + (regexp-quote + (substring + (format-time-string + (car org-time-stamp-formats) + (apply 'encode-time ; DATE bound by calendar + (list 0 0 0 (nth 1 date) (car date) (nth 2 date)))) + 0 11)) + "\\|\\(<[0-9]+-[0-9]+-[0-9]+[^>\n]+?\\+[0-9]+[dwmy]>\\)" + "\\|\\(<%%\\(([^>\n]+)\\)>\\)")) marker hdmarker deadlinep scheduledp donep tmp priority category - ee txt timestr tags) + ee txt timestr tags b0 b3 e3) (goto-char (point-min)) (while (re-search-forward regexp nil t) + (setq b0 (match-beginning 0) + b3 (match-beginning 3) e3 (match-end 3)) (catch :skip - (and (save-match-data (org-at-date-range-p)) (throw :skip nil)) + (and (org-at-date-range-p) (throw :skip nil)) (org-agenda-skip) - (setq marker (org-agenda-new-marker (match-beginning 0)) - category (org-get-category (match-beginning 0)) + (if (and (match-end 1) + (not (= d1 (org-time-string-to-absolute (match-string 1) d1)))) + (throw :skip nil)) + (if (and e3 + (not (org-diary-sexp-entry (buffer-substring b3 e3) "" date))) + (throw :skip nil)) + (setq marker (org-agenda-new-marker b0) + category (org-get-category b0) tmp (buffer-substring (max (point-min) - (- (match-beginning 0) - org-ds-keyword-length)) - (match-beginning 0)) - timestr (buffer-substring (match-beginning 0) (point-at-eol)) + (- b0 org-ds-keyword-length)) + b0) + timestr (if b3 "" (buffer-substring b0 (point-at-eol))) deadlinep (string-match org-deadline-regexp tmp) scheduledp (string-match org-scheduled-regexp tmp) donep (org-entry-is-done-p)) (and org-agenda-skip-scheduled-if-done scheduledp donep (throw :skip t)) + (and org-agenda-skip-deadline-if-done + deadlinep donep + (throw :skip t)) (if (string-match ">" timestr) ;; substring should only run to end of time stamp (setq timestr (substring timestr 0 (match-end 0)))) @@ -14558,22 +15878,68 @@ the documentation of `org-diary'." (if deadlinep (org-add-props txt nil 'face (if donep 'org-done 'org-warning) + 'type "deadline" 'date date 'undone-face 'org-warning 'done-face 'org-done 'org-category category 'priority (+ 100 priority)) (if scheduledp (org-add-props txt nil 'face 'org-scheduled-today + 'type "scheduled" 'date date 'undone-face 'org-scheduled-today 'done-face 'org-done 'org-category category 'priority (+ 99 priority)) - (org-add-props txt nil 'priority priority 'org-category category))) + (org-add-props txt nil 'priority priority + 'org-category category 'date date + 'type "timestamp"))) (push txt ee)) (outline-next-heading))) (nreverse ee))) +(defun org-agenda-get-sexps () + "Return the sexp information for agenda display." + (require 'diary-lib) + (let* ((props (list 'face nil + 'mouse-face 'highlight + 'keymap org-agenda-keymap + 'help-echo + (format "mouse-2 or RET jump to org file %s" + (abbreviate-file-name buffer-file-name)))) + (regexp "^&?%%(") + marker category ee txt tags entry result beg b sexp sexp-entry) + (goto-char (point-min)) + (while (re-search-forward regexp nil t) + (catch :skip + (org-agenda-skip) + (setq beg (match-beginning 0)) + (goto-char (1- (match-end 0))) + (setq b (point)) + (forward-sexp 1) + (setq sexp (buffer-substring b (point))) + (setq sexp-entry (if (looking-at "[ \t]*\\(\\S-.*\\)") + (org-trim (match-string 1)) + "")) + (setq result (org-diary-sexp-entry sexp sexp-entry date)) + (when result + (setq marker (org-agenda-new-marker beg) + category (org-get-category beg)) + + (if (string-match "\\S-" result) + (setq txt result) + (setq txt "SEXP entry returned empty string")) + + (setq txt (org-format-agenda-item + "" txt category tags 'time)) + (org-add-props txt props 'org-marker marker) + (org-add-props txt nil + 'org-category category 'date date + 'type "sexp") + (push txt ee)))) + (nreverse ee))) + (defun org-agenda-get-closed () "Return the logged TODO entries for agenda display." (let* ((props (list 'mouse-face 'highlight 'org-not-done-regexp org-not-done-regexp + 'org-todo-regexp org-todo-regexp 'keymap org-agenda-keymap 'help-echo (format "mouse-2 or RET jump to org file %s" @@ -14617,6 +15983,7 @@ the documentation of `org-diary'." (org-add-props txt props 'org-marker marker 'org-hd-marker hdmarker 'face 'org-done 'priority priority 'org-category category + 'type "closed" 'date date 'undone-face 'org-warning 'done-face 'org-done) (push txt ee)) (outline-next-heading))) @@ -14627,6 +15994,7 @@ the documentation of `org-diary'." (let* ((wdays org-deadline-warning-days) (props (list 'mouse-face 'highlight 'org-not-done-regexp org-not-done-regexp + 'org-todo-regexp org-todo-regexp 'keymap org-agenda-keymap 'help-echo (format "mouse-2 or RET jump to org file %s" @@ -14641,8 +16009,9 @@ the documentation of `org-diary'." (catch :skip (org-agenda-skip) (setq pos (1- (match-beginning 1)) - d2 (time-to-days - (org-time-string-to-time (match-string 1))) +;??? d2 (time-to-days +;??? (org-time-string-to-time (match-string 1))) + d2 (org-time-string-to-absolute (match-string 1) d1) diff (- d2 d1)) ;; When to show a deadline in the calendar: ;; If the expiration is within wdays warning time. @@ -14673,6 +16042,7 @@ the documentation of `org-diary'." 'org-hd-marker (org-agenda-new-marker pos1) 'priority (+ (- 10 diff) (org-get-priority txt)) 'org-category category + 'type "upcoming-deadline" 'date d2 'face face 'undone-face face 'done-face 'org-done) (push txt ee)))))) ee)) @@ -14681,6 +16051,7 @@ the documentation of `org-diary'." "Return the scheduled information for agenda display." (let* ((props (list 'face 'org-scheduled-previously 'org-not-done-regexp org-not-done-regexp + 'org-todo-regexp org-todo-regexp 'undone-face 'org-scheduled-previously 'done-face 'org-done 'mouse-face 'highlight @@ -14698,8 +16069,9 @@ the documentation of `org-diary'." (catch :skip (org-agenda-skip) (setq pos (1- (match-beginning 1)) - d2 (time-to-days - (org-time-string-to-time (match-string 1))) + d2 (org-time-string-to-absolute (match-string 1) d1) +;??? d2 (time-to-days +;??? (org-time-string-to-time (match-string 1))) diff (- d2 d1)) ;; When to show a scheduled item in the calendar: ;; If it is on or past the date. @@ -14724,6 +16096,7 @@ the documentation of `org-diary'." (org-add-props txt props 'org-marker (org-agenda-new-marker pos) 'org-hd-marker (org-agenda-new-marker pos1) + 'type "past-scheduled" 'date d2 'priority (+ (- 5 diff) (org-get-priority txt)) 'org-category category) (push txt ee)))))) @@ -14733,6 +16106,7 @@ the documentation of `org-diary'." "Return the date-range information for agenda display." (let* ((props (list 'face nil 'org-not-done-regexp org-not-done-regexp + 'org-todo-regexp org-todo-regexp 'mouse-face 'highlight 'keymap org-agenda-keymap 'help-echo @@ -14771,6 +16145,7 @@ the documentation of `org-diary'." (setq txt org-agenda-no-heading-message)) (org-add-props txt props 'org-marker marker 'org-hd-marker hdmarker + 'type "block" 'date date 'priority (org-get-priority txt) 'org-category category) (push txt ee))) (goto-char pos))) @@ -14865,8 +16240,8 @@ only the correctly processes TXT should be returned - this is used by (when (string-match "\\([ \t]+\\)\\(:[a-zA-Z_@0-9:]+:\\)[ \t]*$" txt) ;; Tags are in the string - (if (or (eq org-agenda-remove-tags-when-in-prefix t) - (and org-agenda-remove-tags-when-in-prefix + (if (or (eq org-agenda-remove-tags t) + (and org-agenda-remove-tags org-prefix-has-tag)) (setq txt (replace-match "" t t txt)) (setq txt (replace-match @@ -14891,9 +16266,12 @@ only the correctly processes TXT should be returned - this is used by 'org-category (downcase category) 'tags tags 'prefix-length (- (length rtn) (length txt)) 'time-of-day time-of-day + 'txt txt + 'time time + 'extra extra 'dotime dotime)))) -(defvar org-agenda-sorting-strategy) +(defvar org-agenda-sorting-strategy) ;; FIXME: can be removed? (defvar org-agenda-sorting-strategy-selected nil) (defun org-agenda-add-time-grid-maybe (list ndays todayp) @@ -15243,6 +16621,7 @@ With prefix ARG, go back that many times `org-agenda-ndays'." "Detach overlay INDEX." (funcall (if (featurep 'xemacs) 'detach-extent 'delete-overlay) org-hl)) +;; FIXME this is currently not used. (defun org-highlight-until-next-command (beg end &optional buffer) (org-highlight beg end buffer) (add-hook 'pre-command-hook 'org-unhighlight-once)) @@ -15350,12 +16729,13 @@ and by additional input from the age of a schedules or deadline entry." (org-agenda-error))) (buffer (marker-buffer marker)) (pos (marker-position marker)) + (type (get-text-property (point) 'type)) dbeg dend (n 0) conf) (org-with-remote-undo buffer (with-current-buffer buffer (save-excursion (goto-char pos) - (if (org-mode-p) + (if (and (org-mode-p) (not (member type '("sexp")))) (setq dbeg (progn (org-back-to-heading t) (point)) dend (org-end-of-subtree t)) (setq dbeg (point-at-bol) @@ -15502,6 +16882,16 @@ dedicated frame)." "Marker pointing to the headline that last changed its TODO state by a remote command from the agenda.") +(defun org-agenda-todo-nextset () + "Switch TODO entry to next sequence." + (interactive) + (org-agenda-todo 'nextset)) + +(defun org-agenda-todo-previousset () + "Switch TODO entry to previous sequence." + (interactive) + (org-agenda-todo 'previousset)) + (defun org-agenda-todo (&optional arg) "Cycle TODO state of line at point, also in Org-mode file. This changes the line at point, all other lines in the agenda referring to @@ -15656,7 +17046,7 @@ the tags of the current headline come last." (org-up-heading-all 1)) (error nil)))) tags))) - + ;; FIXME: should fix the tags property of the agenda line. (defun org-agenda-set-tags () "Set tags for the current headline." @@ -15673,10 +17063,12 @@ the tags of the current headline come last." (with-current-buffer buffer (widen) (goto-char pos) - (org-show-context 'agenda) + (save-excursion + (org-show-context 'agenda)) (save-excursion (and (outline-next-heading) (org-flag-heading nil))) ; show the next heading + (goto-char pos) (call-interactively 'org-set-tags) (end-of-line 1) (setq newhead (org-get-heading))) @@ -15992,11 +17384,11 @@ This is a command that has to be installed in `calendar-mode-map'." (defvar org-cdlatex-mode-map (make-sparse-keymap) "Keymap for the minor `org-cdlatex-mode'.") -(define-key org-cdlatex-mode-map "_" 'org-cdlatex-underscore-caret) -(define-key org-cdlatex-mode-map "^" 'org-cdlatex-underscore-caret) -(define-key org-cdlatex-mode-map "`" 'cdlatex-math-symbol) -(define-key org-cdlatex-mode-map "'" 'org-cdlatex-math-modify) -(define-key org-cdlatex-mode-map "\C-c{" 'cdlatex-environment) +(org-defkey org-cdlatex-mode-map "_" 'org-cdlatex-underscore-caret) +(org-defkey org-cdlatex-mode-map "^" 'org-cdlatex-underscore-caret) +(org-defkey org-cdlatex-mode-map "`" 'cdlatex-math-symbol) +(org-defkey org-cdlatex-mode-map "'" 'org-cdlatex-math-modify) +(org-defkey org-cdlatex-mode-map "\C-c{" 'cdlatex-environment) (defvar org-cdlatex-texmathp-advice-is-done nil "Flag remembering if we have applied the advice to texmathp already.") @@ -16064,7 +17456,7 @@ looks only before point, not after." (while (string-match re str start) (cond ((= (match-end 0) (length str)) - (throw 'exit (cons "$" (+ lim (match-beginning 0))))) + (throw 'exit (cons "$" (+ lim (match-beginning 0) 1)))) ((= (match-end 0) (- (length str) 5)) (throw 'exit nil)) (t (setq start (match-end 0)))))) @@ -16156,11 +17548,12 @@ The images can be removed again with \\[org-ctrl-c-ctrl-c]." "Creating images for entry...%s")))) (message msg "") (narrow-to-region beg end) + (goto-char beg) (org-format-latex (concat "ltxpng/" (file-name-sans-extension (file-name-nondirectory buffer-file-name))) - default-directory 'overlays msg at) + default-directory 'overlays msg at 'forbuffer) (message msg "done. Use `C-c C-c' to remove images."))))) (defvar org-latex-regexps @@ -16173,7 +17566,7 @@ The images can be removed again with \\[org-ctrl-c-ctrl-c]." ("$$" "\\$\\$[^\000]*?\\$\\$" 0 t)) "Regular expressions for matching embedded LaTeX.") -(defun org-format-latex (prefix &optional dir overlays msg at) +(defun org-format-latex (prefix &optional dir overlays msg at forbuffer) "Replace LaTeX fragments with links to an image, and produce images." (if (and overlays (fboundp 'clear-image-cache)) (clear-image-cache)) (let* ((prefixnodir (file-name-nondirectory prefix)) @@ -16210,7 +17603,7 @@ The images can be removed again with \\[org-ctrl-c-ctrl-c]." (setq checkdir t) (or (file-directory-p todir) (make-directory todir))) (org-create-formula-image - txt movefile opt) + txt movefile opt forbuffer) (if overlays (progn (setq ov (org-make-overlay beg end)) @@ -16229,31 +17622,27 @@ The images can be removed again with \\[org-ctrl-c-ctrl-c]." (insert link)))))))) ;; This function borrows from Ganesh Swami's latex2png.el -(defun org-create-formula-image (string tofile options) +(defun org-create-formula-image (string tofile options buffer) (let* ((tmpdir (if (featurep 'xemacs) (temp-directory) temporary-file-directory)) (texfilebase (make-temp-name (expand-file-name "orgtex" tmpdir))) - -;(texfilebase (make-temp-file "orgtex")) -; (dummy (delete-file texfilebase)) (texfile (concat texfilebase ".tex")) (dvifile (concat texfilebase ".dvi")) (pngfile (concat texfilebase ".png")) - (scale (number-to-string (* 1000 (or (plist-get options :scale) 1.0)))) - (fg (or (plist-get options :foreground) "Black")) - (bg (or (plist-get options :background) "Transparent"))) + (fnh (face-attribute 'default :height nil)) + (scale (or (plist-get options (if buffer :scale :html-scale)) 1.0)) + (dpi (number-to-string (* scale (floor (* 0.9 (if buffer fnh 140.)))))) + (fg (or (plist-get options (if buffer :foreground :html-foreground)) + "Black")) + (bg (or (plist-get options (if buffer :background :html-background)) + "Transparent"))) + (if (eq fg 'default) (setq fg (org-dvipng-color :foreground))) + (if (eq bg 'default) (setq bg (org-dvipng-color :background))) (with-temp-file texfile - (insert "\\documentclass{article} -\\usepackage{fullpage} -\\usepackage{amssymb} -\\usepackage[usenames]{color} -\\usepackage{amsmath} -\\usepackage{latexsym} -\\usepackage[mathscr]{eucal} -\\pagestyle{empty} -\\begin{document}\n" string "\n\\end{document}\n")) + (insert org-format-latex-header + "\n\\begin{document}\n" string "\n\\end{document}\n")) (let ((dir default-directory)) (condition-case nil (progn @@ -16265,7 +17654,9 @@ The images can be removed again with \\[org-ctrl-c-ctrl-c]." (progn (message "Failed to create dvi file from %s" texfile) nil) (call-process "dvipng" nil nil nil "-E" "-fg" fg "-bg" bg - "-x" scale "-y" scale "-T" "tight" + "-D" dpi + ;;"-x" scale "-y" scale + "-T" "tight" "-o" pngfile dvifile) (if (not (file-exists-p pngfile)) @@ -16276,6 +17667,16 @@ The images can be removed again with \\[org-ctrl-c-ctrl-c]." (delete-file (concat texfilebase e))) pngfile)))) +(defun org-dvipng-color (attr) + "Return an rgb color specification for dvipng." + (apply 'format "rgb %s %s %s" + (mapcar 'org-normalize-color + (color-values (face-attribute 'default attr nil))))) + +(defun org-normalize-color (value) + "Return string to be used as color value for an RGB component." + (format "%g" (/ value 65535.0))) + ;;;; Exporting ;;; Variables, constants, and parameter plists @@ -16300,16 +17701,19 @@ The images can be removed again with \\[org-ctrl-c-ctrl-c]." (:headline-levels . org-export-headline-levels) (:section-numbers . org-export-with-section-numbers) (:table-of-contents . org-export-with-toc) + (:preserve-breaks . org-export-preserve-breaks) (:archived-trees . org-export-with-archived-trees) (:emphasize . org-export-with-emphasize) (:sub-superscript . org-export-with-sub-superscripts) (:TeX-macros . org-export-with-TeX-macros) (:LaTeX-fragments . org-export-with-LaTeX-fragments) + (:skip-before-1st-heading . org-export-skip-text-before-1st-heading) (:fixed-width . org-export-with-fixed-width) (:timestamps . org-export-with-timestamps) (:tables . org-export-with-tables) (:table-auto-headline . org-export-highlight-first-table-line) (:style . org-export-html-style) + (:agenda-style . org-agenda-export-html-style) ;; FIXME: Does this work???? (:convert-org-links . org-export-html-link-org-files-as-html) (:inline-images . org-export-html-inline-images) (:expand-quoted-html . org-export-html-expand) @@ -16359,7 +17763,8 @@ The images can be removed again with \\[org-ctrl-c-ctrl-c]." ("^" . :sub-superscript) ("*" . :emphasize) ("TeX" . :TeX-macros) - ("LaTeX" . :LaTeX-fragments))) + ("LaTeX" . :LaTeX-fragments) + ("skip" . :skip-before-1st-heading))) o) (while (setq o (pop op)) (if (string-match (concat (regexp-quote (car o)) @@ -16377,19 +17782,11 @@ The images can be removed again with \\[org-ctrl-c-ctrl-c]." val))) dir)) -(defun org-export-find-first-heading-line (list) - "Remove all lines from LIST which are before the first headline." - (let ((orig-list list) - (re (concat "^" outline-regexp))) - (while (and list - (not (string-match re (car list)))) - (pop list)) - (or list orig-list))) - (defun org-skip-comments (lines) "Skip lines starting with \"#\" and subtrees starting with COMMENT." (let ((re1 (concat "^\\(\\*+\\)[ \t]+" org-comment-string)) (re2 "^\\(\\*+\\)[ \t\n\r]") + (case-fold-search nil) rtn line level) (while (setq line (pop lines)) (cond @@ -16420,6 +17817,7 @@ The images can be removed again with \\[org-ctrl-c-ctrl-c]." \[a] export as ASCII \[h] export as HTML +\[H] export as HTML to temporary buffer \[b] export as HTML and browse immediately \[x] export as XOXO @@ -16437,6 +17835,8 @@ The images can be removed again with \\[org-ctrl-c-ctrl-c]." (?a . org-export-as-ascii) (?h . org-export-as-html) (?b . org-export-as-html-and-open) + (?H . org-export-as-html-to-buffer) + (?R . org-export-region-as-html) (?x . org-export-as-xoxo) (?i . org-export-icalendar-this-file) (?I . org-export-icalendar-all-agenda-files) @@ -16465,6 +17865,7 @@ The images can be removed again with \\[org-ctrl-c-ctrl-c]." ("curren") ("yen") ("brvbar") + ("vert" . "|") ("sect") ("uml") ("copy") @@ -16766,26 +18167,44 @@ translations. There is currently no way for users to extend this.") (re-angle-link (concat "\\([^[]\\)" org-angle-link-re)) (re-archive (concat ":" org-archive-tag ":")) (re-quote (concat "^\\*+[ \t]+" org-quote-string "\\>")) - (htmlp (memq :for-html parameters)) + (htmlp (plist-get parameters :for-html)) (outline-regexp "\\*+") - rtn) + a b + rtn p) (save-excursion (set-buffer (get-buffer-create " org-mode-tmp")) (erase-buffer) (insert string) + ;; Remove license-to-kill stuff + (while (setq p (text-property-any (point-min) (point-max) + :org-license-to-kill t)) + (delete-region p (next-single-property-change p :org-license-to-kill))) + (let ((org-inhibit-startup t)) (org-mode)) (untabify (point-min) (point-max)) + ;; Get the correct stuff before the first headline + (when (plist-get parameters :skip-before-1st-heading) + (goto-char (point-min)) + (when (re-search-forward "^\\*+[ \t]" nil t) + (delete-region (point-min) (match-beginning 0)) + (goto-char (point-min)) + (insert "\n"))) + (when (plist-get parameters :add-text) + (goto-char (point-min)) + (insert (plist-get parameters :add-text) "\n")) + ;; Get rid of archived trees (when (not (eq org-export-with-archived-trees t)) (goto-char (point-min)) (while (re-search-forward re-archive nil t) - (if (not (org-on-heading-p)) + (if (not (org-on-heading-p t)) (org-end-of-subtree t) (beginning-of-line 1) - (delete-region - (if org-export-with-archived-trees (1+ (point-at-eol)) (point)) - (org-end-of-subtree t))))) + (setq a (if org-export-with-archived-trees + (1+ (point-at-eol)) (point)) + b (org-end-of-subtree t)) + (if (> b a) (delete-region a b))))) ;; Protect stuff from HTML processing (goto-char (point-min)) @@ -16796,12 +18215,12 @@ translations. There is currently no way for users to extend this.") (goto-char (point-min)) (while (re-search-forward "^#\\+HTML:[ \t]*\\(.*\\)" nil t) (replace-match "\\1" t) - (add-text-properties + (add-text-properties (point-at-bol) (min (1+ (point-at-eol)) (point-max)) '(org-protected t)))) (goto-char (point-min)) (while (re-search-forward - "^#\\+BEGIN_HTML\\>.*\\(\n.*\\)*?\n#\\+END_HTML\\>.*\n?" nil t) + "^#\\+BEGIN_HTML\\>.*\\(\\(\n.*\\)*?\n\\)#\\+END_HTML\\>.*\n?" nil t) (if htmlp (add-text-properties (match-beginning 1) (1+ (match-end 1)) '(org-protected t)) @@ -16839,7 +18258,7 @@ translations. There is currently no way for users to extend this.") (goto-char (match-beginning 0)))) ;; Convert LaTeX fragments to images - (when (memq :LaTeX-fragments parameters) + (when (plist-get parameters :LaTeX-fragments) (org-format-latex (concat "ltxpng/" (file-name-sans-extension (file-name-nondirectory @@ -16851,6 +18270,7 @@ translations. There is currently no way for users to extend this.") ;; Expand link abbreviations (goto-char (point-min)) (while (re-search-forward re-plain-link nil t) + (goto-char (1- (match-end 0))) (org-if-unprotected (replace-match (concat @@ -16858,6 +18278,7 @@ translations. There is currently no way for users to extend this.") t t))) (goto-char (point-min)) (while (re-search-forward re-angle-link nil t) + (goto-char (1- (match-end 0))) (org-if-unprotected (replace-match (concat @@ -16877,17 +18298,35 @@ translations. There is currently no way for users to extend this.") t t))) ;; Find multiline emphasis and put them into single line - (when (memq :emph-multiline parameters) + (when (plist-get parameters :emph-multiline) (goto-char (point-min)) (while (re-search-forward org-emph-re nil t) - (org-if-unprotected - (subst-char-in-region (match-beginning 0) (match-end 0) ?\n ?\ t) - (goto-char (1- (match-end 0)))))) + (if (not (= (char-after (match-beginning 3)) + (char-after (match-beginning 4)))) + (org-if-unprotected + (subst-char-in-region (match-beginning 0) (match-end 0) + ?\n ?\ t) + (goto-char (1- (match-end 0)))) + (goto-char (1+ (match-beginning 0)))))) (setq rtn (buffer-string))) (kill-buffer " org-mode-tmp") rtn)) +(defun org-export-grab-title-from-buffer () + "Get a title for the current document, from looking at the buffer." + (let (buffer-read-only) + (save-excursion + (goto-char (point-min)) + (let ((end (save-excursion (outline-next-heading) (point)))) + (when (re-search-forward "^[ \t]*[^# \t\r\n].*\n" end t) + ;; Mark the line so that it will not be exported as normal text. + (org-unmodified + (add-text-properties (match-beginning 0) (match-end 0) + (list :org-license-to-kill t))) + ;; Return the title string + (org-trim (match-string 0))))))) + (defun org-solidify-link-text (s &optional alist) "Take link text and make a safe target out of it." (save-match-data @@ -16959,16 +18398,7 @@ underlined headlines. The default is 3." (setq-default org-todo-line-regexp org-todo-line-regexp) (let* ((opt-plist (org-combine-plists (org-default-export-plist) (org-infile-export-plist))) - (region - (buffer-substring - (if (org-region-active-p) (region-beginning) (point-min)) - (if (org-region-active-p) (region-end) (point-max)))) (custom-times org-display-custom-times) - (lines (org-export-find-first-heading-line - (org-skip-comments - (org-split-string - (org-cleaned-string-for-export region) - "[\r\n]")))) (org-ascii-current-indentation '(0 . 0)) (level 0) line txt (umax nil) @@ -16986,15 +18416,36 @@ underlined headlines. The default is 3." (time (format-time-string "%X" (org-current-time))) (author (plist-get opt-plist :author)) (title (or (plist-get opt-plist :title) + (and (not + (plist-get opt-plist :skip-before-1st-heading)) + (org-export-grab-title-from-buffer)) (file-name-sans-extension (file-name-nondirectory buffer-file-name)))) (email (plist-get opt-plist :email)) (language (plist-get opt-plist :language)) (quote-re0 (concat "^[ \t]*" org-quote-string "\\>")) ; (quote-re (concat "^\\(\\*+\\)\\([ \t]*" org-quote-string "\\>\\)")) - (text nil) (todo nil) - (lang-words nil)) + (lang-words nil) + (region + (buffer-substring + (if (org-region-active-p) (region-beginning) (point-min)) + (if (org-region-active-p) (region-end) (point-max)))) + (lines (org-skip-comments + (org-split-string + (org-cleaned-string-for-export + region + :skip-before-1st-heading + (plist-get opt-plist :skip-before-1st-heading) + :add-text (plist-get opt-plist :text)) + "[\r\n]"))) + thetoc have-headings first-heading-pos + table-open table-buffer) + + (let (buffer-read-only) + (org-unmodified + (remove-text-properties (point-min) (point-max) + '(:org-license-to-kill t)))) (setq org-last-level 1) (org-init-section-numbers) @@ -17028,27 +18479,27 @@ underlined headlines. The default is 3." "\n"))) (if (and date time) (insert (concat (nth 2 lang-words) ": " date " " time "\n"))) - (if text (insert (concat (org-html-expand-for-ascii text) "\n\n"))) (insert "\n\n") (if org-export-with-toc (progn - (insert (nth 3 lang-words) "\n" - (make-string (length (nth 3 lang-words)) ?=) "\n") + (push (concat (nth 3 lang-words) "\n") thetoc) + (push (concat (make-string (length (nth 3 lang-words)) ?=) "\n") thetoc) (mapcar '(lambda (line) (if (string-match org-todo-line-regexp line) ;; This is a headline (progn + (setq have-headings t) (setq level (- (match-end 1) (match-beginning 1)) level (org-tr-level level) txt (match-string 3 line) todo (or (and org-export-mark-todo-in-toc (match-beginning 2) - (not (equal (match-string 2 line) - org-done-string))) + (not (member (match-string 2 line) + org-done-keywords))) ; TODO, not DONE (and org-export-mark-todo-in-toc (= level umax-toc) @@ -17067,12 +18518,15 @@ underlined headlines. The default is 3." " " txt))) (if (<= level umax-toc) (progn - (insert - (make-string (* (1- level) 4) ?\ ) - (format (if todo "%s (*)\n" "%s\n") txt)) + (push + (concat + (make-string (* (1- level) 4) ?\ ) + (format (if todo "%s (*)\n" "%s\n") txt)) + thetoc) (setq org-last-level level)) )))) - lines))) + lines) + (setq thetoc (if have-headings (nreverse thetoc) nil)))) (org-init-section-numbers) (while (setq line (pop lines)) @@ -17091,12 +18545,44 @@ underlined headlines. The default is 3." (cond ((string-match "^\\(\\*+\\)[ \t]*\\(.*\\)" line) ;; a Headline + (setq first-heading-pos (or first-heading-pos (point))) (setq level (org-tr-level (- (match-end 1) (match-beginning 1))) txt (match-string 2 line)) (org-ascii-level-start level txt umax lines)) + + ((and org-export-with-tables + (string-match "^\\([ \t]*\\)\\(|\\|\\+-+\\+\\)" line)) + (if (not table-open) + ;; New table starts + (setq table-open t table-buffer nil)) + ;; Accumulate lines + (setq table-buffer (cons line table-buffer)) + (when (or (not lines) + (not (string-match "^\\([ \t]*\\)\\(|\\|\\+-+\\+\\)" + (car lines)))) + (setq table-open nil + table-buffer (nreverse table-buffer)) + (insert (mapconcat + (lambda (x) + (org-fix-indentation x org-ascii-current-indentation)) + (org-format-table-ascii table-buffer) + "\n") "\n"))) (t (insert (org-fix-indentation line org-ascii-current-indentation) "\n")))) (normal-mode) + + ;; insert the table of contents + (when thetoc + (goto-char (point-min)) + (if (re-search-forward "^[ \t]*\\[TABLE-OF-CONTENTS\\][ \t]*$" nil t) + (progn + (goto-char (match-beginning 0)) + (replace-match "")) + (goto-char first-heading-pos)) + (mapc 'insert thetoc) + (or (looking-at "[ \t]*\n[ \t]*\n") + (insert "\n\n"))) + (save-buffer) ;; remove display and invisible chars (let (beg end) @@ -17124,8 +18610,8 @@ underlined headlines. The default is 3." (progn (setq lv (- (match-end 1) (match-beginning 1)) todo (and (match-beginning 2) - (not (equal (match-string 2 line) - org-done-string)))) + (not (member (match-string 2 line) + org-done-keywords)))) ; TODO, not DONE (if (<= lv level) (throw 'exit nil)) (if todo (throw 'exit t)))))))) @@ -17187,7 +18673,7 @@ continue to use it. The prefix arg ARG is passed through to the exporting command." (interactive (list (progn - (message "Export visible: [a]SCII [h]tml [b]rowse HTML [x]OXO [ ]keep buffer") + (message "Export visible: [a]SCII [h]tml [b]rowse HTML [H/R]uffer with HTML [x]OXO [ ]keep buffer") (read-char-exclusive)) current-prefix-arg)) (if (not (member type '(?a ?\C-a ?b ?\C-b ?h ?x ?\ ))) @@ -17198,6 +18684,8 @@ command." (?b . org-export-as-html-and-open) (?\C-b . org-export-as-html-and-open) (?h . org-export-as-html) + (?H . org-export-as-html-to-buffer) + (?R . org-export-region-as-html) (?x . org-export-as-xoxo))))) (keepp (equal type ?\ )) (file buffer-file-name) @@ -17253,10 +18741,11 @@ Does include HTML export options as well as TODO and CATEGORY stuff." #+EMAIL: %s #+LANGUAGE: %s #+TEXT: Some descriptive text to be emitted. Several lines OK. -#+OPTIONS: H:%d num:%s toc:%s \\n:%s @:%s ::%s |:%s ^:%s *:%s TeX:%s LaTeX:%s +#+OPTIONS: H:%d num:%s toc:%s \\n:%s @:%s ::%s |:%s ^:%s *:%s TeX:%s LaTeX:%s skip:%s #+CATEGORY: %s #+SEQ_TODO: %s #+TYP_TODO: %s +#+PRIORITIES: %c %c %c #+STARTUP: %s %s %s %s %s #+TAGS: %s #+ARCHIVE: %s @@ -17274,13 +18763,11 @@ Does include HTML export options as well as TODO and CATEGORY stuff." org-export-with-emphasize org-export-with-TeX-macros org-export-with-LaTeX-fragments + org-export-skip-text-before-1st-heading (file-name-nondirectory buffer-file-name) - (if (equal org-todo-interpretation 'sequence) - (mapconcat 'identity org-todo-keywords " ") - "TODO FEEDBACK VERIFY DONE") - (if (equal org-todo-interpretation 'type) - (mapconcat 'identity org-todo-keywords " ") - "Me Jason Marie DONE") + "TODO FEEDBACK VERIFY DONE" + "Me Jason Marie DONE" + org-highest-priority org-lowest-priority org-default-priority (cdr (assoc org-startup-folded '((nil . "showall") (t . "overview") (content . "content")))) (if org-odd-levels-only "odd" "oddeven") @@ -17372,19 +18859,96 @@ emacs --batch --visit=MyFile --funcall org-export-as-html-batch" (org-export-as-html org-export-headline-levels 'hidden)) -(defun org-export-as-html (arg &optional hidden ext-plist) +(defun org-export-as-html-to-buffer (arg) + "Call `org-exort-as-html` with output to a temporary buffer. +No file is created. The prefix ARG is passed through to `org-export-as-html'." + (interactive "P") + (org-export-as-html arg nil nil "*Org HTML Export*") + (switch-to-buffer-other-window "*Org HTML Export*")) + +(defun org-replace-region-by-html (beg end) + "Assume the current region has org-mode syntax, and convert it to HTML. +This can be used in any buffer. For example, you could write an +itemized list in org-mode syntax in an HTML buffer and then use this +command to convert it." + (interactive "r") + (let (reg html buf) + (if (org-mode-p) + (setq html (org-export-region-as-html + beg end t 'string)) + (setq reg (buffer-substring beg end) + buf (get-buffer-create "*Org tmp*")) + (save-excursion + (set-buffer buf) + (erase-buffer) + (insert reg) + (org-mode) + (setq html (org-export-region-as-html + (point-min) (point-max) t 'string))) + (kill-buffer buf)) + (delete-region beg end) + (insert html))) + +(defun org-export-region-as-html (beg end &optional body-only buffer) + "Convert region from BEG to END in org-mode buffer to HTML. +If prefix arg BODY-ONLY is set, omit file header, footer, and table of +contents, and only produce the region of converted text, useful for +cut-and-paste operations. +If BUFFER is a buffer or a string, use/create that buffer as a target +of the converted HTML. If BUFFER is the symbol `string', return the +produced HTML as a string and leave not buffer behind. For example, +a Lisp program could call this function in the following way: + + (setq html (org-export-region-as-html beg end t 'string)) + +When called interactively, the output buffer is selected, and shown +in a window. A non-interactive call will only retunr the buffer." + (interactive "r\nP") + (when (interactive-p) + (setq buffer "*Org HTML EXPORT*")) + (let ((transient-mark-mode t) (zmacs-regions t) + rtn) + (goto-char end) + (set-mark (point)) ;; to activate the region + (goto-char beg) + (setq rtn (org-export-as-html + nil nil nil + buffer body-only)) + (if (fboundp 'deactivate-mark) (deactivate-mark)) + (if (and (interactive-p) (bufferp rtn)) + (switch-to-buffer-other-window rtn) + rtn))) + +(defun org-export-as-html (arg &optional hidden ext-plist + to-buffer body-only) "Export the outline as a pretty HTML file. -If there is an active region, export only the region. -The prefix ARG specifies how many levels of the outline should become -headlines. The default is 3. Lower levels will become bulleted lists. -When HIDDEN is non-nil, don't display the HTML buffer. +If there is an active region, export only the region. The prefix +ARG specifies how many levels of the outline should become +headlines. The default is 3. Lower levels will become bulleted +lists. When HIDDEN is non-nil, don't display the HTML buffer. EXT-PLIST is a property list with external parameters overriding -org-mode's default settings, but still inferior to file-local settings." +org-mode's default settings, but still inferior to file-local +settings. When TO-BUFFER is non-nil, create a buffer with that +name and export to that buffer. If TO-BUFFER is the symbol `string', +don't leave any buffer behind but just return the resulting HTML as +a string. When BODY-ONLY is set, don't produce the file header and footer, +simply return the content of <body>...</body>, without even +the body tags themselves." (interactive "P") + + ;; Make sure we have a file name when we need it. + (when (and (not (or to-buffer body-only)) + (not buffer-file-name)) + (if (buffer-base-buffer) + (org-set-local 'buffer-file-name + (with-current-buffer (buffer-base-buffer) + buffer-file-name)) + (error "Need a file name to be able to export."))) + (message "Exporting...") (setq-default org-todo-line-regexp org-todo-line-regexp) (setq-default org-deadline-line-regexp org-deadline-line-regexp) - (setq-default org-done-string org-done-string) + (setq-default org-done-keywords org-done-keywords) (setq-default org-maybe-keyword-time-regexp org-maybe-keyword-time-regexp) (let* ((opt-plist (org-combine-plists (org-default-export-plist) ext-plist @@ -17392,42 +18956,42 @@ org-mode's default settings, but still inferior to file-local settings." (style (plist-get opt-plist :style)) (link-validate (plist-get opt-plist :link-validation-function)) - valid + valid thetoc have-headings first-heading-pos (odd org-odd-levels-only) (region-p (org-region-active-p)) - (region - (buffer-substring - (if region-p (region-beginning) (point-min)) - (if region-p (region-end) (point-max)))) ;; The following two are dynamically scoped into other ;; routines below. (org-current-export-dir (org-export-directory :html opt-plist)) (org-current-export-file buffer-file-name) - (all_lines - (org-skip-comments (org-split-string - (org-cleaned-string-for-export - region :emph-multiline :for-html - (if (plist-get opt-plist :LaTeX-fragments) - :LaTeX-fragments)) - "[\r\n]"))) - (lines (org-export-find-first-heading-line all_lines)) (level 0) (line "") (origline "") txt todo (umax nil) (umax-toc nil) - (filename (concat (file-name-as-directory - (org-export-directory :html opt-plist)) - (file-name-sans-extension - (file-name-nondirectory buffer-file-name)) - ".html")) - (current-dir (file-name-directory buffer-file-name)) - (buffer (find-file-noselect filename)) + (filename (if to-buffer nil + (concat (file-name-as-directory + (org-export-directory :html opt-plist)) + (file-name-sans-extension + (file-name-nondirectory buffer-file-name)) + ".html"))) + (current-dir (if buffer-file-name + (file-name-directory buffer-file-name) + default-directory)) + (buffer (if to-buffer + (cond + ((eq to-buffer 'string) (get-buffer-create "*Org HTML Export*")) + (t (get-buffer-create to-buffer))) + (find-file-noselect filename))) (org-levels-open (make-vector org-level-max nil)) (date (format-time-string "%Y/%m/%d" (current-time))) (time (format-time-string "%X" (org-current-time))) (author (plist-get opt-plist :author)) (title (or (plist-get opt-plist :title) - (file-name-sans-extension - (file-name-nondirectory buffer-file-name)))) + (and (not + (plist-get opt-plist :skip-before-1st-heading)) + (org-export-grab-title-from-buffer)) + (and buffer-file-name + (file-name-sans-extension + (file-name-nondirectory buffer-file-name))) + "UNTITLED")) (quote-re0 (concat "^[ \t]*" org-quote-string "\\>")) (quote-re (concat "^\\(\\*+\\)\\([ \t]*" org-quote-string "\\>\\)")) (inquote nil) @@ -17438,7 +19002,6 @@ org-mode's default settings, but still inferior to file-local settings." (llt org-plain-list-ordered-item-terminator) (email (plist-get opt-plist :email)) (language (plist-get opt-plist :language)) - (text (plist-get opt-plist :text)) (lang-words nil) (target-alist nil) tg (head-count 0) cnt @@ -17450,11 +19013,34 @@ org-mode's default settings, but still inferior to file-local settings." (charset (and coding-system (fboundp 'coding-system-get) (coding-system-get coding-system 'mime-charset))) + (region + (buffer-substring + (if region-p (region-beginning) (point-min)) + (if region-p (region-end) (point-max)))) + (lines + (org-skip-comments (org-split-string + (org-cleaned-string-for-export + region + :emph-multiline t + :for-html t + :skip-before-1st-heading + (plist-get opt-plist :skip-before-1st-heading) + :add-text + (plist-get opt-plist :text) + :LaTeX-fragments + (plist-get opt-plist :LaTeX-fragments)) + "[\r\n]"))) table-open type table-buffer table-orig-buffer - ind start-is-num starter + ind start-is-num starter didclose rpl path desc descp desc1 desc2 link ) + + (let (buffer-read-only) + (org-unmodified + (remove-text-properties (point-min) (point-max) + '(:org-license-to-kill t)))) + (message "Exporting...") (setq org-last-level 1) @@ -17465,9 +19051,7 @@ org-mode's default settings, but still inferior to file-local settings." (assoc "en" org-export-language-setup))) ;; Switch to the output buffer - (if (or hidden t) - (set-buffer buffer) - (switch-to-buffer-other-window buffer)) + (set-buffer buffer) (erase-buffer) (fundamental-mode) (let ((case-fold-search nil) @@ -17483,10 +19067,10 @@ org-mode's default settings, but still inferior to file-local settings." (setq umax-toc (if (integerp org-export-with-toc) (min org-export-with-toc umax) umax)) - - ;; File header - (insert (format - "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" + (unless body-only + ;; File header + (insert (format + "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\"> <html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"%s\" xml:lang=\"%s\"> @@ -17499,94 +19083,96 @@ lang=\"%s\" xml:lang=\"%s\"> %s </head><body> " - language language (org-html-expand title) (or charset "iso-8859-1") - date time author style)) + language language (org-html-expand title) + (or charset "iso-8859-1") date time author style)) + (insert (or (plist-get opt-plist :preamble) "")) - (insert (or (plist-get opt-plist :preamble) "")) + (when (plist-get opt-plist :auto-preamble) + (if title (insert (format org-export-html-title-format + (org-html-expand title)))))) - (when (plist-get opt-plist :auto-preamble) - (if title (insert (format org-export-html-title-format - (org-html-expand title)))) - (if text (insert "<p>\n" (org-html-expand text) "</p>"))) - - (if org-export-with-toc + (if (and org-export-with-toc (not body-only)) (progn - (insert (format "<h%d>%s</h%d>\n" - org-export-html-toplevel-hlevel - (nth 3 lang-words) - org-export-html-toplevel-hlevel)) - (insert "<ul>\n<li>") + (push (format "<h%d>%s</h%d>\n" + org-export-html-toplevel-hlevel + (nth 3 lang-words) + org-export-html-toplevel-hlevel) + thetoc) + (push "<ul>\n<li>" thetoc) (setq lines - (mapcar '(lambda (line) - (if (string-match org-todo-line-regexp line) - ;; This is a headline - (progn - (setq level (- (match-end 1) (match-beginning 1)) - level (org-tr-level level) - txt (save-match-data - (org-html-expand - (org-export-cleanup-toc-line - (match-string 3 line)))) - todo - (or (and org-export-mark-todo-in-toc - (match-beginning 2) - (not (equal (match-string 2 line) - org-done-string))) + (mapcar '(lambda (line) + (if (string-match org-todo-line-regexp line) + ;; This is a headline + (progn + (setq have-headings t) + (setq level (- (match-end 1) (match-beginning 1)) + level (org-tr-level level) + txt (save-match-data + (org-html-expand + (org-export-cleanup-toc-line + (match-string 3 line)))) + todo + (or (and org-export-mark-todo-in-toc + (match-beginning 2) + (not (member (match-string 2 line) + org-done-keywords))) ; TODO, not DONE - (and org-export-mark-todo-in-toc - (= level umax-toc) - (org-search-todo-below - line lines level)))) - (if (and (memq org-export-with-tags '(not-in-toc nil)) - (string-match "[ \t]+:[a-zA-Z0-9_@:]+:[ \t]*$" txt)) - (setq txt (replace-match "" t t txt))) - (if (string-match quote-re0 txt) - (setq txt (replace-match "" t t txt))) - (if org-export-with-section-numbers - (setq txt (concat (org-section-number level) - " " txt))) - (if (<= level umax-toc) - (progn - (setq head-count (+ head-count 1)) - (if (> level org-last-level) - (progn - (setq cnt (- level org-last-level)) - (while (>= (setq cnt (1- cnt)) 0) - (insert "\n<ul>\n<li>")) - (insert "\n"))) - (if (< level org-last-level) - (progn - (setq cnt (- org-last-level level)) - (while (>= (setq cnt (1- cnt)) 0) - (insert "</li>\n</ul>")) - (insert "\n"))) - ;; Check for targets - (while (string-match org-target-regexp line) - (setq tg (match-string 1 line) - line (replace-match - (concat "@<span class=\"target\">" tg "@</span> ") - t t line)) - (push (cons (org-solidify-link-text tg) - (format "sec-%d" head-count)) - target-alist)) - (while (string-match "<\\(<\\)+\\|>\\(>\\)+" txt) - (setq txt (replace-match "" t t txt))) - (insert - (format - (if todo - "</li>\n<li><a href=\"#sec-%d\"><span class=\"todo\">%s</span></a>" - "</li>\n<li><a href=\"#sec-%d\">%s</a>") - head-count txt)) - - (setq org-last-level level)) - ))) - line) - lines)) + (and org-export-mark-todo-in-toc + (= level umax-toc) + (org-search-todo-below + line lines level)))) + (if (and (memq org-export-with-tags '(not-in-toc nil)) + (string-match "[ \t]+:[a-zA-Z0-9_@:]+:[ \t]*$" txt)) + (setq txt (replace-match "" t t txt))) + (if (string-match quote-re0 txt) + (setq txt (replace-match "" t t txt))) + (if org-export-with-section-numbers + (setq txt (concat (org-section-number level) + " " txt))) + (if (<= level (max umax umax-toc)) + (setq head-count (+ head-count 1))) + (if (<= level umax-toc) + (progn + (if (> level org-last-level) + (progn + (setq cnt (- level org-last-level)) + (while (>= (setq cnt (1- cnt)) 0) + (push "\n<ul>\n<li>" thetoc)) + (push "\n" thetoc))) + (if (< level org-last-level) + (progn + (setq cnt (- org-last-level level)) + (while (>= (setq cnt (1- cnt)) 0) + (push "</li>\n</ul>" thetoc)) + (push "\n" thetoc))) + ;; Check for targets + (while (string-match org-target-regexp line) + (setq tg (match-string 1 line) + line (replace-match + (concat "@<span class=\"target\">" tg "@</span> ") + t t line)) + (push (cons (org-solidify-link-text tg) + (format "sec-%d" head-count)) + target-alist)) + (while (string-match "<\\(<\\)+\\|>\\(>\\)+" txt) + (setq txt (replace-match "" t t txt))) + (push + (format + (if todo + "</li>\n<li><a href=\"#sec-%d\"><span class=\"todo\">%s</span></a>" + "</li>\n<li><a href=\"#sec-%d\">%s</a>") + head-count txt) thetoc) + + (setq org-last-level level)) + ))) + line) + lines)) (while (> org-last-level 0) (setq org-last-level (1- org-last-level)) - (insert "</li>\n</ul>\n")) - )) + (push "</li>\n</ul>\n" thetoc)) + (setq thetoc (if have-headings (nreverse thetoc) nil)))) + (setq head-count 0) (org-init-section-numbers) @@ -17618,7 +19204,16 @@ lang=\"%s\" xml:lang=\"%s\"> ;; Protected HTML (when (get-text-property 0 'org-protected line) - (insert line "\n") + (let (par) + (when (re-search-backward + "\\(<p>\\)\\([ \t\r\n]*\\)\\=" (- (point) 100) t) + (setq par (match-string 1)) + (replace-match "\\2\n")) + (insert line "\n") + (while (and lines + (get-text-property 0 'org-protected (car lines))) + (insert (pop lines) "\n")) + (and par (insert "<p>\n"))) (throw 'nextline nil)) ;; Horizontal line @@ -17676,7 +19271,8 @@ lang=\"%s\" xml:lang=\"%s\"> (setq rpl (concat "<a href=\"#" - (org-solidify-link-text path target-alist) + (org-solidify-link-text + (save-match-data (org-link-unescape path)) target-alist) "\">" desc "</a>"))) ((member type '("http" "https")) ; FIXME: need to test this. ;; standard URL, just check if we need to inline an image @@ -17738,12 +19334,24 @@ lang=\"%s\" xml:lang=\"%s\"> ;; TODO items (if (and (string-match org-todo-line-regexp line) (match-beginning 2)) - (if (equal (match-string 2 line) org-done-string) + (if (member (match-string 2 line) org-done-keywords) (setq line (replace-match "<span class=\"done\">\\2</span>" t nil line 2)) - (setq line (replace-match "<span class=\"todo\">\\2</span>" - t nil line 2)))) + (setq line + (concat (substring line 0 (match-beginning 2)) + "<span class=\"todo\">" (match-string 2 line) + "</span>" (substring line (match-end 2)))))) + + ;; Does this contain a reference to a footnote? + (while (string-match "\\([^* \t].*?\\)\\[\\([0-9]+\\)\\]" line) + (let ((n (match-string 2 line))) + (setq line + (replace-match + (format + "%s<sup><a class=\"footref\" name=\"fnr.%s\" href=\"#fn.%s\">%s</a></sup>" + (match-string 1 line) n n n) + t t line)))) (cond ((string-match "^\\(\\*+\\)[ \t]*\\(.*\\)" line) @@ -17752,7 +19360,8 @@ lang=\"%s\" xml:lang=\"%s\"> txt (match-string 2 line)) (if (string-match quote-re0 txt) (setq txt (replace-match "" t t txt))) - (if (<= level umax) (setq head-count (+ head-count 1))) + (if (<= level (max umax umax-toc)) + (setq head-count (+ head-count 1))) (when in-local-list ;; Close any local lists before inserting a new header line (while local-list-num @@ -17761,6 +19370,7 @@ lang=\"%s\" xml:lang=\"%s\"> (pop local-list-num)) (setq local-list-indent nil in-local-list nil)) + (setq first-heading-pos (or first-heading-pos (point))) (org-html-level-start level txt umax (and org-export-with-toc (<= level umax)) head-count) @@ -17801,11 +19411,15 @@ lang=\"%s\" xml:lang=\"%s\"> line (substring line (match-beginning 5))) (unless (string-match "[^ \t]" line) ;; empty line. Pretend indentation is large. - (setq ind (1+ (or (car local-list-indent) 1)))) + (setq ind (if org-empty-line-terminates-plain-lists + 0 + (1+ (or (car local-list-indent) 1))))) + (setq didclose nil) (while (and in-local-list (or (and (= ind (car local-list-indent)) (not starter)) (< ind (car local-list-indent)))) + (setq didclose t) (org-close-li) (insert (if (car local-list-num) "</ol>\n" "</ul>")) (pop local-list-num) (pop local-list-indent) @@ -17814,7 +19428,7 @@ lang=\"%s\" xml:lang=\"%s\"> ((and starter (or (not in-local-list) (> ind (car local-list-indent)))) - ;; Start new (level of ) list + ;; Start new (level of) list (org-close-par-maybe) (insert (if start-is-num "<ol>\n<li>\n" "<ul>\n<li>\n")) (push start-is-num local-list-num) @@ -17823,7 +19437,10 @@ lang=\"%s\" xml:lang=\"%s\"> (starter ;; continue current list (org-close-li) - (insert "<li>\n"))) + (insert "<li>\n")) + (didclose + ;; we did close a list, normal text follows: need <p> + (org-open-par))) (if (string-match "^[ \t]*\\[\\([X ]\\)\\]" line) (setq line (replace-match @@ -17837,6 +19454,13 @@ lang=\"%s\" xml:lang=\"%s\"> ;; also start a new paragraph. (if (string-match "^ [-+*]-\\|^[ \t]*$" line) (org-open-par)) + ;; Is this the start of a footnote? + (when (string-match "^[ \t]*\\[\\([0-9]+\\)\\]" line) + (org-close-par-maybe) + (let ((n (match-string 1 line))) + (setq line (replace-match + (format "<p class=\"footnote\"><sup><a class=\"footnum\" name=\"fn.%s\" href=\"#fnr.%s\">%s</a></sup>" n n n) t t line)))) + ;; Check if the line break needs to be conserved (cond ((string-match "\\\\\\\\[ \t]*$" line) @@ -17860,24 +19484,43 @@ lang=\"%s\" xml:lang=\"%s\"> (and org-export-with-toc (<= level umax)) head-count) - (when (plist-get opt-plist :auto-postamble) - (when author - (insert "<p class=\"author\"> " - (nth 1 lang-words) ": " author "\n") - (when email - (insert "<a href=\"mailto:" email "\"><" - email "></a>\n")) - (insert "</p>\n")) - (when (and date time) - (insert "<p class=\"date\"> " - (nth 2 lang-words) ": " - date " " time "</p>\n"))) - - (if org-export-html-with-timestamp - (insert org-export-html-html-helper-timestamp)) - (insert (or (plist-get opt-plist :postamble) "")) - (insert "</body>\n</html>\n") + (unless body-only + (when (plist-get opt-plist :auto-postamble) + (when author + (insert "<p class=\"author\"> " + (nth 1 lang-words) ": " author "\n") + (when email + (insert "<a href=\"mailto:" email "\"><" + email "></a>\n")) + (insert "</p>\n")) + (when (and date time) + (insert "<p class=\"date\"> " + (nth 2 lang-words) ": " + date " " time "</p>\n"))) + + (if org-export-html-with-timestamp + (insert org-export-html-html-helper-timestamp)) + (insert (or (plist-get opt-plist :postamble) "")) + (insert "</body>\n</html>\n")) + (normal-mode) + (if (eq major-mode default-major-mode) (html-mode)) + + ;; insert the table of contents + (goto-char (point-min)) + (when thetoc + (if (or (re-search-forward + "<p>\\s-*\\[TABLE-OF-CONTENTS\\]\\s-*</p>" nil t) + (re-search-forward + "\\[TABLE-OF-CONTENTS\\]" nil t)) + (progn + (goto-char (match-beginning 0)) + (replace-match "")) + (goto-char first-heading-pos) + (when (looking-at "\\s-*</p>") + (goto-char (match-end 0)) + (insert "\n"))) + (mapc 'insert thetoc)) ;; remove empty paragraphs and lists (goto-char (point-min)) (while (re-search-forward "<p>[ \r\n\t]*</p>" nil t) @@ -17885,13 +19528,62 @@ lang=\"%s\" xml:lang=\"%s\"> (goto-char (point-min)) (while (re-search-forward "<li>[ \r\n\t]*</li>\n?" nil t) (replace-match "")) - (save-buffer) + (or to-buffer (save-buffer)) (goto-char (point-min)) - (message "Exporting... done")))) + (message "Exporting... done") + (if (eq to-buffer 'string) + (prog1 (buffer-substring (point-min) (point-max)) + (kill-buffer (current-buffer))) + (current-buffer))))) + +(defvar org-table-colgroup-info nil) ;; FIXME: mode to a better place +(defun org-format-table-ascii (lines) + "Format a table for ascii export." + (if (stringp lines) + (setq lines (org-split-string lines "\n"))) + (if (not (string-match "^[ \t]*|" (car lines))) + ;; Table made by table.el - test for spanning + lines + + ;; A normal org table + ;; Get rid of hlines at beginning and end + (if (string-match "^[ \t]*|-" (car lines)) (setq lines (cdr lines))) + (setq lines (nreverse lines)) + (if (string-match "^[ \t]*|-" (car lines)) (setq lines (cdr lines))) + (setq lines (nreverse lines)) + (when org-export-table-remove-special-lines + ;; Check if the table has a marking column. If yes remove the + ;; column and the special lines + (setq lines (org-table-clean-before-export lines))) + ;; Get rid of the vertical lines except for grouping + (let ((vl (org-colgroup-info-to-vline-list org-table-colgroup-info)) + rtn line vl1 start) + (while (setq line (pop lines)) + (if (string-match org-table-hline-regexp line) + (and (string-match "|\\(.*\\)|" line) + (setq line (replace-match " \\1" t nil line))) + (setq start 0 vl1 vl) + (while (string-match "|" line start) + (setq start (match-end 0)) + (or (pop vl1) (setq line (replace-match " " t t line))))) + (push line rtn)) + (nreverse rtn)))) + +(defun org-colgroup-info-to-vline-list (info) + (let (vl new last rtn line) + (while info + (setq last new new (pop info)) + (if (or (memq last '(:end :startend)) + (memq new '(:start :startend))) + (push t vl) + (push nil vl))) + (setq vl (cons nil (nreverse vl))))) (defun org-format-table-html (lines olines) "Find out which HTML converter to use and return the HTML code." + (if (stringp lines) + (setq lines (org-split-string lines "\n"))) (if (string-match "^[ \t]*|" (car lines)) ;; A normal org table (org-format-org-table-html lines) @@ -17931,7 +19623,7 @@ lang=\"%s\" xml:lang=\"%s\"> (lambda (x) (string-match "^[ \t]*|-" x)) (cdr lines))))) (nlines 0) fnum i - tbopen line fields html) + tbopen line fields html gr) (if splice (setq head nil)) (unless splice (push (if head "<thead>" "<tbody>") html)) (setq tbopen t) @@ -17939,7 +19631,7 @@ lang=\"%s\" xml:lang=\"%s\"> (catch 'next-line (if (string-match "^[ \t]*|-" line) (progn - (unless splice + (unless splice (push (if head "</thead>" "</tbody>") html) (if lines (push "<tbody>" html) (setq tbopen nil))) (setq head nil) ;; head ends here, first time around @@ -17957,8 +19649,10 @@ lang=\"%s\" xml:lang=\"%s\"> (string-match org-table-number-regexp x)) (incf (aref fnum i))) (if head - (concat "<th>" x "</th>") - (concat "<td>" x "</td>"))) + (concat (car org-export-table-header-tags) x + (cdr org-export-table-header-tags)) + (concat (car org-export-table-data-tags) x + (cdr org-export-table-data-tags)))) fields "") "</tr>") html))) @@ -17969,9 +19663,12 @@ lang=\"%s\" xml:lang=\"%s\"> ;; Put in COL tags with the alignment (unfortuntely often ignored...) (push (mapconcat (lambda (x) - (format "<COL align=\"%s\">" + (setq gr (pop org-table-colgroup-info)) + (format "%s<COL align=\"%s\">%s" + (if (memq gr '(:start :startend)) "<colgroup>" "") (if (> (/ (float x) nlines) org-table-number-fraction) - "right" "left"))) + "right" "left") + (if (memq gr '(:end :startend)) "</colgroup>" ""))) fnum "") html) (push org-export-html-table-tag html)) @@ -17980,34 +19677,52 @@ lang=\"%s\" xml:lang=\"%s\"> (defun org-table-clean-before-export (lines) "Check if the table has a marking column. If yes remove the column and the special lines." + (setq org-table-colgroup-info nil) (if (memq nil (mapcar (lambda (x) (or (string-match "^[ \t]*|-" x) (string-match "^[ \t]*| *\\([#!$*_^ /]\\) *|" x))) lines)) (progn - (setq org-table-clean-did-remove-column-1 nil) - lines) - (setq org-table-clean-did-remove-column-1 t) + (setq org-table-clean-did-remove-column nil) + (delq nil + (mapcar + (lambda (x) + (cond + ((string-match "^[ \t]*| */ *|" x) + (setq org-table-colgroup-info + (mapcar (lambda (x) + (cond ((member x '("<" "<")) :start) + ((member x '(">" ">")) :end) + ((member x '("<>" "<>")) :startend) + (t nil))) + (org-split-string x "[ \t]*|[ \t]*"))) + nil) + (t x))) + lines))) + (setq org-table-clean-did-remove-column t) (delq nil (mapcar - (lambda (x) (if (string-match "^[ \t]*| *[!_^/] *|" x) - nil ; ignore this line - (and (or (string-match "^[ \t]*|-+\\+" x) - (string-match "^[ \t]*|[^|]*|" x)) - (replace-match "|" t t x)))) + (lambda (x) + (cond + ((string-match "^[ \t]*| */ *|" x) + (setq org-table-colgroup-info + (mapcar (lambda (x) + (cond ((member x '("<" "<")) :start) + ((member x '(">" ">")) :end) + ((member x '("<>" "<>")) :startend) + (t nil))) + (cdr (org-split-string x "[ \t]*|[ \t]*")))) + nil) + ((string-match "^[ \t]*| *[!_^/] *|" x) + nil) ; ignore this line + ((or (string-match "^\\([ \t]*\\)|-+\\+" x) + (string-match "^\\([ \t]*\\)|[^|]*|" x)) + ;; remove the first column + (replace-match "\\1|" t nil x)) + (t (error "This should not happen")))) lines)))) -(defun org-fake-empty-table-line (line) - "Replace everything except \"|\" with spaces." - (let ((i (length line)) - (newstr (copy-sequence line))) - (while (> i 0) - (setq i (1- i)) - (if (not (eq (aref newstr i) ?|)) - (aset newstr i ?\ ))) - newstr)) - (defun org-format-table-table-html (lines) "Format a table generated by table.el into HTML. This conversion does *not* use `table-generate-source' from table.el. @@ -18024,17 +19739,21 @@ But it has the disadvantage, that no cell- or row-spanning is allowed." (progn (if field-buffer (progn - (setq html (concat - html - "<tr>" - (mapconcat - (lambda (x) - (if (equal x "") (setq x empty)) - (if head - (concat "<th>" x "</th>\n") - (concat "<td>" x "</td>\n"))) - field-buffer "\n") - "</tr>\n")) + (setq + html + (concat + html + "<tr>" + (mapconcat + (lambda (x) + (if (equal x "") (setq x empty)) + (if head + (concat (car org-export-table-header-tags) x + (cdr org-export-table-header-tags)) + (concat (car org-export-table-data-tags) x + (cdr org-export-table-data-tags)))) + field-buffer "\n") + "</tr>\n")) (setq head nil) (setq field-buffer nil))) ;; Ignore this line @@ -18115,6 +19834,9 @@ But it has the disadvantage, that Org-mode's HTML conversions cannot be used." (when org-export-remove-timestamps-from-toc (while (string-match org-maybe-keyword-time-regexp s) (setq s (replace-match "" t t s)))) + (while (string-match org-bracket-link-regexp s) + (setq s (replace-match (match-string (if (match-end 3) 3 1) s) + t t s))) s) (defun org-html-expand (string) @@ -18179,27 +19901,42 @@ stacked delimiters is N. Escaping delimiters is not possible." "\\(\\(?:\\*\\|[-+]?[^-+*!@#$%^_ \t\r\n,:\"?<>~;./{}=()]+\\)\\)\\)") "The regular expression matching a sub- or superscript.") +;(let ((s "a\\_b")) +; (and (string-match org-match-substring-regexp s) +; (conca t (match-string 1 s) ":::" (match-string 2 s)))) + (defun org-export-html-convert-sub-super (string) "Convert sub- and superscripts in STRING to HTML." - (let (key c) - (while (string-match org-match-substring-regexp string) - (setq key (if (string= (match-string 2 string) "_") "sub" "sup")) - (setq c (or (match-string 8 string) - (match-string 6 string) - (match-string 5 string))) - (setq string (replace-match - (concat (match-string 1 string) - "<" key ">" c "</" key ">") - t t string))) + (let (key c (s 0) (requireb (eq org-export-with-sub-superscripts '{}))) + (while (string-match org-match-substring-regexp string s) + (if (and requireb (match-end 8)) + (setq s (match-end 2)) + (setq s (match-end 1) + key (if (string= (match-string 2 string) "_") "sub" "sup") + c (or (match-string 8 string) + (match-string 6 string) + (match-string 5 string)) + string (replace-match + (concat (match-string 1 string) + "<" key ">" c "</" key ">") + t t string)))) (while (string-match "\\\\\\([_^]\\)" string) - (setq string (replace-match (match-string 1 string) t t string)))) - string) + (setq string (replace-match (match-string 1 string) t t string))) + string)) (defun org-export-html-convert-emphasize (string) "Apply emphasis." - (while (string-match org-emph-re string) - (setq string (replace-match (concat "\\1" (nth 2 (assoc (match-string 3 string) org-emphasis-alist)) "\\4" (nth 3 (assoc (match-string 3 string) org-emphasis-alist)) "\\5") t nil string))) - string) + (let ((s 0)) + (while (string-match org-emph-re string s) + (if (not (equal + (substring string (match-beginning 3) (1+ (match-beginning 3))) + (substring string (match-beginning 4) (1+ (match-beginning 4))))) + (setq string (replace-match + (concat "\\1" (nth 2 (assoc (match-string 3 string) org-emphasis-alist)) + "\\4" (nth 3 (assoc (match-string 3 string) org-emphasis-alist)) + "\\5") t nil string)) + (setq s (1+ s)))) + string)) (defvar org-par-open nil) (defun org-open-par () @@ -18216,10 +19953,6 @@ stacked delimiters is N. Escaping delimiters is not possible." "Close <li> if necessary." (org-close-par-maybe) (insert "</li>\n")) -; (when (save-excursion -; (re-search-backward "</?\\(ul\\|ol\\|li\\|[hH][0-9]\\)>" nil t)) -; (if (member (match-string 0) '("</ul>" "</ol>" "<li>")) -; (insert "</li>")))) (defun org-html-level-start (level title umax with-toc head-count) "Insert a new level in HTML export. @@ -18260,7 +19993,7 @@ When TITLE is nil, just close all open levels." (setq title (concat (org-section-number level) " " title))) (setq level (+ level org-export-html-toplevel-hlevel -1)) (if with-toc - (insert (format "\n<h%d><a name=\"sec-%d\">%s</a></h%d>\n" + (insert (format "\n<h%d id=\"sec-%d\">%s</h%d>\n" level head-count title level)) (insert (format "\n<h%d>%s</h%d>\n" level title level))) (org-open-par))))) @@ -18268,7 +20001,7 @@ When TITLE is nil, just close all open levels." (defun org-html-level-close (&rest args) "Terminate one level in HTML export." (org-close-li) - (insert "</ul>")) + (insert "</ul>\n")) ;;; iCalendar export @@ -18300,11 +20033,13 @@ The file is stored under the name `org-combined-agenda-icalendar-file'." If COMBINE is non-nil, combine all calendar entries into a single large file and store it under the name `org-combined-agenda-icalendar-file'." (save-excursion + (org-prepare-agenda-buffers files) (let* ((dir (org-export-directory :ical (list :publishing-directory org-export-publishing-directory))) file ical-file ical-buffer category started org-agenda-new-buffers) + (and (get-buffer "*ical-tmp*") (kill-buffer "*ical-tmp*")) (when combine (setq ical-file (if (file-name-absolute-p org-combined-agenda-icalendar-file) @@ -18349,70 +20084,112 @@ the iCalendar file.") (defun org-print-icalendar-entries (&optional combine) "Print iCalendar entries for the current Org-mode file to `standard-output'. When COMBINE is non nil, add the category to each line." - (let ((re2 (concat "--?-?\\(" org-ts-regexp "\\)")) + (let ((re1 (concat org-ts-regexp "\\|<%%([^>\n]+>")) + (re2 (concat "--?-?\\(" org-ts-regexp "\\)")) (org-category-table (org-get-category-table)) (dts (org-ical-ts-to-string (format-time-string (cdr org-time-stamp-formats) (current-time)) "DTSTART")) - hd ts ts2 state status (inc t) pos - scheduledp deadlinep tmp pri category) + hd ts ts2 state status (inc t) pos b sexp rrule + scheduledp deadlinep tmp pri category + (sexp-buffer (get-buffer-create "*ical-tmp*"))) (save-excursion (goto-char (point-min)) - (while (re-search-forward org-ts-regexp nil t) - (setq pos (match-beginning 0) - ts (match-string 0) - inc t - hd (org-get-heading) - category (org-get-category)) - (if (looking-at re2) - (progn - (goto-char (match-end 0)) - (setq ts2 (match-string 1) inc nil)) - (setq ts2 ts - tmp (buffer-substring (max (point-min) + (while (re-search-forward re1 nil t) + (catch :skip + (org-agenda-skip) + (setq pos (match-beginning 0) + ts (match-string 0) + inc t + hd (org-get-heading) + category (org-get-category)) + (if (looking-at re2) + (progn + (goto-char (match-end 0)) + (setq ts2 (match-string 1) inc nil)) + (setq ts2 ts + tmp (buffer-substring (max (point-min) (- pos org-ds-keyword-length)) - pos) - deadlinep (string-match org-deadline-regexp tmp) - scheduledp (string-match org-scheduled-regexp tmp) - ;; donep (org-entry-is-done-p) - )) - (if (or (string-match org-tr-regexp hd) - (string-match org-ts-regexp hd)) - (setq hd (replace-match "" t t hd))) - (if (string-match org-bracket-link-regexp hd) - (setq hd (replace-match (if (match-end 3) (match-string 3 hd) - (match-string 1 hd)) - t t hd))) - (if deadlinep (setq hd (concat "DL: " hd))) - (if scheduledp (setq hd (concat "S: " hd))) - (princ (format "BEGIN:VEVENT -%s + pos) + deadlinep (string-match org-deadline-regexp tmp) + scheduledp (string-match org-scheduled-regexp tmp) + ;; donep (org-entry-is-done-p) + )) + (if (or (string-match org-tr-regexp hd) + (string-match org-ts-regexp hd)) + (setq hd (replace-match "" t t hd))) + (if (string-match "\\+\\([0-9]+\\)\\([dwmy]\\)>" ts) + (setq rrule + (concat "\nRRULE:FREQ=" + (cdr (assoc + (match-string 2 ts) + '(("d" . "DAILY")("w" . "WEEKLY") + ("m" . "MONTHLY")("y" . "YEARLY")))) + ";INTERVAL=" (match-string 1 ts))) + (setq rrule "")) + (if (string-match org-bracket-link-regexp hd) + (setq hd (replace-match (if (match-end 3) (match-string 3 hd) + (match-string 1 hd)) + t t hd))) + (if deadlinep (setq hd (concat "DL: " hd))) + (if scheduledp (setq hd (concat "S: " hd))) + (if (string-match "\\`<%%" ts) + (with-current-buffer sexp-buffer + (insert (substring ts 1 -1) " " hd "\n")) + (princ (format "BEGIN:VEVENT %s +%s%s SUMMARY:%s CATEGORIES:%s END:VEVENT\n" - (org-ical-ts-to-string ts "DTSTART") - (org-ical-ts-to-string ts2 "DTEND" inc) - hd category))) + (org-ical-ts-to-string ts "DTSTART") + (org-ical-ts-to-string ts2 "DTEND" inc) + rrule hd category))))) + + (when (and org-icalendar-include-sexps + (condition-case nil (require 'icalendar) (error nil)) + (fboundp 'icalendar-export-region)) + ;; Get all the literal sexps + (goto-char (point-min)) + (while (re-search-forward "^&?%%(" nil t) + (catch :skip + (org-agenda-skip) + (setq b (match-beginning 0)) + (goto-char (1- (match-end 0))) + (forward-sexp 1) + (end-of-line 1) + (setq sexp (buffer-substring b (point))) + (with-current-buffer sexp-buffer + (insert sexp "\n")) + (princ (org-diary-to-ical-string sexp-buffer))))) + (when org-icalendar-include-todo (goto-char (point-min)) (while (re-search-forward org-todo-line-regexp nil t) - (setq state (match-string 2)) - (setq status (if (equal state org-done-string) - "COMPLETED" "NEEDS-ACTION")) - (when (and state - (or (not (equal state org-done-string)) - (eq org-icalendar-include-todo 'all))) - (setq hd (match-string 3)) - (if (string-match org-priority-regexp hd) - (setq pri (string-to-char (match-string 2 hd)) - hd (concat (substring hd 0 (match-beginning 1)) - (substring hd (match-end 1)))) - (setq pri org-default-priority)) - (setq pri (floor (1+ (* 8. (/ (float (- org-lowest-priority pri)) - (- org-lowest-priority ?A)))))) - - (princ (format "BEGIN:VTODO + (catch :skip + (org-agenda-skip) + (setq state (match-string 2)) + (setq status (if (member state org-done-keywords) + "COMPLETED" "NEEDS-ACTION")) + (when (and state + (or (not (member state org-done-keywords)) + (eq org-icalendar-include-todo 'all)) + (not (member org-archive-tag (org-get-tags-at))) + ) + (setq hd (match-string 3)) + (if (string-match org-bracket-link-regexp hd) + (setq hd (replace-match (if (match-end 3) (match-string 3 hd) + (match-string 1 hd)) + t t hd))) + (if (string-match org-priority-regexp hd) + (setq pri (string-to-char (match-string 2 hd)) + hd (concat (substring hd 0 (match-beginning 1)) + (substring hd (match-end 1)))) + (setq pri org-default-priority)) + (setq pri (floor (1+ (* 8. (/ (float (- org-lowest-priority pri)) + (- org-lowest-priority org-highest-priority)))))) + + (princ (format "BEGIN:VTODO %s SUMMARY:%s CATEGORIES:%s @@ -18420,7 +20197,7 @@ SEQUENCE:1 PRIORITY:%d STATUS:%s END:VTODO\n" - dts hd category pri status)))))))) + dts hd category pri status))))))))) (defun org-start-icalendar-file (name) "Start an iCalendar file by inserting the header." @@ -18545,47 +20322,44 @@ The XOXO buffer is named *xoxo-<source buffer name>*" ;;;; Key bindings -;; - Bindings in Org-mode map are currently -;; 0123456789abcdefghijklmnopqrstuvwxyz!?@#$%^&-+*/=()_{}[]:;"|,.<>~`'\t the alphabet -;; abcd fgh j lmnopqrstuvwxyz!? #$ ^ -+*/= [] ; |,.<>~ '\t necessary bindings -;; e (?) useful from outline-mode -;; i k @ expendable from outline-mode -;; 0123456789 % & ()_{} " ` free - ;; Make `C-c C-x' a prefix key -(define-key org-mode-map "\C-c\C-x" (make-sparse-keymap)) +(org-defkey org-mode-map "\C-c\C-x" (make-sparse-keymap)) ;; TAB key with modifiers -(define-key org-mode-map "\C-i" 'org-cycle) -(define-key org-mode-map [(tab)] 'org-cycle) -(define-key org-mode-map [(control tab)] 'org-force-cycle-archived) -(define-key org-mode-map [(meta tab)] 'org-complete) -(define-key org-mode-map "\M-\t" 'org-complete) -(define-key org-mode-map "\M-\C-i" 'org-complete) +(org-defkey org-mode-map "\C-i" 'org-cycle) +(org-defkey org-mode-map [(tab)] 'org-cycle) +(org-defkey org-mode-map [(control tab)] 'org-force-cycle-archived) +(org-defkey org-mode-map [(meta tab)] 'org-complete) +(org-defkey org-mode-map "\M-\t" 'org-complete) +(org-defkey org-mode-map "\M-\C-i" 'org-complete) ;; The following line is necessary under Suse GNU/Linux (unless (featurep 'xemacs) - (define-key org-mode-map [S-iso-lefttab] 'org-shifttab)) -(define-key org-mode-map [(shift tab)] 'org-shifttab) + (org-defkey org-mode-map [S-iso-lefttab] 'org-shifttab)) +(org-defkey org-mode-map [(shift tab)] 'org-shifttab) +(define-key org-mode-map (kbd "<backtab>") 'org-shifttab) -(define-key org-mode-map (org-key 'S-return) 'org-table-copy-down) -(define-key org-mode-map [(meta shift return)] 'org-insert-todo-heading) -(define-key org-mode-map [(meta return)] 'org-meta-return) +(org-defkey org-mode-map [(shift return)] 'org-table-copy-down) +(org-defkey org-mode-map [(meta shift return)] 'org-insert-todo-heading) +(org-defkey org-mode-map [(meta return)] 'org-meta-return) ;; Cursor keys with modifiers -(define-key org-mode-map [(meta left)] 'org-metaleft) -(define-key org-mode-map [(meta right)] 'org-metaright) -(define-key org-mode-map [(meta up)] 'org-metaup) -(define-key org-mode-map [(meta down)] 'org-metadown) +(org-defkey org-mode-map [(meta left)] 'org-metaleft) +(org-defkey org-mode-map [(meta right)] 'org-metaright) +(org-defkey org-mode-map [(meta up)] 'org-metaup) +(org-defkey org-mode-map [(meta down)] 'org-metadown) -(define-key org-mode-map [(meta shift left)] 'org-shiftmetaleft) -(define-key org-mode-map [(meta shift right)] 'org-shiftmetaright) -(define-key org-mode-map [(meta shift up)] 'org-shiftmetaup) -(define-key org-mode-map [(meta shift down)] 'org-shiftmetadown) +(org-defkey org-mode-map [(meta shift left)] 'org-shiftmetaleft) +(org-defkey org-mode-map [(meta shift right)] 'org-shiftmetaright) +(org-defkey org-mode-map [(meta shift up)] 'org-shiftmetaup) +(org-defkey org-mode-map [(meta shift down)] 'org-shiftmetadown) -(define-key org-mode-map (org-key 'S-up) 'org-shiftup) -(define-key org-mode-map (org-key 'S-down) 'org-shiftdown) -(define-key org-mode-map (org-key 'S-left) 'org-shiftleft) -(define-key org-mode-map (org-key 'S-right) 'org-shiftright) +(org-defkey org-mode-map [(shift up)] 'org-shiftup) +(org-defkey org-mode-map [(shift down)] 'org-shiftdown) +(org-defkey org-mode-map [(shift left)] 'org-shiftleft) +(org-defkey org-mode-map [(shift right)] 'org-shiftright) + +(org-defkey org-mode-map [(control shift right)] 'org-shiftcontrolright) +(org-defkey org-mode-map [(control shift left)] 'org-shiftcontrolleft) ;;; Extra keys for tty access. ;; We only set them when really needed because otherwise the @@ -18593,102 +20367,105 @@ The XOXO buffer is named *xoxo-<source buffer name>*" (when (or (featurep 'xemacs) ;; because XEmacs supports multi-device stuff (not window-system)) - (define-key org-mode-map "\C-c\C-xc" 'org-table-copy-down) - (define-key org-mode-map "\C-c\C-xM" 'org-insert-todo-heading) - (define-key org-mode-map "\C-c\C-xm" 'org-meta-return) - (define-key org-mode-map [?\e (return)] 'org-meta-return) - (define-key org-mode-map [?\e (left)] 'org-metaleft) - (define-key org-mode-map "\C-c\C-xl" 'org-metaleft) - (define-key org-mode-map [?\e (right)] 'org-metaright) - (define-key org-mode-map "\C-c\C-xr" 'org-metaright) - (define-key org-mode-map [?\e (up)] 'org-metaup) - (define-key org-mode-map "\C-c\C-xu" 'org-metaup) - (define-key org-mode-map [?\e (down)] 'org-metadown) - (define-key org-mode-map "\C-c\C-xd" 'org-metadown) - (define-key org-mode-map "\C-c\C-xL" 'org-shiftmetaleft) - (define-key org-mode-map "\C-c\C-xR" 'org-shiftmetaright) - (define-key org-mode-map "\C-c\C-xU" 'org-shiftmetaup) - (define-key org-mode-map "\C-c\C-xD" 'org-shiftmetadown) - (define-key org-mode-map [?\C-c ?\C-x (up)] 'org-shiftup) - (define-key org-mode-map [?\C-c ?\C-x (down)] 'org-shiftdown) - (define-key org-mode-map [?\C-c ?\C-x (left)] 'org-shiftleft) - (define-key org-mode-map [?\C-c ?\C-x (right)] 'org-shiftright)) + (org-defkey org-mode-map "\C-c\C-xc" 'org-table-copy-down) + (org-defkey org-mode-map "\C-c\C-xM" 'org-insert-todo-heading) + (org-defkey org-mode-map "\C-c\C-xm" 'org-meta-return) + (org-defkey org-mode-map [?\e (return)] 'org-meta-return) + (org-defkey org-mode-map [?\e (left)] 'org-metaleft) + (org-defkey org-mode-map "\C-c\C-xl" 'org-metaleft) + (org-defkey org-mode-map [?\e (right)] 'org-metaright) + (org-defkey org-mode-map "\C-c\C-xr" 'org-metaright) + (org-defkey org-mode-map [?\e (up)] 'org-metaup) + (org-defkey org-mode-map "\C-c\C-xu" 'org-metaup) + (org-defkey org-mode-map [?\e (down)] 'org-metadown) + (org-defkey org-mode-map "\C-c\C-xd" 'org-metadown) + (org-defkey org-mode-map "\C-c\C-xL" 'org-shiftmetaleft) + (org-defkey org-mode-map "\C-c\C-xR" 'org-shiftmetaright) + (org-defkey org-mode-map "\C-c\C-xU" 'org-shiftmetaup) + (org-defkey org-mode-map "\C-c\C-xD" 'org-shiftmetadown) + (org-defkey org-mode-map [?\C-c (up)] 'org-shiftup) + (org-defkey org-mode-map [?\C-c (down)] 'org-shiftdown) + (org-defkey org-mode-map [?\C-c (left)] 'org-shiftleft) + (org-defkey org-mode-map [?\C-c (right)] 'org-shiftright) + (org-defkey org-mode-map [?\C-c ?\C-x (right)] 'org-shiftcontrolright) + (org-defkey org-mode-map [?\C-c ?\C-x (left)] 'org-shiftcontrolleft)) ;; All the other keys -(define-key org-mode-map "\C-c\C-a" 'show-all) ; in case allout messed up. -(define-key org-mode-map "\C-c\C-r" 'org-reveal) -(define-key org-mode-map "\C-xns" 'org-narrow-to-subtree) -(define-key org-mode-map "\C-c$" 'org-archive-subtree) -(define-key org-mode-map "\C-c\C-x\C-s" 'org-advertized-archive-subtree) -(define-key org-mode-map "\C-c\C-x\C-a" 'org-toggle-archive-tag) -(define-key org-mode-map "\C-c\C-xb" 'org-tree-to-indirect-buffer) -(define-key org-mode-map "\C-c\C-j" 'org-goto) -(define-key org-mode-map "\C-c\C-t" 'org-todo) -(define-key org-mode-map "\C-c\C-s" 'org-schedule) -(define-key org-mode-map "\C-c\C-d" 'org-deadline) -(define-key org-mode-map "\C-c;" 'org-toggle-comment) -(define-key org-mode-map "\C-c\C-v" 'org-show-todo-tree) -(define-key org-mode-map "\C-c\C-w" 'org-check-deadlines) -(define-key org-mode-map "\C-c/" 'org-occur) ; Minor-mode reserved -(define-key org-mode-map "\C-c\\" 'org-tags-sparse-tree) ; Minor-mode res. -(define-key org-mode-map "\C-c\C-m" 'org-insert-heading) -(define-key org-mode-map "\M-\C-m" 'org-insert-heading) -(define-key org-mode-map "\C-c\C-x\C-n" 'org-next-link) -(define-key org-mode-map "\C-c\C-x\C-p" 'org-previous-link) -(define-key org-mode-map "\C-c\C-l" 'org-insert-link) -(define-key org-mode-map "\C-c\C-o" 'org-open-at-point) -(define-key org-mode-map "\C-c%" 'org-mark-ring-push) -(define-key org-mode-map "\C-c&" 'org-mark-ring-goto) -(define-key org-mode-map "\C-c\C-z" 'org-time-stamp) ; Alternative binding -(define-key org-mode-map "\C-c." 'org-time-stamp) ; Minor-mode reserved -(define-key org-mode-map "\C-c!" 'org-time-stamp-inactive) ; Minor-mode r. -(define-key org-mode-map "\C-c," 'org-priority) ; Minor-mode reserved -(define-key org-mode-map "\C-c\C-y" 'org-evaluate-time-range) -(define-key org-mode-map "\C-c>" 'org-goto-calendar) -(define-key org-mode-map "\C-c<" 'org-date-from-calendar) -(define-key org-mode-map [(control ?,)] 'org-cycle-agenda-files) -(define-key org-mode-map [(control ?\')] 'org-cycle-agenda-files) -(define-key org-mode-map "\C-c[" 'org-agenda-file-to-front) -(define-key org-mode-map "\C-c]" 'org-remove-file) -(define-key org-mode-map "\C-c-" 'org-table-insert-hline) -(define-key org-mode-map "\C-c^" 'org-sort) -(define-key org-mode-map "\C-c\C-c" 'org-ctrl-c-ctrl-c) -(define-key org-mode-map "\C-c#" 'org-update-checkbox-count) -(define-key org-mode-map "\C-m" 'org-return) -(define-key org-mode-map "\C-c?" 'org-table-field-info) -(define-key org-mode-map "\C-c " 'org-table-blank-field) -(define-key org-mode-map "\C-c+" 'org-table-sum) -(define-key org-mode-map "\C-c=" 'org-table-eval-formula) -(define-key org-mode-map "\C-c'" 'org-table-edit-formulas) -(define-key org-mode-map "\C-c`" 'org-table-edit-field) -(define-key org-mode-map "\C-c|" 'org-table-create-or-convert-from-region) -(define-key org-mode-map "\C-c*" 'org-table-recalculate) -(define-key org-mode-map [(control ?#)] 'org-table-rotate-recalc-marks) -(define-key org-mode-map "\C-c~" 'org-table-create-with-table.el) -(define-key org-mode-map "\C-c\C-q" 'org-table-wrap-region) -(define-key org-mode-map "\C-c}" 'org-table-toggle-coordinate-overlays) -(define-key org-mode-map "\C-c{" 'org-table-toggle-formula-debugger) -(define-key org-mode-map "\C-c\C-e" 'org-export) -(define-key org-mode-map "\C-c:" 'org-toggle-fixed-width-section) - -(define-key org-mode-map "\C-c\C-x\C-k" 'org-cut-special) -(define-key org-mode-map "\C-c\C-x\C-w" 'org-cut-special) -(define-key org-mode-map "\C-c\C-x\M-w" 'org-copy-special) -(define-key org-mode-map "\C-c\C-x\C-y" 'org-paste-special) - -(define-key org-mode-map "\C-c\C-x\C-t" 'org-toggle-time-stamp-overlays) -(define-key org-mode-map "\C-c\C-x\C-i" 'org-clock-in) -(define-key org-mode-map "\C-c\C-x\C-o" 'org-clock-out) -(define-key org-mode-map "\C-c\C-x\C-x" 'org-clock-cancel) -(define-key org-mode-map "\C-c\C-x\C-d" 'org-clock-display) -(define-key org-mode-map "\C-c\C-x\C-r" 'org-clock-report) -(define-key org-mode-map "\C-c\C-x\C-u" 'org-dblock-update) -(define-key org-mode-map "\C-c\C-x\C-l" 'org-preview-latex-fragment) -(define-key org-mode-map "\C-c\C-x\C-b" 'org-toggle-checkbox) +(org-defkey org-mode-map "\C-c\C-a" 'show-all) ; in case allout messed up. +(org-defkey org-mode-map "\C-c\C-r" 'org-reveal) +(org-defkey org-mode-map "\C-xns" 'org-narrow-to-subtree) +(org-defkey org-mode-map "\C-c$" 'org-archive-subtree) +(org-defkey org-mode-map "\C-c\C-x\C-s" 'org-advertized-archive-subtree) +(org-defkey org-mode-map "\C-c\C-x\C-a" 'org-toggle-archive-tag) +(org-defkey org-mode-map "\C-c\C-xb" 'org-tree-to-indirect-buffer) +(org-defkey org-mode-map "\C-c\C-j" 'org-goto) +(org-defkey org-mode-map "\C-c\C-t" 'org-todo) +(org-defkey org-mode-map "\C-c\C-s" 'org-schedule) +(org-defkey org-mode-map "\C-c\C-d" 'org-deadline) +(org-defkey org-mode-map "\C-c;" 'org-toggle-comment) +(org-defkey org-mode-map "\C-c\C-v" 'org-show-todo-tree) +(org-defkey org-mode-map "\C-c\C-w" 'org-check-deadlines) +(org-defkey org-mode-map "\C-c/" 'org-occur) ; Minor-mode reserved +(org-defkey org-mode-map "\C-c\\" 'org-tags-sparse-tree) ; Minor-mode res. +(org-defkey org-mode-map "\C-c\C-m" 'org-ctrl-c-ret) +(org-defkey org-mode-map "\M-\C-m" 'org-insert-heading) +(org-defkey org-mode-map "\C-c\C-x\C-n" 'org-next-link) +(org-defkey org-mode-map "\C-c\C-x\C-p" 'org-previous-link) +(org-defkey org-mode-map "\C-c\C-l" 'org-insert-link) +(org-defkey org-mode-map "\C-c\C-o" 'org-open-at-point) +(org-defkey org-mode-map "\C-c%" 'org-mark-ring-push) +(org-defkey org-mode-map "\C-c&" 'org-mark-ring-goto) +(org-defkey org-mode-map "\C-c\C-z" 'org-time-stamp) ; Alternative binding +(org-defkey org-mode-map "\C-c." 'org-time-stamp) ; Minor-mode reserved +(org-defkey org-mode-map "\C-c!" 'org-time-stamp-inactive) ; Minor-mode r. +(org-defkey org-mode-map "\C-c," 'org-priority) ; Minor-mode reserved +(org-defkey org-mode-map "\C-c\C-y" 'org-evaluate-time-range) +(org-defkey org-mode-map "\C-c>" 'org-goto-calendar) +(org-defkey org-mode-map "\C-c<" 'org-date-from-calendar) +(org-defkey org-mode-map [(control ?,)] 'org-cycle-agenda-files) +(org-defkey org-mode-map [(control ?\')] 'org-cycle-agenda-files) +(org-defkey org-mode-map "\C-c[" 'org-agenda-file-to-front) +(org-defkey org-mode-map "\C-c]" 'org-remove-file) +(org-defkey org-mode-map "\C-c-" 'org-table-insert-hline) +(org-defkey org-mode-map "\C-c^" 'org-sort) +(org-defkey org-mode-map "\C-c\C-c" 'org-ctrl-c-ctrl-c) +(org-defkey org-mode-map "\C-c#" 'org-update-checkbox-count) +(org-defkey org-mode-map "\C-m" 'org-return) +(org-defkey org-mode-map "\C-c?" 'org-table-field-info) +(org-defkey org-mode-map "\C-c " 'org-table-blank-field) +(org-defkey org-mode-map "\C-c+" 'org-table-sum) +(org-defkey org-mode-map "\C-c=" 'org-table-eval-formula) +(org-defkey org-mode-map "\C-c'" 'org-table-edit-formulas) +(org-defkey org-mode-map "\C-c`" 'org-table-edit-field) +(org-defkey org-mode-map "\C-c|" 'org-table-create-or-convert-from-region) +(org-defkey org-mode-map "\C-c*" 'org-table-recalculate) +(org-defkey org-mode-map [(control ?#)] 'org-table-rotate-recalc-marks) +(org-defkey org-mode-map "\C-c~" 'org-table-create-with-table.el) +(org-defkey org-mode-map "\C-c\C-q" 'org-table-wrap-region) +(org-defkey org-mode-map "\C-c}" 'org-table-toggle-coordinate-overlays) +(org-defkey org-mode-map "\C-c{" 'org-table-toggle-formula-debugger) +(org-defkey org-mode-map "\C-c\C-e" 'org-export) +(org-defkey org-mode-map "\C-c:" 'org-toggle-fixed-width-section) +(org-defkey org-mode-map "\C-c\C-x\C-f" 'org-emphasize) + +(org-defkey org-mode-map "\C-c\C-x\C-k" 'org-cut-special) +(org-defkey org-mode-map "\C-c\C-x\C-w" 'org-cut-special) +(org-defkey org-mode-map "\C-c\C-x\M-w" 'org-copy-special) +(org-defkey org-mode-map "\C-c\C-x\C-y" 'org-paste-special) + +(org-defkey org-mode-map "\C-c\C-x\C-t" 'org-toggle-time-stamp-overlays) +(org-defkey org-mode-map "\C-c\C-x\C-i" 'org-clock-in) +(org-defkey org-mode-map "\C-c\C-x\C-o" 'org-clock-out) +(org-defkey org-mode-map "\C-c\C-x\C-x" 'org-clock-cancel) +(org-defkey org-mode-map "\C-c\C-x\C-d" 'org-clock-display) +(org-defkey org-mode-map "\C-c\C-x\C-r" 'org-clock-report) +(org-defkey org-mode-map "\C-c\C-x\C-u" 'org-dblock-update) +(org-defkey org-mode-map "\C-c\C-x\C-l" 'org-preview-latex-fragment) +(org-defkey org-mode-map "\C-c\C-x\C-b" 'org-toggle-checkbox) (when (featurep 'xemacs) - (define-key org-mode-map 'button3 'popup-mode-menu)) + (org-defkey org-mode-map 'button3 'popup-mode-menu)) (defsubst org-table-p () (org-at-table-p)) @@ -18779,7 +20556,6 @@ because, in this case the deletion might narrow the column." (put 'org-delete-char 'flyspell-delayed t) (put 'org-delete-backward-char 'flyspell-delayed t) - ;; How to do this: Measure non-white length of current string ;; If equal to column width, we should realign. @@ -18790,7 +20566,7 @@ COMMANDS is a list of alternating OLDDEF NEWDEF command names." (while commands (setq old (pop commands) new (pop commands)) (if (fboundp 'command-remapping) - (define-key map (vector 'remap old) new) + (org-defkey map (vector 'remap old) new) (substitute-key-definition old new map global-map))))) (when (eq org-enable-table-editor 'optimized) @@ -18800,7 +20576,7 @@ COMMANDS is a list of alternating OLDDEF NEWDEF command names." 'self-insert-command 'org-self-insert-command 'delete-char 'org-delete-char 'delete-backward-char 'org-delete-backward-char) - (define-key org-mode-map "|" 'org-force-self-insert)) + (org-defkey org-mode-map "|" 'org-force-self-insert)) (defun org-shiftcursor-error () "Throw an error because Shift-Cursor command was applied in wrong context." @@ -18821,7 +20597,8 @@ See the individual commands for more information." (defun org-shiftmetaleft () "Promote subtree or delete table column. -Calls `org-promote-subtree' or `org-table-delete-column', depending on context. +Calls `org-promote-subtree', `org-outdent-item', +or `org-table-delete-column', depending on context. See the individual commands for more information." (interactive) (cond @@ -18832,7 +20609,8 @@ See the individual commands for more information." (defun org-shiftmetaright () "Demote subtree or insert table column. -Calls `org-demote-subtree' or `org-table-insert-column', depending on context. +Calls `org-demote-subtree', `org-indent-item', +or `org-table-insert-column', depending on context. See the individual commands for more information." (interactive) (cond @@ -18916,8 +20694,8 @@ commands for more information." (defun org-shiftup (&optional arg) "Increase item in timestamp or increase priority of current headline. -Calls `org-timestamp-up' or `org-priority-up', depending on context. -See the individual commands for more information." +Calls `org-timestamp-up' or `org-priority-up', or `org-previous-item', +depending on context. See the individual commands for more information." (interactive "P") (cond ((org-at-timestamp-p t) (call-interactively 'org-timestamp-up)) @@ -18927,8 +20705,8 @@ See the individual commands for more information." (defun org-shiftdown (&optional arg) "Decrease item in timestamp or decrease priority of current headline. -Calls `org-timestamp-down' or `org-priority-down', depending on context. -See the individual commands for more information." +Calls `org-timestamp-down' or `org-priority-down', or `org-next-item' +depending on context. See the individual commands for more information." (interactive "P") (cond ((org-at-timestamp-p t) (call-interactively 'org-timestamp-down)) @@ -18951,6 +20729,27 @@ See the individual commands for more information." ((org-on-heading-p) (org-call-with-arg 'org-todo 'left)) (t (org-shiftcursor-error)))) +(defun org-shiftcontrolright () + "Switch to next TODO set." + (interactive) + (cond + ((org-on-heading-p) (org-call-with-arg 'org-todo 'nextset)) + (t (org-shiftcursor-error)))) + +(defun org-shiftcontrolleft () + "Switch to previous TODO set." + (interactive) + (cond + ((org-on-heading-p) (org-call-with-arg 'org-todo 'previousset)) + (t (org-shiftcursor-error)))) + +(defun org-ctrl-c-ret () + "Call `org-table-hline-and-move' or `org-insert-heading' dep. on context." + (interactive) + (cond + ((org-at-table-p) (call-interactively 'org-table-hline-and-move)) + (t (call-interactively 'org-insert-heading)))) + (defun org-copy-special () "Copy region in table or copy current subtree. Calls `org-table-copy' or `org-copy-subtree', depending on context. @@ -19159,7 +20958,11 @@ See the individual commands for more information." ["Next Same Level" outline-forward-same-level t] ["Previous Same Level" outline-backward-same-level t] "--" - ["Jump" org-goto t]) + ["Jump" org-goto t] + "--" + ["C-a finds headline start" + (setq org-special-ctrl-a (not org-special-ctrl-a)) + :style toggle :selected org-special-ctrl-a]) ("Edit Structure" ["Move Subtree Up" org-shiftmetaup (not (org-at-table-p))] ["Move Subtree Down" org-shiftmetadown (not (org-at-table-p))] @@ -19177,6 +20980,8 @@ See the individual commands for more information." "--" ["Convert to odd levels" org-convert-to-odd-levels t] ["Convert to odd/even levels" org-convert-to-oddeven-levels t]) + ("Editing" + ["Emphasis..." org-emphasize t]) ("Archive" ["Toggle ARCHIVE tag" org-toggle-archive-tag t] ; ["Check and Tag Children" (org-toggle-archive-tag (4)) @@ -19202,7 +21007,9 @@ See the individual commands for more information." ("Select keyword" ["Next keyword" org-shiftright (org-on-heading-p)] ["Previous keyword" org-shiftleft (org-on-heading-p)] - ["Complete Keyword" org-complete (assq :todo-keyword (org-context))]) + ["Complete Keyword" org-complete (assq :todo-keyword (org-context))] + ["Next keyword set" org-shiftcontrolright (and (> (length org-todo-sets) 1) (org-on-heading-p))] + ["Previous keyword set" org-shiftcontrolright (and (> (length org-todo-sets) 1) (org-on-heading-p))]) ["Show TODO Tree" org-show-todo-tree t] ["Global TODO list" org-todo-list t] "--" @@ -19210,6 +21017,7 @@ See the individual commands for more information." ["Priority Up" org-shiftup t] ["Priority Down" org-shiftdown t] "--" + ;; FIXME: why is this still here???? ; ["Insert Checkbox" org-insert-todo-heading (org-in-item-p)] ; ["Toggle Checkbox" org-ctrl-c-ctrl-c (org-at-item-checkbox-p)] ; ["Insert [n/m] cookie" (progn (insert "[/]") (org-update-checkbox-count)) @@ -19245,7 +21053,7 @@ See the individual commands for more information." ["Record DONE time" (progn (setq org-log-done (not org-log-done)) (message "Switching to %s will %s record a timestamp" - org-done-string + (car org-done-keywords) (if org-log-done "automatically" "not"))) :style toggle :selected org-log-done]) "--" @@ -19297,15 +21105,6 @@ See the individual commands for more information." ["Refresh setup" org-mode-restart t] )) -(defun org-toggle-log-option (type) - (if (not (listp org-log-done)) (setq org-log-done nil)) - (if (memq type org-log-done) - (setq org-log-done (delq type org-log-done)) - (add-to-list 'org-log-done type))) - -(defun org-check-log-option (type) - (and (listp org-log-done) (memq type org-log-done))) - (defun org-info (&optional node) "Read documentation for Org-mode in the info system. With optional NODE, go directly to that node." @@ -19394,7 +21193,7 @@ and :keyword." (p (point)) clist o) ;; First the large context (cond - ((org-on-heading-p) + ((org-on-heading-p t) (push (list :headline (point-at-bol) (point-at-eol)) clist) (when (progn (beginning-of-line 1) @@ -19404,7 +21203,7 @@ and :keyword." (push (org-point-in-group p 4 :tags) clist)) (goto-char p) (skip-chars-backward "^[\n\r \t") (or (eobp) (backward-char 1)) - (if (looking-at "\\[#[A-Z]\\]") + (if (looking-at "\\[#[A-Z0-9]\\]") (push (org-point-in-group p 0 :priority) clist))) ((org-at-item-p) @@ -19459,6 +21258,7 @@ and :keyword." (setq clist (nreverse (delq nil clist))) clist)) +;; FIXME Compare with at-regexp-p (defun org-in-regexp (re &optional nlines visually) "Check if point is inside a match of regexp. Normally only the current line is checked, but you can include NLINES extra @@ -19472,10 +21272,34 @@ really on, so that the block visually is on the match." (save-excursion (beginning-of-line (- 1 (or nlines 0))) (while (re-search-forward re eol t) - (if (and (<= (match-beginning 0) pos) + (if (and (<= (match-beginning 0) pos) (>= (+ inc (match-end 0)) pos)) (throw 'exit (cons (match-beginning 0) (match-end 0))))))))) +(defun org-at-regexp-p (regexp) + "Is point inside a match of REGEXP in the current line?" + (catch 'exit + (save-excursion + (let ((pos (point)) (end (point-at-eol))) + (beginning-of-line 1) + (while (re-search-forward regexp end t) + (if (and (<= (match-beginning 0) pos) + (>= (match-end 0) pos)) + (throw 'exit t))) + nil)))) + +(defun org-uniquify (list) + "Remove duplicate elements from LIST." + (let (res) + (mapc (lambda (x) (add-to-list 'res x 'append)) list) + res)) + +(defun org-delete-all (elts list) + "Remove all elements in ELTS from LIST." + (while elts + (setq list (delete (pop elts) list))) + list) + (defun org-point-in-group (point group &optional context) "Check if POINT is in match-group GROUP. If CONTEXT is non-nil, return a list with CONTEXT and the boundaries of the @@ -19535,7 +21359,7 @@ The sequences in STRING may contain normal field width and padding information, for example \"%-5s\". Replacements happen in the sequence given by TABLE, so values can contain further %-escapes if they are define later in TABLE." (let ((case-fold-search nil) - e re rpl) + e re rpl) (while (setq e (pop table)) (setq re (concat "%-?[0-9.]*" (substring (car e) 1))) (while (string-match re string) @@ -19555,27 +21379,49 @@ Counting starts at 1." (setq c (1+ c))) (nreverse rtn))) -(defun org-at-regexp-p (regexp) - "Is point inside a match of REGEXP in the current line?" - (catch 'exit - (save-excursion - (let ((pos (point)) (end (point-at-eol))) - (beginning-of-line 1) - (while (re-search-forward regexp end t) - (if (and (<= (match-beginning 0) pos) - (>= (match-end 0) pos)) - (throw 'exit t))) - nil)))) - (defun org-find-base-buffer-visiting (file) "Like `find-buffer-visiting' but alway return the base buffer and not an indirect buffer" (let ((buf (find-buffer-visiting file))) (or (buffer-base-buffer buf) buf))) +(defun org-image-file-name-regexp () + "Return regexp matching the file names of images." + (if (fboundp 'image-file-name-regexp) + (image-file-name-regexp) + (let ((image-file-name-extensions + '("png" "jpeg" "jpg" "gif" "tiff" "tif" + "xbm" "xpm" "pbm" "pgm" "ppm"))) + (concat "\\." + (regexp-opt (nconc (mapcar 'upcase + image-file-name-extensions) + image-file-name-extensions) + t) + "\\'")))) + +(defun org-file-image-p (file) + "Return non-nil if FILE is an image." + (save-match-data + (string-match (org-image-file-name-regexp) file))) + ;;; Paragraph filling stuff. ;; We want this to be just right, so use the full arsenal. -;; FIXME: configure filladapt for XEmacs + +(defun org-indent-line-function () + "Indent line like previous, but further if previous was headline or item." + (interactive) + (let ((column (save-excursion + (beginning-of-line) + (if (looking-at "#") 0 + (skip-chars-backward "\n \t") + (beginning-of-line) + (if (or (looking-at "\\*+[ \t]+") + (looking-at "[ \t]*\\([-+*][ \t]+\\|[0-9]+[.)][ \t]+\\)")) + (progn (goto-char (match-end 0)) (current-column)) + (current-indentation)))))) + (if (<= (current-column) (current-indentation)) + (indent-line-to column) + (save-excursion (indent-line-to column))))) (defun org-set-autofill-regexps () (interactive) @@ -19584,6 +21430,7 @@ not an indirect buffer" ;; fill the headline as well. (org-set-local 'comment-start-skip "^#+[ \t]*") (org-set-local 'paragraph-separate "\f\\|\\*\\|[ ]*$\\|[ \t]*[:|]") +;; FIXME!!!!!!! (org-set-local 'paragraph-separate "\f\\|[ ]*$") ;; The paragraph starter includes hand-formatted lists. (org-set-local 'paragraph-start "\f\\|[ ]*$\\|\\([*\f]+\\)\\|[ \t]*\\([-+*][ \t]+\\|[0-9]+[.)][ \t]+\\)\\|[ \t]*[:|]") @@ -19627,30 +21474,12 @@ In particular, this makes sure hanging paragraphs for hand-formatted lists work correctly." (cond ((looking-at "#[ \t]+") (match-string 0)) - ((looking-at " *\\([-*+] \\|[0-9]+[.)] \\)?") - (make-string (- (match-end 0) (match-beginning 0)) ?\ )) + ((looking-at "[ \t]*\\([-*+] \\|[0-9]+[.)] \\)?") + (save-excursion + (goto-char (match-end 0)) + (make-string (current-column) ?\ ))) (t nil))) - -(defun org-image-file-name-regexp () - "Return regexp matching the file names of images." - (if (fboundp 'image-file-name-regexp) - (image-file-name-regexp) - (let ((image-file-name-extensions - '("png" "jpeg" "jpg" "gif" "tiff" "tif" - "xbm" "xpm" "pbm" "pgm" "ppm"))) - (concat "\\." - (regexp-opt (nconc (mapcar 'upcase - image-file-name-extensions) - image-file-name-extensions) - t) - "\\'")))) - -(defun org-file-image-p (file) - "Return non-nil if FILE is an image." - (save-match-data - (string-match (org-image-file-name-regexp) file))) - ;;;; Functions extending outline functionality ;; C-a should go to the beginning of a *visible* line, also in the @@ -19659,15 +21488,22 @@ work correctly." "Go to the beginning of the current line. If that is invisible, continue to a visible line beginning. This makes the function of C-a more intuitive." (interactive) - (beginning-of-line 1) - (if (bobp) - nil - (backward-char 1) - (if (org-invisible-p) - (while (and (not (bobp)) (org-invisible-p)) - (backward-char 1) - (beginning-of-line 1)) - (forward-char 1)))) + (let ((pos (point))) + (beginning-of-line 1) + (if (bobp) + nil + (backward-char 1) + (if (org-invisible-p) + (while (and (not (bobp)) (org-invisible-p)) + (backward-char 1) + (beginning-of-line 1)) + (forward-char 1))) + (when (and org-special-ctrl-a (looking-at org-todo-line-regexp) + (= (char-after (match-end 1)) ?\ )) + (goto-char + (cond ((> pos (match-beginning 3)) (match-beginning 3)) + ((= pos (point)) (match-beginning 3)) + (t (point))))))) (define-key org-mode-map "\C-a" 'org-beginning-of-line) @@ -19689,6 +21525,9 @@ to a visible line beginning. This makes the function of C-a more intuitive." (defalias 'org-back-to-heading 'outline-back-to-heading) (defalias 'org-on-heading-p 'outline-on-heading-p) +(defalias 'org-at-heading-p 'outline-on-heading-p) +(defun org-at-heading-or-item-p () + (or (org-on-heading-p) (org-at-item-p))) (defun org-on-target-p () (or (org-in-regexp org-radio-target-regexp) @@ -19751,7 +21590,7 @@ When ENTRY is non-nil, show the entire entry." (save-excursion (outline-end-of-heading) (point)) flag)))) -(defun org-end-of-subtree (&optional invisible-OK) +(defun org-end-of-subtree (&optional invisible-OK to-heading) ;; This is an exact copy of the original function, but it uses ;; `org-back-to-heading', to make it work also in invisible ;; trees. And is uses an invisible-OK argument. @@ -19763,13 +21602,14 @@ When ENTRY is non-nil, show the entire entry." (or first (> (funcall outline-level) level))) (setq first nil) (outline-next-heading)) - (if (memq (preceding-char) '(?\n ?\^M)) - (progn - ;; Go to end of line before heading - (forward-char -1) - (if (memq (preceding-char) '(?\n ?\^M)) - ;; leave blank line before heading - (forward-char -1))))) + (unless to-heading + (if (memq (preceding-char) '(?\n ?\^M)) + (progn + ;; Go to end of line before heading + (forward-char -1) + (if (memq (preceding-char) '(?\n ?\^M)) + ;; leave blank line before heading + (forward-char -1)))))) (point)) (defun org-show-subtree () @@ -19824,7 +21664,13 @@ Show the heading too, if it is currently invisible." (remove-hook 'post-command-hook 'org-isearch-post-command 'local) (org-show-context 'isearch)) -;;;; Repair problems with some other packages + +;;;; Address problems with some other packages + +;; Make flyspell not check words in links, to not mess up our keymap +(defun org-mode-flyspell-verify () + "Don't let flyspell put overlays at active buttons." + (not (get-text-property (point) 'keymap))) ;; Make `bookmark-jump' show the jump location if it was hidden. (eval-after-load "bookmark" @@ -19850,6 +21696,26 @@ Show the heading too, if it is currently invisible." ;;;; Experimental code +(defun org-closed-in-range () + "Sparse tree of items closed in a certain time range. +Still experimental, may disappear in the furture." + (interactive) + ;; Get the time interval from the user. + (let* ((time1 (time-to-seconds + (org-read-date nil 'to-time nil "Starting date: "))) + (time2 (time-to-seconds + (org-read-date nil 'to-time nil "End date:"))) + ;; callback function + (callback (lambda () + (let ((time + (time-to-seconds + (apply 'encode-time + (org-parse-time-string + (match-string 1)))))) + ;; check if time in interval + (and (>= time time1) (<= time time2)))))) + ;; make tree, check each match with the callback + (org-occur "CLOSED: +\\[\\(.*?\\)\\]" nil callback))) ;;;; Finish up diff --git a/lisp/tutorial.el b/lisp/tutorial.el index 4856d178056..384b9b8415c 100644 --- a/lisp/tutorial.el +++ b/lisp/tutorial.el @@ -155,9 +155,9 @@ options: " RET instead.")) (insert "\n\nWith your current key bindings" " you can use " - (if (string-equal "the menus" where) + (if (string-match "^the .*menus?$" where) "" - "the key ") + "the key") where " to get the function `" (format "%s" db) @@ -406,7 +406,7 @@ where WHERE is a text describing the key sequences to which DEF-FUN is bound now (or, if it is remapped, a key sequence for the function it is remapped to) - REMARK is a list with info about rebinding. It has either of + REMARK is a list with info about rebinding. It has either of these formats: \(TEXT cua-mode) @@ -434,14 +434,26 @@ where (key-fun (if (eq def-fun 'ESC-prefix) (lookup-key global-map [27]) (key-binding key))) - (where (where-is-internal (if rem-fun rem-fun def-fun)))) + (where (where-is-internal (if rem-fun rem-fun def-fun))) + cwhere) (if where (progn - (setq where (key-description (car where))) + (setq cwhere (car where) + where (key-description cwhere)) (when (and (< 10 (length where)) (string= (substring where 0 (length "<menu-bar>")) "<menu-bar>")) - (setq where "the menus"))) + (setq where + (if (and (vectorp cwhere) + (setq cwhere (elt cwhere 1)) + (setq cwhere + (cadr + (assoc cwhere + (lookup-key global-map + [menu-bar])))) + (stringp cwhere)) + (format "the `%s' menu" cwhere) + "the menus")))) (setq where "")) (setq remark nil) (unless @@ -915,7 +927,7 @@ See `get-lang-string' for more information.") In certain places Emacs can replace a string shown to the user with a language specific string. This function retrieves such strings. -LANG is the language specification. It should be one of those +LANG is the language specification. It should be one of those strings that can be returned by `read-language-name'. STRINGID is a symbol that specifies the string to retrieve. diff --git a/lisp/version.el b/lisp/version.el index dda64ccb4f1..aa543e0d516 100644 --- a/lisp/version.el +++ b/lisp/version.el @@ -27,6 +27,9 @@ ;;; Code: +(defconst emacs-copyright "Copyright (C) 2007 Free Software Foundation, Inc." + "Short copyright string for this version of Emacs.") + (defconst emacs-version "23.0.51" "\ Version numbers of this version of Emacs.") |