diff options
Diffstat (limited to 'lisp')
1368 files changed, 16131 insertions, 5786 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index cf042ec6c82..dfc21373806 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,339 @@ +2012-01-09 Chong Yidong <cyd@gnu.org> + + * custom.el (custom-safe-themes): Use SHA-256 for hashing. + +2012-01-08 Alan Mackenzie <acm@muc.de> + + Optimise font locking in long enum definitions. + + * progmodes/cc-fonts.el (c-font-lock-declarations): Add an extra + arm to a cond form to handle enums. + * progmodes/cc-langs.el (c-enums-contain-decls): New lang variable. + * progmodes/cc-mode.el (c-font-lock-fontify-region): Correct a typo. + +2012-01-07 Paul Eggert <eggert@cs.ucla.edu> + + * files.el (move-file-to-trash): Preserve default file modes on error. + (Bug#10401) + +2012-01-07 Lars Magne Ingebrigtsen <larsi@gnus.org> + + * faces.el (set-face-attribute): Clarify the meaning of the nil + frame (bug#10294). + + * subr.el (with-selected-frame): Mention that the selected frame + is restored (bug#9980). + + * ibuffer.el (ibuffer-mode): List the bindings in the corrent map + (bug#9759). + + * mail/smtpmail.el (password-cache-add): Removed unused declaration. + (password-read): Don't autoload unused function. + +2012-01-07 Juanma Barranquero <lekktu@gmail.com> + + * progmodes/which-func.el (which-func-mode): Turn into a + non-interactive function and mark as obsolete (bug#10428). + +2012-01-06 Chong Yidong <cyd@gnu.org> + + * files.el (hack-dir-local-variables-non-file-buffer): Add doc. + (hack-one-local-variable-eval-safep): Allow 0 arg for minor mode + functions, along with 1 and -1. + +2012-01-06 Eli Zaretskii <eliz@gnu.org> + + * time.el (display-time-load-average) + (display-time-default-load-average): Doc fixes. See the thread + starting at + http://lists.gnu.org/archive/html/help-gnu-emacs/2012-01/msg00059.html + for the details. + +2012-01-06 Glenn Morris <rgm@gnu.org> + + * mail/unrmail.el (unrmail): Give an explicit error if the input file + has no messages. (Bug#10377) + + * info.el (Info-mode-map): Bind e to end-of-buffer, rather + than Info-edit. (Bug#10385) + + * time.el (display-time-load-average, display-time-next-load-average): + Doc fixes. + + * emacs-lisp/bytecomp.el (byte-compile-file): Do not propagate a file + local setting of buffer-read-only to the input buffer. (Bug#10419) + + * calendar/calendar.el (calendar-mode): + Locally set scroll-margin to 0. (Bug#10379) + +2012-01-06 Ulrich Mueller <ulm@gentoo.org> + + * play/doctor.el (doctor-death): Escape "," characters. (Bug#10370) + +2012-01-05 Glenn Morris <rgm@gnu.org> + + * eshell/em-unix.el (diff-no-select): Autoload it. + (eshell/diff): Use diff-no-select. (Bug#10420) + +2012-01-05 Chong Yidong <cyd@gnu.org> + + * shell.el (shell-dynamic-complete-functions): Revert last change. + (shell-command-completion-function): New function. + (shell-completion-vars): Use it to implement + shell-completion-execonly (Bug#10417). + + * custom.el (enable-theme): Don't set custom-safe-themes. + + * cus-theme.el (custom-theme-merge-theme): Ignore + custom-enabled-themes and custom-safe-themes. + +2012-01-05 Michael R. Mauger <mmaug@yahoo.com> + + * progmodes/sql.el (sql-login-hook): Add hook to respond to the + first prompt in `sql-interacive-mode'. + (sql-mode-oracle-font-lock-keywords): Add CONNECT_BY_* builtin + keywords. + (sql-mode-mysql-font-lock-keywords): Add ELSEIF keyword. + (sql-product-interactive): Bug fix: Set `sql-buffer' in + context of original buffer. Invoke `sql-login-hook'. + +2012-01-04 Eli Zaretskii <eliz@gnu.org> + + * mail/rmail.el (rmail-font-lock-keywords): Accept non-ASCII + letters in cite-prefix. + +2012-01-03 Lars Magne Ingebrigtsen <larsi@gnus.org> + + * mail/smtpmail.el (smtpmail-stream-type): Mention the `ssl' value. + +2012-01-03 Chong Yidong <cyd@gnu.org> + + * shell.el (shell-dynamic-complete-functions): Put + pcomplete-completions-at-point, so as to try + comint-filename-completion first (Bug#10417). + +2012-01-02 Richard Stallman <rms@gnu.org> + + * battery.el (battery-status-function): + Detect when to use battery-yeeloong-sysfs. + (battery-echo-area-format): Add string for Yeeloong. + (battery-linux-proc-apm, battery-linux-proc-acpi): Doc fixes. + (battery-yeeloong-sysfs): New function. + +2012-01-02 Chong Yidong <cyd@gnu.org> + + * dirtrack.el (dirtrack-list): Eliminate unused third element. + (dirtrack): Merge code for handling relative filenames in prompt + from shell-dir-cookie-watcher. + (dirtrack-debug-message): New arg to avoid excess format calls. + + * shell.el (shell-dir-cookie-re): Variable deleted. + (shell-dir-cookie-watcher): Function deleted. + (shell-mode): Don't use shell-dir-cookie-re, since it is redundant + with dirtrack-mode. + +2012-01-01 Eli Zaretskii <eliz@gnu.org> + + * term/w32-win.el (dynamic-library-alist) <gnutls>: Load + libgnutls-28.dll, from GnuTLS version 3.x, in preference to + libgnutls-26.dll. + +2011-12-31 Andreas Schwab <schwab@linux-m68k.org> + + * emacs-lisp/bytecomp.el (byte-compile-file): Fix indentation. + +2011-12-31 Eli Zaretskii <eliz@gnu.org> + + * mail/rmail.el (rmail-show-message-1): Decode any RFC2047 encoded + headers of non-MIME messages, when rmail-enable-mime is non-nil. + +2011-12-29 Michael Albinus <michael.albinus@gmx.de> + + * net/tramp-sh.el (tramp-find-shell): Set "remote-shell" property + also for alternative shells. + (tramp-open-connection-setup-interactive-shell): Check, whether + the shell is a busybox. + (tramp-send-command): Don't suppress multiple prompts for + busyboxes, it hurts. + +2011-12-28 Chong Yidong <cyd@gnu.org> + + * progmodes/gdb-mi.el (gdb-get-source-file-list) + (gdb-get-source-file): Move mode line update to + gdb-get-source-file (Bug#10087). + +2011-12-25 Chong Yidong <cyd@gnu.org> + + * progmodes/gud.el (gud-gdb-fetch-lines-filter): Just use + gud-gdb-marker-filter without taking it as an argument. + (gud-gdb-run-command-fetch-lines): Caller changed. + (gud-gdb-completion-function): New variable. + (gud-gdb-completion-at-point): Use it. + (gud-gdb-completions-1): Split from gud-gdb-completions. + + * progmodes/gdb-mi.el (gdb-input): Accept command and handler + function as separate arguments. + (gdb-init-1, gdb-non-stop-handler, gdb-check-target-async) + (gdb-tooltip-print-1, gud-watch, gdb-speedbar-update) + (gdb-var-list-children, gdb-var-set-format, gdb-var-delete-1) + (gdb-var-delete-children, gdb-edit-value, gdb-var-update) + (gdb-stopped, def-gdb-auto-update-trigger) + (gdb-place-breakpoints, gdb-select-thread, gdb-select-frame) + (gdb-get-changed-registers, gdb-get-main-selected-frame): + Callers changed. + (gud-gdbmi-completions): New function. + (gdb): Use it for generating the completion table. + +2011-12-24 Alan Mackenzie <acm@muc.de> + + Introduce a mechanism to widen the region used in context font + locking. Use this to protect declarations from losing their + contexts. + + * progmodes/cc-langs.el (c-before-font-lock-functions): Replace + c-set-fl-decl-start with c-change-set-fl-decl-start (Renaming). + (c-before-context-fontification-functions): New defvar, a list of + functions to be run just before context (etc.) font locking. + + * progmodes/cc-mode.el (c-extend-font-lock-region-for-macros): + New, functionality extracted from + c-neutralize-syntax-in-and-mark-CPP. + (c-in-after-change-fontification): New variable. + (c-after-change): Set c-in-after-change-fontification. + (c-set-fl-decl-start): Rejig its interface, so it can be called + from both after-change and context fontifying. + (c-change-set-fl-decl-start, c-context-set-fl-decl-start): + New functions. + (c-standard-font-lock-fontify-region-function): New variable. + (c-font-lock-fontify-region): New function. + +2011-12-24 Juri Linkov <juri@jurta.org> + + * window.el (window--state-get-1): Set `FORCE' arg of `mark' to t. + (Bug#10348) + +2011-12-23 Michael Albinus <michael.albinus@gmx.de> + + * net/ange-ftp.el (ange-ftp-copy-file-internal): Check for + existence of source file. (Bug#10325) + +2011-12-23 Alan Mackenzie <acm@muc.de> + + Fix unstable fontification inside templates. + + * progmodes/cc-langs.el (c-before-font-lock-functions): + Newly created from the singular version. The (c c++ objc) entry now + additionally has c-set-fl-decl-start. The other languages (apart + from AWK) have that as a single entry. + + * progmodes/cc-fonts.el (c-font-lock-enclosing-decls): + The functionality for "local" declarations has been extracted to + c-set-fl-decl-start. + + * progmodes/cc-mode.el (c-common-init, c-after-change): + Changes due to pluralisation of c-before-font-lock-functions. + (c-set-fl-decl-start): New function, extracted from + c-font-lock-enclosing-decls and enhanced. + +2011-12-23 Juanma Barranquero <lekktu@gmail.com> + + * desktop.el (desktop-internal-v2s): Fix typos in docstring (bug#10353). + +2011-12-22 Juri Linkov <juri@jurta.org> + + * progmodes/grep.el (rgrep): Fix docstring. (Bug#10185) + +2011-12-22 Chong Yidong <cyd@gnu.org> + + * vc/vc-hooks.el (vc-keep-workfiles): Doc fix. + +2011-12-21 Drew Adams <drew.adams@oracle.com> + + * files.el (file-remote-p): Fix docstring. (Bug#10319) + +2011-12-21 Jérémy Compostella <jeremy.compostella@gmail.com> + + * battery.el (battery-linux-sysfs): Add missing parameters from acpi. + +2011-12-21 Teodor Zlatanov <tzz@lifelogs.com> + + * progmodes/cfengine.el: Add Version. Improve CFEngine 3.x syntax + highlighting and support. Fix up comments for capitalization. + (cfengine-mode-debug): New var. + (cfengine3-mode): Change the modeline indicator to "CFE3". + (cfengine3-font-lock-keywords): Improve defun highlighting. + (cfengine2-actions): Rename from `cfengine-actions'. + (cfengine2-font-lock-keywords): Rename from + `cfengine-font-lock-keywords'. + (cfengine2-imenu-expression): Rename from + `cfengine-imenu-expression'. + (cfengine2-outline-level): Rename from `cfengine-outline-level'. + (cfengine2-beginning-of-defun): Rename from + `cfengine-beginning-of-defun'. + (cfengine2-end-of-defun): Rename from `cfengine-end-of-defun'. + (cfengine2-indent-line): Rename from `cfengine-indent-line'. + (cfengine2-mode): Rename from `cfengine-mode'. Change the + modeline indicator to "CFE2". + (cfengine-mode): Defalias to `cfengine-auto-mode'. + (cfengine-mode-abbrevs): Mark obsolete. + +2011-12-21 Chong Yidong <cyd@gnu.org> + + * vc/vc-bzr.el (vc-bzr-rename-file): Don't pass ~ to Bzr in + filename argument. + +2011-12-20 Martin Rudalics <rudalics@gmx.at> + + * window.el (window-normalize-buffer-to-display): Remove. + (display-buffer): Handle buffer-or-name argument as in Emacs 23. + +2011-12-19 Chong Yidong <cyd@gnu.org> + + * vc/vc-dir.el (vc-dir-parent-marked-p, vc-dir-children-marked-p): + Don't signal an error in a predicate function; return non-nil. + (vc-dir-mark-file): Move the error here. + (vc-dir-mark-unmark): If acting on the region, keep going if one + of the entries cannot be marked/unmarked. + (vc-dir-mark-all-files): If current entry is a directory, mark + only child files, as documented. + +2011-12-19 Vincent Belaïche <vincentb1@users.sourceforge.net> + + * ses.el: Ooops... undo changes of 2011-12-11T14:49:48Z!vincentb1@users.sourceforge.net, as trunk + branch is feature frozen, and 2011-12-11T14:49:48Z!vincentb1@users.sourceforge.net was a feature + addition. + +2011-12-18 Jan Djärv <jan.h.d@swipnet.se> + + * term/ns-win.el (ns-get-selection-internal) + (ns-store-selection-internal): Declare. + (ns-store-cut-buffer-internal, ns-get-cut-buffer-internal): + Declare as obsolete. + (ns-get-pasteboard, ns-paste-secondary): + Use ns-get-selection-internal. + (ns-set-pasteboard, ns-copy-including-secondary): + Use ns-store-selection-internal. + +2011-12-17 Chong Yidong <cyd@gnu.org> + + * vc/vc.el (vc-next-action): Doc fix; remove CVS-isms. + (vc-deduce-fileset): Doc fix. + +2011-12-16 Andreas Schwab <schwab@linux-m68k.org> + + * calc/calc-misc.el (calc-help): Avoid wrapping help message. + +2011-12-13 Sam Steingold <sds@gnu.org> + + * man.el (Man-getpage-in-background): When running under a + window-system, ignore $MANWIDTH and $COLUMNS. + +2011-12-15 Kenichi Handa <handa@m17n.org> + + * language/ethio-util.el: Change coding tag to utf-8-emacs. + (setup-ethiopic-environment-internal): Comment out key-binding for + ethio-toggle-punctuation. + 2011-12-13 Alan Mackenzie <acm@muc.de> Add the switch statement to AWK Mode. @@ -595,8 +931,8 @@ 2011-11-21 Juri Linkov <juri@jurta.org> - * calc/calc.el (calc-read-key-sequence): Let-bind `input-method-function' - to nil. (Bug#10018) + * calc/calc.el (calc-read-key-sequence): + Let-bind `input-method-function' to nil. (Bug#10018) 2011-11-21 Lars Magne Ingebrigtsen <larsi@gnus.org> @@ -2126,11 +2462,10 @@ 2011-09-24 Ulf Jasper <ulf.jasper@web.de> * net/newst-reader.el (newsticker-html-renderer) - (newsticker-show-news): Automatically - load html rendering package if newsticker-html-renderer is set. - Fixes "Warning: defvar ignored because w3m-fill-column is - let-bound" and the error "Symbol's value as variable is void: - w3m-fill-column". + (newsticker-show-news): Automatically load html rendering package + if newsticker-html-renderer is set. Fixes "Warning: defvar ignored + because w3m-fill-column is let-bound" and the error "Symbol's value + as variable is void: w3m-fill-column". 2011-09-24 Michael Albinus <michael.albinus@gmx.de> @@ -2244,8 +2579,8 @@ 2011-09-21 Martin Rudalics <rudalics@gmx.at> * window.el (set-window-buffer-start-and-point): - Call set-window-start with NOFORCE argument t. Suggested by Thierry - Volpiatto <thierry.volpiatto@gmail.com>. + Call set-window-start with NOFORCE argument t. + Suggested by Thierry Volpiatto <thierry.volpiatto@gmail.com>. (quit-window): Reword doc-string. Handle new format of quit-restore parameter. Don't delete window if it has a previous buffer we can show instead of the present one. @@ -2363,13 +2698,13 @@ 2011-09-18 Juri Linkov <juri@jurta.org> * info.el (Info-mode-syntax-table): New variable. - (Info-mode): Set `:syntax-table' to `Info-mode-syntax-table'. (Bug#3312) + (Info-mode): Set `:syntax-table' to `Info-mode-syntax-table' (bug#3312). 2011-09-18 Juri Linkov <juri@jurta.org> - * info.el (Info-file-supports-index-cookies): Increment - line-beginning-position's arg from 3 to 4 because makeinfo outputs - one more line for long file names (bug#4142). + * info.el (Info-file-supports-index-cookies): + Increment line-beginning-position's arg from 3 to 4 because makeinfo + outputs one more line for long file names (bug#4142). 2011-09-18 Chong Yidong <cyd@stupidchicken.com> @@ -4661,8 +4996,8 @@ pending encryption. (allout-inhibit-auto-save-info-for-decryption): - Adjust buffer-saved-size and some allout state to inhibit auto-saves if - there are plain-text topics pending encryption. + Adjust buffer-saved-size and some allout state to inhibit auto-saves + if there are plain-text topics pending encryption. (allout-maybe-resume-auto-save-info-after-encryption): Adjust buffer-saved-size and some allout state to not inhibit auto-saves @@ -5275,7 +5610,7 @@ (ses-calculate-cell, ses-update-cells): Use Dijkstra algorithm for cycle detection. (ses-self-reference-early-detection): New defcustom. - (ses-formula-references): Robustify against self-refering cells. + (ses-formula-references): Robustify against self-referring cells. (ses-mode): Use ses-set-localvars. (ses-command-hook): Add call to ses-initialize-Dijkstra-attempt before lauching the update processing. @@ -6092,11 +6427,11 @@ (split-window-keep-point): Mention split-window-above-each-other instead of split-window-vertically. (split-window-above-each-other, split-window-vertically): - Rename split-window-vertically to split-window-above-each-other and - provide defalias for old definition. - (split-window-side-by-side, split-window-horizontally): Rename - split-window-horizontally to split-window-side-by-side and provide - defalias for the old definition. + Rename split-window-vertically to split-window-above-each-other + and provide defalias for old definition. + (split-window-side-by-side, split-window-horizontally): + Rename split-window-horizontally to split-window-side-by-side + and provide defalias for the old definition. (ctl-x-map): Move bindings for delete-window, delete-other-windows and enlarge-window here from window.c. Replace bindings for split-window-vertically and @@ -9519,10 +9854,10 @@ preserves the existing header prefix, rebulleting it if necessary, rather than replacing it. This is necessary for proper operation of cooperative addons like allout-widgets. - (allout-make-topic-prefix, allout-rebullet-heading): Change - SOLICIT arg to INSTEAD, and interpret additionally a string value - as alternate bullet to be used, instead of prompting the user for - a bullet character. + (allout-make-topic-prefix, allout-rebullet-heading): + Change SOLICIT arg to INSTEAD, and interpret additionally a string + value as alternate bullet to be used, instead of prompting the user + for a bullet character. 2011-03-09 Michael Albinus <michael.albinus@gmx.de> @@ -9583,7 +9918,7 @@ See ChangeLog.15 for earlier changes. ;; coding: utf-8 ;; End: - Copyright (C) 2011 Free Software Foundation, Inc. + Copyright (C) 2011-2012 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/lisp/ChangeLog.1 b/lisp/ChangeLog.1 index aac6e998a88..5389bd27125 100644 --- a/lisp/ChangeLog.1 +++ b/lisp/ChangeLog.1 @@ -3247,7 +3247,7 @@ Set current buffer variables from defaults in case user's init file has changed them. - Copyright (C) 1985-1986, 2001-2011 Free Software Foundation, Inc. + Copyright (C) 1985-1986, 2001-2012 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/lisp/ChangeLog.10 b/lisp/ChangeLog.10 index a1cfaee6eaf..d94d72d0f3c 100644 --- a/lisp/ChangeLog.10 +++ b/lisp/ChangeLog.10 @@ -8278,7 +8278,7 @@ 2002-11-17 Markus Rost <rost@math.ohio-state.edu> * speedbar.el (defgroup speedbar): Use group 'etags instead of - nonexisting group 'tags. + nonexistent group 'tags. * emacs-lisp/re-builder.el: Add provide call. @@ -23534,7 +23534,7 @@ See ChangeLog.9 for earlier changes. ;; coding: utf-8 ;; End: - Copyright (C) 2001-2011 Free Software Foundation, Inc. + Copyright (C) 2001-2012 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/lisp/ChangeLog.11 b/lisp/ChangeLog.11 index 38a5530fbfc..dd1d113d665 100644 --- a/lisp/ChangeLog.11 +++ b/lisp/ChangeLog.11 @@ -1744,7 +1744,7 @@ substitute-env-vars -- not quite shell compatible but better than nothing. (compilation-error-regexp-alist-alist): Simplify ftnchek to only - handle the newer versions messages, which are more parseable. + handle the newer versions messages, which are more parsable. 2004-11-22 Stefan Monnier <monnier@iro.umontreal.ca> diff --git a/lisp/ChangeLog.12 b/lisp/ChangeLog.12 index b97555f1e9d..9611eaa21b4 100644 --- a/lisp/ChangeLog.12 +++ b/lisp/ChangeLog.12 @@ -18459,7 +18459,7 @@ reveal-open-spots, so as to be more reliable. There were several tricky corner cases where an open spot might be lost, or where a closed spot might end up on the list of open spots. - Only reveal text that's ellipsised. + Only reveal text that's ellipsized. 2005-11-07 Carsten Dominik <dominik@science.uva.nl> @@ -27413,7 +27413,7 @@ which has been added in Emacs 21.1. (c-mode, c++-mode, objc-mode, java-mode, idl-mode, pike-mode) (awk-mode): Use it. - (make-local-hook): Suppress warning about obsoleteness. + (make-local-hook): Suppress warning about obsolescence. * progmodes/cc-engine.el, cc-align.el, cc-cmds.el (c-append-backslashes-forward, c-delete-backslashes-forward) @@ -33346,7 +33346,7 @@ See ChangeLog.11 for earlier changes. ;; add-log-time-zone-rule: t ;; End: - Copyright (C) 2005-2011 Free Software Foundation, Inc. + Copyright (C) 2005-2012 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/lisp/ChangeLog.13 b/lisp/ChangeLog.13 index 558718a5a5f..58fb2d541d9 100644 --- a/lisp/ChangeLog.13 +++ b/lisp/ChangeLog.13 @@ -1121,10 +1121,10 @@ * international/titdic-cnv.el (tit-process-header): Fix embedded coding tag. (titdic-convert): Bind coding-system-for-write to the coding - system specfied in the map file. Remove `charset' property after + system specified in the map file. Remove `charset' property after decoding. (miscdic-convert): Bind coding-system-for-write to the coding - system specfied for the map file. Fix LANGUAGE arg to + system specified for the map file. Fix LANGUAGE arg to quail-define-package. (batch-miscdic-convert): Check if a file is directory or not. @@ -16697,7 +16697,7 @@ See ChangeLog.12 for earlier changes. ;; coding: utf-8 ;; End: - Copyright (C) 2007-2011 Free Software Foundation, Inc. + Copyright (C) 2007-2012 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/lisp/ChangeLog.14 b/lisp/ChangeLog.14 index 7063ed67b62..f2e88a899db 100644 --- a/lisp/ChangeLog.14 +++ b/lisp/ChangeLog.14 @@ -3473,7 +3473,7 @@ 2009-01-10 Dan Nicolaescu <dann@ics.uci.edu> * diff-mode.el (diff-show-trailing-whitespaces): Remove function. - Move setting up whitepace-mode ... + Move setting up whitespace-mode ... (diff-mode): ... here. (diff-mode-menu): Add a menu entry for showing trailing whitespace. @@ -19176,7 +19176,7 @@ toggle-read-only. * textmodes/bibtex.el (bibtex-format-entry): Handle error message - refering to a missing required field with the OPT prefix. + referring to a missing required field with the OPT prefix. Make unwindform more robust. * textmodes/bibtex.el: Remove support for hideshow minor mode as @@ -20551,7 +20551,7 @@ See ChangeLog.13 for earlier changes. ;; coding: utf-8 ;; End: - Copyright (C) 2008-2011 Free Software Foundation, Inc. + Copyright (C) 2008-2012 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/lisp/ChangeLog.15 b/lisp/ChangeLog.15 index 6e13c1156ce..6dbfff03573 100644 --- a/lisp/ChangeLog.15 +++ b/lisp/ChangeLog.15 @@ -17621,7 +17621,7 @@ (batch-update-autoloads): Handle autoload-excludes on windows-nt. * mail/rmailedit.el (rmail-cease-edit): Give an error if the end of - the headers cannot be located. Simplify, subtracting superflous + the headers cannot be located. Simplify, subtracting superfluous save-excursions. 2009-10-15 Stefan Monnier <monnier@iro.umontreal.ca> @@ -22792,7 +22792,7 @@ See ChangeLog.14 for earlier changes. ;; coding: utf-8 ;; End: - Copyright (C) 2009-2011 Free Software Foundation, Inc. + Copyright (C) 2009-2012 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/lisp/ChangeLog.2 b/lisp/ChangeLog.2 index 957c9c7deff..a02480fb3be 100644 --- a/lisp/ChangeLog.2 +++ b/lisp/ChangeLog.2 @@ -3992,7 +3992,7 @@ See ChangeLog.1 for earlier changes. - Copyright (C) 1986-1988, 2001-2011 Free Software Foundation, Inc. + Copyright (C) 1986-1988, 2001-2012 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/lisp/ChangeLog.3 b/lisp/ChangeLog.3 index e0f9bc9ade2..fef57d0c68d 100644 --- a/lisp/ChangeLog.3 +++ b/lisp/ChangeLog.3 @@ -12438,7 +12438,7 @@ See ChangeLog.2 for earlier changes. ;; coding: utf-8 ;; End: - Copyright (C) 1989, 1993, 2001-2011 Free Software Foundation, Inc. + Copyright (C) 1989, 1993, 2001-2012 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/lisp/ChangeLog.4 b/lisp/ChangeLog.4 index 51e2661d89e..13a3b6364ca 100644 --- a/lisp/ChangeLog.4 +++ b/lisp/ChangeLog.4 @@ -8936,7 +8936,7 @@ See ChangeLog.3 for earlier changes. ;; coding: utf-8 ;; End: - Copyright (C) 1993-1994, 2001-2011 Free Software Foundation, Inc. + Copyright (C) 1993-1994, 2001-2012 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/lisp/ChangeLog.5 b/lisp/ChangeLog.5 index b3e92b1a50a..84dfb1031fd 100644 --- a/lisp/ChangeLog.5 +++ b/lisp/ChangeLog.5 @@ -9264,7 +9264,7 @@ See ChangeLog.4 for earlier changes. ;; coding: utf-8 ;; End: - Copyright (C) 1994-1995, 2001-2011 Free Software Foundation, Inc. + Copyright (C) 1994-1995, 2001-2012 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/lisp/ChangeLog.6 b/lisp/ChangeLog.6 index fb6090b3583..c3d748a7baa 100644 --- a/lisp/ChangeLog.6 +++ b/lisp/ChangeLog.6 @@ -8022,7 +8022,7 @@ See ChangeLog.5 for earlier changes. ;; coding: utf-8 ;; End: - Copyright (C) 1995-1996, 2001-2011 Free Software Foundation, Inc. + Copyright (C) 1995-1996, 2001-2012 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/lisp/ChangeLog.7 b/lisp/ChangeLog.7 index b05707abe5c..10c8a024df0 100644 --- a/lisp/ChangeLog.7 +++ b/lisp/ChangeLog.7 @@ -13739,7 +13739,7 @@ (isearch-toggle-specified-input-method): Set the above variables. (isearch-toggle-input-method): Likewise. (isearch-process-search-multibyte-characters): Give - iseach-input-method as arg to read-multilingual-string. + isearch-input-method as arg to read-multilingual-string. * international/mule-cmds.el (read-multilingual-string): Adjusted for the previous change of variables related to input methods. @@ -23107,7 +23107,7 @@ See ChangeLog.6 for earlier changes. ;; coding: utf-8 ;; End: - Copyright (C) 1997-1998, 2001-2011 Free Software Foundation, Inc. + Copyright (C) 1997-1998, 2001-2012 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/lisp/ChangeLog.8 b/lisp/ChangeLog.8 index cd685204766..897c56f2b77 100644 --- a/lisp/ChangeLog.8 +++ b/lisp/ChangeLog.8 @@ -9993,7 +9993,7 @@ See ChangeLog.7 for earlier changes. ;; add-log-time-zone-rule: t ;; End: - Copyright (C) 1999, 2001-2011 Free Software Foundation, Inc. + Copyright (C) 1999, 2001-2012 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/lisp/ChangeLog.9 b/lisp/ChangeLog.9 index 252b3854f7a..ba90274edf0 100644 --- a/lisp/ChangeLog.9 +++ b/lisp/ChangeLog.9 @@ -13936,7 +13936,7 @@ * international/mule-cmds.el (help-xref-mule-regexp-template): New variable. - (describe-input-method): Temporarily activate the specfied input + (describe-input-method): Temporarily activate the specified input method to display the information. (describe-language-environment): Hyperlinks to mule related items. diff --git a/lisp/Makefile.in b/lisp/Makefile.in index d4ff6a4384b..d2c4e615577 100644 --- a/lisp/Makefile.in +++ b/lisp/Makefile.in @@ -1,5 +1,5 @@ # Maintenance productions for the Lisp directory -# Copyright (C) 2000-2011 Free Software Foundation, Inc. +# Copyright (C) 2000-2012 Free Software Foundation, Inc. # This file is part of GNU Emacs. diff --git a/lisp/abbrev.el b/lisp/abbrev.el index 395810772c5..ade36f2f9a0 100644 --- a/lisp/abbrev.el +++ b/lisp/abbrev.el @@ -1,6 +1,6 @@ ;;; abbrev.el --- abbrev mode commands for Emacs -*- lexical-binding: t -*- -;; Copyright (C) 1985-1987, 1992, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1985-1987, 1992, 2001-2012 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: abbrev convenience diff --git a/lisp/align.el b/lisp/align.el index 214c3add93f..19fd85351f0 100644 --- a/lisp/align.el +++ b/lisp/align.el @@ -1,6 +1,6 @@ ;;; align.el --- align text to a specific column, by regexp -;; Copyright (C) 1999-2011 Free Software Foundation, Inc. +;; Copyright (C) 1999-2012 Free Software Foundation, Inc. ;; Author: John Wiegley <johnw@gnu.org> ;; Maintainer: FSF diff --git a/lisp/allout-widgets.el b/lisp/allout-widgets.el index 715879534b0..0e4a4c6e5a7 100644 --- a/lisp/allout-widgets.el +++ b/lisp/allout-widgets.el @@ -1,6 +1,6 @@ ;; allout-widgets.el --- Visually highlight allout outline structure. -;; Copyright (C) 2005-2011 Free Software Foundation, Inc. +;; Copyright (C) 2005-2012 Free Software Foundation, Inc. ;; Author: Ken Manheimer <ken dot manheimer at gmail...> ;; Maintainer: Ken Manheimer <ken dot manheimer at gmail...> @@ -1635,7 +1635,7 @@ Use this to redecorate only the item, when you know that its situation with respect to siblings, parent, and offspring is unchanged from its last decoration. Use `allout-decorate-item-and-context' instead to reassess and adjust -relevent context, when suitable." +relevant context, when suitable." (if (not (equal (widget-get item-widget :last-decorated-tick) allout-command-counter)) (let ((was-modified (buffer-modified-p)) diff --git a/lisp/allout.el b/lisp/allout.el index 9289e38b418..d673c7dba0b 100644 --- a/lisp/allout.el +++ b/lisp/allout.el @@ -1,6 +1,6 @@ ;;; allout.el --- extensive outline mode for use alone and with other modes -;; Copyright (C) 1992-1994, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1992-1994, 2001-2012 Free Software Foundation, Inc. ;; Author: Ken Manheimer <ken dot manheimer at gmail...> ;; Maintainer: Ken Manheimer <ken dot manheimer at gmail...> @@ -3334,7 +3334,7 @@ coordinating with allout activity.") (run-hooks 'allout-post-undo-hook) (cond ((and (= buffer-saved-size -1) allout-auto-save-temporarily-disabled) - ;; user possibly undid a decryption, deinhibit auto-save: + ;; user possibly undid a decryption, disinhibit auto-save: (allout-maybe-resume-auto-save-info-after-encryption)) ((save-excursion (save-restriction @@ -5871,7 +5871,7 @@ encryption. Further, encrypting with a KEYMODE-CUE universal argument greater than 4 - eg, preceded by a doubled Ctrl-U - causes association of the specified recipients with the file, replacing those currently -associated with it. This can be used to deassociate any +associated with it. This can be used to dissociate any recipients with the file, by selecting no recipients in the dialog. @@ -5912,7 +5912,7 @@ encryption. Further, encrypting with a KEYMODE-CUE universal argument greater than 4 - eg, preceded by a doubled Ctrl-U - causes association of the specified recipients with the file, replacing those currently -associated with it. This can be used to deassociate any +associated with it. This can be used to dissociate any recipients with the file, by selecting no recipients in the dialog. @@ -6045,7 +6045,7 @@ encryption. Further, encrypting with a KEYMODE-CUE universal argument greater than 4 - eg, preceded by a doubled Ctrl-U - causes association of the specified recipients with the file, replacing those currently -associated with it. This can be used to deassociate any +associated with it. This can be used to dissociate any recipients with the file, by selecting no recipients in the dialog. @@ -6661,7 +6661,7 @@ To ignore intangibility, bind `inhibit-point-motion-hooks' to t." (if (/= arg 1) (condition-case nil (line-move (1- arg)) (error nil))) - ;; Move to beginning-of-line, ignoring fields and invisibles. + ;; Move to beginning-of-line, ignoring fields and invisible text. (skip-chars-backward "^\n") (while (and (not (bobp)) (let ((prop diff --git a/lisp/ansi-color.el b/lisp/ansi-color.el index 08b569de333..aaea903de56 100644 --- a/lisp/ansi-color.el +++ b/lisp/ansi-color.el @@ -1,6 +1,6 @@ ;;; ansi-color.el --- translate ANSI escape sequences into faces -;; Copyright (C) 1999-2011 Free Software Foundation, Inc. +;; Copyright (C) 1999-2012 Free Software Foundation, Inc. ;; Author: Alex Schroeder <alex@gnu.org> ;; Maintainer: Alex Schroeder <alex@gnu.org> @@ -585,7 +585,7 @@ ANSI-CODE is used as an index into the vector." "Create a new face by applying all the parameters in ESCAPE-SEQ. Should any of the parameters result in the default face (usually this is -the parameter 0), then the effect of all previous parameters is cancelled. +the parameter 0), then the effect of all previous parameters is canceled. ESCAPE-SEQ is a SGR control sequences such as \\033[34m. The parameter 34 is used by `ansi-color-get-face-1' to return a face definition." diff --git a/lisp/apropos.el b/lisp/apropos.el index 9a372f27991..423656c21fa 100644 --- a/lisp/apropos.el +++ b/lisp/apropos.el @@ -1,6 +1,6 @@ ;;; apropos.el --- apropos commands for users and programmers -;; Copyright (C) 1989, 1994-1995, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1989, 1994-1995, 2001-2012 Free Software Foundation, Inc. ;; Author: Joe Wells <jbw@bigbird.bu.edu> ;; Daniel Pfeiffer <occitan@esperanto.org> (rewrite) diff --git a/lisp/arc-mode.el b/lisp/arc-mode.el index 48b4c5be164..83862555c80 100644 --- a/lisp/arc-mode.el +++ b/lisp/arc-mode.el @@ -1,6 +1,6 @@ ;;; arc-mode.el --- simple editing of archives -;; Copyright (C) 1995, 1997-1998, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1995, 1997-1998, 2001-2012 Free Software Foundation, Inc. ;; Author: Morten Welinder <terra@gnu.org> ;; Keywords: files archives msdog editing major-mode @@ -860,13 +860,13 @@ using `make-temp-file', and the generated name is returned." dir))) (if (or alien (file-exists-p fullname)) (progn - ;; Maked sure all the leading directories in + ;; Make sure all the leading directories in ;; archive-local-name exist under archive-tmpdir, so that ;; the directory structure recorded in the archive is ;; reconstructed in the temporary directory. (make-directory (file-name-directory tmpfile) t) (make-temp-file tmpfile)) - ;; Maked sure all the leading directories in `fullname' exist + ;; Make sure all the leading directories in `fullname' exist ;; under archive-tmpdir. This is necessary for nested archives ;; (`archive-extract' sets `archive-remote' to t in case ;; an archive occurs inside another archive). diff --git a/lisp/array.el b/lisp/array.el index 211124964a5..64c57bc480e 100644 --- a/lisp/array.el +++ b/lisp/array.el @@ -1,6 +1,6 @@ ;;; array.el --- array editing commands for GNU Emacs -;; Copyright (C) 1987, 2000-2011 Free Software Foundation, Inc. +;; Copyright (C) 1987, 2000-2012 Free Software Foundation, Inc. ;; Author: David M. Brown ;; Maintainer: FSF diff --git a/lisp/autoarg.el b/lisp/autoarg.el index 57f5bcd809c..c1b55f3b36e 100644 --- a/lisp/autoarg.el +++ b/lisp/autoarg.el @@ -1,6 +1,6 @@ ;;; autoarg.el --- make digit keys supply prefix args -;; Copyright (C) 1998, 2000-2011 Free Software Foundation, Inc. +;; Copyright (C) 1998, 2000-2012 Free Software Foundation, Inc. ;; Author: Dave Love <fx@gnu.org> ;; Created: 1998-09-04 diff --git a/lisp/autoinsert.el b/lisp/autoinsert.el index 6d002f4a217..de2835580c2 100644 --- a/lisp/autoinsert.el +++ b/lisp/autoinsert.el @@ -1,6 +1,6 @@ ;;; autoinsert.el --- automatic mode-dependent insertion of text into new files -;; Copyright (C) 1985-1987, 1994-1995, 1998, 2000-2011 +;; Copyright (C) 1985-1987, 1994-1995, 1998, 2000-2012 ;; Free Software Foundation, Inc. ;; Author: Charlie Martin <crm@cs.duke.edu> diff --git a/lisp/autorevert.el b/lisp/autorevert.el index f70025e9d3f..c0a77bd5935 100644 --- a/lisp/autorevert.el +++ b/lisp/autorevert.el @@ -1,6 +1,6 @@ ;;; autorevert.el --- revert buffers when files on disk change -;; Copyright (C) 1997-1999, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1997-1999, 2001-2012 Free Software Foundation, Inc. ;; Author: Anders Lindgren <andersl@andersl.com> ;; Keywords: convenience diff --git a/lisp/avoid.el b/lisp/avoid.el index 038927105ec..17d99fd6517 100644 --- a/lisp/avoid.el +++ b/lisp/avoid.el @@ -1,6 +1,6 @@ ;;; avoid.el --- make mouse pointer stay out of the way of editing -;; Copyright (C) 1993-1994, 2000-2011 Free Software Foundation, Inc. +;; Copyright (C) 1993-1994, 2000-2012 Free Software Foundation, Inc. ;; Author: Boris Goldowsky <boris@gnu.org> ;; Keywords: mouse diff --git a/lisp/battery.el b/lisp/battery.el index 3b245ed644d..a3be2fe4b88 100644 --- a/lisp/battery.el +++ b/lisp/battery.el @@ -1,6 +1,6 @@ ;;; battery.el --- display battery status information -*- coding: iso-8859-1 -*- -;; Copyright (C) 1997-1998, 2000-2011 Free Software Foundation, Inc. +;; Copyright (C) 1997-1998, 2000-2012 Free Software Foundation, Inc. ;; Author: Ralph Schleicher <rs@nunatak.allgaeu.org> ;; Keywords: hardware @@ -50,6 +50,10 @@ (file-directory-p "/sys/class/power_supply/") (directory-files "/sys/class/power_supply/" nil "BAT[0-9]$")) 'battery-linux-sysfs) + ((and (eq system-type 'gnu/linux) + (file-directory-p "/sys/class/power_supply/yeeloong-bat/") + (directory-files "/sys/class/power_supply/yeeloong-bat/" nil "charge_")) + 'battery-yeeloong-sysfs) ((and (eq system-type 'darwin) (condition-case nil (with-temp-buffer @@ -77,6 +81,8 @@ introduced by a `%' character in a control string." "Power %L, battery %B (%p%% load)") ((eq battery-status-function 'battery-pmset) "%L power, battery %B (%p%% load, remaining time %t)") + ((eq battery-status-function 'battery-yeeloong-sysfs) + "%L power, battery %B (%p%% load, remaining time %t)") (battery-status-function "Power %L, battery %B (%p%% load, remaining time %t)")) "Control string formatting the string to display in the echo area. @@ -226,7 +232,7 @@ seconds." "Regular expression matching contents of `/proc/apm'.") (defun battery-linux-proc-apm () - "Get APM status information from Linux kernel. + "Get APM status information from Linux (the kernel). This function works only with the new `/proc/apm' format introduced in Linux version 1.3.58. @@ -297,7 +303,7 @@ The following %-sequences are provided: ;;; `/proc/acpi/' interface for Linux. (defun battery-linux-proc-acpi () - "Get ACPI status information from Linux kernel. + "Get ACPI status information from Linux (the kernel). This function works only with the `/proc/acpi/' format introduced in Linux version 2.4.20 and 2.6.0. @@ -421,10 +427,15 @@ format introduced in Linux version 2.4.25. The following %-sequences are provided: %c Current capacity (mAh or mWh) +%r Current rate %B Battery status (verbose) +%d Temperature (in degrees Celsius) %p Battery load percentage -%L AC line status (verbose)" - (let (charging-state +%L AC line status (verbose) +%m Remaining time (to charge or discharge) in minutes +%h Remaining time (to charge or discharge) in hours +%t Remaining time (to charge or discharge) in the form `h:min'" + (let (charging-state rate temperature hours (charge-full 0.0) (charge-now 0.0) (energy-full 0.0) @@ -444,6 +455,12 @@ The following %-sequences are provided: (and (re-search-forward "POWER_SUPPLY_STATUS=\\(.*\\)$" nil t) (member charging-state '("Unknown" "Full" nil)) (setq charging-state (match-string 1))) + (when (re-search-forward + "POWER_SUPPLY_\\(CURRENT\\|POWER\\)_NOW=\\([0-9]*\\)$" + nil t) + (setq rate (float (string-to-number (match-string 2))))) + (when (re-search-forward "POWER_SUPPLY_TEMP=\\([0-9]*\\)$" nil t) + (setq temperature (match-string 1))) (let (full-string now-string) ;; Sysfs may list either charge (mAh) or energy (mWh). ;; Keep track of both, and choose which to report later. @@ -466,12 +483,30 @@ The following %-sequences are provided: (setq energy-full (+ energy-full (string-to-number full-string)) energy-now (+ energy-now - (string-to-number now-string))))))))) + (string-to-number now-string)))))) + (goto-char (point-min)) + (when (and energy-now rate (not (zerop rate)) + (re-search-forward + "POWER_SUPPLY_VOLTAGE_NOW=\\([0-9]*\\)$" nil t)) + (let ((remaining (if (string= charging-state "Discharging") + energy-now + (- energy-full energy-now)))) + (setq hours (/ (/ (* remaining (string-to-number + (match-string 1))) + rate) + 10000000.0))))))) (list (cons ?c (cond ((or (> charge-full 0) (> charge-now 0)) (number-to-string charge-now)) ((or (> energy-full 0) (> energy-now 0)) (number-to-string energy-now)) (t "N/A"))) + (cons ?r (if rate (format "%.1f" (/ rate 1000000.0)) "N/A")) + (cons ?m (if hours (format "%d" (* hours 60)) "N/A")) + (cons ?h (if hours (format "%d" hours) "N/A")) + (cons ?t (if hours + (format "%d:%02d" hours (* (- hours (floor hours)) 60)) + "N/A")) + (cons ?d (or temperature "N/A")) (cons ?B (or charging-state "N/A")) (cons ?p (cond ((> charge-full 0) (format "%.1f" @@ -489,7 +524,90 @@ The following %-sequences are provided: "BAT") "N/A"))))) +(defun battery-yeeloong-sysfs () + "Get ACPI status information from Linux (the kernel). +This function works only on the Lemote Yeeloong. +The following %-sequences are provided: +%c Current capacity (mAh) +%r Current rate +%B Battery status (verbose) +%b Battery status, empty means high, `-' means low, + `!' means critical, and `+' means charging +%L AC line status (verbose) +%p Battery load percentage +%m Remaining time (to charge or discharge) in minutes +%h Remaining time (to charge or discharge) in hours +%t Remaining time (to charge or discharge) in the form `h:min'" + + (let (capacity + capacity-level + status + ac-online + hours + current-now + charge-full + charge-now) + + (with-temp-buffer + (ignore-errors + (insert-file-contents "/sys/class/power_supply/yeeloong-bat/uevent") + (goto-char 1) + (search-forward "POWER_SUPPLY_CHARGE_NOW=") + (setq charge-now (read (current-buffer))) + (goto-char 1) + (search-forward "POWER_SUPPLY_CHARGE_FULL=") + (setq charge-full (read (current-buffer))) + (goto-char 1) + (search-forward "POWER_SUPPLY_CURRENT_NOW=") + (setq current-now (read (current-buffer))) + (goto-char 1) + (search-forward "POWER_SUPPLY_CAPACITY_LEVEL=") + (setq capacity-level (buffer-substring (point) (line-end-position))) + (goto-char 1) + (search-forward "POWER_SUPPLY_STATUS=") + (setq status (buffer-substring (point) (line-end-position)))) + + (erase-buffer) + (ignore-errors + (insert-file-contents + "/sys/class/power_supply/yeeloong-ac/online") + (goto-char 1) + (setq ac-online (read (current-buffer))) + (erase-buffer))) + + + (setq capacity (round (/ (* charge-now 100.0) charge-full))) + (when (and current-now (not (= current-now 0))) + (if (< current-now 0) + ;; Charging + (setq hours (/ (- charge-now charge-full) (+ 0.0 current-now))) + ;; Discharging + (setq hours (/ charge-now (+ 0.0 current-now))))) + + (list (cons ?c (if charge-now + (number-to-string charge-now) + "N/A")) + (cons ?r current-now) + (cons ?B (cond ((equal capacity-level "Full") "full") + ((equal status "Charging") "charging") + ((equal capacity-level "Low") "low") + ((equal capacity-level "Critical") "critical") + (t "high"))) + (cons ?b (cond ((equal capacity-level "Full") " ") + ((equal status "Charging") "+") + ((equal capacity-level "Low") "-") + ((equal capacity-level "Critical") "!") + (t " "))) + (cons ?h (if hours (number-to-string hours) "N/A")) + (cons ?m (if hours (number-to-string (* 60 hours)) "N/A")) + (cons ?t (if hours + (format "%d:%d" + (/ (round (* 60 hours)) 60) + (% (round (* 60 hours)) 60)) + "N/A")) + (cons ?p (if capacity (number-to-string capacity) "N/A")) + (cons ?L (if (eq ac-online 1) "AC" "BAT"))))) ;;; `pmset' interface for Darwin (OS X). diff --git a/lisp/bindings.el b/lisp/bindings.el index 1a10d117987..a87f321c936 100644 --- a/lisp/bindings.el +++ b/lisp/bindings.el @@ -1,6 +1,6 @@ ;;; bindings.el --- define standard key bindings and some variables -;; Copyright (C) 1985-1987, 1992-1996, 1999-2011 +;; Copyright (C) 1985-1987, 1992-1996, 1999-2012 ;; Free Software Foundation, Inc. ;; Maintainer: FSF diff --git a/lisp/bookmark.el b/lisp/bookmark.el index 4d93e01fb2e..20a4e52810b 100644 --- a/lisp/bookmark.el +++ b/lisp/bookmark.el @@ -1,6 +1,6 @@ ;;; bookmark.el --- set bookmarks, maybe annotate them, jump to them later -;; Copyright (C) 1993-1997, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1993-1997, 2001-2012 Free Software Foundation, Inc. ;; Author: Karl Fogel <kfogel@red-bean.com> ;; Maintainer: Karl Fogel <kfogel@red-bean.com> diff --git a/lisp/bs.el b/lisp/bs.el index 2a31b05a31f..2e0089d153f 100644 --- a/lisp/bs.el +++ b/lisp/bs.el @@ -1,6 +1,6 @@ ;;; bs.el --- menu for selecting and displaying buffers -*- lexical-binding: t -*- -;; Copyright (C) 1998-2011 Free Software Foundation, Inc. +;; Copyright (C) 1998-2012 Free Software Foundation, Inc. ;; Author: Olaf Sylvester <Olaf.Sylvester@netsurf.de> ;; Maintainer: Olaf Sylvester <Olaf.Sylvester@netsurf.de> ;; Keywords: convenience diff --git a/lisp/buff-menu.el b/lisp/buff-menu.el index 291430d4393..e1793711607 100644 --- a/lisp/buff-menu.el +++ b/lisp/buff-menu.el @@ -1,6 +1,6 @@ ;;; buff-menu.el --- buffer menu main function and support functions -*- coding:utf-8 -*- -;; Copyright (C) 1985-1987, 1993-1995, 2000-2011 +;; Copyright (C) 1985-1987, 1993-1995, 2000-2012 ;; Free Software Foundation, Inc. ;; Maintainer: FSF diff --git a/lisp/button.el b/lisp/button.el index 262a19c1806..07c98e668bd 100644 --- a/lisp/button.el +++ b/lisp/button.el @@ -1,6 +1,6 @@ ;;; button.el --- clickable buttons ;; -;; Copyright (C) 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 2001-2012 Free Software Foundation, Inc. ;; ;; Author: Miles Bader <miles@gnu.org> ;; Keywords: extensions diff --git a/lisp/calc/README b/lisp/calc/README index 308b5115aa2..e4b681d5625 100644 --- a/lisp/calc/README +++ b/lisp/calc/README @@ -1,11 +1,11 @@ -Copyright (C) 2001-2011 Free Software Foundation, Inc. +Copyright (C) 2001-2012 Free Software Foundation, Inc. See the end of the file for license conditions. This directory contains Calc, an advanced desk calculator for GNU Emacs. -"Calc" Copyright (C) 1990-1993, 2001-2011 Free Software Foundation, Inc. +"Calc" Copyright (C) 1990-1993, 2001-2012 Free Software Foundation, Inc. Written by: Dave Gillespie diff --git a/lisp/calc/README.prev b/lisp/calc/README.prev index 69da211efc2..bc1189a7065 100644 --- a/lisp/calc/README.prev +++ b/lisp/calc/README.prev @@ -1,4 +1,4 @@ -Copyright (C) 2001-2011 Free Software Foundation, Inc. +Copyright (C) 2001-2012 Free Software Foundation, Inc. See the end of the file for license conditions. diff --git a/lisp/calc/calc-aent.el b/lisp/calc/calc-aent.el index 00e07aba6a5..4b91a8c2002 100644 --- a/lisp/calc/calc-aent.el +++ b/lisp/calc/calc-aent.el @@ -1,6 +1,6 @@ ;;; calc-aent.el --- algebraic entry functions for Calc -;; Copyright (C) 1990-1993, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1990-1993, 2001-2012 Free Software Foundation, Inc. ;; Author: Dave Gillespie <daveg@synaptics.com> ;; Maintainer: Jay Belanger <jay.p.belanger@gmail.com> diff --git a/lisp/calc/calc-alg.el b/lisp/calc/calc-alg.el index 274f399fe6a..8e41b175321 100644 --- a/lisp/calc/calc-alg.el +++ b/lisp/calc/calc-alg.el @@ -1,6 +1,6 @@ ;;; calc-alg.el --- algebraic functions for Calc -;; Copyright (C) 1990-1993, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1990-1993, 2001-2012 Free Software Foundation, Inc. ;; Author: David Gillespie <daveg@synaptics.com> ;; Maintainer: Jay Belanger <jay.p.belanger@gmail.com> @@ -1841,7 +1841,7 @@ expr)))) ;;; Simplify a polynomial in list form by stripping off high-end zeros. -;;; This always leaves the constant part, i.e., nil->nil and nonnil->nonnil. +;;; This always leaves the constant part, i.e., nil->nil and non-nil->non-nil. (defun math-poly-simplify (p) (and p (if (Math-zerop (nth (1- (length p)) p)) diff --git a/lisp/calc/calc-arith.el b/lisp/calc/calc-arith.el index a557e5fb92d..ad807e9a2de 100644 --- a/lisp/calc/calc-arith.el +++ b/lisp/calc/calc-arith.el @@ -1,6 +1,6 @@ ;;; calc-arith.el --- arithmetic functions for Calc -;; Copyright (C) 1990-1993, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1990-1993, 2001-2012 Free Software Foundation, Inc. ;; Author: David Gillespie <daveg@synaptics.com> ;; Maintainer: Jay Belanger <jay.p.belanger@gmail.com> diff --git a/lisp/calc/calc-bin.el b/lisp/calc/calc-bin.el index 44354f0822f..7e1c69ffcfa 100644 --- a/lisp/calc/calc-bin.el +++ b/lisp/calc/calc-bin.el @@ -1,6 +1,6 @@ ;;; calc-bin.el --- binary functions for Calc -;; Copyright (C) 1990-1993, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1990-1993, 2001-2012 Free Software Foundation, Inc. ;; Author: David Gillespie <daveg@synaptics.com> ;; Maintainer: Jay Belanger <jay.p.belanger@gmail.com> diff --git a/lisp/calc/calc-comb.el b/lisp/calc/calc-comb.el index da5bae69803..199bbf0ae35 100644 --- a/lisp/calc/calc-comb.el +++ b/lisp/calc/calc-comb.el @@ -1,6 +1,6 @@ ;;; calc-comb.el --- combinatoric functions for Calc -;; Copyright (C) 1990-1993, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1990-1993, 2001-2012 Free Software Foundation, Inc. ;; Author: David Gillespie <daveg@synaptics.com> ;; Maintainer: Jay Belanger <jay.p.belanger@gmail.com> diff --git a/lisp/calc/calc-cplx.el b/lisp/calc/calc-cplx.el index f2e0c493144..e05204764bc 100644 --- a/lisp/calc/calc-cplx.el +++ b/lisp/calc/calc-cplx.el @@ -1,6 +1,6 @@ ;;; calc-cplx.el --- Complex number functions for Calc -;; Copyright (C) 1990-1993, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1990-1993, 2001-2012 Free Software Foundation, Inc. ;; Author: David Gillespie <daveg@synaptics.com> ;; Maintainer: Jay Belanger <jay.p.belanger@gmail.com> diff --git a/lisp/calc/calc-embed.el b/lisp/calc/calc-embed.el index f1f79252857..954e5d0b72f 100644 --- a/lisp/calc/calc-embed.el +++ b/lisp/calc/calc-embed.el @@ -1,6 +1,6 @@ ;;; calc-embed.el --- embed Calc in a buffer -;; Copyright (C) 1990-1993, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1990-1993, 2001-2012 Free Software Foundation, Inc. ;; Author: David Gillespie <daveg@synaptics.com> ;; Maintainer: Jay Belanger <jay.p.belanger@gmail.com> diff --git a/lisp/calc/calc-ext.el b/lisp/calc/calc-ext.el index 5429509af86..818b19757be 100644 --- a/lisp/calc/calc-ext.el +++ b/lisp/calc/calc-ext.el @@ -1,6 +1,6 @@ ;;; calc-ext.el --- various extension functions for Calc -;; Copyright (C) 1990-1993, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1990-1993, 2001-2012 Free Software Foundation, Inc. ;; Author: David Gillespie <daveg@synaptics.com> ;; Maintainer: Jay Belanger <jay.p.belanger@gmail.com> diff --git a/lisp/calc/calc-fin.el b/lisp/calc/calc-fin.el index 2e1d072dfb8..36165eaab63 100644 --- a/lisp/calc/calc-fin.el +++ b/lisp/calc/calc-fin.el @@ -1,6 +1,6 @@ ;;; calc-fin.el --- financial functions for Calc -;; Copyright (C) 1990-1993, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1990-1993, 2001-2012 Free Software Foundation, Inc. ;; Author: David Gillespie <daveg@synaptics.com> ;; Maintainer: Jay Belanger <jay.p.belanger@gmail.com> diff --git a/lisp/calc/calc-forms.el b/lisp/calc/calc-forms.el index 912bbc7f78d..96cc74f7ef6 100644 --- a/lisp/calc/calc-forms.el +++ b/lisp/calc/calc-forms.el @@ -1,6 +1,6 @@ ;;; calc-forms.el --- data format conversion functions for Calc -;; Copyright (C) 1990-1993, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1990-1993, 2001-2012 Free Software Foundation, Inc. ;; Author: David Gillespie <daveg@synaptics.com> ;; Maintainer: Jay Belanger <jay.p.belanger@gmail.com> diff --git a/lisp/calc/calc-frac.el b/lisp/calc/calc-frac.el index 30894b406b5..5b7c2cb3366 100644 --- a/lisp/calc/calc-frac.el +++ b/lisp/calc/calc-frac.el @@ -1,6 +1,6 @@ ;;; calc-frac.el --- fraction functions for Calc -;; Copyright (C) 1990-1993, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1990-1993, 2001-2012 Free Software Foundation, Inc. ;; Author: David Gillespie <daveg@synaptics.com> ;; Maintainer: Jay Belanger <jay.p.belanger@gmail.com> diff --git a/lisp/calc/calc-funcs.el b/lisp/calc/calc-funcs.el index e065493562e..b5857a8bbbf 100644 --- a/lisp/calc/calc-funcs.el +++ b/lisp/calc/calc-funcs.el @@ -1,6 +1,6 @@ ;;; calc-funcs.el --- well-known functions for Calc -;; Copyright (C) 1990-1993, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1990-1993, 2001-2012 Free Software Foundation, Inc. ;; Author: David Gillespie <daveg@synaptics.com> ;; Maintainer: Jay Belanger <jay.p.belanger@gmail.com> diff --git a/lisp/calc/calc-graph.el b/lisp/calc/calc-graph.el index 4fd5045f54b..c127b70a80d 100644 --- a/lisp/calc/calc-graph.el +++ b/lisp/calc/calc-graph.el @@ -1,6 +1,6 @@ ;;; calc-graph.el --- graph output functions for Calc -;; Copyright (C) 1990-1993, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1990-1993, 2001-2012 Free Software Foundation, Inc. ;; Author: David Gillespie <daveg@synaptics.com> ;; Maintainer: Jay Belanger <jay.p.belanger@gmail.com> diff --git a/lisp/calc/calc-help.el b/lisp/calc/calc-help.el index 66e9c002a47..8ef917fb5f4 100644 --- a/lisp/calc/calc-help.el +++ b/lisp/calc/calc-help.el @@ -1,6 +1,6 @@ ;;; calc-help.el --- help display functions for Calc, -;; Copyright (C) 1990-1993, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1990-1993, 2001-2012 Free Software Foundation, Inc. ;; Author: David Gillespie <daveg@synaptics.com> ;; Maintainer: Jay Belanger <jay.p.belanger@gmail.com> diff --git a/lisp/calc/calc-incom.el b/lisp/calc/calc-incom.el index a9cf89e6058..f39bf291613 100644 --- a/lisp/calc/calc-incom.el +++ b/lisp/calc/calc-incom.el @@ -1,6 +1,6 @@ ;;; calc-incom.el --- complex data type input functions for Calc -;; Copyright (C) 1990-1993, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1990-1993, 2001-2012 Free Software Foundation, Inc. ;; Author: David Gillespie <daveg@synaptics.com> ;; Maintainer: Jay Belanger <jay.p.belanger@gmail.com> diff --git a/lisp/calc/calc-keypd.el b/lisp/calc/calc-keypd.el index cc10d9e993c..3a59f6927a6 100644 --- a/lisp/calc/calc-keypd.el +++ b/lisp/calc/calc-keypd.el @@ -1,6 +1,6 @@ ;;; calc-keypd.el --- mouse-capable keypad input for Calc -;; Copyright (C) 1990-1993, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1990-1993, 2001-2012 Free Software Foundation, Inc. ;; Author: David Gillespie <daveg@synaptics.com> ;; Maintainer: Jay Belanger <jay.p.belanger@gmail.com> diff --git a/lisp/calc/calc-lang.el b/lisp/calc/calc-lang.el index 7e3a08a1459..c53f59eb0f4 100644 --- a/lisp/calc/calc-lang.el +++ b/lisp/calc/calc-lang.el @@ -1,6 +1,6 @@ ;;; calc-lang.el --- calc language functions -;; Copyright (C) 1990-1993, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1990-1993, 2001-2012 Free Software Foundation, Inc. ;; Author: David Gillespie <daveg@synaptics.com> ;; Maintainer: Jay Belanger <jay.p.belanger@gmail.com> diff --git a/lisp/calc/calc-macs.el b/lisp/calc/calc-macs.el index f922687e7fa..7f3ff9f012e 100644 --- a/lisp/calc/calc-macs.el +++ b/lisp/calc/calc-macs.el @@ -1,6 +1,6 @@ ;;; calc-macs.el --- important macros for Calc -;; Copyright (C) 1990-1993, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1990-1993, 2001-2012 Free Software Foundation, Inc. ;; Author: David Gillespie <daveg@synaptics.com> ;; Maintainer: Jay Belanger <jay.p.belanger@gmail.com> diff --git a/lisp/calc/calc-map.el b/lisp/calc/calc-map.el index 2ea4de20293..2519e960e0e 100644 --- a/lisp/calc/calc-map.el +++ b/lisp/calc/calc-map.el @@ -1,6 +1,6 @@ ;;; calc-map.el --- higher-order functions for Calc -;; Copyright (C) 1990-1993, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1990-1993, 2001-2012 Free Software Foundation, Inc. ;; Author: David Gillespie <daveg@synaptics.com> ;; Maintainer: Jay Belanger <jay.p.belanger@gmail.com> diff --git a/lisp/calc/calc-math.el b/lisp/calc/calc-math.el index 076dab31fd9..d5a341ee482 100644 --- a/lisp/calc/calc-math.el +++ b/lisp/calc/calc-math.el @@ -1,6 +1,6 @@ ;;; calc-math.el --- mathematical functions for Calc -;; Copyright (C) 1990-1993, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1990-1993, 2001-2012 Free Software Foundation, Inc. ;; Author: David Gillespie <daveg@synaptics.com> ;; Maintainer: Jay Belanger <jay.p.belanger@gmail.com> diff --git a/lisp/calc/calc-menu.el b/lisp/calc/calc-menu.el index d8c01656784..e67d169b683 100644 --- a/lisp/calc/calc-menu.el +++ b/lisp/calc/calc-menu.el @@ -1,6 +1,6 @@ ;;; calc-menu.el --- a menu for Calc -;; Copyright (C) 2007-2011 Free Software Foundation, Inc. +;; Copyright (C) 2007-2012 Free Software Foundation, Inc. ;; Maintainer: Jay Belanger <jay.p.belanger@gmail.com> diff --git a/lisp/calc/calc-misc.el b/lisp/calc/calc-misc.el index 6d034927ae0..ac1b2621605 100644 --- a/lisp/calc/calc-misc.el +++ b/lisp/calc/calc-misc.el @@ -1,6 +1,6 @@ ;;; calc-misc.el --- miscellaneous functions for Calc -;; Copyright (C) 1990-1993, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1990-1993, 2001-2012 Free Software Foundation, Inc. ;; Author: David Gillespie <daveg@synaptics.com> ;; Maintainer: Jay Belanger <jay.p.belanger@gmail.com> @@ -219,10 +219,10 @@ Calc user interface as before (either C-x * C or C-x * K; initially C-x * C). (let ((msgs '("Press `h' for complete help; press `?' repeatedly for a summary" "Letter keys: Negate; Precision; Yank; Why; Xtended cmd; Quit" - "Letter keys: SHIFT + Undo, reDo; Keep-args; Inverse, Hyperbolic, Option" + "Letter keys: SHIFT + Undo, reDo; Inverse, Hyperbolic, Option" "Letter keys: SHIFT + sQrt; Sin, Cos, Tan; Exp, Ln, logB" "Letter keys: SHIFT + Floor, Round; Abs, conJ, arG; Pi" - "Letter keys: SHIFT + Num-eval; More-recn; eXec-kbd-macro" + "Letter keys: SHIFT + Num-eval; More-recn; eXec-kbd-macro; Keep-args" "Other keys: +, -, *, /, ^, \\ (int div), : (frac div)" "Other keys: & (1/x), | (concat), % (modulo), ! (factorial)" "Other keys: ' (alg-entry), = (eval), ` (edit); M-RET (last-args)" diff --git a/lisp/calc/calc-mode.el b/lisp/calc/calc-mode.el index 856dfad882d..3f583192bcf 100644 --- a/lisp/calc/calc-mode.el +++ b/lisp/calc/calc-mode.el @@ -1,6 +1,6 @@ ;;; calc-mode.el --- calculator modes for Calc -;; Copyright (C) 1990-1993, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1990-1993, 2001-2012 Free Software Foundation, Inc. ;; Author: David Gillespie <daveg@synaptics.com> ;; Maintainer: Jay Belanger <jay.p.belanger@gmail.com> diff --git a/lisp/calc/calc-mtx.el b/lisp/calc/calc-mtx.el index 5ec15005b48..6fc2d9463d4 100644 --- a/lisp/calc/calc-mtx.el +++ b/lisp/calc/calc-mtx.el @@ -1,6 +1,6 @@ ;;; calc-mtx.el --- matrix functions for Calc -;; Copyright (C) 1990-1993, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1990-1993, 2001-2012 Free Software Foundation, Inc. ;; Author: David Gillespie <daveg@synaptics.com> ;; Maintainer: Jay Belanger <jay.p.belanger@gmail.com> diff --git a/lisp/calc/calc-nlfit.el b/lisp/calc/calc-nlfit.el index bd162866c31..937d0177259 100644 --- a/lisp/calc/calc-nlfit.el +++ b/lisp/calc/calc-nlfit.el @@ -1,6 +1,6 @@ ;;; calc-nlfit.el --- nonlinear curve fitting for Calc -;; Copyright (C) 2007-2011 Free Software Foundation, Inc. +;; Copyright (C) 2007-2012 Free Software Foundation, Inc. ;; Maintainer: Jay Belanger <jay.p.belanger@gmail.com> diff --git a/lisp/calc/calc-poly.el b/lisp/calc/calc-poly.el index e21a095c821..f106e8310a2 100644 --- a/lisp/calc/calc-poly.el +++ b/lisp/calc/calc-poly.el @@ -1,6 +1,6 @@ ;;; calc-poly.el --- polynomial functions for Calc -;; Copyright (C) 1990-1993, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1990-1993, 2001-2012 Free Software Foundation, Inc. ;; Author: David Gillespie <daveg@synaptics.com> ;; Maintainer: Jay Belanger <jay.p.belanger@gmail.com> diff --git a/lisp/calc/calc-prog.el b/lisp/calc/calc-prog.el index 0d3fbe8586a..f702033c0fb 100644 --- a/lisp/calc/calc-prog.el +++ b/lisp/calc/calc-prog.el @@ -1,6 +1,6 @@ ;;; calc-prog.el --- user programmability functions for Calc -;; Copyright (C) 1990-1993, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1990-1993, 2001-2012 Free Software Foundation, Inc. ;; Author: David Gillespie <daveg@synaptics.com> ;; Maintainer: Jay Belanger <jay.p.belanger@gmail.com> diff --git a/lisp/calc/calc-rewr.el b/lisp/calc/calc-rewr.el index 1498b622e1f..545b9338a0b 100644 --- a/lisp/calc/calc-rewr.el +++ b/lisp/calc/calc-rewr.el @@ -1,6 +1,6 @@ ;;; calc-rewr.el --- rewriting functions for Calc -;; Copyright (C) 1990-1993, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1990-1993, 2001-2012 Free Software Foundation, Inc. ;; Author: David Gillespie <daveg@synaptics.com> ;; Maintainer: Jay Belanger <jay.p.belanger@gmail.com> diff --git a/lisp/calc/calc-rules.el b/lisp/calc/calc-rules.el index fa57a350729..4332753c228 100644 --- a/lisp/calc/calc-rules.el +++ b/lisp/calc/calc-rules.el @@ -1,6 +1,6 @@ ;;; calc-rules.el --- rules for simplifying algebraic expressions in Calc -;; Copyright (C) 1990-1993, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1990-1993, 2001-2012 Free Software Foundation, Inc. ;; Author: David Gillespie <daveg@synaptics.com> ;; Maintainer: Jay Belanger <jay.p.belanger@gmail.com> diff --git a/lisp/calc/calc-sel.el b/lisp/calc/calc-sel.el index 26834a44598..bdacf65603c 100644 --- a/lisp/calc/calc-sel.el +++ b/lisp/calc/calc-sel.el @@ -1,6 +1,6 @@ ;;; calc-sel.el --- data selection functions for Calc -;; Copyright (C) 1990-1993, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1990-1993, 2001-2012 Free Software Foundation, Inc. ;; Author: David Gillespie <daveg@synaptics.com> ;; Maintainer: Jay Belanger <jay.p.belanger@gmail.com> diff --git a/lisp/calc/calc-stat.el b/lisp/calc/calc-stat.el index 83ce71a2376..04b0298dc88 100644 --- a/lisp/calc/calc-stat.el +++ b/lisp/calc/calc-stat.el @@ -1,6 +1,6 @@ ;;; calc-stat.el --- statistical functions for Calc -;; Copyright (C) 1990-1993, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1990-1993, 2001-2012 Free Software Foundation, Inc. ;; Author: David Gillespie <daveg@synaptics.com> ;; Maintainer: Jay Belanger <jay.p.belanger@gmail.com> diff --git a/lisp/calc/calc-store.el b/lisp/calc/calc-store.el index 2da551ee215..80d355ed5fa 100644 --- a/lisp/calc/calc-store.el +++ b/lisp/calc/calc-store.el @@ -1,6 +1,6 @@ ;;; calc-store.el --- value storage functions for Calc -;; Copyright (C) 1990-1993, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1990-1993, 2001-2012 Free Software Foundation, Inc. ;; Author: David Gillespie <daveg@synaptics.com> ;; Maintainer: Jay Belanger <jay.p.belanger@gmail.com> diff --git a/lisp/calc/calc-stuff.el b/lisp/calc/calc-stuff.el index 0558d8d2285..591bd89c3b8 100644 --- a/lisp/calc/calc-stuff.el +++ b/lisp/calc/calc-stuff.el @@ -1,6 +1,6 @@ ;;; calc-stuff.el --- miscellaneous functions for Calc -;; Copyright (C) 1990-1993, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1990-1993, 2001-2012 Free Software Foundation, Inc. ;; Author: David Gillespie <daveg@synaptics.com> ;; Maintainer: Jay Belanger <jay.p.belanger@gmail.com> diff --git a/lisp/calc/calc-trail.el b/lisp/calc/calc-trail.el index eec4cd2af58..4e513b8241f 100644 --- a/lisp/calc/calc-trail.el +++ b/lisp/calc/calc-trail.el @@ -1,6 +1,6 @@ ;;; calc-trail.el --- functions for manipulating the Calc "trail" -;; Copyright (C) 1990-1993, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1990-1993, 2001-2012 Free Software Foundation, Inc. ;; Author: David Gillespie <daveg@synaptics.com> ;; Maintainer: Jay Belanger <jay.p.belanger@gmail.com> diff --git a/lisp/calc/calc-undo.el b/lisp/calc/calc-undo.el index 9168d9b0947..6f69f99b5a2 100644 --- a/lisp/calc/calc-undo.el +++ b/lisp/calc/calc-undo.el @@ -1,6 +1,6 @@ ;;; calc-undo.el --- undo functions for Calc -;; Copyright (C) 1990-1993, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1990-1993, 2001-2012 Free Software Foundation, Inc. ;; Author: David Gillespie <daveg@synaptics.com> ;; Maintainer: Jay Belanger <jay.p.belanger@gmail.com> diff --git a/lisp/calc/calc-units.el b/lisp/calc/calc-units.el index 86e8cbbc73a..8f4c79e3f0a 100644 --- a/lisp/calc/calc-units.el +++ b/lisp/calc/calc-units.el @@ -1,6 +1,6 @@ ;;; calc-units.el --- unit conversion functions for Calc -;; Copyright (C) 1990-1993, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1990-1993, 2001-2012 Free Software Foundation, Inc. ;; Author: David Gillespie <daveg@synaptics.com> ;; Maintainer: Jay Belanger <jay.p.belanger@gmail.com> diff --git a/lisp/calc/calc-vec.el b/lisp/calc/calc-vec.el index 47ef3241b3e..d117cd6c19a 100644 --- a/lisp/calc/calc-vec.el +++ b/lisp/calc/calc-vec.el @@ -1,6 +1,6 @@ ;;; calc-vec.el --- vector functions for Calc -;; Copyright (C) 1990-1993, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1990-1993, 2001-2012 Free Software Foundation, Inc. ;; Author: David Gillespie <daveg@synaptics.com> ;; Maintainer: Jay Belanger <jay.p.belanger@gmail.com> diff --git a/lisp/calc/calc-yank.el b/lisp/calc/calc-yank.el index 135ea0bae40..1a6c53351f2 100644 --- a/lisp/calc/calc-yank.el +++ b/lisp/calc/calc-yank.el @@ -1,6 +1,6 @@ ;;; calc-yank.el --- kill-ring functionality for Calc -;; Copyright (C) 1990-1993, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1990-1993, 2001-2012 Free Software Foundation, Inc. ;; Author: David Gillespie <daveg@synaptics.com> ;; Maintainer: Jay Belanger <jay.p.belanger@gmail.com> diff --git a/lisp/calc/calc.el b/lisp/calc/calc.el index 23f955afe7c..5789e23ac74 100644 --- a/lisp/calc/calc.el +++ b/lisp/calc/calc.el @@ -1,6 +1,6 @@ ;;; calc.el --- the GNU Emacs calculator -;; Copyright (C) 1990-1993, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1990-1993, 2001-2012 Free Software Foundation, Inc. ;; Author: David Gillespie <daveg@synaptics.com> ;; Maintainer: Jay Belanger <jay.p.belanger@gmail.com> diff --git a/lisp/calc/calcalg2.el b/lisp/calc/calcalg2.el index 25b51fc89f6..fdc70a69fbd 100644 --- a/lisp/calc/calcalg2.el +++ b/lisp/calc/calcalg2.el @@ -1,6 +1,6 @@ ;;; calcalg2.el --- more algebraic functions for Calc -;; Copyright (C) 1990-1993, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1990-1993, 2001-2012 Free Software Foundation, Inc. ;; Author: David Gillespie <daveg@synaptics.com> ;; Maintainer: Jay Belanger <jay.p.belanger@gmail.com> diff --git a/lisp/calc/calcalg3.el b/lisp/calc/calcalg3.el index a9118964b46..9e6cdda057f 100644 --- a/lisp/calc/calcalg3.el +++ b/lisp/calc/calcalg3.el @@ -1,6 +1,6 @@ ;;; calcalg3.el --- more algebraic functions for Calc -;; Copyright (C) 1990-1993, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1990-1993, 2001-2012 Free Software Foundation, Inc. ;; Author: David Gillespie <daveg@synaptics.com> ;; Maintainer: Jay Belanger <jay.p.belanger@gmail.com> diff --git a/lisp/calc/calccomp.el b/lisp/calc/calccomp.el index 906517ac503..d8ad7e2cede 100644 --- a/lisp/calc/calccomp.el +++ b/lisp/calc/calccomp.el @@ -1,6 +1,6 @@ ;;; calccomp.el --- composition functions for Calc -;; Copyright (C) 1990-1993, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1990-1993, 2001-2012 Free Software Foundation, Inc. ;; Author: David Gillespie <daveg@synaptics.com> ;; Maintainer: Jay Belanger <jay.p.belanger@gmail.com> diff --git a/lisp/calc/calcsel2.el b/lisp/calc/calcsel2.el index f44da07763f..770420f8deb 100644 --- a/lisp/calc/calcsel2.el +++ b/lisp/calc/calcsel2.el @@ -1,6 +1,6 @@ ;;; calcsel2.el --- selection functions for Calc -;; Copyright (C) 1990-1993, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1990-1993, 2001-2012 Free Software Foundation, Inc. ;; Author: David Gillespie <daveg@synaptics.com> ;; Maintainer: Jay Belanger <jay.p.belanger@gmail.com> diff --git a/lisp/calculator.el b/lisp/calculator.el index faf62424729..6e935f246a0 100644 --- a/lisp/calculator.el +++ b/lisp/calculator.el @@ -1,6 +1,6 @@ ;;; calculator.el --- a [not so] simple calculator for Emacs -;; Copyright (C) 1998, 2000-2011 Free Software Foundation, Inc. +;; Copyright (C) 1998, 2000-2012 Free Software Foundation, Inc. ;; Author: Eli Barzilay <eli@barzilay.org> ;; Keywords: tools, convenience diff --git a/lisp/calendar/appt.el b/lisp/calendar/appt.el index 230366da2b0..28e8948af9b 100644 --- a/lisp/calendar/appt.el +++ b/lisp/calendar/appt.el @@ -1,6 +1,6 @@ ;;; appt.el --- appointment notification functions -;; Copyright (C) 1989-1990, 1994, 1998, 2001-2011 +;; Copyright (C) 1989-1990, 1994, 1998, 2001-2012 ;; Free Software Foundation, Inc. ;; Author: Neil Mager <neilm@juliet.ll.mit.edu> diff --git a/lisp/calendar/cal-bahai.el b/lisp/calendar/cal-bahai.el index ae5dc02862d..6101e472952 100644 --- a/lisp/calendar/cal-bahai.el +++ b/lisp/calendar/cal-bahai.el @@ -1,6 +1,6 @@ ;;; cal-bahai.el --- calendar functions for the Bahá'à calendar. -;; Copyright (C) 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 2001-2012 Free Software Foundation, Inc. ;; Author: John Wiegley <johnw@gnu.org> ;; Keywords: calendar diff --git a/lisp/calendar/cal-china.el b/lisp/calendar/cal-china.el index d17c2c71f8a..03a4b320059 100644 --- a/lisp/calendar/cal-china.el +++ b/lisp/calendar/cal-china.el @@ -1,6 +1,6 @@ ;;; cal-china.el --- calendar functions for the Chinese calendar -;; Copyright (C) 1995, 1997, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1995, 1997, 2001-2012 Free Software Foundation, Inc. ;; Author: Edward M. Reingold <reingold@cs.uiuc.edu> ;; Maintainer: Glenn Morris <rgm@gnu.org> diff --git a/lisp/calendar/cal-coptic.el b/lisp/calendar/cal-coptic.el index 4db2743777f..f51f6687881 100644 --- a/lisp/calendar/cal-coptic.el +++ b/lisp/calendar/cal-coptic.el @@ -1,6 +1,6 @@ ;;; cal-coptic.el --- calendar functions for the Coptic/Ethiopic calendars -;; Copyright (C) 1995, 1997, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1995, 1997, 2001-2012 Free Software Foundation, Inc. ;; Author: Edward M. Reingold <reingold@cs.uiuc.edu> ;; Maintainer: Glenn Morris <rgm@gnu.org> diff --git a/lisp/calendar/cal-dst.el b/lisp/calendar/cal-dst.el index ffb367a70f6..e3996cae3de 100644 --- a/lisp/calendar/cal-dst.el +++ b/lisp/calendar/cal-dst.el @@ -1,6 +1,6 @@ ;;; cal-dst.el --- calendar functions for daylight saving rules -;; Copyright (C) 1993-1996, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1993-1996, 2001-2012 Free Software Foundation, Inc. ;; Author: Paul Eggert <eggert@twinsun.com> ;; Edward M. Reingold <reingold@cs.uiuc.edu> diff --git a/lisp/calendar/cal-french.el b/lisp/calendar/cal-french.el index ef1ce8767ab..936fd1778a2 100644 --- a/lisp/calendar/cal-french.el +++ b/lisp/calendar/cal-french.el @@ -1,6 +1,6 @@ ;;; cal-french.el --- calendar functions for the French Revolutionary calendar -;; Copyright (C) 1988-1989, 1992, 1994-1995, 1997, 2001-2011 +;; Copyright (C) 1988-1989, 1992, 1994-1995, 1997, 2001-2012 ;; Free Software Foundation, Inc. ;; Author: Edward M. Reingold <reingold@cs.uiuc.edu> diff --git a/lisp/calendar/cal-hebrew.el b/lisp/calendar/cal-hebrew.el index 52bf442915f..cb738675cc4 100644 --- a/lisp/calendar/cal-hebrew.el +++ b/lisp/calendar/cal-hebrew.el @@ -1,6 +1,6 @@ ;;; cal-hebrew.el --- calendar functions for the Hebrew calendar -;; Copyright (C) 1995, 1997, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1995, 1997, 2001-2012 Free Software Foundation, Inc. ;; Author: Nachum Dershowitz <nachum@cs.uiuc.edu> ;; Edward M. Reingold <reingold@cs.uiuc.edu> diff --git a/lisp/calendar/cal-html.el b/lisp/calendar/cal-html.el index 580b953170c..8073295a412 100644 --- a/lisp/calendar/cal-html.el +++ b/lisp/calendar/cal-html.el @@ -1,6 +1,6 @@ ;;; cal-html.el --- functions for printing HTML calendars -;; Copyright (C) 2002-2011 Free Software Foundation, Inc. +;; Copyright (C) 2002-2012 Free Software Foundation, Inc. ;; Author: Anna M. Bigatti <bigatti@dima.unige.it> ;; Keywords: calendar diff --git a/lisp/calendar/cal-islam.el b/lisp/calendar/cal-islam.el index e69a2389e6c..cdfb5e523b9 100644 --- a/lisp/calendar/cal-islam.el +++ b/lisp/calendar/cal-islam.el @@ -1,6 +1,6 @@ ;;; cal-islam.el --- calendar functions for the Islamic calendar -;; Copyright (C) 1995, 1997, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1995, 1997, 2001-2012 Free Software Foundation, Inc. ;; Author: Edward M. Reingold <reingold@cs.uiuc.edu> ;; Maintainer: Glenn Morris <rgm@gnu.org> diff --git a/lisp/calendar/cal-iso.el b/lisp/calendar/cal-iso.el index e745b6264e0..04c28967fc6 100644 --- a/lisp/calendar/cal-iso.el +++ b/lisp/calendar/cal-iso.el @@ -1,6 +1,6 @@ ;;; cal-iso.el --- calendar functions for the ISO calendar -;; Copyright (C) 1995, 1997, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1995, 1997, 2001-2012 Free Software Foundation, Inc. ;; Author: Edward M. Reingold <reingold@cs.uiuc.edu> ;; Maintainer: Glenn Morris <rgm@gnu.org> diff --git a/lisp/calendar/cal-julian.el b/lisp/calendar/cal-julian.el index e0f85b36d44..2afd0edd70d 100644 --- a/lisp/calendar/cal-julian.el +++ b/lisp/calendar/cal-julian.el @@ -1,6 +1,6 @@ ;;; cal-julian.el --- calendar functions for the Julian calendar -;; Copyright (C) 1995, 1997, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1995, 1997, 2001-2012 Free Software Foundation, Inc. ;; Author: Edward M. Reingold <reingold@cs.uiuc.edu> ;; Maintainer: Glenn Morris <rgm@gnu.org> diff --git a/lisp/calendar/cal-mayan.el b/lisp/calendar/cal-mayan.el index 283c68cb32d..e7a02194101 100644 --- a/lisp/calendar/cal-mayan.el +++ b/lisp/calendar/cal-mayan.el @@ -1,6 +1,6 @@ ;;; cal-mayan.el --- calendar functions for the Mayan calendars -;; Copyright (C) 1992-1993, 1995, 1997, 2001-2011 +;; Copyright (C) 1992-1993, 1995, 1997, 2001-2012 ;; Free Software Foundation, Inc. ;; Author: Stewart M. Clamen <clamen@cs.cmu.edu> diff --git a/lisp/calendar/cal-menu.el b/lisp/calendar/cal-menu.el index d8de171c0a1..ec40ef084eb 100644 --- a/lisp/calendar/cal-menu.el +++ b/lisp/calendar/cal-menu.el @@ -1,6 +1,6 @@ ;;; cal-menu.el --- calendar functions for menu bar and popup menu support -;; Copyright (C) 1994-1995, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1994-1995, 2001-2012 Free Software Foundation, Inc. ;; Author: Edward M. Reingold <reingold@cs.uiuc.edu> ;; Lara Rios <lrios@coewl.cen.uiuc.edu> diff --git a/lisp/calendar/cal-move.el b/lisp/calendar/cal-move.el index 72b34beda6b..a6991e4ddd3 100644 --- a/lisp/calendar/cal-move.el +++ b/lisp/calendar/cal-move.el @@ -1,6 +1,6 @@ ;;; cal-move.el --- calendar functions for movement in the calendar -;; Copyright (C) 1995, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1995, 2001-2012 Free Software Foundation, Inc. ;; Author: Edward M. Reingold <reingold@cs.uiuc.edu> ;; Maintainer: Glenn Morris <rgm@gnu.org> diff --git a/lisp/calendar/cal-persia.el b/lisp/calendar/cal-persia.el index a8b3f180e0f..b8313e07704 100644 --- a/lisp/calendar/cal-persia.el +++ b/lisp/calendar/cal-persia.el @@ -1,6 +1,6 @@ ;;; cal-persia.el --- calendar functions for the Persian calendar -;; Copyright (C) 1996-1997, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1996-1997, 2001-2012 Free Software Foundation, Inc. ;; Author: Edward M. Reingold <reingold@cs.uiuc.edu> ;; Maintainer: Glenn Morris <rgm@gnu.org> diff --git a/lisp/calendar/cal-tex.el b/lisp/calendar/cal-tex.el index 89e265aeb7e..14899431e2a 100644 --- a/lisp/calendar/cal-tex.el +++ b/lisp/calendar/cal-tex.el @@ -1,6 +1,6 @@ ;;; cal-tex.el --- calendar functions for printing calendars with LaTeX -;; Copyright (C) 1995, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1995, 2001-2012 Free Software Foundation, Inc. ;; Author: Steve Fisk <fisk@bowdoin.edu> ;; Edward M. Reingold <reingold@cs.uiuc.edu> diff --git a/lisp/calendar/cal-x.el b/lisp/calendar/cal-x.el index e95d284a36b..0f2d43b2237 100644 --- a/lisp/calendar/cal-x.el +++ b/lisp/calendar/cal-x.el @@ -1,6 +1,6 @@ ;;; cal-x.el --- calendar windows in dedicated frames -;; Copyright (C) 1994-1995, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1994-1995, 2001-2012 Free Software Foundation, Inc. ;; Author: Michael Kifer <kifer@cs.sunysb.edu> ;; Edward M. Reingold <reingold@cs.uiuc.edu> diff --git a/lisp/calendar/calendar.el b/lisp/calendar/calendar.el index a59e28811d3..905600cfb74 100644 --- a/lisp/calendar/calendar.el +++ b/lisp/calendar/calendar.el @@ -1,6 +1,6 @@ ;;; calendar.el --- calendar functions -;; Copyright (C) 1988-1995, 1997, 2000-2011 Free Software Foundation, Inc. +;; Copyright (C) 1988-1995, 1997, 2000-2012 Free Software Foundation, Inc. ;; Author: Edward M. Reingold <reingold@cs.uiuc.edu> ;; Maintainer: Glenn Morris <rgm@gnu.org> @@ -1730,6 +1730,7 @@ For a complete description, see the info node `Calendar/Diary'. (setq buffer-read-only t buffer-undo-list t indent-tabs-mode nil) + (set (make-local-variable 'scroll-margin) 0) ; bug#10379 (calendar-update-mode-line) (make-local-variable 'calendar-mark-ring) (make-local-variable 'displayed-month) ; month in middle of window diff --git a/lisp/calendar/diary-lib.el b/lisp/calendar/diary-lib.el index d161602bec0..4bcd9916d0c 100644 --- a/lisp/calendar/diary-lib.el +++ b/lisp/calendar/diary-lib.el @@ -1,6 +1,6 @@ ;;; diary-lib.el --- diary functions -;; Copyright (C) 1989-1990, 1992-1995, 2001-2011 +;; Copyright (C) 1989-1990, 1992-1995, 2001-2012 ;; Free Software Foundation, Inc. ;; Author: Edward M. Reingold <reingold@cs.uiuc.edu> diff --git a/lisp/calendar/holidays.el b/lisp/calendar/holidays.el index 3ba1078f62d..d20f2194885 100644 --- a/lisp/calendar/holidays.el +++ b/lisp/calendar/holidays.el @@ -1,6 +1,6 @@ ;;; holidays.el --- holiday functions for the calendar package -;; Copyright (C) 1989-1990, 1992-1994, 1997, 2001-2011 +;; Copyright (C) 1989-1990, 1992-1994, 1997, 2001-2012 ;; Free Software Foundation, Inc. ;; Author: Edward M. Reingold <reingold@cs.uiuc.edu> @@ -723,7 +723,7 @@ STRING)). Returns nil if it is not visible in the current calendar window." (let ((m displayed-month) (y displayed-year)) (calendar-increment-month m y (- 11 month)) - (if (> m 9) ; is november visible? + (if (> m 9) ; Is November visible? (list (list (list month day y) string))))) (defun holiday-float (month dayname n string &optional day) diff --git a/lisp/calendar/icalendar.el b/lisp/calendar/icalendar.el index 62bea11e82e..83bda94fefe 100644 --- a/lisp/calendar/icalendar.el +++ b/lisp/calendar/icalendar.el @@ -1,6 +1,6 @@ ;;; icalendar.el --- iCalendar implementation -*-coding: utf-8 -*- -;; Copyright (C) 2002-2011 Free Software Foundation, Inc. +;; Copyright (C) 2002-2012 Free Software Foundation, Inc. ;; Author: Ulf Jasper <ulf.jasper@web.de> ;; Created: August 2002 diff --git a/lisp/calendar/lunar.el b/lisp/calendar/lunar.el index e2ec46215be..8f09d20f50e 100644 --- a/lisp/calendar/lunar.el +++ b/lisp/calendar/lunar.el @@ -1,6 +1,6 @@ ;;; lunar.el --- calendar functions for phases of the moon -;; Copyright (C) 1992-1993, 1995, 1997, 2001-2011 +;; Copyright (C) 1992-1993, 1995, 1997, 2001-2012 ;; Free Software Foundation, Inc. ;; Author: Edward M. Reingold <reingold@cs.uiuc.edu> diff --git a/lisp/calendar/parse-time.el b/lisp/calendar/parse-time.el index 52f13c82f5a..ab513517452 100644 --- a/lisp/calendar/parse-time.el +++ b/lisp/calendar/parse-time.el @@ -1,6 +1,6 @@ ;;; parse-time.el --- parsing time strings -;; Copyright (C) 1996, 2000-2011 Free Software Foundation, Inc. +;; Copyright (C) 1996, 2000-2012 Free Software Foundation, Inc. ;; Author: Erik Naggum <erik@naggum.no> ;; Keywords: util diff --git a/lisp/calendar/solar.el b/lisp/calendar/solar.el index b841ed4ab73..a8d7d44af3b 100644 --- a/lisp/calendar/solar.el +++ b/lisp/calendar/solar.el @@ -1,6 +1,6 @@ ;;; solar.el --- calendar functions for solar events -;; Copyright (C) 1992-1993, 1995, 1997, 2001-2011 +;; Copyright (C) 1992-1993, 1995, 1997, 2001-2012 ;; Free Software Foundation, Inc. ;; Author: Edward M. Reingold <reingold@cs.uiuc.edu> diff --git a/lisp/calendar/time-date.el b/lisp/calendar/time-date.el index 70d096c4108..46e38ae46a8 100644 --- a/lisp/calendar/time-date.el +++ b/lisp/calendar/time-date.el @@ -1,6 +1,6 @@ ;;; time-date.el --- Date and time handling functions -;; Copyright (C) 1998-2011 Free Software Foundation, Inc. +;; Copyright (C) 1998-2012 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; Masanobu Umeda <umerin@mse.kyutech.ac.jp> diff --git a/lisp/calendar/timeclock.el b/lisp/calendar/timeclock.el index c9b8fdac613..9b766e17d5c 100644 --- a/lisp/calendar/timeclock.el +++ b/lisp/calendar/timeclock.el @@ -1,6 +1,6 @@ ;;; timeclock.el --- mode for keeping track of how much you work -;; Copyright (C) 1999-2011 Free Software Foundation, Inc. +;; Copyright (C) 1999-2012 Free Software Foundation, Inc. ;; Author: John Wiegley <johnw@gnu.org> ;; Created: 25 Mar 1999 diff --git a/lisp/calendar/todo-mode.el b/lisp/calendar/todo-mode.el index de232c25e3f..957ac2c6946 100644 --- a/lisp/calendar/todo-mode.el +++ b/lisp/calendar/todo-mode.el @@ -1,6 +1,6 @@ ;;; todo-mode.el --- major mode for editing TODO list files -;; Copyright (C) 1997, 1999, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1997, 1999, 2001-2012 Free Software Foundation, Inc. ;; Author: Oliver Seidel <privat@os10000.net> ;; Maintainer: Stephen Berman <stephen.berman@gmx.net> diff --git a/lisp/case-table.el b/lisp/case-table.el index a1bb862788e..3c00719f52e 100644 --- a/lisp/case-table.el +++ b/lisp/case-table.el @@ -1,6 +1,6 @@ ;;; case-table.el --- code to extend the character set and support case tables -;; Copyright (C) 1988, 1994, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1988, 1994, 2001-2012 Free Software Foundation, Inc. ;; Author: Howard Gayle ;; Maintainer: FSF diff --git a/lisp/cdl.el b/lisp/cdl.el index 8377e7a5796..2c4fbb19157 100644 --- a/lisp/cdl.el +++ b/lisp/cdl.el @@ -1,6 +1,6 @@ ;;; cdl.el --- Common Data Language (CDL) utility functions for GNU Emacs -;; Copyright (C) 1993, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1993, 2001-2012 Free Software Foundation, Inc. ;; Author: ATAE@spva.physics.imperial.ac.uk (Ata Etemadi) ;; Maintainer: FSF diff --git a/lisp/cedet/ChangeLog b/lisp/cedet/ChangeLog index ccc81e6613e..7d6f9f570ec 100644 --- a/lisp/cedet/ChangeLog +++ b/lisp/cedet/ChangeLog @@ -1,3 +1,8 @@ +2011-12-19 Sam Steingold <sds@gnu.org> + + * semantic/edit.el (semantic-edits-incremental-parser): Add the + autoload cookie, necessary for JDEE. + 2011-12-06 Juanma Barranquero <lekktu@gmail.com> * semantic/bovine/c.el (semantic-tag-abstract-p): Fix typo. @@ -1685,7 +1690,7 @@ ;; coding: utf-8 ;; End: - Copyright (C) 2009-2011 Free Software Foundation, Inc. + Copyright (C) 2009-2012 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/lisp/cedet/cedet-cscope.el b/lisp/cedet/cedet-cscope.el index 71942698c5f..ae384b005f3 100644 --- a/lisp/cedet/cedet-cscope.el +++ b/lisp/cedet/cedet-cscope.el @@ -1,6 +1,6 @@ ;;; cedet-cscope.el --- CScope support for CEDET -;;; Copyright (C) 2009-2011 Free Software Foundation, Inc. +;;; Copyright (C) 2009-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <zappo@gnu.org> ;; Package: cedet diff --git a/lisp/cedet/cedet-files.el b/lisp/cedet/cedet-files.el index 6f40ee7030f..2cd28081b95 100644 --- a/lisp/cedet/cedet-files.el +++ b/lisp/cedet/cedet-files.el @@ -1,6 +1,6 @@ ;;; cedet-files.el --- Common routines dealing with file names. -;; Copyright (C) 2007-2011 Free Software Foundation, Inc. +;; Copyright (C) 2007-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <eric@siege-engine.com> ;; Package: cedet diff --git a/lisp/cedet/cedet-global.el b/lisp/cedet/cedet-global.el index aa18c0d2f42..a6e94dcd5d9 100644 --- a/lisp/cedet/cedet-global.el +++ b/lisp/cedet/cedet-global.el @@ -1,6 +1,6 @@ ;;; cedet-global.el --- GNU Global support for CEDET. -;; Copyright (C) 2008-2011 Free Software Foundation, Inc. +;; Copyright (C) 2008-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <eric@siege-engine.com> ;; Package: cedet diff --git a/lisp/cedet/cedet-idutils.el b/lisp/cedet/cedet-idutils.el index ee8e432ddd9..b35035a58b6 100644 --- a/lisp/cedet/cedet-idutils.el +++ b/lisp/cedet/cedet-idutils.el @@ -1,6 +1,6 @@ ;;; cedet-idutils.el --- ID Utils support for CEDET. -;; Copyright (C) 2009-2011 Free Software Foundation, Inc. +;; Copyright (C) 2009-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <eric@siege-engine.com> ;; Version: 0.2 diff --git a/lisp/cedet/cedet.el b/lisp/cedet/cedet.el index 9ccf74de27a..6da3b5de547 100644 --- a/lisp/cedet/cedet.el +++ b/lisp/cedet/cedet.el @@ -1,6 +1,6 @@ ;;; cedet.el --- Setup CEDET environment -;; Copyright (C) 2002-2011 Free Software Foundation, Inc. +;; Copyright (C) 2002-2012 Free Software Foundation, Inc. ;; Author: David Ponce <david@dponce.com> ;; Maintainer: Eric M. Ludlam <zappo@gnu.org> diff --git a/lisp/cedet/data-debug.el b/lisp/cedet/data-debug.el index 329d1c608c2..d930a20fba5 100644 --- a/lisp/cedet/data-debug.el +++ b/lisp/cedet/data-debug.el @@ -1,6 +1,6 @@ ;;; data-debug.el --- Datastructure Debugger -;; Copyright (C) 2007-2011 Free Software Foundation, Inc. +;; Copyright (C) 2007-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <zappo@gnu.org> ;; Version: 0.2 @@ -1060,11 +1060,11 @@ If the result is a list or vector, then use the data debugger to display it." (setq values (cons (eval expr) values)) (let ((old-value (make-symbol "t")) new-value) ;; Bind debug-on-error to something unique so that we can - ;; detect when evaled code changes it. + ;; detect when evalled code changes it. (let ((debug-on-error old-value)) (setq values (cons (eval expr) values)) (setq new-value debug-on-error)) - ;; If evaled code has changed the value of debug-on-error, + ;; If evalled code has changed the value of debug-on-error, ;; propagate that change to the global binding. (unless (eq old-value new-value) (setq debug-on-error new-value)))) diff --git a/lisp/cedet/ede.el b/lisp/cedet/ede.el index 741e1ffbe5f..5f336df5514 100644 --- a/lisp/cedet/ede.el +++ b/lisp/cedet/ede.el @@ -1,6 +1,6 @@ ;;; ede.el --- Emacs Development Environment gloss -;; Copyright (C) 1998-2005, 2007-2011 Free Software Foundation, Inc. +;; Copyright (C) 1998-2005, 2007-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <zappo@gnu.org> ;; Keywords: project, make diff --git a/lisp/cedet/ede/auto.el b/lisp/cedet/ede/auto.el index d08ab543b82..7ff291d3675 100644 --- a/lisp/cedet/ede/auto.el +++ b/lisp/cedet/ede/auto.el @@ -1,6 +1,6 @@ ;;; ede/auto.el --- Autoload features for EDE -;; Copyright (C) 2010-2011 Free Software Foundation, Inc. +;; Copyright (C) 2010-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <zappo@gnu.org> diff --git a/lisp/cedet/ede/autoconf-edit.el b/lisp/cedet/ede/autoconf-edit.el index c6545dd9015..666ba0b0a06 100644 --- a/lisp/cedet/ede/autoconf-edit.el +++ b/lisp/cedet/ede/autoconf-edit.el @@ -1,6 +1,6 @@ ;;; ede/autoconf-edit.el --- Keymap for autoconf -;; Copyright (C) 1998-2000, 2009-2011 Free Software Foundation, Inc. +;; Copyright (C) 1998-2000, 2009-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <zappo@gnu.org> ;; Keywords: project diff --git a/lisp/cedet/ede/base.el b/lisp/cedet/ede/base.el index 8b0bd261daf..4365fdc2190 100644 --- a/lisp/cedet/ede/base.el +++ b/lisp/cedet/ede/base.el @@ -1,6 +1,6 @@ ;;; ede/base.el --- Baseclasses for EDE. -;; Copyright (C) 2010-2011 Free Software Foundation, Inc. +;; Copyright (C) 2010-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <zappo@gnu.org> diff --git a/lisp/cedet/ede/cpp-root.el b/lisp/cedet/ede/cpp-root.el index e4d1bf205ec..e6fd92759de 100644 --- a/lisp/cedet/ede/cpp-root.el +++ b/lisp/cedet/ede/cpp-root.el @@ -1,6 +1,6 @@ ;;; ede/cpp-root.el --- A simple way to wrap a C++ project with a single root -;; Copyright (C) 2007-2011 Free Software Foundation, Inc. +;; Copyright (C) 2007-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <eric@siege-engine.com> diff --git a/lisp/cedet/ede/custom.el b/lisp/cedet/ede/custom.el index ac0907e8e7f..ce851a9cd4f 100644 --- a/lisp/cedet/ede/custom.el +++ b/lisp/cedet/ede/custom.el @@ -1,6 +1,6 @@ ;;; ede/custom.el --- customization of EDE projects. -;; Copyright (C) 2010-2011 Free Software Foundation, Inc. +;; Copyright (C) 2010-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <zappo@gnu.org> diff --git a/lisp/cedet/ede/dired.el b/lisp/cedet/ede/dired.el index b7a98271ff3..bf9ab272785 100644 --- a/lisp/cedet/ede/dired.el +++ b/lisp/cedet/ede/dired.el @@ -1,6 +1,6 @@ ;;; ede/dired.el --- EDE extensions to dired. -;; Copyright (C) 1998-2000, 2003, 2009-2011 Free Software Foundation, Inc. +;; Copyright (C) 1998-2000, 2003, 2009-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <zappo@gnu.org> ;; Version: 0.4 diff --git a/lisp/cedet/ede/emacs.el b/lisp/cedet/ede/emacs.el index c1ca8b69208..d7c83749ffa 100644 --- a/lisp/cedet/ede/emacs.el +++ b/lisp/cedet/ede/emacs.el @@ -1,6 +1,6 @@ ;;; ede/emacs.el --- Special project for Emacs -;; Copyright (C) 2008-2011 Free Software Foundation, Inc. +;; Copyright (C) 2008-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <eric@siege-engine.com> diff --git a/lisp/cedet/ede/files.el b/lisp/cedet/ede/files.el index f17dfd85fdf..02aeffc5e2b 100644 --- a/lisp/cedet/ede/files.el +++ b/lisp/cedet/ede/files.el @@ -1,6 +1,6 @@ ;;; ede/files.el --- Associate projects with files and directories. -;; Copyright (C) 2008-2011 Free Software Foundation, Inc. +;; Copyright (C) 2008-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <eric@siege-engine.com> diff --git a/lisp/cedet/ede/generic.el b/lisp/cedet/ede/generic.el index 69570771546..67ef63f662e 100644 --- a/lisp/cedet/ede/generic.el +++ b/lisp/cedet/ede/generic.el @@ -1,6 +1,6 @@ ;;; ede/generic.el --- Base Support for generic build systems -;; Copyright (C) 2010-2011 Free Software Foundation, Inc. +;; Copyright (C) 2010-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <eric@siege-engine.com> diff --git a/lisp/cedet/ede/linux.el b/lisp/cedet/ede/linux.el index 0ed9c3054ef..70cd9498f69 100644 --- a/lisp/cedet/ede/linux.el +++ b/lisp/cedet/ede/linux.el @@ -1,6 +1,6 @@ ;;; ede/linux.el --- Special project for Linux -;; Copyright (C) 2008-2011 Free Software Foundation, Inc. +;; Copyright (C) 2008-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <eric@siege-engine.com> diff --git a/lisp/cedet/ede/locate.el b/lisp/cedet/ede/locate.el index 427b87d2bc0..c008f5fb945 100644 --- a/lisp/cedet/ede/locate.el +++ b/lisp/cedet/ede/locate.el @@ -1,6 +1,6 @@ ;;; ede/locate.el --- Locate support -;; Copyright (C) 2008-2011 Free Software Foundation, Inc. +;; Copyright (C) 2008-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <eric@siege-engine.com> diff --git a/lisp/cedet/ede/make.el b/lisp/cedet/ede/make.el index 1c1bcd47d75..b795977a9c6 100644 --- a/lisp/cedet/ede/make.el +++ b/lisp/cedet/ede/make.el @@ -1,6 +1,6 @@ ;;; ede/make.el --- General information about "make" -;;; Copyright (C) 2009-2011 Free Software Foundation, Inc. +;;; Copyright (C) 2009-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <eric@siege-engine.com> diff --git a/lisp/cedet/ede/makefile-edit.el b/lisp/cedet/ede/makefile-edit.el index 718fdf58b11..afa1c7200ec 100644 --- a/lisp/cedet/ede/makefile-edit.el +++ b/lisp/cedet/ede/makefile-edit.el @@ -1,6 +1,6 @@ ;;; makefile-edit.el --- Makefile editing/scanning commands. -;; Copyright (C) 2009-2011 Free Software Foundation, Inc. +;; Copyright (C) 2009-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <eric@siege-engine.com> diff --git a/lisp/cedet/ede/pconf.el b/lisp/cedet/ede/pconf.el index ae503e836d8..2e44379b809 100644 --- a/lisp/cedet/ede/pconf.el +++ b/lisp/cedet/ede/pconf.el @@ -1,6 +1,6 @@ ;;; ede/pconf.el --- configure.ac maintenance for EDE -;;; Copyright (C) 1998-2000, 2005, 2008-2011 Free Software Foundation, Inc. +;;; Copyright (C) 1998-2000, 2005, 2008-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <zappo@gnu.org> ;; Keywords: project diff --git a/lisp/cedet/ede/pmake.el b/lisp/cedet/ede/pmake.el index d78e95af27f..bd5400bb615 100644 --- a/lisp/cedet/ede/pmake.el +++ b/lisp/cedet/ede/pmake.el @@ -1,6 +1,6 @@ ;;; ede-pmake.el --- EDE Generic Project Makefile code generator. -;; Copyright (C) 1998-2005, 2007-2011 Free Software Foundation, Inc. +;; Copyright (C) 1998-2005, 2007-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <zappo@gnu.org> ;; Keywords: project, make @@ -335,7 +335,7 @@ NOTE: Not yet in use! This is part of an SRecode conversion of ; ; (oref this variables)) ; -; ;; Add in all variables from the configuration not allready covered. +; ;; Add in all variables from the configuration not already covered. ; (mapc (lambda (c) ; ; (if (member (car c) conf-done) @@ -372,7 +372,7 @@ NOTE: Not yet in use! This is part of an SRecode conversion of (setq conf-done (cons (car c) conf-done)))) (insert (cdr c) "\n")) (oref this variables)) - ;; Add in all variables from the configuration not allready covered. + ;; Add in all variables from the configuration not already covered. (mapc (lambda (c) (if (member (car c) conf-done) nil @@ -430,7 +430,7 @@ sources variable." this (oref proj configuration-default))) (conf-done nil) ) - ;; Add in all variables from the configuration not allready covered. + ;; Add in all variables from the configuration not already covered. (mapc (lambda (c) (if (member (car c) conf-done) nil diff --git a/lisp/cedet/ede/proj-archive.el b/lisp/cedet/ede/proj-archive.el index 23d3aa05000..e07415a6723 100644 --- a/lisp/cedet/ede/proj-archive.el +++ b/lisp/cedet/ede/proj-archive.el @@ -1,6 +1,6 @@ ;;; ede/proj-archive.el --- EDE Generic Project archive support -;; Copyright (C) 1998-2001, 2009-2011 Free Software Foundation, Inc. +;; Copyright (C) 1998-2001, 2009-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <zappo@gnu.org> ;; Keywords: project, make @@ -46,7 +46,7 @@ (defmethod ede-proj-makefile-insert-source-variables :BEFORE ((this ede-proj-target-makefile-archive) &optional moresource) "Insert bin_PROGRAMS variables needed by target THIS. -We aren't acutally inserting SOURCE details, but this is used by the +We aren't actually inserting SOURCE details, but this is used by the Makefile.am generator, so use it to add this important bin program." (ede-pmake-insert-variable-shared (concat "lib" (ede-name this) "_a_LIBRARIES") diff --git a/lisp/cedet/ede/proj-aux.el b/lisp/cedet/ede/proj-aux.el index 2a8f1de65e2..f5b43e1542c 100644 --- a/lisp/cedet/ede/proj-aux.el +++ b/lisp/cedet/ede/proj-aux.el @@ -1,6 +1,6 @@ ;;; ede/proj-aux.el --- EDE Generic Project auxiliary file support -;; Copyright (C) 1998-2000, 2007, 2009-2011 Free Software Foundation, Inc. +;; Copyright (C) 1998-2000, 2007, 2009-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <zappo@gnu.org> ;; Keywords: project, make diff --git a/lisp/cedet/ede/proj-comp.el b/lisp/cedet/ede/proj-comp.el index 84bf8ebf1a0..8277f58a5e0 100644 --- a/lisp/cedet/ede/proj-comp.el +++ b/lisp/cedet/ede/proj-comp.el @@ -1,6 +1,6 @@ ;;; ede/proj-comp.el --- EDE Generic Project compiler/rule driver -;; Copyright (C) 1999-2001, 2004-2005, 2007, 2009-2011 +;; Copyright (C) 1999-2001, 2004-2005, 2007, 2009-2012 ;; Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <zappo@gnu.org> diff --git a/lisp/cedet/ede/proj-elisp.el b/lisp/cedet/ede/proj-elisp.el index 66c71063363..78200acff7d 100644 --- a/lisp/cedet/ede/proj-elisp.el +++ b/lisp/cedet/ede/proj-elisp.el @@ -1,6 +1,6 @@ ;;; ede-proj-elisp.el --- EDE Generic Project Emacs Lisp support -;; Copyright (C) 1998-2005, 2007-2011 Free Software Foundation, Inc. +;; Copyright (C) 1998-2005, 2007-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <zappo@gnu.org> ;; Keywords: project, make diff --git a/lisp/cedet/ede/proj-info.el b/lisp/cedet/ede/proj-info.el index d943e609528..80d55232949 100644 --- a/lisp/cedet/ede/proj-info.el +++ b/lisp/cedet/ede/proj-info.el @@ -1,6 +1,6 @@ ;;; ede-proj-info.el --- EDE Generic Project texinfo support -;;; Copyright (C) 1998-2001, 2004, 2007-2011 Free Software Foundation, Inc. +;;; Copyright (C) 1998-2001, 2004, 2007-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <zappo@gnu.org> ;; Keywords: project, make diff --git a/lisp/cedet/ede/proj-misc.el b/lisp/cedet/ede/proj-misc.el index 1c9b9bea0f4..590e0894db4 100644 --- a/lisp/cedet/ede/proj-misc.el +++ b/lisp/cedet/ede/proj-misc.el @@ -1,6 +1,6 @@ ;;; ede-proj-misc.el --- EDE Generic Project Emacs Lisp support -;; Copyright (C) 1998-2001, 2008-2011 Free Software Foundation, Inc. +;; Copyright (C) 1998-2001, 2008-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <zappo@gnu.org> ;; Keywords: project, make diff --git a/lisp/cedet/ede/proj-obj.el b/lisp/cedet/ede/proj-obj.el index 7e7d289a59a..5b7e64b6aa1 100644 --- a/lisp/cedet/ede/proj-obj.el +++ b/lisp/cedet/ede/proj-obj.el @@ -1,6 +1,6 @@ ;;; ede/proj-obj.el --- EDE Generic Project Object code generation support -;;; Copyright (C) 1998-2000, 2005, 2008-2011 Free Software Foundation, Inc. +;;; Copyright (C) 1998-2000, 2005, 2008-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <zappo@gnu.org> ;; Keywords: project, make diff --git a/lisp/cedet/ede/proj-prog.el b/lisp/cedet/ede/proj-prog.el index f33f5327beb..18a00def986 100644 --- a/lisp/cedet/ede/proj-prog.el +++ b/lisp/cedet/ede/proj-prog.el @@ -1,6 +1,6 @@ ;;; ede-proj-prog.el --- EDE Generic Project program support -;; Copyright (C) 1998-2001, 2005, 2008-2011 Free Software Foundation, Inc. +;; Copyright (C) 1998-2001, 2005, 2008-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <zappo@gnu.org> ;; Keywords: project, make diff --git a/lisp/cedet/ede/proj-scheme.el b/lisp/cedet/ede/proj-scheme.el index 6a08d4fadd1..9817d0fb60b 100644 --- a/lisp/cedet/ede/proj-scheme.el +++ b/lisp/cedet/ede/proj-scheme.el @@ -1,6 +1,6 @@ ;;; ede/proj-scheme.el --- EDE Generic Project scheme (guile) support -;; Copyright (C) 1998-2000, 2009-2011 Free Software Foundation, Inc. +;; Copyright (C) 1998-2000, 2009-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <zappo@gnu.org> ;; Keywords: project, make, scheme diff --git a/lisp/cedet/ede/proj-shared.el b/lisp/cedet/ede/proj-shared.el index 4e233f56a12..5b192baf374 100644 --- a/lisp/cedet/ede/proj-shared.el +++ b/lisp/cedet/ede/proj-shared.el @@ -1,6 +1,6 @@ ;;; ede-proj-shared.el --- EDE Generic Project shared library support -;;; Copyright (C) 1998-2000, 2009-2011 Free Software Foundation, Inc. +;;; Copyright (C) 1998-2000, 2009-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <zappo@gnu.org> ;; Keywords: project, make @@ -181,7 +181,7 @@ Results in --add-missing being passed to automake." (defmethod ede-proj-makefile-insert-automake-pre-variables ((this ede-proj-target-makefile-shared-object)) "Insert bin_PROGRAMS variables needed by target THIS. -We aren't acutally inserting SOURCE details, but this is used by the +We aren't actually inserting SOURCE details, but this is used by the Makefile.am generator, so use it to add this important bin program." (ede-pmake-insert-variable-shared "lib_LTLIBRARIES" (insert (concat "lib" (ede-name this) ".la")))) diff --git a/lisp/cedet/ede/proj.el b/lisp/cedet/ede/proj.el index a77bb02218b..d80d55bf916 100644 --- a/lisp/cedet/ede/proj.el +++ b/lisp/cedet/ede/proj.el @@ -1,6 +1,6 @@ ;;; ede/proj.el --- EDE Generic Project file driver -;; Copyright (C) 1998-2003, 2007-2011 Free Software Foundation, Inc. +;; Copyright (C) 1998-2003, 2007-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <zappo@gnu.org> ;; Keywords: project, make diff --git a/lisp/cedet/ede/project-am.el b/lisp/cedet/ede/project-am.el index 033a486f1a7..b775cddbc0e 100644 --- a/lisp/cedet/ede/project-am.el +++ b/lisp/cedet/ede/project-am.el @@ -1,6 +1,6 @@ ;;; project-am.el --- A project management scheme based on automake files. -;; Copyright (C) 1998-2000, 2003, 2005, 2007-2011 +;; Copyright (C) 1998-2000, 2003, 2005, 2007-2012 ;; Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <zappo@gnu.org> diff --git a/lisp/cedet/ede/shell.el b/lisp/cedet/ede/shell.el index 194b7285a0b..526f30e8aa9 100644 --- a/lisp/cedet/ede/shell.el +++ b/lisp/cedet/ede/shell.el @@ -1,6 +1,6 @@ ;;; ede/shell.el --- A shell controlled by EDE. ;; -;; Copyright (C) 2009-2011 Free Software Foundation, Inc. +;; Copyright (C) 2009-2012 Free Software Foundation, Inc. ;; ;; Author: Eric M. Ludlam <eric@siege-engine.com> diff --git a/lisp/cedet/ede/simple.el b/lisp/cedet/ede/simple.el index 8d77cea6529..028c126e9e4 100644 --- a/lisp/cedet/ede/simple.el +++ b/lisp/cedet/ede/simple.el @@ -1,6 +1,6 @@ ;;; ede/simple.el --- Overlay an EDE structure on an existing project -;; Copyright (C) 2007-2011 Free Software Foundation, Inc. +;; Copyright (C) 2007-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <eric@siege-engine.com> diff --git a/lisp/cedet/ede/source.el b/lisp/cedet/ede/source.el index e5dc12d064f..956ebb43a27 100644 --- a/lisp/cedet/ede/source.el +++ b/lisp/cedet/ede/source.el @@ -1,6 +1,6 @@ ;; ede/source.el --- EDE source code object -;; Copyright (C) 2000, 2008-2011 Free Software Foundation, Inc. +;; Copyright (C) 2000, 2008-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <zappo@gnu.org> ;; Keywords: project, make diff --git a/lisp/cedet/ede/speedbar.el b/lisp/cedet/ede/speedbar.el index fdf61b51b68..57e5f9f2e9b 100644 --- a/lisp/cedet/ede/speedbar.el +++ b/lisp/cedet/ede/speedbar.el @@ -1,6 +1,6 @@ ;;; ede/speedbar.el --- Speedbar viewing of EDE projects -;; Copyright (C) 1998-2001, 2003, 2005, 2007-2011 +;; Copyright (C) 1998-2001, 2003, 2005, 2007-2012 ;; Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <zappo@gnu.org> diff --git a/lisp/cedet/ede/srecode.el b/lisp/cedet/ede/srecode.el index f7428bae04f..ccf9459cae7 100644 --- a/lisp/cedet/ede/srecode.el +++ b/lisp/cedet/ede/srecode.el @@ -1,6 +1,6 @@ ;;; ede/srecode.el --- EDE utilities on top of SRecoder -;; Copyright (C) 2008-2011 Free Software Foundation, Inc. +;; Copyright (C) 2008-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <eric@siege-engine.com> diff --git a/lisp/cedet/ede/system.el b/lisp/cedet/ede/system.el index b69938af4ab..4b28303a1c4 100644 --- a/lisp/cedet/ede/system.el +++ b/lisp/cedet/ede/system.el @@ -1,6 +1,6 @@ ;;; ede-system.el --- EDE working with the system (VC, FTP, ETC) -;; Copyright (C) 2001-2003, 2009-2011 Free Software Foundation, Inc. +;; Copyright (C) 2001-2003, 2009-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <zappo@gnu.org> ;; Keywords: project, make, vc diff --git a/lisp/cedet/ede/util.el b/lisp/cedet/ede/util.el index 053180d4a8b..05688aa56ff 100644 --- a/lisp/cedet/ede/util.el +++ b/lisp/cedet/ede/util.el @@ -1,6 +1,6 @@ ;;; ede/util.el --- EDE utilities -;; Copyright (C) 2000, 2005, 2009-2011 Free Software Foundation, Inc. +;; Copyright (C) 2000, 2005, 2009-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <zappo@gnu.org> ;; Keywords: project, make diff --git a/lisp/cedet/inversion.el b/lisp/cedet/inversion.el index 35841d2a6b2..877ed54566c 100644 --- a/lisp/cedet/inversion.el +++ b/lisp/cedet/inversion.el @@ -1,6 +1,6 @@ ;;; inversion.el --- When you need something in version XX.XX -;;; Copyright (C) 2002-2003, 2005-2011 Free Software Foundation, Inc. +;;; Copyright (C) 2002-2003, 2005-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <zappo@gnu.org> ;; Version: 0.2 diff --git a/lisp/cedet/mode-local.el b/lisp/cedet/mode-local.el index 511a3cd1d8b..7346e88797d 100644 --- a/lisp/cedet/mode-local.el +++ b/lisp/cedet/mode-local.el @@ -1,6 +1,6 @@ ;;; mode-local.el --- Support for mode local facilities ;; -;; Copyright (C) 2004-2005, 2007-2011 Free Software Foundation, Inc. +;; Copyright (C) 2004-2005, 2007-2012 Free Software Foundation, Inc. ;; ;; Author: David Ponce <david@dponce.com> ;; Maintainer: David Ponce <david@dponce.com> diff --git a/lisp/cedet/pulse.el b/lisp/cedet/pulse.el index 4929feb0302..746ee0b89af 100644 --- a/lisp/cedet/pulse.el +++ b/lisp/cedet/pulse.el @@ -1,6 +1,6 @@ ;;; pulse.el --- Pulsing Overlays -;;; Copyright (C) 2007-2011 Free Software Foundation, Inc. +;;; Copyright (C) 2007-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <eric@siege-engine.com> ;; Version: 1.0 diff --git a/lisp/cedet/semantic.el b/lisp/cedet/semantic.el index 337413caf75..1f07867bac5 100644 --- a/lisp/cedet/semantic.el +++ b/lisp/cedet/semantic.el @@ -1,6 +1,6 @@ ;;; semantic.el --- Semantic buffer evaluator. -;; Copyright (C) 1999-2011 Free Software Foundation, Inc. +;; Copyright (C) 1999-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <zappo@gnu.org> ;; Keywords: syntax tools diff --git a/lisp/cedet/semantic/analyze.el b/lisp/cedet/semantic/analyze.el index ef09ea13b42..63acc555343 100644 --- a/lisp/cedet/semantic/analyze.el +++ b/lisp/cedet/semantic/analyze.el @@ -1,6 +1,6 @@ ;;; semantic/analyze.el --- Analyze semantic tags against local context -;; Copyright (C) 2000-2005, 2007-2011 Free Software Foundation, Inc. +;; Copyright (C) 2000-2005, 2007-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <zappo@gnu.org> diff --git a/lisp/cedet/semantic/analyze/complete.el b/lisp/cedet/semantic/analyze/complete.el index 89937f45ec8..edc3cdc230c 100644 --- a/lisp/cedet/semantic/analyze/complete.el +++ b/lisp/cedet/semantic/analyze/complete.el @@ -1,6 +1,6 @@ ;;; semantic/analyze/complete.el --- Smart Completions -;; Copyright (C) 2007-2011 Free Software Foundation, Inc. +;; Copyright (C) 2007-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <zappo@gnu.org> diff --git a/lisp/cedet/semantic/analyze/debug.el b/lisp/cedet/semantic/analyze/debug.el index b02358b7243..5fe0078478d 100644 --- a/lisp/cedet/semantic/analyze/debug.el +++ b/lisp/cedet/semantic/analyze/debug.el @@ -1,6 +1,6 @@ ;;; semantic/analyze/debug.el --- Debug the analyzer -;;; Copyright (C) 2008-2011 Free Software Foundation, Inc. +;;; Copyright (C) 2008-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <zappo@gnu.org> @@ -70,7 +70,7 @@ (let ((pentry (nth idx pf)) (ptentry (nth idx pft))) (if (or (stringp pentry) (not ptentry)) - ;; Found someting ok. stop + ;; Found something ok. Stop. (setq stop t) (setq idx (1+ idx))))) ;; We found the first non-tag entry. What is the situation? diff --git a/lisp/cedet/semantic/analyze/fcn.el b/lisp/cedet/semantic/analyze/fcn.el index 967e5c59cda..a27356c784b 100644 --- a/lisp/cedet/semantic/analyze/fcn.el +++ b/lisp/cedet/semantic/analyze/fcn.el @@ -1,6 +1,6 @@ ;;; semantic/analyze/fcn.el --- Analyzer support functions. -;; Copyright (C) 2007-2011 Free Software Foundation, Inc. +;; Copyright (C) 2007-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <zappo@gnu.org> diff --git a/lisp/cedet/semantic/analyze/refs.el b/lisp/cedet/semantic/analyze/refs.el index 9a4459f037f..09a4c08c059 100644 --- a/lisp/cedet/semantic/analyze/refs.el +++ b/lisp/cedet/semantic/analyze/refs.el @@ -1,6 +1,6 @@ ;;; semantic/analyze/refs.el --- Analysis of the references between tags. -;; Copyright (C) 2008-2011 Free Software Foundation, Inc. +;; Copyright (C) 2008-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <zappo@gnu.org> diff --git a/lisp/cedet/semantic/bovine.el b/lisp/cedet/semantic/bovine.el index 036a6f38724..56bd1227993 100644 --- a/lisp/cedet/semantic/bovine.el +++ b/lisp/cedet/semantic/bovine.el @@ -1,6 +1,6 @@ ;;; semantic/bovine.el --- LL Parser/Analyzer core. -;; Copyright (C) 1999-2004, 2006-2007, 2009-2011 +;; Copyright (C) 1999-2004, 2006-2007, 2009-2012 ;; Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <eric@siege-engine.com> diff --git a/lisp/cedet/semantic/bovine/c-by.el b/lisp/cedet/semantic/bovine/c-by.el index 99429f01acd..b47dac49a52 100644 --- a/lisp/cedet/semantic/bovine/c-by.el +++ b/lisp/cedet/semantic/bovine/c-by.el @@ -1,6 +1,6 @@ ;;; semantic/bovine/c-by.el --- Generated parser support file -;; Copyright (C) 1999-2011 Free Software Foundation, Inc. +;; Copyright (C) 1999-2012 Free Software Foundation, Inc. ;; This file is part of GNU Emacs. diff --git a/lisp/cedet/semantic/bovine/c.el b/lisp/cedet/semantic/bovine/c.el index 4da23498cfc..886b15d183e 100644 --- a/lisp/cedet/semantic/bovine/c.el +++ b/lisp/cedet/semantic/bovine/c.el @@ -1,6 +1,6 @@ ;;; semantic/bovine/c.el --- Semantic details for C -;; Copyright (C) 1999-2011 Free Software Foundation, Inc. +;; Copyright (C) 1999-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <zappo@gnu.org> diff --git a/lisp/cedet/semantic/bovine/debug.el b/lisp/cedet/semantic/bovine/debug.el index 684db1e7bbf..3680247484d 100644 --- a/lisp/cedet/semantic/bovine/debug.el +++ b/lisp/cedet/semantic/bovine/debug.el @@ -1,6 +1,6 @@ ;;; semantic/bovine/debug.el --- Debugger support for bovinator -;; Copyright (C) 2003, 2009-2011 Free Software Foundation, Inc. +;; Copyright (C) 2003, 2009-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <zappo@gnu.org> diff --git a/lisp/cedet/semantic/bovine/el.el b/lisp/cedet/semantic/bovine/el.el index 1a2061d01e7..818b8b581a4 100644 --- a/lisp/cedet/semantic/bovine/el.el +++ b/lisp/cedet/semantic/bovine/el.el @@ -1,6 +1,6 @@ ;;; semantic/bovine/el.el --- Semantic details for Emacs Lisp -;; Copyright (C) 1999-2005, 2007-2011 Free Software Foundation, Inc. +;; Copyright (C) 1999-2005, 2007-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <zappo@gnu.org> diff --git a/lisp/cedet/semantic/bovine/gcc.el b/lisp/cedet/semantic/bovine/gcc.el index acbbb13170e..8b47ae14eee 100644 --- a/lisp/cedet/semantic/bovine/gcc.el +++ b/lisp/cedet/semantic/bovine/gcc.el @@ -1,6 +1,6 @@ ;;; semantic/bovine/gcc.el --- gcc querying special code for the C parser -;; Copyright (C) 2008-2011 Free Software Foundation, Inc. +;; Copyright (C) 2008-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <eric@siege-engine.com> diff --git a/lisp/cedet/semantic/bovine/make-by.el b/lisp/cedet/semantic/bovine/make-by.el index 41da728d537..ac38d1707c3 100644 --- a/lisp/cedet/semantic/bovine/make-by.el +++ b/lisp/cedet/semantic/bovine/make-by.el @@ -1,6 +1,6 @@ ;;; semantic/bovine/make-by.el --- Generated parser support file -;; Copyright (C) 1999-2004, 2008-2011 Free Software Foundation, Inc. +;; Copyright (C) 1999-2004, 2008-2012 Free Software Foundation, Inc. ;; This file is part of GNU Emacs. diff --git a/lisp/cedet/semantic/bovine/make.el b/lisp/cedet/semantic/bovine/make.el index e132b48441a..4098b2c0374 100644 --- a/lisp/cedet/semantic/bovine/make.el +++ b/lisp/cedet/semantic/bovine/make.el @@ -1,6 +1,6 @@ ;;; semantic/bovine/make.el --- Makefile parsing rules. -;; Copyright (C) 2000-2004, 2008-2011 Free Software Foundation, Inc. +;; Copyright (C) 2000-2004, 2008-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <zappo@gnu.org> diff --git a/lisp/cedet/semantic/bovine/scm-by.el b/lisp/cedet/semantic/bovine/scm-by.el index 8dd170384bc..d580a5fb22e 100644 --- a/lisp/cedet/semantic/bovine/scm-by.el +++ b/lisp/cedet/semantic/bovine/scm-by.el @@ -1,6 +1,6 @@ ;;; semantic-scm-by.el --- Generated parser support file -;; Copyright (C) 2001, 2003, 2009-2011 Free Software Foundation, Inc. +;; Copyright (C) 2001, 2003, 2009-2012 Free Software Foundation, Inc. ;; This file is part of GNU Emacs. diff --git a/lisp/cedet/semantic/bovine/scm.el b/lisp/cedet/semantic/bovine/scm.el index 0bdd8722db1..5c4e2ae6d60 100644 --- a/lisp/cedet/semantic/bovine/scm.el +++ b/lisp/cedet/semantic/bovine/scm.el @@ -1,6 +1,6 @@ ;;; semantic/bovine/scm.el --- Semantic details for Scheme (guile) -;;; Copyright (C) 2001-2004, 2008-2011 Free Software Foundation, Inc. +;;; Copyright (C) 2001-2004, 2008-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <zappo@gnu.org> diff --git a/lisp/cedet/semantic/chart.el b/lisp/cedet/semantic/chart.el index 1c08cb04d15..c6b13475862 100644 --- a/lisp/cedet/semantic/chart.el +++ b/lisp/cedet/semantic/chart.el @@ -1,6 +1,6 @@ ;;; semantic/chart.el --- Utilities for use with semantic tag tables -;; Copyright (C) 1999-2001, 2003, 2005, 2008-2011 +;; Copyright (C) 1999-2001, 2003, 2005, 2008-2012 ;; Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <zappo@gnu.org> diff --git a/lisp/cedet/semantic/complete.el b/lisp/cedet/semantic/complete.el index 7e01b88f60b..18d4052eb43 100644 --- a/lisp/cedet/semantic/complete.el +++ b/lisp/cedet/semantic/complete.el @@ -1,6 +1,6 @@ ;;; semantic/complete.el --- Routines for performing tag completion -;; Copyright (C) 2003-2005, 2007-2011 Free Software Foundation, Inc. +;; Copyright (C) 2003-2005, 2007-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <zappo@gnu.org> ;; Keywords: syntax diff --git a/lisp/cedet/semantic/ctxt.el b/lisp/cedet/semantic/ctxt.el index 4fef5937bc3..717b261984c 100644 --- a/lisp/cedet/semantic/ctxt.el +++ b/lisp/cedet/semantic/ctxt.el @@ -1,6 +1,6 @@ ;;; semantic/ctxt.el --- Context calculations for Semantic tools. -;; Copyright (C) 1999-2011 Free Software Foundation, Inc. +;; Copyright (C) 1999-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <zappo@gnu.org> ;; Keywords: syntax diff --git a/lisp/cedet/semantic/db-debug.el b/lisp/cedet/semantic/db-debug.el index 7d1abe11dd1..e73929382bf 100644 --- a/lisp/cedet/semantic/db-debug.el +++ b/lisp/cedet/semantic/db-debug.el @@ -1,6 +1,6 @@ ;;; semantic/db-debug.el --- Extra level debugging routines for Semantic -;;; Copyright (C) 2008-2011 Free Software Foundation, Inc. +;;; Copyright (C) 2008-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <eric@siege-engine.com> diff --git a/lisp/cedet/semantic/db-ebrowse.el b/lisp/cedet/semantic/db-ebrowse.el index fe5f3c193df..28e5649a865 100644 --- a/lisp/cedet/semantic/db-ebrowse.el +++ b/lisp/cedet/semantic/db-ebrowse.el @@ -1,6 +1,6 @@ ;;; semantic/db-ebrowse.el --- Semanticdb backend using ebrowse. -;; Copyright (C) 2005-2011 Free Software Foundation, Inc. +;; Copyright (C) 2005-2012 Free Software Foundation, Inc. ;; Authors: Eric M. Ludlam <zappo@gnu.org> ;; Joakim Verona diff --git a/lisp/cedet/semantic/db-el.el b/lisp/cedet/semantic/db-el.el index 0cbff54fd1d..ce6f33f0d18 100644 --- a/lisp/cedet/semantic/db-el.el +++ b/lisp/cedet/semantic/db-el.el @@ -1,6 +1,6 @@ ;;; semantic/db-el.el --- Semantic database extensions for Emacs Lisp -;;; Copyright (C) 2002-2011 Free Software Foundation, Inc. +;;; Copyright (C) 2002-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <zappo@gnu.org> ;; Keywords: tags diff --git a/lisp/cedet/semantic/db-file.el b/lisp/cedet/semantic/db-file.el index 943ccf23031..c487e39c7b2 100644 --- a/lisp/cedet/semantic/db-file.el +++ b/lisp/cedet/semantic/db-file.el @@ -1,6 +1,6 @@ ;;; semantic/db-file.el --- Save a semanticdb to a cache file. -;;; Copyright (C) 2000-2005, 2007-2011 Free Software Foundation, Inc. +;;; Copyright (C) 2000-2005, 2007-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <zappo@gnu.org> ;; Keywords: tags @@ -193,16 +193,16 @@ If DIRECTORY doesn't exist, create a new one." (eieio-instance-tracker-find filename 'file 'semanticdb-database-list)) (defmethod semanticdb-file-directory-exists-p ((DB semanticdb-project-database-file) - &optional supress-questions) + &optional suppress-questions) "Does the directory the database DB needs to write to exist? -If SUPRESS-QUESTIONS, then do not ask to create the directory." +If SUPPRESS-QUESTIONS, then do not ask to create the directory." (let ((dest (file-name-directory (oref DB file))) ) (cond ((null dest) ;; @TODO - If it was never set up... what should we do ? nil) ((file-exists-p dest) t) - ((or supress-questions + ((or suppress-questions (and (boundp 'semanticdb--inhibit-make-directory) semanticdb--inhibit-make-directory)) nil) @@ -216,13 +216,13 @@ If SUPRESS-QUESTIONS, then do not ask to create the directory." (defmethod semanticdb-save-db ((DB semanticdb-project-database-file) &optional - supress-questions) + suppress-questions) "Write out the database DB to its file. If DB is not specified, then use the current database." (let ((objname (oref DB file))) (when (and (semanticdb-dirty-p DB) (semanticdb-live-p DB) - (semanticdb-file-directory-exists-p DB supress-questions) + (semanticdb-file-directory-exists-p DB suppress-questions) (semanticdb-write-directory-p DB) ) ;;(message "Saving tag summary for %s..." objname) @@ -243,7 +243,7 @@ If DB is not specified, then use the current database." (t ;; @todo - It should ask if we are not called from a hook. ;; How? - (if (or supress-questions + (if (or suppress-questions (y-or-n-p (format "Skip Error: %s ?" (car (cdr foo))))) (message "Save Error: %S: %s" (car (cdr foo)) objname) diff --git a/lisp/cedet/semantic/db-find.el b/lisp/cedet/semantic/db-find.el index a651e08d53c..ca6a8fbf5ca 100644 --- a/lisp/cedet/semantic/db-find.el +++ b/lisp/cedet/semantic/db-find.el @@ -1,6 +1,6 @@ ;;; semantic/db-find.el --- Searching through semantic databases. -;; Copyright (C) 2000-2011 Free Software Foundation, Inc. +;; Copyright (C) 2000-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <zappo@gnu.org> ;; Keywords: tags diff --git a/lisp/cedet/semantic/db-global.el b/lisp/cedet/semantic/db-global.el index 7f3d616203e..eceb830341f 100644 --- a/lisp/cedet/semantic/db-global.el +++ b/lisp/cedet/semantic/db-global.el @@ -1,6 +1,6 @@ ;;; semantic/db-global.el --- Semantic database extensions for GLOBAL -;; Copyright (C) 2002-2006, 2008-2011 Free Software Foundation, Inc. +;; Copyright (C) 2002-2006, 2008-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <zappo@gnu.org> ;; Keywords: tags diff --git a/lisp/cedet/semantic/db-javascript.el b/lisp/cedet/semantic/db-javascript.el index e662290340d..a7aaccf401d 100644 --- a/lisp/cedet/semantic/db-javascript.el +++ b/lisp/cedet/semantic/db-javascript.el @@ -1,6 +1,6 @@ ;;; semantic/db-javascript.el --- Semantic database extensions for javascript -;; Copyright (C) 2002-2011 Free Software Foundation, Inc. +;; Copyright (C) 2002-2012 Free Software Foundation, Inc. ;; Author: Joakim Verona diff --git a/lisp/cedet/semantic/db-mode.el b/lisp/cedet/semantic/db-mode.el index 8b656592603..56ce6cf06e6 100644 --- a/lisp/cedet/semantic/db-mode.el +++ b/lisp/cedet/semantic/db-mode.el @@ -1,6 +1,6 @@ ;;; semantic/db-mode.el --- Semanticdb Minor Mode -;; Copyright (C) 2008-2011 Free Software Foundation, Inc. +;; Copyright (C) 2008-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <eric@siege-engine.com> diff --git a/lisp/cedet/semantic/db-ref.el b/lisp/cedet/semantic/db-ref.el index 6f5489ef7ef..a021e3aff68 100644 --- a/lisp/cedet/semantic/db-ref.el +++ b/lisp/cedet/semantic/db-ref.el @@ -1,6 +1,6 @@ ;;; semantic/db-ref.el --- Handle cross-db file references -;;; Copyright (C) 2007-2011 Free Software Foundation, Inc. +;;; Copyright (C) 2007-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <eric@siege-engine.com> diff --git a/lisp/cedet/semantic/db-typecache.el b/lisp/cedet/semantic/db-typecache.el index 7d23ad17009..4698949b5e0 100644 --- a/lisp/cedet/semantic/db-typecache.el +++ b/lisp/cedet/semantic/db-typecache.el @@ -1,6 +1,6 @@ ;;; semantic/db-typecache.el --- Manage Datatypes -;; Copyright (C) 2007-2011 Free Software Foundation, Inc. +;; Copyright (C) 2007-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <eric@siege-engine.com> diff --git a/lisp/cedet/semantic/db.el b/lisp/cedet/semantic/db.el index 3d2128db29a..d6e4fff83c8 100644 --- a/lisp/cedet/semantic/db.el +++ b/lisp/cedet/semantic/db.el @@ -1,6 +1,6 @@ ;;; semantic/db.el --- Semantic tag database manager -;; Copyright (C) 2000-2011 Free Software Foundation, Inc. +;; Copyright (C) 2000-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <zappo@gnu.org> ;; Keywords: tags @@ -227,7 +227,7 @@ it is in Emacs.") "Non nil if this table needs to be `Saved'.") (db-refs :initform nil :documentation - "List of `semanticdb-table' objects refering to this one. + "List of `semanticdb-table' objects referring to this one. These aren't saved, but are instead recalculated after load. See the file semantic/db-ref.el for how this slot is used.") (pointmax :initarg :pointmax @@ -657,7 +657,7 @@ The file associated with OBJ does not need to be in a buffer." ;;; SAVE/LOAD ;; (defmethod semanticdb-save-db ((DB semanticdb-project-database) - &optional supress-questions) + &optional suppress-questions) "Cause a database to save itself. The database base class does not save itself persistently. Subclasses could save themselves to a file, or to a database, or other diff --git a/lisp/cedet/semantic/debug.el b/lisp/cedet/semantic/debug.el index 6db47f8b0be..e88517b15ce 100644 --- a/lisp/cedet/semantic/debug.el +++ b/lisp/cedet/semantic/debug.el @@ -1,6 +1,6 @@ ;;; semantic/debug.el --- Language Debugger framework -;; Copyright (C) 2003-2005, 2008-2011 Free Software Foundation, Inc. +;; Copyright (C) 2003-2005, 2008-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <zappo@gnu.org> diff --git a/lisp/cedet/semantic/decorate.el b/lisp/cedet/semantic/decorate.el index 4eeac8de141..7d1f0fb2f63 100644 --- a/lisp/cedet/semantic/decorate.el +++ b/lisp/cedet/semantic/decorate.el @@ -1,6 +1,6 @@ ;;; semantic/decorate.el --- Utilities for decorating/highlighting tokens. -;;; Copyright (C) 1999-2003, 2005-2007, 2009-2011 +;;; Copyright (C) 1999-2003, 2005-2007, 2009-2012 ;;; Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <zappo@gnu.org> diff --git a/lisp/cedet/semantic/decorate/include.el b/lisp/cedet/semantic/decorate/include.el index 766a13023e8..7fd4214016d 100644 --- a/lisp/cedet/semantic/decorate/include.el +++ b/lisp/cedet/semantic/decorate/include.el @@ -1,6 +1,6 @@ ;;; semantic/decorate/include.el --- Decoration modes for include statements -;; Copyright (C) 2008-2011 Free Software Foundation, Inc. +;; Copyright (C) 2008-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <zappo@gnu.org> diff --git a/lisp/cedet/semantic/decorate/mode.el b/lisp/cedet/semantic/decorate/mode.el index ea4df472afd..f67978a2620 100644 --- a/lisp/cedet/semantic/decorate/mode.el +++ b/lisp/cedet/semantic/decorate/mode.el @@ -1,6 +1,6 @@ ;;; semantic/decorate/mode.el --- Minor mode for decorating tags -;; Copyright (C) 2000-2005, 2007-2011 Free Software Foundation, Inc. +;; Copyright (C) 2000-2005, 2007-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <zappo@gnu.org> ;; Keywords: syntax diff --git a/lisp/cedet/semantic/dep.el b/lisp/cedet/semantic/dep.el index e47f82f391f..27ee00e8fbc 100644 --- a/lisp/cedet/semantic/dep.el +++ b/lisp/cedet/semantic/dep.el @@ -1,6 +1,6 @@ ;;; semantic/dep.el --- Methods for tracking dependencies (include files) -;; Copyright (C) 2006-2011 Free Software Foundation, Inc. +;; Copyright (C) 2006-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <zappo@gnu.org> ;; Keywords: syntax diff --git a/lisp/cedet/semantic/doc.el b/lisp/cedet/semantic/doc.el index ec3b5878c63..ddf1518f539 100644 --- a/lisp/cedet/semantic/doc.el +++ b/lisp/cedet/semantic/doc.el @@ -1,6 +1,6 @@ ;;; semantic/doc.el --- Routines for documentation strings -;; Copyright (C) 1999-2003, 2005, 2008-2011 Free Software Foundation, Inc. +;; Copyright (C) 1999-2003, 2005, 2008-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <zappo@gnu.org> ;; Keywords: syntax diff --git a/lisp/cedet/semantic/ede-grammar.el b/lisp/cedet/semantic/ede-grammar.el index 3a30a931d95..0fc1829566c 100644 --- a/lisp/cedet/semantic/ede-grammar.el +++ b/lisp/cedet/semantic/ede-grammar.el @@ -1,6 +1,6 @@ ;;; semantic/ede-grammar.el --- EDE support for Semantic Grammar Files -;; Copyright (C) 2003-2004, 2007-2011 Free Software Foundation, Inc. +;; Copyright (C) 2003-2004, 2007-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <zappo@gnu.org> ;; Keywords: project, make diff --git a/lisp/cedet/semantic/edit.el b/lisp/cedet/semantic/edit.el index 3fbcf6d932f..23b6784fe2a 100644 --- a/lisp/cedet/semantic/edit.el +++ b/lisp/cedet/semantic/edit.el @@ -1,6 +1,6 @@ ;;; semantic/edit.el --- Edit Management for Semantic -;; Copyright (C) 1999-2011 Free Software Foundation, Inc. +;; Copyright (C) 1999-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <zappo@gnu.org> @@ -470,6 +470,7 @@ a 'semantic-parse-changes-failed exception with value t." (buffer-name (current-buffer)))) (run-hooks 'semantic-edits-incremental-reparse-failed-hook)) +;;;###autoload (defun semantic-edits-incremental-parser () "Incrementally reparse the current buffer. Incremental parser allows semantic to only reparse those sections of diff --git a/lisp/cedet/semantic/find.el b/lisp/cedet/semantic/find.el index a6d86691206..ce7ba9926d2 100644 --- a/lisp/cedet/semantic/find.el +++ b/lisp/cedet/semantic/find.el @@ -1,6 +1,6 @@ ;;; semantic/find.el --- Search routines for Semantic -;; Copyright (C) 1999-2005, 2008-2011 Free Software Foundation, Inc. +;; Copyright (C) 1999-2005, 2008-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <zappo@gnu.org> ;; Keywords: syntax diff --git a/lisp/cedet/semantic/format.el b/lisp/cedet/semantic/format.el index 876ec9bbd4a..158c32b15c3 100644 --- a/lisp/cedet/semantic/format.el +++ b/lisp/cedet/semantic/format.el @@ -1,6 +1,6 @@ ;;; semantic/format.el --- Routines for formatting tags -;; Copyright (C) 1999-2005, 2007-2011 Free Software Foundation, Inc. +;; Copyright (C) 1999-2005, 2007-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <zappo@gnu.org> ;; Keywords: syntax diff --git a/lisp/cedet/semantic/fw.el b/lisp/cedet/semantic/fw.el index 479044ec518..851d5cd9e8e 100644 --- a/lisp/cedet/semantic/fw.el +++ b/lisp/cedet/semantic/fw.el @@ -1,6 +1,6 @@ ;;; semantic/fw.el --- Framework for Semantic -;;; Copyright (C) 1999-2011 Free Software Foundation, Inc. +;;; Copyright (C) 1999-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <zappo@gnu.org> diff --git a/lisp/cedet/semantic/grammar-wy.el b/lisp/cedet/semantic/grammar-wy.el index 879fdd92331..7408dd6702e 100644 --- a/lisp/cedet/semantic/grammar-wy.el +++ b/lisp/cedet/semantic/grammar-wy.el @@ -1,6 +1,6 @@ ;;; semantic/grammar-wy.el --- Generated parser support file -;; Copyright (C) 2002-2004, 2009-2011 Free Software Foundation, Inc. +;; Copyright (C) 2002-2004, 2009-2012 Free Software Foundation, Inc. ;; Author: David Ponce <david@dponce.com> ;; Keywords: syntax diff --git a/lisp/cedet/semantic/grammar.el b/lisp/cedet/semantic/grammar.el index 1a79adc650d..6d7865a29df 100644 --- a/lisp/cedet/semantic/grammar.el +++ b/lisp/cedet/semantic/grammar.el @@ -1,6 +1,6 @@ ;;; semantic/grammar.el --- Major mode framework for Semantic grammars -;; Copyright (C) 2002-2005, 2007-2011 Free Software Foundation, Inc. +;; Copyright (C) 2002-2005, 2007-2012 Free Software Foundation, Inc. ;; Author: David Ponce <david@dponce.com> ;; Maintainer: David Ponce <david@dponce.com> diff --git a/lisp/cedet/semantic/html.el b/lisp/cedet/semantic/html.el index a7d150ec4a9..5fec7fcdb1e 100644 --- a/lisp/cedet/semantic/html.el +++ b/lisp/cedet/semantic/html.el @@ -1,6 +1,6 @@ ;;; semantic/html.el --- Semantic details for html files -;; Copyright (C) 2004-2005, 2007-2011 Free Software Foundation, Inc. +;; Copyright (C) 2004-2005, 2007-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <zappo@gnu.org> diff --git a/lisp/cedet/semantic/ia-sb.el b/lisp/cedet/semantic/ia-sb.el index edd62cc5ca5..f898b6565fd 100644 --- a/lisp/cedet/semantic/ia-sb.el +++ b/lisp/cedet/semantic/ia-sb.el @@ -1,6 +1,6 @@ ;;; semantic/ia-sb.el --- Speedbar analysis display interactor -;;; Copyright (C) 2002-2004, 2006, 2008-2011 Free Software Foundation, Inc. +;;; Copyright (C) 2002-2004, 2006, 2008-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <zappo@gnu.org> ;; Keywords: syntax diff --git a/lisp/cedet/semantic/ia.el b/lisp/cedet/semantic/ia.el index 2aae39d4b21..1aedc7b6d45 100644 --- a/lisp/cedet/semantic/ia.el +++ b/lisp/cedet/semantic/ia.el @@ -1,6 +1,6 @@ ;;; semantic/ia.el --- Interactive Analysis functions -;;; Copyright (C) 2000-2011 Free Software Foundation, Inc. +;;; Copyright (C) 2000-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <zappo@gnu.org> ;; Keywords: syntax diff --git a/lisp/cedet/semantic/idle.el b/lisp/cedet/semantic/idle.el index 4b3a51e79f7..7ed1612d592 100644 --- a/lisp/cedet/semantic/idle.el +++ b/lisp/cedet/semantic/idle.el @@ -1,6 +1,6 @@ ;;; idle.el --- Schedule parsing tasks in idle time -;; Copyright (C) 2003-2006, 2008-2011 Free Software Foundation, Inc. +;; Copyright (C) 2003-2006, 2008-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <zappo@gnu.org> ;; Keywords: syntax @@ -246,8 +246,8 @@ And also manages services that depend on tag values." ;; NOTE ON COMMENTED SAFE HERE ;; We used to not execute the services if the buffer was - ;; unparseable. We now assume that they are lexically - ;; safe to do, because we have marked the buffer unparseable + ;; unparsable. We now assume that they are lexically + ;; safe to do, because we have marked the buffer unparsable ;; if there was a problem. ;;(when safe (dolist (service semantic-idle-scheduler-queue) @@ -476,7 +476,7 @@ Does nothing if the current buffer doesn't need reparsing." ;; do them here, then all the bovination hooks are not run, and ;; we save lots of time. (cond - ;; If the buffer was previously marked unparseable, + ;; If the buffer was previously marked unparsable, ;; then don't waste our time. ((semantic-parse-tree-unparseable-p) nil) diff --git a/lisp/cedet/semantic/imenu.el b/lisp/cedet/semantic/imenu.el index 7566c08f13a..22a23e526a2 100644 --- a/lisp/cedet/semantic/imenu.el +++ b/lisp/cedet/semantic/imenu.el @@ -1,6 +1,6 @@ ;;; semantic/imenu.el --- Use Semantic as an imenu tag generator -;;; Copyright (C) 2000-2005, 2007-2008, 2010-2011 +;;; Copyright (C) 2000-2005, 2007-2008, 2010-2012 ;; Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <zappo@gnu.org> diff --git a/lisp/cedet/semantic/java.el b/lisp/cedet/semantic/java.el index c3075634242..8747d793ab8 100644 --- a/lisp/cedet/semantic/java.el +++ b/lisp/cedet/semantic/java.el @@ -1,6 +1,6 @@ ;;; semantic/java.el --- Semantic functions for Java -;;; Copyright (C) 1999-2011 Free Software Foundation, Inc. +;;; Copyright (C) 1999-2012 Free Software Foundation, Inc. ;; Author: David Ponce <david@dponce.com> diff --git a/lisp/cedet/semantic/lex-spp.el b/lisp/cedet/semantic/lex-spp.el index cf82da303ce..5f121d88ac6 100644 --- a/lisp/cedet/semantic/lex-spp.el +++ b/lisp/cedet/semantic/lex-spp.el @@ -1,6 +1,6 @@ ;;; semantic/lex-spp.el --- Semantic Lexical Pre-processor -;; Copyright (C) 2006-2011 Free Software Foundation, Inc. +;; Copyright (C) 2006-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <zappo@gnu.org> @@ -577,7 +577,7 @@ and what valid VAL values are." (cond ;; CASE 3: Merge symbols together. ((eq (semantic-lex-token-class v) 'spp-symbol-merge) - ;; We need to merge the tokens in the 'text segement together, + ;; We need to merge the tokens in the 'text segment together, ;; and produce a single symbol from it. (let ((newsym (mapconcat (lambda (tok) diff --git a/lisp/cedet/semantic/lex.el b/lisp/cedet/semantic/lex.el index dab5c444fae..e47cc1eaee9 100644 --- a/lisp/cedet/semantic/lex.el +++ b/lisp/cedet/semantic/lex.el @@ -1,6 +1,6 @@ ;;; semantic/lex.el --- Lexical Analyzer builder -;; Copyright (C) 1999-2011 Free Software Foundation, Inc. +;; Copyright (C) 1999-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <zappo@gnu.org> @@ -1704,7 +1704,7 @@ If there is no error, then the last value of FORMS is returned." nil)))) ;; Great Sadness. Assume that FORMS execute within the ;; confines of the current buffer only! Mark this thing - ;; unparseable iff the special symbol was thrown. This + ;; unparsable iff the special symbol was thrown. This ;; will prevent future calls from parsing, but will allow ;; then to still return the cache. (when ,ret diff --git a/lisp/cedet/semantic/mru-bookmark.el b/lisp/cedet/semantic/mru-bookmark.el index 47915e8ad58..4216e099857 100644 --- a/lisp/cedet/semantic/mru-bookmark.el +++ b/lisp/cedet/semantic/mru-bookmark.el @@ -1,6 +1,6 @@ ;;; semantic/mru-bookmark.el --- Automatic bookmark tracking -;; Copyright (C) 2007-2011 Free Software Foundation, Inc. +;; Copyright (C) 2007-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <eric@siege-engine.com> @@ -363,7 +363,7 @@ Argument PROMPT is the prompt to use when reading." (setq ans (assoc ans alist)) (if ans (cdr ans) - ;; no match. Custom word. Look it up somwhere? + ;; no match. Custom word. Look it up somewhere? nil) ))) diff --git a/lisp/cedet/semantic/sb.el b/lisp/cedet/semantic/sb.el index 8c3d6c17cf4..1da0003db8e 100644 --- a/lisp/cedet/semantic/sb.el +++ b/lisp/cedet/semantic/sb.el @@ -1,6 +1,6 @@ ;;; semantic/sb.el --- Semantic tag display for speedbar -;; Copyright (C) 1999-2011 Free Software Foundation, Inc. +;; Copyright (C) 1999-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <zappo@gnu.org> ;; Keywords: syntax diff --git a/lisp/cedet/semantic/scope.el b/lisp/cedet/semantic/scope.el index ea4903c70ea..c5b07b9d440 100644 --- a/lisp/cedet/semantic/scope.el +++ b/lisp/cedet/semantic/scope.el @@ -1,6 +1,6 @@ ;;; semantic/scope.el --- Analyzer Scope Calculations -;; Copyright (C) 2007-2011 Free Software Foundation, Inc. +;; Copyright (C) 2007-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <eric@siege-engine.com> @@ -725,7 +725,7 @@ The class returned from the scope calculation is variable (oset scopecache localargs localargs) (oset scopecache localvar localvar) ))) - ;; Make sure we become dependant on the typecache. + ;; Make sure we become dependent on the typecache. (semanticdb-typecache-add-dependant scopecache) ;; Handy debug output. (when (called-interactively-p 'any) diff --git a/lisp/cedet/semantic/senator.el b/lisp/cedet/semantic/senator.el index b4618d1c18f..64f99a8ad6f 100644 --- a/lisp/cedet/semantic/senator.el +++ b/lisp/cedet/semantic/senator.el @@ -1,6 +1,6 @@ ;;; semantic/senator.el --- SEmantic NAvigaTOR -;; Copyright (C) 2000-2011 Free Software Foundation, Inc. +;; Copyright (C) 2000-2012 Free Software Foundation, Inc. ;; Author: David Ponce <david@dponce.com> ;; Maintainer: FSF diff --git a/lisp/cedet/semantic/sort.el b/lisp/cedet/semantic/sort.el index a4126e1384b..61218ffd3a9 100644 --- a/lisp/cedet/semantic/sort.el +++ b/lisp/cedet/semantic/sort.el @@ -1,6 +1,6 @@ ;;; semantic/sort.el --- Utilities for sorting and re-arranging tag tables. -;;; Copyright (C) 1999-2005, 2007-2011 Free Software Foundation, Inc. +;;; Copyright (C) 1999-2005, 2007-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <zappo@gnu.org> ;; Keywords: syntax diff --git a/lisp/cedet/semantic/symref.el b/lisp/cedet/semantic/symref.el index cbae9f85573..1c8063134d6 100644 --- a/lisp/cedet/semantic/symref.el +++ b/lisp/cedet/semantic/symref.el @@ -1,6 +1,6 @@ ;;; semantic/symref.el --- Symbol Reference API -;; Copyright (C) 2008-2011 Free Software Foundation, Inc. +;; Copyright (C) 2008-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <eric@siege-engine.com> diff --git a/lisp/cedet/semantic/symref/cscope.el b/lisp/cedet/semantic/symref/cscope.el index b74b0501c28..e999c35e28d 100644 --- a/lisp/cedet/semantic/symref/cscope.el +++ b/lisp/cedet/semantic/symref/cscope.el @@ -1,6 +1,6 @@ ;;; semantic/symref/cscope.el --- Semantic-symref support via cscope. -;;; Copyright (C) 2009-2011 Free Software Foundation, Inc. +;;; Copyright (C) 2009-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <eric@siege-engine.com> diff --git a/lisp/cedet/semantic/symref/filter.el b/lisp/cedet/semantic/symref/filter.el index 1676e0764d9..57d628b2681 100644 --- a/lisp/cedet/semantic/symref/filter.el +++ b/lisp/cedet/semantic/symref/filter.el @@ -1,6 +1,6 @@ ;;; semantic/symref/filter.el --- Filter symbol reference hits for accuracy. -;; Copyright (C) 2009-2011 Free Software Foundation, Inc. +;; Copyright (C) 2009-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <eric@siege-engine.com> diff --git a/lisp/cedet/semantic/symref/global.el b/lisp/cedet/semantic/symref/global.el index 5af42a96581..7aa46fd6c17 100644 --- a/lisp/cedet/semantic/symref/global.el +++ b/lisp/cedet/semantic/symref/global.el @@ -1,6 +1,6 @@ ;;; semantic/symref/global.el --- Use GNU Global for symbol references -;; Copyright (C) 2008-2011 Free Software Foundation, Inc. +;; Copyright (C) 2008-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <eric@siege-engine.com> diff --git a/lisp/cedet/semantic/symref/grep.el b/lisp/cedet/semantic/symref/grep.el index da250e66bb5..675a4476e2d 100644 --- a/lisp/cedet/semantic/symref/grep.el +++ b/lisp/cedet/semantic/symref/grep.el @@ -1,6 +1,6 @@ ;;; semantic/symref/grep.el --- Symref implementation using find/grep -;; Copyright (C) 2008-2011 Free Software Foundation, Inc. +;; Copyright (C) 2008-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <eric@siege-engine.com> diff --git a/lisp/cedet/semantic/symref/idutils.el b/lisp/cedet/semantic/symref/idutils.el index 6098f0265ef..0fdcc0396dc 100644 --- a/lisp/cedet/semantic/symref/idutils.el +++ b/lisp/cedet/semantic/symref/idutils.el @@ -1,6 +1,6 @@ ;;; semantic/symref/idutils.el --- Symref implementation for idutils -;;; Copyright (C) 2009-2011 Free Software Foundation, Inc. +;;; Copyright (C) 2009-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <eric@siege-engine.com> diff --git a/lisp/cedet/semantic/symref/list.el b/lisp/cedet/semantic/symref/list.el index 53422541c47..9a3cb1f524a 100644 --- a/lisp/cedet/semantic/symref/list.el +++ b/lisp/cedet/semantic/symref/list.el @@ -1,6 +1,6 @@ ;;; semantic/symref/list.el --- Symref Output List UI. -;; Copyright (C) 2008-2011 Free Software Foundation, Inc. +;; Copyright (C) 2008-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <eric@siege-engine.com> diff --git a/lisp/cedet/semantic/tag-file.el b/lisp/cedet/semantic/tag-file.el index 86fa382a766..8a126c3a6f9 100644 --- a/lisp/cedet/semantic/tag-file.el +++ b/lisp/cedet/semantic/tag-file.el @@ -1,6 +1,6 @@ ;;; semantic/tag-file.el --- Routines that find files based on tags. -;; Copyright (C) 1999-2005, 2007-2011 Free Software Foundation, Inc. +;; Copyright (C) 1999-2005, 2007-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <zappo@gnu.org> ;; Keywords: syntax diff --git a/lisp/cedet/semantic/tag-ls.el b/lisp/cedet/semantic/tag-ls.el index 2f585cbdf45..e4c248934c3 100644 --- a/lisp/cedet/semantic/tag-ls.el +++ b/lisp/cedet/semantic/tag-ls.el @@ -1,6 +1,6 @@ ;;; semantic/tag-ls.el --- Language Specific override functions for tags -;; Copyright (C) 1999-2004, 2006-2011 Free Software Foundation, Inc. +;; Copyright (C) 1999-2004, 2006-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <zappo@gnu.org> diff --git a/lisp/cedet/semantic/tag-write.el b/lisp/cedet/semantic/tag-write.el index d54d007f221..757609fac3f 100644 --- a/lisp/cedet/semantic/tag-write.el +++ b/lisp/cedet/semantic/tag-write.el @@ -1,6 +1,6 @@ ;;; semantic/tag-write.el --- Write tags to a text stream -;; Copyright (C) 2008-2011 Free Software Foundation, Inc. +;; Copyright (C) 2008-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <eric@siege-engine.com> diff --git a/lisp/cedet/semantic/tag.el b/lisp/cedet/semantic/tag.el index f8538ef7901..29e83cd558b 100644 --- a/lisp/cedet/semantic/tag.el +++ b/lisp/cedet/semantic/tag.el @@ -1,6 +1,6 @@ ;;; semantic/tag.el --- tag creation and access -;; Copyright (C) 1999-2005, 2007-2011 Free Software Foundation, Inc. +;; Copyright (C) 1999-2005, 2007-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <zappo@gnu.org> diff --git a/lisp/cedet/semantic/texi.el b/lisp/cedet/semantic/texi.el index 78d5569c2a7..36c14ce7c2a 100644 --- a/lisp/cedet/semantic/texi.el +++ b/lisp/cedet/semantic/texi.el @@ -1,6 +1,6 @@ ;;; semantic/texi.el --- Semantic details for Texinfo files -;; Copyright (C) 2001-2005, 2007-2011 Free Software Foundation, Inc. +;; Copyright (C) 2001-2005, 2007-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <zappo@gnu.org> diff --git a/lisp/cedet/semantic/util-modes.el b/lisp/cedet/semantic/util-modes.el index a08f4a31b30..c9a0faefe6c 100644 --- a/lisp/cedet/semantic/util-modes.el +++ b/lisp/cedet/semantic/util-modes.el @@ -1,6 +1,6 @@ ;;; semantic/util-modes.el --- Semantic minor modes -;; Copyright (C) 2000-2005, 2007-2011 Free Software Foundation, Inc. +;; Copyright (C) 2000-2005, 2007-2012 Free Software Foundation, Inc. ;; Authors: Eric M. Ludlam <zappo@gnu.org> ;; David Ponce <david@dponce.com> @@ -109,7 +109,7 @@ Only minor modes that are locally enabled are shown in the mode line." (tail (or (memq elem minor-mode-alist) (setq minor-mode-alist (cons elem minor-mode-alist))))) - (setcdr tail (nconc locals (cdr tail))))))))) + (setcdr tail (nconc locals (cdr tail))))))))) (defun semantic-desktop-ignore-this-minor-mode (buffer) "Installed as a minor-mode initializer for Desktop mode. @@ -438,7 +438,7 @@ The state is indicated in the modeline with the following characters: `-' -> The cache is up to date. `!' -> The cache requires a full update. `~' -> The cache needs to be incrementally parsed. - `%' -> The cache is not currently parseable. + `%' -> The cache is not currently parsable. `@' -> Auto-parse in progress (not set here.) With prefix argument ARG, turn on if positive, otherwise off. The minor mode can be turned on only if semantic feature is available and @@ -524,7 +524,7 @@ This marker is one of the following: `-' -> The cache is up to date. `!' -> The cache requires a full update. `~' -> The cache needs to be incrementally parsed. - `%' -> The cache is not currently parseable. + `%' -> The cache is not currently parsable. `@' -> Auto-parse in progress (not set here.) Arguments IGNORE are ignored, and accepted so this can be used as a hook in many situations." diff --git a/lisp/cedet/semantic/util.el b/lisp/cedet/semantic/util.el index acf5f95a217..1cc4d898a34 100644 --- a/lisp/cedet/semantic/util.el +++ b/lisp/cedet/semantic/util.el @@ -1,6 +1,6 @@ ;;; semantic/util.el --- Utilities for use with semantic tag tables -;;; Copyright (C) 1999-2005, 2007-2011 Free Software Foundation, Inc. +;;; Copyright (C) 1999-2005, 2007-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <zappo@gnu.org> ;; Keywords: syntax diff --git a/lisp/cedet/semantic/wisent.el b/lisp/cedet/semantic/wisent.el index 04669b99660..f12ca3753b8 100644 --- a/lisp/cedet/semantic/wisent.el +++ b/lisp/cedet/semantic/wisent.el @@ -1,6 +1,6 @@ ;;; semantic/wisent.el --- Wisent - Semantic gateway -;; Copyright (C) 2001-2007, 2009-2011 Free Software Foundation, Inc. +;; Copyright (C) 2001-2007, 2009-2012 Free Software Foundation, Inc. ;; Author: David Ponce <david@dponce.com> ;; Maintainer: David Ponce <david@dponce.com> diff --git a/lisp/cedet/semantic/wisent/comp.el b/lisp/cedet/semantic/wisent/comp.el index 884342a1df2..b0daabd1063 100644 --- a/lisp/cedet/semantic/wisent/comp.el +++ b/lisp/cedet/semantic/wisent/comp.el @@ -1,6 +1,6 @@ ;;; semantic/wisent/comp.el --- GNU Bison for Emacs - Grammar compiler -;; Copyright (C) 1984, 1986, 1989, 1992, 1995, 2000-2007, 2009-2011 +;; Copyright (C) 1984, 1986, 1989, 1992, 1995, 2000-2007, 2009-2012 ;; Free Software Foundation, Inc. ;; Author: David Ponce <david@dponce.com> @@ -51,7 +51,7 @@ ;; name space. Elisp dynamic binding allows that ;-) ;; Here are simple macros to easily define and use set of variables -;; binded locally, without all these "reference to free variable" +;; bound locally, without all these "reference to free variable" ;; compiler warnings! (defmacro wisent-context-name (name) diff --git a/lisp/cedet/semantic/wisent/java-tags.el b/lisp/cedet/semantic/wisent/java-tags.el index f3d11d38512..6bdc2736b1b 100644 --- a/lisp/cedet/semantic/wisent/java-tags.el +++ b/lisp/cedet/semantic/wisent/java-tags.el @@ -1,6 +1,6 @@ ;;; semantic/wisent/java-tags.el --- Java LALR parser for Emacs -;; Copyright (C) 2001-2006, 2009-2011 Free Software Foundation, Inc. +;; Copyright (C) 2001-2006, 2009-2012 Free Software Foundation, Inc. ;; Author: David Ponce <david@dponce.com> ;; Maintainer: David Ponce <david@dponce.com> diff --git a/lisp/cedet/semantic/wisent/javascript.el b/lisp/cedet/semantic/wisent/javascript.el index 16b729f3925..33644414b30 100644 --- a/lisp/cedet/semantic/wisent/javascript.el +++ b/lisp/cedet/semantic/wisent/javascript.el @@ -1,6 +1,6 @@ ;;; semantic/wisent/javascript.el --- javascript parser support -;; Copyright (C) 2005, 2009-2011 Free Software Foundation, Inc. +;; Copyright (C) 2005, 2009-2012 Free Software Foundation, Inc. ;; Author: Eric Ludlam <zappo@gnu.org> ;; Keywords: syntax diff --git a/lisp/cedet/semantic/wisent/javat-wy.el b/lisp/cedet/semantic/wisent/javat-wy.el index 562b0da6caa..1f0a480d554 100644 --- a/lisp/cedet/semantic/wisent/javat-wy.el +++ b/lisp/cedet/semantic/wisent/javat-wy.el @@ -1,6 +1,6 @@ ;;; semantic/wisent/javat-wy.el --- Generated parser support file -;; Copyright (C) 2002, 2007, 2009-2011 Free Software Foundation, Inc. +;; Copyright (C) 2002, 2007, 2009-2012 Free Software Foundation, Inc. ;; This file is part of GNU Emacs. diff --git a/lisp/cedet/semantic/wisent/js-wy.el b/lisp/cedet/semantic/wisent/js-wy.el index c8dded08d1f..b8d3240aef1 100644 --- a/lisp/cedet/semantic/wisent/js-wy.el +++ b/lisp/cedet/semantic/wisent/js-wy.el @@ -1,6 +1,6 @@ ;;; semantic/wisent/js-wy.el --- Generated parser support file -;; Copyright (C) 2005, 2009-2011 Free Software Foundation, Inc. +;; Copyright (C) 2005, 2009-2012 Free Software Foundation, Inc. ;; Copyright (C) 1998-2011 Ecma International ;; This file is part of GNU Emacs. diff --git a/lisp/cedet/semantic/wisent/python-wy.el b/lisp/cedet/semantic/wisent/python-wy.el index 2445d7162a7..cb0f37c8f16 100644 --- a/lisp/cedet/semantic/wisent/python-wy.el +++ b/lisp/cedet/semantic/wisent/python-wy.el @@ -1,6 +1,6 @@ ;;; semantic/wisent/python-wy.el --- Generated parser support file -;; Copyright (C) 2002-2004, 2007, 2010-2011 Free Software Foundation, Inc. +;; Copyright (C) 2002-2004, 2007, 2010-2012 Free Software Foundation, Inc. ;; Copyright (C) 2001-2010 Python Software Foundation ;; This file is part of GNU Emacs. diff --git a/lisp/cedet/semantic/wisent/python.el b/lisp/cedet/semantic/wisent/python.el index c73033ce0ac..fef22b16995 100644 --- a/lisp/cedet/semantic/wisent/python.el +++ b/lisp/cedet/semantic/wisent/python.el @@ -1,6 +1,6 @@ ;;; wisent-python.el --- Semantic support for Python -;; Copyright (C) 2002, 2004, 2006-2011 Free Software Foundation, Inc. +;; Copyright (C) 2002, 2004, 2006-2012 Free Software Foundation, Inc. ;; Author: Richard Kim <emacs18@gmail.com> ;; Maintainer: Richard Kim <emacs18@gmail.com> diff --git a/lisp/cedet/semantic/wisent/wisent.el b/lisp/cedet/semantic/wisent/wisent.el index 8c17d4ccab4..452628f8f1e 100644 --- a/lisp/cedet/semantic/wisent/wisent.el +++ b/lisp/cedet/semantic/wisent/wisent.el @@ -1,6 +1,6 @@ ;;; semantic/wisent/wisent.el --- GNU Bison for Emacs - Runtime -;;; Copyright (C) 2002-2007, 2009-2011 Free Software Foundation, Inc. +;;; Copyright (C) 2002-2007, 2009-2012 Free Software Foundation, Inc. ;; Author: David Ponce <david@dponce.com> ;; Maintainer: David Ponce <david@dponce.com> diff --git a/lisp/cedet/srecode.el b/lisp/cedet/srecode.el index 5527273a3a5..f973ee9065e 100644 --- a/lisp/cedet/srecode.el +++ b/lisp/cedet/srecode.el @@ -1,6 +1,6 @@ ;;; srecode.el --- Semantic buffer evaluator. -;;; Copyright (C) 2005, 2007-2011 Free Software Foundation, Inc. +;;; Copyright (C) 2005, 2007-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <zappo@gnu.org> ;; Keywords: codegeneration diff --git a/lisp/cedet/srecode/args.el b/lisp/cedet/srecode/args.el index 73445fbf13d..0960912e827 100644 --- a/lisp/cedet/srecode/args.el +++ b/lisp/cedet/srecode/args.el @@ -1,6 +1,6 @@ ;;; srecode/args.el --- Provide some simple template arguments -;; Copyright (C) 2007-2011 Free Software Foundation, Inc. +;; Copyright (C) 2007-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <eric@siege-engine.com> diff --git a/lisp/cedet/srecode/compile.el b/lisp/cedet/srecode/compile.el index d3623d6022f..d5389a97f03 100644 --- a/lisp/cedet/srecode/compile.el +++ b/lisp/cedet/srecode/compile.el @@ -1,6 +1,6 @@ ;;; srecode/compile --- Compilation of srecode template files. -;; Copyright (C) 2005, 2007-2011 Free Software Foundation, Inc. +;; Copyright (C) 2005, 2007-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <zappo@gnu.org> ;; Keywords: codegeneration diff --git a/lisp/cedet/srecode/cpp.el b/lisp/cedet/srecode/cpp.el index a46e8369c6c..12bfd3af903 100644 --- a/lisp/cedet/srecode/cpp.el +++ b/lisp/cedet/srecode/cpp.el @@ -1,6 +1,6 @@ ;;; srecode/cpp.el --- C++ specific handlers for Semantic Recoder -;; Copyright (C) 2007, 2009-2011 Free Software Foundation, Inc. +;; Copyright (C) 2007, 2009-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <eric@siege-engine.com> ;; Jan Moringen <scymtym@users.sourceforge.net> diff --git a/lisp/cedet/srecode/ctxt.el b/lisp/cedet/srecode/ctxt.el index 11d84e96f41..b864316deb5 100644 --- a/lisp/cedet/srecode/ctxt.el +++ b/lisp/cedet/srecode/ctxt.el @@ -1,6 +1,6 @@ ;;; srecode/ctxt.el --- Derive a context from the source buffer. -;; Copyright (C) 2007-2011 Free Software Foundation, Inc. +;; Copyright (C) 2007-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <eric@siege-engine.com> diff --git a/lisp/cedet/srecode/dictionary.el b/lisp/cedet/srecode/dictionary.el index 1575ce7ae3b..5b65284660f 100644 --- a/lisp/cedet/srecode/dictionary.el +++ b/lisp/cedet/srecode/dictionary.el @@ -1,6 +1,6 @@ ;;; srecode/dictionary.el --- Dictionary code for the semantic recoder. -;; Copyright (C) 2007-2011 Free Software Foundation, Inc. +;; Copyright (C) 2007-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <eric@siege-engine.com> diff --git a/lisp/cedet/srecode/document.el b/lisp/cedet/srecode/document.el index e25905ead83..1431508fd6d 100644 --- a/lisp/cedet/srecode/document.el +++ b/lisp/cedet/srecode/document.el @@ -1,6 +1,6 @@ ;;; srecode/document.el --- Documentation (comment) generation -;; Copyright (C) 2008-2011 Free Software Foundation, Inc. +;; Copyright (C) 2008-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <eric@siege-engine.com> @@ -167,7 +167,7 @@ doesn't always work correctly." ("str\\(ing\\)?" . "string") ("use?r" . "user") ("num\\(ber\\)?" . "number") - ("\\(^\\|\\s-\\)id\\($\\|\\s-\\)" . "Identifier") ;complex cause ;common sylable + ("\\(^\\|\\s-\\)id\\($\\|\\s-\\)" . "Identifier") ;complex cause ;common syllable ) "List of common English abbreviations or full words. These are nouns (as opposed to verbs) for use in creating expanded diff --git a/lisp/cedet/srecode/el.el b/lisp/cedet/srecode/el.el index 03ea9773666..bd3f73e0729 100644 --- a/lisp/cedet/srecode/el.el +++ b/lisp/cedet/srecode/el.el @@ -1,6 +1,6 @@ ;;; srecode/el.el --- Emacs Lisp specific arguments -;; Copyright (C) 2008-2011 Free Software Foundation, Inc. +;; Copyright (C) 2008-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <eric@siege-engine.com> diff --git a/lisp/cedet/srecode/expandproto.el b/lisp/cedet/srecode/expandproto.el index 89dc9adcefc..1ddaa1acdea 100644 --- a/lisp/cedet/srecode/expandproto.el +++ b/lisp/cedet/srecode/expandproto.el @@ -1,6 +1,6 @@ ;;; srecode/expandproto.el --- Expanding prototypes. -;; Copyright (C) 2007, 2009-2011 Free Software Foundation, Inc. +;; Copyright (C) 2007, 2009-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <eric@siege-engine.com> diff --git a/lisp/cedet/srecode/extract.el b/lisp/cedet/srecode/extract.el index d87dc315829..be3d703339c 100644 --- a/lisp/cedet/srecode/extract.el +++ b/lisp/cedet/srecode/extract.el @@ -1,6 +1,6 @@ ;;; srecode/extract.el --- Extract content from previously inserted macro. -;; Copyright (C) 2008-2011 Free Software Foundation, Inc. +;; Copyright (C) 2008-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <eric@siege-engine.com> diff --git a/lisp/cedet/srecode/fields.el b/lisp/cedet/srecode/fields.el index f4d34a0f2ab..476dd37ae06 100644 --- a/lisp/cedet/srecode/fields.el +++ b/lisp/cedet/srecode/fields.el @@ -1,6 +1,6 @@ ;;; srecode/fields.el --- Handling type-in fields in a buffer. ;; -;; Copyright (C) 2009-2011 Free Software Foundation, Inc. +;; Copyright (C) 2009-2012 Free Software Foundation, Inc. ;; ;; Author: Eric M. Ludlam <eric@siege-engine.com> diff --git a/lisp/cedet/srecode/filters.el b/lisp/cedet/srecode/filters.el index cc942e53ffd..67435f23e90 100644 --- a/lisp/cedet/srecode/filters.el +++ b/lisp/cedet/srecode/filters.el @@ -1,6 +1,6 @@ ;;; srecode/filters.el --- Filters for use in template variables. -;; Copyright (C) 2007-2011 Free Software Foundation, Inc. +;; Copyright (C) 2007-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <eric@siege-engine.com> diff --git a/lisp/cedet/srecode/find.el b/lisp/cedet/srecode/find.el index b947c63f4dd..befdb4731c2 100644 --- a/lisp/cedet/srecode/find.el +++ b/lisp/cedet/srecode/find.el @@ -1,6 +1,6 @@ ;;;; srecode/find.el --- Tools for finding templates in the database. -;; Copyright (C) 2007-2011 Free Software Foundation, Inc. +;; Copyright (C) 2007-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <eric@siege-engine.com> diff --git a/lisp/cedet/srecode/getset.el b/lisp/cedet/srecode/getset.el index 9a6c27dcd73..5155044e386 100644 --- a/lisp/cedet/srecode/getset.el +++ b/lisp/cedet/srecode/getset.el @@ -1,6 +1,6 @@ ;;; srecode/getset.el --- Package for inserting new get/set methods. -;; Copyright (C) 2007-2011 Free Software Foundation, Inc. +;; Copyright (C) 2007-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <eric@siege-engine.com> diff --git a/lisp/cedet/srecode/insert.el b/lisp/cedet/srecode/insert.el index bbf8b881c4d..40d3374c744 100644 --- a/lisp/cedet/srecode/insert.el +++ b/lisp/cedet/srecode/insert.el @@ -1,6 +1,6 @@ ;;; srecode/insert.el --- Insert srecode templates to an output stream. -;; Copyright (C) 2005, 2007-2011 Free Software Foundation, Inc. +;; Copyright (C) 2005, 2007-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <zappo@gnu.org> diff --git a/lisp/cedet/srecode/java.el b/lisp/cedet/srecode/java.el index 4e76c15e300..58d8efc41e2 100644 --- a/lisp/cedet/srecode/java.el +++ b/lisp/cedet/srecode/java.el @@ -1,6 +1,6 @@ ;;; srecode/java.el --- Srecode Java support -;; Copyright (C) 2009-2011 Free Software Foundation, Inc. +;; Copyright (C) 2009-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <eric@siege-engine.com> diff --git a/lisp/cedet/srecode/map.el b/lisp/cedet/srecode/map.el index 126f41eb7f7..3f891092d7d 100644 --- a/lisp/cedet/srecode/map.el +++ b/lisp/cedet/srecode/map.el @@ -1,6 +1,6 @@ ;;; srecode/map.el --- Manage a template file map -;; Copyright (C) 2008-2011 Free Software Foundation, Inc. +;; Copyright (C) 2008-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <eric@siege-engine.com> diff --git a/lisp/cedet/srecode/mode.el b/lisp/cedet/srecode/mode.el index 23d09bc9a4b..e2c07a0863e 100644 --- a/lisp/cedet/srecode/mode.el +++ b/lisp/cedet/srecode/mode.el @@ -1,6 +1,6 @@ ;;; srecode/mode.el --- Minor mode for managing and using SRecode templates -;; Copyright (C) 2008-2011 Free Software Foundation, Inc. +;; Copyright (C) 2008-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <eric@siege-engine.com> diff --git a/lisp/cedet/srecode/semantic.el b/lisp/cedet/srecode/semantic.el index 956bdfbd97a..827979f786a 100644 --- a/lisp/cedet/srecode/semantic.el +++ b/lisp/cedet/srecode/semantic.el @@ -1,6 +1,6 @@ ;;; srecode/semantic.el --- Semantic specific extensions to SRecode. -;; Copyright (C) 2007-2011 Free Software Foundation, Inc. +;; Copyright (C) 2007-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <eric@siege-engine.com> diff --git a/lisp/cedet/srecode/srt-mode.el b/lisp/cedet/srecode/srt-mode.el index ed2b0e2cfdb..48eeab2408f 100644 --- a/lisp/cedet/srecode/srt-mode.el +++ b/lisp/cedet/srecode/srt-mode.el @@ -1,6 +1,6 @@ ;;; srecode/srt-mode.el --- Major mode for writing screcode macros -;; Copyright (C) 2005, 2007-2011 Free Software Foundation, Inc. +;; Copyright (C) 2005, 2007-2012 Free Software Foundation, Inc. ;; This file is part of GNU Emacs. diff --git a/lisp/cedet/srecode/srt-wy.el b/lisp/cedet/srecode/srt-wy.el index 5bd202093e9..8beeb04940d 100644 --- a/lisp/cedet/srecode/srt-wy.el +++ b/lisp/cedet/srecode/srt-wy.el @@ -1,6 +1,6 @@ ;;; srecode/srt-wy.el --- Generated parser support file -;; Copyright (C) 2005, 2007-2011 Free Software Foundation, Inc. +;; Copyright (C) 2005, 2007-2012 Free Software Foundation, Inc. ;; This file is part of GNU Emacs. diff --git a/lisp/cedet/srecode/srt.el b/lisp/cedet/srecode/srt.el index 4ea554f1def..b08f3687459 100644 --- a/lisp/cedet/srecode/srt.el +++ b/lisp/cedet/srecode/srt.el @@ -1,6 +1,6 @@ ;;; srecode/srt.el --- argument handlers for SRT files -;; Copyright (C) 2008-2011 Free Software Foundation, Inc. +;; Copyright (C) 2008-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <eric@siege-engine.com> diff --git a/lisp/cedet/srecode/table.el b/lisp/cedet/srecode/table.el index 52a7765c857..fb7ce6bad2f 100644 --- a/lisp/cedet/srecode/table.el +++ b/lisp/cedet/srecode/table.el @@ -1,6 +1,6 @@ ;;; srecode/table.el --- Tables of Semantic Recoders -;; Copyright (C) 2007-2011 Free Software Foundation, Inc. +;; Copyright (C) 2007-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <eric@siege-engine.com> diff --git a/lisp/cedet/srecode/template.el b/lisp/cedet/srecode/template.el index 5dd32a85786..75a5928ea33 100644 --- a/lisp/cedet/srecode/template.el +++ b/lisp/cedet/srecode/template.el @@ -1,6 +1,6 @@ ;;; srecode/template.el --- SRecoder template language parser support. -;; Copyright (C) 2005, 2007-2011 Free Software Foundation, Inc. +;; Copyright (C) 2005, 2007-2012 Free Software Foundation, Inc. ;; This file is part of GNU Emacs. diff --git a/lisp/cedet/srecode/texi.el b/lisp/cedet/srecode/texi.el index df90f6c464f..9f2c457ef79 100644 --- a/lisp/cedet/srecode/texi.el +++ b/lisp/cedet/srecode/texi.el @@ -1,6 +1,6 @@ ;;; srecode/texi.el --- Srecode texinfo support. -;; Copyright (C) 2008-2011 Free Software Foundation, Inc. +;; Copyright (C) 2008-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <eric@siege-engine.com> diff --git a/lisp/chistory.el b/lisp/chistory.el index 09f6e205cdd..efbd16e324e 100644 --- a/lisp/chistory.el +++ b/lisp/chistory.el @@ -1,6 +1,6 @@ ;;; chistory.el --- list command history -;; Copyright (C) 1985, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1985, 2001-2012 Free Software Foundation, Inc. ;; Author: K. Shane Hartman ;; Maintainer: FSF diff --git a/lisp/cmuscheme.el b/lisp/cmuscheme.el index 7c1351eefd4..0024b52a764 100644 --- a/lisp/cmuscheme.el +++ b/lisp/cmuscheme.el @@ -1,6 +1,6 @@ ;;; cmuscheme.el --- Scheme process in a buffer. Adapted from tea.el -;; Copyright (C) 1988, 1994, 1997, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1988, 1994, 1997, 2001-2012 Free Software Foundation, Inc. ;; Author: Olin Shivers <olin.shivers@cs.cmu.edu> ;; Maintainer: FSF diff --git a/lisp/color.el b/lisp/color.el index 96b79a4ace2..ff7f0eee4e6 100644 --- a/lisp/color.el +++ b/lisp/color.el @@ -1,6 +1,6 @@ ;;; color.el --- Color manipulation library -*- coding: utf-8; -*- -;; Copyright (C) 2010-2011 Free Software Foundation, Inc. +;; Copyright (C) 2010-2012 Free Software Foundation, Inc. ;; Authors: Julien Danjou <julien@danjou.info> ;; Drew Adams <drew.adams@oracle.com> diff --git a/lisp/comint.el b/lisp/comint.el index 77734b69af6..2d0ae6920f9 100644 --- a/lisp/comint.el +++ b/lisp/comint.el @@ -1,6 +1,6 @@ ;;; comint.el --- general command interpreter in a window stuff -*- lexical-binding: t -*- -;; Copyright (C) 1988, 1990, 1992-2011 Free Software Foundation, Inc. +;; Copyright (C) 1988, 1990, 1992-2012 Free Software Foundation, Inc. ;; Author: Olin Shivers <shivers@cs.cmu.edu> ;; Simon Marshall <simon@gnu.org> diff --git a/lisp/completion.el b/lisp/completion.el index ad7e781bb7a..485305b6e40 100644 --- a/lisp/completion.el +++ b/lisp/completion.el @@ -1,6 +1,6 @@ ;;; completion.el --- dynamic word-completion code -;; Copyright (C) 1990, 1993, 1995, 1997, 2001-2011 +;; Copyright (C) 1990, 1993, 1995, 1997, 2001-2012 ;; Free Software Foundation, Inc. ;; Maintainer: FSF diff --git a/lisp/cus-dep.el b/lisp/cus-dep.el index 091f832c092..23f3eac5d66 100644 --- a/lisp/cus-dep.el +++ b/lisp/cus-dep.el @@ -1,6 +1,6 @@ ;;; cus-dep.el --- find customization dependencies ;; -;; Copyright (C) 1997, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1997, 2001-2012 Free Software Foundation, Inc. ;; ;; Author: Per Abrahamsen <abraham@dina.kvl.dk> ;; Keywords: internal diff --git a/lisp/cus-edit.el b/lisp/cus-edit.el index 3d5ae69fe3d..419ab88056a 100644 --- a/lisp/cus-edit.el +++ b/lisp/cus-edit.el @@ -1,6 +1,6 @@ ;;; cus-edit.el --- tools for customizing Emacs and Lisp packages ;; -;; Copyright (C) 1996-1997, 1999-2011 Free Software Foundation, Inc. +;; Copyright (C) 1996-1997, 1999-2012 Free Software Foundation, Inc. ;; ;; Author: Per Abrahamsen <abraham@dina.kvl.dk> ;; Maintainer: FSF diff --git a/lisp/cus-face.el b/lisp/cus-face.el index c23632ab885..d725111b6fd 100644 --- a/lisp/cus-face.el +++ b/lisp/cus-face.el @@ -1,6 +1,6 @@ ;;; cus-face.el --- customization support for faces ;; -;; Copyright (C) 1996-1997, 1999-2011 Free Software Foundation, Inc. +;; Copyright (C) 1996-1997, 1999-2012 Free Software Foundation, Inc. ;; ;; Author: Per Abrahamsen <abraham@dina.kvl.dk> ;; Keywords: help, faces diff --git a/lisp/cus-start.el b/lisp/cus-start.el index 1d6b42f48e6..2cee72d717e 100644 --- a/lisp/cus-start.el +++ b/lisp/cus-start.el @@ -1,6 +1,6 @@ ;;; cus-start.el --- define customization properties of builtins ;; -;; Copyright (C) 1997, 1999-2011 Free Software Foundation, Inc. +;; Copyright (C) 1997, 1999-2012 Free Software Foundation, Inc. ;; ;; Author: Per Abrahamsen <abraham@dina.kvl.dk> ;; Keywords: internal diff --git a/lisp/cus-theme.el b/lisp/cus-theme.el index 1f33c3e8256..6bddb02add6 100644 --- a/lisp/cus-theme.el +++ b/lisp/cus-theme.el @@ -1,6 +1,6 @@ ;;; cus-theme.el -- custom theme creation user interface ;; -;; Copyright (C) 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 2001-2012 Free Software Foundation, Inc. ;; ;; Author: Alex Schroeder <alex@gnu.org> ;; Maintainer: FSF @@ -329,11 +329,16 @@ SPEC, if non-nil, should be a face spec to which to set the widget." (load-theme theme nil t)) (let ((settings (reverse (get theme 'theme-settings)))) (dolist (setting settings) - (funcall (if (eq (car setting) 'theme-value) - 'custom-theme-add-variable - 'custom-theme-add-face) - (nth 1 setting) - (nth 3 setting)))) + (let ((option (eq (car setting) 'theme-value)) + (name (nth 1 setting)) + (value (nth 3 setting))) + (unless (and option + (memq name '(custom-enabled-themes + custom-safe-themes))) + (funcall (if option + 'custom-theme-add-variable + 'custom-theme-add-face) + name value))))) theme) ;; From cus-edit.el diff --git a/lisp/custom.el b/lisp/custom.el index a1d53720b7d..2ccfe094933 100644 --- a/lisp/custom.el +++ b/lisp/custom.el @@ -1,6 +1,6 @@ ;;; custom.el --- tools for declaring and initializing options ;; -;; Copyright (C) 1996-1997, 1999, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1996-1997, 1999, 2001-2012 Free Software Foundation, Inc. ;; ;; Author: Per Abrahamsen <abraham@dina.kvl.dk> ;; Maintainer: FSF @@ -1105,12 +1105,14 @@ property `theme-feature' (which is usually a symbol created by (defcustom custom-safe-themes '(default) "Themes that are considered safe to load. -If the value is a list, each element should be either the `sha1' +If the value is a list, each element should be either the SHA-256 hash of a safe theme file, or the symbol `default', which stands for any theme in the built-in Emacs theme directory (a directory named \"themes\" in `data-directory'). -If the value is t, Emacs treats all themes as safe." +If the value is t, Emacs treats all themes as safe. + +This variable cannot be set in a Custom theme." :type '(choice (repeat :tag "List of safe themes" (choice string (const :tag "Built-in themes" default))) @@ -1159,7 +1161,7 @@ Return t if THEME was successfully loaded, nil otherwise." (error "Unable to find theme file for `%s'" theme)) (with-temp-buffer (insert-file-contents fn) - (setq hash (sha1 (current-buffer))) + (setq hash (secure-hash 'sha256 (current-buffer))) ;; Check file safety with `custom-safe-themes', prompting the ;; user if necessary. (when (or no-confirm @@ -1285,8 +1287,8 @@ precedence (after `user')." ((eq prop 'theme-face) (custom-theme-recalc-face symbol)) ((eq prop 'theme-value) - ;; Don't change `custom-enabled-themes'; that's special. - (unless (eq symbol 'custom-enabled-themes) + ;; Ignore `custom-enabled-themes' and `custom-safe-themes'. + (unless (memq symbol '(custom-enabled-themes custom-safe-themes)) (custom-theme-recalc-variable symbol))))))) (unless (eq theme 'user) (setq custom-enabled-themes diff --git a/lisp/dabbrev.el b/lisp/dabbrev.el index 540b93faad8..7b94b53e6c7 100644 --- a/lisp/dabbrev.el +++ b/lisp/dabbrev.el @@ -1,6 +1,6 @@ ;;; dabbrev.el --- dynamic abbreviation package -;; Copyright (C) 1985-1986, 1992, 1994, 1996-1997, 2000-2011 +;; Copyright (C) 1985-1986, 1992, 1994, 1996-1997, 2000-2012 ;; Free Software Foundation, Inc. ;; Author: Don Morrison diff --git a/lisp/delim-col.el b/lisp/delim-col.el index a0a8af80389..936b0bff019 100644 --- a/lisp/delim-col.el +++ b/lisp/delim-col.el @@ -1,6 +1,6 @@ ;;; delim-col.el --- prettify all columns in a region or rectangle -;; Copyright (C) 1999-2011 Free Software Foundation, Inc. +;; Copyright (C) 1999-2012 Free Software Foundation, Inc. ;; Author: Vinicius Jose Latorre <viniciusjl@ig.com.br> ;; Maintainer: Vinicius Jose Latorre <viniciusjl@ig.com.br> diff --git a/lisp/delsel.el b/lisp/delsel.el index fcd45f1a148..d6441123e04 100644 --- a/lisp/delsel.el +++ b/lisp/delsel.el @@ -1,6 +1,6 @@ ;;; delsel.el --- delete selection if you insert -;; Copyright (C) 1992, 1997-1998, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1992, 1997-1998, 2001-2012 Free Software Foundation, Inc. ;; Author: Matthieu Devin <devin@lucid.com> ;; Maintainer: FSF diff --git a/lisp/descr-text.el b/lisp/descr-text.el index 47f96e8d68f..0ab72d414e0 100644 --- a/lisp/descr-text.el +++ b/lisp/descr-text.el @@ -1,6 +1,6 @@ ;;; descr-text.el --- describe text mode -;; Copyright (C) 1994-1996, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1994-1996, 2001-2012 Free Software Foundation, Inc. ;; Author: Boris Goldowsky <boris@gnu.org> ;; Maintainer: FSF diff --git a/lisp/desktop.el b/lisp/desktop.el index 8a61bec0eea..2f79cc05e79 100644 --- a/lisp/desktop.el +++ b/lisp/desktop.el @@ -1,6 +1,6 @@ ;;; desktop.el --- save partial status of Emacs when killed -;; Copyright (C) 1993-1995, 1997, 2000-2011 Free Software Foundation, Inc. +;; Copyright (C) 1993-1995, 1997, 2000-2012 Free Software Foundation, Inc. ;; Author: Morten Welinder <terra@diku.dk> ;; Keywords: convenience @@ -702,9 +702,9 @@ is nil, ask the user where to save the desktop." ;; ---------------------------------------------------------------------------- (defun desktop-internal-v2s (value) "Convert VALUE to a pair (QUOTE . TXT); (eval (read TXT)) gives VALUE. -TXT is a string that when read and evaluated yields value. +TXT is a string that when read and evaluated yields VALUE. QUOTE may be `may' (value may be quoted), -`must' (values must be quoted), or nil (value may not be quoted)." +`must' (value must be quoted), or nil (value must not be quoted)." (cond ((or (numberp value) (null value) (eq t value) (keywordp value)) (cons 'may (prin1-to-string value))) diff --git a/lisp/dframe.el b/lisp/dframe.el index b4f44e1a308..d3356197a2b 100644 --- a/lisp/dframe.el +++ b/lisp/dframe.el @@ -1,6 +1,6 @@ ;;; dframe --- dedicate frame support modes -;; Copyright (C) 1996-2011 Free Software Foundation, Inc. +;; Copyright (C) 1996-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <zappo@gnu.org> ;; Keywords: file, tags, tools @@ -221,7 +221,7 @@ Local to those buffers, as a function called that created it.") (define-key map [mouse-2] 'dframe-click) ;; This is the power click for new frames, or refreshing a cache (define-key map [S-mouse-2] 'dframe-power-click) - ;; This adds a small unecessary visual effect + ;; This adds a small unnecessary visual effect ;;(define-key map [down-mouse-2] 'dframe-quick-mouse) (define-key map [down-mouse-3] 'dframe-popup-kludge) diff --git a/lisp/dired-aux.el b/lisp/dired-aux.el index 757e814dba1..31d8afc4fca 100644 --- a/lisp/dired-aux.el +++ b/lisp/dired-aux.el @@ -1,6 +1,6 @@ ;;; dired-aux.el --- less commonly used parts of dired -;; Copyright (C) 1985-1986, 1992, 1994, 1998, 2000-2011 +;; Copyright (C) 1985-1986, 1992, 1994, 1998, 2000-2012 ;; Free Software Foundation, Inc. ;; Author: Sebastian Kremer <sk@thp.uni-koeln.de>. diff --git a/lisp/dired-x.el b/lisp/dired-x.el index 0863cc1abac..f775fd952c0 100644 --- a/lisp/dired-x.el +++ b/lisp/dired-x.el @@ -1,6 +1,6 @@ ;;; dired-x.el --- extra Dired functionality -;; Copyright (C) 1993-1994, 1997, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1993-1994, 1997, 2001-2012 Free Software Foundation, Inc. ;; Author: Sebastian Kremer <sk@thp.uni-koeln.de> ;; Lawrence R. Dodd <dodd@roebling.poly.edu> diff --git a/lisp/dired.el b/lisp/dired.el index 3a82ebcf504..da105bc2a5f 100644 --- a/lisp/dired.el +++ b/lisp/dired.el @@ -1,6 +1,6 @@ ;;; dired.el --- directory-browsing commands -*- lexical-binding: t -*- -;; Copyright (C) 1985-1986, 1992-1997, 2000-2011 +;; Copyright (C) 1985-1986, 1992-1997, 2000-2012 ;; Free Software Foundation, Inc. ;; Author: Sebastian Kremer <sk@thp.uni-koeln.de> @@ -3667,7 +3667,7 @@ Ask means pop up a menu for the user to select one of copy, move or link." ;;;;;; dired-run-shell-command dired-do-shell-command dired-do-async-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" "2301de52aab0488c60d2b4841b6f597f") +;;;;;; dired-diff) "dired-aux" "dired-aux.el" "cdcae8f5f4ea69fa7b0231f640c13163") ;;; Generated autoloads from dired-aux.el (autoload 'dired-diff "dired-aux" "\ @@ -4128,7 +4128,7 @@ instead. ;;;*** ;;;### (autoloads (dired-do-relsymlink dired-jump-other-window dired-jump) -;;;;;; "dired-x" "dired-x.el" "a542cdbf155ff79f36331bae217f3b28") +;;;;;; "dired-x" "dired-x.el" "85900e333d980b376bf820108ae1a1fc") ;;; Generated autoloads from dired-x.el (autoload 'dired-jump "dired-x" "\ diff --git a/lisp/dirtrack.el b/lisp/dirtrack.el index eef8c111da5..07220f21ed8 100644 --- a/lisp/dirtrack.el +++ b/lisp/dirtrack.el @@ -1,6 +1,6 @@ ;;; dirtrack.el --- Directory Tracking by watching the prompt -;; Copyright (C) 1996, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1996, 2001-2012 Free Software Foundation, Inc. ;; Author: Peter Breton <pbreton@cs.umb.edu> ;; Created: Sun Nov 17 1996 @@ -122,13 +122,11 @@ (defcustom dirtrack-list (list "^emacs \\([a-zA-Z]:.*\\)>" 1) "List for directory tracking. First item is a regexp that describes where to find the path in a prompt. -Second is a number, the regexp group to match. Optional third item is -whether the prompt is multi-line. If nil or omitted, prompt is assumed to -be on a single line." +Second is a number, the regexp group to match." :group 'dirtrack :type '(sexp (regexp :tag "Prompt Expression") - (integer :tag "Regexp Group") - (boolean :tag "Multiline Prompt"))) + (integer :tag "Regexp Group")) + :version "24.1") (make-variable-buffer-local 'dirtrack-list) @@ -188,11 +186,13 @@ With a prefix argument ARG, enable Dirtrack mode if ARG is positive, and disable it otherwise. If called from Lisp, enable the mode if ARG is omitted or nil. -This method requires that your shell prompt contain the full -current working directory at all times, and that `dirtrack-list' -is set to match the prompt. This is an alternative to -`shell-dirtrack-mode', which works differently, by tracking `cd' -and similar commands which change the shell working directory." +This method requires that your shell prompt contain the current +working directory at all times, and that you set the variable +`dirtrack-list' to match the prompt. + +This is an alternative to `shell-dirtrack-mode', which works by +tracking `cd' and similar commands which change the shell working +directory." nil nil nil (if dirtrack-mode (add-hook 'comint-preoutput-filter-functions 'dirtrack nil t) @@ -213,63 +213,67 @@ and similar commands which change the shell working directory." (define-obsolete-variable-alias 'dirtrack-debug 'dirtrack-debug-mode "23.1") -(defun dirtrack-debug-message (string) - "Insert string at the end of `dirtrack-debug-buffer'." +(defun dirtrack-debug-message (msg1 msg2) + "Insert strings at the end of `dirtrack-debug-buffer'." (when dirtrack-debug-mode (with-current-buffer (get-buffer-create dirtrack-debug-buffer) (goto-char (point-max)) - (insert (concat string "\n"))))) + (insert msg1 msg2 "\n")))) ;;;###autoload (defun dirtrack (input) - "Determine the current directory by scanning the process output for a prompt. -The prompt to look for is the first item in `dirtrack-list'. - -You can toggle directory tracking by using the function `dirtrack-mode'. - -If directory tracking does not seem to be working, you can use the -function `dirtrack-debug-mode' to turn on debugging output." - (unless (or (null dirtrack-mode) - (eq (point) (point-min))) ; no output? - (let (prompt-path orig-prompt-path - (current-dir default-directory) - (dirtrack-regexp (nth 0 dirtrack-list)) - (match-num (nth 1 dirtrack-list))) - ;; Currently unimplemented, it seems. --Stef - ;; (multi-line (nth 2 dirtrack-list))) - (save-excursion - ;; No match - (if (not (string-match dirtrack-regexp input)) - (dirtrack-debug-message - (format "Input `%s' failed to match `dirtrack-list'" input)) - (setq prompt-path (match-string match-num input)) - ;; Empty string - (if (not (> (length prompt-path) 0)) - (dirtrack-debug-message "Match is empty string") - ;; Transform prompts into canonical forms - (setq orig-prompt-path (funcall dirtrack-directory-function - prompt-path) - prompt-path (shell-prefixed-directory-name orig-prompt-path) - current-dir (funcall dirtrack-canonicalize-function - current-dir)) - (dirtrack-debug-message - (format "Prompt is %s\nCurrent directory is %s" - prompt-path current-dir)) - ;; Compare them - (if (or (string= current-dir prompt-path) - (string= current-dir (abbreviate-file-name prompt-path))) - (dirtrack-debug-message (format "Not changing directory")) - ;; It's possible that Emacs will think the directory - ;; won't exist (eg, rlogin buffers) - (if (file-accessible-directory-p prompt-path) - ;; Change directory. shell-process-cd adds the prefix, so we - ;; need to give it the original (un-prefixed) path. - (and (shell-process-cd orig-prompt-path) - (run-hooks 'dirtrack-directory-change-hook) - (dirtrack-debug-message - (format "Changing directory to %s" prompt-path))) - (warn "Directory %s does not exist" prompt-path))) - ))))) + "Determine the current directory from the process output for a prompt. +This filter function is used by `dirtrack-mode'. It looks for +the prompt specified by `dirtrack-list', and calls +`shell-process-cd' if the directory seems to have changed away +from `default-directory'." + (when (and dirtrack-mode + (not (eq (point) (point-min)))) ; there must be output + (save-excursion ; What's this for? -- cyd + (if (not (string-match (nth 0 dirtrack-list) input)) + ;; No match + (dirtrack-debug-message + "Input failed to match `dirtrack-list': " input) + (let ((prompt-path (match-string (nth 1 dirtrack-list) input)) + temp) + (cond + ;; Don't do anything for empty string + ((string-equal prompt-path "") + (dirtrack-debug-message "Prompt match gives empty string: " input)) + ;; If the prompt contains an absolute file name, call + ;; `shell-process-cd' if the directory has changed. + ((file-name-absolute-p prompt-path) + ;; Transform prompts into canonical forms + (let ((orig-prompt-path (funcall dirtrack-directory-function + prompt-path)) + (current-dir (funcall dirtrack-canonicalize-function + default-directory))) + (setq prompt-path (shell-prefixed-directory-name orig-prompt-path)) + ;; Compare them + (if (or (string-equal current-dir prompt-path) + (string-equal (expand-file-name current-dir) + (expand-file-name prompt-path))) + (dirtrack-debug-message "Not changing directory: " current-dir) + ;; It's possible that Emacs thinks the directory + ;; doesn't exist (e.g. rlogin buffers) + (if (file-accessible-directory-p prompt-path) + ;; `shell-process-cd' adds the prefix, so we need + ;; to give it the original (un-prefixed) path. + (progn + (shell-process-cd orig-prompt-path) + (run-hooks 'dirtrack-directory-change-hook) + (dirtrack-debug-message "Changing directory to " + prompt-path)) + (dirtrack-debug-message "Not changing to non-existent directory: " + prompt-path))))) + ;; If the file name is non-absolute, try and see if it + ;; seems to be up or down from where we were. + ((string-match "\\`\\(.*\\)\\(?:/.*\\)?\n\\(.*/\\)\\1\\(?:/.*\\)?\\'" + (setq temp + (concat prompt-path "\n" default-directory))) + (shell-process-cd (concat (match-string 2 temp) + prompt-path)) + (run-hooks 'dirtrack-directory-change-hook))))))) input) (provide 'dirtrack) diff --git a/lisp/disp-table.el b/lisp/disp-table.el index 3befedac256..a900ab2f966 100644 --- a/lisp/disp-table.el +++ b/lisp/disp-table.el @@ -1,6 +1,6 @@ ;;; disp-table.el --- functions for dealing with char tables -;; Copyright (C) 1987, 1994-1995, 1999, 2001-2011 +;; Copyright (C) 1987, 1994-1995, 1999, 2001-2012 ;; Free Software Foundation, Inc. ;; Author: Erik Naggum <erik@naggum.no> diff --git a/lisp/dnd.el b/lisp/dnd.el index 2d0c6fc31cd..0c33feab1b7 100644 --- a/lisp/dnd.el +++ b/lisp/dnd.el @@ -1,6 +1,6 @@ ;;; dnd.el --- drag and drop support. -*- coding: utf-8 -*- -;; Copyright (C) 2005-2011 Free Software Foundation, Inc. +;; Copyright (C) 2005-2012 Free Software Foundation, Inc. ;; Author: Jan Djärv <jan.h.d@swipnet.se> ;; Maintainer: FSF diff --git a/lisp/doc-view.el b/lisp/doc-view.el index 7e4329234e3..f31487e62bd 100644 --- a/lisp/doc-view.el +++ b/lisp/doc-view.el @@ -1,7 +1,7 @@ ;;; doc-view.el --- View PDF/PostScript/DVI files in Emacs -*- lexical-binding: t -*- -;; Copyright (C) 2007-2011 Free Software Foundation, Inc. +;; Copyright (C) 2007-2012 Free Software Foundation, Inc. ;; ;; Author: Tassilo Horn <tassilo@member.fsf.org> ;; Maintainer: Tassilo Horn <tassilo@member.fsf.org> diff --git a/lisp/dos-fns.el b/lisp/dos-fns.el index 629360b1c18..074fd642d67 100644 --- a/lisp/dos-fns.el +++ b/lisp/dos-fns.el @@ -1,6 +1,6 @@ ;;; dos-fns.el --- MS-Dos specific functions -;; Copyright (C) 1991, 1993, 1995-1996, 2001-2011 +;; Copyright (C) 1991, 1993, 1995-1996, 2001-2012 ;; Free Software Foundation, Inc. ;; Maintainer: Morten Welinder <terra@diku.dk> diff --git a/lisp/dos-vars.el b/lisp/dos-vars.el index 7de2ecb75a6..eef871215f4 100644 --- a/lisp/dos-vars.el +++ b/lisp/dos-vars.el @@ -1,6 +1,6 @@ ;;; dos-vars.el --- MS-Dos specific user options -;; Copyright (C) 1998, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1998, 2001-2012 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: internal diff --git a/lisp/dos-w32.el b/lisp/dos-w32.el index 5dac6d22722..d84e3737c91 100644 --- a/lisp/dos-w32.el +++ b/lisp/dos-w32.el @@ -1,6 +1,6 @@ ;; dos-w32.el --- Functions shared among MS-DOS and W32 (NT/95) platforms -;; Copyright (C) 1996, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1996, 2001-2012 Free Software Foundation, Inc. ;; Maintainer: Geoff Voelker <voelker@cs.washington.edu> ;; Keywords: internal diff --git a/lisp/double.el b/lisp/double.el index 2a845f61942..59e6bb856a6 100644 --- a/lisp/double.el +++ b/lisp/double.el @@ -1,6 +1,6 @@ ;;; double.el --- support for keyboard remapping with double clicking -;; Copyright (C) 1994, 1997-1998, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1994, 1997-1998, 2001-2012 Free Software Foundation, Inc. ;; Author: Per Abrahamsen <abraham@dina.kvl.dk> ;; Keywords: i18n diff --git a/lisp/dynamic-setting.el b/lisp/dynamic-setting.el index 167da69d1ca..8343d389f80 100644 --- a/lisp/dynamic-setting.el +++ b/lisp/dynamic-setting.el @@ -1,6 +1,6 @@ ;;; dynamic-setting.el --- Support dynamic changes -;; Copyright (C) 2009-2011 Free Software Foundation, Inc. +;; Copyright (C) 2009-2012 Free Software Foundation, Inc. ;; Author: Jan Djärv <jan.h.d@swipnet.se> ;; Maintainer: FSF diff --git a/lisp/ebuff-menu.el b/lisp/ebuff-menu.el index 8ab974be574..dcde6449d22 100644 --- a/lisp/ebuff-menu.el +++ b/lisp/ebuff-menu.el @@ -1,6 +1,6 @@ ;;; ebuff-menu.el --- electric-buffer-list mode -;; Copyright (C) 1985-1986, 1994, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1985-1986, 1994, 2001-2012 Free Software Foundation, Inc. ;; Author: Richard Mlynarik <mly@ai.mit.edu> ;; Maintainer: FSF diff --git a/lisp/echistory.el b/lisp/echistory.el index d5ee3003d68..2c7ef677578 100644 --- a/lisp/echistory.el +++ b/lisp/echistory.el @@ -1,6 +1,6 @@ ;;; echistory.el --- Electric Command History Mode -;; Copyright (C) 1985, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1985, 2001-2012 Free Software Foundation, Inc. ;; Author: K. Shane Hartman ;; Maintainer: FSF diff --git a/lisp/edmacro.el b/lisp/edmacro.el index f6c39062d1c..32915e3ee6e 100644 --- a/lisp/edmacro.el +++ b/lisp/edmacro.el @@ -1,6 +1,6 @@ ;;; edmacro.el --- keyboard macro editor -;; Copyright (C) 1993-1994, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1993-1994, 2001-2012 Free Software Foundation, Inc. ;; Author: Dave Gillespie <daveg@synaptics.com> ;; Maintainer: Dave Gillespie <daveg@synaptics.com> diff --git a/lisp/ehelp.el b/lisp/ehelp.el index b2bcf1f85cb..abb897f73f6 100644 --- a/lisp/ehelp.el +++ b/lisp/ehelp.el @@ -1,6 +1,6 @@ ;;; ehelp.el --- bindings for electric-help mode -*- lexical-binding: t -*- -;; Copyright (C) 1986, 1995, 2000-2011 Free Software Foundation, Inc. +;; Copyright (C) 1986, 1995, 2000-2012 Free Software Foundation, Inc. ;; Author: Richard Mlynarik ;; (according to ack.texi and authors.el) diff --git a/lisp/electric.el b/lisp/electric.el index cec1b5d2000..1c4b34e151c 100644 --- a/lisp/electric.el +++ b/lisp/electric.el @@ -1,6 +1,6 @@ ;;; electric.el --- window maker and Command loop for `electric' modes -;; Copyright (C) 1985-1986, 1995, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1985-1986, 1995, 2001-2012 Free Software Foundation, Inc. ;; Author: K. Shane Hartman ;; Maintainer: FSF diff --git a/lisp/elide-head.el b/lisp/elide-head.el index 5d640f629e8..fdea1c2614d 100644 --- a/lisp/elide-head.el +++ b/lisp/elide-head.el @@ -1,6 +1,6 @@ ;;; elide-head.el --- hide headers in files -;; Copyright (C) 1999, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1999, 2001-2012 Free Software Foundation, Inc. ;; Author: Dave Love <fx@gnu.org> ;; Keywords: outlines tools diff --git a/lisp/emacs-lisp/advice.el b/lisp/emacs-lisp/advice.el index ae2900775ac..e0d8ffaba90 100644 --- a/lisp/emacs-lisp/advice.el +++ b/lisp/emacs-lisp/advice.el @@ -1,6 +1,6 @@ ;;; advice.el --- an overloading mechanism for Emacs Lisp functions -;; Copyright (C) 1993-1994, 2000-2011 Free Software Foundation, Inc. +;; Copyright (C) 1993-1994, 2000-2012 Free Software Foundation, Inc. ;; Author: Hans Chalupsky <hans@cs.buffalo.edu> ;; Maintainer: FSF diff --git a/lisp/emacs-lisp/assoc.el b/lisp/emacs-lisp/assoc.el index e650995d3fe..264374ed721 100644 --- a/lisp/emacs-lisp/assoc.el +++ b/lisp/emacs-lisp/assoc.el @@ -1,6 +1,6 @@ ;;; assoc.el --- insert/delete functions on association lists -;; Copyright (C) 1996, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1996, 2001-2012 Free Software Foundation, Inc. ;; Author: Barry A. Warsaw <bwarsaw@cen.com> ;; Keywords: extensions diff --git a/lisp/emacs-lisp/authors.el b/lisp/emacs-lisp/authors.el index 596b32f24c3..68cff86aa0d 100644 --- a/lisp/emacs-lisp/authors.el +++ b/lisp/emacs-lisp/authors.el @@ -1,6 +1,6 @@ ;;; authors.el --- utility for maintaining Emacs' AUTHORS file -*-coding: utf-8;-*- -;; Copyright (C) 2000-2011 Free Software Foundation, Inc. +;; Copyright (C) 2000-2012 Free Software Foundation, Inc. ;; Author: Gerd Moellmann <gerd@gnu.org> ;; Maintainer: Kim F. Storm <storm@cua.dk> @@ -452,7 +452,7 @@ Changes to files in this list are not listed.") ("William Sommerfeld" :wrote "emacsclient.c" "scribe.el") ;; No longer distributed: emacsserver.c. ("Leigh Stoller" :changed "emacsclient.c" "server.el") - ("Steve Strassman" :wrote "spook.el") + ("Steve Strassmann" :wrote "spook.el") ("Shinichirou Sugou" :changed "etags.c") ;; No longer distributed: emacsserver.c. ("Sun Microsystems, Inc" :changed "emacsclient.c" "server.el" diff --git a/lisp/emacs-lisp/autoload.el b/lisp/emacs-lisp/autoload.el index 19a4d44273d..5af666b9ded 100644 --- a/lisp/emacs-lisp/autoload.el +++ b/lisp/emacs-lisp/autoload.el @@ -1,6 +1,6 @@ ;; autoload.el --- maintain autoloads in loaddefs.el -;; Copyright (C) 1991-1997, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1991-1997, 2001-2012 Free Software Foundation, Inc. ;; Author: Roland McGrath <roland@gnu.org> ;; Keywords: maint diff --git a/lisp/emacs-lisp/avl-tree.el b/lisp/emacs-lisp/avl-tree.el index bc1efc118ef..cb5ea048999 100644 --- a/lisp/emacs-lisp/avl-tree.el +++ b/lisp/emacs-lisp/avl-tree.el @@ -1,6 +1,6 @@ ;;; avl-tree.el --- balanced binary trees, AVL-trees -;; Copyright (C) 1995, 2007-2011 Free Software Foundation, Inc. +;; Copyright (C) 1995, 2007-2012 Free Software Foundation, Inc. ;; Author: Per Cederqvist <ceder@lysator.liu.se> ;; Inge Wallin <inge@lysator.liu.se> @@ -31,7 +31,7 @@ ;; deleting, and retrieving data from an AVL tree containing n elements ;; is O(log n). It is somewhat more rigidly balanced than other ;; self-balancing binary trees (such as red-black trees and AA trees), -;; making insertion slighty slower, deletion somewhat slower, and +;; making insertion slightly slower, deletion somewhat slower, and ;; retrieval somewhat faster (the asymptotic scaling is of course the ;; same for all types). Thus it may be a good choice when the tree will ;; be relatively static, i.e. data will be retrieved more often than diff --git a/lisp/emacs-lisp/backquote.el b/lisp/emacs-lisp/backquote.el index 34e316b2e48..870127ceac8 100644 --- a/lisp/emacs-lisp/backquote.el +++ b/lisp/emacs-lisp/backquote.el @@ -1,6 +1,6 @@ ;;; backquote.el --- implement the ` Lisp construct -;; Copyright (C) 1990, 1992, 1994, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1990, 1992, 1994, 2001-2012 Free Software Foundation, Inc. ;; Author: Rick Sladkey <jrs@world.std.com> ;; Maintainer: FSF diff --git a/lisp/emacs-lisp/benchmark.el b/lisp/emacs-lisp/benchmark.el index aa84a075b76..646be3e1b71 100644 --- a/lisp/emacs-lisp/benchmark.el +++ b/lisp/emacs-lisp/benchmark.el @@ -1,6 +1,6 @@ ;;; benchmark.el --- support for benchmarking code -;; Copyright (C) 2003-2011 Free Software Foundation, Inc. +;; Copyright (C) 2003-2012 Free Software Foundation, Inc. ;; Author: Dave Love <fx@gnu.org> ;; Keywords: lisp, extensions diff --git a/lisp/emacs-lisp/bindat.el b/lisp/emacs-lisp/bindat.el index fd98b5f41a7..03d55f376af 100644 --- a/lisp/emacs-lisp/bindat.el +++ b/lisp/emacs-lisp/bindat.el @@ -1,6 +1,6 @@ ;;; bindat.el --- binary data structure packing and unpacking. -;; Copyright (C) 2002-2011 Free Software Foundation, Inc. +;; Copyright (C) 2002-2012 Free Software Foundation, Inc. ;; Author: Kim F. Storm <storm@cua.dk> ;; Assignment name: struct.el diff --git a/lisp/emacs-lisp/byte-opt.el b/lisp/emacs-lisp/byte-opt.el index c9027fb663d..0a845265a37 100644 --- a/lisp/emacs-lisp/byte-opt.el +++ b/lisp/emacs-lisp/byte-opt.el @@ -1,6 +1,6 @@ ;;; byte-opt.el --- the optimization passes of the emacs-lisp byte compiler -*- lexical-binding: t -*- -;; Copyright (C) 1991, 1994, 2000-2011 Free Software Foundation, Inc. +;; Copyright (C) 1991, 1994, 2000-2012 Free Software Foundation, Inc. ;; Author: Jamie Zawinski <jwz@lucid.com> ;; Hallvard Furuseth <hbf@ulrik.uio.no> diff --git a/lisp/emacs-lisp/byte-run.el b/lisp/emacs-lisp/byte-run.el index f79add14836..dc7166bc2ea 100644 --- a/lisp/emacs-lisp/byte-run.el +++ b/lisp/emacs-lisp/byte-run.el @@ -1,6 +1,6 @@ ;;; byte-run.el --- byte-compiler support for inlining -;; Copyright (C) 1992, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1992, 2001-2012 Free Software Foundation, Inc. ;; Author: Jamie Zawinski <jwz@lucid.com> ;; Hallvard Furuseth <hbf@ulrik.uio.no> diff --git a/lisp/emacs-lisp/bytecomp.el b/lisp/emacs-lisp/bytecomp.el index 9aa230cfe9b..80e380f07ea 100644 --- a/lisp/emacs-lisp/bytecomp.el +++ b/lisp/emacs-lisp/bytecomp.el @@ -1,6 +1,6 @@ ;;; bytecomp.el --- compilation of Lisp code into byte code -*- lexical-binding: t -*- -;; Copyright (C) 1985-1987, 1992, 1994, 1998, 2000-2011 +;; Copyright (C) 1985-1987, 1992, 1994, 1998, 2000-2012 ;; Free Software Foundation, Inc. ;; Author: Jamie Zawinski <jwz@lucid.com> @@ -1745,7 +1745,9 @@ The value is non-nil if there were no errors, nil if errors." (enable-local-eval nil)) ;; Arg of t means don't alter enable-local-variables. (normal-mode t) - (setq filename buffer-file-name)) + ;; There may be a file local variable setting (bug#10419). + (setq buffer-read-only nil + filename buffer-file-name)) ;; Set the default directory, in case an eval-when-compile uses it. (setq default-directory (file-name-directory filename))) ;; Check if the file's local variables explicitly specify not to @@ -1779,37 +1781,37 @@ The value is non-nil if there were no errors, nil if errors." (with-current-buffer output-buffer (goto-char (point-max)) (insert "\n") ; aaah, unix. - (if (file-writable-p target-file) - ;; We must disable any code conversion here. - (let* ((coding-system-for-write 'no-conversion) - ;; Write to a tempfile so that if another Emacs - ;; process is trying to load target-file (eg in a - ;; parallel bootstrap), it does not risk getting a - ;; half-finished file. (Bug#4196) - (tempfile (make-temp-name target-file)) - (kill-emacs-hook - (cons (lambda () (ignore-errors (delete-file tempfile))) - kill-emacs-hook))) - (if (memq system-type '(ms-dos 'windows-nt)) - (setq buffer-file-type t)) - (write-region (point-min) (point-max) tempfile nil 1) - ;; This has the intentional side effect that any - ;; hard-links to target-file continue to - ;; point to the old file (this makes it possible - ;; for installed files to share disk space with - ;; the build tree, without causing problems when - ;; emacs-lisp files in the build tree are - ;; recompiled). Previously this was accomplished by - ;; deleting target-file before writing it. - (rename-file tempfile target-file t) - (message "Wrote %s" target-file)) - ;; This is just to give a better error message than write-region - (signal 'file-error - (list "Opening output file" - (if (file-exists-p target-file) - "cannot overwrite file" - "directory not writable or nonexistent") - target-file))) + (if (file-writable-p target-file) + ;; We must disable any code conversion here. + (let* ((coding-system-for-write 'no-conversion) + ;; Write to a tempfile so that if another Emacs + ;; process is trying to load target-file (eg in a + ;; parallel bootstrap), it does not risk getting a + ;; half-finished file. (Bug#4196) + (tempfile (make-temp-name target-file)) + (kill-emacs-hook + (cons (lambda () (ignore-errors (delete-file tempfile))) + kill-emacs-hook))) + (if (memq system-type '(ms-dos 'windows-nt)) + (setq buffer-file-type t)) + (write-region (point-min) (point-max) tempfile nil 1) + ;; This has the intentional side effect that any + ;; hard-links to target-file continue to + ;; point to the old file (this makes it possible + ;; for installed files to share disk space with + ;; the build tree, without causing problems when + ;; emacs-lisp files in the build tree are + ;; recompiled). Previously this was accomplished by + ;; deleting target-file before writing it. + (rename-file tempfile target-file t) + (message "Wrote %s" target-file)) + ;; This is just to give a better error message than write-region + (signal 'file-error + (list "Opening output file" + (if (file-exists-p target-file) + "cannot overwrite file" + "directory not writable or nonexistent") + target-file))) (kill-buffer (current-buffer))) (if (and byte-compile-generate-call-tree (or (eq t byte-compile-generate-call-tree) @@ -2637,7 +2639,7 @@ If FORM is a lambda or a macro, byte-compile it as a function." (setq form (cdr form))) (setq form (car form))) (if (and (eq (car-safe form) 'list) - ;; The spec is evaled in callint.c in dynamic-scoping + ;; The spec is evalled in callint.c in dynamic-scoping ;; mode, so just leaving the form unchanged would mean ;; it won't be eval'd in the right mode. (not lexical-binding)) @@ -3725,7 +3727,7 @@ that suppresses all warnings during execution of BODY." (defun byte-compile-if (form) (byte-compile-form (car (cdr form))) ;; Check whether we have `(if (fboundp ...' or `(if (boundp ...' - ;; and avoid warnings about the relevent symbols in the consequent. + ;; and avoid warnings about the relevant symbols in the consequent. (let ((clause (nth 1 form)) (donetag (byte-compile-make-tag))) (if (null (nthcdr 3 form)) diff --git a/lisp/emacs-lisp/cconv.el b/lisp/emacs-lisp/cconv.el index daafd2226ec..b6b6a78a9bb 100644 --- a/lisp/emacs-lisp/cconv.el +++ b/lisp/emacs-lisp/cconv.el @@ -1,6 +1,6 @@ ;;; cconv.el --- Closure conversion for statically scoped Emacs lisp. -*- lexical-binding: t; coding: utf-8 -*- -;; Copyright (C) 2011 Free Software Foundation, Inc. +;; Copyright (C) 2011-2012 Free Software Foundation, Inc. ;; Author: Igor Kuzmin <kzuminig@iro.umontreal.ca> ;; Maintainer: FSF diff --git a/lisp/emacs-lisp/chart.el b/lisp/emacs-lisp/chart.el index e9f2ec54601..19766feac5a 100644 --- a/lisp/emacs-lisp/chart.el +++ b/lisp/emacs-lisp/chart.el @@ -1,6 +1,6 @@ ;;; chart.el --- Draw charts (bar charts, etc) -;; Copyright (C) 1996, 1998-1999, 2001, 2004-2005, 2007-2011 +;; Copyright (C) 1996, 1998-1999, 2001, 2004-2005, 2007-2012 ;; Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <zappo@gnu.org> diff --git a/lisp/emacs-lisp/check-declare.el b/lisp/emacs-lisp/check-declare.el index e15920ef009..3135b9b5827 100644 --- a/lisp/emacs-lisp/check-declare.el +++ b/lisp/emacs-lisp/check-declare.el @@ -1,6 +1,6 @@ ;;; check-declare.el --- Check declare-function statements -;; Copyright (C) 2007-2011 Free Software Foundation, Inc. +;; Copyright (C) 2007-2012 Free Software Foundation, Inc. ;; Author: Glenn Morris <rgm@gnu.org> ;; Keywords: lisp, tools, maint diff --git a/lisp/emacs-lisp/checkdoc.el b/lisp/emacs-lisp/checkdoc.el index 9b708d4bbd2..fb14382bfd2 100644 --- a/lisp/emacs-lisp/checkdoc.el +++ b/lisp/emacs-lisp/checkdoc.el @@ -1,6 +1,6 @@ ;;; checkdoc.el --- check documentation strings for style requirements -;; Copyright (C) 1997-1998, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1997-1998, 2001-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <zappo@gnu.org> ;; Version: 0.6.2 diff --git a/lisp/emacs-lisp/cl-extra.el b/lisp/emacs-lisp/cl-extra.el index 8ea58b2e07c..9ac5ce7d2f0 100644 --- a/lisp/emacs-lisp/cl-extra.el +++ b/lisp/emacs-lisp/cl-extra.el @@ -1,6 +1,6 @@ ;;; cl-extra.el --- Common Lisp features, part 2 -;; Copyright (C) 1993, 2000-2011 Free Software Foundation, Inc. +;; Copyright (C) 1993, 2000-2012 Free Software Foundation, Inc. ;; Author: Dave Gillespie <daveg@synaptics.com> ;; Keywords: extensions diff --git a/lisp/emacs-lisp/cl-indent.el b/lisp/emacs-lisp/cl-indent.el index 81af2030ebe..0a690af572c 100644 --- a/lisp/emacs-lisp/cl-indent.el +++ b/lisp/emacs-lisp/cl-indent.el @@ -1,6 +1,6 @@ ;;; cl-indent.el --- enhanced lisp-indent mode -;; Copyright (C) 1987, 2000-2011 Free Software Foundation, Inc. +;; Copyright (C) 1987, 2000-2012 Free Software Foundation, Inc. ;; Author: Richard Mlynarik <mly@eddie.mit.edu> ;; Created: July 1987 diff --git a/lisp/emacs-lisp/cl-loaddefs.el b/lisp/emacs-lisp/cl-loaddefs.el index 1cd953d9e18..5bb86628bb8 100644 --- a/lisp/emacs-lisp/cl-loaddefs.el +++ b/lisp/emacs-lisp/cl-loaddefs.el @@ -10,7 +10,7 @@ ;;;;;; ceiling* floor* isqrt lcm gcd cl-progv-before cl-set-frame-visible-p ;;;;;; cl-map-overlays cl-map-intervals cl-map-keymap-recursively ;;;;;; notevery notany every some mapcon mapcan mapl maplist map -;;;;;; cl-mapcar-many equalp coerce) "cl-extra" "cl-extra.el" "15a5e127e1c9c9c3d1f398963b66cde7") +;;;;;; cl-mapcar-many equalp coerce) "cl-extra" "cl-extra.el" "c172dda6770ce18b556561481bfefbb2") ;;; Generated autoloads from cl-extra.el (autoload 'coerce "cl-extra" "\ @@ -286,7 +286,7 @@ This also does some trivial optimizations to make the form prettier. ;;;;;; flet progv psetq do-all-symbols do-symbols dotimes dolist ;;;;;; do* do loop return-from return block etypecase typecase ecase ;;;;;; case load-time-value eval-when destructuring-bind function* -;;;;;; defmacro* defun* gentemp gensym) "cl-macs" "cl-macs.el" "cc8cbd8c86e2facbe61986e992e6c508") +;;;;;; defmacro* defun* gentemp gensym) "cl-macs" "cl-macs.el" "91b45885535a73dd8015973cb8c988e1") ;;; Generated autoloads from cl-macs.el (autoload 'gensym "cl-macs" "\ @@ -770,7 +770,7 @@ surrounded by (block NAME ...). ;;;;;; find nsubstitute-if-not nsubstitute-if nsubstitute substitute-if-not ;;;;;; substitute-if substitute delete-duplicates remove-duplicates ;;;;;; delete-if-not delete-if delete* remove-if-not remove-if remove* -;;;;;; replace fill reduce) "cl-seq" "cl-seq.el" "df375ddc313f0c1c262cacab5cffd3e4") +;;;;;; replace fill reduce) "cl-seq" "cl-seq.el" "99095e49c83af1c8bec0fdcf517b3f95") ;;; Generated autoloads from cl-seq.el (autoload 'reduce "cl-seq" "\ @@ -1048,7 +1048,7 @@ Keywords supported: :key \(fn PREDICATE LIST [KEYWORD VALUE]...)" nil nil) (autoload 'cl-adjoin "cl-seq" "\ -Not documented + \(fn CL-ITEM CL-LIST &rest CL-KEYS)" nil nil) diff --git a/lisp/emacs-lisp/cl-macs.el b/lisp/emacs-lisp/cl-macs.el index d9531cc5261..4fc71bbbc60 100644 --- a/lisp/emacs-lisp/cl-macs.el +++ b/lisp/emacs-lisp/cl-macs.el @@ -1,6 +1,6 @@ ;;; cl-macs.el --- Common Lisp macros -;; Copyright (C) 1993, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1993, 2001-2012 Free Software Foundation, Inc. ;; Author: Dave Gillespie <daveg@synaptics.com> ;; Version: 2.02 diff --git a/lisp/emacs-lisp/cl-seq.el b/lisp/emacs-lisp/cl-seq.el index 1c578556835..f1890fbccf6 100644 --- a/lisp/emacs-lisp/cl-seq.el +++ b/lisp/emacs-lisp/cl-seq.el @@ -1,6 +1,6 @@ ;;; cl-seq.el --- Common Lisp features, part 3 -;; Copyright (C) 1993, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1993, 2001-2012 Free Software Foundation, Inc. ;; Author: Dave Gillespie <daveg@synaptics.com> ;; Version: 2.02 diff --git a/lisp/emacs-lisp/cl-specs.el b/lisp/emacs-lisp/cl-specs.el index 3556b6c1ecf..dbadf06944f 100644 --- a/lisp/emacs-lisp/cl-specs.el +++ b/lisp/emacs-lisp/cl-specs.el @@ -1,6 +1,6 @@ ;;; cl-specs.el --- Edebug specs for cl.el -*- no-byte-compile: t -*- -;; Copyright (C) 1993, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1993, 2001-2012 Free Software Foundation, Inc. ;; Author: Daniel LaLiberte <liberte@holonexus.org> ;; Keywords: lisp, tools, maint ;; Package: emacs diff --git a/lisp/emacs-lisp/cl.el b/lisp/emacs-lisp/cl.el index 16eb31c1209..971024fcbba 100644 --- a/lisp/emacs-lisp/cl.el +++ b/lisp/emacs-lisp/cl.el @@ -1,6 +1,6 @@ ;;; cl.el --- Common Lisp extensions for Emacs -;; Copyright (C) 1993, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1993, 2001-2012 Free Software Foundation, Inc. ;; Author: Dave Gillespie <daveg@synaptics.com> ;; Version: 2.02 diff --git a/lisp/emacs-lisp/copyright.el b/lisp/emacs-lisp/copyright.el index 582785a0e90..a77998aa6d9 100644 --- a/lisp/emacs-lisp/copyright.el +++ b/lisp/emacs-lisp/copyright.el @@ -1,6 +1,6 @@ ;;; copyright.el --- update the copyright notice in current buffer -;; Copyright (C) 1991-1995, 1998, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1991-1995, 1998, 2001-2012 Free Software Foundation, Inc. ;; Author: Daniel Pfeiffer <occitan@esperanto.org> ;; Keywords: maint, tools diff --git a/lisp/emacs-lisp/crm.el b/lisp/emacs-lisp/crm.el index 3848ab7e6ea..87c9b280bea 100644 --- a/lisp/emacs-lisp/crm.el +++ b/lisp/emacs-lisp/crm.el @@ -1,6 +1,6 @@ ;;; crm.el --- read multiple strings with completion -;; Copyright (C) 1985-1986, 1993-2011 Free Software Foundation, Inc. +;; Copyright (C) 1985-1986, 1993-2012 Free Software Foundation, Inc. ;; Author: Sen Nagata <sen@eccosys.com> ;; Keywords: completion, minibuffer, multiple elements @@ -143,7 +143,7 @@ nil if none. The value of FLAG is used to specify the type of completion operation. A value of nil specifies `try-completion'. A value of t specifies -`all-completions'. A value of lambda specifes a test for an exact match. +`all-completions'. A value of lambda specifies a test for an exact match. For more information on STRING, PREDICATE, and FLAG, see the Elisp Reference sections on 'Programmed Completion' and 'Basic Completion diff --git a/lisp/emacs-lisp/cust-print.el b/lisp/emacs-lisp/cust-print.el index e7f9aae1c60..b456d59e8da 100644 --- a/lisp/emacs-lisp/cust-print.el +++ b/lisp/emacs-lisp/cust-print.el @@ -1,6 +1,6 @@ ;;; cust-print.el --- handles print-level and print-circle -;; Copyright (C) 1992, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1992, 2001-2012 Free Software Foundation, Inc. ;; Author: Daniel LaLiberte <liberte@holonexus.org> ;; Adapted-By: ESR diff --git a/lisp/emacs-lisp/debug.el b/lisp/emacs-lisp/debug.el index d05a518e590..b0813aebef6 100644 --- a/lisp/emacs-lisp/debug.el +++ b/lisp/emacs-lisp/debug.el @@ -1,6 +1,6 @@ ;;; debug.el --- debuggers and related commands for Emacs -;; Copyright (C) 1985-1986, 1994, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1985-1986, 1994, 2001-2012 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: lisp, tools, maint diff --git a/lisp/emacs-lisp/derived.el b/lisp/emacs-lisp/derived.el index 55ea102ed2a..119479b2c0a 100644 --- a/lisp/emacs-lisp/derived.el +++ b/lisp/emacs-lisp/derived.el @@ -1,7 +1,7 @@ ;;; derived.el --- allow inheritance of major modes ;; (formerly mode-clone.el) -;; Copyright (C) 1993-1994, 1999, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1993-1994, 1999, 2001-2012 Free Software Foundation, Inc. ;; Author: David Megginson (dmeggins@aix1.uottawa.ca) ;; Maintainer: FSF diff --git a/lisp/emacs-lisp/disass.el b/lisp/emacs-lisp/disass.el index 2a41e611dc0..506a737d36d 100644 --- a/lisp/emacs-lisp/disass.el +++ b/lisp/emacs-lisp/disass.el @@ -1,6 +1,6 @@ ;;; disass.el --- disassembler for compiled Emacs Lisp code -;; Copyright (C) 1986, 1991, 2002-2011 Free Software Foundation, Inc. +;; Copyright (C) 1986, 1991, 2002-2012 Free Software Foundation, Inc. ;; Author: Doug Cutting <doug@csli.stanford.edu> ;; Jamie Zawinski <jwz@lucid.com> diff --git a/lisp/emacs-lisp/easy-mmode.el b/lisp/emacs-lisp/easy-mmode.el index fae4d9adc38..b0bfde8b4b7 100644 --- a/lisp/emacs-lisp/easy-mmode.el +++ b/lisp/emacs-lisp/easy-mmode.el @@ -1,6 +1,6 @@ ;;; easy-mmode.el --- easy definition for major and minor modes -;; Copyright (C) 1997, 2000-2011 Free Software Foundation, Inc. +;; Copyright (C) 1997, 2000-2012 Free Software Foundation, Inc. ;; Author: Georges Brun-Cottan <Georges.Brun-Cottan@inria.fr> ;; Maintainer: Stefan Monnier <monnier@gnu.org> diff --git a/lisp/emacs-lisp/easymenu.el b/lisp/emacs-lisp/easymenu.el index 79573437146..2ced0e8a466 100644 --- a/lisp/emacs-lisp/easymenu.el +++ b/lisp/emacs-lisp/easymenu.el @@ -1,6 +1,6 @@ ;;; easymenu.el --- support the easymenu interface for defining a menu -;; Copyright (C) 1994, 1996, 1998-2011 Free Software Foundation, Inc. +;; Copyright (C) 1994, 1996, 1998-2012 Free Software Foundation, Inc. ;; Keywords: emulations ;; Author: Richard Stallman <rms@gnu.org> diff --git a/lisp/emacs-lisp/edebug.el b/lisp/emacs-lisp/edebug.el index d7cfcfb870a..c241ac710cf 100644 --- a/lisp/emacs-lisp/edebug.el +++ b/lisp/emacs-lisp/edebug.el @@ -1,6 +1,6 @@ ;;; edebug.el --- a source-level debugger for Emacs Lisp -;; Copyright (C) 1988-1995, 1997, 1999-2011 Free Software Foundation, Inc. +;; Copyright (C) 1988-1995, 1997, 1999-2012 Free Software Foundation, Inc. ;; Author: Daniel LaLiberte <liberte@holonexus.org> ;; Maintainer: FSF diff --git a/lisp/emacs-lisp/eieio-base.el b/lisp/emacs-lisp/eieio-base.el index 278dff0f085..b5600560cdd 100644 --- a/lisp/emacs-lisp/eieio-base.el +++ b/lisp/emacs-lisp/eieio-base.el @@ -1,6 +1,6 @@ ;;; eieio-base.el --- Base classes for EIEIO. -;;; Copyright (C) 2000-2002, 2004-2005, 2007-2011 +;;; Copyright (C) 2000-2002, 2004-2005, 2007-2012 ;;; Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <zappo@gnu.org> diff --git a/lisp/emacs-lisp/eieio-custom.el b/lisp/emacs-lisp/eieio-custom.el index e8d7bea50fa..b09f6b6a0e9 100644 --- a/lisp/emacs-lisp/eieio-custom.el +++ b/lisp/emacs-lisp/eieio-custom.el @@ -1,6 +1,6 @@ ;;; eieio-custom.el -- eieio object customization -;; Copyright (C) 1999-2001, 2005, 2007-2011 Free Software Foundation, Inc. +;; Copyright (C) 1999-2001, 2005, 2007-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <zappo@gnu.org> ;; Version: 0.2 diff --git a/lisp/emacs-lisp/eieio-datadebug.el b/lisp/emacs-lisp/eieio-datadebug.el index 60510e1816c..b7f0deb0ee2 100644 --- a/lisp/emacs-lisp/eieio-datadebug.el +++ b/lisp/emacs-lisp/eieio-datadebug.el @@ -1,6 +1,6 @@ ;;; eieio-datadebug.el --- EIEIO extensions to the data debugger. -;; Copyright (C) 2007-2011 Free Software Foundation, Inc. +;; Copyright (C) 2007-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <zappo@gnu.org> ;; Keywords: OO, lisp diff --git a/lisp/emacs-lisp/eieio-opt.el b/lisp/emacs-lisp/eieio-opt.el index 8869530dc23..10816aaa43c 100644 --- a/lisp/emacs-lisp/eieio-opt.el +++ b/lisp/emacs-lisp/eieio-opt.el @@ -1,6 +1,6 @@ ;;; eieio-opt.el -- eieio optional functions (debug, printing, speedbar) -;; Copyright (C) 1996, 1998-2003, 2005, 2008-2011 +;; Copyright (C) 1996, 1998-2003, 2005, 2008-2012 ;; Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <zappo@gnu.org> diff --git a/lisp/emacs-lisp/eieio-speedbar.el b/lisp/emacs-lisp/eieio-speedbar.el index 4ff3cc01978..f169e3f0cd2 100644 --- a/lisp/emacs-lisp/eieio-speedbar.el +++ b/lisp/emacs-lisp/eieio-speedbar.el @@ -1,6 +1,6 @@ ;;; eieio-speedbar.el -- Classes for managing speedbar displays. -;; Copyright (C) 1999-2002, 2005, 2007-2011 Free Software Foundation, Inc. +;; Copyright (C) 1999-2002, 2005, 2007-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <zappo@gnu.org> ;; Version: 0.2 diff --git a/lisp/emacs-lisp/eieio.el b/lisp/emacs-lisp/eieio.el index 170d3fb0bf8..cdf7237b766 100644 --- a/lisp/emacs-lisp/eieio.el +++ b/lisp/emacs-lisp/eieio.el @@ -1,7 +1,7 @@ ;;; eieio.el --- Enhanced Implementation of Emacs Interpreted Objects ;;; or maybe Eric's Implementation of Emacs Interpreted Objects -;; Copyright (C) 1995-1996, 1998-2011 Free Software Foundation, Inc. +;; Copyright (C) 1995-1996, 1998-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <zappo@gnu.org> ;; Version: 1.3 @@ -3038,7 +3038,7 @@ Optional argument NOESCAPE is passed to `prin1-to-string' when appropriate." ;;; Start of automatically extracted autoloads. ;;;### (autoloads (customize-object) "eieio-custom" "eieio-custom.el" -;;;;;; "cf1bd64c76a6e6406545e8c5a5530d43") +;;;;;; "9cf80224540c52045d515a4c2c833543") ;;; Generated autoloads from eieio-custom.el (autoload 'customize-object "eieio-custom" "\ @@ -3051,7 +3051,7 @@ Optional argument GROUP is the sub-group of slots to display. ;;;### (autoloads (eieio-help-mode-augmentation-maybee eieio-describe-generic ;;;;;; eieio-describe-constructor eieio-describe-class eieio-browse) -;;;;;; "eieio-opt" "eieio-opt.el" "4fb6625c3a007438aab4e8e77b6c73c2") +;;;;;; "eieio-opt" "eieio-opt.el" "e2814881441ad23759409687502f0ee1") ;;; Generated autoloads from eieio-opt.el (autoload 'eieio-browse "eieio-opt" "\ diff --git a/lisp/emacs-lisp/eldoc.el b/lisp/emacs-lisp/eldoc.el index 9822b556f34..6e5b8e92fb8 100644 --- a/lisp/emacs-lisp/eldoc.el +++ b/lisp/emacs-lisp/eldoc.el @@ -1,6 +1,6 @@ ;;; eldoc.el --- show function arglist or variable docstring in echo area -;; Copyright (C) 1996-2011 Free Software Foundation, Inc. +;; Copyright (C) 1996-2012 Free Software Foundation, Inc. ;; Author: Noah Friedman <friedman@splode.com> ;; Maintainer: friedman@splode.com diff --git a/lisp/emacs-lisp/elint.el b/lisp/emacs-lisp/elint.el index ce6f8348a6b..5b82cd477f9 100644 --- a/lisp/emacs-lisp/elint.el +++ b/lisp/emacs-lisp/elint.el @@ -1,6 +1,6 @@ ;;; elint.el --- Lint Emacs Lisp -;; Copyright (C) 1997, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1997, 2001-2012 Free Software Foundation, Inc. ;; Author: Peter Liljenberg <petli@lysator.liu.se> ;; Created: May 1997 diff --git a/lisp/emacs-lisp/elp.el b/lisp/emacs-lisp/elp.el index b89b6decfc9..08390327414 100644 --- a/lisp/emacs-lisp/elp.el +++ b/lisp/emacs-lisp/elp.el @@ -1,6 +1,6 @@ ;;; elp.el --- Emacs Lisp Profiler -;; Copyright (C) 1994-1995, 1997-1998, 2001-2011 +;; Copyright (C) 1994-1995, 1997-1998, 2001-2012 ;; Free Software Foundation, Inc. ;; Author: Barry A. Warsaw diff --git a/lisp/emacs-lisp/ert-x.el b/lisp/emacs-lisp/ert-x.el index 39d4a4e814a..b9e97854349 100644 --- a/lisp/emacs-lisp/ert-x.el +++ b/lisp/emacs-lisp/ert-x.el @@ -1,6 +1,6 @@ ;;; ert-x.el --- Staging area for experimental extensions to ERT -;; Copyright (C) 2008, 2010-2011 Free Software Foundation, Inc. +;; Copyright (C) 2008, 2010-2012 Free Software Foundation, Inc. ;; Author: Lennart Borgman (lennart O borgman A gmail O com) ;; Author: Christian Ohler <ohler@gnu.org> diff --git a/lisp/emacs-lisp/ert.el b/lisp/emacs-lisp/ert.el index 820519e92d8..be8eb77f170 100644 --- a/lisp/emacs-lisp/ert.el +++ b/lisp/emacs-lisp/ert.el @@ -1,6 +1,6 @@ ;;; ert.el --- Emacs Lisp Regression Testing -;; Copyright (C) 2007-2008, 2010-2011 Free Software Foundation, Inc. +;; Copyright (C) 2007-2008, 2010-2012 Free Software Foundation, Inc. ;; Author: Christian Ohler <ohler@gnu.org> ;; Keywords: lisp, tools diff --git a/lisp/emacs-lisp/ewoc.el b/lisp/emacs-lisp/ewoc.el index a71f3c7244c..eed25ecfb85 100644 --- a/lisp/emacs-lisp/ewoc.el +++ b/lisp/emacs-lisp/ewoc.el @@ -1,6 +1,6 @@ ;;; ewoc.el --- utility to maintain a view of a list of objects in a buffer -;; Copyright (C) 1991-2011 Free Software Foundation, Inc. +;; Copyright (C) 1991-2012 Free Software Foundation, Inc. ;; Author: Per Cederqvist <ceder@lysator.liu.se> ;; Inge Wallin <inge@lysator.liu.se> diff --git a/lisp/emacs-lisp/find-func.el b/lisp/emacs-lisp/find-func.el index 070faca8d91..d64281d0e81 100644 --- a/lisp/emacs-lisp/find-func.el +++ b/lisp/emacs-lisp/find-func.el @@ -1,6 +1,6 @@ ;;; find-func.el --- find the definition of the Emacs Lisp function near point -;; Copyright (C) 1997, 1999, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1997, 1999, 2001-2012 Free Software Foundation, Inc. ;; Author: Jens Petersen <petersen@kurims.kyoto-u.ac.jp> ;; Maintainer: petersen@kurims.kyoto-u.ac.jp diff --git a/lisp/emacs-lisp/find-gc.el b/lisp/emacs-lisp/find-gc.el index 1de38625243..39797fb5433 100644 --- a/lisp/emacs-lisp/find-gc.el +++ b/lisp/emacs-lisp/find-gc.el @@ -1,6 +1,6 @@ ;;; find-gc.el --- detect functions that call the garbage collector -;; Copyright (C) 1992, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1992, 2001-2012 Free Software Foundation, Inc. ;; Maintainer: FSF diff --git a/lisp/emacs-lisp/float-sup.el b/lisp/emacs-lisp/float-sup.el index 7e40fdad352..375704ab6df 100644 --- a/lisp/emacs-lisp/float-sup.el +++ b/lisp/emacs-lisp/float-sup.el @@ -1,6 +1,6 @@ ;;; float-sup.el --- define some constants useful for floating point numbers. -;; Copyright (C) 1985-1987, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1985-1987, 2001-2012 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: internal diff --git a/lisp/emacs-lisp/generic.el b/lisp/emacs-lisp/generic.el index 770fe01f91c..6667a101865 100644 --- a/lisp/emacs-lisp/generic.el +++ b/lisp/emacs-lisp/generic.el @@ -1,6 +1,6 @@ ;;; generic.el --- defining simple major modes with comment and font-lock ;; -;; Copyright (C) 1997, 1999, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1997, 1999, 2001-2012 Free Software Foundation, Inc. ;; ;; Author: Peter Breton <pbreton@cs.umb.edu> ;; Created: Fri Sep 27 1996 diff --git a/lisp/emacs-lisp/gulp.el b/lisp/emacs-lisp/gulp.el index eca5470fd69..859b7d32b9e 100644 --- a/lisp/emacs-lisp/gulp.el +++ b/lisp/emacs-lisp/gulp.el @@ -1,6 +1,6 @@ ;;; gulp.el --- ask for updates for Lisp packages -;; Copyright (C) 1996, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1996, 2001-2012 Free Software Foundation, Inc. ;; Author: Sam Shteingold <shteingd@math.ucla.edu> ;; Maintainer: FSF diff --git a/lisp/emacs-lisp/helper.el b/lisp/emacs-lisp/helper.el index 113f5849364..e10cbdb3b6e 100644 --- a/lisp/emacs-lisp/helper.el +++ b/lisp/emacs-lisp/helper.el @@ -1,6 +1,6 @@ ;;; helper.el --- utility help package supporting help in electric modes -;; Copyright (C) 1985, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1985, 2001-2012 Free Software Foundation, Inc. ;; Author: K. Shane Hartman ;; Maintainer: FSF diff --git a/lisp/emacs-lisp/lisp-mnt.el b/lisp/emacs-lisp/lisp-mnt.el index 4d0cacf4ee1..f9a1c5dbf83 100644 --- a/lisp/emacs-lisp/lisp-mnt.el +++ b/lisp/emacs-lisp/lisp-mnt.el @@ -1,6 +1,6 @@ ;;; lisp-mnt.el --- utility functions for Emacs Lisp maintainers -;; Copyright (C) 1992, 1994, 1997, 2000-2011 Free Software Foundation, Inc. +;; Copyright (C) 1992, 1994, 1997, 2000-2012 Free Software Foundation, Inc. ;; Author: Eric S. Raymond <esr@snark.thyrsus.com> ;; Maintainer: FSF diff --git a/lisp/emacs-lisp/lisp-mode.el b/lisp/emacs-lisp/lisp-mode.el index 44e87e171d1..3d581e26758 100644 --- a/lisp/emacs-lisp/lisp-mode.el +++ b/lisp/emacs-lisp/lisp-mode.el @@ -1,6 +1,6 @@ ;;; lisp-mode.el --- Lisp mode, and its idiosyncratic commands -;; Copyright (C) 1985-1986, 1999-2011 Free Software Foundation, Inc. +;; Copyright (C) 1985-1986, 1999-2012 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: lisp, languages diff --git a/lisp/emacs-lisp/lisp.el b/lisp/emacs-lisp/lisp.el index db6a03333d4..8c53ad58612 100644 --- a/lisp/emacs-lisp/lisp.el +++ b/lisp/emacs-lisp/lisp.el @@ -1,6 +1,6 @@ ;;; lisp.el --- Lisp editing commands for Emacs -;; Copyright (C) 1985-1986, 1994, 2000-2011 Free Software Foundation, Inc. +;; Copyright (C) 1985-1986, 1994, 2000-2012 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: lisp, languages diff --git a/lisp/emacs-lisp/macroexp.el b/lisp/emacs-lisp/macroexp.el index ccfdf2e0551..21c351159c2 100644 --- a/lisp/emacs-lisp/macroexp.el +++ b/lisp/emacs-lisp/macroexp.el @@ -1,6 +1,6 @@ ;;; macroexp.el --- Additional macro-expansion support -*- lexical-binding: t -*- ;; -;; Copyright (C) 2004-2011 Free Software Foundation, Inc. +;; Copyright (C) 2004-2012 Free Software Foundation, Inc. ;; ;; Author: Miles Bader <miles@gnu.org> ;; Keywords: lisp, compiler, macros diff --git a/lisp/emacs-lisp/map-ynp.el b/lisp/emacs-lisp/map-ynp.el index 6ef26fef89c..cc4e642daf8 100644 --- a/lisp/emacs-lisp/map-ynp.el +++ b/lisp/emacs-lisp/map-ynp.el @@ -1,6 +1,6 @@ ;;; map-ynp.el --- general-purpose boolean question-asker -;; Copyright (C) 1991-1995, 2000-2011 Free Software Foundation, Inc. +;; Copyright (C) 1991-1995, 2000-2012 Free Software Foundation, Inc. ;; Author: Roland McGrath <roland@gnu.org> ;; Maintainer: FSF diff --git a/lisp/emacs-lisp/package-x.el b/lisp/emacs-lisp/package-x.el index cd4b5ee231c..761d27a2e28 100644 --- a/lisp/emacs-lisp/package-x.el +++ b/lisp/emacs-lisp/package-x.el @@ -1,6 +1,6 @@ ;;; package-x.el --- Package extras -;; Copyright (C) 2007-2011 Free Software Foundation, Inc. +;; Copyright (C) 2007-2012 Free Software Foundation, Inc. ;; Author: Tom Tromey <tromey@redhat.com> ;; Created: 10 Mar 2007 diff --git a/lisp/emacs-lisp/package.el b/lisp/emacs-lisp/package.el index a1513039a98..881760216c3 100644 --- a/lisp/emacs-lisp/package.el +++ b/lisp/emacs-lisp/package.el @@ -1,6 +1,6 @@ ;;; package.el --- Simple package system for Emacs -;; Copyright (C) 2007-2011 Free Software Foundation, Inc. +;; Copyright (C) 2007-2012 Free Software Foundation, Inc. ;; Author: Tom Tromey <tromey@redhat.com> ;; Created: 10 Mar 2007 diff --git a/lisp/emacs-lisp/pcase.el b/lisp/emacs-lisp/pcase.el index e6c4ccbbc50..afbc5df85ce 100644 --- a/lisp/emacs-lisp/pcase.el +++ b/lisp/emacs-lisp/pcase.el @@ -1,6 +1,6 @@ ;;; pcase.el --- ML-style pattern-matching macro for Elisp -*- lexical-binding: t -*- -;; Copyright (C) 2010-2011 Free Software Foundation, Inc. +;; Copyright (C) 2010-2012 Free Software Foundation, Inc. ;; Author: Stefan Monnier <monnier@iro.umontreal.ca> ;; Keywords: @@ -363,12 +363,12 @@ MATCH is the pattern that needs to be matched, of the form: (dolist (branch rest) (let* ((match (car branch)) (code&vars (cdr branch)) - (splitted + (split (pcase--split-match sym splitter match))) - (unless (eq (car splitted) :pcase--fail) - (push (cons (car splitted) code&vars) then-rest)) - (unless (eq (cdr splitted) :pcase--fail) - (push (cons (cdr splitted) code&vars) else-rest)))) + (unless (eq (car split) :pcase--fail) + (push (cons (car split) code&vars) then-rest)) + (unless (eq (cdr split) :pcase--fail) + (push (cons (cdr split) code&vars) else-rest)))) (cons (nreverse then-rest) (nreverse else-rest)))) (defun pcase--split-consp (syma symd pat) @@ -685,7 +685,7 @@ Otherwise, it defers to REST which is a list of branches of the form (pcase--if `(,(if (stringp qpat) #'equal #'eq) ,sym ',qpat) (pcase--u1 matches code vars then-rest) (pcase--u else-rest)))) - (t (error "Unkown QPattern %s" qpat)))) + (t (error "Unknown QPattern %s" qpat)))) (provide 'pcase) diff --git a/lisp/emacs-lisp/pp.el b/lisp/emacs-lisp/pp.el index 2d1b8860a3c..c795d985b7e 100644 --- a/lisp/emacs-lisp/pp.el +++ b/lisp/emacs-lisp/pp.el @@ -1,6 +1,6 @@ ;;; pp.el --- pretty printer for Emacs Lisp -;; Copyright (C) 1989, 1993, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1989, 1993, 2001-2012 Free Software Foundation, Inc. ;; Author: Randal Schwartz <merlyn@stonehenge.com> ;; Keywords: lisp diff --git a/lisp/emacs-lisp/re-builder.el b/lisp/emacs-lisp/re-builder.el index ebbd6ff1fdf..c8733202f31 100644 --- a/lisp/emacs-lisp/re-builder.el +++ b/lisp/emacs-lisp/re-builder.el @@ -1,6 +1,6 @@ ;;; re-builder.el --- building Regexps with visual feedback -*- lexical-binding: t -*- -;; Copyright (C) 1999-2011 Free Software Foundation, Inc. +;; Copyright (C) 1999-2012 Free Software Foundation, Inc. ;; Author: Detlev Zundel <dzu@gnu.org> ;; Keywords: matching, lisp, tools diff --git a/lisp/emacs-lisp/regexp-opt.el b/lisp/emacs-lisp/regexp-opt.el index b538a7a2943..ac391fed2c2 100644 --- a/lisp/emacs-lisp/regexp-opt.el +++ b/lisp/emacs-lisp/regexp-opt.el @@ -1,6 +1,6 @@ ;;; regexp-opt.el --- generate efficient regexps to match strings -;; Copyright (C) 1994-2011 Free Software Foundation, Inc. +;; Copyright (C) 1994-2012 Free Software Foundation, Inc. ;; Author: Simon Marshall <simon@gnu.org> ;; Maintainer: FSF diff --git a/lisp/emacs-lisp/regi.el b/lisp/emacs-lisp/regi.el index 6905589e5be..a68c67246ff 100644 --- a/lisp/emacs-lisp/regi.el +++ b/lisp/emacs-lisp/regi.el @@ -1,6 +1,6 @@ ;;; regi.el --- REGular expression Interpreting engine -;; Copyright (C) 1993, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1993, 2001-2012 Free Software Foundation, Inc. ;; Author: 1993 Barry A. Warsaw, Century Computing, Inc. <bwarsaw@cen.com> ;; Maintainer: bwarsaw@cen.com diff --git a/lisp/emacs-lisp/ring.el b/lisp/emacs-lisp/ring.el index affaa9ce32e..4b07de523c3 100644 --- a/lisp/emacs-lisp/ring.el +++ b/lisp/emacs-lisp/ring.el @@ -1,6 +1,6 @@ ;;; ring.el --- handle rings of items -;; Copyright (C) 1992, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1992, 2001-2012 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: extensions diff --git a/lisp/emacs-lisp/rx.el b/lisp/emacs-lisp/rx.el index 2e388d20114..c246d0235f6 100644 --- a/lisp/emacs-lisp/rx.el +++ b/lisp/emacs-lisp/rx.el @@ -1,6 +1,6 @@ ;;; rx.el --- sexp notation for regular expressions -;; Copyright (C) 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 2001-2012 Free Software Foundation, Inc. ;; Author: Gerd Moellmann <gerd@gnu.org> ;; Maintainer: FSF diff --git a/lisp/emacs-lisp/shadow.el b/lisp/emacs-lisp/shadow.el index d5bba20b1cd..286c4937b5b 100644 --- a/lisp/emacs-lisp/shadow.el +++ b/lisp/emacs-lisp/shadow.el @@ -1,6 +1,6 @@ ;;; shadow.el --- locate Emacs Lisp file shadowings -;; Copyright (C) 1995, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1995, 2001-2012 Free Software Foundation, Inc. ;; Author: Terry Jones <terry@santafe.edu> ;; Keywords: lisp diff --git a/lisp/emacs-lisp/smie.el b/lisp/emacs-lisp/smie.el index afc8c7faa47..4596052766f 100644 --- a/lisp/emacs-lisp/smie.el +++ b/lisp/emacs-lisp/smie.el @@ -1,6 +1,6 @@ ;;; smie.el --- Simple Minded Indentation Engine -*- lexical-binding: t -*- -;; Copyright (C) 2010-2011 Free Software Foundation, Inc. +;; Copyright (C) 2010-2012 Free Software Foundation, Inc. ;; Author: Stefan Monnier <monnier@iro.umontreal.ca> ;; Keywords: languages, lisp, internal, parsing, indentation diff --git a/lisp/emacs-lisp/syntax.el b/lisp/emacs-lisp/syntax.el index 85fa4772eb6..611a766922a 100644 --- a/lisp/emacs-lisp/syntax.el +++ b/lisp/emacs-lisp/syntax.el @@ -1,6 +1,6 @@ ;;; syntax.el --- helper functions to find syntactic context -;; Copyright (C) 2000-2011 Free Software Foundation, Inc. +;; Copyright (C) 2000-2012 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: internal diff --git a/lisp/emacs-lisp/tabulated-list.el b/lisp/emacs-lisp/tabulated-list.el index 32ec2bbf7ee..486635f7091 100644 --- a/lisp/emacs-lisp/tabulated-list.el +++ b/lisp/emacs-lisp/tabulated-list.el @@ -1,6 +1,6 @@ ;;; tabulated-list.el --- generic major mode for tabulated lists. -;; Copyright (C) 2011 Free Software Foundation, Inc. +;; Copyright (C) 2011-2012 Free Software Foundation, Inc. ;; Author: Chong Yidong <cyd@stupidchicken.com> ;; Keywords: extensions, lisp diff --git a/lisp/emacs-lisp/tcover-ses.el b/lisp/emacs-lisp/tcover-ses.el index b91b96b83e5..79251bfd6e1 100644 --- a/lisp/emacs-lisp/tcover-ses.el +++ b/lisp/emacs-lisp/tcover-ses.el @@ -1,6 +1,6 @@ ;;;; testcover-ses.el -- Example use of `testcover' to test "SES" -;; Copyright (C) 2002-2011 Free Software Foundation, Inc. +;; Copyright (C) 2002-2012 Free Software Foundation, Inc. ;; Author: Jonathan Yavner <jyavner@engineer.com> ;; Maintainer: Jonathan Yavner <jyavner@engineer.com> diff --git a/lisp/emacs-lisp/tcover-unsafep.el b/lisp/emacs-lisp/tcover-unsafep.el index 7144138445c..2de6e6c5bc0 100644 --- a/lisp/emacs-lisp/tcover-unsafep.el +++ b/lisp/emacs-lisp/tcover-unsafep.el @@ -1,6 +1,6 @@ ;;;; testcover-unsafep.el -- Use testcover to test unsafep's code coverage -;; Copyright (C) 2002-2011 Free Software Foundation, Inc. +;; Copyright (C) 2002-2012 Free Software Foundation, Inc. ;; Author: Jonathan Yavner <jyavner@engineer.com> ;; Maintainer: Jonathan Yavner <jyavner@engineer.com> diff --git a/lisp/emacs-lisp/testcover.el b/lisp/emacs-lisp/testcover.el index a5a6f71d79e..3999529f7ac 100644 --- a/lisp/emacs-lisp/testcover.el +++ b/lisp/emacs-lisp/testcover.el @@ -1,6 +1,6 @@ ;;;; testcover.el -- Visual code-coverage tool -;; Copyright (C) 2002-2011 Free Software Foundation, Inc. +;; Copyright (C) 2002-2012 Free Software Foundation, Inc. ;; Author: Jonathan Yavner <jyavner@member.fsf.org> ;; Maintainer: Jonathan Yavner <jyavner@member.fsf.org> diff --git a/lisp/emacs-lisp/timer.el b/lisp/emacs-lisp/timer.el index 706c6fd0ba3..b6b7c266263 100644 --- a/lisp/emacs-lisp/timer.el +++ b/lisp/emacs-lisp/timer.el @@ -1,6 +1,6 @@ ;;; timer.el --- run a function with args at some time in future -;; Copyright (C) 1996, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1996, 2001-2012 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Package: emacs diff --git a/lisp/emacs-lisp/tq.el b/lisp/emacs-lisp/tq.el index 3d3b371ad5c..0d13a3caed0 100644 --- a/lisp/emacs-lisp/tq.el +++ b/lisp/emacs-lisp/tq.el @@ -1,6 +1,6 @@ ;;; tq.el --- utility to maintain a transaction queue -;; Copyright (C) 1985-1987, 1992, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1985-1987, 1992, 2001-2012 Free Software Foundation, Inc. ;; Author: Scott Draves <spot@cs.cmu.edu> ;; Maintainer: FSF diff --git a/lisp/emacs-lisp/trace.el b/lisp/emacs-lisp/trace.el index 22c1f0e7ea7..fd66c9364f2 100644 --- a/lisp/emacs-lisp/trace.el +++ b/lisp/emacs-lisp/trace.el @@ -1,6 +1,6 @@ ;;; trace.el --- tracing facility for Emacs Lisp functions -;; Copyright (C) 1993, 1998, 2000-2011 Free Software Foundation, Inc. +;; Copyright (C) 1993, 1998, 2000-2012 Free Software Foundation, Inc. ;; Author: Hans Chalupsky <hans@cs.buffalo.edu> ;; Maintainer: FSF diff --git a/lisp/emacs-lisp/unsafep.el b/lisp/emacs-lisp/unsafep.el index 0f08d77d4c3..11256c294d9 100644 --- a/lisp/emacs-lisp/unsafep.el +++ b/lisp/emacs-lisp/unsafep.el @@ -1,6 +1,6 @@ ;;;; unsafep.el -- Determine whether a Lisp form is safe to evaluate -;; Copyright (C) 2002-2011 Free Software Foundation, Inc. +;; Copyright (C) 2002-2012 Free Software Foundation, Inc. ;; Author: Jonathan Yavner <jyavner@member.fsf.org> ;; Maintainer: Jonathan Yavner <jyavner@member.fsf.org> diff --git a/lisp/emacs-lisp/warnings.el b/lisp/emacs-lisp/warnings.el index 7f3657bbbe6..ab35d8f3d8f 100644 --- a/lisp/emacs-lisp/warnings.el +++ b/lisp/emacs-lisp/warnings.el @@ -1,6 +1,6 @@ ;;; warnings.el --- log and display warnings -;; Copyright (C) 2002-2011 Free Software Foundation, Inc. +;; Copyright (C) 2002-2012 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: internal diff --git a/lisp/emacs-lock.el b/lisp/emacs-lock.el index f2c93473015..252b167c446 100644 --- a/lisp/emacs-lock.el +++ b/lisp/emacs-lock.el @@ -1,6 +1,6 @@ ;;; emacs-lock.el --- protect buffers against killing or exiting -*- lexical-binding: t -*- -;; Copyright (C) 2011 Free Software Foundation, Inc +;; Copyright (C) 2011-2012 Free Software Foundation, Inc ;; Author: Juanma Barranquero <lekktu@gmail.com> ;; Inspired by emacs-lock.el by Tom Wurgler <twurgler@goodyear.com> diff --git a/lisp/emulation/crisp.el b/lisp/emulation/crisp.el index 71e607140de..087a7e2898d 100644 --- a/lisp/emulation/crisp.el +++ b/lisp/emulation/crisp.el @@ -1,6 +1,6 @@ ;;; crisp.el --- CRiSP/Brief Emacs emulator -;; Copyright (C) 1997-1999, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1997-1999, 2001-2012 Free Software Foundation, Inc. ;; Author: Gary D. Foster <Gary.Foster@Corp.Sun.COM> ;; Keywords: emulations brief crisp diff --git a/lisp/emulation/cua-base.el b/lisp/emulation/cua-base.el index b17fa6b1471..a7cc40cea4b 100644 --- a/lisp/emulation/cua-base.el +++ b/lisp/emulation/cua-base.el @@ -1,6 +1,6 @@ ;;; cua-base.el --- emulate CUA key bindings -;; Copyright (C) 1997-2011 Free Software Foundation, Inc. +;; Copyright (C) 1997-2012 Free Software Foundation, Inc. ;; Author: Kim F. Storm <storm@cua.dk> ;; Keywords: keyboard emulations convenience cua @@ -84,7 +84,7 @@ ;; If you have just replaced a highlighted region with typed text, ;; you can repeat the replace with M-v. This will search forward -;; for a streach of text identical to the previous contents of the +;; for a stretch of text identical to the previous contents of the ;; region (i.e. the contents of register 0) and replace it with the ;; text you typed to replace the original region. Repeating M-v will ;; replace the next matching region and so on. diff --git a/lisp/emulation/cua-gmrk.el b/lisp/emulation/cua-gmrk.el index b6a3a977909..408d90618aa 100644 --- a/lisp/emulation/cua-gmrk.el +++ b/lisp/emulation/cua-gmrk.el @@ -1,6 +1,6 @@ ;;; cua-gmrk.el --- CUA unified global mark support -;; Copyright (C) 1997-2011 Free Software Foundation, Inc. +;; Copyright (C) 1997-2012 Free Software Foundation, Inc. ;; Author: Kim F. Storm <storm@cua.dk> ;; Keywords: keyboard emulations convenience cua mark diff --git a/lisp/emulation/cua-rect.el b/lisp/emulation/cua-rect.el index 00aec2d0bf9..95b77a697f1 100644 --- a/lisp/emulation/cua-rect.el +++ b/lisp/emulation/cua-rect.el @@ -1,6 +1,6 @@ ;;; cua-rect.el --- CUA unified rectangle support -;; Copyright (C) 1997-2011 Free Software Foundation, Inc. +;; Copyright (C) 1997-2012 Free Software Foundation, Inc. ;; Author: Kim F. Storm <storm@cua.dk> ;; Keywords: keyboard emulations convenience CUA diff --git a/lisp/emulation/edt-lk201.el b/lisp/emulation/edt-lk201.el index 6132b455faf..987e1aa72e9 100644 --- a/lisp/emulation/edt-lk201.el +++ b/lisp/emulation/edt-lk201.el @@ -1,6 +1,6 @@ ;;; edt-lk201.el --- enhanced EDT keypad mode emulation for LK-201 keyboards -;; Copyright (C) 1986, 1992-1993, 1995, 2001-2011 +;; Copyright (C) 1986, 1992-1993, 1995, 2001-2012 ;; Free Software Foundation, Inc. ;; Author: Kevin Gallagher <Kevin.Gallagher@boeing.com> diff --git a/lisp/emulation/edt-mapper.el b/lisp/emulation/edt-mapper.el index e58656d7941..7fc24773b9e 100644 --- a/lisp/emulation/edt-mapper.el +++ b/lisp/emulation/edt-mapper.el @@ -1,6 +1,6 @@ ;;; edt-mapper.el --- create an EDT LK-201 map file for X-Windows Emacs -;; Copyright (C) 1994-1995, 2000-2011 Free Software Foundation, Inc. +;; Copyright (C) 1994-1995, 2000-2012 Free Software Foundation, Inc. ;; Author: Kevin Gallagher <Kevin.Gallagher@boeing.com> ;; Maintainer: Kevin Gallagher <Kevin.Gallagher@boeing.com> diff --git a/lisp/emulation/edt-pc.el b/lisp/emulation/edt-pc.el index a51ecd34045..75dc81ea90d 100644 --- a/lisp/emulation/edt-pc.el +++ b/lisp/emulation/edt-pc.el @@ -1,6 +1,6 @@ ;;; edt-pc.el --- enhanced EDT keypad mode emulation for PC 101 keyboards -;; Copyright (C) 1986, 1994-1995, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1986, 1994-1995, 2001-2012 Free Software Foundation, Inc. ;; Author: Kevin Gallagher <Kevin.Gallagher@boeing.com> ;; Maintainer: Kevin Gallagher <Kevin.Gallagher@boeing.com> diff --git a/lisp/emulation/edt-vt100.el b/lisp/emulation/edt-vt100.el index 1dca1f19dfc..25bdfe55064 100644 --- a/lisp/emulation/edt-vt100.el +++ b/lisp/emulation/edt-vt100.el @@ -1,6 +1,6 @@ ;;; edt-vt100.el --- enhanced EDT keypad mode emulation for VT series terminals -;; Copyright (C) 1986, 1992-1993, 1995, 2002-2011 +;; Copyright (C) 1986, 1992-1993, 1995, 2002-2012 ;; Free Software Foundation, Inc. ;; Author: Kevin Gallagher <Kevin.Gallagher@boeing.com> diff --git a/lisp/emulation/edt.el b/lisp/emulation/edt.el index acdc3caa449..fbb2359ca1f 100644 --- a/lisp/emulation/edt.el +++ b/lisp/emulation/edt.el @@ -1,6 +1,6 @@ ;;; edt.el --- enhanced EDT keypad mode emulation for GNU Emacs -;; Copyright (C) 1986, 1992-1995, 2000-2011 Free Software Foundation, Inc. +;; Copyright (C) 1986, 1992-1995, 2000-2012 Free Software Foundation, Inc. ;; Author: Kevin Gallagher <Kevin.Gallagher@boeing.com> ;; Maintainer: Kevin Gallagher <Kevin.Gallagher@boeing.com> diff --git a/lisp/emulation/keypad.el b/lisp/emulation/keypad.el index 0156e54f90f..a49ba33f158 100644 --- a/lisp/emulation/keypad.el +++ b/lisp/emulation/keypad.el @@ -1,6 +1,6 @@ ;;; keypad.el --- simplified keypad bindings -;; Copyright (C) 2002-2011 Free Software Foundation, Inc. +;; Copyright (C) 2002-2012 Free Software Foundation, Inc. ;; Author: Kim F. Storm <storm@cua.dk> ;; Keywords: keyboard convenience diff --git a/lisp/emulation/tpu-edt.el b/lisp/emulation/tpu-edt.el index e2ad5d81d27..6df8801e6b4 100644 --- a/lisp/emulation/tpu-edt.el +++ b/lisp/emulation/tpu-edt.el @@ -1,6 +1,6 @@ ;;; tpu-edt.el --- Emacs emulating TPU emulating EDT -;; Copyright (C) 1993-1995, 2000-2011 Free Software Foundation, Inc. +;; Copyright (C) 1993-1995, 2000-2012 Free Software Foundation, Inc. ;; Author: Rob Riepel <riepel@networking.stanford.edu> ;; Maintainer: Rob Riepel <riepel@networking.stanford.edu> @@ -2437,7 +2437,7 @@ If FILE is nil, try to load a default file. The default file names are ;;;### (autoloads (tpu-set-cursor-bound tpu-set-cursor-free tpu-set-scroll-margins -;;;;;; tpu-cursor-free-mode) "tpu-extras" "tpu-extras.el" "0d2f0cd1c728d2eb9028a6e01b1a5df1") +;;;;;; tpu-cursor-free-mode) "tpu-extras" "tpu-extras.el" "512b5771d29a538e69567644413951a8") ;;; Generated autoloads from tpu-extras.el (autoload 'tpu-cursor-free-mode "tpu-extras" "\ diff --git a/lisp/emulation/tpu-extras.el b/lisp/emulation/tpu-extras.el index 235b16e92b1..53f617d8821 100644 --- a/lisp/emulation/tpu-extras.el +++ b/lisp/emulation/tpu-extras.el @@ -1,6 +1,6 @@ ;;; tpu-extras.el --- scroll margins and free cursor mode for TPU-edt -;; Copyright (C) 1993-1995, 2000-2011 Free Software Foundation, Inc. +;; Copyright (C) 1993-1995, 2000-2012 Free Software Foundation, Inc. ;; Author: Rob Riepel <riepel@networking.stanford.edu> ;; Maintainer: Rob Riepel <riepel@networking.stanford.edu> diff --git a/lisp/emulation/tpu-mapper.el b/lisp/emulation/tpu-mapper.el index 15417a137f8..ef4e9b305fc 100644 --- a/lisp/emulation/tpu-mapper.el +++ b/lisp/emulation/tpu-mapper.el @@ -1,6 +1,6 @@ ;;; tpu-mapper.el --- create a TPU-edt X-windows keymap file -;; Copyright (C) 1993-1995, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1993-1995, 2001-2012 Free Software Foundation, Inc. ;; Author: Rob Riepel <riepel@networking.stanford.edu> ;; Maintainer: Rob Riepel <riepel@networking.stanford.edu> diff --git a/lisp/emulation/vip.el b/lisp/emulation/vip.el index 1298e5424ac..29020a4bdf5 100644 --- a/lisp/emulation/vip.el +++ b/lisp/emulation/vip.el @@ -1,6 +1,6 @@ ;;; vip.el --- a VI Package for GNU Emacs -;; Copyright (C) 1986-1988, 1992-1993, 1998, 2001-2011 +;; Copyright (C) 1986-1988, 1992-1993, 1998, 2001-2012 ;; Free Software Foundation, Inc. ;; Author: Masahiko Sato <ms@sail.stanford.edu> diff --git a/lisp/emulation/viper-cmd.el b/lisp/emulation/viper-cmd.el index b6d487704f4..503fd2c66d5 100644 --- a/lisp/emulation/viper-cmd.el +++ b/lisp/emulation/viper-cmd.el @@ -1,6 +1,6 @@ ;;; viper-cmd.el --- Vi command support for Viper -;; Copyright (C) 1997-2011 Free Software Foundation, Inc. +;; Copyright (C) 1997-2012 Free Software Foundation, Inc. ;; Author: Michael Kifer <kifer@cs.stonybrook.edu> ;; Package: viper @@ -4397,7 +4397,7 @@ cursor move past the beginning of line." (defun viper-query-replace () "Query replace. -If a null string is suplied as the string to be replaced, +If a null string is supplied as the string to be replaced, the query replace mode will toggle between string replace and regexp replace." (interactive) diff --git a/lisp/emulation/viper-ex.el b/lisp/emulation/viper-ex.el index 3e21e77a77b..3d538f1bd0d 100644 --- a/lisp/emulation/viper-ex.el +++ b/lisp/emulation/viper-ex.el @@ -1,6 +1,6 @@ ;;; viper-ex.el --- functions implementing the Ex commands for Viper -;; Copyright (C) 1994-1998, 2000-2011 Free Software Foundation, Inc. +;; Copyright (C) 1994-1998, 2000-2012 Free Software Foundation, Inc. ;; Author: Michael Kifer <kifer@cs.stonybrook.edu> ;; Package: viper diff --git a/lisp/emulation/viper-init.el b/lisp/emulation/viper-init.el index 2fc8dc599cb..f8ab5a1f805 100644 --- a/lisp/emulation/viper-init.el +++ b/lisp/emulation/viper-init.el @@ -1,6 +1,6 @@ ;;; viper-init.el --- some common definitions for Viper -;; Copyright (C) 1997-2011 Free Software Foundation, Inc. +;; Copyright (C) 1997-2012 Free Software Foundation, Inc. ;; Author: Michael Kifer <kifer@cs.stonybrook.edu> ;; Package: viper diff --git a/lisp/emulation/viper-keym.el b/lisp/emulation/viper-keym.el index f3bd6bece6e..65638dfff3c 100644 --- a/lisp/emulation/viper-keym.el +++ b/lisp/emulation/viper-keym.el @@ -1,6 +1,6 @@ ;;; viper-keym.el --- Viper keymaps -;; Copyright (C) 1994-1997, 2000-2011 Free Software Foundation, Inc. +;; Copyright (C) 1994-1997, 2000-2012 Free Software Foundation, Inc. ;; Author: Michael Kifer <kifer@cs.stonybrook.edu> ;; Package: viper diff --git a/lisp/emulation/viper-macs.el b/lisp/emulation/viper-macs.el index 2704bdc5b40..0b96793deb7 100644 --- a/lisp/emulation/viper-macs.el +++ b/lisp/emulation/viper-macs.el @@ -1,6 +1,6 @@ ;;; viper-macs.el --- functions implementing keyboard macros for Viper -;; Copyright (C) 1994-1997, 2000-2011 Free Software Foundation, Inc. +;; Copyright (C) 1994-1997, 2000-2012 Free Software Foundation, Inc. ;; Author: Michael Kifer <kifer@cs.stonybrook.edu> ;; Package: viper diff --git a/lisp/emulation/viper-mous.el b/lisp/emulation/viper-mous.el index a99ffdea558..58d8fb45b92 100644 --- a/lisp/emulation/viper-mous.el +++ b/lisp/emulation/viper-mous.el @@ -1,6 +1,6 @@ ;;; viper-mous.el --- mouse support for Viper -;; Copyright (C) 1994-1997, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1994-1997, 2001-2012 Free Software Foundation, Inc. ;; Author: Michael Kifer <kifer@cs.stonybrook.edu> ;; Package: viper diff --git a/lisp/emulation/viper-util.el b/lisp/emulation/viper-util.el index fcab8b57c1e..7cba5441c23 100644 --- a/lisp/emulation/viper-util.el +++ b/lisp/emulation/viper-util.el @@ -1,6 +1,6 @@ ;;; viper-util.el --- Utilities used by viper.el -;; Copyright (C) 1994-1997, 1999-2011 Free Software Foundation, Inc. +;; Copyright (C) 1994-1997, 1999-2012 Free Software Foundation, Inc. ;; Author: Michael Kifer <kifer@cs.stonybrook.edu> ;; Package: viper diff --git a/lisp/emulation/viper.el b/lisp/emulation/viper.el index 3704725b8dd..d304a247bb8 100644 --- a/lisp/emulation/viper.el +++ b/lisp/emulation/viper.el @@ -3,7 +3,7 @@ ;; and a venomous VI PERil. ;; Viper Is also a Package for Emacs Rebels. -;; Copyright (C) 1994-2011 Free Software Foundation, Inc. +;; Copyright (C) 1994-2012 Free Software Foundation, Inc. ;; Author: Michael Kifer <kifer@cs.stonybrook.edu> ;; Keywords: emulations diff --git a/lisp/emulation/ws-mode.el b/lisp/emulation/ws-mode.el index 886b4d6d4c4..aa8d647ec11 100644 --- a/lisp/emulation/ws-mode.el +++ b/lisp/emulation/ws-mode.el @@ -1,6 +1,6 @@ ;;; ws-mode.el --- WordStar emulation mode for GNU Emacs -;; Copyright (C) 1991, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1991, 2001-2012 Free Software Foundation, Inc. ;; Author: Juergen Nickelsen <nickel@cs.tu-berlin.de> ;; Version: 0.7 diff --git a/lisp/env.el b/lisp/env.el index 5e915eb3126..53922b5e262 100644 --- a/lisp/env.el +++ b/lisp/env.el @@ -1,6 +1,6 @@ ;;; env.el --- functions to manipulate environment variables -;; Copyright (C) 1991, 1994, 2000-2011 Free Software Foundation, Inc. +;; Copyright (C) 1991, 1994, 2000-2012 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: processes, unix diff --git a/lisp/epa-dired.el b/lisp/epa-dired.el index d51045a5e37..a79b471f06b 100644 --- a/lisp/epa-dired.el +++ b/lisp/epa-dired.el @@ -1,5 +1,5 @@ ;;; epa-dired.el --- the EasyPG Assistant, dired extension -*- lexical-binding: t -*- -;; Copyright (C) 2006-2011 Free Software Foundation, Inc. +;; Copyright (C) 2006-2012 Free Software Foundation, Inc. ;; Author: Daiki Ueno <ueno@unixuser.org> ;; Keywords: PGP, GnuPG diff --git a/lisp/epa-file.el b/lisp/epa-file.el index 4d05563719d..eccdc073970 100644 --- a/lisp/epa-file.el +++ b/lisp/epa-file.el @@ -1,5 +1,5 @@ ;;; epa-file.el --- the EasyPG Assistant, transparent file encryption -*- lexical-binding: t -*- -;; Copyright (C) 2006-2011 Free Software Foundation, Inc. +;; Copyright (C) 2006-2012 Free Software Foundation, Inc. ;; Author: Daiki Ueno <ueno@unixuser.org> ;; Keywords: PGP, GnuPG diff --git a/lisp/epa-hook.el b/lisp/epa-hook.el index ea036e836e4..ea19d2a6699 100644 --- a/lisp/epa-hook.el +++ b/lisp/epa-hook.el @@ -1,5 +1,5 @@ ;;; epa-hook.el --- preloaded code to enable epa-file.el -*- lexical-binding: t -*- -;; Copyright (C) 2006-2011 Free Software Foundation, Inc. +;; Copyright (C) 2006-2012 Free Software Foundation, Inc. ;; Author: Daiki Ueno <ueno@unixuser.org> ;; Keywords: PGP, GnuPG diff --git a/lisp/epa-mail.el b/lisp/epa-mail.el index 9d7542b3980..b63890e4e87 100644 --- a/lisp/epa-mail.el +++ b/lisp/epa-mail.el @@ -1,5 +1,5 @@ ;;; epa-mail.el --- the EasyPG Assistant, minor-mode for mail composer -*- lexical-binding: t -*- -;; Copyright (C) 2006-2011 Free Software Foundation, Inc. +;; Copyright (C) 2006-2012 Free Software Foundation, Inc. ;; Author: Daiki Ueno <ueno@unixuser.org> ;; Keywords: PGP, GnuPG, mail, message diff --git a/lisp/epa.el b/lisp/epa.el index 229138bd455..4ce9aeeee7c 100644 --- a/lisp/epa.el +++ b/lisp/epa.el @@ -1,6 +1,6 @@ ;;; epa.el --- the EasyPG Assistant -*- lexical-binding: t -*- -;; Copyright (C) 2006-2011 Free Software Foundation, Inc. +;; Copyright (C) 2006-2012 Free Software Foundation, Inc. ;; Author: Daiki Ueno <ueno@unixuser.org> ;; Keywords: PGP, GnuPG diff --git a/lisp/epg-config.el b/lisp/epg-config.el index 38f7dbdaa73..fd2468f9a4b 100644 --- a/lisp/epg-config.el +++ b/lisp/epg-config.el @@ -1,6 +1,6 @@ ;;; epg-config.el --- configuration of the EasyPG Library -;; Copyright (C) 2006-2011 Free Software Foundation, Inc. +;; Copyright (C) 2006-2012 Free Software Foundation, Inc. ;; Author: Daiki Ueno <ueno@unixuser.org> ;; Keywords: PGP, GnuPG diff --git a/lisp/epg.el b/lisp/epg.el index 133e76da96c..3505e183c1f 100644 --- a/lisp/epg.el +++ b/lisp/epg.el @@ -1,5 +1,5 @@ ;;; epg.el --- the EasyPG Library -*- lexical-binding: t -*- -;; Copyright (C) 1999-2000, 2002-2011 Free Software Foundation, Inc. +;; Copyright (C) 1999-2000, 2002-2012 Free Software Foundation, Inc. ;; Author: Daiki Ueno <ueno@unixuser.org> ;; Keywords: PGP, GnuPG diff --git a/lisp/erc/ChangeLog b/lisp/erc/ChangeLog index 1b67835cb07..d9b1cdf856e 100644 --- a/lisp/erc/ChangeLog +++ b/lisp/erc/ChangeLog @@ -1,3 +1,13 @@ +2012-01-06 Glenn Morris <rgm@gnu.org> + + * erc.el (erc-tls): Add autoload cookie. (Bug#10333) + +2011-12-31 Antoine Levitt <antoine.levitt@gmail.com> + + * erc-goodies.el (erc-scroll-to-bottom): Use post-command-hook + rather than window-scroll-functions. Fixes a bug with word-wrap on + a tty. (Bug#9246) + 2011-11-28 Mike Kazantsev <mk.fraggod@gmail.com> (tiny change) * erc-dcc.el (erc-dcc-ctcp-query-send-regexp): Updated regexp to @@ -236,7 +246,7 @@ See ChangeLog.08 for earlier changes. - Copyright (C) 2009-2011 Free Software Foundation, Inc. + Copyright (C) 2009-2012 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/lisp/erc/ChangeLog.01 b/lisp/erc/ChangeLog.01 index 2b29acf5a25..da7d0ae52d0 100644 --- a/lisp/erc/ChangeLog.01 +++ b/lisp/erc/ChangeLog.01 @@ -1034,7 +1034,7 @@ * erc-speak.el, erc.el: New file. - Copyright (C) 2001, 2006-2011 Free Software Foundation, Inc. + Copyright (C) 2001, 2006-2012 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/lisp/erc/ChangeLog.02 b/lisp/erc/ChangeLog.02 index d20b6ca35a7..de76c113320 100644 --- a/lisp/erc/ChangeLog.02 +++ b/lisp/erc/ChangeLog.02 @@ -51,7 +51,7 @@ 2002-12-29 Damien Elmes <erc@repose.cx> * erc-track.el: - * (erc-track-get-active-buffer): remove superflous (+ arg 0) + * (erc-track-get-active-buffer): remove superfluous (+ arg 0) 2002-12-29 Alex Schroeder <alex@gnu.org> @@ -2596,7 +2596,7 @@ See ChangeLog.01 for earlier changes. - Copyright (C) 2002, 2006-2011 Free Software Foundation, Inc. + Copyright (C) 2002, 2006-2012 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/lisp/erc/ChangeLog.03 b/lisp/erc/ChangeLog.03 index 3e687202d38..87f30c8965a 100644 --- a/lisp/erc/ChangeLog.03 +++ b/lisp/erc/ChangeLog.03 @@ -2141,7 +2141,7 @@ See ChangeLog.02 for earlier changes. - Copyright (C) 2003, 2006-2011 Free Software Foundation, Inc. + Copyright (C) 2003, 2006-2012 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/lisp/erc/ChangeLog.04 b/lisp/erc/ChangeLog.04 index ff47372b8e3..922fb0c90dd 100644 --- a/lisp/erc/ChangeLog.04 +++ b/lisp/erc/ChangeLog.04 @@ -1926,7 +1926,7 @@ * erc.el: erc-send-whitespace-lines: New variable. (erc-send-current-line): Use erc-send-whitespace-lines. Also, - removed superflous test for empty line in the mapc, since the + removed superfluous test for empty line in the mapc, since the blank line test should find all. I do like to be able to send an empty line when i want to! (erc-send-current-line): Check for point being in input line @@ -2072,7 +2072,7 @@ See ChangeLog.03 for earlier changes. - Copyright (C) 2004, 2006-2011 Free Software Foundation, Inc. + Copyright (C) 2004, 2006-2012 Free Software Foundation, Inc. This file is part of GNU Emacs. @@ -2092,4 +2092,3 @@ See ChangeLog.03 for earlier changes. ;; Local Variables: ;; coding: utf-8 ;; End: - diff --git a/lisp/erc/ChangeLog.05 b/lisp/erc/ChangeLog.05 index fd5fde00a4a..584d9829ee7 100644 --- a/lisp/erc/ChangeLog.05 +++ b/lisp/erc/ChangeLog.05 @@ -1217,7 +1217,7 @@ See ChangeLog.04 for earlier changes. - Copyright (C) 2005-2011 Free Software Foundation, Inc. + Copyright (C) 2005-2012 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/lisp/erc/ChangeLog.06 b/lisp/erc/ChangeLog.06 index e3026c96a4d..5465a624bb0 100644 --- a/lisp/erc/ChangeLog.06 +++ b/lisp/erc/ChangeLog.06 @@ -1430,7 +1430,7 @@ See ChangeLog.05 for earlier changes. - Copyright (C) 2006-2011 Free Software Foundation, Inc. + Copyright (C) 2006-2012 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/lisp/erc/ChangeLog.07 b/lisp/erc/ChangeLog.07 index b32155bbce4..09886ad4a72 100644 --- a/lisp/erc/ChangeLog.07 +++ b/lisp/erc/ChangeLog.07 @@ -812,7 +812,7 @@ See ChangeLog.06 for earlier changes. - Copyright (C) 2007-2011 Free Software Foundation, Inc. + Copyright (C) 2007-2012 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/lisp/erc/ChangeLog.08 b/lisp/erc/ChangeLog.08 index feff487fa6e..d0a30163aa3 100644 --- a/lisp/erc/ChangeLog.08 +++ b/lisp/erc/ChangeLog.08 @@ -405,7 +405,7 @@ See ChangeLog.07 for earlier changes. - Copyright (C) 2008-2011 Free Software Foundation, Inc. + Copyright (C) 2008-2012 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/lisp/erc/erc-autoaway.el b/lisp/erc/erc-autoaway.el index 74172b2573f..699c4e20552 100644 --- a/lisp/erc/erc-autoaway.el +++ b/lisp/erc/erc-autoaway.el @@ -1,6 +1,6 @@ ;;; erc-autoaway.el --- Provides autoaway for ERC -;; Copyright (C) 2002-2004, 2006-2011 Free Software Foundation, Inc. +;; Copyright (C) 2002-2004, 2006-2012 Free Software Foundation, Inc. ;; Author: Jorgen Schaefer <forcer@forcix.cx> ;; URL: http://www.emacswiki.org/cgi-bin/wiki.pl?ErcAutoAway diff --git a/lisp/erc/erc-backend.el b/lisp/erc/erc-backend.el index 5baa676ab39..2c76b04e3ef 100644 --- a/lisp/erc/erc-backend.el +++ b/lisp/erc/erc-backend.el @@ -1,6 +1,6 @@ ;;; erc-backend.el --- Backend network communication for ERC -;; Copyright (C) 2004-2011 Free Software Foundation, Inc. +;; Copyright (C) 2004-2012 Free Software Foundation, Inc. ;; Filename: erc-backend.el ;; Author: Lawrence Mitchell <wence@gmx.li> @@ -991,7 +991,7 @@ Hands off to helper functions via `erc-call-hooks'." (if (member (erc-response.command parsed-response) erc-server-prevent-duplicates) (let ((m (erc-response.unparsed parsed-response))) - ;; duplicate supression + ;; duplicate suppression (if (< (or (gethash m erc-server-duplicates) 0) (- (erc-current-time) erc-server-duplicate-timeout)) (erc-call-hooks process parsed-response)) diff --git a/lisp/erc/erc-button.el b/lisp/erc/erc-button.el index 7fbbbc317d0..17b8c457f38 100644 --- a/lisp/erc/erc-button.el +++ b/lisp/erc/erc-button.el @@ -1,6 +1,6 @@ ;; erc-button.el --- A way of buttonizing certain things in ERC buffers -;; Copyright (C) 1996-2004, 2006-2011 Free Software Foundation, Inc. +;; Copyright (C) 1996-2004, 2006-2012 Free Software Foundation, Inc. ;; Author: Mario Lang <mlang@delysid.org> ;; Keywords: irc, button, url, regexp diff --git a/lisp/erc/erc-capab.el b/lisp/erc/erc-capab.el index 6b76c4246ad..4f6361ee923 100644 --- a/lisp/erc/erc-capab.el +++ b/lisp/erc/erc-capab.el @@ -1,6 +1,6 @@ ;;; erc-capab.el --- support for dancer-ircd and hyperion's CAPAB -;; Copyright (C) 2006-2011 Free Software Foundation, Inc. +;; Copyright (C) 2006-2012 Free Software Foundation, Inc. ;; 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 diff --git a/lisp/erc/erc-compat.el b/lisp/erc/erc-compat.el index 792c8dd88b3..4057d1eabc2 100644 --- a/lisp/erc/erc-compat.el +++ b/lisp/erc/erc-compat.el @@ -1,6 +1,6 @@ ;;; erc-compat.el --- ERC compatibility code for XEmacs -;; Copyright (C) 2002-2003, 2005-2011 Free Software Foundation, Inc. +;; Copyright (C) 2002-2003, 2005-2012 Free Software Foundation, Inc. ;; Author: Alex Schroeder <alex@gnu.org> ;; URL: http://www.emacswiki.org/cgi-bin/wiki/ERC diff --git a/lisp/erc/erc-dcc.el b/lisp/erc/erc-dcc.el index fce22aadcc4..f68b3591fbb 100644 --- a/lisp/erc/erc-dcc.el +++ b/lisp/erc/erc-dcc.el @@ -1,6 +1,6 @@ ;;; erc-dcc.el --- CTCP DCC module for ERC -;; Copyright (C) 1993-1995, 1998, 2002-2004, 2006-2011 +;; Copyright (C) 1993-1995, 1998, 2002-2004, 2006-2012 ;; Free Software Foundation, Inc. ;; Author: Ben A. Mesander <ben@gnu.ai.mit.edu> diff --git a/lisp/erc/erc-ezbounce.el b/lisp/erc/erc-ezbounce.el index b480d83e283..f40eaa8c549 100644 --- a/lisp/erc/erc-ezbounce.el +++ b/lisp/erc/erc-ezbounce.el @@ -1,6 +1,6 @@ ;;; erc-ezbounce.el --- Handle EZBounce bouncer commands -;; Copyright (C) 2002, 2004, 2006-2011 Free Software Foundation, Inc. +;; Copyright (C) 2002, 2004, 2006-2012 Free Software Foundation, Inc. ;; Author: Andreas Fuchs <asf@void.at> ;; Keywords: comm diff --git a/lisp/erc/erc-fill.el b/lisp/erc/erc-fill.el index 3940cfbc9a4..2422ca10d0a 100644 --- a/lisp/erc/erc-fill.el +++ b/lisp/erc/erc-fill.el @@ -1,6 +1,6 @@ ;;; erc-fill.el --- Filling IRC messages in various ways -;; Copyright (C) 2001-2004, 2006-2011 Free Software Foundation, Inc. +;; Copyright (C) 2001-2004, 2006-2012 Free Software Foundation, Inc. ;; Author: Andreas Fuchs <asf@void.at> ;; Mario Lang <mlang@delysid.org> diff --git a/lisp/erc/erc-goodies.el b/lisp/erc/erc-goodies.el index b2cf9e35622..bf74ed7be87 100644 --- a/lisp/erc/erc-goodies.el +++ b/lisp/erc/erc-goodies.el @@ -1,6 +1,6 @@ ;; erc-goodies.el --- Collection of ERC modules -;; Copyright (C) 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 2001-2012 Free Software Foundation, Inc. ;; Author: Jorgen Schaefer <forcer@forcix.cx> @@ -60,7 +60,7 @@ argument to `recenter'." ((remove-hook 'erc-mode-hook 'erc-add-scroll-to-bottom) (dolist (buffer (erc-buffer-list)) (with-current-buffer buffer - (remove-hook 'window-scroll-functions 'erc-scroll-to-bottom t))))) + (remove-hook 'post-command-hook 'erc-scroll-to-bottom t))))) (defun erc-add-scroll-to-bottom () "A hook function for `erc-mode-hook' to recenter output at bottom of window. @@ -70,35 +70,29 @@ the value of `erc-input-line-position'. This works whenever scrolling happens, so it's added to `window-scroll-functions' rather than `erc-insert-post-hook'." - ;;(make-local-hook 'window-scroll-functions) - (add-hook 'window-scroll-functions 'erc-scroll-to-bottom nil t)) + (add-hook 'post-command-hook 'erc-scroll-to-bottom nil t)) -(defun erc-scroll-to-bottom (window display-start) +(defun erc-scroll-to-bottom () "Recenter WINDOW so that `point' is on the last line. This is added to `window-scroll-functions' by `erc-add-scroll-to-bottom'. You can control which line is recentered to by customizing the -variable `erc-input-line-position'. - -DISPLAY-START is ignored." - (if (window-live-p window) +variable `erc-input-line-position'." ;; Temporarily bind resize-mini-windows to nil so that users who have it ;; set to a non-nil value will not suffer from premature minibuffer ;; shrinkage due to the below recenter call. I have no idea why this ;; works, but it solves the problem, and has no negative side effects. ;; (Fran Litterio, 2003/01/07) - (let ((resize-mini-windows nil)) - (erc-with-selected-window window - (save-restriction - (widen) - (when (and erc-insert-marker - ;; we're editing a line. Scroll. - (> (point) erc-insert-marker)) - (save-excursion - (goto-char (point-max)) - (recenter (or erc-input-line-position -1)) - (sit-for 0)))))))) + (let ((resize-mini-windows nil)) + (save-restriction + (widen) + (when (and erc-insert-marker + ;; we're editing a line. Scroll. + (> (point) erc-insert-marker)) + (save-excursion + (goto-char (point-max)) + (recenter (or erc-input-line-position -1))))))) ;;; Make read only (define-erc-module readonly nil diff --git a/lisp/erc/erc-ibuffer.el b/lisp/erc/erc-ibuffer.el index 9d658eec2f0..1a713009c85 100644 --- a/lisp/erc/erc-ibuffer.el +++ b/lisp/erc/erc-ibuffer.el @@ -1,6 +1,6 @@ ;;; erc-ibuffer.el --- ibuffer integration with ERC -;; Copyright (C) 2002, 2004, 2006-2011 Free Software Foundation, Inc. +;; Copyright (C) 2002, 2004, 2006-2012 Free Software Foundation, Inc. ;; Author: Mario Lang <mlang@delysid.org> ;; Keywords: comm diff --git a/lisp/erc/erc-identd.el b/lisp/erc/erc-identd.el index 140802deff0..aee808c0921 100644 --- a/lisp/erc/erc-identd.el +++ b/lisp/erc/erc-identd.el @@ -1,6 +1,6 @@ ;;; erc-identd.el --- RFC1413 (identd authentication protocol) server -;; Copyright (C) 2003, 2006-2011 Free Software Foundation, Inc. +;; Copyright (C) 2003, 2006-2012 Free Software Foundation, Inc. ;; Author: John Wiegley <johnw@gnu.org> ;; Keywords: comm, processes diff --git a/lisp/erc/erc-imenu.el b/lisp/erc/erc-imenu.el index 3e6e853ff70..53dc9e7abf2 100644 --- a/lisp/erc/erc-imenu.el +++ b/lisp/erc/erc-imenu.el @@ -1,6 +1,6 @@ ;;; erc-imenu.el -- Imenu support for ERC -;; Copyright (C) 2001-2002, 2004, 2006-2011 Free Software Foundation, Inc. +;; Copyright (C) 2001-2002, 2004, 2006-2012 Free Software Foundation, Inc. ;; Author: Mario Lang <mlang@delysid.org> ;; Keywords: comm diff --git a/lisp/erc/erc-join.el b/lisp/erc/erc-join.el index c158c47ab64..855dde75542 100644 --- a/lisp/erc/erc-join.el +++ b/lisp/erc/erc-join.el @@ -1,6 +1,6 @@ ;;; erc-join.el --- autojoin channels on connect and reconnects -;; Copyright (C) 2002-2004, 2006-2011 Free Software Foundation, Inc. +;; Copyright (C) 2002-2004, 2006-2012 Free Software Foundation, Inc. ;; Author: Alex Schroeder <alex@gnu.org> ;; Keywords: irc diff --git a/lisp/erc/erc-lang.el b/lisp/erc/erc-lang.el index 84a4c60816e..11384a25885 100644 --- a/lisp/erc/erc-lang.el +++ b/lisp/erc/erc-lang.el @@ -1,6 +1,6 @@ ;;; erc-lang.el --- provide the LANG command to ERC -;; Copyright (C) 2002, 2004, 2006-2011 Free Software Foundation, Inc. +;; Copyright (C) 2002, 2004, 2006-2012 Free Software Foundation, Inc. ;; Author: Alex Schroeder <alex@gnu.org> ;; Maintainer: Alex Schroeder <alex@gnu.org> diff --git a/lisp/erc/erc-list.el b/lisp/erc/erc-list.el index b8eb5a4aa19..f7d33ffbc28 100644 --- a/lisp/erc/erc-list.el +++ b/lisp/erc/erc-list.el @@ -1,6 +1,6 @@ ;;; erc-list.el --- /list support for ERC -;; Copyright (C) 2008-2011 Free Software Foundation, Inc. +;; Copyright (C) 2008-2012 Free Software Foundation, Inc. ;; Author: Tom Tromey <tromey@redhat.com> ;; Version: 0.1 diff --git a/lisp/erc/erc-log.el b/lisp/erc/erc-log.el index f1754afd1ac..9f50a1d117c 100644 --- a/lisp/erc/erc-log.el +++ b/lisp/erc/erc-log.el @@ -1,6 +1,6 @@ ;;; erc-log.el --- Logging facilities for ERC. -;; Copyright (C) 2003-2011 Free Software Foundation, Inc. +;; Copyright (C) 2003-2012 Free Software Foundation, Inc. ;; Author: Lawrence Mitchell <wence@gmx.li> ;; Keywords: IRC, chat, client, Internet, logging diff --git a/lisp/erc/erc-match.el b/lisp/erc/erc-match.el index 7e567bd1648..2a61247307f 100644 --- a/lisp/erc/erc-match.el +++ b/lisp/erc/erc-match.el @@ -1,6 +1,6 @@ ;;; erc-match.el --- Highlight messages matching certain regexps -;; Copyright (C) 2002-2011 Free Software Foundation, Inc. +;; Copyright (C) 2002-2012 Free Software Foundation, Inc. ;; Author: Andreas Fuchs <asf@void.at> ;; Keywords: comm, faces diff --git a/lisp/erc/erc-menu.el b/lisp/erc/erc-menu.el index ea4ed399a64..5d96fc4d487 100644 --- a/lisp/erc/erc-menu.el +++ b/lisp/erc/erc-menu.el @@ -1,6 +1,6 @@ ;; erc-menu.el -- Menu-bar definitions for ERC -;; Copyright (C) 2001-2002, 2004-2011 Free Software Foundation, Inc. +;; Copyright (C) 2001-2002, 2004-2012 Free Software Foundation, Inc. ;; Author: Mario Lang <mlang@delysid.org> ;; Keywords: comm, processes, menu diff --git a/lisp/erc/erc-netsplit.el b/lisp/erc/erc-netsplit.el index d5f4ec48ba9..44fbc9563d6 100644 --- a/lisp/erc/erc-netsplit.el +++ b/lisp/erc/erc-netsplit.el @@ -1,6 +1,6 @@ ;;; erc-netsplit.el --- Reduce JOIN/QUIT messages on netsplits -;; Copyright (C) 2002-2004, 2006-2011 Free Software Foundation, Inc. +;; Copyright (C) 2002-2004, 2006-2012 Free Software Foundation, Inc. ;; Author: Mario Lang <mlang@delysid.org> ;; Keywords: comm diff --git a/lisp/erc/erc-networks.el b/lisp/erc/erc-networks.el index 1f94ef44093..9a3c562f0a6 100644 --- a/lisp/erc/erc-networks.el +++ b/lisp/erc/erc-networks.el @@ -1,6 +1,6 @@ ;;; erc-networks.el --- IRC networks -;; Copyright (C) 2002, 2004-2011 Free Software Foundation, Inc. +;; Copyright (C) 2002, 2004-2012 Free Software Foundation, Inc. ;; Author: Mario Lang <mlang@lexx.delysid.org> ;; Keywords: comm diff --git a/lisp/erc/erc-notify.el b/lisp/erc/erc-notify.el index 10f6806ec12..d1a33405765 100644 --- a/lisp/erc/erc-notify.el +++ b/lisp/erc/erc-notify.el @@ -1,6 +1,6 @@ ;;; erc-notify.el --- Online status change notification -;; Copyright (C) 2002-2004, 2006-2011 Free Software Foundation, Inc. +;; Copyright (C) 2002-2004, 2006-2012 Free Software Foundation, Inc. ;; Author: Mario Lang <mlang@lexx.delysid.org> ;; Keywords: comm diff --git a/lisp/erc/erc-page.el b/lisp/erc/erc-page.el index 5776dd6fc1a..14c46d08aec 100644 --- a/lisp/erc/erc-page.el +++ b/lisp/erc/erc-page.el @@ -1,6 +1,6 @@ ;; erc-page.el - CTCP PAGE support for ERC -;; Copyright (C) 2002, 2004, 2006-2011 Free Software Foundation +;; Copyright (C) 2002, 2004, 2006-2012 Free Software Foundation ;; This file is part of GNU Emacs. diff --git a/lisp/erc/erc-pcomplete.el b/lisp/erc/erc-pcomplete.el index a390fcfe84d..ba27b0374aa 100644 --- a/lisp/erc/erc-pcomplete.el +++ b/lisp/erc/erc-pcomplete.el @@ -1,6 +1,6 @@ ;;; erc-pcomplete.el --- Provides programmable completion for ERC -;; Copyright (C) 2002-2004, 2006-2011 Free Software Foundation, Inc. +;; Copyright (C) 2002-2004, 2006-2012 Free Software Foundation, Inc. ;; Author: Sacha Chua <sacha@free.net.ph> ;; Keywords: comm, convenience diff --git a/lisp/erc/erc-replace.el b/lisp/erc/erc-replace.el index 4d3ba1e230d..04c5885bc3e 100644 --- a/lisp/erc/erc-replace.el +++ b/lisp/erc/erc-replace.el @@ -1,6 +1,6 @@ ;; erc-replace.el -- wash and massage messages inserted into the buffer -;; Copyright (C) 2001-2002, 2004, 2006-2011 Free Software Foundation, Inc. +;; Copyright (C) 2001-2002, 2004, 2006-2012 Free Software Foundation, Inc. ;; Author: Andreas Fuchs <asf@void.at> ;; Maintainer: Mario Lang (mlang@delysid.org) diff --git a/lisp/erc/erc-ring.el b/lisp/erc/erc-ring.el index 345c636fa79..94af8a09200 100644 --- a/lisp/erc/erc-ring.el +++ b/lisp/erc/erc-ring.el @@ -1,6 +1,6 @@ ;; erc-ring.el -- Command history handling for erc using ring.el -;; Copyright (C) 2001-2004, 2006-2011 Free Software Foundation, Inc. +;; Copyright (C) 2001-2004, 2006-2012 Free Software Foundation, Inc. ;; Author: Alex Schroeder <alex@gnu.org> ;; Keywords: comm diff --git a/lisp/erc/erc-services.el b/lisp/erc/erc-services.el index 3acc600b425..66eb341b47a 100644 --- a/lisp/erc/erc-services.el +++ b/lisp/erc/erc-services.el @@ -1,6 +1,6 @@ ;;; erc-services.el --- Identify to NickServ -;; Copyright (C) 2002-2004, 2006-2011 Free Software Foundation, Inc. +;; Copyright (C) 2002-2004, 2006-2012 Free Software Foundation, Inc. ;; This file is part of GNU Emacs. diff --git a/lisp/erc/erc-sound.el b/lisp/erc/erc-sound.el index 3253aec3386..569abad2a08 100644 --- a/lisp/erc/erc-sound.el +++ b/lisp/erc/erc-sound.el @@ -1,6 +1,6 @@ ;;; erc-sound.el --- CTCP SOUND support for ERC -;; Copyright (C) 2002-2003, 2006-2011 Free Software Foundation, Inc. +;; Copyright (C) 2002-2003, 2006-2012 Free Software Foundation, Inc. ;; This file is part of GNU Emacs. diff --git a/lisp/erc/erc-speedbar.el b/lisp/erc/erc-speedbar.el index 3d80371cc68..1e028e22642 100644 --- a/lisp/erc/erc-speedbar.el +++ b/lisp/erc/erc-speedbar.el @@ -1,6 +1,6 @@ ;;; erc-speedbar.el --- Speedbar support for ERC -;; Copyright (C) 2001-2004, 2006-2011 Free Software Foundation, Inc. +;; Copyright (C) 2001-2004, 2006-2012 Free Software Foundation, Inc. ;; Author: Mario Lang <mlang@delysid.org> ;; Contributor: Eric M. Ludlam <eric@siege-engine.com> diff --git a/lisp/erc/erc-spelling.el b/lisp/erc/erc-spelling.el index 5bb3c877dbe..441e3536e19 100644 --- a/lisp/erc/erc-spelling.el +++ b/lisp/erc/erc-spelling.el @@ -1,6 +1,6 @@ ;;; erc-spelling.el --- use flyspell in ERC -;; Copyright (C) 2005-2011 Free Software Foundation, Inc. +;; Copyright (C) 2005-2012 Free Software Foundation, Inc. ;; Author: Jorgen Schaefer <forcer@forcix.cx> ;; Keywords: irc diff --git a/lisp/erc/erc-stamp.el b/lisp/erc/erc-stamp.el index cfe8616ab65..e02b045ebd2 100644 --- a/lisp/erc/erc-stamp.el +++ b/lisp/erc/erc-stamp.el @@ -1,6 +1,6 @@ ;;; erc-stamp.el --- Timestamping for ERC messages -;; Copyright (C) 2002-2004, 2006-2011 Free Software Foundation, Inc. +;; Copyright (C) 2002-2004, 2006-2012 Free Software Foundation, Inc. ;; Author: Mario Lang <mlang@delysid.org> ;; Keywords: comm, processes, timestamp diff --git a/lisp/erc/erc-track.el b/lisp/erc/erc-track.el index e2e5fa1c4f2..ac899302c3c 100644 --- a/lisp/erc/erc-track.el +++ b/lisp/erc/erc-track.el @@ -1,6 +1,6 @@ ;;; erc-track.el --- Track modified channel buffers -;; Copyright (C) 2002-2011 Free Software Foundation, Inc. +;; Copyright (C) 2002-2012 Free Software Foundation, Inc. ;; Author: Mario Lang <mlang@delysid.org> ;; Keywords: comm, faces diff --git a/lisp/erc/erc-truncate.el b/lisp/erc/erc-truncate.el index 46668508637..6aa4e718d0a 100644 --- a/lisp/erc/erc-truncate.el +++ b/lisp/erc/erc-truncate.el @@ -1,6 +1,6 @@ ;;; erc-truncate.el --- Functions for truncating ERC buffers -;; Copyright (C) 2003-2004, 2006-2011 Free Software Foundation, Inc. +;; Copyright (C) 2003-2004, 2006-2012 Free Software Foundation, Inc. ;; Author: Andreas Fuchs <asf@void.at> ;; Keywords: IRC, chat, client, Internet, logging diff --git a/lisp/erc/erc-xdcc.el b/lisp/erc/erc-xdcc.el index f4f75c15206..98e26dd9af0 100644 --- a/lisp/erc/erc-xdcc.el +++ b/lisp/erc/erc-xdcc.el @@ -1,6 +1,6 @@ ;;; erc-xdcc.el --- XDCC file-server support for ERC -;; Copyright (C) 2003-2004, 2006-2011 Free Software Foundation, Inc. +;; Copyright (C) 2003-2004, 2006-2012 Free Software Foundation, Inc. ;; Author: Mario Lang <mlang@delysid.org> ;; Keywords: comm, processes diff --git a/lisp/erc/erc.el b/lisp/erc/erc.el index 0eff33f1e75..b95d42b154a 100644 --- a/lisp/erc/erc.el +++ b/lisp/erc/erc.el @@ -1,6 +1,6 @@ ;; erc.el --- An Emacs Internet Relay Chat client -;; Copyright (C) 1997-2011 Free Software Foundation, Inc. +;; Copyright (C) 1997-2012 Free Software Foundation, Inc. ;; Author: Alexander L. Belikoff (alexander@belikoff.net) ;; Contributors: Sergey Berezin (sergey.berezin@cs.cmu.edu), @@ -2175,6 +2175,7 @@ be invoked for the values of the other parameters." (defalias 'erc-select 'erc) (defalias 'erc-ssl 'erc-tls) +;;;###autoload (defun erc-tls (&rest r) "Interactively select TLS connection parameters and run ERC. Arguments are the same as for `erc'." diff --git a/lisp/eshell/em-alias.el b/lisp/eshell/em-alias.el index 04ba19d407d..d45f918113d 100644 --- a/lisp/eshell/em-alias.el +++ b/lisp/eshell/em-alias.el @@ -1,6 +1,6 @@ ;;; em-alias.el --- creation and management of command aliases -;; Copyright (C) 1999-2011 Free Software Foundation, Inc. +;; Copyright (C) 1999-2012 Free Software Foundation, Inc. ;; Author: John Wiegley <johnw@gnu.org> diff --git a/lisp/eshell/em-banner.el b/lisp/eshell/em-banner.el index ce987f132e3..a96a3dfe6af 100644 --- a/lisp/eshell/em-banner.el +++ b/lisp/eshell/em-banner.el @@ -1,6 +1,6 @@ ;;; em-banner.el --- sample module that displays a login banner -;; Copyright (C) 1999-2011 Free Software Foundation, Inc. +;; Copyright (C) 1999-2012 Free Software Foundation, Inc. ;; Author: John Wiegley <johnw@gnu.org> diff --git a/lisp/eshell/em-basic.el b/lisp/eshell/em-basic.el index df1987e13ee..ece029c39f2 100644 --- a/lisp/eshell/em-basic.el +++ b/lisp/eshell/em-basic.el @@ -1,6 +1,6 @@ ;;; em-basic.el --- basic shell builtin commands -;; Copyright (C) 1999-2011 Free Software Foundation, Inc. +;; Copyright (C) 1999-2012 Free Software Foundation, Inc. ;; Author: John Wiegley <johnw@gnu.org> diff --git a/lisp/eshell/em-cmpl.el b/lisp/eshell/em-cmpl.el index c551684210c..f997d47f665 100644 --- a/lisp/eshell/em-cmpl.el +++ b/lisp/eshell/em-cmpl.el @@ -1,6 +1,6 @@ ;;; em-cmpl.el --- completion using the TAB key -;; Copyright (C) 1999-2011 Free Software Foundation, Inc. +;; Copyright (C) 1999-2012 Free Software Foundation, Inc. ;; Author: John Wiegley <johnw@gnu.org> diff --git a/lisp/eshell/em-dirs.el b/lisp/eshell/em-dirs.el index cab84951143..992b5bdd77e 100644 --- a/lisp/eshell/em-dirs.el +++ b/lisp/eshell/em-dirs.el @@ -1,6 +1,6 @@ ;;; em-dirs.el --- directory navigation commands -;; Copyright (C) 1999-2011 Free Software Foundation, Inc. +;; Copyright (C) 1999-2012 Free Software Foundation, Inc. ;; Author: John Wiegley <johnw@gnu.org> diff --git a/lisp/eshell/em-glob.el b/lisp/eshell/em-glob.el index df1f7b67e29..623d2c8e193 100644 --- a/lisp/eshell/em-glob.el +++ b/lisp/eshell/em-glob.el @@ -1,6 +1,6 @@ ;;; em-glob.el --- extended file name globbing -;; Copyright (C) 1999-2011 Free Software Foundation, Inc. +;; Copyright (C) 1999-2012 Free Software Foundation, Inc. ;; Author: John Wiegley <johnw@gnu.org> diff --git a/lisp/eshell/em-hist.el b/lisp/eshell/em-hist.el index 5e44e541526..05097a8deaf 100644 --- a/lisp/eshell/em-hist.el +++ b/lisp/eshell/em-hist.el @@ -1,6 +1,6 @@ ;;; em-hist.el --- history list management -;; Copyright (C) 1999-2011 Free Software Foundation, Inc. +;; Copyright (C) 1999-2012 Free Software Foundation, Inc. ;; Author: John Wiegley <johnw@gnu.org> diff --git a/lisp/eshell/em-ls.el b/lisp/eshell/em-ls.el index 17dbe3fbaf2..af60cdc1260 100644 --- a/lisp/eshell/em-ls.el +++ b/lisp/eshell/em-ls.el @@ -1,6 +1,6 @@ ;;; em-ls.el --- implementation of ls in Lisp -;; Copyright (C) 1999-2011 Free Software Foundation, Inc. +;; Copyright (C) 1999-2012 Free Software Foundation, Inc. ;; Author: John Wiegley <johnw@gnu.org> diff --git a/lisp/eshell/em-pred.el b/lisp/eshell/em-pred.el index e45b36e3511..56b0fdfc9a2 100644 --- a/lisp/eshell/em-pred.el +++ b/lisp/eshell/em-pred.el @@ -1,6 +1,6 @@ ;;; em-pred.el --- argument predicates and modifiers (ala zsh) -;; Copyright (C) 1999-2011 Free Software Foundation, Inc. +;; Copyright (C) 1999-2012 Free Software Foundation, Inc. ;; Author: John Wiegley <johnw@gnu.org> diff --git a/lisp/eshell/em-prompt.el b/lisp/eshell/em-prompt.el index 3e87acc6d1e..3fe9995bb04 100644 --- a/lisp/eshell/em-prompt.el +++ b/lisp/eshell/em-prompt.el @@ -1,6 +1,6 @@ ;;; em-prompt.el --- command prompts -;; Copyright (C) 1999-2011 Free Software Foundation, Inc. +;; Copyright (C) 1999-2012 Free Software Foundation, Inc. ;; Author: John Wiegley <johnw@gnu.org> diff --git a/lisp/eshell/em-rebind.el b/lisp/eshell/em-rebind.el index b6f12e1ff2e..243e71d7533 100644 --- a/lisp/eshell/em-rebind.el +++ b/lisp/eshell/em-rebind.el @@ -1,6 +1,6 @@ ;;; em-rebind.el --- rebind keys when point is at current input -;; Copyright (C) 1999-2011 Free Software Foundation, Inc. +;; Copyright (C) 1999-2012 Free Software Foundation, Inc. ;; Author: John Wiegley <johnw@gnu.org> diff --git a/lisp/eshell/em-script.el b/lisp/eshell/em-script.el index d76e19cdd07..8acbc2644be 100644 --- a/lisp/eshell/em-script.el +++ b/lisp/eshell/em-script.el @@ -1,6 +1,6 @@ ;;; em-script.el --- Eshell script files -;; Copyright (C) 1999-2011 Free Software Foundation, Inc. +;; Copyright (C) 1999-2012 Free Software Foundation, Inc. ;; Author: John Wiegley <johnw@gnu.org> diff --git a/lisp/eshell/em-smart.el b/lisp/eshell/em-smart.el index 259072d9750..cdaed9b717c 100644 --- a/lisp/eshell/em-smart.el +++ b/lisp/eshell/em-smart.el @@ -1,6 +1,6 @@ ;;; em-smart.el --- smart display of output -;; Copyright (C) 1999-2011 Free Software Foundation, Inc. +;; Copyright (C) 1999-2012 Free Software Foundation, Inc. ;; Author: John Wiegley <johnw@gnu.org> diff --git a/lisp/eshell/em-term.el b/lisp/eshell/em-term.el index bd575a0f809..33c47d1c0ec 100644 --- a/lisp/eshell/em-term.el +++ b/lisp/eshell/em-term.el @@ -1,6 +1,6 @@ ;;; em-term.el --- running visual commands -;; Copyright (C) 1999-2011 Free Software Foundation, Inc. +;; Copyright (C) 1999-2012 Free Software Foundation, Inc. ;; Author: John Wiegley <johnw@gnu.org> diff --git a/lisp/eshell/em-unix.el b/lisp/eshell/em-unix.el index 707f2ebc2ce..f24180b5c7f 100644 --- a/lisp/eshell/em-unix.el +++ b/lisp/eshell/em-unix.el @@ -1,6 +1,6 @@ ;;; em-unix.el --- UNIX command aliases -;; Copyright (C) 1999-2011 Free Software Foundation, Inc. +;; Copyright (C) 1999-2012 Free Software Foundation, Inc. ;; Author: John Wiegley <johnw@gnu.org> @@ -965,6 +965,8 @@ Show wall-clock time elapsed during execution of COMMAND.") ((string-match "[^[:blank:]]" string) string) (nil))) +(autoload 'diff-no-select "diff") + (defun eshell/diff (&rest args) "Alias \"diff\" to call Emacs `diff' function." (let ((orig-args (eshell-stringify-list (eshell-flatten-list args)))) @@ -986,8 +988,9 @@ Show wall-clock time elapsed during execution of COMMAND.") (setcdr (last args 3) nil)) (with-current-buffer (condition-case err - (diff old new - (nil-blank-string (eshell-flatten-and-stringify args))) + (diff-no-select + old new + (nil-blank-string (eshell-flatten-and-stringify args))) (error (throw 'eshell-replace-command (eshell-parse-command "*diff" orig-args)))) diff --git a/lisp/eshell/em-xtra.el b/lisp/eshell/em-xtra.el index 50bda108e95..4f9b921d5ef 100644 --- a/lisp/eshell/em-xtra.el +++ b/lisp/eshell/em-xtra.el @@ -1,6 +1,6 @@ ;;; em-xtra.el --- extra alias functions -;; Copyright (C) 1999-2011 Free Software Foundation, Inc. +;; Copyright (C) 1999-2012 Free Software Foundation, Inc. ;; Author: John Wiegley <johnw@gnu.org> diff --git a/lisp/eshell/esh-arg.el b/lisp/eshell/esh-arg.el index dcb23967645..8143f2d65be 100644 --- a/lisp/eshell/esh-arg.el +++ b/lisp/eshell/esh-arg.el @@ -1,6 +1,6 @@ ;;; esh-arg.el --- argument processing -;; Copyright (C) 1999-2011 Free Software Foundation, Inc. +;; Copyright (C) 1999-2012 Free Software Foundation, Inc. ;; Author: John Wiegley <johnw@gnu.org> diff --git a/lisp/eshell/esh-cmd.el b/lisp/eshell/esh-cmd.el index 7b90797eb43..6075b56915b 100644 --- a/lisp/eshell/esh-cmd.el +++ b/lisp/eshell/esh-cmd.el @@ -1,6 +1,6 @@ ;;; esh-cmd.el --- command invocation -;; Copyright (C) 1999-2011 Free Software Foundation, Inc. +;; Copyright (C) 1999-2012 Free Software Foundation, Inc. ;; Author: John Wiegley <johnw@gnu.org> diff --git a/lisp/eshell/esh-ext.el b/lisp/eshell/esh-ext.el index 3acbeac0b89..a33ccc82978 100644 --- a/lisp/eshell/esh-ext.el +++ b/lisp/eshell/esh-ext.el @@ -1,6 +1,6 @@ ;;; esh-ext.el --- commands external to Eshell -;; Copyright (C) 1999-2011 Free Software Foundation, Inc. +;; Copyright (C) 1999-2012 Free Software Foundation, Inc. ;; Author: John Wiegley <johnw@gnu.org> diff --git a/lisp/eshell/esh-io.el b/lisp/eshell/esh-io.el index 71fae34b360..c8230e0baad 100644 --- a/lisp/eshell/esh-io.el +++ b/lisp/eshell/esh-io.el @@ -1,6 +1,6 @@ ;;; esh-io.el --- I/O management -;; Copyright (C) 1999-2011 Free Software Foundation, Inc. +;; Copyright (C) 1999-2012 Free Software Foundation, Inc. ;; Author: John Wiegley <johnw@gnu.org> diff --git a/lisp/eshell/esh-mode.el b/lisp/eshell/esh-mode.el index 43d56a5b89f..74320538fe9 100644 --- a/lisp/eshell/esh-mode.el +++ b/lisp/eshell/esh-mode.el @@ -1,6 +1,6 @@ ;;; esh-mode.el --- user interface -;; Copyright (C) 1999-2011 Free Software Foundation, Inc. +;; Copyright (C) 1999-2012 Free Software Foundation, Inc. ;; Author: John Wiegley <johnw@gnu.org> diff --git a/lisp/eshell/esh-module.el b/lisp/eshell/esh-module.el index 1581d05889e..8875395e1d1 100644 --- a/lisp/eshell/esh-module.el +++ b/lisp/eshell/esh-module.el @@ -1,6 +1,6 @@ ;;; esh-module.el --- Eshell modules -;; Copyright (C) 1999-2000, 2002-2011 Free Software Foundation, Inc. +;; Copyright (C) 1999-2000, 2002-2012 Free Software Foundation, Inc. ;; Author: John Wiegley <johnw@gnu.org> ;; Keywords: processes diff --git a/lisp/eshell/esh-opt.el b/lisp/eshell/esh-opt.el index 91d3cac198a..edb115b7f4f 100644 --- a/lisp/eshell/esh-opt.el +++ b/lisp/eshell/esh-opt.el @@ -1,6 +1,6 @@ ;;; esh-opt.el --- command options processing -;; Copyright (C) 1999-2011 Free Software Foundation, Inc. +;; Copyright (C) 1999-2012 Free Software Foundation, Inc. ;; Author: John Wiegley <johnw@gnu.org> diff --git a/lisp/eshell/esh-proc.el b/lisp/eshell/esh-proc.el index eeaccc4b890..f510f4b5329 100644 --- a/lisp/eshell/esh-proc.el +++ b/lisp/eshell/esh-proc.el @@ -1,6 +1,6 @@ ;;; esh-proc.el --- process management -;; Copyright (C) 1999-2011 Free Software Foundation, Inc. +;; Copyright (C) 1999-2012 Free Software Foundation, Inc. ;; Author: John Wiegley <johnw@gnu.org> diff --git a/lisp/eshell/esh-util.el b/lisp/eshell/esh-util.el index b508fd5352f..f111fd91230 100644 --- a/lisp/eshell/esh-util.el +++ b/lisp/eshell/esh-util.el @@ -1,6 +1,6 @@ ;;; esh-util.el --- general utilities -;; Copyright (C) 1999-2011 Free Software Foundation, Inc. +;; Copyright (C) 1999-2012 Free Software Foundation, Inc. ;; Author: John Wiegley <johnw@gnu.org> diff --git a/lisp/eshell/esh-var.el b/lisp/eshell/esh-var.el index 03774396485..28984c2747d 100644 --- a/lisp/eshell/esh-var.el +++ b/lisp/eshell/esh-var.el @@ -1,6 +1,6 @@ ;;; esh-var.el --- handling of variables -;; Copyright (C) 1999-2011 Free Software Foundation, Inc. +;; Copyright (C) 1999-2012 Free Software Foundation, Inc. ;; Author: John Wiegley <johnw@gnu.org> diff --git a/lisp/eshell/eshell.el b/lisp/eshell/eshell.el index 0c1c03941e5..e4478aefd6d 100644 --- a/lisp/eshell/eshell.el +++ b/lisp/eshell/eshell.el @@ -1,6 +1,6 @@ ;;; eshell.el --- the Emacs command shell -;; Copyright (C) 1999-2011 Free Software Foundation, Inc. +;; Copyright (C) 1999-2012 Free Software Foundation, Inc. ;; Author: John Wiegley <johnw@gnu.org> ;; Version: 2.4.2 diff --git a/lisp/expand.el b/lisp/expand.el index beb76321781..18f2c390798 100644 --- a/lisp/expand.el +++ b/lisp/expand.el @@ -1,6 +1,6 @@ ;;; expand.el --- make abbreviations more usable -;; Copyright (C) 1995-1996, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1995-1996, 2001-2012 Free Software Foundation, Inc. ;; Author: Frederic Lepied <Frederic.Lepied@sugix.frmug.org> ;; Maintainer: Frederic Lepied <Frederic.Lepied@sugix.frmug.org> diff --git a/lisp/ezimage.el b/lisp/ezimage.el index d0bbdfb2f8a..346b69d9912 100644 --- a/lisp/ezimage.el +++ b/lisp/ezimage.el @@ -1,6 +1,6 @@ ;;; ezimage --- Generalized Image management -;; Copyright (C) 1999-2011 Free Software Foundation, Inc. +;; Copyright (C) 1999-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <zappo@gnu.org> ;; Keywords: file, tags, tools diff --git a/lisp/face-remap.el b/lisp/face-remap.el index bfd973a299f..146cea80a9e 100644 --- a/lisp/face-remap.el +++ b/lisp/face-remap.el @@ -1,6 +1,6 @@ ;;; face-remap.el --- Functions for managing `face-remapping-alist' ;; -;; Copyright (C) 2008-2011 Free Software Foundation, Inc. +;; Copyright (C) 2008-2012 Free Software Foundation, Inc. ;; ;; Author: Miles Bader <miles@gnu.org> ;; Keywords: faces, face remapping, display, user commands diff --git a/lisp/facemenu.el b/lisp/facemenu.el index 4f9db02b5e1..e5d14be15dd 100644 --- a/lisp/facemenu.el +++ b/lisp/facemenu.el @@ -1,6 +1,6 @@ ;;; facemenu.el --- create a face menu for interactively adding fonts to text -;; Copyright (C) 1994-1996, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1994-1996, 2001-2012 Free Software Foundation, Inc. ;; Author: Boris Goldowsky <boris@gnu.org> ;; Keywords: faces diff --git a/lisp/faces.el b/lisp/faces.el index 21193589deb..5d406ad7c0b 100644 --- a/lisp/faces.el +++ b/lisp/faces.el @@ -1,6 +1,6 @@ ;;; faces.el --- Lisp faces -;; Copyright (C) 1992-1996, 1998-2011 Free Software Foundation, Inc. +;; Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: internal @@ -557,9 +557,10 @@ If FACE is a face-alias, get the documentation for the target face." (defun set-face-attribute (face frame &rest args) "Set attributes of FACE on FRAME from ARGS. -FRAME nil means change attributes on all frames. FRAME t means change -the default for new frames (this is done automatically each time an -attribute is changed on all frames). +If FRAME is nil this function sets the attributes for all +existing frames, and the default for new frames. If FRAME is t, +change the default for new frames (this is done automatically +each time an attribute is changed on all frames). ARGS must come in pairs ATTRIBUTE VALUE. ATTRIBUTE must be a valid face attribute name. All attributes can be set to `unspecified'; diff --git a/lisp/ffap.el b/lisp/ffap.el index 74df9883324..c3797536f19 100644 --- a/lisp/ffap.el +++ b/lisp/ffap.el @@ -1,6 +1,6 @@ ;;; ffap.el --- find file (or url) at point -;; Copyright (C) 1995-1997, 2000-2011 Free Software Foundation, Inc. +;; Copyright (C) 1995-1997, 2000-2012 Free Software Foundation, Inc. ;; Author: Michelangelo Grigni <mic@mathcs.emory.edu> ;; Maintainer: FSF diff --git a/lisp/filecache.el b/lisp/filecache.el index ef41fb41907..10e23bddca2 100644 --- a/lisp/filecache.el +++ b/lisp/filecache.el @@ -1,6 +1,6 @@ ;;; filecache.el --- find files using a pre-loaded cache -;; Copyright (C) 1996, 2000-2011 Free Software Foundation, Inc. +;; Copyright (C) 1996, 2000-2012 Free Software Foundation, Inc. ;; Author: Peter Breton <pbreton@cs.umb.edu> ;; Created: Sun Nov 10 1996 diff --git a/lisp/files-x.el b/lisp/files-x.el index ca847097184..b4a04401a77 100644 --- a/lisp/files-x.el +++ b/lisp/files-x.el @@ -1,6 +1,6 @@ ;;; files-x.el --- extended file handling commands -;; Copyright (C) 2009-2011 Free Software Foundation, Inc. +;; Copyright (C) 2009-2012 Free Software Foundation, Inc. ;; Author: Juri Linkov <juri@jurta.org> ;; Maintainer: FSF diff --git a/lisp/files.el b/lisp/files.el index 40b6e7d56b4..f15c523400d 100644 --- a/lisp/files.el +++ b/lisp/files.el @@ -1,6 +1,6 @@ ;;; files.el --- file input and output commands for Emacs -;; Copyright (C) 1985-1987, 1992-2011 Free Software Foundation, Inc. +;; Copyright (C) 1985-1987, 1992-2012 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Package: emacs @@ -917,24 +917,41 @@ See `load-file' for a different interface to `load'." (defun file-remote-p (file &optional identification connected) "Test whether FILE specifies a location on a remote system. -Returns nil or a string identifying the remote connection (ideally -a prefix of FILE). For example, the remote identification for filename -\"/user@host:/foo\" could be \"/user@host:\". -A file is considered \"remote\" if accessing it is likely to be slower or -less reliable than accessing local files. -Furthermore, relative file names do not work across remote connections. - -IDENTIFICATION specifies which part of the identification shall -be returned as string. IDENTIFICATION can be the symbol -`method', `user', `host' or `localname'; any other value is -handled like nil and means to return the complete identification -string. - -If CONNECTED is non-nil, the function returns an identification only -if FILE is located on a remote system, and a connection is established -to that remote system. - -`file-remote-p' will never open a connection on its own." +A file is considered remote if accessing it is likely to +be slower or less reliable than accessing local files. + +`file-remote-p' never opens a new remote connection. It can +only reuse a connection that is already open. + +Return nil or a string identifying the remote connection +\(ideally a prefix of FILE). Return nil if FILE is a relative +file name. + +When IDENTIFICATION is nil, the returned string is a complete +remote identifier: with components method, user, and host. The +components are those present in FILE, with defaults filled in for +any that are missing. + +IDENTIFICATION can specify which part of the identification to +return. IDENTIFICATION can be the symbol `method', `user', +`host', or `localname'. Any other value is handled like nil and +means to return the complete identification. The string returned +for IDENTIFICATION `localname' can differ depending on whether +there is an existing connection. + +If CONNECTED is non-nil, return an identification only if FILE is +located on a remote system and a connection is established to +that remote system. + +Tip: You can use this expansion of remote identifier components + to derive a new remote file name from an existing one. For + example, if FILE is \"/sudo::/path/to/file\" then + + \(concat \(file-remote-p FILE) \"/bin/sh\") + + returns a remote file name for file \"/bin/sh\" that has the + same remote identifier as FILE but expanded; a name such as + \"/sudo:root@myhost:/bin/sh\"." (let ((handler (find-file-name-handler file 'file-remote-p))) (if handler (funcall handler 'file-remote-p file identification connected) @@ -3277,7 +3294,7 @@ It is dangerous if either of these conditions are met: (and (symbolp (car exp)) ;; Allow (minor)-modes calls with no arguments. ;; This obsoletes the use of "mode:" for such things. (Bug#8613) - (or (and (member (cdr exp) '(nil (1) (-1))) + (or (and (member (cdr exp) '(nil (1) (0) (-1))) (string-match "-mode\\'" (symbol-name (car exp)))) (let ((prop (get (car exp) 'safe-local-eval-function))) (cond ((eq prop t) @@ -3560,6 +3577,10 @@ and `file-local-variables-alist', without applying them." (hack-local-variables-filter variables dir-name))))))) (defun hack-dir-local-variables-non-file-buffer () + "Apply directory-local variables to a non-file buffer. +For non-file buffers, such as Dired buffers, directory-local +variables are looked for in `default-directory' and its parent +directories." (hack-dir-local-variables) (hack-local-variables-apply)) @@ -6440,12 +6461,14 @@ Otherwise, trash FILENAME using the freedesktop.org conventions, ;; Ensure that the trash directory exists; otherwise, create it. (let ((saved-default-file-modes (default-file-modes))) - (set-default-file-modes ?\700) - (unless (file-exists-p trash-files-dir) - (make-directory trash-files-dir t)) - (unless (file-exists-p trash-info-dir) - (make-directory trash-info-dir t)) - (set-default-file-modes saved-default-file-modes)) + (unwind-protect + (progn + (set-default-file-modes #o700) + (unless (file-exists-p trash-files-dir) + (make-directory trash-files-dir t)) + (unless (file-exists-p trash-info-dir) + (make-directory trash-info-dir t))) + (set-default-file-modes saved-default-file-modes))) ;; Try to move to trash with .trashinfo undo information (save-excursion diff --git a/lisp/filesets.el b/lisp/filesets.el index 680a107adfe..cecf14753f4 100644 --- a/lisp/filesets.el +++ b/lisp/filesets.el @@ -1,6 +1,6 @@ ;;; filesets.el --- handle group of files -;; Copyright (C) 2002-2011 Free Software Foundation, Inc. +;; Copyright (C) 2002-2012 Free Software Foundation, Inc. ;; Author: Thomas Link <sanobast-emacs@yahoo.de> ;; Maintainer: FSF @@ -453,7 +453,7 @@ will not be rewrapped if their length exceeds this value." :group 'filesets) (defcustom filesets-max-entry-length 50 - "Truncate names of splitted submenus to this length." + "Truncate names of split submenus to this length." :set (function filesets-set-default) :type 'integer :group 'filesets) diff --git a/lisp/find-cmd.el b/lisp/find-cmd.el index 8b0c1eb522a..6589bac0c6a 100644 --- a/lisp/find-cmd.el +++ b/lisp/find-cmd.el @@ -1,6 +1,6 @@ ;;; find-cmd.el --- Build a valid find(1) command with sexps -;; Copyright (C) 2008-2011 Free Software Foundation, Inc. +;; Copyright (C) 2008-2012 Free Software Foundation, Inc. ;; Author: Philip Jackson <phil@shellarchive.co.uk> ;; Version: 0.6 diff --git a/lisp/find-dired.el b/lisp/find-dired.el index 491110bc898..3fda2153e09 100644 --- a/lisp/find-dired.el +++ b/lisp/find-dired.el @@ -1,6 +1,6 @@ ;;; find-dired.el --- run a `find' command and dired the output -;; Copyright (C) 1992, 1994-1995, 2000-2011 Free Software Foundation, Inc. +;; Copyright (C) 1992, 1994-1995, 2000-2012 Free Software Foundation, Inc. ;; Author: Roland McGrath <roland@gnu.org>, ;; Sebastian Kremer <sk@thp.uni-koeln.de> diff --git a/lisp/find-file.el b/lisp/find-file.el index e4285523184..19fa8283b06 100644 --- a/lisp/find-file.el +++ b/lisp/find-file.el @@ -4,7 +4,7 @@ ;; Maintainer: FSF ;; Keywords: c, matching, tools -;; Copyright (C) 1994-1995, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1994-1995, 2001-2012 Free Software Foundation, Inc. ;; This file is part of GNU Emacs. diff --git a/lisp/find-lisp.el b/lisp/find-lisp.el index b89762dc1a8..bfe35c0109c 100644 --- a/lisp/find-lisp.el +++ b/lisp/find-lisp.el @@ -4,7 +4,7 @@ ;; Created: Fri Mar 26 1999 ;; Keywords: unix -;; Copyright (C) 1999-2011 Free Software Foundation, Inc. +;; Copyright (C) 1999-2012 Free Software Foundation, Inc. ;; This file is part of GNU Emacs. diff --git a/lisp/finder.el b/lisp/finder.el index ae2afba5bbb..6ccb4bf9ecd 100644 --- a/lisp/finder.el +++ b/lisp/finder.el @@ -1,6 +1,6 @@ ;;; finder.el --- topic & keyword-based code finder -;; Copyright (C) 1992, 1997-1999, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1992, 1997-1999, 2001-2012 Free Software Foundation, Inc. ;; Author: Eric S. Raymond <esr@snark.thyrsus.com> ;; Created: 16 Jun 1992 diff --git a/lisp/flow-ctrl.el b/lisp/flow-ctrl.el index a025f0a184c..747a4ca018c 100644 --- a/lisp/flow-ctrl.el +++ b/lisp/flow-ctrl.el @@ -1,6 +1,6 @@ ;;; flow-ctrl.el --- help for lusers on cu(1) or ttys with wired-in ^S/^Q flow control -;; Copyright (C) 1990-1991, 1994, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1990-1991, 1994, 2001-2012 Free Software Foundation, Inc. ;; Author: Kevin Gallagher ;; Maintainer: FSF diff --git a/lisp/foldout.el b/lisp/foldout.el index 4f93b4205b2..4081bfd2823 100644 --- a/lisp/foldout.el +++ b/lisp/foldout.el @@ -1,6 +1,6 @@ ;;; foldout.el --- folding extensions for outline-mode and outline-minor-mode -;; Copyright (C) 1994, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1994, 2001-2012 Free Software Foundation, Inc. ;; Author: Kevin Broadey <KevinB@bartley.demon.co.uk> ;; Maintainer: FSF diff --git a/lisp/follow.el b/lisp/follow.el index ee8be14c6dc..a29f733148c 100644 --- a/lisp/follow.el +++ b/lisp/follow.el @@ -1,6 +1,6 @@ ;;; follow.el --- synchronize windows showing the same buffer -;; Copyright (C) 1995-1997, 1999, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1995-1997, 1999, 2001-2012 Free Software Foundation, Inc. ;; Author: Anders Lindgren <andersl@andersl.com> ;; Maintainer: FSF (Anders' email bounces, Sep 2005) diff --git a/lisp/font-core.el b/lisp/font-core.el index a5de29520f7..f6701c0c79f 100644 --- a/lisp/font-core.el +++ b/lisp/font-core.el @@ -1,6 +1,6 @@ ;;; font-core.el --- Core interface to font-lock -;; Copyright (C) 1992-2011 Free Software Foundation, Inc. +;; Copyright (C) 1992-2012 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: languages, faces diff --git a/lisp/font-lock.el b/lisp/font-lock.el index c319974fb41..95bdc815e18 100644 --- a/lisp/font-lock.el +++ b/lisp/font-lock.el @@ -1,6 +1,6 @@ ;;; font-lock.el --- Electric font lock mode -;; Copyright (C) 1992-2011 Free Software Foundation, Inc. +;; Copyright (C) 1992-2012 Free Software Foundation, Inc. ;; Author: Jamie Zawinski ;; Richard Stallman @@ -294,7 +294,7 @@ If a number, only buffers greater than this size have fontification messages." ;; and they give users another mechanism for changing face appearance. ;; We now allow a FACENAME in `font-lock-keywords' to be any expression that ;; returns a face. So the easiest thing is to continue using these variables, -;; rather than sometimes evaling FACENAME and sometimes not. sm. +;; rather than sometimes evalling FACENAME and sometimes not. sm. ;; Note that in new code, in the vast majority of cases there is no ;; need to create variables that specify face names. Simply using diff --git a/lisp/format-spec.el b/lisp/format-spec.el index 68d57b73db1..1bf9a49fa48 100644 --- a/lisp/format-spec.el +++ b/lisp/format-spec.el @@ -1,6 +1,6 @@ ;;; format-spec.el --- functions for formatting arbitrary formatting strings -;; Copyright (C) 1999-2011 Free Software Foundation, Inc. +;; Copyright (C) 1999-2012 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; Keywords: tools diff --git a/lisp/format.el b/lisp/format.el index 61c68870e08..cfaad623042 100644 --- a/lisp/format.el +++ b/lisp/format.el @@ -1,6 +1,6 @@ ;;; format.el --- read and save files in multiple formats -;; Copyright (C) 1994-1995, 1997, 1999, 2001-2011 +;; Copyright (C) 1994-1995, 1997, 1999, 2001-2012 ;; Free Software Foundation, Inc. ;; Author: Boris Goldowsky <boris@gnu.org> diff --git a/lisp/forms-d2.el b/lisp/forms-d2.el index 12cd5d7d570..7d7336030db 100644 --- a/lisp/forms-d2.el +++ b/lisp/forms-d2.el @@ -1,6 +1,6 @@ ;;; forms-d2.el --- demo forms-mode -*- no-byte-compile: t -*- -;; Copyright (C) 1991, 1994-1997, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1991, 1994-1997, 2001-2012 Free Software Foundation, Inc. ;; Author: Johan Vromans <jvromans@squirrel.nl> ;; Created: 1989 diff --git a/lisp/forms.el b/lisp/forms.el index 0d92dc3ffd9..85270380807 100644 --- a/lisp/forms.el +++ b/lisp/forms.el @@ -1,6 +1,6 @@ ;;; forms.el --- Forms mode: edit a file as a form to fill in -;; Copyright (C) 1991, 1994-1997, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1991, 1994-1997, 2001-2012 Free Software Foundation, Inc. ;; Author: Johan Vromans <jvromans@squirrel.nl> diff --git a/lisp/frame.el b/lisp/frame.el index af668f80961..842d07abf50 100644 --- a/lisp/frame.el +++ b/lisp/frame.el @@ -1,6 +1,6 @@ ;;; frame.el --- multi-frame management independent of window systems -;; Copyright (C) 1993-1994, 1996-1997, 2000-2011 +;; Copyright (C) 1993-1994, 1996-1997, 2000-2012 ;; Free Software Foundation, Inc. ;; Maintainer: FSF @@ -396,7 +396,7 @@ there (in decreasing order of priority)." ;; Finally, get rid of the old frame. (delete-frame frame-initial-frame t)) - ;; Otherwise, we don't need all that rigamarole; just apply + ;; Otherwise, we don't need all that rigmarole; just apply ;; the new parameters. (let (newparms allparms tail) (setq allparms (append initial-frame-alist diff --git a/lisp/fringe.el b/lisp/fringe.el index fa5ebb6f0c6..70a28bd92f9 100644 --- a/lisp/fringe.el +++ b/lisp/fringe.el @@ -1,6 +1,6 @@ ;;; fringe.el --- fringe setup and control -*- coding: utf-8 -*- -;; Copyright (C) 2002-2011 Free Software Foundation, Inc. +;; Copyright (C) 2002-2012 Free Software Foundation, Inc. ;; Author: Simon Josefsson <simon@josefsson.org> ;; Maintainer: FSF @@ -30,7 +30,7 @@ ;; The code is influenced by scroll-bar.el and avoid.el. The author ;; gratefully acknowledge comments and suggestions made by Miles -;; Bader, Eli Zaretski, Richard Stallman, Pavel JanÃk and others which +;; Bader, Eli Zaretskii, Richard Stallman, Pavel JanÃk and others which ;; improved this package. ;;; Code: diff --git a/lisp/generic-x.el b/lisp/generic-x.el index b0ef0439404..cc7963b1711 100644 --- a/lisp/generic-x.el +++ b/lisp/generic-x.el @@ -1,6 +1,6 @@ ;;; generic-x.el --- A collection of generic modes -;; Copyright (C) 1997-1998, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1997-1998, 2001-2012 Free Software Foundation, Inc. ;; Author: Peter Breton <pbreton@cs.umb.edu> ;; Created: Tue Oct 08 1996 diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog index 00b5417fa37..630184a60c5 100644 --- a/lisp/gnus/ChangeLog +++ b/lisp/gnus/ChangeLog @@ -1,3 +1,144 @@ +2012-01-07 Lars Magne Ingebrigtsen <larsi@gnus.org> + + * shr.el (shr-visit-file): Move point to the beginning of the buffer + after rendering. + +2012-01-07 Lars Magne Ingebrigtsen <larsi@gnus.org> + + * gnus-sum.el (gnus-summary-read-group): Document more parameters + (bug#9693). + (gnus-summary-setup-buffer): Document return value (bug#9697). + + * mm-decode.el (mm-interactively-view-part): Use `completing-read', + since ido doesn't work on symbols (bug#9632). + + * gnus.el (gnus-group-fast-parameter): Use the same precedence rules + when getting a single value as when getting all the values. This means + that atoms like `gcc-self' work cumulatively, like variable settings, + instead of getting the value from the last matching clause. + (gnus-group-find-parameter): Protect against the group buffer not + existing (bug#9585). + +2012-01-06 Lars Magne Ingebrigtsen <larsi@gnus.org> + + * gnus-start.el (gnus-activate-group): Document more parameters + (bug#9694). + + * gnus-group.el (gnus-group-read-ephemeral-group): Doc clarification + (bug#9692). + + * gnus-agent.el (gnus-agent-store-article): Tell the Agent when the + article was fetched, so that it can be expired later (bug#9958). + (gnus-agent-summary-fetch-series): Add doc string. + (gnus-agent-summary-fetch-group): Don't remove tick and dormant marks + (bug#9517). + + * nntp.el (nntp-retrieve-groups): Refuse to do retrieval when an async + retrieval is happening. + + * gnus.el (gnus-parameters): Doc fix. + +2012-01-06 Dave Abrahams <dave@boostpro.com> (tiny change) + + * gnus-sum.el (gnus-summary-refer-thread): If the subtree is hidden, + show the thread after expansion. + +2012-01-06 Lars Magne Ingebrigtsen <larsi@gnus.org> + + * gnus-art.el (article-narrow-to-head): If the head is completely + empty, narrow to the empty region (bug#9764). + + * gnus-sum.el (gnus-summary-mark-article-as-unread): Mark articles as + read, and then mark them as unread only when the unread mark is used. + This makes `C-- T k' actually work, even though it's confusing. + + * gnus-win.el (gnus-all-windows-visible-p): Ensure that the buffer is + alive before we try to find its window. + +2012-01-06 Brian Sniffen <bsniffen@akamai.com> (tiny change) + + * mm-decode.el (mm-display-external): Use a longer timeout for the + deletion to allow slow programs to display the file. + +2012-01-06 Lars Magne Ingebrigtsen <larsi@gnus.org> + + * gnus-art.el (gnus-article-browse-delete-temp-files): Fix up the + prompt to be less confusing. + + * gnus-msg.el (gnus-summary-reply): Do not give a `switch-to-buffer' + argument to `message-reply'. This broke `special-display-*' frame + pop-uping (bug#10238). + +2012-01-05 Lars Magne Ingebrigtsen <larsi@gnus.org> + + * starttls.el (starttls-available-p): Return nil on Windows/MS-DOS + systems, since these allegedly don't work there. + +2012-01-04 Chris Gray <chrismgray@gmail.com> (tiny change) + + * mm-decode.el (mm-shr): Check that `gnus-summary-buffer' really is a + live buffer. + +2012-01-04 Lars Magne Ingebrigtsen <larsi@gnus.org> + + * nnir.el (nnir-retrieve-headers): Protect against the article not + existing on the server (bug#10335). + +2012-01-04 Wolfgang Jenkner <wjenkner@inode.at> (tiny change) + + * gnus-agent.el (gnus-agent-load-local): Recompute + gnus-agent-article-local on changing method. + +2012-01-04 Lars Magne Ingebrigtsen <larsi@gnus.org> + + * gnus.el (gnus-parameters): Note precedence. + +2012-01-04 Leo <sdl.web@gmail.com> + + * nndraft.el (nndraft-update-unread-articles): Don't move point around + in the group buffer. + +2012-01-04 Julien Danjou <julien@danjou.info> + + * nnimap.el (nnimap-update-info): Fix an error when all articles UIDs + change. + +2012-01-04 Lars Magne Ingebrigtsen <larsi@gnus.org> + + * shr.el (shr-rescale-image): Add :ascent 100 to the rescaled picture, + too. + + * nntp.el (nntp-retrieve-group-data-early): Use it. + +2012-01-03 Lars Magne Ingebrigtsen <larsi@gnus.org> + + * nntp.el (nntp-retrieval-in-progress): New variable. + (nntp-make-process-buffer): Make it buffer-local. + + * gnus-demon.el (gnus-demon-time-to-step): Resurrect function lost in + 2010. + (gnus-demon-init): Use it to compute the time if time is on the form + "04:23". + + * gnus-topic.el (gnus-topic-history): Define `gnus-topic-history'. + + * nnimap.el (nnimap-finish-retrieve-group-infos): Check the connection + status in the correct buffer. + +2012-01-03 Leo <sdl.web@gmail.com> + + * gnus-topic.el (gnus-topic-goto-next-group): Don't move point around + when opening topics (bug#10407). + +2011-12-28 Katsumi Yamaoka <yamaoka@jpl.org> + + * mm-view.el (mm-display-inline-fontify): Add comment. + +2011-12-15 Juri Linkov <juri@jurta.org> + + * mm-decode.el (mm-inline-media-tests): Add missing + `mm-handle-media-subtype'. + 2011-12-09 Tassilo Horn <tassilo@member.fsf.org> * message.el (message-valid-fqdn-regexp): Update with newly approved @@ -4704,7 +4845,7 @@ 2010-10-24 Lars Magne Ingebrigtsen <larsi@gnus.org> * nnimap.el (nnimap-request-head): New function. - (nnimap-request-move-article): Try to be slighly faster by not + (nnimap-request-move-article): Try to be slightly faster by not requesting the entire message when moving. (nnimap-transform-headers): Don't bug out on bodiless articles. (nnimap-send-command): Have no outstanding messages if the IMAP server @@ -21335,7 +21476,7 @@ (gnus-agent-cat-groups): Use eval-and-compile, not eval-when-compile, to define gnus-agent-set-cat-groups as the setf method of gnus-agent-cat-groups even when the buffer has been - evaled. + evalled. (gnus-agent-save-active, gnus-agent-save-active-1): Merge to delete gnus-agent-save-active-1. (gnus-agent-save-groups): Delete. Identical to @@ -22118,7 +22259,7 @@ See ChangeLog.2 for earlier changes. - Copyright (C) 2004-2011 Free Software Foundation, Inc. + Copyright (C) 2004-2012 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/lisp/gnus/ChangeLog.1 b/lisp/gnus/ChangeLog.1 index a2d6d61efd4..f3ba7bca4d4 100644 --- a/lisp/gnus/ChangeLog.1 +++ b/lisp/gnus/ChangeLog.1 @@ -3708,7 +3708,7 @@ * gnus.el: Quassia Gnus v0.1 is released. - Copyright (C) 1997-2011 Free Software Foundation, Inc. + Copyright (C) 1997-2012 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/lisp/gnus/ChangeLog.2 b/lisp/gnus/ChangeLog.2 index 893ee88e98d..5a3612c4d1c 100644 --- a/lisp/gnus/ChangeLog.2 +++ b/lisp/gnus/ChangeLog.2 @@ -970,9 +970,9 @@ * pgg-gpg.el (pgg-gpg-possibly-cache-passphrase): New optional parameter key, overrides the key id used to store passphrase under (uses true key id from gpg output if nil). - (pgg-gpg-encrypt-region): Search for passphrase using user suplied + (pgg-gpg-encrypt-region): Search for passphrase using user supplied string STR, instead of (pgg-lookup-key STR t). - (pgg-gpg-encrypt-region): Store passphrase under user suplied + (pgg-gpg-encrypt-region): Store passphrase under user supplied string, instead of real key id taken from gpg output. (pgg-gpg-decrypt-region): Likewise. (pgg-gpg-sign-region): Likewise. @@ -8442,7 +8442,7 @@ 2002-07-21 Nevin Kapur <nevin@jhu.edu> - * nnmail.el (nnmail-fancy-expiry-target): Treat nonexisting + * nnmail.el (nnmail-fancy-expiry-target): Treat nonexistent headers as empty headers. 2002-07-21 Jochen Hein <jochen@jochen.org> @@ -18553,7 +18553,7 @@ See ChangeLog.1 for earlier changes. - Copyright (C) 2000-2002, 2004-2011 Free Software Foundation, Inc. + Copyright (C) 2000-2002, 2004-2012 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/lisp/gnus/auth-source.el b/lisp/gnus/auth-source.el index 4269b79a6a7..acbc541512f 100644 --- a/lisp/gnus/auth-source.el +++ b/lisp/gnus/auth-source.el @@ -1,6 +1,6 @@ ;;; auth-source.el --- authentication sources for Gnus and Emacs -;; Copyright (C) 2008-2011 Free Software Foundation, Inc. +;; Copyright (C) 2008-2012 Free Software Foundation, Inc. ;; Author: Ted Zlatanov <tzz@lifelogs.com> ;; Keywords: news diff --git a/lisp/gnus/canlock.el b/lisp/gnus/canlock.el index 5727bef37ef..e3ad1ae005f 100644 --- a/lisp/gnus/canlock.el +++ b/lisp/gnus/canlock.el @@ -1,6 +1,6 @@ ;;; canlock.el --- functions for Cancel-Lock feature -;; Copyright (C) 1998-1999, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1998-1999, 2001-2012 Free Software Foundation, Inc. ;; Author: Katsumi Yamaoka <yamaoka@jpl.org> ;; Keywords: news, cancel-lock, hmac, sha1, rfc2104 diff --git a/lisp/gnus/compface.el b/lisp/gnus/compface.el index e132f736269..eb125e20995 100644 --- a/lisp/gnus/compface.el +++ b/lisp/gnus/compface.el @@ -1,6 +1,6 @@ ;;; compface.el --- functions for converting X-Face headers -;; Copyright (C) 2002-2011 Free Software Foundation, Inc. +;; Copyright (C) 2002-2012 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; Keywords: news diff --git a/lisp/gnus/deuglify.el b/lisp/gnus/deuglify.el index 1e2a566f72d..e99644a7c20 100644 --- a/lisp/gnus/deuglify.el +++ b/lisp/gnus/deuglify.el @@ -1,6 +1,6 @@ ;;; deuglify.el --- deuglify broken Outlook (Express) articles -;; Copyright (C) 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 2001-2012 Free Software Foundation, Inc. ;; Author: Raymond Scholz <rscholz@zonix.de> ;; Thomas Steffen diff --git a/lisp/gnus/ecomplete.el b/lisp/gnus/ecomplete.el index 5d1c46bc2f6..eab8e6cdfb4 100644 --- a/lisp/gnus/ecomplete.el +++ b/lisp/gnus/ecomplete.el @@ -1,6 +1,6 @@ ;;; ecomplete.el --- electric completion of addresses and the like -;; Copyright (C) 2006-2011 Free Software Foundation, Inc. +;; Copyright (C) 2006-2012 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; Keywords: mail diff --git a/lisp/gnus/flow-fill.el b/lisp/gnus/flow-fill.el index cdaebbd6837..62e49f8f9ad 100644 --- a/lisp/gnus/flow-fill.el +++ b/lisp/gnus/flow-fill.el @@ -1,6 +1,6 @@ ;;; flow-fill.el --- interpret RFC2646 "flowed" text -;; Copyright (C) 2000-2011 Free Software Foundation, Inc. +;; Copyright (C) 2000-2012 Free Software Foundation, Inc. ;; Author: Simon Josefsson <jas@pdc.kth.se> ;; Keywords: mail diff --git a/lisp/gnus/gmm-utils.el b/lisp/gnus/gmm-utils.el index 3ee72bc5fc6..347f34b3228 100644 --- a/lisp/gnus/gmm-utils.el +++ b/lisp/gnus/gmm-utils.el @@ -1,6 +1,6 @@ ;;; gmm-utils.el --- Utility functions for Gnus, Message and MML -;; Copyright (C) 2006-2011 Free Software Foundation, Inc. +;; Copyright (C) 2006-2012 Free Software Foundation, Inc. ;; Author: Reiner Steib <reiner.steib@gmx.de> ;; Keywords: news diff --git a/lisp/gnus/gnus-agent.el b/lisp/gnus/gnus-agent.el index bf7f31e6392..70772bb1d0d 100644 --- a/lisp/gnus/gnus-agent.el +++ b/lisp/gnus/gnus-agent.el @@ -1,6 +1,6 @@ ;;; gnus-agent.el --- unplugged support for Gnus -;; Copyright (C) 1997-2011 Free Software Foundation, Inc. +;; Copyright (C) 1997-2012 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; This file is part of GNU Emacs. @@ -1181,6 +1181,7 @@ downloadable." (gnus-summary-position-point))) (defun gnus-agent-summary-fetch-series () + "Fetch the process-marked articles into the Agent." (interactive) (when gnus-newsgroup-processable (setq gnus-newsgroup-downloadable @@ -1228,8 +1229,9 @@ Optional arg ALL, if non-nil, means to fetch all articles." (cond (gnus-agent-mark-unread-after-downloaded (setq gnus-newsgroup-downloadable (delq article gnus-newsgroup-downloadable)) - - (gnus-summary-mark-article article gnus-unread-mark)) + (when (and (not (member article gnus-newsgroup-dormant)) + (not (member article gnus-newsgroup-marked))) + (gnus-summary-mark-article article gnus-unread-mark))) (was-marked-downloadable (gnus-summary-set-agent-mark article t))) (when (gnus-summary-goto-subject article nil t) @@ -2229,7 +2231,10 @@ doesn't exist, to valid the overview buffer." article counts for each of the method's subscribed groups." (let ((gnus-command-method (or method gnus-command-method))) (when (or (null gnus-agent-article-local-times) - (zerop gnus-agent-article-local-times)) + (zerop gnus-agent-article-local-times) + (not (gnus-methods-equal-p + gnus-command-method + (symbol-value (intern "+method" gnus-agent-article-local))))) (setq gnus-agent-article-local (gnus-cache-file-contents (gnus-agent-lib-file "local") @@ -3885,7 +3890,12 @@ has been fetched." (coding-system-for-write gnus-cache-coding-system)) (when (not (file-exists-p file)) (gnus-make-directory (file-name-directory file)) - (write-region (point-min) (point-max) file nil 'silent)))) + (write-region (point-min) (point-max) file nil 'silent) + ;; Tell the Agent when the article was fetched, so that it can + ;; be expired later. + (gnus-agent-load-alist group) + (gnus-agent-save-alist group (list article) + (time-to-days (current-time)))))) (defun gnus-agent-regenerate-group (group &optional reread) "Regenerate GROUP. @@ -4031,7 +4041,7 @@ If REREAD is not nil, downloaded articles are marked as unread." ;; gnus-agent-regenerate-group can remove the article ID of every ;; article (with the exception of the last ID in the list - it's ;; special) that no longer appears in the overview. In this - ;; situtation, the last article ID in the list implies that it, + ;; situation, the last article ID in the list implies that it, ;; and every article ID preceding it, have been fetched from the ;; server. diff --git a/lisp/gnus/gnus-art.el b/lisp/gnus/gnus-art.el index 555c715bc2f..b282afd961c 100644 --- a/lisp/gnus/gnus-art.el +++ b/lisp/gnus/gnus-art.el @@ -1,6 +1,6 @@ ;;; gnus-art.el --- article mode commands for Gnus -;; Copyright (C) 1996-2011 Free Software Foundation, Inc. +;; Copyright (C) 1996-2012 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; Keywords: news @@ -669,7 +669,7 @@ 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 be @@ -2785,10 +2785,11 @@ summary buffer." (or how (setq how gnus-article-browse-delete-temp)) (if (eq how 'ask) (let ((files (length gnus-article-browse-html-temp-list))) - (gnus-y-or-n-p (format - "Delete all %s temporary HTML file%s? " - files - (if (> files 1) "s" "")))) + (gnus-y-or-n-p + (if (= files 1) + "Delete the temporary HTML file? " + (format "Delete all %s temporary HTML files? " + files)))) how))) (dolist (file gnus-article-browse-html-temp-list) (cond ((file-directory-p file) @@ -3239,9 +3240,16 @@ always hide." Point is left at the beginning of the narrowed-to region." (narrow-to-region (goto-char (point-min)) - (if (search-forward "\n\n" nil 1) - (1- (point)) - (point-max))) + (cond + ;; Absolutely no headers displayed. + ((looking-at "\n") + (point)) + ;; Normal headers. + ((search-forward "\n\n" nil 1) + (1- (point))) + ;; Nothing but headers. + (t + (point-max)))) (goto-char (point-min))) (defun article-goto-body () diff --git a/lisp/gnus/gnus-async.el b/lisp/gnus/gnus-async.el index ad85bc5cf76..378b0e063cb 100644 --- a/lisp/gnus/gnus-async.el +++ b/lisp/gnus/gnus-async.el @@ -1,6 +1,6 @@ ;;; gnus-async.el --- asynchronous support for Gnus -;; Copyright (C) 1996-2011 Free Software Foundation, Inc. +;; Copyright (C) 1996-2012 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; Keywords: news diff --git a/lisp/gnus/gnus-bcklg.el b/lisp/gnus/gnus-bcklg.el index d3fee3538b8..fdf868d8e21 100644 --- a/lisp/gnus/gnus-bcklg.el +++ b/lisp/gnus/gnus-bcklg.el @@ -1,6 +1,6 @@ ;;; gnus-bcklg.el --- backlog functions for Gnus -;; Copyright (C) 1996-2011 Free Software Foundation, Inc. +;; Copyright (C) 1996-2012 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; Keywords: news diff --git a/lisp/gnus/gnus-bookmark.el b/lisp/gnus/gnus-bookmark.el index f86c94571a7..9f6654dd12d 100644 --- a/lisp/gnus/gnus-bookmark.el +++ b/lisp/gnus/gnus-bookmark.el @@ -1,6 +1,6 @@ ;;; gnus-bookmark.el --- Bookmarks in Gnus -;; Copyright (C) 2006-2011 Free Software Foundation, Inc. +;; Copyright (C) 2006-2012 Free Software Foundation, Inc. ;; Author: Bastien Guerry <bzg AT altern DOT org> ;; Keywords: news diff --git a/lisp/gnus/gnus-cache.el b/lisp/gnus/gnus-cache.el index 203368f76e2..3dd236545a1 100644 --- a/lisp/gnus/gnus-cache.el +++ b/lisp/gnus/gnus-cache.el @@ -1,6 +1,6 @@ ;;; gnus-cache.el --- cache interface for Gnus -;; Copyright (C) 1995-2011 Free Software Foundation, Inc. +;; Copyright (C) 1995-2012 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; Keywords: news diff --git a/lisp/gnus/gnus-cite.el b/lisp/gnus/gnus-cite.el index 7c36311356f..c7443446ceb 100644 --- a/lisp/gnus/gnus-cite.el +++ b/lisp/gnus/gnus-cite.el @@ -1,6 +1,6 @@ ;;; gnus-cite.el --- parse citations in articles for Gnus -;; Copyright (C) 1995-2011 Free Software Foundation, Inc. +;; Copyright (C) 1995-2012 Free Software Foundation, Inc. ;; Author: Per Abhiddenware diff --git a/lisp/gnus/gnus-cus.el b/lisp/gnus/gnus-cus.el index 98f04263571..234d0f7ae56 100644 --- a/lisp/gnus/gnus-cus.el +++ b/lisp/gnus/gnus-cus.el @@ -1,6 +1,6 @@ ;;; gnus-cus.el --- customization commands for Gnus -;; Copyright (C) 1996, 1999-2011 Free Software Foundation, Inc. +;; Copyright (C) 1996, 1999-2012 Free Software Foundation, Inc. ;; Author: Per Abrahamsen <abraham@dina.kvl.dk> ;; Keywords: news @@ -922,7 +922,7 @@ will add a new `thread' match for each article that has X in its `Message-ID's of these matching articles.) This will ensure that you can raise/lower the score of an entire thread, even though some articles in the thread may not have complete `References' headers. -Note that using this may lead to undeterministic scores of the +Note that using this may lead to nondeterministic scores of the articles in the thread. ") ,@types) diff --git a/lisp/gnus/gnus-delay.el b/lisp/gnus/gnus-delay.el index c632cab422f..9c27b2c74a9 100644 --- a/lisp/gnus/gnus-delay.el +++ b/lisp/gnus/gnus-delay.el @@ -1,6 +1,6 @@ ;;; gnus-delay.el --- Delayed posting of articles -;; Copyright (C) 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 2001-2012 Free Software Foundation, Inc. ;; Author: Kai Großjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE> ;; Keywords: mail, news, extensions diff --git a/lisp/gnus/gnus-demon.el b/lisp/gnus/gnus-demon.el index 419346b7191..2f9952241aa 100644 --- a/lisp/gnus/gnus-demon.el +++ b/lisp/gnus/gnus-demon.el @@ -1,6 +1,6 @@ ;;; gnus-demon.el --- daemonic Gnus behavior -;; Copyright (C) 1995-2011 Free Software Foundation, Inc. +;; Copyright (C) 1995-2012 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; Keywords: news @@ -120,8 +120,12 @@ Emacs has been idle for IDLE `gnus-demon-timestep's." ;; If t, replace by 1 (time (cond ((eq time t) gnus-demon-timestep) - ((null time) nil) - (t (* time gnus-demon-timestep)))) + ((null time) + nil) + ((stringp time) + (gnus-demon-time-to-step time)) + (t + (* time gnus-demon-timestep)))) (timer (cond ;; (func number t) @@ -144,6 +148,38 @@ Emacs has been idle for IDLE `gnus-demon-timestep's." (when timer (add-to-list 'gnus-demon-timers timer))))) +(defun gnus-demon-time-to-step (time) + "Find out how many seconds to TIME, which is on the form \"17:43\"." + (let* ((now (current-time)) + ;; obtain NOW as discrete components -- make a vector for speed + (nowParts (decode-time now)) + ;; obtain THEN as discrete components + (thenParts (parse-time-string time)) + (thenHour (elt thenParts 2)) + (thenMin (elt thenParts 1)) + ;; convert time as elements into number of seconds since EPOCH. + (then (encode-time 0 + thenMin + thenHour + ;; If THEN is earlier than NOW, make it + ;; same time tomorrow. Doc for encode-time + ;; says that this is OK. + (+ (elt nowParts 3) + (if (or (< thenHour (elt nowParts 2)) + (and (= thenHour (elt nowParts 2)) + (<= thenMin (elt nowParts 1)))) + 1 0)) + (elt nowParts 4) + (elt nowParts 5) + (elt nowParts 6) + (elt nowParts 7) + (elt nowParts 8))) + ;; calculate number of seconds between NOW and THEN + (diff (+ (* 65536 (- (car then) (car now))) + (- (cadr then) (cadr now))))) + ;; return number of timesteps in the number of seconds + (round (/ diff gnus-demon-timestep)))) + (gnus-add-shutdown 'gnus-demon-cancel 'gnus) (defun gnus-demon-cancel () diff --git a/lisp/gnus/gnus-diary.el b/lisp/gnus/gnus-diary.el index 9f86e74bd99..854af2f5d76 100644 --- a/lisp/gnus/gnus-diary.el +++ b/lisp/gnus/gnus-diary.el @@ -1,6 +1,6 @@ ;;; gnus-diary.el --- Wrapper around the NNDiary Gnus back end -;; Copyright (C) 1999-2011 Free Software Foundation, Inc. +;; Copyright (C) 1999-2012 Free Software Foundation, Inc. ;; Author: Didier Verna <didier@xemacs.org> ;; Maintainer: Didier Verna <didier@xemacs.org> diff --git a/lisp/gnus/gnus-dired.el b/lisp/gnus/gnus-dired.el index b4d23ff579c..d341cea34bb 100644 --- a/lisp/gnus/gnus-dired.el +++ b/lisp/gnus/gnus-dired.el @@ -1,6 +1,6 @@ ;;; gnus-dired.el --- utility functions where gnus and dired meet -;; Copyright (C) 1996-1999, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1996-1999, 2001-2012 Free Software Foundation, Inc. ;; Authors: Benjamin Rutt <brutt@bloomington.in.us>, ;; Shenghuo Zhu <zsh@cs.rochester.edu> diff --git a/lisp/gnus/gnus-draft.el b/lisp/gnus/gnus-draft.el index 40f5abda4f8..13b3cbb862f 100644 --- a/lisp/gnus/gnus-draft.el +++ b/lisp/gnus/gnus-draft.el @@ -1,6 +1,6 @@ ;;; gnus-draft.el --- draft message support for Gnus -;; Copyright (C) 1997-2011 Free Software Foundation, Inc. +;; Copyright (C) 1997-2012 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; Keywords: news diff --git a/lisp/gnus/gnus-dup.el b/lisp/gnus/gnus-dup.el index 8db1905ef8b..313a230e836 100644 --- a/lisp/gnus/gnus-dup.el +++ b/lisp/gnus/gnus-dup.el @@ -1,6 +1,6 @@ ;;; gnus-dup.el --- suppression of duplicate articles in Gnus -;; Copyright (C) 1996-2011 Free Software Foundation, Inc. +;; Copyright (C) 1996-2012 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; Keywords: news diff --git a/lisp/gnus/gnus-eform.el b/lisp/gnus/gnus-eform.el index 4075e7a7625..f1a19e2e2d9 100644 --- a/lisp/gnus/gnus-eform.el +++ b/lisp/gnus/gnus-eform.el @@ -1,6 +1,6 @@ ;;; gnus-eform.el --- a mode for editing forms for Gnus -;; Copyright (C) 1996-2011 Free Software Foundation, Inc. +;; Copyright (C) 1996-2012 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; Keywords: news diff --git a/lisp/gnus/gnus-ems.el b/lisp/gnus/gnus-ems.el index 5acc9d117e4..8b70a7a0989 100644 --- a/lisp/gnus/gnus-ems.el +++ b/lisp/gnus/gnus-ems.el @@ -1,6 +1,6 @@ ;;; gnus-ems.el --- functions for making Gnus work under different Emacsen -;; Copyright (C) 1995-2011 Free Software Foundation, Inc. +;; Copyright (C) 1995-2012 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; Keywords: news diff --git a/lisp/gnus/gnus-fun.el b/lisp/gnus/gnus-fun.el index 44cb1583ec9..1cd5ce5bb1e 100644 --- a/lisp/gnus/gnus-fun.el +++ b/lisp/gnus/gnus-fun.el @@ -1,6 +1,6 @@ ;;; gnus-fun.el --- various frivolous extension functions to Gnus -;; Copyright (C) 2002-2011 Free Software Foundation, Inc. +;; Copyright (C) 2002-2012 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; Keywords: news diff --git a/lisp/gnus/gnus-gravatar.el b/lisp/gnus/gnus-gravatar.el index 98b1f3bd18c..b6e760b1d0b 100644 --- a/lisp/gnus/gnus-gravatar.el +++ b/lisp/gnus/gnus-gravatar.el @@ -1,6 +1,6 @@ ;;; gnus-gravatar.el --- Gnus Gravatar support -;; Copyright (C) 2010-2011 Free Software Foundation, Inc. +;; Copyright (C) 2010-2012 Free Software Foundation, Inc. ;; Author: Julien Danjou <julien@danjou.info> ;; Keywords: news diff --git a/lisp/gnus/gnus-group.el b/lisp/gnus/gnus-group.el index 694b4d7e8b4..3327bbea5a0 100644 --- a/lisp/gnus/gnus-group.el +++ b/lisp/gnus/gnus-group.el @@ -1,6 +1,6 @@ ;;; gnus-group.el --- group mode commands for Gnus -;; Copyright (C) 1996-2011 Free Software Foundation, Inc. +;; Copyright (C) 1996-2012 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; Keywords: news @@ -992,7 +992,7 @@ Setter function for custom variables." 'gnus-group-tool-bar-retro) "Specifies the Gnus group tool bar. -It can be either a list or a symbol refering to a list. See +It can be either a list or a symbol referring to a list. See `gmm-tool-bar-from-list' for the format of the list. The default key map is `gnus-group-mode-map'. @@ -2277,8 +2277,8 @@ confirmation is required." number) "Read GROUP from METHOD as an ephemeral group. If ACTIVATE, request the group first. -If QUIT-CONFIG, use that window configuration when exiting from the -ephemeral group. +If QUIT-CONFIG, use that Gnus window configuration name when +exiting from the ephemeral group. If REQUEST-ONLY, don't actually read the group; just request it. If SELECT-ARTICLES, only select those articles. If PARAMETERS, use those as the group parameters. diff --git a/lisp/gnus/gnus-html.el b/lisp/gnus/gnus-html.el index f443c4021e2..5bbb9e10e04 100644 --- a/lisp/gnus/gnus-html.el +++ b/lisp/gnus/gnus-html.el @@ -1,6 +1,6 @@ ;;; gnus-html.el --- Render HTML in a buffer. -;; Copyright (C) 2010-2011 Free Software Foundation, Inc. +;; Copyright (C) 2010-2012 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; Keywords: html, web diff --git a/lisp/gnus/gnus-int.el b/lisp/gnus/gnus-int.el index 2e102634727..20add470abe 100644 --- a/lisp/gnus/gnus-int.el +++ b/lisp/gnus/gnus-int.el @@ -1,6 +1,6 @@ ;;; gnus-int.el --- backend interface functions for Gnus -;; Copyright (C) 1996-2011 Free Software Foundation, Inc. +;; Copyright (C) 1996-2012 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; Keywords: news @@ -356,7 +356,7 @@ If it is down, start it up (again)." infos data)) (defun gnus-retrieve-group-data-early (gnus-command-method infos) - "Start early async retrival of data from GNUS-COMMAND-METHOD." + "Start early async retrieval of data from GNUS-COMMAND-METHOD." (when (stringp gnus-command-method) (setq gnus-command-method (gnus-server-to-method gnus-command-method))) (funcall (gnus-get-function gnus-command-method 'retrieve-group-data-early) @@ -396,7 +396,7 @@ If it is down, start it up (again)." result)) (defun gnus-request-compact (gnus-command-method) - "Request groups compaction from GNUS-COMMAND-METHOD." + "Request groups compaction from GNUS-COMMAND-METHOD." (when (stringp gnus-command-method) (setq gnus-command-method (gnus-server-to-method gnus-command-method))) (funcall (gnus-get-function gnus-command-method 'request-compact) diff --git a/lisp/gnus/gnus-kill.el b/lisp/gnus/gnus-kill.el index fdbe125ff10..e70b9b8e73a 100644 --- a/lisp/gnus/gnus-kill.el +++ b/lisp/gnus/gnus-kill.el @@ -1,6 +1,6 @@ ;;; gnus-kill.el --- kill commands for Gnus -;; Copyright (C) 1995-2011 Free Software Foundation, Inc. +;; Copyright (C) 1995-2012 Free Software Foundation, Inc. ;; Author: Masanobu UMEDA <umerin@flab.flab.fujitsu.junet> ;; Lars Magne Ingebrigtsen <larsi@gnus.org> diff --git a/lisp/gnus/gnus-logic.el b/lisp/gnus/gnus-logic.el index 51b44e6052d..954295438c9 100644 --- a/lisp/gnus/gnus-logic.el +++ b/lisp/gnus/gnus-logic.el @@ -1,6 +1,6 @@ ;;; gnus-logic.el --- advanced scoring code for Gnus -;; Copyright (C) 1996-2011 Free Software Foundation, Inc. +;; Copyright (C) 1996-2012 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; Keywords: news diff --git a/lisp/gnus/gnus-mh.el b/lisp/gnus/gnus-mh.el index 1c9d31ab6c4..874a1dc3bb4 100644 --- a/lisp/gnus/gnus-mh.el +++ b/lisp/gnus/gnus-mh.el @@ -1,6 +1,6 @@ ;;; gnus-mh.el --- mh-e interface for Gnus -;; Copyright (C) 1994-2011 Free Software Foundation, Inc. +;; Copyright (C) 1994-2012 Free Software Foundation, Inc. ;; Author: Masanobu UMEDA <umerin@flab.flab.fujitsu.junet> ;; Lars Magne Ingebrigtsen <larsi@gnus.org> diff --git a/lisp/gnus/gnus-ml.el b/lisp/gnus/gnus-ml.el index d99680f5924..d78d6b7a92f 100644 --- a/lisp/gnus/gnus-ml.el +++ b/lisp/gnus/gnus-ml.el @@ -1,6 +1,6 @@ ;;; gnus-ml.el --- Mailing list minor mode for Gnus -;; Copyright (C) 2000-2011 Free Software Foundation, Inc. +;; Copyright (C) 2000-2012 Free Software Foundation, Inc. ;; Author: Julien Gilles <jgilles@free.fr> ;; Keywords: news, mail diff --git a/lisp/gnus/gnus-mlspl.el b/lisp/gnus/gnus-mlspl.el index ccc145b7e29..3086e2b8dfa 100644 --- a/lisp/gnus/gnus-mlspl.el +++ b/lisp/gnus/gnus-mlspl.el @@ -1,6 +1,6 @@ ;;; gnus-mlspl.el --- a group params-based mail splitting mechanism -;; Copyright (C) 1998-2011 Free Software Foundation, Inc. +;; Copyright (C) 1998-2012 Free Software Foundation, Inc. ;; Author: Alexandre Oliva <oliva@lsd.ic.unicamp.br> ;; Keywords: news, mail diff --git a/lisp/gnus/gnus-msg.el b/lisp/gnus/gnus-msg.el index 58373525f96..c825c4251bb 100644 --- a/lisp/gnus/gnus-msg.el +++ b/lisp/gnus/gnus-msg.el @@ -1,6 +1,6 @@ ;;; gnus-msg.el --- mail and post interface for Gnus -;; Copyright (C) 1995-2011 Free Software Foundation, Inc. +;; Copyright (C) 1995-2012 Free Software Foundation, Inc. ;; Author: Masanobu UMEDA <umerin@flab.flab.fujitsu.junet> ;; Lars Magne Ingebrigtsen <larsi@gnus.org> @@ -1129,7 +1129,7 @@ If VERY-WIDE, make a very wide reply." (insert headers)) (goto-char (point-max))) (mml-quote-region (point) (point-max)) - (message-reply nil wide 'switch-to-buffer) + (message-reply nil wide) (when yank (gnus-inews-yank-articles yank)) (gnus-summary-handle-replysign))))) @@ -1784,7 +1784,7 @@ this is a reply." (and header (string-match (nth 2 match) header))))))) (t - ;; This is a form to be evaled. + ;; This is a form to be evalled. (eval match))))) ;; We have a match, so we set the variables. (dolist (attribute style) diff --git a/lisp/gnus/gnus-picon.el b/lisp/gnus/gnus-picon.el index dc6feeec0ab..69b65dfcb03 100644 --- a/lisp/gnus/gnus-picon.el +++ b/lisp/gnus/gnus-picon.el @@ -1,6 +1,6 @@ ;;; gnus-picon.el --- displaying pretty icons in Gnus -;; Copyright (C) 1996-2011 Free Software Foundation, Inc. +;; Copyright (C) 1996-2012 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; Keywords: news xpm annotation glyph faces diff --git a/lisp/gnus/gnus-range.el b/lisp/gnus/gnus-range.el index ce5a837eaef..b80f177fb61 100644 --- a/lisp/gnus/gnus-range.el +++ b/lisp/gnus/gnus-range.el @@ -1,6 +1,6 @@ ;;; gnus-range.el --- range and sequence functions for Gnus -;; Copyright (C) 1996-2011 Free Software Foundation, Inc. +;; Copyright (C) 1996-2012 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; Keywords: news diff --git a/lisp/gnus/gnus-registry.el b/lisp/gnus/gnus-registry.el index d25b8b1d24b..9df6dc4ab6f 100644 --- a/lisp/gnus/gnus-registry.el +++ b/lisp/gnus/gnus-registry.el @@ -1,6 +1,6 @@ ;;; gnus-registry.el --- article registry for Gnus -;; Copyright (C) 2002-2011 Free Software Foundation, Inc. +;; Copyright (C) 2002-2012 Free Software Foundation, Inc. ;; Author: Ted Zlatanov <tzz@lifelogs.com> ;; Keywords: news registry diff --git a/lisp/gnus/gnus-salt.el b/lisp/gnus/gnus-salt.el index 43a8eba4bed..6d165fb72dd 100644 --- a/lisp/gnus/gnus-salt.el +++ b/lisp/gnus/gnus-salt.el @@ -1,6 +1,6 @@ ;;; gnus-salt.el --- alternate summary mode interfaces for Gnus -;; Copyright (C) 1996-1999, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1996-1999, 2001-2012 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; Keywords: news diff --git a/lisp/gnus/gnus-score.el b/lisp/gnus/gnus-score.el index d8e424eacc8..8f06359ace8 100644 --- a/lisp/gnus/gnus-score.el +++ b/lisp/gnus/gnus-score.el @@ -1,6 +1,6 @@ ;;; gnus-score.el --- scoring code for Gnus -;; Copyright (C) 1995-2011 Free Software Foundation, Inc. +;; Copyright (C) 1995-2012 Free Software Foundation, Inc. ;; Author: Per Abrahamsen <amanda@iesd.auc.dk> ;; Lars Magne Ingebrigtsen <larsi@gnus.org> diff --git a/lisp/gnus/gnus-setup.el b/lisp/gnus/gnus-setup.el index bd7c3a77c36..67c8df6e41f 100644 --- a/lisp/gnus/gnus-setup.el +++ b/lisp/gnus/gnus-setup.el @@ -1,6 +1,6 @@ ;;; gnus-setup.el --- Initialization & Setup for Gnus 5 -;; Copyright (C) 1995-1996, 2000-2011 Free Software Foundation, Inc. +;; Copyright (C) 1995-1996, 2000-2012 Free Software Foundation, Inc. ;; Author: Steven L. Baur <steve@miranova.com> ;; Keywords: news diff --git a/lisp/gnus/gnus-sieve.el b/lisp/gnus/gnus-sieve.el index 376dd4277a0..3f600146cbf 100644 --- a/lisp/gnus/gnus-sieve.el +++ b/lisp/gnus/gnus-sieve.el @@ -1,6 +1,6 @@ ;;; gnus-sieve.el --- Utilities to manage sieve scripts for Gnus -;; Copyright (C) 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 2001-2012 Free Software Foundation, Inc. ;; Author: NAGY Andras <nagya@inf.elte.hu>, ;; Simon Josefsson <simon@josefsson.org> diff --git a/lisp/gnus/gnus-spec.el b/lisp/gnus/gnus-spec.el index 2345c4fc141..e1879202ef3 100644 --- a/lisp/gnus/gnus-spec.el +++ b/lisp/gnus/gnus-spec.el @@ -1,6 +1,6 @@ ;;; gnus-spec.el --- format spec functions for Gnus -;; Copyright (C) 1996-2011 Free Software Foundation, Inc. +;; Copyright (C) 1996-2012 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; Keywords: news @@ -52,7 +52,7 @@ text properties. This is only needed on XEmacs, as Emacs does this anyway." (defvar gnus-group-indentation "") ;; Format specs. The chunks below are the machine-generated forms -;; that are to be evaled as the result of the default format strings. +;; that are to be evalled as the result of the default format strings. ;; We write them in here to get them byte-compiled. That way the ;; default actions will be quite fast, while still retaining the full ;; flexibility of the user-defined format specs. @@ -690,7 +690,7 @@ are supported for %s." (not (and (featurep 'xemacs) gnus-use-correct-string-widths))) (insert (number-to-string pad-width))) - ;; Create the form to be evaled. + ;; Create the form to be evalled. (if (or max-width cut-width ignore-value (and (featurep 'xemacs) gnus-use-correct-string-widths)) diff --git a/lisp/gnus/gnus-srvr.el b/lisp/gnus/gnus-srvr.el index 2d8587ace3f..34a16a21dc5 100644 --- a/lisp/gnus/gnus-srvr.el +++ b/lisp/gnus/gnus-srvr.el @@ -1,6 +1,6 @@ ;;; gnus-srvr.el --- virtual server support for Gnus -;; Copyright (C) 1995-2011 Free Software Foundation, Inc. +;; Copyright (C) 1995-2012 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; Keywords: news diff --git a/lisp/gnus/gnus-start.el b/lisp/gnus/gnus-start.el index 3a9294d58d6..07409162ab8 100644 --- a/lisp/gnus/gnus-start.el +++ b/lisp/gnus/gnus-start.el @@ -1,6 +1,6 @@ ;;; gnus-start.el --- startup functions for Gnus -;; Copyright (C) 1996-2011 Free Software Foundation, Inc. +;; Copyright (C) 1996-2012 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; Keywords: news @@ -1451,7 +1451,11 @@ newsgroup." (defun gnus-activate-group (group &optional scan dont-check method dont-sub-check) "Check whether a group has been activated or not. -If SCAN, request a scan of that group as well." +If SCAN, request a scan of that group as well. If METHOD, use +that select method instead of determining the method based on the +group name. If DONT-CHECK, don't check check whether the group +actually exists. If DONT-SUB-CHECK or DONT-CHECK, don't let the +backend check whether the group actually exists." (let ((method (or method (inline (gnus-find-method-for-group group)))) active) (and (inline (gnus-check-server method)) diff --git a/lisp/gnus/gnus-sum.el b/lisp/gnus/gnus-sum.el index 17ccae986e9..878a96b9264 100644 --- a/lisp/gnus/gnus-sum.el +++ b/lisp/gnus/gnus-sum.el @@ -1,6 +1,6 @@ ;;; gnus-sum.el --- summary mode commands for Gnus -;; Copyright (C) 1996-2011 Free Software Foundation, Inc. +;; Copyright (C) 1996-2012 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; Keywords: news @@ -2835,7 +2835,7 @@ Setter function for custom variables." 'gnus-summary-tool-bar-retro) "Specifies the Gnus summary tool bar. -It can be either a list or a symbol refering to a list. See +It can be either a list or a symbol referring to a list. See `gmm-tool-bar-from-list' for the format of the list. The default key map is `gnus-summary-mode-map'. @@ -3503,7 +3503,8 @@ display only a single character." (current-buffer)))))) (defun gnus-summary-setup-buffer (group) - "Initialize summary buffer." + "Initialize summary buffer. +If the setup was successful, non-nil is returned." (let ((buffer (gnus-summary-buffer-name group)) (dead-name (concat "*Dead Summary " (gnus-group-decoded-name group) "*"))) @@ -3931,7 +3932,11 @@ Input should look like this: \"Sun, 14 Oct 2001 13:34:39 +0200\"." "Start reading news in newsgroup GROUP. If SHOW-ALL is non-nil, already read articles are also listed. If NO-ARTICLE is non-nil, no article is selected initially. -If NO-DISPLAY, don't generate a summary buffer." +If NO-DISPLAY, don't generate the summary buffer contents. +If KILL-BUFFER, it should be a buffer that's killed once the new +summary buffer has been generated. +If BACKWARD, move point to the previous group in the group buffer +If SELECT-ARTICLES, only select those articles from GROUP." (let (result) (while (and group (null (setq result @@ -4257,7 +4262,7 @@ If NO-DISPLAY, don't generate a summary buffer." result)) (defun gnus-sort-gathered-threads (threads) - "Sort subtreads inside each gathered thread by `gnus-sort-gathered-threads-function'." + "Sort subthreads inside each gathered thread by `gnus-sort-gathered-threads-function'." (let ((result threads)) (while threads (when (stringp (caar threads)) @@ -9032,7 +9037,8 @@ non-numeric or nil fetch the number specified by the 'gnus-article-sort-by-number))) (setq gnus-newsgroup-articles (gnus-sorted-nunion gnus-newsgroup-articles (nreverse article-ids))) - (gnus-summary-limit-include-thread id)))) + (gnus-summary-limit-include-thread id))) + (gnus-summary-show-thread)) (defun gnus-summary-refer-article (message-id) "Fetch an article specified by MESSAGE-ID." @@ -10886,6 +10892,7 @@ If NO-EXPIRE, auto-expiry will be inhibited." (setq gnus-newsgroup-dormant (delq article gnus-newsgroup-dormant)) (setq gnus-newsgroup-expirable (delq article gnus-newsgroup-expirable)) (setq gnus-newsgroup-reads (delq article gnus-newsgroup-reads)) + (setq gnus-newsgroup-unreads (delq article gnus-newsgroup-unreads)) (cond ((= mark gnus-ticked-mark) (setq gnus-newsgroup-marked (gnus-add-to-sorted-list gnus-newsgroup-marked diff --git a/lisp/gnus/gnus-sync.el b/lisp/gnus/gnus-sync.el index fbdacdd2fbe..6efd34e1596 100644 --- a/lisp/gnus/gnus-sync.el +++ b/lisp/gnus/gnus-sync.el @@ -1,6 +1,6 @@ ;;; gnus-sync.el --- synchronization facility for Gnus -;; Copyright (C) 2010-2011 Free Software Foundation, Inc. +;; Copyright (C) 2010-2012 Free Software Foundation, Inc. ;; Author: Ted Zlatanov <tzz@lifelogs.com> ;; Keywords: news synchronization nntp nnrss diff --git a/lisp/gnus/gnus-topic.el b/lisp/gnus/gnus-topic.el index 87ca27adcf4..0c6c2d36f83 100644 --- a/lisp/gnus/gnus-topic.el +++ b/lisp/gnus/gnus-topic.el @@ -1,6 +1,6 @@ ;;; gnus-topic.el --- a folding minor mode for Gnus group buffers -;; Copyright (C) 1995-2011 Free Software Foundation, Inc. +;; Copyright (C) 1995-2012 Free Software Foundation, Inc. ;; Author: Ilja Weis <kult@uni-paderborn.de> ;; Lars Magne Ingebrigtsen <larsi@gnus.org> @@ -969,12 +969,15 @@ articles in the topic and its subtopics." (if (not group) (if (not (memq 'gnus-topic props)) (goto-char (point-max)) - (gnus-topic-goto-topic (symbol-name (cadr (memq 'gnus-topic props))))) + (let ((topic (symbol-name (cadr (memq 'gnus-topic props))))) + (or (gnus-topic-goto-topic topic) + (gnus-topic-goto-topic (gnus-topic-next-topic topic))))) (if (gnus-group-goto-group group) t ;; The group is no longer visible. (let* ((list (assoc (gnus-group-topic group) gnus-topic-alist)) - (after (cdr (member group (cdr list))))) + (topic-visible (save-excursion (gnus-topic-goto-topic (car list)))) + (after (and topic-visible (cdr (member group (cdr list)))))) ;; First try to put point on a group after the current one. (while (and after (not (gnus-group-goto-group (car after)))) @@ -989,7 +992,9 @@ articles in the topic and its subtopics." (if (not (car list)) (goto-char (point-min)) (unless after - (gnus-topic-goto-topic (car list)) + (if topic-visible + (gnus-goto-char topic-visible) + (gnus-topic-goto-topic (gnus-topic-next-topic (car list)))) (setq after nil))) t)))) @@ -1297,6 +1302,8 @@ When used interactively, PARENT will be the topic under point." ;; 2. Can't process on several marked groups with a same name, ;; because gnus-group-marked only keeps one copy. +(defvar gnus-topic-history nil) + (defun gnus-topic-move-group (n topic &optional copyp) "Move the next N groups to TOPIC. If COPYP, copy the groups instead." diff --git a/lisp/gnus/gnus-undo.el b/lisp/gnus/gnus-undo.el index 5530c3d9a34..b94df4df508 100644 --- a/lisp/gnus/gnus-undo.el +++ b/lisp/gnus/gnus-undo.el @@ -1,6 +1,6 @@ ;;; gnus-undo.el --- minor mode for undoing in Gnus -;; Copyright (C) 1996-2011 Free Software Foundation, Inc. +;; Copyright (C) 1996-2012 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; Keywords: news diff --git a/lisp/gnus/gnus-util.el b/lisp/gnus/gnus-util.el index 14551737837..da899f4bf10 100644 --- a/lisp/gnus/gnus-util.el +++ b/lisp/gnus/gnus-util.el @@ -1,6 +1,6 @@ ;;; gnus-util.el --- utility functions for Gnus -;; Copyright (C) 1996-2011 Free Software Foundation, Inc. +;; Copyright (C) 1996-2012 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; Keywords: news diff --git a/lisp/gnus/gnus-uu.el b/lisp/gnus/gnus-uu.el index 50a33809946..717b6162a1b 100644 --- a/lisp/gnus/gnus-uu.el +++ b/lisp/gnus/gnus-uu.el @@ -1,6 +1,6 @@ ;;; gnus-uu.el --- extract (uu)encoded files in Gnus -;; Copyright (C) 1985-1987, 1993-1998, 2000-2011 +;; Copyright (C) 1985-1987, 1993-1998, 2000-2012 ;; Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> diff --git a/lisp/gnus/gnus-vm.el b/lisp/gnus/gnus-vm.el index 522f03c43c1..d5028fe6e5b 100644 --- a/lisp/gnus/gnus-vm.el +++ b/lisp/gnus/gnus-vm.el @@ -1,6 +1,6 @@ ;;; gnus-vm.el --- vm interface for Gnus -;; Copyright (C) 1994-2011 Free Software Foundation, Inc. +;; Copyright (C) 1994-2012 Free Software Foundation, Inc. ;; Author: Per Persson <pp@gnu.ai.mit.edu> ;; Keywords: news, mail diff --git a/lisp/gnus/gnus-win.el b/lisp/gnus/gnus-win.el index ecd5b3b525b..579210c6138 100644 --- a/lisp/gnus/gnus-win.el +++ b/lisp/gnus/gnus-win.el @@ -1,6 +1,6 @@ ;;; gnus-win.el --- window configuration functions for Gnus -;; Copyright (C) 1996-2011 Free Software Foundation, Inc. +;; Copyright (C) 1996-2012 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; Keywords: news @@ -242,7 +242,7 @@ See the Gnus manual for an explanation of the syntax used.") (let* ((current-window (or (get-buffer-window (current-buffer)) (selected-window))) (window (or window current-window))) (select-window window) - ;; The SPLIT might be something that is to be evaled to + ;; The SPLIT might be something that is to be evalled to ;; return a new SPLIT. (while (and (not (assq (car split) gnus-window-to-buffer)) (symbolp (car split)) (fboundp (car split))) @@ -447,7 +447,7 @@ should have point." (when (consp (car split)) (push 1.0 split) (push 'vertical split)) - ;; The SPLIT might be something that is to be evaled to + ;; The SPLIT might be something that is to be evalled to ;; return a new SPLIT. (while (and (not (assq (car split) gnus-window-to-buffer)) (symbolp (car split)) (fboundp (car split))) @@ -464,6 +464,7 @@ should have point." (unless buffer (error "Invalid buffer type: %s" type)) (if (and (setq buf (get-buffer (gnus-window-to-buffer-helper buffer))) + (buffer-live-p buf) (setq win (gnus-get-buffer-window buf t))) (if (memq 'point split) (setq all-visible win)) diff --git a/lisp/gnus/gnus.el b/lisp/gnus/gnus.el index b1f0f60668e..2d48f515f3e 100644 --- a/lisp/gnus/gnus.el +++ b/lisp/gnus/gnus.el @@ -1,6 +1,6 @@ ;;; gnus.el --- a newsreader for GNU Emacs -;; Copyright (C) 1987-1990, 1993-1998, 2000-2011 +;; Copyright (C) 1987-1990, 1993-1998, 2000-2012 ;; Free Software Foundation, Inc. ;; Author: Masanobu UMEDA <umerin@flab.flab.fujitsu.junet> @@ -3860,13 +3860,14 @@ The function `gnus-group-find-parameter' will do that for you." ;; The car is regexp matching for matching the group name. (when (string-match (car head) group) ;; The cdr is the parameters. - (setq result (gnus-group-parameter-value (cdr head) - symbol allow-list)) - (when result - ;; Expand if necessary. - (if (and (stringp result) (string-match "\\\\[0-9&]" result)) - (setq result (gnus-expand-group-parameter (car head) - result group)))))) + (let ((this-result + (gnus-group-parameter-value (cdr head) symbol allow-list t))) + (when this-result + (setq result (car this-result)) + ;; Expand if necessary. + (if (and (stringp result) (string-match "\\\\[0-9&]" result)) + (setq result (gnus-expand-group-parameter + (car head) result group))))))) ;; Done. result)))) @@ -3876,7 +3877,9 @@ If SYMBOL, return the value of that symbol in the group parameters. If you call this function inside a loop, consider using the faster `gnus-group-fast-parameter' instead." - (with-current-buffer gnus-group-buffer + (with-current-buffer (if (buffer-live-p gnus-group-buffer) + gnus-group-buffer + (current-buffer)) (if symbol (gnus-group-fast-parameter group symbol allow-list) (nconc diff --git a/lisp/gnus/gravatar.el b/lisp/gnus/gravatar.el index 4b0c9a16283..75e74803743 100644 --- a/lisp/gnus/gravatar.el +++ b/lisp/gnus/gravatar.el @@ -1,6 +1,6 @@ ;;; gravatar.el --- Get Gravatars -;; Copyright (C) 2010-2011 Free Software Foundation, Inc. +;; Copyright (C) 2010-2012 Free Software Foundation, Inc. ;; Author: Julien Danjou <julien@danjou.info> ;; Keywords: news diff --git a/lisp/gnus/gssapi.el b/lisp/gnus/gssapi.el index e96c23b14ac..4bc93924723 100644 --- a/lisp/gnus/gssapi.el +++ b/lisp/gnus/gssapi.el @@ -1,6 +1,6 @@ ;;; gssapi.el --- GSSAPI/Kerberos 5 interface for Emacs -;; Copyright (C) 2011 Free Software Foundation, Inc. +;; Copyright (C) 2011-2012 Free Software Foundation, Inc. ;; Author: Simon Josefsson <simon@josefsson.org> ;; Lars Magne Ingebrigtsen <larsi@gnus.org> diff --git a/lisp/gnus/html2text.el b/lisp/gnus/html2text.el index dade86ab174..8c20547806e 100644 --- a/lisp/gnus/html2text.el +++ b/lisp/gnus/html2text.el @@ -1,6 +1,6 @@ ;;; html2text.el --- a simple html to plain text converter -;; Copyright (C) 2002-2011 Free Software Foundation, Inc. +;; Copyright (C) 2002-2012 Free Software Foundation, Inc. ;; Author: Joakim Hove <hove@phys.ntnu.no> diff --git a/lisp/gnus/ietf-drums.el b/lisp/gnus/ietf-drums.el index 4d99cea7608..6f5446e1f7e 100644 --- a/lisp/gnus/ietf-drums.el +++ b/lisp/gnus/ietf-drums.el @@ -1,6 +1,6 @@ ;;; ietf-drums.el --- Functions for parsing RFC822bis headers -;; Copyright (C) 1998-2011 Free Software Foundation, Inc. +;; Copyright (C) 1998-2012 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; This file is part of GNU Emacs. diff --git a/lisp/gnus/legacy-gnus-agent.el b/lisp/gnus/legacy-gnus-agent.el index 6c6d119c0c5..afbebbff79f 100644 --- a/lisp/gnus/legacy-gnus-agent.el +++ b/lisp/gnus/legacy-gnus-agent.el @@ -1,6 +1,6 @@ ;;; gnus-agent.el --- Legacy unplugged support for Gnus -;; Copyright (C) 2004-2011 Free Software Foundation, Inc. +;; Copyright (C) 2004-2012 Free Software Foundation, Inc. ;; Author: Kevin Greiner <kgreiner@xpediantsolutions.com> ;; Keywords: news diff --git a/lisp/gnus/mail-parse.el b/lisp/gnus/mail-parse.el index 0fcc206cf71..646f9ad27b3 100644 --- a/lisp/gnus/mail-parse.el +++ b/lisp/gnus/mail-parse.el @@ -1,6 +1,6 @@ ;;; mail-parse.el --- Interface functions for parsing mail -;; Copyright (C) 1998-2011 Free Software Foundation, Inc. +;; Copyright (C) 1998-2012 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; This file is part of GNU Emacs. diff --git a/lisp/gnus/mail-prsvr.el b/lisp/gnus/mail-prsvr.el index b87656dab4d..ebb6cf3245a 100644 --- a/lisp/gnus/mail-prsvr.el +++ b/lisp/gnus/mail-prsvr.el @@ -1,6 +1,6 @@ ;;; mail-prsvr.el --- Interface variables for parsing mail -;; Copyright (C) 1999-2011 Free Software Foundation, Inc. +;; Copyright (C) 1999-2012 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; This file is part of GNU Emacs. diff --git a/lisp/gnus/mail-source.el b/lisp/gnus/mail-source.el index 2315cff6261..2cd9233db61 100644 --- a/lisp/gnus/mail-source.el +++ b/lisp/gnus/mail-source.el @@ -1,6 +1,6 @@ ;;; mail-source.el --- functions for fetching mail -;; Copyright (C) 1999-2011 Free Software Foundation, Inc. +;; Copyright (C) 1999-2012 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; Keywords: news, mail diff --git a/lisp/gnus/mailcap.el b/lisp/gnus/mailcap.el index cbfa05bb87d..d3e80e6daa2 100644 --- a/lisp/gnus/mailcap.el +++ b/lisp/gnus/mailcap.el @@ -1,6 +1,6 @@ ;;; mailcap.el --- MIME media types configuration -;; Copyright (C) 1998-2011 Free Software Foundation, Inc. +;; Copyright (C) 1998-2012 Free Software Foundation, Inc. ;; Author: William M. Perry <wmperry@aventail.com> ;; Lars Magne Ingebrigtsen <larsi@gnus.org> diff --git a/lisp/gnus/message.el b/lisp/gnus/message.el index 85c084751f8..5678acc5a2f 100644 --- a/lisp/gnus/message.el +++ b/lisp/gnus/message.el @@ -1,6 +1,6 @@ ;;; message.el --- composing mail and news messages -;; Copyright (C) 1996-2011 Free Software Foundation, Inc. +;; Copyright (C) 1996-2012 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; Keywords: mail, news @@ -4409,7 +4409,7 @@ This function could be useful in `message-setup-hook'." ;; A simple function. ((functionp action) (funcall action)) - ;; Something to be evaled. + ;; Something to be evalled. (t (eval action)))))) @@ -6169,7 +6169,7 @@ If the current line has `message-yank-prefix', insert it on the new line." When sending via news, also check that the REFERENCES are less than 988 characters long, and if they are not, trim them until they are." - ;; 21 is the number suggested by USEAGE. + ;; 21 is the number suggested by USAGE. (let ((maxcount 21) (count 0) (cut 2) @@ -7738,7 +7738,7 @@ Setter function for custom variables." 'message-tool-bar-retro) "Specifies the message mode tool bar. -It can be either a list or a symbol refering to a list. See +It can be either a list or a symbol referring to a list. See `gmm-tool-bar-from-list' for the format of the list. The default key map is `message-mode-map'. diff --git a/lisp/gnus/messcompat.el b/lisp/gnus/messcompat.el index c0c5125aeea..ad81e286847 100644 --- a/lisp/gnus/messcompat.el +++ b/lisp/gnus/messcompat.el @@ -1,6 +1,6 @@ ;;; messcompat.el --- making message mode compatible with mail mode -;; Copyright (C) 1996-2011 Free Software Foundation, Inc. +;; Copyright (C) 1996-2012 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; Keywords: mail, news diff --git a/lisp/gnus/mm-bodies.el b/lisp/gnus/mm-bodies.el index ee7ba1c193b..029218e98e7 100644 --- a/lisp/gnus/mm-bodies.el +++ b/lisp/gnus/mm-bodies.el @@ -1,6 +1,6 @@ ;;; mm-bodies.el --- Functions for decoding MIME things -;; Copyright (C) 1998-2011 Free Software Foundation, Inc. +;; Copyright (C) 1998-2012 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; MORIOKA Tomohiko <morioka@jaist.ac.jp> diff --git a/lisp/gnus/mm-decode.el b/lisp/gnus/mm-decode.el index 44e2af5b904..10e0fa2861c 100644 --- a/lisp/gnus/mm-decode.el +++ b/lisp/gnus/mm-decode.el @@ -1,6 +1,6 @@ ;;; mm-decode.el --- Functions for decoding MIME things -;; Copyright (C) 1998-2011 Free Software Foundation, Inc. +;; Copyright (C) 1998-2012 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; MORIOKA Tomohiko <morioka@jaist.ac.jp> @@ -275,7 +275,7 @@ before the external MIME handler is invoked." (ignore-errors (if (fboundp 'create-image) (create-image (buffer-string) 'imagemagick 'data-p) - (mm-create-image-xemacs type))))) + (mm-create-image-xemacs (mm-handle-media-subtype handle)))))) (when image (setcar (cdr handle) (list "image/imagemagick")) (mm-image-fit-p handle))))))) @@ -942,7 +942,7 @@ external if displayed external." ;; In particular, the timer object (which is ;; a vector in Emacs but is a list in XEmacs) ;; requires that it is lexically scoped. - (timer (run-at-time 2.0 nil 'ignore))) + (timer (run-at-time 30.0 nil 'ignore))) (if (featurep 'xemacs) (lambda (process state) (when (eq 'exit (process-status process)) @@ -1353,7 +1353,7 @@ Use CMD as the process." (mailcap-mime-info type 'all))) (method (let ((minibuffer-local-completion-map mm-viewer-completion-map)) - (gnus-completing-read "Viewer" methods)))) + (completing-read "Viewer" methods)))) (when (string= method "") (error "No method given")) (if (string-match "^[^% \t]+$" method) @@ -1724,6 +1724,7 @@ If RECURSIVE, search recursively." (buffer-string)))))) shr-inhibit-images shr-blocked-images charset char) (if (and (boundp 'gnus-summary-buffer) + (bufferp gnus-summary-buffer) (buffer-name gnus-summary-buffer)) (with-current-buffer gnus-summary-buffer (setq shr-inhibit-images gnus-inhibit-images diff --git a/lisp/gnus/mm-encode.el b/lisp/gnus/mm-encode.el index 0fb0e7a0795..c3febb01a0f 100644 --- a/lisp/gnus/mm-encode.el +++ b/lisp/gnus/mm-encode.el @@ -1,6 +1,6 @@ ;;; mm-encode.el --- Functions for encoding MIME things -;; Copyright (C) 1998-2011 Free Software Foundation, Inc. +;; Copyright (C) 1998-2012 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; MORIOKA Tomohiko <morioka@jaist.ac.jp> diff --git a/lisp/gnus/mm-extern.el b/lisp/gnus/mm-extern.el index 5f4a9a85fc6..277932bf307 100644 --- a/lisp/gnus/mm-extern.el +++ b/lisp/gnus/mm-extern.el @@ -1,6 +1,6 @@ ;;; mm-extern.el --- showing message/external-body -;; Copyright (C) 2000-2011 Free Software Foundation, Inc. +;; Copyright (C) 2000-2012 Free Software Foundation, Inc. ;; Author: Shenghuo Zhu <zsh@cs.rochester.edu> ;; Keywords: message external-body diff --git a/lisp/gnus/mm-partial.el b/lisp/gnus/mm-partial.el index 017b604e9bb..70722544728 100644 --- a/lisp/gnus/mm-partial.el +++ b/lisp/gnus/mm-partial.el @@ -1,6 +1,6 @@ ;;; mm-partial.el --- showing message/partial -;; Copyright (C) 2000-2011 Free Software Foundation, Inc. +;; Copyright (C) 2000-2012 Free Software Foundation, Inc. ;; Author: Shenghuo Zhu <zsh@cs.rochester.edu> ;; Keywords: message partial diff --git a/lisp/gnus/mm-url.el b/lisp/gnus/mm-url.el index 2ce3791ef3d..a0322b00cf3 100644 --- a/lisp/gnus/mm-url.el +++ b/lisp/gnus/mm-url.el @@ -1,6 +1,6 @@ ;;; mm-url.el --- a wrapper of url functions/commands for Gnus -;; Copyright (C) 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 2001-2012 Free Software Foundation, Inc. ;; Author: Shenghuo Zhu <zsh@cs.rochester.edu> diff --git a/lisp/gnus/mm-util.el b/lisp/gnus/mm-util.el index 129609df10d..e9119284a04 100644 --- a/lisp/gnus/mm-util.el +++ b/lisp/gnus/mm-util.el @@ -1,6 +1,6 @@ ;;; mm-util.el --- Utility functions for Mule and low level things -;; Copyright (C) 1998-2011 Free Software Foundation, Inc. +;; Copyright (C) 1998-2012 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; MORIOKA Tomohiko <morioka@jaist.ac.jp> @@ -424,7 +424,7 @@ corresponding number of an iso-8859 charset." ;; Cf. http://thread.gmane.org/v9lkng5nwy.fsf@marauder.physik.uni-ulm.de "List of IBM codepage numbers. -The codepage mappings slighly differ between IBM and other vendors. +The codepage mappings slightly differ between IBM and other vendors. See \"ftp://ftp.unicode.org/Public/MAPPINGS/VENDORS/IBM/README.TXT\". If an element is a number corresponding to a supported windows diff --git a/lisp/gnus/mm-uu.el b/lisp/gnus/mm-uu.el index 4f7b5ed26b3..327665bdbbf 100644 --- a/lisp/gnus/mm-uu.el +++ b/lisp/gnus/mm-uu.el @@ -1,6 +1,6 @@ ;;; mm-uu.el --- Return uu stuff as mm handles -;; Copyright (C) 1998-2011 Free Software Foundation, Inc. +;; Copyright (C) 1998-2012 Free Software Foundation, Inc. ;; Author: Shenghuo Zhu <zsh@cs.rochester.edu> ;; Keywords: postscript uudecode binhex shar forward gnatsweb pgp diff --git a/lisp/gnus/mm-view.el b/lisp/gnus/mm-view.el index 854ca3497da..18ee3b5047f 100644 --- a/lisp/gnus/mm-view.el +++ b/lisp/gnus/mm-view.el @@ -1,6 +1,6 @@ ;;; mm-view.el --- functions for viewing MIME objects -;; Copyright (C) 1998-2011 Free Software Foundation, Inc. +;; Copyright (C) 1998-2012 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; This file is part of GNU Emacs. @@ -602,6 +602,7 @@ If MODE is not set, try to find mode automatically." ;; I find font-lock a bit too verbose. (let ((font-lock-verbose nil)) ;; Disable support modes, e.g., jit-lock, lazy-lock, etc. + ;; Note: XEmacs people use `font-lock-mode-hook' to run those modes. (set (make-local-variable 'font-lock-mode-hook) nil) (set (make-local-variable 'font-lock-support-mode) nil) (setq buffer-file-name (mm-handle-filename handle)) diff --git a/lisp/gnus/mml-sec.el b/lisp/gnus/mml-sec.el index 1c6405b2b38..ae811afb1a5 100644 --- a/lisp/gnus/mml-sec.el +++ b/lisp/gnus/mml-sec.el @@ -1,6 +1,6 @@ ;;; mml-sec.el --- A package with security functions for MML documents -;; Copyright (C) 2000-2011 Free Software Foundation, Inc. +;; Copyright (C) 2000-2012 Free Software Foundation, Inc. ;; Author: Simon Josefsson <simon@josefsson.org> diff --git a/lisp/gnus/mml-smime.el b/lisp/gnus/mml-smime.el index 7a7b3f6d82d..f8e20a0791b 100644 --- a/lisp/gnus/mml-smime.el +++ b/lisp/gnus/mml-smime.el @@ -1,6 +1,6 @@ ;;; mml-smime.el --- S/MIME support for MML -;; Copyright (C) 2000-2011 Free Software Foundation, Inc. +;; Copyright (C) 2000-2012 Free Software Foundation, Inc. ;; Author: Simon Josefsson <simon@josefsson.org> ;; Keywords: Gnus, MIME, S/MIME, MML diff --git a/lisp/gnus/mml.el b/lisp/gnus/mml.el index 867c3be4b60..a9901d7163e 100644 --- a/lisp/gnus/mml.el +++ b/lisp/gnus/mml.el @@ -1,6 +1,6 @@ ;;; mml.el --- A package for parsing and validating MML documents -;; Copyright (C) 1998-2011 Free Software Foundation, Inc. +;; Copyright (C) 1998-2012 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; This file is part of GNU Emacs. diff --git a/lisp/gnus/mml1991.el b/lisp/gnus/mml1991.el index 1777a660319..bc62e16edaf 100644 --- a/lisp/gnus/mml1991.el +++ b/lisp/gnus/mml1991.el @@ -1,6 +1,6 @@ ;;; mml1991.el --- Old PGP message format (RFC 1991) support for MML -;; Copyright (C) 1998-2011 Free Software Foundation, Inc. +;; Copyright (C) 1998-2012 Free Software Foundation, Inc. ;; Author: Sascha Lüdecke <sascha@meta-x.de>, ;; Simon Josefsson <simon@josefsson.org> (Mailcrypt interface, Gnus glue) diff --git a/lisp/gnus/mml2015.el b/lisp/gnus/mml2015.el index 028955a8c33..78293f61791 100644 --- a/lisp/gnus/mml2015.el +++ b/lisp/gnus/mml2015.el @@ -1,6 +1,6 @@ ;;; mml2015.el --- MIME Security with Pretty Good Privacy (PGP) -;; Copyright (C) 2000-2011 Free Software Foundation, Inc. +;; Copyright (C) 2000-2012 Free Software Foundation, Inc. ;; Author: Shenghuo Zhu <zsh@cs.rochester.edu> ;; Keywords: PGP MIME MML diff --git a/lisp/gnus/nnagent.el b/lisp/gnus/nnagent.el index f6f0d6c1434..7650d9e29f7 100644 --- a/lisp/gnus/nnagent.el +++ b/lisp/gnus/nnagent.el @@ -1,6 +1,6 @@ ;;; nnagent.el --- offline backend for Gnus -;; Copyright (C) 1997-2011 Free Software Foundation, Inc. +;; Copyright (C) 1997-2012 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; Keywords: news, mail diff --git a/lisp/gnus/nnbabyl.el b/lisp/gnus/nnbabyl.el index e10620683c9..72450b1f478 100644 --- a/lisp/gnus/nnbabyl.el +++ b/lisp/gnus/nnbabyl.el @@ -1,6 +1,6 @@ ;;; nnbabyl.el --- rmail mbox access for Gnus -;; Copyright (C) 1995-2011 Free Software Foundation, Inc. +;; Copyright (C) 1995-2012 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; Masanobu UMEDA <umerin@flab.flab.fujitsu.junet> diff --git a/lisp/gnus/nndiary.el b/lisp/gnus/nndiary.el index 25557ad7119..8752972c3c8 100644 --- a/lisp/gnus/nndiary.el +++ b/lisp/gnus/nndiary.el @@ -1,6 +1,6 @@ ;;; nndiary.el --- A diary back end for Gnus -;; Copyright (C) 1999-2011 Free Software Foundation, Inc. +;; Copyright (C) 1999-2012 Free Software Foundation, Inc. ;; Author: Didier Verna <didier@xemacs.org> ;; Maintainer: Didier Verna <didier@xemacs.org> @@ -71,7 +71,7 @@ ;; * nndiary-get-new-mail, nndiary-mail-source and nndiary-split-methods: ;; NNDiary has some experimental parts, in the sense Gnus normally uses only -;; one mail back ends for mail retreival and splitting. This back end is +;; one mail back ends for mail retrieval and splitting. This back end is ;; also an attempt to make it behave differently. For Gnus developers: as ;; you can see if you snarf into the code, that was not a very difficult ;; thing to do. Something should be done about the respooling breakage @@ -224,7 +224,7 @@ The hooks will be called with the article in the current buffer." (defvoo nndiary-get-new-mail nil "Whether nndiary gets new mail and split it. Contrary to traditional mail back ends, this variable can be set to t -even if your primary mail back end also retreives mail. In such a case, +even if your primary mail back end also retrieves mail. In such a case, NDiary uses its own mail-sources and split-methods.") (defvoo nndiary-nov-is-evil nil @@ -1161,7 +1161,7 @@ all. This may very well take some time.") (defun nndiary-parse-schedule-value (str min-or-values max) ;; Parse the schedule string STR, or signal an error. - ;; Signals are caught by `nndary-schedule'. + ;; Signals are caught by `nndiary-schedule'. (if (string-match "[ \t]*\\*[ \t]*" str) ;; unspecified nil @@ -1204,7 +1204,7 @@ all. This may very well take some time.") ;; - Returns nil if `*' ;; - Otherwise returns a list of integers and/or ranges (BEG . END) ;; The exception is the Timze-Zone value which is always of the form (STR). - ;; Signals are caught by `nndary-schedule'. + ;; Signals are caught by `nndiary-schedule'. (let ((header (format "^X-Diary-%s: \\(.*\\)$" head))) (goto-char (point-min)) (if (not (re-search-forward header nil t)) diff --git a/lisp/gnus/nndir.el b/lisp/gnus/nndir.el index 736f37c1fa5..1e36229fe80 100644 --- a/lisp/gnus/nndir.el +++ b/lisp/gnus/nndir.el @@ -1,6 +1,6 @@ ;;; nndir.el --- single directory newsgroup access for Gnus -;; Copyright (C) 1995-2011 Free Software Foundation, Inc. +;; Copyright (C) 1995-2012 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; Keywords: news diff --git a/lisp/gnus/nndoc.el b/lisp/gnus/nndoc.el index f900e02eb08..38d274d1d93 100644 --- a/lisp/gnus/nndoc.el +++ b/lisp/gnus/nndoc.el @@ -1,6 +1,6 @@ ;;; nndoc.el --- single file access for Gnus -;; Copyright (C) 1995-2011 Free Software Foundation, Inc. +;; Copyright (C) 1995-2012 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; Masanobu UMEDA <umerin@flab.flab.fujitsu.junet> diff --git a/lisp/gnus/nndraft.el b/lisp/gnus/nndraft.el index 0b47062a919..1800d0c02de 100644 --- a/lisp/gnus/nndraft.el +++ b/lisp/gnus/nndraft.el @@ -1,6 +1,6 @@ ;;; nndraft.el --- draft article access for Gnus -;; Copyright (C) 1995-2011 Free Software Foundation, Inc. +;; Copyright (C) 1995-2012 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; Keywords: news @@ -181,13 +181,14 @@ are generated if and only if they are also in `message-draft-headers'.") (gnus-get-new-news-hook nil) (inhibit-read-only t)) (gnus-group-get-new-news-this-group nil t) - (dolist (group groups) - (unless (and gnus-permanently-visible-groups - (string-match gnus-permanently-visible-groups - group)) - (gnus-group-goto-group group) - (when (zerop (gnus-group-group-unread)) - (gnus-delete-line))))))) + (save-excursion + (dolist (group groups) + (unless (and gnus-permanently-visible-groups + (string-match gnus-permanently-visible-groups + group)) + (gnus-group-goto-group group) + (when (zerop (gnus-group-group-unread)) + (gnus-delete-line)))))))) (deffoo nndraft-request-associate-buffer (group) "Associate the current buffer with some article in the draft group." diff --git a/lisp/gnus/nneething.el b/lisp/gnus/nneething.el index 7f4fab0a991..3b43920852d 100644 --- a/lisp/gnus/nneething.el +++ b/lisp/gnus/nneething.el @@ -1,6 +1,6 @@ ;;; nneething.el --- arbitrary file access for Gnus -;; Copyright (C) 1995-2011 Free Software Foundation, Inc. +;; Copyright (C) 1995-2012 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; Masanobu UMEDA <umerin@flab.flab.fujitsu.junet> diff --git a/lisp/gnus/nnfolder.el b/lisp/gnus/nnfolder.el index 3ec30410473..89961dc7dad 100644 --- a/lisp/gnus/nnfolder.el +++ b/lisp/gnus/nnfolder.el @@ -1,6 +1,6 @@ ;;; nnfolder.el --- mail folder access for Gnus -;; Copyright (C) 1995-2011 Free Software Foundation, Inc. +;; Copyright (C) 1995-2012 Free Software Foundation, Inc. ;; Author: Simon Josefsson <simon@josefsson.org> (adding MARKS) ;; ShengHuo Zhu <zsh@cs.rochester.edu> (adding NOV) diff --git a/lisp/gnus/nngateway.el b/lisp/gnus/nngateway.el index 994cefc9d08..f2e6b2e8509 100644 --- a/lisp/gnus/nngateway.el +++ b/lisp/gnus/nngateway.el @@ -1,6 +1,6 @@ ;;; nngateway.el --- posting news via mail gateways -;; Copyright (C) 1996-2011 Free Software Foundation, Inc. +;; Copyright (C) 1996-2012 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; Keywords: news, mail diff --git a/lisp/gnus/nnheader.el b/lisp/gnus/nnheader.el index a8e8e7d08ef..f98b34c7714 100644 --- a/lisp/gnus/nnheader.el +++ b/lisp/gnus/nnheader.el @@ -1,6 +1,6 @@ ;;; nnheader.el --- header access macros for Gnus and its backends -;; Copyright (C) 1987-1990, 1993-1998, 2000-2011 +;; Copyright (C) 1987-1990, 1993-1998, 2000-2012 ;; Free Software Foundation, Inc. ;; Author: Masanobu UMEDA <umerin@flab.flab.fujitsu.junet> diff --git a/lisp/gnus/nnimap.el b/lisp/gnus/nnimap.el index b4e6e31fae4..0b0fc918c87 100644 --- a/lisp/gnus/nnimap.el +++ b/lisp/gnus/nnimap.el @@ -1,6 +1,6 @@ ;;; nnimap.el --- IMAP interface for Gnus -;; Copyright (C) 2010-2011 Free Software Foundation, Inc. +;; Copyright (C) 2010-2012 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; Simon Josefsson <simon@josefsson.org> @@ -1273,11 +1273,11 @@ textual parts.") (deffoo nnimap-finish-retrieve-group-infos (server infos sequences) (when (and sequences + (nnimap-possibly-change-group nil server) ;; Check that the process is still alive. (get-buffer-process (nnimap-buffer)) (memq (process-status (get-buffer-process (nnimap-buffer))) - '(open run)) - (nnimap-possibly-change-group nil server)) + '(open run))) (with-current-buffer (nnimap-buffer) ;; Wait for the final data to trickle in. (when (nnimap-wait-for-response (if (eq (cadar sequences) 'qresync) @@ -1332,7 +1332,8 @@ textual parts.") (cdr (assq 'uidvalidity (gnus-info-params info))))) (and old-uidvalidity (not (equal old-uidvalidity uidvalidity)) - (> start-article 1))) + (or (not start-article) + (> start-article 1)))) (gnus-group-remove-parameter info 'uidvalidity) (gnus-group-remove-parameter info 'modseq)) ;; We have the data needed to update. @@ -1620,8 +1621,9 @@ textual parts.") (nnimap-command "UID SEARCH %s" cmd)))) (when result (gnus-fetch-headers - (and (car result) (delete 0 (mapcar #'string-to-number - (cdr (assoc "SEARCH" (cdr result)))))) + (and (car result) + (delete 0 (mapcar #'string-to-number + (cdr (assoc "SEARCH" (cdr result)))))) nil t)))))) (defun nnimap-possibly-change-group (group server) diff --git a/lisp/gnus/nnir.el b/lisp/gnus/nnir.el index 3d0fc78dca7..1d4f1c25a09 100644 --- a/lisp/gnus/nnir.el +++ b/lisp/gnus/nnir.el @@ -1,6 +1,6 @@ ;;; nnir.el --- search mail with various search engines -*- coding: iso-8859-1 -*- -;; Copyright (C) 1998-2011 Free Software Foundation, Inc. +;; Copyright (C) 1998-2012 Free Software Foundation, Inc. ;; Author: Kai Großjohann <grossjohann@ls6.cs.uni-dortmund.de> ;; Swish-e and Swish++ backends by: @@ -304,7 +304,7 @@ is `(valuefunc member)'." ;;; User Customizable Variables: (defgroup nnir nil - "Search groups in Gnus with assorted seach engines." + "Search groups in Gnus with assorted search engines." :group 'gnus) (defcustom nnir-ignored-newsgroups "" @@ -670,7 +670,8 @@ Add an entry here when adding a new search engine.") (goto-char (point-min)) (while (not (eobp)) (let* ((novitem (funcall parsefunc)) - (artno (mail-header-number novitem)) + (artno (and novitem + (mail-header-number novitem))) (art (car (rassq artno articleids)))) (when art (mail-header-set-number novitem art) diff --git a/lisp/gnus/nnmail.el b/lisp/gnus/nnmail.el index 93e8544b633..9c3a814d3ea 100644 --- a/lisp/gnus/nnmail.el +++ b/lisp/gnus/nnmail.el @@ -1,6 +1,6 @@ ;;; nnmail.el --- mail support functions for the Gnus mail backends -;; Copyright (C) 1995-2011 Free Software Foundation, Inc. +;; Copyright (C) 1995-2012 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; Keywords: news, mail diff --git a/lisp/gnus/nnmairix.el b/lisp/gnus/nnmairix.el index 4ad9d11f906..1174d148e45 100644 --- a/lisp/gnus/nnmairix.el +++ b/lisp/gnus/nnmairix.el @@ -1,6 +1,6 @@ ;;; nnmairix.el --- Mairix back end for Gnus, the Emacs newsreader -;; Copyright (C) 2007-2011 Free Software Foundation, Inc. +;; Copyright (C) 2007-2012 Free Software Foundation, Inc. ;; Author: David Engster <dengste@eml.cc> ;; Keywords: mail searching @@ -483,7 +483,7 @@ Other back ends might or might not work.") mfolder query threads))) ;; Check return value (cond - ((zerop rval) ; call was succesful + ((zerop rval) ; call was successful (nnmairix-call-backend "open-server" nnmairix-backend-server) ;; If we're dealing with nnml, rename files diff --git a/lisp/gnus/nnmbox.el b/lisp/gnus/nnmbox.el index aac5a064a7f..cdb42eb5327 100644 --- a/lisp/gnus/nnmbox.el +++ b/lisp/gnus/nnmbox.el @@ -1,6 +1,6 @@ ;;; nnmbox.el --- mail mbox access for Gnus -;; Copyright (C) 1995-2011 Free Software Foundation, Inc. +;; Copyright (C) 1995-2012 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; Masanobu UMEDA <umerin@flab.flab.fujitsu.junet> diff --git a/lisp/gnus/nnmh.el b/lisp/gnus/nnmh.el index ec270eba2ce..960b15fd1aa 100644 --- a/lisp/gnus/nnmh.el +++ b/lisp/gnus/nnmh.el @@ -1,6 +1,6 @@ ;;; nnmh.el --- mhspool access for Gnus -;; Copyright (C) 1995-2011 Free Software Foundation, Inc. +;; Copyright (C) 1995-2012 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; Masanobu UMEDA <umerin@flab.flab.fujitsu.junet> diff --git a/lisp/gnus/nnml.el b/lisp/gnus/nnml.el index 59e06364f42..acb23ed1693 100644 --- a/lisp/gnus/nnml.el +++ b/lisp/gnus/nnml.el @@ -1,6 +1,6 @@ ;;; nnml.el --- mail spool access for Gnus -;; Copyright (C) 1995-2011 Free Software +;; Copyright (C) 1995-2012 Free Software ;; Foundation, Inc. ;; Authors: Didier Verna <didier@xemacs.org> (adding compaction) diff --git a/lisp/gnus/nnoo.el b/lisp/gnus/nnoo.el index bbe47fcf5c0..12df03c8b26 100644 --- a/lisp/gnus/nnoo.el +++ b/lisp/gnus/nnoo.el @@ -1,6 +1,6 @@ ;;; nnoo.el --- OO Gnus Backends -;; Copyright (C) 1996-2011 Free Software Foundation, Inc. +;; Copyright (C) 1996-2012 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; Keywords: news diff --git a/lisp/gnus/nnregistry.el b/lisp/gnus/nnregistry.el index 2001f8f2366..2a6e3f046c6 100644 --- a/lisp/gnus/nnregistry.el +++ b/lisp/gnus/nnregistry.el @@ -1,7 +1,7 @@ ;;; nnregistry.el --- access to articles via Gnus' message-id registry ;;; -*- coding: utf-8 -*- -;; Copyright (C) 2010-2011 Free Software Foundation, Inc. +;; Copyright (C) 2010-2012 Free Software Foundation, Inc. ;; Authors: Ludovic Courtès <ludo@gnu.org> ;; Keywords: news, mail diff --git a/lisp/gnus/nnrss.el b/lisp/gnus/nnrss.el index 3e3b7326f29..d35d7c623a7 100644 --- a/lisp/gnus/nnrss.el +++ b/lisp/gnus/nnrss.el @@ -1,6 +1,6 @@ ;;; nnrss.el --- interfacing with RSS -;; Copyright (C) 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 2001-2012 Free Software Foundation, Inc. ;; Author: Shenghuo Zhu <zsh@cs.rochester.edu> ;; Keywords: RSS diff --git a/lisp/gnus/nnspool.el b/lisp/gnus/nnspool.el index 6c23f41132f..2b024e20740 100644 --- a/lisp/gnus/nnspool.el +++ b/lisp/gnus/nnspool.el @@ -1,6 +1,6 @@ ;;; nnspool.el --- spool access for GNU Emacs -;; Copyright (C) 1988-1990, 1993-1998, 2000-2011 +;; Copyright (C) 1988-1990, 1993-1998, 2000-2012 ;; Free Software Foundation, Inc. ;; Author: Masanobu UMEDA <umerin@flab.flab.fujitsu.junet> diff --git a/lisp/gnus/nntp.el b/lisp/gnus/nntp.el index f4b8ce66d16..db9d9e252be 100644 --- a/lisp/gnus/nntp.el +++ b/lisp/gnus/nntp.el @@ -1,6 +1,6 @@ ;;; nntp.el --- nntp access for Gnus -;; Copyright (C) 1987-1990, 1992-1998, 2000-2011 +;; Copyright (C) 1987-1990, 1992-1998, 2000-2012 ;; Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> @@ -281,6 +281,7 @@ update their active files often, this can help.") ;;; Internal variables. +(defvoo nntp-retrieval-in-progress nil) (defvar nntp-record-commands nil "*If non-nil, nntp will record all commands in the \"*nntp-log*\" buffer.") @@ -770,21 +771,28 @@ command whose response triggered the error." (deffoo nntp-retrieve-group-data-early (server infos) "Retrieve group info on INFOS." (nntp-with-open-group nil server - (when (nntp-find-connection-buffer nntp-server-buffer) - ;; The first time this is run, this variable is `try'. So we - ;; try. - (when (eq nntp-server-list-active-group 'try) - (nntp-try-list-active - (gnus-group-real-name (gnus-info-group (car infos))))) - (with-current-buffer (nntp-find-connection-buffer nntp-server-buffer) - (erase-buffer) - (let ((nntp-inhibit-erase t) - (command (if nntp-server-list-active-group - "LIST ACTIVE" "GROUP"))) - (dolist (info infos) - (nntp-send-command - nil command (gnus-group-real-name (gnus-info-group info))))) - (length infos))))) + (let ((buffer (nntp-find-connection-buffer nntp-server-buffer))) + (when (and buffer + (with-current-buffer buffer + (not nntp-retrieval-in-progress))) + ;; The first time this is run, this variable is `try'. So we + ;; try. + (when (eq nntp-server-list-active-group 'try) + (nntp-try-list-active + (gnus-group-real-name (gnus-info-group (car infos))))) + (with-current-buffer buffer + (erase-buffer) + ;; Mark this buffer as "in use" in case we try to issue two + ;; retrievals from the same server. This shouldn't happen, + ;; so this is mostly a sanity check. + (setq nntp-retrieval-in-progress t) + (let ((nntp-inhibit-erase t) + (command (if nntp-server-list-active-group + "LIST ACTIVE" "GROUP"))) + (dolist (info infos) + (nntp-send-command + nil command (gnus-group-real-name (gnus-info-group info))))) + (length infos)))))) (deffoo nntp-finish-retrieve-group-infos (server infos count) (nntp-with-open-group nil server @@ -794,6 +802,8 @@ command whose response triggered the error." (car infos))) (received 0) (last-point 1)) + (with-current-buffer buf + (setq nntp-retrieval-in-progress nil)) (when (and buf count) (with-current-buffer buf @@ -837,7 +847,14 @@ command whose response triggered the error." "Retrieve group info on GROUPS." (nntp-with-open-group nil server - (when (nntp-find-connection-buffer nntp-server-buffer) + (when (and (nntp-find-connection-buffer nntp-server-buffer) + (with-current-buffer + (nntp-find-connection-buffer nntp-server-buffer) + (if (not nntp-retrieval-in-progress) + t + (message "Warning: Refusing to do retrieval from %s because a retrieval is already happening" + server) + nil))) (catch 'done (save-excursion ;; Erase nntp-server-buffer before nntp-inhibit-erase. @@ -1318,6 +1335,7 @@ password contained in '~/.nntp-authinfo'." (set (make-local-variable 'nntp-process-to-buffer) nil) (set (make-local-variable 'nntp-process-start-point) nil) (set (make-local-variable 'nntp-process-decode) nil) + (set (make-local-variable 'nntp-retrieval-in-progress) nil) (current-buffer))) (defun nntp-open-connection (buffer) diff --git a/lisp/gnus/nnvirtual.el b/lisp/gnus/nnvirtual.el index ea64c247d99..edc9fb655a3 100644 --- a/lisp/gnus/nnvirtual.el +++ b/lisp/gnus/nnvirtual.el @@ -1,6 +1,6 @@ ;;; nnvirtual.el --- virtual newsgroups access for Gnus -;; Copyright (C) 1994-2011 Free Software Foundation, Inc. +;; Copyright (C) 1994-2012 Free Software Foundation, Inc. ;; Author: David Moore <dmoore@ucsd.edu> ;; Lars Magne Ingebrigtsen <larsi@gnus.org> diff --git a/lisp/gnus/nnweb.el b/lisp/gnus/nnweb.el index f190bb7cffa..a171cb35ae4 100644 --- a/lisp/gnus/nnweb.el +++ b/lisp/gnus/nnweb.el @@ -1,6 +1,6 @@ ;;; nnweb.el --- retrieving articles via web search engines -;; Copyright (C) 1996-2011 Free Software Foundation, Inc. +;; Copyright (C) 1996-2012 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; Keywords: news diff --git a/lisp/gnus/plstore.el b/lisp/gnus/plstore.el index 50208cc5b0b..cbd5e2a3b0a 100644 --- a/lisp/gnus/plstore.el +++ b/lisp/gnus/plstore.el @@ -1,5 +1,5 @@ ;;; plstore.el --- secure plist store -*- lexical-binding: t -*- -;; Copyright (C) 2011 Free Software Foundation, Inc. +;; Copyright (C) 2011-2012 Free Software Foundation, Inc. ;; Author: Daiki Ueno <ueno@unixuser.org> ;; Keywords: PGP, GnuPG diff --git a/lisp/gnus/pop3.el b/lisp/gnus/pop3.el index 0f7a450b30c..ee4345c2f4f 100644 --- a/lisp/gnus/pop3.el +++ b/lisp/gnus/pop3.el @@ -1,6 +1,6 @@ ;;; pop3.el --- Post Office Protocol (RFC 1460) interface -;; Copyright (C) 1996-2011 Free Software Foundation, Inc. +;; Copyright (C) 1996-2012 Free Software Foundation, Inc. ;; Author: Richard L. Pieri <ratinox@peorth.gweep.net> ;; Maintainer: FSF diff --git a/lisp/gnus/qp.el b/lisp/gnus/qp.el index 584e24177af..c8481aa9dee 100644 --- a/lisp/gnus/qp.el +++ b/lisp/gnus/qp.el @@ -1,6 +1,6 @@ ;;; qp.el --- Quoted-Printable functions -;; Copyright (C) 1998-2011 Free Software Foundation, Inc. +;; Copyright (C) 1998-2012 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; Keywords: mail, extensions diff --git a/lisp/gnus/registry.el b/lisp/gnus/registry.el index 5fd309a5c7d..c54fe3e3d71 100644 --- a/lisp/gnus/registry.el +++ b/lisp/gnus/registry.el @@ -1,6 +1,6 @@ ;;; registry.el --- Track and remember data items by various fields -;; Copyright (C) 2011 Free Software Foundation, Inc. +;; Copyright (C) 2011-2012 Free Software Foundation, Inc. ;; Author: Teodor Zlatanov <tzz@lifelogs.com> ;; Keywords: data diff --git a/lisp/gnus/rfc1843.el b/lisp/gnus/rfc1843.el index 019dc6ed8a2..338a81949ea 100644 --- a/lisp/gnus/rfc1843.el +++ b/lisp/gnus/rfc1843.el @@ -1,6 +1,6 @@ ;;; rfc1843.el --- HZ (rfc1843) decoding -;; Copyright (C) 1998-2011 Free Software Foundation, Inc. +;; Copyright (C) 1998-2012 Free Software Foundation, Inc. ;; Author: Shenghuo Zhu <zsh@cs.rochester.edu> ;; Keywords: news HZ HZ+ mail i18n diff --git a/lisp/gnus/rfc2045.el b/lisp/gnus/rfc2045.el index d9aaf88b046..783189c6503 100644 --- a/lisp/gnus/rfc2045.el +++ b/lisp/gnus/rfc2045.el @@ -1,6 +1,6 @@ ;;; rfc2045.el --- Functions for decoding rfc2045 headers -;; Copyright (C) 1998-2011 Free Software Foundation, Inc. +;; Copyright (C) 1998-2012 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; This file is part of GNU Emacs. diff --git a/lisp/gnus/rfc2047.el b/lisp/gnus/rfc2047.el index f1cb1f69e56..a275df7701b 100644 --- a/lisp/gnus/rfc2047.el +++ b/lisp/gnus/rfc2047.el @@ -1,6 +1,6 @@ ;;; rfc2047.el --- functions for encoding and decoding rfc2047 messages -;; Copyright (C) 1998-2011 Free Software Foundation, Inc. +;; Copyright (C) 1998-2012 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; MORIOKA Tomohiko <morioka@jaist.ac.jp> diff --git a/lisp/gnus/rfc2104.el b/lisp/gnus/rfc2104.el index 158cf4bae22..b638da0eb84 100644 --- a/lisp/gnus/rfc2104.el +++ b/lisp/gnus/rfc2104.el @@ -1,6 +1,6 @@ ;;; rfc2104.el --- RFC2104 Hashed Message Authentication Codes -;; Copyright (C) 1998-2011 Free Software Foundation, Inc. +;; Copyright (C) 1998-2012 Free Software Foundation, Inc. ;; Author: Simon Josefsson <jas@pdc.kth.se> ;; Keywords: mail diff --git a/lisp/gnus/rfc2231.el b/lisp/gnus/rfc2231.el index 306b67cd7c1..48aa89c9757 100644 --- a/lisp/gnus/rfc2231.el +++ b/lisp/gnus/rfc2231.el @@ -1,6 +1,6 @@ ;;; rfc2231.el --- Functions for decoding rfc2231 headers -;; Copyright (C) 1998-2011 Free Software Foundation, Inc. +;; Copyright (C) 1998-2012 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; This file is part of GNU Emacs. @@ -58,7 +58,7 @@ must never cause a Lisp error." ;; The most likely cause of an error is unbalanced parentheses ;; or double-quotes. If all parentheses and double-quotes are ;; quoted meaninglessly with backslashes, removing them might - ;; make it parseable. Let's try... + ;; make it parsable. Let's try... (error (let (mod) (when (and (string-match "\\\\\"" string) diff --git a/lisp/gnus/rtree.el b/lisp/gnus/rtree.el index 869ca4f0069..4894e6da92c 100644 --- a/lisp/gnus/rtree.el +++ b/lisp/gnus/rtree.el @@ -1,6 +1,6 @@ ;;; rtree.el --- functions for manipulating range trees -;; Copyright (C) 2010-2011 Free Software Foundation, Inc. +;; Copyright (C) 2010-2012 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> diff --git a/lisp/gnus/score-mode.el b/lisp/gnus/score-mode.el index a7ed6bc0cb8..6035abb38e0 100644 --- a/lisp/gnus/score-mode.el +++ b/lisp/gnus/score-mode.el @@ -1,6 +1,6 @@ ;;; score-mode.el --- mode for editing Gnus score files -;; Copyright (C) 1996, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1996, 2001-2012 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; Keywords: news, mail diff --git a/lisp/gnus/shr-color.el b/lisp/gnus/shr-color.el index 4fd35659e08..e23ab57965e 100644 --- a/lisp/gnus/shr-color.el +++ b/lisp/gnus/shr-color.el @@ -1,6 +1,6 @@ ;;; shr-color.el --- Simple HTML Renderer color management -;; Copyright (C) 2010-2011 Free Software Foundation, Inc. +;; Copyright (C) 2010-2012 Free Software Foundation, Inc. ;; Author: Julien Danjou <julien@danjou.info> ;; Keywords: html diff --git a/lisp/gnus/shr.el b/lisp/gnus/shr.el index f2d8f843564..969d893c2d4 100644 --- a/lisp/gnus/shr.el +++ b/lisp/gnus/shr.el @@ -1,6 +1,6 @@ ;;; shr.el --- Simple HTML Renderer -;; Copyright (C) 2010-2011 Free Software Foundation, Inc. +;; Copyright (C) 2010-2012 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; Keywords: html @@ -134,7 +134,8 @@ cid: URL as the argument.") (shr-insert-document (with-temp-buffer (insert-file-contents file) - (libxml-parse-html-region (point-min) (point-max))))) + (libxml-parse-html-region (point-min) (point-max)))) + (goto-char (point-min))) ;;;###autoload (defun shr-insert-document (dom) @@ -534,33 +535,33 @@ the URL of the image to the kill buffer instead." (insert alt))) (defun shr-rescale-image (data) - (if (or (not (fboundp 'imagemagick-types)) - (not (get-buffer-window (current-buffer)))) - (create-image data nil t - :ascent 100) - (let* ((image (create-image data nil t :ascent 100)) - (size (image-size image t)) - (width (car size)) - (height (cdr size)) - (edges (window-inside-pixel-edges - (get-buffer-window (current-buffer)))) - (window-width (truncate (* shr-max-image-proportion - (- (nth 2 edges) (nth 0 edges))))) - (window-height (truncate (* shr-max-image-proportion - (- (nth 3 edges) (nth 1 edges))))) - scaled-image) - (when (> height window-height) - (setq image (or (create-image data 'imagemagick t - :height window-height) - image)) - (setq size (image-size image t))) - (when (> (car size) window-width) - (setq image (or - (create-image data 'imagemagick t - :width window-width - :ascent 100) - image))) - image))) + (let ((image (create-image data nil t :ascent 100))) + (if (or (not (fboundp 'imagemagick-types)) + (not (get-buffer-window (current-buffer)))) + image + (let* ((size (image-size image t)) + (width (car size)) + (height (cdr size)) + (edges (window-inside-pixel-edges + (get-buffer-window (current-buffer)))) + (window-width (truncate (* shr-max-image-proportion + (- (nth 2 edges) (nth 0 edges))))) + (window-height (truncate (* shr-max-image-proportion + (- (nth 3 edges) (nth 1 edges))))) + scaled-image) + (when (> height window-height) + (setq image (or (create-image data 'imagemagick t + :height window-height + :ascent 100) + image)) + (setq size (image-size image t))) + (when (> (car size) window-width) + (setq image (or + (create-image data 'imagemagick t + :width window-width + :ascent 100) + image))) + image)))) ;; url-cache-extract autoloads url-cache. (declare-function url-cache-create-filename "url-cache" (url)) diff --git a/lisp/gnus/sieve-manage.el b/lisp/gnus/sieve-manage.el index a0c1d4f108b..4712cab6bff 100644 --- a/lisp/gnus/sieve-manage.el +++ b/lisp/gnus/sieve-manage.el @@ -1,6 +1,6 @@ ;;; sieve-manage.el --- Implementation of the managesieve protocol in elisp -;; Copyright (C) 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 2001-2012 Free Software Foundation, Inc. ;; Author: Simon Josefsson <simon@josefsson.org> diff --git a/lisp/gnus/sieve-mode.el b/lisp/gnus/sieve-mode.el index efd28affacb..ded51bbb57e 100644 --- a/lisp/gnus/sieve-mode.el +++ b/lisp/gnus/sieve-mode.el @@ -1,6 +1,6 @@ ;;; sieve-mode.el --- Sieve code editing commands for Emacs -;; Copyright (C) 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 2001-2012 Free Software Foundation, Inc. ;; Author: Simon Josefsson <simon@josefsson.org> diff --git a/lisp/gnus/sieve.el b/lisp/gnus/sieve.el index a44a03b6913..c047a17b303 100644 --- a/lisp/gnus/sieve.el +++ b/lisp/gnus/sieve.el @@ -1,6 +1,6 @@ ;;; sieve.el --- Utilities to manage sieve scripts -;; Copyright (C) 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 2001-2012 Free Software Foundation, Inc. ;; Author: Simon Josefsson <simon@josefsson.org> diff --git a/lisp/gnus/smiley.el b/lisp/gnus/smiley.el index cf23deb174b..df4b624ea15 100644 --- a/lisp/gnus/smiley.el +++ b/lisp/gnus/smiley.el @@ -1,6 +1,6 @@ ;;; smiley.el --- displaying smiley faces -;; Copyright (C) 2000-2011 Free Software Foundation, Inc. +;; Copyright (C) 2000-2012 Free Software Foundation, Inc. ;; Author: Dave Love <fx@gnu.org> ;; Keywords: news mail multimedia diff --git a/lisp/gnus/smime.el b/lisp/gnus/smime.el index 3c1f75f3dc9..73f4970fcd4 100644 --- a/lisp/gnus/smime.el +++ b/lisp/gnus/smime.el @@ -1,6 +1,6 @@ ;;; smime.el --- S/MIME support library -;; Copyright (C) 2000-2011 Free Software Foundation, Inc. +;; Copyright (C) 2000-2012 Free Software Foundation, Inc. ;; Author: Simon Josefsson <simon@josefsson.org> ;; Keywords: SMIME X.509 PEM OpenSSL diff --git a/lisp/gnus/spam-report.el b/lisp/gnus/spam-report.el index 6c94dbdd2c4..bb2827c4ced 100644 --- a/lisp/gnus/spam-report.el +++ b/lisp/gnus/spam-report.el @@ -1,6 +1,6 @@ ;;; spam-report.el --- Reporting spam -;; Copyright (C) 2002-2011 Free Software Foundation, Inc. +;; Copyright (C) 2002-2012 Free Software Foundation, Inc. ;; Author: Ted Zlatanov <tzz@lifelogs.com> ;; Keywords: network, spam, mail, gmane, report diff --git a/lisp/gnus/spam-stat.el b/lisp/gnus/spam-stat.el index 8b56c7bd537..04f90ee038d 100644 --- a/lisp/gnus/spam-stat.el +++ b/lisp/gnus/spam-stat.el @@ -1,6 +1,6 @@ ;;; spam-stat.el --- detecting spam based on statistics -;; Copyright (C) 2002-2011 Free Software Foundation, Inc. +;; Copyright (C) 2002-2012 Free Software Foundation, Inc. ;; Author: Alex Schroeder <alex@gnu.org> ;; Keywords: network diff --git a/lisp/gnus/spam-wash.el b/lisp/gnus/spam-wash.el index 88e2037f5e7..087bbb2575f 100644 --- a/lisp/gnus/spam-wash.el +++ b/lisp/gnus/spam-wash.el @@ -1,6 +1,6 @@ ;;; spam-wash.el --- wash spam before analysis -;; Copyright (C) 2004, 2007-2011 Free Software Foundation, Inc. +;; Copyright (C) 2004, 2007-2012 Free Software Foundation, Inc. ;; Author: Andrew Cohen <cohen@andy.bu.edu> ;; Keywords: mail diff --git a/lisp/gnus/spam.el b/lisp/gnus/spam.el index 869dbc9bc0e..3cfbd7dba35 100644 --- a/lisp/gnus/spam.el +++ b/lisp/gnus/spam.el @@ -1,6 +1,6 @@ ;;; spam.el --- Identifying spam -;; Copyright (C) 2002-2011 Free Software Foundation, Inc. +;; Copyright (C) 2002-2012 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; Maintainer: Ted Zlatanov <tzz@lifelogs.com> diff --git a/lisp/gnus/starttls.el b/lisp/gnus/starttls.el index af9fd42c127..2d403650533 100644 --- a/lisp/gnus/starttls.el +++ b/lisp/gnus/starttls.el @@ -1,6 +1,6 @@ ;;; starttls.el --- STARTTLS functions -;; Copyright (C) 1999-2011 Free Software Foundation, Inc. +;; Copyright (C) 1999-2012 Free Software Foundation, Inc. ;; Author: Daiki Ueno <ueno@unixuser.org> ;; Author: Simon Josefsson <simon@josefsson.org> @@ -297,9 +297,10 @@ GnuTLS requires a port number." (defun starttls-available-p () "Say whether the STARTTLS programs are available." - (executable-find (if starttls-use-gnutls - starttls-gnutls-program - starttls-program))) + (and (not (memq system-type '(windows-nt ms-dos))) + (executable-find (if starttls-use-gnutls + starttls-gnutls-program + starttls-program)))) (defalias 'starttls-any-program-available 'starttls-available-p) (make-obsolete 'starttls-any-program-available 'starttls-available-p diff --git a/lisp/gnus/utf7.el b/lisp/gnus/utf7.el index f362931dcd0..aeabe7f9ebe 100644 --- a/lisp/gnus/utf7.el +++ b/lisp/gnus/utf7.el @@ -1,6 +1,6 @@ ;;; utf7.el --- UTF-7 encoding/decoding for Emacs -*-coding: iso-8859-1;-*- -;; Copyright (C) 1999-2011 Free Software Foundation, Inc. +;; Copyright (C) 1999-2012 Free Software Foundation, Inc. ;; Author: Jon K Hellan <hellan@acm.org> ;; Maintainer: bugs@gnus.org diff --git a/lisp/gnus/yenc.el b/lisp/gnus/yenc.el index c21dfbdb438..46f30399b66 100644 --- a/lisp/gnus/yenc.el +++ b/lisp/gnus/yenc.el @@ -1,6 +1,6 @@ ;;; yenc.el --- elisp native yenc decoder -;; Copyright (C) 2002-2011 Free Software Foundation, Inc. +;; Copyright (C) 2002-2012 Free Software Foundation, Inc. ;; Author: Jesper Harder <harder@ifa.au.dk> ;; Keywords: yenc news diff --git a/lisp/gs.el b/lisp/gs.el index b86632f7637..c9e7955078f 100644 --- a/lisp/gs.el +++ b/lisp/gs.el @@ -1,6 +1,6 @@ ;;; gs.el --- interface to Ghostscript -;; Copyright (C) 1998, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1998, 2001-2012 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: internal diff --git a/lisp/help-at-pt.el b/lisp/help-at-pt.el index d9012bdcad3..394768f4734 100644 --- a/lisp/help-at-pt.el +++ b/lisp/help-at-pt.el @@ -1,6 +1,6 @@ ;;; help-at-pt.el --- local help through the keyboard -;; Copyright (C) 2003-2011 Free Software Foundation, Inc. +;; Copyright (C) 2003-2012 Free Software Foundation, Inc. ;; Author: Luc Teirlinck <teirllm@auburn.edu> ;; Keywords: help diff --git a/lisp/help-fns.el b/lisp/help-fns.el index efdc237d11f..183253878f5 100644 --- a/lisp/help-fns.el +++ b/lisp/help-fns.el @@ -1,6 +1,6 @@ ;;; help-fns.el --- Complex help functions -*- lexical-binding: t -*- -;; Copyright (C) 1985-1986, 1993-1994, 1998-2011 +;; Copyright (C) 1985-1986, 1993-1994, 1998-2012 ;; Free Software Foundation, Inc. ;; Maintainer: FSF diff --git a/lisp/help-macro.el b/lisp/help-macro.el index 8efb99d42d8..0bd6f3c4798 100644 --- a/lisp/help-macro.el +++ b/lisp/help-macro.el @@ -1,6 +1,6 @@ ;;; help-macro.el --- makes command line help such as help-for-help -;; Copyright (C) 1993-1994, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1993-1994, 2001-2012 Free Software Foundation, Inc. ;; Author: Lynn Slater <lrs@indetech.com> ;; Maintainer: FSF diff --git a/lisp/help-mode.el b/lisp/help-mode.el index 5906683071b..b471962f21d 100644 --- a/lisp/help-mode.el +++ b/lisp/help-mode.el @@ -1,6 +1,6 @@ ;;; help-mode.el --- `help-mode' used by *Help* buffers -;; Copyright (C) 1985-1986, 1993-1994, 1998-2011 +;; Copyright (C) 1985-1986, 1993-1994, 1998-2012 ;; Free Software Foundation, Inc. ;; Maintainer: FSF diff --git a/lisp/help.el b/lisp/help.el index 36d49aae9b3..a38211332c6 100644 --- a/lisp/help.el +++ b/lisp/help.el @@ -1,6 +1,6 @@ ;;; help.el --- help commands for Emacs -;; Copyright (C) 1985-1986, 1993-1994, 1998-2011 +;; Copyright (C) 1985-1986, 1993-1994, 1998-2012 ;; Free Software Foundation, Inc. ;; Maintainer: FSF diff --git a/lisp/hex-util.el b/lisp/hex-util.el index c5ef6ac906a..caf5d740d32 100644 --- a/lisp/hex-util.el +++ b/lisp/hex-util.el @@ -1,6 +1,6 @@ ;;; hex-util.el --- Functions to encode/decode hexadecimal string. -;; Copyright (C) 1999, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1999, 2001-2012 Free Software Foundation, Inc. ;; Author: Shuhei KOBAYASHI <shuhei@aqua.ocn.ne.jp> ;; Keywords: data diff --git a/lisp/hexl.el b/lisp/hexl.el index fdafd97cdab..538d218e38e 100644 --- a/lisp/hexl.el +++ b/lisp/hexl.el @@ -1,6 +1,6 @@ ;;; hexl.el --- edit a file in a hex dump format using the hexl filter -*- lexical-binding: t -*- -;; Copyright (C) 1989, 1994, 1998, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1989, 1994, 1998, 2001-2012 Free Software Foundation, Inc. ;; Author: Keith Gabryelski <ag@wheaties.ai.mit.edu> ;; Maintainer: FSF diff --git a/lisp/hfy-cmap.el b/lisp/hfy-cmap.el index 7bf1da2bdd9..05fefdaaed6 100644 --- a/lisp/hfy-cmap.el +++ b/lisp/hfy-cmap.el @@ -1,6 +1,6 @@ ;;; hfy-cmap.el --- Fallback colour name -> rgb mapping for `htmlfontify' -;; Copyright (C) 2002-2003, 2009-2011 Free Software Foundation, Inc. +;; Copyright (C) 2002-2003, 2009-2012 Free Software Foundation, Inc. ;; Emacs Lisp Archive Entry ;; Package: htmlfontify diff --git a/lisp/hi-lock.el b/lisp/hi-lock.el index f659a7e8eef..32a041e6c09 100644 --- a/lisp/hi-lock.el +++ b/lisp/hi-lock.el @@ -1,6 +1,6 @@ ;;; hi-lock.el --- minor mode for interactive automatic highlighting -;; Copyright (C) 2000-2011 Free Software Foundation, Inc. +;; Copyright (C) 2000-2012 Free Software Foundation, Inc. ;; Author: David M. Koppelman <koppel@ece.lsu.edu> ;; Keywords: faces, minor-mode, matching, display diff --git a/lisp/hilit-chg.el b/lisp/hilit-chg.el index 50e631a95c5..0970ece9446 100644 --- a/lisp/hilit-chg.el +++ b/lisp/hilit-chg.el @@ -1,6 +1,6 @@ ;;; hilit-chg.el --- minor mode displaying buffer changes with special face -;; Copyright (C) 1998, 2000-2011 Free Software Foundation, Inc. +;; Copyright (C) 1998, 2000-2012 Free Software Foundation, Inc. ;; Author: Richard Sharman <rsharman@pobox.com> ;; Keywords: faces diff --git a/lisp/hippie-exp.el b/lisp/hippie-exp.el index 69da8fc6110..adcd83d33a5 100644 --- a/lisp/hippie-exp.el +++ b/lisp/hippie-exp.el @@ -1,6 +1,6 @@ ;;; hippie-exp.el --- expand text trying various ways to find its expansion -;; Copyright (C) 1992, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1992, 2001-2012 Free Software Foundation, Inc. ;; Author: Anders Holst <aho@sans.kth.se> ;; Last change: 3 March 1998 diff --git a/lisp/hl-line.el b/lisp/hl-line.el index b535398f107..8164d8ad790 100644 --- a/lisp/hl-line.el +++ b/lisp/hl-line.el @@ -1,6 +1,6 @@ ;;; hl-line.el --- highlight the current line -;; Copyright (C) 1998, 2000-2011 Free Software Foundation, Inc. +;; Copyright (C) 1998, 2000-2012 Free Software Foundation, Inc. ;; Author: Dave Love <fx@gnu.org> ;; Maintainer: FSF diff --git a/lisp/htmlfontify.el b/lisp/htmlfontify.el index b0fd37abd36..ac9d2c5ba04 100644 --- a/lisp/htmlfontify.el +++ b/lisp/htmlfontify.el @@ -1,6 +1,6 @@ ;;; htmlfontify.el --- htmlize a buffer/source tree with optional hyperlinks -;; Copyright (C) 2002-2003, 2009-2011 Free Software Foundation, Inc. +;; Copyright (C) 2002-2003, 2009-2012 Free Software Foundation, Inc. ;; Emacs Lisp Archive Entry ;; Package: htmlfontify @@ -2316,7 +2316,7 @@ You may also want to set `hfy-page-header' and `hfy-page-footer'." ;;;### (autoloads (hfy-fallback-colour-values htmlfontify-load-rgb-file) -;;;;;; "hfy-cmap" "hfy-cmap.el" "8dce008297f15826cc6ab82203c46fa6") +;;;;;; "hfy-cmap" "hfy-cmap.el" "ef24066922f1e27b7580d572f12fabbe") ;;; Generated autoloads from hfy-cmap.el (autoload 'htmlfontify-load-rgb-file "hfy-cmap" "\ diff --git a/lisp/ibuf-ext.el b/lisp/ibuf-ext.el index a0fae8d8671..22ec2f5df1f 100644 --- a/lisp/ibuf-ext.el +++ b/lisp/ibuf-ext.el @@ -1,6 +1,6 @@ ;;; ibuf-ext.el --- extensions for ibuffer -;; Copyright (C) 2000-2011 Free Software Foundation, Inc. +;; Copyright (C) 2000-2012 Free Software Foundation, Inc. ;; Author: Colin Walters <walters@verbum.org> ;; Maintainer: John Paul Wallington <jpw@gnu.org> diff --git a/lisp/ibuf-macs.el b/lisp/ibuf-macs.el index 9965e0ccfb2..f47592e82bb 100644 --- a/lisp/ibuf-macs.el +++ b/lisp/ibuf-macs.el @@ -1,6 +1,6 @@ ;;; ibuf-macs.el --- macros for ibuffer -;; Copyright (C) 2000-2011 Free Software Foundation, Inc. +;; Copyright (C) 2000-2012 Free Software Foundation, Inc. ;; Author: Colin Walters <walters@verbum.org> ;; Maintainer: John Paul Wallington <jpw@gnu.org> diff --git a/lisp/ibuffer.el b/lisp/ibuffer.el index cb511c4695e..17be5534138 100644 --- a/lisp/ibuffer.el +++ b/lisp/ibuffer.el @@ -1,6 +1,6 @@ ;;; ibuffer.el --- operate on buffers like dired -;; Copyright (C) 2000-2011 Free Software Foundation, Inc. +;; Copyright (C) 2000-2012 Free Software Foundation, Inc. ;; Author: Colin Walters <walters@verbum.org> ;; Maintainer: John Paul Wallington <jpw@gnu.org> @@ -2384,7 +2384,7 @@ currently open buffers, in addition to filtering your view to a particular subset of them, and sorting by various criteria. Operations on marked buffers: - +\\<ibuffer-mode-map> '\\[ibuffer-do-save]' - Save the marked buffers '\\[ibuffer-do-view]' - View the marked buffers in this frame. '\\[ibuffer-do-view-other-frame]' - View the marked buffers in another frame. @@ -2648,7 +2648,7 @@ will be inserted before the group at point." ;;;;;; 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" "897e64e4465af94b89e21fa84ae61290") +;;;;;; ibuffer-auto-mode) "ibuf-ext" "ibuf-ext.el" "1400db1bc3d4a3010cbc4807a6725072") ;;; Generated autoloads from ibuf-ext.el (autoload 'ibuffer-auto-mode "ibuf-ext" "\ diff --git a/lisp/icomplete.el b/lisp/icomplete.el index 53876f48a06..80a0bf1435b 100644 --- a/lisp/icomplete.el +++ b/lisp/icomplete.el @@ -1,6 +1,6 @@ ;;; icomplete.el --- minibuffer completion incremental feedback -;; Copyright (C) 1992-1994, 1997, 1999, 2001-2011 +;; Copyright (C) 1992-1994, 1997, 1999, 2001-2012 ;; Free Software Foundation, Inc. ;; Author: Ken Manheimer <klm@i.am> diff --git a/lisp/ido.el b/lisp/ido.el index f2dcba614a9..4be9807af96 100644 --- a/lisp/ido.el +++ b/lisp/ido.el @@ -1,6 +1,6 @@ ;;; ido.el --- interactively do things with buffers and files -;; Copyright (C) 1996-2011 Free Software Foundation, Inc. +;; Copyright (C) 1996-2012 Free Software Foundation, Inc. ;; Author: Kim F. Storm <storm@cua.dk> ;; Based on: iswitchb by Stephen Eglen <stephen@cns.ed.ac.uk> @@ -308,7 +308,7 @@ ;; ifindf package back into iswitchb. ;; ;; This is basically what ido (interactively do) is all about; but I -;; found it ackward to merge my changes into the "iswitchb-" namespace, +;; found it awkward to merge my changes into the "iswitchb-" namespace, ;; so I invented a common "ido-" namespace for the merged packages. ;; ;; This version is based on ido.el version 1.57 released on diff --git a/lisp/ielm.el b/lisp/ielm.el index 94bb299eaac..c93f235d81f 100644 --- a/lisp/ielm.el +++ b/lisp/ielm.el @@ -1,6 +1,6 @@ ;;; ielm.el --- interaction mode for Emacs Lisp -;; Copyright (C) 1994, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1994, 2001-2012 Free Software Foundation, Inc. ;; Author: David Smith <maa036@lancaster.ac.uk> ;; Maintainer: FSF diff --git a/lisp/iimage.el b/lisp/iimage.el index 61347c5024c..674e885a243 100644 --- a/lisp/iimage.el +++ b/lisp/iimage.el @@ -1,6 +1,6 @@ ;;; iimage.el --- Inline image minor mode. -;; Copyright (C) 2004-2011 Free Software Foundation, Inc. +;; Copyright (C) 2004-2012 Free Software Foundation, Inc. ;; Author: KOSEKI Yoshinori <kose@meadowy.org> ;; Maintainer: KOSEKI Yoshinori <kose@meadowy.org> diff --git a/lisp/image-dired.el b/lisp/image-dired.el index 4a164dfaa42..8151985e747 100644 --- a/lisp/image-dired.el +++ b/lisp/image-dired.el @@ -1,6 +1,6 @@ ;;; image-dired.el --- use dired to browse and manipulate your images ;; -;; Copyright (C) 2005-2011 Free Software Foundation, Inc. +;; Copyright (C) 2005-2012 Free Software Foundation, Inc. ;; ;; Version: 0.4.11 ;; Keywords: multimedia diff --git a/lisp/image-file.el b/lisp/image-file.el index 52012b12a56..efbbfcb03b0 100644 --- a/lisp/image-file.el +++ b/lisp/image-file.el @@ -1,6 +1,6 @@ ;;; image-file.el --- support for visiting image files ;; -;; Copyright (C) 2000-2011 Free Software Foundation, Inc. +;; Copyright (C) 2000-2012 Free Software Foundation, Inc. ;; ;; Author: Miles Bader <miles@gnu.org> ;; Keywords: multimedia diff --git a/lisp/image-mode.el b/lisp/image-mode.el index f3e7caab174..a9a8d15e6a0 100644 --- a/lisp/image-mode.el +++ b/lisp/image-mode.el @@ -1,6 +1,6 @@ ;;; image-mode.el --- support for visiting image files ;; -;; Copyright (C) 2005-2011 Free Software Foundation, Inc. +;; Copyright (C) 2005-2012 Free Software Foundation, Inc. ;; ;; Author: Richard Stallman <rms@gnu.org> ;; Keywords: multimedia diff --git a/lisp/image.el b/lisp/image.el index c150f4239dd..15b82d12dcd 100644 --- a/lisp/image.el +++ b/lisp/image.el @@ -1,6 +1,6 @@ ;;; image.el --- image API -;; Copyright (C) 1998-2011 Free Software Foundation, Inc. +;; Copyright (C) 1998-2012 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: multimedia diff --git a/lisp/imenu.el b/lisp/imenu.el index 6be6b85af8a..9a847f32e89 100644 --- a/lisp/imenu.el +++ b/lisp/imenu.el @@ -1,6 +1,6 @@ ;;; imenu.el --- framework for mode-specific buffer indexes -;; Copyright (C) 1994-1998, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1994-1998, 2001-2012 Free Software Foundation, Inc. ;; Author: Ake Stenhoff <etxaksf@aom.ericsson.se> ;; Lars Lindberg <lli@sypro.cap.se> diff --git a/lisp/indent.el b/lisp/indent.el index f5850de8b8f..7032aabd496 100644 --- a/lisp/indent.el +++ b/lisp/indent.el @@ -1,6 +1,6 @@ ;;; indent.el --- indentation commands for Emacs -;; Copyright (C) 1985, 1995, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1985, 1995, 2001-2012 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Package: emacs diff --git a/lisp/info-look.el b/lisp/info-look.el index 13edc0269dd..5eca62ed1bd 100644 --- a/lisp/info-look.el +++ b/lisp/info-look.el @@ -1,7 +1,7 @@ ;;; info-look.el --- major-mode-sensitive Info index lookup facility -*- lexical-binding: t -*- ;; An older version of this was known as libc.el. -;; Copyright (C) 1995-1999, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1995-1999, 2001-2012 Free Software Foundation, Inc. ;; Author: Ralph Schleicher <rs@nunatak.allgaeu.org> ;; (did not show signs of life (Nov 2001) -stef) diff --git a/lisp/info-xref.el b/lisp/info-xref.el index 805bec064cf..69ec00ce09d 100644 --- a/lisp/info-xref.el +++ b/lisp/info-xref.el @@ -1,6 +1,6 @@ ;;; info-xref.el --- check external references in an Info document -;; Copyright (C) 2003-2011 Free Software Foundation, Inc. +;; Copyright (C) 2003-2012 Free Software Foundation, Inc. ;; Author: Kevin Ryde <user42@zip.com.au> ;; Keywords: docs diff --git a/lisp/info.el b/lisp/info.el index c1dae66bea2..94d29518995 100644 --- a/lisp/info.el +++ b/lisp/info.el @@ -1,6 +1,6 @@ ;; info.el --- info package for Emacs -;; Copyright (C) 1985-1986, 1992-2011 Free Software Foundation, Inc. +;; Copyright (C) 1985-1986, 1992-2012 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: help @@ -3706,7 +3706,7 @@ If FORK is non-nil, it is passed to `Info-goto-node'." (define-key map "b" 'beginning-of-buffer) (put 'beginning-of-buffer :advertised-binding "b") (define-key map "d" 'Info-directory) - (define-key map "e" 'Info-edit) + (define-key map "e" 'end-of-buffer) (define-key map "f" 'Info-follow-reference) (define-key map "g" 'Info-goto-node) (define-key map "h" 'Info-help) diff --git a/lisp/informat.el b/lisp/informat.el index be60b12bbac..f64cede4aea 100644 --- a/lisp/informat.el +++ b/lisp/informat.el @@ -1,6 +1,6 @@ ;;; informat.el --- info support functions package for Emacs -;; Copyright (C) 1986, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1986, 2001-2012 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: help diff --git a/lisp/international/ccl.el b/lisp/international/ccl.el index 457fe84c0b1..e8a0883ae92 100644 --- a/lisp/international/ccl.el +++ b/lisp/international/ccl.el @@ -1,6 +1,6 @@ ;;; ccl.el --- CCL (Code Conversion Language) compiler -;; Copyright (C) 1997-1998, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1997-1998, 2001-2012 Free Software Foundation, Inc. ;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, ;; 2005, 2006, 2007, 2008, 2009, 2010, 2011 ;; National Institute of Advanced Industrial Science and Technology (AIST) @@ -1469,7 +1469,7 @@ OPERATOR := | de-sjis ;; If ARG_0 and ARG_1 are the first and second code point of - ;; JISX0208 character CHAR, and SJIS is the correponding + ;; JISX0208 character CHAR, and SJIS is the corresponding ;; Shift-JIS code, ;; (REG = ARG_0 en-sjis ARG_1) means: ;; ((REG = HIGH) diff --git a/lisp/international/characters.el b/lisp/international/characters.el index 55aee4d53db..d7b55d56093 100644 --- a/lisp/international/characters.el +++ b/lisp/international/characters.el @@ -1,6 +1,6 @@ ;;; characters.el --- set syntax and category for multibyte characters -;; Copyright (C) 1997, 2000-2011 Free Software Foundation, Inc. +;; Copyright (C) 1997, 2000-2012 Free Software Foundation, Inc. ;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, ;; 2005, 2006, 2007, 2008, 2009, 2010, 2011 ;; National Institute of Advanced Industrial Science and Technology (AIST) diff --git a/lisp/international/fontset.el b/lisp/international/fontset.el index 2425ee46eea..561194d710c 100644 --- a/lisp/international/fontset.el +++ b/lisp/international/fontset.el @@ -1,6 +1,6 @@ ;;; fontset.el --- commands for handling fontset -;; Copyright (C) 1997-2011 Free Software Foundation, Inc. +;; Copyright (C) 1997-2012 Free Software Foundation, Inc. ;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, ;; 2005, 2006, 2007, 2008, 2009, 2010, 2011 ;; National Institute of Advanced Industrial Science and Technology (AIST) diff --git a/lisp/international/isearch-x.el b/lisp/international/isearch-x.el index cb6856964c0..61f7cc3f0de 100644 --- a/lisp/international/isearch-x.el +++ b/lisp/international/isearch-x.el @@ -1,6 +1,6 @@ ;;; isearch-x.el --- extended isearch handling commands -;; Copyright (C) 1997, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1997, 2001-2012 Free Software Foundation, Inc. ;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, ;; 2005, 2006, 2007, 2008, 2009, 2010, 2011 ;; National Institute of Advanced Industrial Science and Technology (AIST) diff --git a/lisp/international/iso-ascii.el b/lisp/international/iso-ascii.el index 491a7c02ba4..f994a93c043 100644 --- a/lisp/international/iso-ascii.el +++ b/lisp/international/iso-ascii.el @@ -1,6 +1,6 @@ ;;; iso-ascii.el --- set up char tables for ISO 8859/1 on ASCII terminals -;; Copyright (C) 1987, 1995, 1998, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1987, 1995, 1998, 2001-2012 Free Software Foundation, Inc. ;; Author: Howard Gayle ;; Maintainer: FSF diff --git a/lisp/international/iso-cvt.el b/lisp/international/iso-cvt.el index 6ccd1c21739..3f8b61af6e1 100644 --- a/lisp/international/iso-cvt.el +++ b/lisp/international/iso-cvt.el @@ -1,7 +1,7 @@ ;;; iso-cvt.el --- translate ISO 8859-1 from/to various encodings -*- coding: iso-latin-1 -*- ;; This file was formerly called gm-lingo.el. -;; Copyright (C) 1993-1998, 2000-2011 Free Software Foundation, Inc. +;; Copyright (C) 1993-1998, 2000-2012 Free Software Foundation, Inc. ;; Author: Michael Gschwind <mike@vlsivie.tuwien.ac.at> ;; Keywords: tex, iso, latin, i18n diff --git a/lisp/international/iso-transl.el b/lisp/international/iso-transl.el index 49b1f6ef231..1afe00eeb2e 100644 --- a/lisp/international/iso-transl.el +++ b/lisp/international/iso-transl.el @@ -1,6 +1,6 @@ ;;; iso-transl.el --- keyboard input definitions for ISO 8859-1 -*- coding: iso-8859-1 -*- -;; Copyright (C) 1987, 1993-1999, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1987, 1993-1999, 2001-2012 Free Software Foundation, Inc. ;; Author: Howard Gayle ;; Maintainer: FSF diff --git a/lisp/international/kinsoku.el b/lisp/international/kinsoku.el index b0ca522dee4..04ca9de690d 100644 --- a/lisp/international/kinsoku.el +++ b/lisp/international/kinsoku.el @@ -1,6 +1,6 @@ ;;; kinsoku.el --- `Kinsoku' processing funcs -*- coding: iso-2022-7bit; -*- -;; Copyright (C) 1997, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1997, 2001-2012 Free Software Foundation, Inc. ;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, ;; 2005, 2006, 2007, 2008, 2009, 2010, 2011 ;; National Institute of Advanced Industrial Science and Technology (AIST) diff --git a/lisp/international/kkc.el b/lisp/international/kkc.el index 03e5202438f..751d0dd4d9e 100644 --- a/lisp/international/kkc.el +++ b/lisp/international/kkc.el @@ -1,6 +1,6 @@ ;;; kkc.el --- Kana Kanji converter -*- coding: iso-2022-7bit; -*- -;; Copyright (C) 1997-1998, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1997-1998, 2001-2012 Free Software Foundation, Inc. ;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, ;; 2005, 2006, 2007, 2008, 2009, 2010, 2011 ;; National Institute of Advanced Industrial Science and Technology (AIST) diff --git a/lisp/international/latexenc.el b/lisp/international/latexenc.el index d5a7713dbec..10d0a5bbd32 100644 --- a/lisp/international/latexenc.el +++ b/lisp/international/latexenc.el @@ -1,6 +1,6 @@ ;;; latexenc.el --- guess correct coding system in LaTeX files -*-coding: iso-2022-7bit -*- -;; Copyright (C) 2005-2011 Free Software Foundation, Inc. +;; Copyright (C) 2005-2012 Free Software Foundation, Inc. ;; Author: Arne J,Ax(Brgensen <arne@arnested.dk> ;; Keywords: mule, coding system, latex diff --git a/lisp/international/latin1-disp.el b/lisp/international/latin1-disp.el index 1c9b06beab8..964f01c982c 100644 --- a/lisp/international/latin1-disp.el +++ b/lisp/international/latin1-disp.el @@ -1,6 +1,6 @@ ;;; latin1-disp.el --- display tables for other ISO 8859 on Latin-1 terminals -*-coding: iso-2022-7bit;-*- -;; Copyright (C) 2000-2011 Free Software Foundation, Inc. +;; Copyright (C) 2000-2012 Free Software Foundation, Inc. ;; Author: Dave Love <fx@gnu.org> ;; Keywords: i18n diff --git a/lisp/international/mule-cmds.el b/lisp/international/mule-cmds.el index 0a5d6ed954c..cbe548c2ccf 100644 --- a/lisp/international/mule-cmds.el +++ b/lisp/international/mule-cmds.el @@ -1,6 +1,6 @@ ;;; mule-cmds.el --- commands for multilingual environment -*-coding: iso-2022-7bit -*- -;; Copyright (C) 1997-2011 Free Software Foundation, Inc. +;; Copyright (C) 1997-2012 Free Software Foundation, Inc. ;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, ;; 2005, 2006, 2007, 2008, 2009, 2010, 2011 ;; National Institute of Advanced Industrial Science and Technology (AIST) @@ -1031,7 +1031,7 @@ It is highly recommended to fix it before writing to a file." and try again)? " coding-system auto-cs)) (error "Save aborted")))) (when (and tick (/= tick (buffer-chars-modified-tick))) - (error "Cancelled because the buffer was modified")) + (error "Canceled because the buffer was modified")) coding-system))) (setq select-safe-coding-system-function 'select-safe-coding-system) diff --git a/lisp/international/mule-conf.el b/lisp/international/mule-conf.el index e27424b2328..4647b778e59 100644 --- a/lisp/international/mule-conf.el +++ b/lisp/international/mule-conf.el @@ -1,6 +1,6 @@ ;;; mule-conf.el --- configure multilingual environment -;; Copyright (C) 1997-2011 Free Software Foundation, Inc. +;; Copyright (C) 1997-2012 Free Software Foundation, Inc. ;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 ;; National Institute of Advanced Industrial Science and Technology (AIST) ;; Registration Number H14PRO021 diff --git a/lisp/international/mule-diag.el b/lisp/international/mule-diag.el index efb910a3ef6..bd7257bbc0f 100644 --- a/lisp/international/mule-diag.el +++ b/lisp/international/mule-diag.el @@ -1,6 +1,6 @@ ;;; mule-diag.el --- show diagnosis of multilingual environment (Mule) -;; Copyright (C) 1997-1998, 2000-2011 Free Software Foundation, Inc. +;; Copyright (C) 1997-1998, 2000-2012 Free Software Foundation, Inc. ;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, ;; 2005, 2006, 2007, 2008, 2009, 2010, 2011 ;; National Institute of Advanced Industrial Science and Technology (AIST) diff --git a/lisp/international/mule-util.el b/lisp/international/mule-util.el index f0a5ebbee40..7b152a47727 100644 --- a/lisp/international/mule-util.el +++ b/lisp/international/mule-util.el @@ -1,6 +1,6 @@ ;;; mule-util.el --- utility functions for multilingual environment (mule) -;; Copyright (C) 1997-1998, 2000-2011 Free Software Foundation, Inc. +;; Copyright (C) 1997-1998, 2000-2012 Free Software Foundation, Inc. ;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, ;; 2005, 2006, 2007, 2008, 2009, 2010, 2011 ;; National Institute of Advanced Industrial Science and Technology (AIST) diff --git a/lisp/international/mule.el b/lisp/international/mule.el index 1beffa5218b..17163071d3f 100644 --- a/lisp/international/mule.el +++ b/lisp/international/mule.el @@ -1,6 +1,6 @@ ;;; mule.el --- basic commands for multilingual environment -;; Copyright (C) 1997-2011 Free Software Foundation, Inc. +;; Copyright (C) 1997-2012 Free Software Foundation, Inc. ;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, ;; 2005, 2006, 2007, 2008, 2009, 2010, 2011 ;; National Institute of Advanced Industrial Science and Technology (AIST) diff --git a/lisp/international/ogonek.el b/lisp/international/ogonek.el index cc8d1e25c66..39a88001112 100644 --- a/lisp/international/ogonek.el +++ b/lisp/international/ogonek.el @@ -1,6 +1,6 @@ ;;; ogonek.el --- change the encoding of Polish diacritics -;; Copyright (C) 1997-1998, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1997-1998, 2001-2012 Free Software Foundation, Inc. ;; Author: W{\l}odek Bzyl ;; Ryszard Kubiak diff --git a/lisp/international/quail.el b/lisp/international/quail.el index 3a70b1ec2a5..1dd5e3551c7 100644 --- a/lisp/international/quail.el +++ b/lisp/international/quail.el @@ -1,6 +1,6 @@ ;;; quail.el --- provides simple input method for multilingual text -;; Copyright (C) 1997-1998, 2000-2011 Free Software Foundation, Inc. +;; Copyright (C) 1997-1998, 2000-2012 Free Software Foundation, Inc. ;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, ;; 2005, 2006, 2007, 2008, 2009, 2010, 2011 ;; National Institute of Advanced Industrial Science and Technology (AIST) @@ -2832,7 +2832,7 @@ STATE-n are symbols to denote state. STATE-0 is the initial state. TRANSITION-n-m are transition rules from STATE-n, and have the form \(RULES . STATE-x) or RULES, where STATE-x is one of STATE-n above, RULES is a symbol whose value is an alist of keys \(string) vs the -correponding characters or strings. The format of the symbol value of +corresponding characters or strings. The format of the symbol value of RULES is the same as arguments to `quail-define-rules'. If TRANSITION-n-m has the form (RULES . STATE-x), it means that @@ -2846,7 +2846,7 @@ The generated map can be set for the current Quail package by the function `quail-install-map' (which see)." (let ((state-alist (mapcar (lambda (x) (list (car x))) table)) tail elt) - ;; STATE-ALIST is an alist of states vs the correponding sub Quail + ;; STATE-ALIST is an alist of states vs the corresponding sub Quail ;; map. It is now initialized to ((STATE-0) (STATE-1) ...). ;; Set key sequence mapping rules in cdr part of each element. (while table diff --git a/lisp/international/robin.el b/lisp/international/robin.el index 443a292f4c1..c50277686ff 100644 --- a/lisp/international/robin.el +++ b/lisp/international/robin.el @@ -50,9 +50,9 @@ ;; identified by a string called package name. Use robin-define-package ;; to define a robin package. -;; (robin-define-package NAME DOCTSTRING -;; (INPUT1 OUPUT1) -;; (INPUT2 OUPUT2) +;; (robin-define-package NAME DOCSTRING +;; (INPUT1 OUTPUT1) +;; (INPUT2 OUTPUT2) ;; ...) ;; NAME is a string identifying the robin package. It often starts with a diff --git a/lisp/international/titdic-cnv.el b/lisp/international/titdic-cnv.el index 82349761bdb..21b0fdec6e4 100644 --- a/lisp/international/titdic-cnv.el +++ b/lisp/international/titdic-cnv.el @@ -1,6 +1,6 @@ ;;; titdic-cnv.el --- convert cxterm dictionary (TIT format) to Quail package -*- coding:iso-2022-7bit; -*- -;; Copyright (C) 1997-1998, 2000-2011 Free Software Foundation, Inc. +;; Copyright (C) 1997-1998, 2000-2012 Free Software Foundation, Inc. ;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, ;; 2005, 2006, 2007, 2008, 2009, 2010, 2011 ;; National Institute of Advanced Industrial Science and Technology (AIST) @@ -103,7 +103,7 @@ For example: \\<quail-translation-docstring> -For double-width GB2312 characters correponding to ASCII, use the +For double-width GB2312 characters corresponding to ASCII, use the input method `chinese-qj'.") ("chinese-ecdict" "$(05CKH(B" @@ -191,7 +191,7 @@ For instance, to input $ADc(B, you type \"n i 3 3\", the first \"n i\" is a Pinyin, the next \"3\" specifies tone, and the last \"3\" selects the third character from the candidate list. -For double-width GB2312 characters correponding to ASCII, use the +For double-width GB2312 characters corresponding to ASCII, use the input method `chinese-qj'.") ("chinese-zozy" "$(0I\0D(B" diff --git a/lisp/international/ucs-normalize.el b/lisp/international/ucs-normalize.el index 8d13eb2039d..cc75cc21cbe 100644 --- a/lisp/international/ucs-normalize.el +++ b/lisp/international/ucs-normalize.el @@ -1,6 +1,6 @@ ;;; ucs-normalize.el --- Unicode normalization NFC/NFD/NFKD/NFKC -;; Copyright (C) 2009-2011 Free Software Foundation, Inc. +;; Copyright (C) 2009-2012 Free Software Foundation, Inc. ;; Author: Taichi Kawabata <kawabata.taichi@gmail.com> ;; Keywords: unicode, normalization diff --git a/lisp/international/utf-7.el b/lisp/international/utf-7.el index e27bf26e17d..8e10c94900a 100644 --- a/lisp/international/utf-7.el +++ b/lisp/international/utf-7.el @@ -1,6 +1,6 @@ ;;; utf-7.el --- utf-7 coding system -;; Copyright (C) 2003-2011 Free Software Foundation, Inc. +;; Copyright (C) 2003-2012 Free Software Foundation, Inc. ;; Author: Dave Love <fx@gnu.org> ;; Keywords: i18n, mail diff --git a/lisp/isearch.el b/lisp/isearch.el index 01dff91a1ff..a6cc69be9a6 100644 --- a/lisp/isearch.el +++ b/lisp/isearch.el @@ -1,6 +1,6 @@ ;;; isearch.el --- incremental search minor mode -;; Copyright (C) 1992-1997, 1999-2011 Free Software Foundation, Inc. +;; Copyright (C) 1992-1997, 1999-2012 Free Software Foundation, Inc. ;; Author: Daniel LaLiberte <liberte@cs.uiuc.edu> ;; Maintainer: FSF diff --git a/lisp/isearchb.el b/lisp/isearchb.el index 721fce8ef9a..030e4925619 100644 --- a/lisp/isearchb.el +++ b/lisp/isearchb.el @@ -1,6 +1,6 @@ ;;; isearchb --- a marriage between iswitchb and isearch -;; Copyright (C) 2004-2011 Free Software Foundation, Inc. +;; Copyright (C) 2004-2012 Free Software Foundation, Inc. ;; Author: John Wiegley <johnw@gnu.org> ;; Maintainer: FSF diff --git a/lisp/iswitchb.el b/lisp/iswitchb.el index 21201c6cff5..86cef14960e 100644 --- a/lisp/iswitchb.el +++ b/lisp/iswitchb.el @@ -1,6 +1,6 @@ ;;; iswitchb.el --- switch between buffers using substrings -;; Copyright (C) 1996-1997, 2000-2011 Free Software Foundation, Inc. +;; Copyright (C) 1996-1997, 2000-2012 Free Software Foundation, Inc. ;; Author: Stephen Eglen <stephen@gnu.org> ;; Maintainer: Stephen Eglen <stephen@gnu.org> diff --git a/lisp/jit-lock.el b/lisp/jit-lock.el index b65b186b4e2..ec44b17835c 100644 --- a/lisp/jit-lock.el +++ b/lisp/jit-lock.el @@ -1,6 +1,6 @@ ;;; jit-lock.el --- just-in-time fontification -;; Copyright (C) 1998, 2000-2011 Free Software Foundation, Inc. +;; Copyright (C) 1998, 2000-2012 Free Software Foundation, Inc. ;; Author: Gerd Moellmann <gerd@gnu.org> ;; Keywords: faces files diff --git a/lisp/jka-cmpr-hook.el b/lisp/jka-cmpr-hook.el index bf312445f17..d09e64634c3 100644 --- a/lisp/jka-cmpr-hook.el +++ b/lisp/jka-cmpr-hook.el @@ -1,6 +1,6 @@ ;;; jka-cmpr-hook.el --- preloaded code to enable jka-compr.el -;; Copyright (C) 1993-1995, 1997, 1999-2000, 2002-2011 +;; Copyright (C) 1993-1995, 1997, 1999-2000, 2002-2012 ;; Free Software Foundation, Inc. ;; Author: jka@ece.cmu.edu (Jay K. Adams) diff --git a/lisp/jka-compr.el b/lisp/jka-compr.el index cd769885cc6..786e4292d5f 100644 --- a/lisp/jka-compr.el +++ b/lisp/jka-compr.el @@ -1,6 +1,6 @@ ;;; jka-compr.el --- reading/writing/loading compressed files -;; Copyright (C) 1993-1995, 1997, 1999-2011 Free Software Foundation, Inc. +;; Copyright (C) 1993-1995, 1997, 1999-2012 Free Software Foundation, Inc. ;; Author: jka@ece.cmu.edu (Jay K. Adams) ;; Maintainer: FSF diff --git a/lisp/json.el b/lisp/json.el index 2debd46c842..468358ccd1a 100644 --- a/lisp/json.el +++ b/lisp/json.el @@ -1,6 +1,6 @@ ;;; json.el --- JavaScript Object Notation parser / generator -;; Copyright (C) 2006-2011 Free Software Foundation, Inc. +;; Copyright (C) 2006-2012 Free Software Foundation, Inc. ;; Author: Edward O'Connor <ted@oconnor.cx> ;; Version: 1.3 diff --git a/lisp/kermit.el b/lisp/kermit.el index 3c8f52db0cd..dc76c41505e 100644 --- a/lisp/kermit.el +++ b/lisp/kermit.el @@ -1,6 +1,6 @@ ;;; kermit.el --- additions to shell mode for use with kermit -;; Copyright (C) 1988, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1988, 2001-2012 Free Software Foundation, Inc. ;; Author: Jeff Norden <jeff@colgate.csnet> ;; Maintainer: FSF diff --git a/lisp/kmacro.el b/lisp/kmacro.el index 6915640944a..c8dd05f7c4d 100644 --- a/lisp/kmacro.el +++ b/lisp/kmacro.el @@ -1,6 +1,6 @@ ;;; kmacro.el --- enhanced keyboard macros -;; Copyright (C) 2002-2011 Free Software Foundation, Inc. +;; Copyright (C) 2002-2012 Free Software Foundation, Inc. ;; Author: Kim F. Storm <storm@cua.dk> ;; Keywords: keyboard convenience diff --git a/lisp/language/china-util.el b/lisp/language/china-util.el index 9f79dd087bb..f68420b070c 100644 --- a/lisp/language/china-util.el +++ b/lisp/language/china-util.el @@ -1,6 +1,6 @@ ;;; china-util.el --- utilities for Chinese -*- coding: iso-2022-7bit -*- -;; Copyright (C) 1995, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1995, 2001-2012 Free Software Foundation, Inc. ;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, ;; 2005, 2006, 2007, 2008, 2009, 2010, 2011 ;; National Institute of Advanced Industrial Science and Technology (AIST) diff --git a/lisp/language/chinese.el b/lisp/language/chinese.el index 0e87d4d8e8c..ac2afa373c4 100644 --- a/lisp/language/chinese.el +++ b/lisp/language/chinese.el @@ -1,6 +1,6 @@ ;;; chinese.el --- support for Chinese -*- coding: iso-2022-7bit; -*- -;; Copyright (C) 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 2001-2012 Free Software Foundation, Inc. ;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, ;; 2005, 2006, 2007, 2008, 2009, 2010, 2011 ;; National Institute of Advanced Industrial Science and Technology (AIST) diff --git a/lisp/language/cyril-util.el b/lisp/language/cyril-util.el index e833bb7ab04..eb72a7b1c1d 100644 --- a/lisp/language/cyril-util.el +++ b/lisp/language/cyril-util.el @@ -1,6 +1,6 @@ ;;; cyril-util.el --- utilities for Cyrillic scripts -;; Copyright (C) 1997-1998, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1997-1998, 2001-2012 Free Software Foundation, Inc. ;; Keywords: mule, multilingual, Cyrillic diff --git a/lisp/language/cyrillic.el b/lisp/language/cyrillic.el index 8fb7fae720d..33c5fbbf3f1 100644 --- a/lisp/language/cyrillic.el +++ b/lisp/language/cyrillic.el @@ -1,6 +1,6 @@ ;;; cyrillic.el --- support for Cyrillic -*- coding: iso-2022-7bit; -*- -;; Copyright (C) 1997-1998, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1997-1998, 2001-2012 Free Software Foundation, Inc. ;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, ;; 2005, 2006, 2007, 2008, 2009, 2010, 2011 ;; National Institute of Advanced Industrial Science and Technology (AIST) @@ -126,7 +126,7 @@ Support for Russian using koi8-r and the russian-computer input method.") (define-coding-system 'koi8-u "KOI8-U 8-bit encoding for Cyrillic (MIME: KOI8-U)" :coding-type 'charset - :mnemonic ?U + :mnemonic ?U :charset-list '(koi8-u) :mime-charset 'koi8-u) @@ -246,7 +246,7 @@ Support for Russian using koi8-r and the russian-computer input method.") (ctext-non-standard-encodings "microsoft-cp1251") (input-method . "bulgarian-bds") (documentation - . "Support for Bulgrian with windows-1251 character set.")) + . "Support for Bulgarian with windows-1251 character set.")) '("Cyrillic")) (set-language-info-alist diff --git a/lisp/language/czech.el b/lisp/language/czech.el index 2325699e30e..93f75694555 100644 --- a/lisp/language/czech.el +++ b/lisp/language/czech.el @@ -1,6 +1,6 @@ ;;; czech.el --- support for Czech -*- coding: iso-2022-7bit; no-byte-compile: t -*- -;; Copyright (C) 1998, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1998, 2001-2012 Free Software Foundation, Inc. ;; Author: Milan Zamazal <pdm@zamazal.org> ;; Maintainer: Pavel Jan,Am(Bk <Pavel@Janik.cz> diff --git a/lisp/language/english.el b/lisp/language/english.el index dd96d38a197..6d106a5e070 100644 --- a/lisp/language/english.el +++ b/lisp/language/english.el @@ -1,6 +1,6 @@ ;;; english.el --- support for English -*- no-byte-compile: t -*- -;; Copyright (C) 1997, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1997, 2001-2012 Free Software Foundation, Inc. ;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, ;; 2006, 2007, 2008, 2009, 2010, 2011 ;; National Institute of Advanced Industrial Science and Technology (AIST) @@ -30,7 +30,7 @@ ;; We need nothing special to support English on Emacs. Selecting ;; English as a language environment is one of the ways to reset -;; various multilingual environment to the original settting. +;; various multilingual environment to the original setting. ;;; Code: diff --git a/lisp/language/ethio-util.el b/lisp/language/ethio-util.el index 306a7bee9dc..e61645c10fc 100644 --- a/lisp/language/ethio-util.el +++ b/lisp/language/ethio-util.el @@ -1,6 +1,6 @@ -;;; ethio-util.el --- utilities for Ethiopic -*- coding: utf-8; -*- +;;; ethio-util.el --- utilities for Ethiopic -*- coding: utf-8-emacs; -*- -;; Copyright (C) 1997-1998, 2002-2011 Free Software Foundation, Inc. +;; Copyright (C) 1997-1998, 2002-2012 Free Software Foundation, Inc. ;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, ;; 2006, 2007, 2008, 2009, 2010, 2011 ;; National Institute of Advanced Industrial Science and Technology (AIST) @@ -48,7 +48,7 @@ ([f4] . ethio-sera-to-fidel-buffer) ([S-f4] . ethio-sera-to-fidel-region) ([C-f4] . ethio-sera-to-fidel-marker) - ([S-f5] . ethio-toggle-punctuation) + ;; ([S-f5] . ethio-toggle-punctuation) ([S-f6] . ethio-modify-vowel) ([S-f7] . ethio-replace-space) ;; ([S-f8] . ethio-input-special-character) ; deprecated diff --git a/lisp/language/ethiopic.el b/lisp/language/ethiopic.el index 13a645a9975..c25710e953a 100644 --- a/lisp/language/ethiopic.el +++ b/lisp/language/ethiopic.el @@ -1,6 +1,6 @@ ;;; ethiopic.el --- support for Ethiopic -*- coding: utf-8-emacs; -*- -;; Copyright (C) 1997, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1997, 2001-2012 Free Software Foundation, Inc. ;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, ;; 2005, 2006, 2007, 2008, 2009, 2010, 2011 ;; National Institute of Advanced Industrial Science and Technology (AIST) diff --git a/lisp/language/european.el b/lisp/language/european.el index 3c2cb083ff6..b658f93d90f 100644 --- a/lisp/language/european.el +++ b/lisp/language/european.el @@ -1,6 +1,6 @@ ;;; european.el --- support for European languages -*- coding: iso-2022-7bit; -*- -;; Copyright (C) 1997-1998, 2000-2011 Free Software Foundation, Inc. +;; Copyright (C) 1997-1998, 2000-2012 Free Software Foundation, Inc. ;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, ;; 2005, 2006, 2007, 2008, 2009, 2010, 2011 ;; National Institute of Advanced Industrial Science and Technology (AIST) diff --git a/lisp/language/georgian.el b/lisp/language/georgian.el index be6da8cba17..fcbd395e131 100644 --- a/lisp/language/georgian.el +++ b/lisp/language/georgian.el @@ -1,6 +1,6 @@ ;;; georgian.el --- language support for Georgian -*- no-byte-compile: t -*- -;; Copyright (C) 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 2001-2012 Free Software Foundation, Inc. ;; Author: Dave Love <fx@gnu.org> ;; Keywords: i18n diff --git a/lisp/language/hanja-util.el b/lisp/language/hanja-util.el index bd661083406..337bf4b4c0e 100644 --- a/lisp/language/hanja-util.el +++ b/lisp/language/hanja-util.el @@ -1,6 +1,6 @@ ;;; hanja-util.el --- Korean Hanja util module -*- coding: utf-8 -*- -;; Copyright (C) 2008-2011 Free Software Foundation, Inc. +;; Copyright (C) 2008-2012 Free Software Foundation, Inc. ;; Author: Jihyun Cho <jihyun.jo@gmail.com> ;; Keywords: multilingual, input method, Korean, Hanja @@ -6438,7 +6438,7 @@ character. This variable is initialized by `hanja-init-load'.") ;; List of current conversion status. ;; The first element is the strating position of shown list. -;; It is a group number each splited by `hanja-list-width'. +;; It is a group number each split by `hanja-list-width'. ;; The second element is the position of selected element. ;; The third element is a list of suitable Hanja candidate. (defvar hanja-conversions diff --git a/lisp/language/hebrew.el b/lisp/language/hebrew.el index fd3e16b307a..c9896bb60a1 100644 --- a/lisp/language/hebrew.el +++ b/lisp/language/hebrew.el @@ -1,6 +1,6 @@ ;;; hebrew.el --- support for Hebrew -*- coding: utf-8 -*- -;; Copyright (C) 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 2001-2012 Free Software Foundation, Inc. ;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, ;; 2005, 2006, 2007, 2008, 2009, 2010, 2011 ;; National Institute of Advanced Industrial Science and Technology (AIST) diff --git a/lisp/language/ind-util.el b/lisp/language/ind-util.el index 0e548420383..c7eb1492c07 100644 --- a/lisp/language/ind-util.el +++ b/lisp/language/ind-util.el @@ -1,6 +1,6 @@ ;;; ind-util.el --- Transliteration and Misc. Tools for Indian Languages -*- coding: iso-2022-7bit; -*- -;; Copyright (C) 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 2001-2012 Free Software Foundation, Inc. ;; Maintainer: KAWABATA, Taichi <kawabata@m17n.org> ;; Keywords: multilingual, Indian, Devanagari diff --git a/lisp/language/indian.el b/lisp/language/indian.el index 8203213d8eb..29ac14eda41 100644 --- a/lisp/language/indian.el +++ b/lisp/language/indian.el @@ -1,6 +1,6 @@ ;;; indian.el --- Indian languages support -*- coding: utf-8; -*- -;; Copyright (C) 1997, 1999, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1997, 1999, 2001-2012 Free Software Foundation, Inc. ;; Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 ;; National Institute of Advanced Industrial Science and Technology (AIST) ;; Registration Number H14PRO021 diff --git a/lisp/language/japan-util.el b/lisp/language/japan-util.el index dcf3dc0f90e..9be3c44b4da 100644 --- a/lisp/language/japan-util.el +++ b/lisp/language/japan-util.el @@ -1,6 +1,6 @@ ;;; japan-util.el --- utilities for Japanese -*- coding: iso-2022-7bit; -*- -;; Copyright (C) 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 2001-2012 Free Software Foundation, Inc. ;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, ;; 2005, 2006, 2007, 2008, 2009, 2010, 2011 ;; National Institute of Advanced Industrial Science and Technology (AIST) diff --git a/lisp/language/japanese.el b/lisp/language/japanese.el index bf8a4d8d5c2..256263edbb3 100644 --- a/lisp/language/japanese.el +++ b/lisp/language/japanese.el @@ -1,6 +1,6 @@ ;;; japanese.el --- support for Japanese -*- coding: iso-2022-7bit; no-byte-compile: t -*- -;; Copyright (C) 1997, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1997, 2001-2012 Free Software Foundation, Inc. ;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, ;; 2005, 2006, 2007, 2008, 2009, 2010, 2011 ;; National Institute of Advanced Industrial Science and Technology (AIST) diff --git a/lisp/language/korea-util.el b/lisp/language/korea-util.el index e2367cf0f7e..f8dfdf45d00 100644 --- a/lisp/language/korea-util.el +++ b/lisp/language/korea-util.el @@ -1,6 +1,6 @@ ;;; korea-util.el --- utilities for Korean -;; Copyright (C) 1997, 1999, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1997, 1999, 2001-2012 Free Software Foundation, Inc. ;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, ;; 2007, 2008, 2009, 2010, 2011 ;; National Institute of Advanced Industrial Science and Technology (AIST) diff --git a/lisp/language/korean.el b/lisp/language/korean.el index acb9fea268d..9f93f76a74e 100644 --- a/lisp/language/korean.el +++ b/lisp/language/korean.el @@ -1,6 +1,6 @@ ;;; korean.el --- support for Korean -*- coding: iso-2022-7bit; no-byte-compile: t -*- -;; Copyright (C) 1998, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1998, 2001-2012 Free Software Foundation, Inc. ;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, ;; 2005, 2006, 2007, 2008, 2009, 2010, 2011 ;; National Institute of Advanced Industrial Science and Technology (AIST) diff --git a/lisp/language/lao-util.el b/lisp/language/lao-util.el index 2a339504409..863e3ba89a3 100644 --- a/lisp/language/lao-util.el +++ b/lisp/language/lao-util.el @@ -1,6 +1,6 @@ ;;; lao-util.el --- utilities for Lao -*- coding: iso-2022-7bit; -*- -;; Copyright (C) 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 2001-2012 Free Software Foundation, Inc. ;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, ;; 2007, 2008, 2009, 2010, 2011 ;; National Institute of Advanced Industrial Science and Technology (AIST) diff --git a/lisp/language/lao.el b/lisp/language/lao.el index c09c6f8a0ef..28449bad071 100644 --- a/lisp/language/lao.el +++ b/lisp/language/lao.el @@ -1,6 +1,6 @@ ;;; lao.el --- support for Lao -*- coding: utf-8; no-byte-compile: t -*- -;; Copyright (C) 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 2001-2012 Free Software Foundation, Inc. ;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, ;; 2007, 2008, 2009, 2010, 2011 ;; National Institute of Advanced Industrial Science and Technology (AIST) diff --git a/lisp/language/romanian.el b/lisp/language/romanian.el index 25a10633a28..75483917a3b 100644 --- a/lisp/language/romanian.el +++ b/lisp/language/romanian.el @@ -1,6 +1,6 @@ ;;; romanian.el --- support for Romanian -*- coding: iso-latin-2; no-byte-compile: t -*- -;; Copyright (C) 1998, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1998, 2001-2012 Free Software Foundation, Inc. ;; Author: Dan Nicolaescu <done@ece.arizona.edu> ;; Keywords: multilingual, Romanian, i18n diff --git a/lisp/language/slovak.el b/lisp/language/slovak.el index 94aa5fdc94c..b17dab8e315 100644 --- a/lisp/language/slovak.el +++ b/lisp/language/slovak.el @@ -1,6 +1,6 @@ ;;; slovak.el --- support for Slovak -*- coding: iso-2022-7bit; no-byte-compile: t -*- -;; Copyright (C) 1998, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1998, 2001-2012 Free Software Foundation, Inc. ;; Authors: Tibor ,B)(Bimko <tibor.simko@fmph.uniba.sk>, ;; Milan Zamazal <pdm@zamazal.org> diff --git a/lisp/language/tai-viet.el b/lisp/language/tai-viet.el index f6e525b0d25..90e0e2a4796 100644 --- a/lisp/language/tai-viet.el +++ b/lisp/language/tai-viet.el @@ -1,6 +1,6 @@ ;;; tai-viet.el --- support for Tai Viet -*- coding: utf-8; no-byte-compile: t -*- -;; Copyright (C) 2007-2011 Free Software Foundation, Inc. +;; Copyright (C) 2007-2012 Free Software Foundation, Inc. ;; Copyright (C) 2007, 2008, 2009, 2010, 2011 ;; National Institute of Advanced Industrial Science and Technology (AIST) ;; Registration Number H13PRO009 diff --git a/lisp/language/thai-util.el b/lisp/language/thai-util.el index e9943df12a8..4cfee92e0e7 100644 --- a/lisp/language/thai-util.el +++ b/lisp/language/thai-util.el @@ -1,6 +1,6 @@ ;;; thai-util.el --- utilities for Thai -*- coding: utf-8; -*- -;; Copyright (C) 2000-2011 Free Software Foundation, Inc. +;; Copyright (C) 2000-2012 Free Software Foundation, Inc. ;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, ;; 2005, 2006, 2007, 2008, 2009, 2010, 2011 ;; National Institute of Advanced Industrial Science and Technology (AIST) diff --git a/lisp/language/thai.el b/lisp/language/thai.el index dd28ec77edb..9bebe6ef185 100644 --- a/lisp/language/thai.el +++ b/lisp/language/thai.el @@ -1,6 +1,6 @@ ;;; thai.el --- support for Thai -*- coding: iso-2022-7bit; no-byte-compile: t -*- -;; Copyright (C) 1997-1998, 2000-2011 Free Software Foundation, Inc. +;; Copyright (C) 1997-1998, 2000-2012 Free Software Foundation, Inc. ;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, ;; 2005, 2006, 2007, 2008, 2009, 2010, 2011 ;; National Institute of Advanced Industrial Science and Technology (AIST) diff --git a/lisp/language/tibet-util.el b/lisp/language/tibet-util.el index fd23bbb6d54..66795201f7f 100644 --- a/lisp/language/tibet-util.el +++ b/lisp/language/tibet-util.el @@ -1,6 +1,6 @@ ;;; tibet-util.el --- utilities for Tibetan -*- coding: iso-2022-7bit; -*- -;; Copyright (C) 1997, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1997, 2001-2012 Free Software Foundation, Inc. ;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, ;; 2005, 2006, 2007, 2008, 2009, 2010, 2011 ;; National Institute of Advanced Industrial Science and Technology (AIST) diff --git a/lisp/language/tibetan.el b/lisp/language/tibetan.el index 1607868dea5..97bc3174d3e 100644 --- a/lisp/language/tibetan.el +++ b/lisp/language/tibetan.el @@ -1,6 +1,6 @@ ;;; tibetan.el --- support for Tibetan language -*- coding: iso-2022-7bit; -*- -;; Copyright (C) 1997, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1997, 2001-2012 Free Software Foundation, Inc. ;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, ;; 2006, 2007, 2008, 2009, 2010, 2011 ;; National Institute of Advanced Industrial Science and Technology (AIST) diff --git a/lisp/language/utf-8-lang.el b/lisp/language/utf-8-lang.el index dd840772218..eb0828694d4 100644 --- a/lisp/language/utf-8-lang.el +++ b/lisp/language/utf-8-lang.el @@ -1,6 +1,6 @@ ;;; utf-8-lang.el --- generic UTF-8 language environment -*- no-byte-compile: t -*- -;; Copyright (C) 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 2001-2012 Free Software Foundation, Inc. ;; Author: Dave Love <fx@gnu.org> ;; Keywords: i18n diff --git a/lisp/language/viet-util.el b/lisp/language/viet-util.el index b71c65438be..a6b734c45a8 100644 --- a/lisp/language/viet-util.el +++ b/lisp/language/viet-util.el @@ -1,6 +1,6 @@ ;;; viet-util.el --- utilities for Vietnamese -*- coding: iso-2022-7bit; -*- -;; Copyright (C) 1998, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1998, 2001-2012 Free Software Foundation, Inc. ;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, ;; 2005, 2006, 2007, 2008, 2009, 2010, 2011 ;; National Institute of Advanced Industrial Science and Technology (AIST) diff --git a/lisp/language/vietnamese.el b/lisp/language/vietnamese.el index 4034566afca..7ec5a206990 100644 --- a/lisp/language/vietnamese.el +++ b/lisp/language/vietnamese.el @@ -1,6 +1,6 @@ ;;; vietnamese.el --- support for Vietnamese -*- coding: iso-2022-7bit; -*- -;; Copyright (C) 1998, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1998, 2001-2012 Free Software Foundation, Inc. ;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, ;; 2005, 2006, 2007, 2008, 2009, 2010, 2011 ;; National Institute of Advanced Industrial Science and Technology (AIST) diff --git a/lisp/ldefs-boot.el b/lisp/ldefs-boot.el index 858cfa85a6f..754764b9758 100644 --- a/lisp/ldefs-boot.el +++ b/lisp/ldefs-boot.el @@ -68,7 +68,7 @@ should return a grid vector array that is the new solution. ;;;*** ;;;### (autoloads (ada-mode ada-add-extensions) "ada-mode" "progmodes/ada-mode.el" -;;;;;; (20178 7273)) +;;;;;; (20197 58064)) ;;; Generated autoloads from progmodes/ada-mode.el (autoload 'ada-add-extensions "ada-mode" "\ @@ -88,7 +88,7 @@ Ada mode is the major mode for editing Ada code. ;;;*** ;;;### (autoloads (ada-header) "ada-stmt" "progmodes/ada-stmt.el" -;;;;;; (19845 45374)) +;;;;;; (20209 49217)) ;;; Generated autoloads from progmodes/ada-stmt.el (autoload 'ada-header "ada-stmt" "\ @@ -99,7 +99,7 @@ Insert a descriptive header at the top of the file. ;;;*** ;;;### (autoloads (ada-find-file) "ada-xref" "progmodes/ada-xref.el" -;;;;;; (20176 51947)) +;;;;;; (20222 61246)) ;;; Generated autoloads from progmodes/ada-xref.el (autoload 'ada-find-file "ada-xref" "\ @@ -398,7 +398,7 @@ usage: (defadvice FUNCTION (CLASS NAME [POSITION] [ARGLIST] FLAG...) ;;;### (autoloads (align-newline-and-indent align-unhighlight-rule ;;;;;; align-highlight-rule align-current align-entire align-regexp -;;;;;; align) "align" "align.el" (20182 4358)) +;;;;;; align) "align" "align.el" (20188 43079)) ;;; Generated autoloads from align.el (autoload 'align "align" "\ @@ -489,7 +489,7 @@ A replacement function for `newline-and-indent', aligning as it goes. ;;;### (autoloads (outlineify-sticky allout-mode allout-mode-p allout-auto-activation ;;;;;; allout-setup allout-auto-activation-helper) "allout" "allout.el" -;;;;;; (20178 7273)) +;;;;;; (20207 7484)) ;;; Generated autoloads from allout.el (autoload 'allout-auto-activation-helper "allout" "\ @@ -739,7 +739,7 @@ at the beginning of the current entry. Extending Allout -Allout exposure and authoring activites all have associated +Allout exposure and authoring activities all have associated hooks, by which independent code can cooperate with allout without changes to the allout core. Here are key ones: @@ -850,13 +850,13 @@ for details on preparing Emacs for automatic allout activation. ;;;### (autoloads (allout-widgets-mode allout-widgets-auto-activation ;;;;;; allout-widgets-setup allout-widgets) "allout-widgets" "allout-widgets.el" -;;;;;; (20167 36967)) +;;;;;; (20221 40442)) ;;; Generated autoloads from allout-widgets.el (let ((loads (get 'allout-widgets 'custom-loads))) (if (member '"allout-widgets" loads) nil (put 'allout-widgets 'custom-loads (cons '"allout-widgets" loads)))) (autoload 'allout-widgets-setup "allout-widgets" "\ -Commission or decommision allout-widgets-mode along with allout-mode. +Commission or decommission allout-widgets-mode along with allout-mode. Meant to be used by customization of `allout-widgets-auto-activation'. @@ -910,7 +910,7 @@ outline hot-spot navigation (see `allout-mode'). ;;;*** ;;;### (autoloads (ange-ftp-hook-function ange-ftp-reread-dir) "ange-ftp" -;;;;;; "net/ange-ftp.el" (20178 7273)) +;;;;;; "net/ange-ftp.el" (20213 46266)) ;;; Generated autoloads from net/ange-ftp.el (defalias 'ange-ftp-re-read-dir 'ange-ftp-reread-dir) @@ -965,7 +965,7 @@ the buffer *Birthday-Present-for-Name*. ;;;*** ;;;### (autoloads (ansi-color-process-output ansi-color-for-comint-mode-on) -;;;;;; "ansi-color" "ansi-color.el" (20164 60780)) +;;;;;; "ansi-color" "ansi-color.el" (20204 31303)) ;;; Generated autoloads from ansi-color.el (autoload 'ansi-color-for-comint-mode-on "ansi-color" "\ @@ -1027,7 +1027,7 @@ Used in `antlr-mode'. Also a useful function in `java-mode-hook'. ;;;*** ;;;### (autoloads (appt-activate appt-add) "appt" "calendar/appt.el" -;;;;;; (19956 37456)) +;;;;;; (20188 43079)) ;;; Generated autoloads from calendar/appt.el (autoload 'appt-add "appt" "\ @@ -1158,8 +1158,8 @@ Returns list of symbols and documentation found. ;;;*** -;;;### (autoloads (archive-mode) "arc-mode" "arc-mode.el" (20165 -;;;;;; 31925)) +;;;### (autoloads (archive-mode) "arc-mode" "arc-mode.el" (20201 +;;;;;; 55112)) ;;; Generated autoloads from arc-mode.el (autoload 'archive-mode "arc-mode" "\ @@ -1250,8 +1250,8 @@ Entering array mode calls the function `array-mode-hook'. ;;;*** -;;;### (autoloads (artist-mode) "artist" "textmodes/artist.el" (20172 -;;;;;; 54913)) +;;;### (autoloads (artist-mode) "artist" "textmodes/artist.el" (20204 +;;;;;; 31303)) ;;; Generated autoloads from textmodes/artist.el (autoload 'artist-mode "artist" "\ @@ -1792,7 +1792,7 @@ definition of \"random distance\".) ;;;*** ;;;### (autoloads (display-battery-mode battery) "battery" "battery.el" -;;;;;; (20127 62865)) +;;;;;; (20211 4536)) ;;; Generated autoloads from battery.el (put 'battery-mode-line-string 'risky-local-variable t) @@ -1861,7 +1861,7 @@ For non-interactive use see also `benchmark-run' and ;;;*** ;;;### (autoloads (bibtex-search-entry bibtex-mode bibtex-initialize) -;;;;;; "bibtex" "textmodes/bibtex.el" (20174 10230)) +;;;;;; "bibtex" "textmodes/bibtex.el" (20221 40442)) ;;; Generated autoloads from textmodes/bibtex.el (autoload 'bibtex-initialize "bibtex" "\ @@ -2727,7 +2727,7 @@ Like `bug-reference-mode', but only buttonize in comments and strings. ;;;;;; batch-byte-compile-if-not-done display-call-tree byte-compile ;;;;;; compile-defun byte-compile-file byte-recompile-directory ;;;;;; byte-force-recompile byte-compile-enable-warning byte-compile-disable-warning) -;;;;;; "bytecomp" "emacs-lisp/bytecomp.el" (20178 7273)) +;;;;;; "bytecomp" "emacs-lisp/bytecomp.el" (20224 16567)) ;;; 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) @@ -2981,8 +2981,8 @@ See Info node `(calc)Defining Functions'. ;;;*** -;;;### (autoloads (calculator) "calculator" "calculator.el" (20141 -;;;;;; 9296)) +;;;### (autoloads (calculator) "calculator" "calculator.el" (20187 +;;;;;; 22214)) ;;; Generated autoloads from calculator.el (autoload 'calculator "calculator" "\ @@ -3103,7 +3103,7 @@ Obsoletes `c-forward-into-nomenclature'. ;;;*** ;;;### (autoloads (c-guess-basic-syntax) "cc-engine" "progmodes/cc-engine.el" -;;;;;; (20172 54913)) +;;;;;; (20222 61246)) ;;; Generated autoloads from progmodes/cc-engine.el (autoload 'c-guess-basic-syntax "cc-engine" "\ @@ -3215,7 +3215,7 @@ the absolute file name of the file if STYLE-NAME is nil. ;;;### (autoloads (awk-mode pike-mode idl-mode java-mode objc-mode ;;;;;; c++-mode c-mode c-initialize-cc-mode) "cc-mode" "progmodes/cc-mode.el" -;;;;;; (20168 57844)) +;;;;;; (20221 40442)) ;;; Generated autoloads from progmodes/cc-mode.el (autoload 'c-initialize-cc-mode "cc-mode" "\ @@ -3443,7 +3443,7 @@ and exists only for compatibility reasons. ;;;*** -;;;### (autoloads nil "cc-vars" "progmodes/cc-vars.el" (20167 36967)) +;;;### (autoloads nil "cc-vars" "progmodes/cc-vars.el" (20189 63932)) ;;; Generated autoloads from progmodes/cc-vars.el (put 'c-basic-offset 'safe-local-variable 'integerp) (put 'c-backslash-column 'safe-local-variable 'integerp) @@ -3453,7 +3453,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" -;;;;;; (19943 25429)) +;;;;;; (20201 55112)) ;;; Generated autoloads from international/ccl.el (autoload 'ccl-compile "ccl" "\ @@ -3608,7 +3608,7 @@ REG := r0 | r1 | r2 | r3 | r4 | r5 | r6 | r7 ARG := REG | integer OPERATOR := - ;; Normal arithmethic operators (same meaning as C code). + ;; Normal arithmetic operators (same meaning as C code). + | - | * | / | % ;; Bitwise operators (same meaning as C code) @@ -3644,7 +3644,7 @@ OPERATOR := | de-sjis ;; If ARG_0 and ARG_1 are the first and second code point of - ;; JISX0208 character CHAR, and SJIS is the correponding + ;; JISX0208 character CHAR, and SJIS is the corresponding ;; Shift-JIS code, ;; (REG = ARG_0 en-sjis ARG_1) means: ;; ((REG = HIGH) @@ -3728,12 +3728,12 @@ Returns a form where all lambdas don't have any free variables. ;;;*** -;;;### (autoloads (cfengine-auto-mode cfengine-mode cfengine3-mode) -;;;;;; "cfengine" "progmodes/cfengine.el" (20168 57844)) +;;;### (autoloads (cfengine-auto-mode cfengine2-mode cfengine3-mode) +;;;;;; "cfengine" "progmodes/cfengine.el" (20211 4536)) ;;; Generated autoloads from progmodes/cfengine.el (autoload 'cfengine3-mode "cfengine" "\ -Major mode for editing cfengine input. +Major mode for editing CFEngine3 input. There are no special keybindings by default. Action blocks are treated as defuns, i.e. \\[beginning-of-defun] moves @@ -3741,8 +3741,8 @@ to the action header. \(fn)" t nil) -(autoload 'cfengine-mode "cfengine" "\ -Major mode for editing cfengine input. +(autoload 'cfengine2-mode "cfengine" "\ +Major mode for editing CFEngine2 input. There are no special keybindings by default. Action blocks are treated as defuns, i.e. \\[beginning-of-defun] moves @@ -3751,7 +3751,7 @@ to the action header. \(fn)" t nil) (autoload 'cfengine-auto-mode "cfengine" "\ -Choose between `cfengine-mode' and `cfengine3-mode' depending +Choose between `cfengine2-mode' and `cfengine3-mode' depending on the buffer contents \(fn)" nil nil) @@ -4215,7 +4215,7 @@ If FRAME cannot display COLOR, return nil. ;;;### (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" -;;;;;; (20168 57844)) +;;;;;; (20197 58064)) ;;; Generated autoloads from comint.el (defvar comint-output-filter-functions '(comint-postoutput-scroll-to-bottom comint-watch-for-password-prompt) "\ @@ -4706,7 +4706,7 @@ For details see `conf-mode'. Example: ;;;*** ;;;### (autoloads (shuffle-vector cookie-snarf cookie-insert cookie) -;;;;;; "cookie1" "play/cookie1.el" (19845 45374)) +;;;;;; "cookie1" "play/cookie1.el" (20222 61246)) ;;; Generated autoloads from play/cookie1.el (autoload 'cookie "cookie1" "\ @@ -4778,7 +4778,7 @@ If FIX is non-nil, run `copyright-fix-years' instead. ;;;*** ;;;### (autoloads (cperl-perldoc-at-point cperl-perldoc cperl-mode) -;;;;;; "cperl-mode" "progmodes/cperl-mode.el" (20178 7273)) +;;;;;; "cperl-mode" "progmodes/cperl-mode.el" (20201 55112)) ;;; Generated autoloads from progmodes/cperl-mode.el (put 'cperl-indent-level 'safe-local-variable 'integerp) (put 'cperl-brace-offset 'safe-local-variable 'integerp) @@ -4803,8 +4803,8 @@ default.) You can always quote (with \\[quoted-insert]) the left since most the time you mean \"less\". CPerl mode tries to guess whether you want to type pair <>, and inserts is if it appropriate. You can set `cperl-electric-parens-string' to the string that -contains the parenths from the above list you want to be electrical. -Electricity of parenths is controlled by `cperl-electric-parens'. +contains the parens from the above list you want to be electrical. +Electricity of parens is controlled by `cperl-electric-parens'. You may also set `cperl-electric-parens-mark' to have electric parens look for active mark and \"embrace\" a region if possible.' @@ -5022,7 +5022,7 @@ if ARG is omitted or nil. ;;;*** ;;;### (autoloads (completing-read-multiple) "crm" "emacs-lisp/crm.el" -;;;;;; (19845 45374)) +;;;;;; (20222 61246)) ;;; Generated autoloads from emacs-lisp/crm.el (autoload 'completing-read-multiple "crm" "\ @@ -5069,7 +5069,7 @@ Major mode to edit Cascading Style Sheets. ;;;*** ;;;### (autoloads (cua-selection-mode cua-mode) "cua-base" "emulation/cua-base.el" -;;;;;; (20127 62865)) +;;;;;; (20222 61246)) ;;; Generated autoloads from emulation/cua-base.el (defvar cua-mode nil "\ @@ -5614,7 +5614,7 @@ See also `dabbrev-abbrev-char-regexp' and \\[dabbrev-completion]. ;;;*** ;;;### (autoloads (data-debug-new-buffer) "data-debug" "cedet/data-debug.el" -;;;;;; (20168 57844)) +;;;;;; (20207 7484)) ;;; Generated autoloads from cedet/data-debug.el (autoload 'data-debug-new-buffer "data-debug" "\ @@ -5624,8 +5624,8 @@ Create a new data-debug buffer with NAME. ;;;*** -;;;### (autoloads (dbus-handle-event) "dbus" "net/dbus.el" (20176 -;;;;;; 51947)) +;;;### (autoloads (dbus-handle-event) "dbus" "net/dbus.el" (20197 +;;;;;; 58064)) ;;; Generated autoloads from net/dbus.el (autoload 'dbus-handle-event "dbus" "\ @@ -5638,8 +5638,8 @@ If the HANDLER returns a `dbus-error', it is propagated as return message. ;;;*** -;;;### (autoloads (dcl-mode) "dcl-mode" "progmodes/dcl-mode.el" (20162 -;;;;;; 63140)) +;;;### (autoloads (dcl-mode) "dcl-mode" "progmodes/dcl-mode.el" (20187 +;;;;;; 22214)) ;;; Generated autoloads from progmodes/dcl-mode.el (autoload 'dcl-mode "dcl-mode" "\ @@ -5839,8 +5839,8 @@ The most useful commands are: ;;;*** ;;;### (autoloads (delimit-columns-rectangle delimit-columns-region -;;;;;; delimit-columns-customize) "delim-col" "delim-col.el" (20154 -;;;;;; 24929)) +;;;;;; delimit-columns-customize) "delim-col" "delim-col.el" (20197 +;;;;;; 58064)) ;;; Generated autoloads from delim-col.el (autoload 'delimit-columns-customize "delim-col" "\ @@ -5916,8 +5916,8 @@ with no args, if that value is non-nil. ;;;*** -;;;### (autoloads (delete-selection-mode) "delsel" "delsel.el" (20127 -;;;;;; 62865)) +;;;### (autoloads (delete-selection-mode) "delsel" "delsel.el" (20187 +;;;;;; 22214)) ;;; Generated autoloads from delsel.el (defalias 'pending-delete-mode 'delete-selection-mode) @@ -6014,7 +6014,7 @@ the first time the mode is used. ;;;*** ;;;### (autoloads (describe-char describe-text-properties) "descr-text" -;;;;;; "descr-text.el" (20170 13157)) +;;;;;; "descr-text.el" (20189 63932)) ;;; Generated autoloads from descr-text.el (autoload 'describe-text-properties "descr-text" "\ @@ -6042,7 +6042,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" (20165 31925)) +;;;;;; "desktop.el" (20212 25403)) ;;; Generated autoloads from desktop.el (defvar desktop-save-mode nil "\ @@ -6393,7 +6393,7 @@ Optional arguments are passed to `dig-invoke'. ;;;*** ;;;### (autoloads (dired-mode dired-noselect dired-other-frame dired-other-window -;;;;;; dired dired-listing-switches) "dired" "dired.el" (20167 36967)) +;;;;;; dired dired-listing-switches) "dired" "dired.el" (20189 63932)) ;;; Generated autoloads from dired.el (defvar dired-listing-switches (purecopy "-al") "\ @@ -6821,7 +6821,7 @@ strings when pressed twice. See `double-map' for details. ;;;*** -;;;### (autoloads (dunnet) "dunnet" "play/dunnet.el" (19845 45374)) +;;;### (autoloads (dunnet) "dunnet" "play/dunnet.el" (20221 40442)) ;;; Generated autoloads from play/dunnet.el (autoload 'dunnet "dunnet" "\ @@ -7099,7 +7099,7 @@ To implement dynamic menus, either call this from ;;;;;; ebnf-eps-file 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" (20166 16092)) +;;;;;; "progmodes/ebnf2ps.el" (20203 10426)) ;;; Generated autoloads from progmodes/ebnf2ps.el (autoload 'ebnf-customize "ebnf2ps" "\ @@ -7597,7 +7597,7 @@ an EDE controlled project. ;;;### (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" (20166 16092)) +;;;;;; "emacs-lisp/edebug.el" (20187 22214)) ;;; Generated autoloads from emacs-lisp/edebug.el (defvar edebug-all-defs nil "\ @@ -8098,15 +8098,11 @@ Emacs Lisp mode) that support ElDoc.") ;;;*** ;;;### (autoloads (electric-layout-mode electric-pair-mode electric-indent-mode) -;;;;;; "electric" "electric.el" (20168 57844)) +;;;;;; "electric" "electric.el" (20187 22214)) ;;; Generated autoloads from electric.el (defvar electric-indent-chars '(10) "\ -Characters that should cause automatic reindentation. -Each entry of the list can be either a character or a cons of the -form (CHAR . PREDICATE) which means that CHAR should cause reindentation -only if PREDICATE returns non-nil. PREDICATE is called with no arguments -and with point before the inserted char.") +Characters that should cause automatic reindentation.") (defvar electric-indent-mode nil "\ Non-nil if Electric-Indent mode is enabled. @@ -8284,7 +8280,7 @@ Other values are interpreted as usual. ;;;*** ;;;### (autoloads (report-emacs-bug-query-existing-bugs report-emacs-bug) -;;;;;; "emacsbug" "mail/emacsbug.el" (20093 44623)) +;;;;;; "emacsbug" "mail/emacsbug.el" (20197 58064)) ;;; Generated autoloads from mail/emacsbug.el (autoload 'report-emacs-bug "emacsbug" "\ @@ -8305,7 +8301,7 @@ The result is an alist with items of the form (URL SUBJECT NO). ;;;;;; emerge-revisions emerge-files-with-ancestor-remote emerge-files-remote ;;;;;; emerge-files-with-ancestor-command emerge-files-command emerge-buffers-with-ancestor ;;;;;; emerge-buffers emerge-files-with-ancestor emerge-files) "emerge" -;;;;;; "vc/emerge.el" (20141 9296)) +;;;;;; "vc/emerge.el" (20204 31303)) ;;; Generated autoloads from vc/emerge.el (autoload 'emerge-files "emerge" "\ @@ -8580,7 +8576,7 @@ Insert selected KEYS after the point. ;;;*** ;;;### (autoloads (epa-dired-do-encrypt epa-dired-do-sign epa-dired-do-verify -;;;;;; epa-dired-do-decrypt) "epa-dired" "epa-dired.el" (19865 50420)) +;;;;;; epa-dired-do-decrypt) "epa-dired" "epa-dired.el" (20197 58064)) ;;; Generated autoloads from epa-dired.el (autoload 'epa-dired-do-decrypt "epa-dired" "\ @@ -8606,7 +8602,7 @@ Encrypt marked files. ;;;*** ;;;### (autoloads (epa-file-disable epa-file-enable epa-file-handler) -;;;;;; "epa-file" "epa-file.el" (20038 20303)) +;;;;;; "epa-file" "epa-file.el" (20197 58064)) ;;; Generated autoloads from epa-file.el (autoload 'epa-file-handler "epa-file" "\ @@ -9668,7 +9664,7 @@ for \\[find-tag] (which see). ;;;;;; ethio-fidel-to-sera-marker ethio-fidel-to-sera-region ethio-fidel-to-sera-buffer ;;;;;; ethio-sera-to-fidel-marker ethio-sera-to-fidel-region ethio-sera-to-fidel-buffer ;;;;;; setup-ethiopic-environment-internal) "ethio-util" "language/ethio-util.el" -;;;;;; (20175 31160)) +;;;;;; (20201 55112)) ;;; Generated autoloads from language/ethio-util.el (autoload 'setup-ethiopic-environment-internal "ethio-util" "\ @@ -9814,7 +9810,7 @@ Convert the Java escape sequences into corresponding Ethiopic characters. \(fn)" nil nil) (autoload 'ethio-find-file "ethio-util" "\ -Transliterate file content into Ethiopic dependig on filename suffix. +Transliterate file content into Ethiopic depending on filename suffix. \(fn)" nil nil) @@ -10533,8 +10529,8 @@ Copy directory-local variables to the -*- line. ;;;*** -;;;### (autoloads (filesets-init) "filesets" "filesets.el" (20178 -;;;;;; 7273)) +;;;### (autoloads (filesets-init) "filesets" "filesets.el" (20201 +;;;;;; 55112)) ;;; Generated autoloads from filesets.el (autoload 'filesets-init "filesets" "\ @@ -11040,7 +11036,7 @@ Flyspell whole buffer. ;;;### (autoloads (follow-delete-other-windows-and-split follow-mode ;;;;;; turn-off-follow-mode turn-on-follow-mode) "follow" "follow.el" -;;;;;; (20178 7273)) +;;;;;; (20187 22214)) ;;; Generated autoloads from follow.el (autoload 'turn-on-follow-mode "follow" "\ @@ -11136,7 +11132,7 @@ play around with the following keys: ;;;*** ;;;### (autoloads (forms-find-file-other-window forms-find-file forms-mode) -;;;;;; "forms" "forms.el" (20168 57844)) +;;;;;; "forms" "forms.el" (20197 58064)) ;;; Generated autoloads from forms.el (autoload 'forms-mode "forms" "\ @@ -11300,7 +11296,7 @@ and choose the directory as the fortune-file. ;;;*** ;;;### (autoloads (gdb gdb-enable-debug) "gdb-mi" "progmodes/gdb-mi.el" -;;;;;; (20182 4358)) +;;;;;; (20218 64194)) ;;; Generated autoloads from progmodes/gdb-mi.el (defvar gdb-enable-debug nil "\ @@ -11514,7 +11510,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" (20164 60780)) +;;;;;; gnus-slave-no-server) "gnus" "gnus/gnus.el" (20187 22214)) ;;; Generated autoloads from gnus/gnus.el (when (fboundp 'custom-autoload) (custom-autoload 'gnus-select-method "gnus")) @@ -11567,7 +11563,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" (20168 57844)) +;;;;;; "gnus/gnus-agent.el" (20221 40442)) ;;; Generated autoloads from gnus/gnus-agent.el (autoload 'gnus-unplugged "gnus-agent" "\ @@ -11658,7 +11654,7 @@ If CLEAN, obsolete (ignore). ;;;*** ;;;### (autoloads (gnus-article-prepare-display) "gnus-art" "gnus/gnus-art.el" -;;;;;; (20182 4358)) +;;;;;; (20207 7484)) ;;; Generated autoloads from gnus/gnus-art.el (autoload 'gnus-article-prepare-display "gnus-art" "\ @@ -11812,8 +11808,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" (20088 -;;;;;; 26718)) +;;;;;; gnus-random-x-face) "gnus-fun" "gnus/gnus-fun.el" (20187 +;;;;;; 22214)) ;;; Generated autoloads from gnus/gnus-fun.el (autoload 'gnus-random-x-face "gnus-fun" "\ @@ -11876,7 +11872,7 @@ If gravatars are already displayed, remove them. ;;;*** ;;;### (autoloads (gnus-fetch-group-other-frame gnus-fetch-group) -;;;;;; "gnus-group" "gnus/gnus-group.el" (20179 28130)) +;;;;;; "gnus-group" "gnus/gnus-group.el" (20201 55112)) ;;; Generated autoloads from gnus/gnus-group.el (autoload 'gnus-fetch-group "gnus-group" "\ @@ -12051,7 +12047,7 @@ Calling (gnus-group-split-fancy nil nil \"mail.others\") returns: ;;;*** ;;;### (autoloads (gnus-button-reply gnus-button-mailto gnus-msg-mail) -;;;;;; "gnus-msg" "gnus/gnus-msg.el" (20183 25152)) +;;;;;; "gnus-msg" "gnus/gnus-msg.el" (20207 7484)) ;;; Generated autoloads from gnus/gnus-msg.el (autoload 'gnus-msg-mail "gnus-msg" "\ @@ -12217,7 +12213,7 @@ See the documentation for these variables and functions for details. ;;;*** ;;;### (autoloads (gnus-update-format) "gnus-spec" "gnus/gnus-spec.el" -;;;;;; (20076 35541)) +;;;;;; (20207 7484)) ;;; Generated autoloads from gnus/gnus-spec.el (autoload 'gnus-update-format "gnus-spec" "\ @@ -12239,7 +12235,7 @@ Declare back end NAME with ABILITIES as a Gnus back end. ;;;*** ;;;### (autoloads (gnus-summary-bookmark-jump) "gnus-sum" "gnus/gnus-sum.el" -;;;;;; (20172 54913)) +;;;;;; (20222 61246)) ;;; Generated autoloads from gnus/gnus-sum.el (autoload 'gnus-summary-bookmark-jump "gnus-sum" "\ @@ -12267,7 +12263,7 @@ Install the sync hooks. ;;;*** ;;;### (autoloads (gnus-add-configuration) "gnus-win" "gnus/gnus-win.el" -;;;;;; (20161 45793)) +;;;;;; (20207 7484)) ;;; Generated autoloads from gnus/gnus-win.el (autoload 'gnus-add-configuration "gnus-win" "\ @@ -12379,7 +12375,7 @@ Retrieve MAIL-ADDRESS gravatar and returns it. ;;;### (autoloads (zrgrep 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" (20174 10230)) +;;;;;; grep-window-height) "grep" "progmodes/grep.el" (20212 25403)) ;;; Generated autoloads from progmodes/grep.el (defvar grep-window-height nil "\ @@ -12525,6 +12521,9 @@ to go to the lines where grep found matches. This command shares argument histories with \\[lgrep] and \\[grep-find]. +When called programmatically and FILES is nil, REGEXP is expected +to specify a command to run. + \(fn REGEXP &optional FILES DIR CONFIRM)" t nil) (autoload 'zrgrep "grep" "\ @@ -12538,7 +12537,7 @@ file name to `*.gz', and sets `grep-highlight-matches' to `always'. ;;;*** -;;;### (autoloads (gs-load-image) "gs" "gs.el" (19845 45374)) +;;;### (autoloads (gs-load-image) "gs" "gs.el" (20188 43079)) ;;; Generated autoloads from gs.el (autoload 'gs-load-image "gs" "\ @@ -12552,7 +12551,7 @@ the form \"WINDOW-ID PIXMAP-ID\". Value is non-nil if successful. ;;;*** ;;;### (autoloads (gud-tooltip-mode gdb-script-mode jdb pdb perldb -;;;;;; xdb dbx sdb gud-gdb) "gud" "progmodes/gud.el" (20178 7273)) +;;;;;; xdb dbx sdb gud-gdb) "gud" "progmodes/gud.el" (20215 1592)) ;;; Generated autoloads from progmodes/gud.el (autoload 'gud-gdb "gud" "\ @@ -13305,7 +13304,7 @@ be found in variable `hi-lock-interactive-patterns'. ;;;*** ;;;### (autoloads (hide-ifdef-mode) "hideif" "progmodes/hideif.el" -;;;;;; (20127 62865)) +;;;;;; (20197 58064)) ;;; Generated autoloads from progmodes/hideif.el (autoload 'hide-ifdef-mode "hideif" "\ @@ -13411,8 +13410,8 @@ Unconditionally turn off `hs-minor-mode'. ;;;;;; highlight-compare-buffers highlight-changes-rotate-faces ;;;;;; highlight-changes-previous-change highlight-changes-next-change ;;;;;; highlight-changes-remove-highlight highlight-changes-visible-mode -;;;;;; highlight-changes-mode) "hilit-chg" "hilit-chg.el" (20164 -;;;;;; 60780)) +;;;;;; highlight-changes-mode) "hilit-chg" "hilit-chg.el" (20188 +;;;;;; 43079)) ;;; Generated autoloads from hilit-chg.el (autoload 'highlight-changes-mode "hilit-chg" "\ @@ -13439,7 +13438,7 @@ buffer with the contents of a file \(fn &optional ARG)" t nil) (autoload 'highlight-changes-visible-mode "hilit-chg" "\ -Toggle visiblility of highlighting due to Highlight Changes mode. +Toggle visibility of highlighting due to Highlight Changes mode. With a prefix argument ARG, enable Highlight Changes Visible mode if ARG is positive, and disable it otherwise. If called from Lisp, enable the mode if ARG is omitted or nil. @@ -13673,7 +13672,7 @@ Global-Hl-Line mode uses the functions `global-hl-line-unhighlight' and ;;;;;; holiday-bahai-holidays holiday-islamic-holidays holiday-christian-holidays ;;;;;; holiday-hebrew-holidays holiday-other-holidays holiday-local-holidays ;;;;;; holiday-oriental-holidays holiday-general-holidays) "holidays" -;;;;;; "calendar/holidays.el" (20107 16822)) +;;;;;; "calendar/holidays.el" (20209 49217)) ;;; Generated autoloads from calendar/holidays.el (define-obsolete-variable-alias 'general-holidays 'holiday-general-holidays "23.1") @@ -13833,7 +13832,7 @@ Convert HTML to plain text in the current buffer. ;;;*** ;;;### (autoloads (htmlfontify-copy-and-link-dir htmlfontify-buffer) -;;;;;; "htmlfontify" "htmlfontify.el" (20183 25152)) +;;;;;; "htmlfontify" "htmlfontify.el" (20188 43079)) ;;; Generated autoloads from htmlfontify.el (autoload 'htmlfontify-buffer "htmlfontify" "\ @@ -13964,7 +13963,7 @@ bound to the current value of the filter. ;;;*** ;;;### (autoloads (ibuffer ibuffer-other-window ibuffer-list-buffers) -;;;;;; "ibuffer" "ibuffer.el" (20162 19074)) +;;;;;; "ibuffer" "ibuffer.el" (20197 58671)) ;;; Generated autoloads from ibuffer.el (autoload 'ibuffer-list-buffers "ibuffer" "\ @@ -14147,7 +14146,7 @@ See also the variable `idlwave-shell-prompt-pattern'. ;;;*** ;;;### (autoloads (idlwave-mode) "idlwave" "progmodes/idlwave.el" -;;;;;; (20168 57844)) +;;;;;; (20221 40442)) ;;; Generated autoloads from progmodes/idlwave.el (autoload 'idlwave-mode "idlwave" "\ @@ -14281,8 +14280,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" (20178 -;;;;;; 7273)) +;;;;;; ido-switch-buffer ido-mode ido-mode) "ido" "ido.el" (20203 +;;;;;; 10426)) ;;; Generated autoloads from ido.el (defvar ido-mode nil "\ @@ -15163,7 +15162,7 @@ Convert old Emacs Devanagari characters to UCS. ;;;### (autoloads (inferior-lisp inferior-lisp-prompt inferior-lisp-load-command ;;;;;; inferior-lisp-program inferior-lisp-filter-regexp) "inf-lisp" -;;;;;; "progmodes/inf-lisp.el" (20168 57844)) +;;;;;; "progmodes/inf-lisp.el" (20197 58064)) ;;; Generated autoloads from progmodes/inf-lisp.el (defvar inferior-lisp-filter-regexp (purecopy "\\`\\s *\\(:\\(\\w\\|\\s_\\)\\)?\\s *\\'") "\ @@ -15230,7 +15229,7 @@ of `inferior-lisp-program'). Runs the hooks from ;;;;;; Info-goto-emacs-key-command-node Info-goto-emacs-command-node ;;;;;; Info-mode info-finder info-apropos Info-index Info-directory ;;;;;; Info-on-current-buffer info-standalone info-emacs-manual -;;;;;; info info-other-window) "info" "info.el" (20172 54913)) +;;;;;; info info-other-window) "info" "info.el" (20184 46008)) ;;; Generated autoloads from info.el (autoload 'info-other-window "info" "\ @@ -15735,7 +15734,7 @@ Add submenus to the File menu, to convert to and from various formats. ;;;;;; ispell-complete-word ispell-continue ispell-buffer ispell-comments-and-strings ;;;;;; ispell-region ispell-change-dictionary ispell-kill-ispell ;;;;;; ispell-help ispell-pdict-save ispell-word ispell-personal-dictionary) -;;;;;; "ispell" "textmodes/ispell.el" (20178 7273)) +;;;;;; "ispell" "textmodes/ispell.el" (20187 22214)) ;;; Generated autoloads from textmodes/ispell.el (put 'ispell-check-comments 'safe-local-variable (lambda (a) (memq a '(nil t exclusive)))) @@ -16091,7 +16090,7 @@ by `jka-compr-installed'. ;;;*** -;;;### (autoloads (js-mode) "js" "progmodes/js.el" (20167 36967)) +;;;### (autoloads (js-mode) "js" "progmodes/js.el" (20222 61246)) ;;; Generated autoloads from progmodes/js.el (autoload 'js-mode "js" "\ @@ -16208,7 +16207,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-exec-ring-item) -;;;;;; "kmacro" "kmacro.el" (20164 60780)) +;;;;;; "kmacro" "kmacro.el" (20187 22214)) ;;; Generated autoloads from kmacro.el (global-set-key "\C-x(" 'kmacro-start-macro) (global-set-key "\C-x)" 'kmacro-end-macro) @@ -16366,7 +16365,7 @@ Use \\[describe-mode] for more info. ;;;### (autoloads (lao-compose-region lao-composition-function lao-transcribe-roman-to-lao-string ;;;;;; lao-transcribe-single-roman-syllable-to-lao lao-compose-string) -;;;;;; "lao-util" "language/lao-util.el" (20165 31925)) +;;;;;; "lao-util" "language/lao-util.el" (20188 43079)) ;;; Generated autoloads from language/lao-util.el (autoload 'lao-compose-string "lao-util" "\ @@ -16378,7 +16377,7 @@ Use \\[describe-mode] for more info. Transcribe a Romanized Lao syllable in the region FROM and TO to Lao string. Only the first syllable is transcribed. The value has the form: (START END LAO-STRING), where -START and END are the beggining and end positions of the Roman Lao syllable, +START and END are the beginning and end positions of the Roman Lao syllable, LAO-STRING is the Lao character transcription of it. Optional 3rd arg STR, if non-nil, is a string to search for Roman Lao @@ -16584,8 +16583,8 @@ See `linum-mode' for more information on Linum mode. ;;;*** -;;;### (autoloads (unload-feature) "loadhist" "loadhist.el" (20168 -;;;;;; 57844)) +;;;### (autoloads (unload-feature) "loadhist" "loadhist.el" (20203 +;;;;;; 10426)) ;;; Generated autoloads from loadhist.el (autoload 'unload-feature "loadhist" "\ @@ -17226,7 +17225,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" (20176 51947)) +;;;;;; "make-mode" "progmodes/make-mode.el" (20199 13366)) ;;; Generated autoloads from progmodes/make-mode.el (autoload 'makefile-mode "make-mode" "\ @@ -17356,7 +17355,7 @@ Previous contents of that buffer are killed first. ;;;*** ;;;### (autoloads (Man-bookmark-jump man-follow man) "man" "man.el" -;;;;;; (20178 7273)) +;;;;;; (20203 10426)) ;;; Generated autoloads from man.el (defalias 'manual-entry 'man) @@ -17466,7 +17465,7 @@ recursion depth in the minibuffer prompt. This is only useful if ;;;;;; message-forward-make-body message-forward message-recover ;;;;;; message-supersede message-cancel-news message-followup message-wide-reply ;;;;;; message-reply message-news message-mail message-mode) "message" -;;;;;; "gnus/message.el" (20183 25152)) +;;;;;; "gnus/message.el" (20222 61246)) ;;; Generated autoloads from gnus/message.el (define-mail-user-agent 'message-user-agent 'message-mail 'message-send-and-exit 'message-kill-buffer 'message-send-hook) @@ -17632,7 +17631,7 @@ which specify the range to operate on. ;;;*** ;;;### (autoloads (metapost-mode metafont-mode) "meta-mode" "progmodes/meta-mode.el" -;;;;;; (20164 60780)) +;;;;;; (20222 61246)) ;;; Generated autoloads from progmodes/meta-mode.el (autoload 'metafont-mode "meta-mode" "\ @@ -17784,7 +17783,7 @@ delete the draft message. ;;;*** -;;;### (autoloads (mh-version) "mh-e" "mh-e/mh-e.el" (20170 13157)) +;;;### (autoloads (mh-version) "mh-e" "mh-e/mh-e.el" (20222 61246)) ;;; Generated autoloads from mh-e/mh-e.el (put 'mh-progs 'risky-local-variable t) @@ -18378,7 +18377,7 @@ kill ring; mouse-1 or mouse-3 kills it. ;;;*** -;;;### (autoloads (mpc) "mpc" "mpc.el" (20178 7273)) +;;;### (autoloads (mpc) "mpc" "mpc.el" (20222 61246)) ;;; Generated autoloads from mpc.el (autoload 'mpc "mpc" "\ @@ -18565,7 +18564,7 @@ The default is 20. If LIMIT is negative, do not limit the listing. ;;;;;; 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" (19845 45374)) +;;;;;; "mule-util" "international/mule-util.el" (20197 58064)) ;;; Generated autoloads from international/mule-util.el (autoload 'string-to-sequence "mule-util" "\ @@ -18671,7 +18670,7 @@ Return the value of CODING-SYSTEM's `encode-translation-table' property. (autoload 'with-coding-priority "mule-util" "\ Execute BODY like `progn' with CODING-SYSTEMS at the front of priority list. CODING-SYSTEMS is a list of coding systems. See `set-coding-system-priority'. -This affects the implicit sorting of lists of coding sysems returned by +This affects the implicit sorting of lists of coding systems returned by operations such as `find-coding-systems-region'. \(fn CODING-SYSTEMS &rest BODY)" nil (quote macro)) @@ -18800,13 +18799,13 @@ Open a network connection to HOST on PORT. ;;;*** -;;;### (autoloads (netrc-credentials) "netrc" "net/netrc.el" (19845 -;;;;;; 45374)) +;;;### (autoloads (netrc-credentials) "netrc" "net/netrc.el" (20188 +;;;;;; 43079)) ;;; Generated autoloads from net/netrc.el (autoload 'netrc-credentials "netrc" "\ Return a user name/password pair. -Port specifications will be prioritised in the order they are +Port specifications will be prioritized in the order they are listed in the PORTS list. \(fn MACHINE &rest PORTS)" nil nil) @@ -18814,7 +18813,7 @@ listed in the PORTS list. ;;;*** ;;;### (autoloads (open-network-stream) "network-stream" "net/network-stream.el" -;;;;;; (20122 44898)) +;;;;;; (20188 43079)) ;;; Generated autoloads from net/network-stream.el (autoload 'open-network-stream "network-stream" "\ @@ -18882,7 +18881,7 @@ values: capability command, and should return the command to switch on STARTTLS if the server supports STARTTLS, and nil otherwise. -:always-query-capabilies says whether to query the server for +:always-query-capabilities says whether to query the server for capabilities, even if we're doing a `plain' network connection. :client-certificate should either be a list where the first @@ -19186,7 +19185,7 @@ Start newsticker treeview. ;;;*** ;;;### (autoloads (nndiary-generate-nov-databases) "nndiary" "gnus/nndiary.el" -;;;;;; (20168 57844)) +;;;;;; (20221 40442)) ;;; Generated autoloads from gnus/nndiary.el (autoload 'nndiary-generate-nov-databases "nndiary" "\ @@ -19381,7 +19380,7 @@ the variable `nxml-enabled-unicode-blocks'. ;;;;;; org-babel-pop-to-session-maybe org-babel-load-in-session-maybe ;;;;;; org-babel-expand-src-block-maybe org-babel-view-src-block-info ;;;;;; org-babel-execute-maybe org-babel-execute-safely-maybe) "ob" -;;;;;; "org/ob.el" (20174 10230)) +;;;;;; "org/ob.el" (20189 63932)) ;;; Generated autoloads from org/ob.el (autoload 'org-babel-execute-safely-maybe "ob" "\ @@ -19773,7 +19772,7 @@ including a reproducible test case and send the message. ;;;;;; org-insert-link-global org-store-link org-run-like-in-org-mode ;;;;;; turn-on-orgstruct++ turn-on-orgstruct orgstruct-mode org-global-cycle ;;;;;; org-mode org-babel-do-load-languages) "org" "org/org.el" -;;;;;; (20170 13157)) +;;;;;; (20197 58064)) ;;; Generated autoloads from org/org.el (autoload 'org-babel-do-load-languages "org" "\ @@ -19997,7 +19996,7 @@ Call the customize function with org as argument. ;;;;;; org-diary org-agenda-list-stuck-projects org-tags-view org-todo-list ;;;;;; org-search-view org-agenda-list org-batch-store-agenda-views ;;;;;; org-store-agenda-views org-batch-agenda-csv org-batch-agenda -;;;;;; org-agenda) "org-agenda" "org/org-agenda.el" (20178 7273)) +;;;;;; org-agenda) "org-agenda" "org/org-agenda.el" (20187 22214)) ;;; Generated autoloads from org/org-agenda.el (autoload 'org-agenda "org-agenda" "\ @@ -20398,7 +20397,7 @@ Set org-capture-templates to be similar to `org-remember-templates'. ;;;*** ;;;### (autoloads (org-clock-persistence-insinuate org-get-clocktable) -;;;;;; "org-clock" "org/org-clock.el" (20172 54913)) +;;;;;; "org-clock" "org/org-clock.el" (20187 22214)) ;;; Generated autoloads from org/org-clock.el (autoload 'org-get-clocktable "org-clock" "\ @@ -20509,7 +20508,7 @@ publishing directory. ;;;### (autoloads (org-insert-export-options-template org-export-as-org ;;;;;; org-export-visible org-export) "org-exp" "org/org-exp.el" -;;;;;; (20167 36967)) +;;;;;; (20221 40442)) ;;; Generated autoloads from org/org-exp.el (autoload 'org-export "org-exp" "\ @@ -21050,7 +21049,7 @@ line directly before or after the table. ;;;### (autoloads (org-publish-current-project org-publish-current-file ;;;;;; org-publish-all org-publish) "org-publish" "org/org-publish.el" -;;;;;; (20161 45793)) +;;;;;; (20189 63932)) ;;; Generated autoloads from org/org-publish.el (defalias 'org-publish-project 'org-publish) @@ -21160,7 +21159,7 @@ See also the variable `org-reverse-note-order'. ;;;*** ;;;### (autoloads (org-table-to-lisp orgtbl-mode turn-on-orgtbl) -;;;;;; "org-table" "org/org-table.el" (20168 57844)) +;;;;;; "org-table" "org/org-table.el" (20222 61246)) ;;; Generated autoloads from org/org-table.el (autoload 'turn-on-orgtbl "org-table" "\ @@ -21184,7 +21183,7 @@ The table is taken from the parameter TXT, or from the buffer at point. ;;;*** ;;;### (autoloads (org-export-as-taskjuggler-and-open org-export-as-taskjuggler) -;;;;;; "org-taskjuggler" "org/org-taskjuggler.el" (20166 16092)) +;;;;;; "org-taskjuggler" "org/org-taskjuggler.el" (20187 22214)) ;;; Generated autoloads from org/org-taskjuggler.el (autoload 'org-export-as-taskjuggler "org-taskjuggler" "\ @@ -21349,7 +21348,7 @@ See the command `outline-mode' for more information on this mode. ;;;### (autoloads (list-packages describe-package package-initialize ;;;;;; package-refresh-contents package-install-file package-install-from-buffer ;;;;;; package-install package-enable-at-startup) "package" "emacs-lisp/package.el" -;;;;;; (20168 57844)) +;;;;;; (20189 63932)) ;;; Generated autoloads from emacs-lisp/package.el (defvar package-enable-at-startup t "\ @@ -21459,8 +21458,8 @@ unknown are returned as nil. ;;;*** -;;;### (autoloads (pascal-mode) "pascal" "progmodes/pascal.el" (20168 -;;;;;; 57844)) +;;;### (autoloads (pascal-mode) "pascal" "progmodes/pascal.el" (20200 +;;;;;; 34235)) ;;; Generated autoloads from progmodes/pascal.el (autoload 'pascal-mode "pascal" "\ @@ -21535,7 +21534,7 @@ Check if KEY is in the cache. ;;;*** ;;;### (autoloads (pcase-let pcase-let* pcase) "pcase" "emacs-lisp/pcase.el" -;;;;;; (19863 8742)) +;;;;;; (20222 61246)) ;;; Generated autoloads from emacs-lisp/pcase.el (autoload 'pcase "pcase" "\ @@ -21606,7 +21605,7 @@ Completion rules for the `cvs' command. ;;;*** ;;;### (autoloads (pcomplete/tar pcomplete/make pcomplete/bzip2 pcomplete/gzip) -;;;;;; "pcmpl-gnu" "pcmpl-gnu.el" (20104 14925)) +;;;;;; "pcmpl-gnu" "pcmpl-gnu.el" (20193 60993)) ;;; Generated autoloads from pcmpl-gnu.el (autoload 'pcomplete/gzip "pcmpl-gnu" "\ @@ -21784,7 +21783,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" -;;;;;; "vc/pcvs.el" (20164 60780)) +;;;;;; "vc/pcvs.el" (20187 22214)) ;;; Generated autoloads from vc/pcvs.el (autoload 'cvs-checkout "pcvs" "\ @@ -21930,7 +21929,7 @@ Turning on Perl mode runs the normal hook `perl-mode-hook'. ;;;*** ;;;### (autoloads (picture-mode) "picture" "textmodes/picture.el" -;;;;;; (20093 44623)) +;;;;;; (20188 43079)) ;;; Generated autoloads from textmodes/picture.el (autoload 'picture-mode "picture" "\ @@ -22002,7 +22001,7 @@ by supplying an argument. Entry to this mode calls the value of `picture-mode-hook' if non-nil. Note that Picture mode commands will work outside of Picture mode, but -they are not defaultly assigned to keys. +they are not by default assigned to keys. \(fn)" t nil) @@ -22010,8 +22009,8 @@ they are not defaultly assigned to keys. ;;;*** -;;;### (autoloads (plstore-open) "plstore" "gnus/plstore.el" (20097 -;;;;;; 41737)) +;;;### (autoloads (plstore-open) "plstore" "gnus/plstore.el" (20197 +;;;;;; 58064)) ;;; Generated autoloads from gnus/plstore.el (autoload 'plstore-open "plstore" "\ @@ -22130,7 +22129,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" -;;;;;; (20175 31160)) +;;;;;; (20201 55112)) ;;; Generated autoloads from printing.el (autoload 'pr-interface "printing" "\ @@ -22639,12 +22638,12 @@ Interactively, you have the following situations: M-x pr-ps-fast-fire RET The command prompts the user for a N-UP value and printing will - immediatelly be done using the current active printer. + immediately be done using the current active printer. C-u M-x pr-ps-fast-fire RET C-u 0 M-x pr-ps-fast-fire RET The command prompts the user for a N-UP value and also for a current - PostScript printer, then printing will immediatelly be done using the new + PostScript printer, then printing will immediately be done using the new current active printer. C-u 1 M-x pr-ps-fast-fire RET @@ -22665,7 +22664,7 @@ zero and the argument SELECT is treated as follows: If it's nil, send the image to the printer. If it's a list or an integer lesser or equal to zero, the command prompts - the user for a current PostScript printer, then printing will immediatelly + the user for a current PostScript printer, then printing will immediately be done using the new current active printer. If it's an integer equal to 1, the command prompts the user for a file name @@ -22678,7 +22677,7 @@ zero and the argument SELECT is treated as follows: instead of sending it to the printer. If it's a symbol which it's defined in `pr-ps-printer-alist', it's the new - active printer and printing will immediatelly be done using the new active + active printer and printing will immediately be done using the new active printer. Otherwise, send the image to the printer. @@ -22705,7 +22704,7 @@ Noninteractively, the argument SELECT-PRINTER is treated as follows: If it's nil, the printing is sent to the current active text printer. If it's a symbol which it's defined in `pr-txt-printer-alist', it's the new - active printer and printing will immediatelly be done using the new active + active printer and printing will immediately be done using the new active printer. If it's non-nil, the command prompts the user for a new active text printer. @@ -22717,7 +22716,7 @@ are both set to t. ;;;*** -;;;### (autoloads (proced) "proced" "proced.el" (20053 39261)) +;;;### (autoloads (proced) "proced" "proced.el" (20197 58064)) ;;; Generated autoloads from proced.el (autoload 'proced "proced" "\ @@ -22733,7 +22732,7 @@ See `proced-mode' for a description of features available in Proced buffers. ;;;*** ;;;### (autoloads (run-prolog mercury-mode prolog-mode) "prolog" -;;;;;; "progmodes/prolog.el" (20176 51947)) +;;;;;; "progmodes/prolog.el" (20221 40442)) ;;; Generated autoloads from progmodes/prolog.el (autoload 'prolog-mode "prolog" "\ @@ -22832,8 +22831,8 @@ Typing \\<ps-run-mode-map>\\[ps-run-goto-error] when the cursor is at the number ;;;;;; 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" (20172 -;;;;;; 55048)) +;;;;;; ps-page-dimensions-database) "ps-print" "ps-print.el" (20222 +;;;;;; 61437)) ;;; Generated autoloads from ps-print.el (defvar ps-page-dimensions-database (purecopy (list (list 'a4 (/ (* 72 21.0) 2.54) (/ (* 72 29.7) 2.54) "A4") (list 'a3 (/ (* 72 29.7) 2.54) (/ (* 72 42.0) 2.54) "A3") (list 'letter (* 72 8.5) (* 72 11.0) "Letter") (list 'legal (* 72 8.5) (* 72 14.0) "Legal") (list 'letter-small (* 72 7.68) (* 72 10.16) "LetterSmall") (list 'tabloid (* 72 11.0) (* 72 17.0) "Tabloid") (list 'ledger (* 72 17.0) (* 72 11.0) "Ledger") (list 'statement (* 72 5.5) (* 72 8.5) "Statement") (list 'executive (* 72 7.5) (* 72 10.0) "Executive") (list 'a4small (* 72 7.47) (* 72 10.85) "A4Small") (list 'b4 (* 72 10.125) (* 72 14.33) "B4") (list 'b5 (* 72 7.16) (* 72 10.125) "B5") '(addresslarge 236.0 99.0 "AddressLarge") '(addresssmall 236.0 68.0 "AddressSmall") '(cuthanging13 90.0 222.0 "CutHanging13") '(cuthanging15 90.0 114.0 "CutHanging15") '(diskette 181.0 136.0 "Diskette") '(eurofilefolder 139.0 112.0 "EuropeanFilefolder") '(eurofoldernarrow 526.0 107.0 "EuroFolderNarrow") '(eurofolderwide 526.0 136.0 "EuroFolderWide") '(euronamebadge 189.0 108.0 "EuroNameBadge") '(euronamebadgelarge 223.0 136.0 "EuroNameBadgeLarge") '(filefolder 230.0 37.0 "FileFolder") '(jewelry 76.0 136.0 "Jewelry") '(mediabadge 180.0 136.0 "MediaBadge") '(multipurpose 126.0 68.0 "MultiPurpose") '(retaillabel 90.0 104.0 "RetailLabel") '(shipping 271.0 136.0 "Shipping") '(slide35mm 26.0 104.0 "Slide35mm") '(spine8mm 187.0 26.0 "Spine8mm") '(topcoated 425.19685 136.0 "TopCoatedPaper") '(topcoatedpaper 396.0 136.0 "TopcoatedPaper150") '(vhsface 205.0 127.0 "VHSFace") '(vhsspine 400.0 50.0 "VHSSpine") '(zipdisk 156.0 136.0 "ZipDisk"))) "\ @@ -23030,7 +23029,7 @@ If EXTENSION is any other symbol, it is ignored. ;;;*** ;;;### (autoloads (jython-mode python-mode python-after-info-look -;;;;;; run-python) "python" "progmodes/python.el" (20170 13157)) +;;;;;; run-python) "python" "progmodes/python.el" (20204 31303)) ;;; Generated autoloads from progmodes/python.el (add-to-list 'interpreter-mode-alist (cons (purecopy "jython") 'jython-mode)) @@ -23139,7 +23138,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" (20166 16092)) +;;;;;; "international/quail.el" (20201 55112)) ;;; Generated autoloads from international/quail.el (autoload 'quail-title "quail" "\ @@ -23845,8 +23844,8 @@ of master file. ;;;*** -;;;### (autoloads nil "reftex-vars" "textmodes/reftex-vars.el" (19845 -;;;;;; 45374)) +;;;### (autoloads nil "reftex-vars" "textmodes/reftex-vars.el" (20221 +;;;;;; 40442)) ;;; 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)))) @@ -23887,7 +23886,7 @@ This means the number of non-shy regexp grouping constructs ;;;### (autoloads (remember-diary-extract-entries remember-clipboard ;;;;;; remember-other-frame remember) "remember" "textmodes/remember.el" -;;;;;; (20161 45793)) +;;;;;; (20209 49217)) ;;; Generated autoloads from textmodes/remember.el (autoload 'remember "remember" "\ @@ -24000,16 +23999,16 @@ first comment line visible (if point is in a comment). ;;;*** ;;;### (autoloads (global-reveal-mode reveal-mode) "reveal" "reveal.el" -;;;;;; (20127 62865)) +;;;;;; (20207 7484)) ;;; Generated autoloads from reveal.el (autoload 'reveal-mode "reveal" "\ -Toggle decloaking of invisible text near point (Reveal mode). +Toggle uncloaking of invisible text near point (Reveal mode). With a prefix argument ARG, enable Reveal mode if ARG is positive, and disable it otherwise. If called from Lisp, enable Reveal mode if ARG is omitted or nil. -Reveral mode is a buffer-local minor mode. When enabled, it +Reveal mode is a buffer-local minor mode. When enabled, it reveals invisible text around point. \(fn &optional ARG)" t nil) @@ -24100,7 +24099,7 @@ variable. ;;;;;; rmail-secondary-file-directory rmail-primary-inbox-list rmail-highlighted-headers ;;;;;; rmail-retry-ignored-headers rmail-displayed-headers rmail-ignored-headers ;;;;;; rmail-user-mail-address-regexp rmail-movemail-variant-p) -;;;;;; "rmail" "mail/rmail.el" (20174 10633)) +;;;;;; "rmail" "mail/rmail.el" (20222 61246)) ;;; Generated autoloads from mail/rmail.el (autoload 'rmail-movemail-variant-p "rmail" "\ @@ -24374,7 +24373,7 @@ Validation will be enabled if `rng-nxml-auto-validate-flag' is non-nil. ;;;*** ;;;### (autoloads (rng-validate-mode) "rng-valid" "nxml/rng-valid.el" -;;;;;; (20178 7273)) +;;;;;; (20221 40442)) ;;; Generated autoloads from nxml/rng-valid.el (autoload 'rng-validate-mode "rng-valid" "\ @@ -24433,7 +24432,7 @@ must be equal. ;;;*** ;;;### (autoloads (robin-use-package robin-modify-package robin-define-package) -;;;;;; "robin" "international/robin.el" (20159 42847)) +;;;;;; "robin" "international/robin.el" (20209 49217)) ;;; Generated autoloads from international/robin.el (autoload 'robin-define-package "robin" "\ @@ -24504,7 +24503,7 @@ Toggle the use of ROT13 encoding for the current window. ;;;*** ;;;### (autoloads (rst-minor-mode rst-mode) "rst" "textmodes/rst.el" -;;;;;; (20178 7273)) +;;;;;; (20221 40442)) ;;; Generated autoloads from textmodes/rst.el (add-to-list 'auto-mode-alist (purecopy '("\\.re?st\\'" . rst-mode))) @@ -25029,7 +25028,7 @@ during scrolling. ;;;*** ;;;### (autoloads (semantic-mode semantic-default-submodes) "semantic" -;;;;;; "cedet/semantic.el" (20172 54913)) +;;;;;; "cedet/semantic.el" (20187 22214)) ;;; Generated autoloads from cedet/semantic.el (defvar semantic-default-submodes '(global-semantic-idle-scheduler-mode global-semanticdb-minor-mode) "\ @@ -25365,8 +25364,8 @@ Like `mail' command, but display mail buffer in another frame. ;;;*** ;;;### (autoloads (server-save-buffers-kill-terminal server-mode -;;;;;; server-force-delete server-start) "server" "server.el" (20172 -;;;;;; 54913)) +;;;;;; server-force-delete server-start) "server" "server.el" (20188 +;;;;;; 43079)) ;;; Generated autoloads from server.el (put 'server-host 'risky-local-variable t) @@ -25433,7 +25432,7 @@ only these files will be asked to be saved. ;;;*** -;;;### (autoloads (ses-mode) "ses" "ses.el" (20172 54913)) +;;;### (autoloads (ses-mode) "ses" "ses.el" (20207 7484)) ;;; Generated autoloads from ses.el (autoload 'ses-mode "ses" "\ @@ -25673,7 +25672,7 @@ Set up file shadowing. ;;;*** ;;;### (autoloads (shell shell-dumb-shell-regexp) "shell" "shell.el" -;;;;;; (20168 57844)) +;;;;;; (20197 58064)) ;;; Generated autoloads from shell.el (defvar shell-dumb-shell-regexp (purecopy "cmd\\(proxy\\)?\\.exe") "\ @@ -26040,8 +26039,8 @@ then `snmpv2-mode-hook'. ;;;*** -;;;### (autoloads (sunrise-sunset) "solar" "calendar/solar.el" (19886 -;;;;;; 45771)) +;;;### (autoloads (sunrise-sunset) "solar" "calendar/solar.el" (20188 +;;;;;; 43079)) ;;; Generated autoloads from calendar/solar.el (autoload 'sunrise-sunset "solar" "\ @@ -26338,7 +26337,7 @@ Spam reports will be queued with the method used when ;;;*** ;;;### (autoloads (speedbar-get-focus speedbar-frame-mode) "speedbar" -;;;;;; "speedbar.el" (20178 7273)) +;;;;;; "speedbar.el" (20221 40442)) ;;; Generated autoloads from speedbar.el (defalias 'speedbar 'speedbar-frame-mode) @@ -26382,7 +26381,7 @@ Return a vector containing the lines from `spook-phrases-file'. ;;;;;; sql-ms sql-ingres sql-solid sql-mysql sql-sqlite sql-informix ;;;;;; sql-sybase sql-oracle sql-product-interactive sql-connect ;;;;;; sql-mode sql-help sql-add-product-keywords) "sql" "progmodes/sql.el" -;;;;;; (20178 7273)) +;;;;;; (20207 7484)) ;;; Generated autoloads from progmodes/sql.el (autoload 'sql-add-product-keywords "sql" "\ @@ -26878,7 +26877,7 @@ buffer. ;;;*** ;;;### (autoloads (srecode-template-mode) "srecode/srt-mode" "cedet/srecode/srt-mode.el" -;;;;;; (20160 63745)) +;;;;;; (20197 58064)) ;;; Generated autoloads from cedet/srecode/srt-mode.el (autoload 'srecode-template-mode "srecode/srt-mode" "\ @@ -27206,7 +27205,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" (20179 28130)) +;;;;;; "table" "textmodes/table.el" (20189 63932)) ;;; Generated autoloads from textmodes/table.el (defvar table-cell-map-hook nil "\ @@ -27446,7 +27445,7 @@ specified. (autoload 'table-shorten-cell "table" "\ Shorten the current cell by N lines by shrinking the cell vertically. Shortening is done by removing blank lines from the bottom of the cell -and possibly from the top of the cell as well. Therefor, the cell +and possibly from the top of the cell as well. Therefore, the cell must have some bottom/top blank lines to be shorten effectively. This is applicable to all the cells aligned horizontally with the current one because they are also shortened in order to keep the rectangular @@ -27950,7 +27949,7 @@ Normally input is edited in Emacs and sent a line at a time. ;;;*** ;;;### (autoloads (serial-term ansi-term term make-term) "term" "term.el" -;;;;;; (20178 7273)) +;;;;;; (20209 49217)) ;;; Generated autoloads from term.el (autoload 'make-term "term" "\ @@ -28373,7 +28372,7 @@ Major mode to edit DocTeX files. ;;;*** ;;;### (autoloads (texi2info texinfo-format-region texinfo-format-buffer) -;;;;;; "texinfmt" "textmodes/texinfmt.el" (20183 25152)) +;;;;;; "texinfmt" "textmodes/texinfmt.el" (20187 22214)) ;;; Generated autoloads from textmodes/texinfmt.el (autoload 'texinfo-format-buffer "texinfmt" "\ @@ -28729,7 +28728,7 @@ This function performs no refilling of the changed text. ;;;### (autoloads (emacs-init-time emacs-uptime display-time-world ;;;;;; display-time-mode display-time display-time-day-and-date) -;;;;;; "time" "time.el" (20127 62865)) +;;;;;; "time" "time.el" (20187 22214)) ;;; Generated autoloads from time.el (defvar display-time-day-and-date nil "\ @@ -29053,7 +29052,7 @@ relative only to the time worked today, and not to past time. ;;;*** ;;;### (autoloads (batch-titdic-convert titdic-convert) "titdic-cnv" -;;;;;; "international/titdic-cnv.el" (20175 31160)) +;;;;;; "international/titdic-cnv.el" (20201 55112)) ;;; Generated autoloads from international/titdic-cnv.el (autoload 'titdic-convert "titdic-cnv" "\ @@ -29359,7 +29358,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-syntax tramp-mode) "tramp" -;;;;;; "net/tramp.el" (20179 28130)) +;;;;;; "net/tramp.el" (20209 49217)) ;;; Generated autoloads from net/tramp.el (defvar tramp-mode t "\ @@ -29790,7 +29789,7 @@ You might need to set `uce-mail-reader' before using this. ;;;;;; ucs-normalize-NFKC-string ucs-normalize-NFKC-region ucs-normalize-NFKD-string ;;;;;; ucs-normalize-NFKD-region ucs-normalize-NFC-string ucs-normalize-NFC-region ;;;;;; ucs-normalize-NFD-string ucs-normalize-NFD-region) "ucs-normalize" -;;;;;; "international/ucs-normalize.el" (20052 53218)) +;;;;;; "international/ucs-normalize.el" (20187 22214)) ;;; Generated autoloads from international/ucs-normalize.el (autoload 'ucs-normalize-NFD-region "ucs-normalize" "\ @@ -30053,7 +30052,7 @@ Handle file: and ftp: URLs. ;;;*** ;;;### (autoloads (url-open-stream url-gateway-nslookup-host) "url-gw" -;;;;;; "url/url-gw.el" (19864 29553)) +;;;;;; "url/url-gw.el" (20187 22214)) ;;; Generated autoloads from url/url-gw.el (autoload 'url-gateway-nslookup-host "url-gw" "\ @@ -30128,7 +30127,7 @@ accessible. ;;;*** ;;;### (autoloads (url-http-options url-http-file-attributes url-http-file-exists-p -;;;;;; url-http) "url-http" "url/url-http.el" (20167 36967)) +;;;;;; url-http) "url-http" "url/url-http.el" (20201 55112)) ;;; Generated autoloads from url/url-http.el (autoload 'url-http "url-http" "\ @@ -30576,7 +30575,7 @@ Encode UTF-7 STRING. Use IMAP modification if FOR-IMAP is non-nil. ;;;### (autoloads (uudecode-decode-region uudecode-decode-region-internal ;;;;;; uudecode-decode-region-external) "uudecode" "mail/uudecode.el" -;;;;;; (19845 45374)) +;;;;;; (20222 61246)) ;;; Generated autoloads from mail/uudecode.el (autoload 'uudecode-decode-region-external "uudecode" "\ @@ -30606,8 +30605,8 @@ If FILE-NAME is non-nil, save the result to FILE-NAME. ;;;;;; vc-print-log vc-retrieve-tag vc-create-tag vc-merge vc-insert-headers ;;;;;; vc-revision-other-window vc-root-diff vc-ediff vc-version-ediff ;;;;;; vc-diff vc-version-diff vc-register vc-next-action vc-before-checkin-hook -;;;;;; vc-checkin-hook vc-checkout-hook) "vc" "vc/vc.el" (20172 -;;;;;; 54913)) +;;;;;; vc-checkin-hook vc-checkout-hook) "vc" "vc/vc.el" (20204 +;;;;;; 31303)) ;;; Generated autoloads from vc/vc.el (defvar vc-checkout-hook nil "\ @@ -30630,34 +30629,27 @@ See `run-hooks'.") (autoload 'vc-next-action "vc" "\ Do the next logical version control operation on the current fileset. -This requires that all files in the fileset be in the same state. - -For locking systems: - If every file is not already registered, this registers each for version -control. - If every file is registered and not locked by anyone, this checks out -a writable and locked file of each ready for editing. - If every file is checked out and locked by the calling user, this -first checks to see if each file has changed since checkout. If not, -it performs a revert on that file. - If every file has been changed, this pops up a buffer for entry -of a log message; when the message has been entered, it checks in the -resulting changes along with the log message as change commentary. If -the variable `vc-keep-workfiles' is non-nil (which is its default), a -read-only copy of each changed file is left in place afterwards. - If the affected file is registered and locked by someone else, you are -given the option to steal the lock(s). - -For merging systems: - If every file is not already registered, this registers each one for version -control. This does an add, but not a commit. - If every file is added but not committed, each one is committed. - If every working file is changed, but the corresponding repository file is -unchanged, this pops up a buffer for entry of a log message; when the -message has been entered, it checks in the resulting changes along -with the logmessage as change commentary. A writable file is retained. - If the repository file is changed, you are asked if you want to -merge in the changes into your working copy. +This requires that all files in the current VC fileset be in the +same state. If not, signal an error. + +For merging-based version control systems: + If every file in the VC fileset is not registered for version + control, register the fileset (but don't commit). + If every work file in the VC fileset is added or changed, pop + up a *vc-log* buffer to commit the fileset. + For a centralized version control system, if any work file in + the VC fileset is out of date, offer to update the fileset. + +For old-style locking-based version control systems, like RCS: + If every file is not registered, register the file(s). + If every file is registered and unlocked, check out (lock) + the file(s) for editing. + If every file is locked by you and has changes, pop up a + *vc-log* buffer to check in the changes. If the variable + `vc-keep-workfiles' is non-nil (the default), leave a + read-only copy of each changed file after checking in. + If every file is locked by you and unchanged, unlock them. + If every file is locked by someone else, offer to steal the lock. \(fn VERBOSE)" t nil) @@ -30937,7 +30929,7 @@ mode-specific menu. `vc-annotate-color-map' and ;;;*** -;;;### (autoloads nil "vc-bzr" "vc/vc-bzr.el" (20174 10230)) +;;;### (autoloads nil "vc-bzr" "vc/vc-bzr.el" (20209 49217)) ;;; Generated autoloads from vc/vc-bzr.el (defconst vc-bzr-admin-dirname ".bzr" "\ @@ -30953,7 +30945,7 @@ Name of the format file in a .bzr directory.") ;;;*** -;;;### (autoloads nil "vc-cvs" "vc/vc-cvs.el" (20174 10230)) +;;;### (autoloads nil "vc-cvs" "vc/vc-cvs.el" (20221 40442)) ;;; Generated autoloads from vc/vc-cvs.el (defun vc-cvs-registered (f) "Return non-nil if file F is registered with CVS." @@ -30964,7 +30956,7 @@ Name of the format file in a .bzr directory.") ;;;*** -;;;### (autoloads (vc-dir) "vc-dir" "vc/vc-dir.el" (20168 57844)) +;;;### (autoloads (vc-dir) "vc-dir" "vc/vc-dir.el" (20207 7484)) ;;; Generated autoloads from vc/vc-dir.el (autoload 'vc-dir "vc-dir" "\ @@ -31023,7 +31015,7 @@ case, and the process object in the asynchronous case. ;;;*** -;;;### (autoloads nil "vc-hg" "vc/vc-hg.el" (19845 45374)) +;;;### (autoloads nil "vc-hg" "vc/vc-hg.el" (20207 7484)) ;;; Generated autoloads from vc/vc-hg.el (defun vc-hg-registered (file) "Return non-nil if FILE is registered with hg." @@ -31034,7 +31026,7 @@ case, and the process object in the asynchronous case. ;;;*** -;;;### (autoloads nil "vc-mtn" "vc/vc-mtn.el" (20174 10230)) +;;;### (autoloads nil "vc-mtn" "vc/vc-mtn.el" (20221 40442)) ;;; Generated autoloads from vc/vc-mtn.el (defconst vc-mtn-admin-dir "_MTN" "\ @@ -31096,7 +31088,7 @@ find any project directory." (let ((project-dir (getenv "PROJECTDIR")) dirs dir) ;;;*** ;;;### (autoloads (vera-mode) "vera-mode" "progmodes/vera-mode.el" -;;;;;; (20131 59880)) +;;;;;; (20203 10426)) ;;; Generated autoloads from progmodes/vera-mode.el (add-to-list 'auto-mode-alist (cons (purecopy "\\.vr[hi]?\\'") 'vera-mode)) @@ -31154,7 +31146,7 @@ Key bindings: ;;;*** ;;;### (autoloads (verilog-mode) "verilog-mode" "progmodes/verilog-mode.el" -;;;;;; (20183 25152)) +;;;;;; (20222 61246)) ;;; Generated autoloads from progmodes/verilog-mode.el (autoload 'verilog-mode "verilog-mode" "\ @@ -31293,7 +31285,7 @@ Key bindings specific to `verilog-mode-map' are: ;;;*** ;;;### (autoloads (vhdl-mode) "vhdl-mode" "progmodes/vhdl-mode.el" -;;;;;; (20168 57844)) +;;;;;; (20197 58064)) ;;; Generated autoloads from progmodes/vhdl-mode.el (autoload 'vhdl-mode "vhdl-mode" "\ @@ -31444,7 +31436,7 @@ Usage: CODE BEAUTIFICATION: `C-c M-b' and `C-c C-b' beautify the code of a region or of the entire - buffer respectively. This inludes indentation, alignment, and case + buffer respectively. This includes indentation, alignment, and case fixing. Code beautification can also be run non-interactively using the command: @@ -31889,7 +31881,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" (19845 45374)) +;;;;;; "language/viet-util.el" (20187 22214)) ;;; Generated autoloads from language/viet-util.el (autoload 'viet-encode-viscii-char "viet-util" "\ @@ -31937,7 +31929,7 @@ Convert Vietnamese characters of the current buffer to `VIQR' mnemonics. ;;;;;; view-mode view-buffer-other-frame view-buffer-other-window ;;;;;; view-buffer view-file-other-frame view-file-other-window ;;;;;; view-file kill-buffer-if-not-modified view-remove-frame-by-deleting) -;;;;;; "view" "view.el" (20174 10230)) +;;;;;; "view" "view.el" (20188 43079)) ;;; Generated autoloads from view.el (defvar view-remove-frame-by-deleting t "\ @@ -32147,7 +32139,7 @@ Entry to view-mode runs the normal hook `view-mode-hook'. Update `view-return-to-alist' of buffer BUFFER. Remove from `view-return-to-alist' all entries referencing dead windows. Optional argument ITEM non-nil means add ITEM to -`view-return-to-alist' after purging. For a decsription of items +`view-return-to-alist' after purging. For a description of items that can be added see the RETURN-TO-ALIST argument of the function `view-mode-exit'. If `view-return-to-alist' contains an entry for the selected window, purge that entry from @@ -32179,8 +32171,8 @@ Exit View mode and make the current buffer editable. ;;;*** -;;;### (autoloads (vip-mode vip-setup) "vip" "emulation/vip.el" (20141 -;;;;;; 9296)) +;;;### (autoloads (vip-mode vip-setup) "vip" "emulation/vip.el" (20187 +;;;;;; 22214)) ;;; Generated autoloads from emulation/vip.el (autoload 'vip-setup "vip" "\ @@ -32196,7 +32188,7 @@ Turn on VIP emulation of VI. ;;;*** ;;;### (autoloads (viper-mode toggle-viper-mode) "viper" "emulation/viper.el" -;;;;;; (20167 36967)) +;;;;;; (20187 22214)) ;;; Generated autoloads from emulation/viper.el (autoload 'toggle-viper-mode "viper" "\ @@ -32794,8 +32786,8 @@ Minor mode for traversing widgets. ;;;*** ;;;### (autoloads (widget-setup widget-insert widget-delete widget-create -;;;;;; widget-prompt-value widgetp) "wid-edit" "wid-edit.el" (20162 -;;;;;; 19074)) +;;;;;; widget-prompt-value widgetp) "wid-edit" "wid-edit.el" (20222 +;;;;;; 61246)) ;;; Generated autoloads from wid-edit.el (autoload 'widgetp "wid-edit" "\ @@ -33072,7 +33064,7 @@ The key bindings are: ;;;*** -;;;### (autoloads (xesam-search) "xesam" "net/xesam.el" (20175 31160)) +;;;### (autoloads (xesam-search) "xesam" "net/xesam.el" (20197 58064)) ;;; Generated autoloads from net/xesam.el (autoload 'xesam-search "xesam" "\ @@ -33225,47 +33217,46 @@ Zone out, completely. ;;;;;; "calc/calc-fin.el" "calc/calc-forms.el" "calc/calc-frac.el" ;;;;;; "calc/calc-funcs.el" "calc/calc-graph.el" "calc/calc-help.el" ;;;;;; "calc/calc-incom.el" "calc/calc-keypd.el" "calc/calc-lang.el" -;;;;;; "calc/calc-loaddefs.el" "calc/calc-macs.el" "calc/calc-map.el" -;;;;;; "calc/calc-math.el" "calc/calc-menu.el" "calc/calc-misc.el" -;;;;;; "calc/calc-mode.el" "calc/calc-mtx.el" "calc/calc-nlfit.el" -;;;;;; "calc/calc-poly.el" "calc/calc-prog.el" "calc/calc-rewr.el" -;;;;;; "calc/calc-rules.el" "calc/calc-sel.el" "calc/calc-stat.el" -;;;;;; "calc/calc-store.el" "calc/calc-stuff.el" "calc/calc-trail.el" -;;;;;; "calc/calc-units.el" "calc/calc-vec.el" "calc/calc-yank.el" -;;;;;; "calc/calcalg2.el" "calc/calcalg3.el" "calc/calccomp.el" -;;;;;; "calc/calcsel2.el" "calendar/cal-bahai.el" "calendar/cal-coptic.el" -;;;;;; "calendar/cal-french.el" "calendar/cal-html.el" "calendar/cal-islam.el" -;;;;;; "calendar/cal-iso.el" "calendar/cal-julian.el" "calendar/cal-loaddefs.el" -;;;;;; "calendar/cal-mayan.el" "calendar/cal-menu.el" "calendar/cal-move.el" -;;;;;; "calendar/cal-persia.el" "calendar/cal-tex.el" "calendar/cal-x.el" -;;;;;; "calendar/diary-loaddefs.el" "calendar/hol-loaddefs.el" "cdl.el" -;;;;;; "cedet/cedet-cscope.el" "cedet/cedet-files.el" "cedet/cedet-global.el" -;;;;;; "cedet/cedet-idutils.el" "cedet/cedet.el" "cedet/ede/auto.el" -;;;;;; "cedet/ede/autoconf-edit.el" "cedet/ede/base.el" "cedet/ede/cpp-root.el" -;;;;;; "cedet/ede/custom.el" "cedet/ede/dired.el" "cedet/ede/emacs.el" -;;;;;; "cedet/ede/files.el" "cedet/ede/generic.el" "cedet/ede/linux.el" -;;;;;; "cedet/ede/loaddefs.el" "cedet/ede/locate.el" "cedet/ede/make.el" -;;;;;; "cedet/ede/makefile-edit.el" "cedet/ede/pconf.el" "cedet/ede/pmake.el" -;;;;;; "cedet/ede/proj-archive.el" "cedet/ede/proj-aux.el" "cedet/ede/proj-comp.el" -;;;;;; "cedet/ede/proj-elisp.el" "cedet/ede/proj-info.el" "cedet/ede/proj-misc.el" -;;;;;; "cedet/ede/proj-obj.el" "cedet/ede/proj-prog.el" "cedet/ede/proj-scheme.el" -;;;;;; "cedet/ede/proj-shared.el" "cedet/ede/proj.el" "cedet/ede/project-am.el" -;;;;;; "cedet/ede/shell.el" "cedet/ede/simple.el" "cedet/ede/source.el" -;;;;;; "cedet/ede/speedbar.el" "cedet/ede/srecode.el" "cedet/ede/system.el" -;;;;;; "cedet/ede/util.el" "cedet/inversion.el" "cedet/mode-local.el" -;;;;;; "cedet/pulse.el" "cedet/semantic/analyze.el" "cedet/semantic/analyze/complete.el" -;;;;;; "cedet/semantic/analyze/debug.el" "cedet/semantic/analyze/fcn.el" -;;;;;; "cedet/semantic/analyze/refs.el" "cedet/semantic/bovine.el" -;;;;;; "cedet/semantic/bovine/c-by.el" "cedet/semantic/bovine/c.el" -;;;;;; "cedet/semantic/bovine/debug.el" "cedet/semantic/bovine/el.el" -;;;;;; "cedet/semantic/bovine/gcc.el" "cedet/semantic/bovine/make-by.el" -;;;;;; "cedet/semantic/bovine/make.el" "cedet/semantic/bovine/scm-by.el" -;;;;;; "cedet/semantic/bovine/scm.el" "cedet/semantic/chart.el" -;;;;;; "cedet/semantic/complete.el" "cedet/semantic/ctxt.el" "cedet/semantic/db-debug.el" -;;;;;; "cedet/semantic/db-ebrowse.el" "cedet/semantic/db-el.el" -;;;;;; "cedet/semantic/db-file.el" "cedet/semantic/db-find.el" "cedet/semantic/db-global.el" -;;;;;; "cedet/semantic/db-javascript.el" "cedet/semantic/db-mode.el" -;;;;;; "cedet/semantic/db-ref.el" "cedet/semantic/db-typecache.el" +;;;;;; "calc/calc-macs.el" "calc/calc-map.el" "calc/calc-math.el" +;;;;;; "calc/calc-menu.el" "calc/calc-misc.el" "calc/calc-mode.el" +;;;;;; "calc/calc-mtx.el" "calc/calc-nlfit.el" "calc/calc-poly.el" +;;;;;; "calc/calc-prog.el" "calc/calc-rewr.el" "calc/calc-rules.el" +;;;;;; "calc/calc-sel.el" "calc/calc-stat.el" "calc/calc-store.el" +;;;;;; "calc/calc-stuff.el" "calc/calc-trail.el" "calc/calc-units.el" +;;;;;; "calc/calc-vec.el" "calc/calc-yank.el" "calc/calcalg2.el" +;;;;;; "calc/calcalg3.el" "calc/calccomp.el" "calc/calcsel2.el" +;;;;;; "calendar/cal-bahai.el" "calendar/cal-coptic.el" "calendar/cal-french.el" +;;;;;; "calendar/cal-html.el" "calendar/cal-islam.el" "calendar/cal-iso.el" +;;;;;; "calendar/cal-julian.el" "calendar/cal-loaddefs.el" "calendar/cal-mayan.el" +;;;;;; "calendar/cal-menu.el" "calendar/cal-move.el" "calendar/cal-persia.el" +;;;;;; "calendar/cal-tex.el" "calendar/cal-x.el" "calendar/diary-loaddefs.el" +;;;;;; "calendar/hol-loaddefs.el" "cdl.el" "cedet/cedet-cscope.el" +;;;;;; "cedet/cedet-files.el" "cedet/cedet-global.el" "cedet/cedet-idutils.el" +;;;;;; "cedet/cedet.el" "cedet/ede/auto.el" "cedet/ede/autoconf-edit.el" +;;;;;; "cedet/ede/base.el" "cedet/ede/cpp-root.el" "cedet/ede/custom.el" +;;;;;; "cedet/ede/dired.el" "cedet/ede/emacs.el" "cedet/ede/files.el" +;;;;;; "cedet/ede/generic.el" "cedet/ede/linux.el" "cedet/ede/locate.el" +;;;;;; "cedet/ede/make.el" "cedet/ede/makefile-edit.el" "cedet/ede/pconf.el" +;;;;;; "cedet/ede/pmake.el" "cedet/ede/proj-archive.el" "cedet/ede/proj-aux.el" +;;;;;; "cedet/ede/proj-comp.el" "cedet/ede/proj-elisp.el" "cedet/ede/proj-info.el" +;;;;;; "cedet/ede/proj-misc.el" "cedet/ede/proj-obj.el" "cedet/ede/proj-prog.el" +;;;;;; "cedet/ede/proj-scheme.el" "cedet/ede/proj-shared.el" "cedet/ede/proj.el" +;;;;;; "cedet/ede/project-am.el" "cedet/ede/shell.el" "cedet/ede/simple.el" +;;;;;; "cedet/ede/source.el" "cedet/ede/speedbar.el" "cedet/ede/srecode.el" +;;;;;; "cedet/ede/system.el" "cedet/ede/util.el" "cedet/inversion.el" +;;;;;; "cedet/mode-local.el" "cedet/pulse.el" "cedet/semantic/analyze.el" +;;;;;; "cedet/semantic/analyze/complete.el" "cedet/semantic/analyze/debug.el" +;;;;;; "cedet/semantic/analyze/fcn.el" "cedet/semantic/analyze/refs.el" +;;;;;; "cedet/semantic/bovine.el" "cedet/semantic/bovine/c-by.el" +;;;;;; "cedet/semantic/bovine/c.el" "cedet/semantic/bovine/debug.el" +;;;;;; "cedet/semantic/bovine/el.el" "cedet/semantic/bovine/gcc.el" +;;;;;; "cedet/semantic/bovine/make-by.el" "cedet/semantic/bovine/make.el" +;;;;;; "cedet/semantic/bovine/scm-by.el" "cedet/semantic/bovine/scm.el" +;;;;;; "cedet/semantic/chart.el" "cedet/semantic/complete.el" "cedet/semantic/ctxt.el" +;;;;;; "cedet/semantic/db-debug.el" "cedet/semantic/db-ebrowse.el" +;;;;;; "cedet/semantic/db-el.el" "cedet/semantic/db-file.el" "cedet/semantic/db-find.el" +;;;;;; "cedet/semantic/db-global.el" "cedet/semantic/db-javascript.el" +;;;;;; "cedet/semantic/db-mode.el" "cedet/semantic/db-ref.el" "cedet/semantic/db-typecache.el" ;;;;;; "cedet/semantic/db.el" "cedet/semantic/debug.el" "cedet/semantic/decorate.el" ;;;;;; "cedet/semantic/decorate/include.el" "cedet/semantic/decorate/mode.el" ;;;;;; "cedet/semantic/dep.el" "cedet/semantic/doc.el" "cedet/semantic/ede-grammar.el" @@ -33273,13 +33264,13 @@ Zone out, completely. ;;;;;; "cedet/semantic/fw.el" "cedet/semantic/grammar-wy.el" "cedet/semantic/grammar.el" ;;;;;; "cedet/semantic/html.el" "cedet/semantic/ia-sb.el" "cedet/semantic/ia.el" ;;;;;; "cedet/semantic/idle.el" "cedet/semantic/imenu.el" "cedet/semantic/java.el" -;;;;;; "cedet/semantic/lex-spp.el" "cedet/semantic/lex.el" "cedet/semantic/loaddefs.el" -;;;;;; "cedet/semantic/mru-bookmark.el" "cedet/semantic/sb.el" "cedet/semantic/scope.el" -;;;;;; "cedet/semantic/senator.el" "cedet/semantic/sort.el" "cedet/semantic/symref.el" -;;;;;; "cedet/semantic/symref/cscope.el" "cedet/semantic/symref/filter.el" -;;;;;; "cedet/semantic/symref/global.el" "cedet/semantic/symref/grep.el" -;;;;;; "cedet/semantic/symref/idutils.el" "cedet/semantic/symref/list.el" -;;;;;; "cedet/semantic/tag-file.el" "cedet/semantic/tag-ls.el" "cedet/semantic/tag-write.el" +;;;;;; "cedet/semantic/lex-spp.el" "cedet/semantic/lex.el" "cedet/semantic/mru-bookmark.el" +;;;;;; "cedet/semantic/sb.el" "cedet/semantic/scope.el" "cedet/semantic/senator.el" +;;;;;; "cedet/semantic/sort.el" "cedet/semantic/symref.el" "cedet/semantic/symref/cscope.el" +;;;;;; "cedet/semantic/symref/filter.el" "cedet/semantic/symref/global.el" +;;;;;; "cedet/semantic/symref/grep.el" "cedet/semantic/symref/idutils.el" +;;;;;; "cedet/semantic/symref/list.el" "cedet/semantic/tag-file.el" +;;;;;; "cedet/semantic/tag-ls.el" "cedet/semantic/tag-write.el" ;;;;;; "cedet/semantic/tag.el" "cedet/semantic/texi.el" "cedet/semantic/util-modes.el" ;;;;;; "cedet/semantic/util.el" "cedet/semantic/wisent.el" "cedet/semantic/wisent/comp.el" ;;;;;; "cedet/semantic/wisent/java-tags.el" "cedet/semantic/wisent/javascript.el" @@ -33291,33 +33282,32 @@ Zone out, completely. ;;;;;; "cedet/srecode/el.el" "cedet/srecode/expandproto.el" "cedet/srecode/extract.el" ;;;;;; "cedet/srecode/fields.el" "cedet/srecode/filters.el" "cedet/srecode/find.el" ;;;;;; "cedet/srecode/getset.el" "cedet/srecode/insert.el" "cedet/srecode/java.el" -;;;;;; "cedet/srecode/loaddefs.el" "cedet/srecode/map.el" "cedet/srecode/mode.el" -;;;;;; "cedet/srecode/semantic.el" "cedet/srecode/srt-wy.el" "cedet/srecode/srt.el" -;;;;;; "cedet/srecode/table.el" "cedet/srecode/template.el" "cedet/srecode/texi.el" -;;;;;; "cus-dep.el" "dframe.el" "dired-aux.el" "dired-x.el" "dos-fns.el" -;;;;;; "dos-vars.el" "dos-w32.el" "dynamic-setting.el" "emacs-lisp/assoc.el" -;;;;;; "emacs-lisp/authors.el" "emacs-lisp/avl-tree.el" "emacs-lisp/bindat.el" -;;;;;; "emacs-lisp/byte-opt.el" "emacs-lisp/chart.el" "emacs-lisp/cl-extra.el" -;;;;;; "emacs-lisp/cl-loaddefs.el" "emacs-lisp/cl-macs.el" "emacs-lisp/cl-seq.el" -;;;;;; "emacs-lisp/cl-specs.el" "emacs-lisp/cust-print.el" "emacs-lisp/eieio-base.el" -;;;;;; "emacs-lisp/eieio-custom.el" "emacs-lisp/eieio-datadebug.el" -;;;;;; "emacs-lisp/eieio-opt.el" "emacs-lisp/eieio-speedbar.el" -;;;;;; "emacs-lisp/eieio.el" "emacs-lisp/find-gc.el" "emacs-lisp/gulp.el" -;;;;;; "emacs-lisp/lisp-mnt.el" "emacs-lisp/package-x.el" "emacs-lisp/regi.el" -;;;;;; "emacs-lisp/smie.el" "emacs-lisp/tcover-ses.el" "emacs-lisp/tcover-unsafep.el" -;;;;;; "emulation/cua-gmrk.el" "emulation/cua-rect.el" "emulation/edt-lk201.el" -;;;;;; "emulation/edt-mapper.el" "emulation/edt-pc.el" "emulation/edt-vt100.el" -;;;;;; "emulation/tpu-extras.el" "emulation/viper-cmd.el" "emulation/viper-ex.el" -;;;;;; "emulation/viper-init.el" "emulation/viper-keym.el" "emulation/viper-macs.el" -;;;;;; "emulation/viper-mous.el" "emulation/viper-util.el" "erc/erc-backend.el" -;;;;;; "erc/erc-goodies.el" "erc/erc-ibuffer.el" "erc/erc-lang.el" -;;;;;; "eshell/em-alias.el" "eshell/em-banner.el" "eshell/em-basic.el" -;;;;;; "eshell/em-cmpl.el" "eshell/em-dirs.el" "eshell/em-glob.el" -;;;;;; "eshell/em-hist.el" "eshell/em-ls.el" "eshell/em-pred.el" -;;;;;; "eshell/em-prompt.el" "eshell/em-rebind.el" "eshell/em-script.el" -;;;;;; "eshell/em-smart.el" "eshell/em-term.el" "eshell/em-unix.el" -;;;;;; "eshell/em-xtra.el" "eshell/esh-arg.el" "eshell/esh-cmd.el" -;;;;;; "eshell/esh-ext.el" "eshell/esh-groups.el" "eshell/esh-io.el" +;;;;;; "cedet/srecode/map.el" "cedet/srecode/mode.el" "cedet/srecode/semantic.el" +;;;;;; "cedet/srecode/srt-wy.el" "cedet/srecode/srt.el" "cedet/srecode/table.el" +;;;;;; "cedet/srecode/template.el" "cedet/srecode/texi.el" "cus-dep.el" +;;;;;; "dframe.el" "dired-aux.el" "dired-x.el" "dos-fns.el" "dos-vars.el" +;;;;;; "dos-w32.el" "dynamic-setting.el" "emacs-lisp/assoc.el" "emacs-lisp/authors.el" +;;;;;; "emacs-lisp/avl-tree.el" "emacs-lisp/bindat.el" "emacs-lisp/byte-opt.el" +;;;;;; "emacs-lisp/chart.el" "emacs-lisp/cl-extra.el" "emacs-lisp/cl-loaddefs.el" +;;;;;; "emacs-lisp/cl-macs.el" "emacs-lisp/cl-seq.el" "emacs-lisp/cl-specs.el" +;;;;;; "emacs-lisp/cust-print.el" "emacs-lisp/eieio-base.el" "emacs-lisp/eieio-custom.el" +;;;;;; "emacs-lisp/eieio-datadebug.el" "emacs-lisp/eieio-opt.el" +;;;;;; "emacs-lisp/eieio-speedbar.el" "emacs-lisp/eieio.el" "emacs-lisp/find-gc.el" +;;;;;; "emacs-lisp/gulp.el" "emacs-lisp/lisp-mnt.el" "emacs-lisp/package-x.el" +;;;;;; "emacs-lisp/regi.el" "emacs-lisp/smie.el" "emacs-lisp/tcover-ses.el" +;;;;;; "emacs-lisp/tcover-unsafep.el" "emulation/cua-gmrk.el" "emulation/cua-rect.el" +;;;;;; "emulation/edt-lk201.el" "emulation/edt-mapper.el" "emulation/edt-pc.el" +;;;;;; "emulation/edt-vt100.el" "emulation/tpu-extras.el" "emulation/viper-cmd.el" +;;;;;; "emulation/viper-ex.el" "emulation/viper-init.el" "emulation/viper-keym.el" +;;;;;; "emulation/viper-macs.el" "emulation/viper-mous.el" "emulation/viper-util.el" +;;;;;; "erc/erc-backend.el" "erc/erc-goodies.el" "erc/erc-ibuffer.el" +;;;;;; "erc/erc-lang.el" "eshell/em-alias.el" "eshell/em-banner.el" +;;;;;; "eshell/em-basic.el" "eshell/em-cmpl.el" "eshell/em-dirs.el" +;;;;;; "eshell/em-glob.el" "eshell/em-hist.el" "eshell/em-ls.el" +;;;;;; "eshell/em-pred.el" "eshell/em-prompt.el" "eshell/em-rebind.el" +;;;;;; "eshell/em-script.el" "eshell/em-smart.el" "eshell/em-term.el" +;;;;;; "eshell/em-unix.el" "eshell/em-xtra.el" "eshell/esh-arg.el" +;;;;;; "eshell/esh-cmd.el" "eshell/esh-ext.el" "eshell/esh-io.el" ;;;;;; "eshell/esh-module.el" "eshell/esh-opt.el" "eshell/esh-proc.el" ;;;;;; "eshell/esh-util.el" "eshell/esh-var.el" "ezimage.el" "foldout.el" ;;;;;; "format-spec.el" "forms-d2.el" "forms-pass.el" "fringe.el" @@ -33420,8 +33410,8 @@ Zone out, completely. ;;;;;; "vc/ediff-init.el" "vc/ediff-merg.el" "vc/ediff-ptch.el" ;;;;;; "vc/ediff-vers.el" "vc/ediff-wind.el" "vc/pcvs-info.el" "vc/pcvs-parse.el" ;;;;;; "vc/pcvs-util.el" "vc/vc-dav.el" "vcursor.el" "vt-control.el" -;;;;;; "vt100-led.el" "w32-fns.el" "w32-vars.el" "x-dnd.el") (20183 -;;;;;; 25444 347950)) +;;;;;; "vt100-led.el" "w32-fns.el" "w32-vars.el" "x-dnd.el") (20224 +;;;;;; 16870 730403)) ;;;*** diff --git a/lisp/ledit.el b/lisp/ledit.el index 09fe5001161..d9a2b4c5c47 100644 --- a/lisp/ledit.el +++ b/lisp/ledit.el @@ -1,6 +1,6 @@ ;;; ledit.el --- Emacs side of ledit interface -;; Copyright (C) 1985, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1985, 2001-2012 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: languages diff --git a/lisp/linum.el b/lisp/linum.el index 4e58a1b7118..162dc19f437 100644 --- a/lisp/linum.el +++ b/lisp/linum.el @@ -1,6 +1,6 @@ ;;; linum.el --- display line numbers in the left margin -*- lexical-binding: t -*- -;; Copyright (C) 2008-2011 Free Software Foundation, Inc. +;; Copyright (C) 2008-2012 Free Software Foundation, Inc. ;; Author: Markus Triska <markus.triska@gmx.at> ;; Maintainer: FSF diff --git a/lisp/loadhist.el b/lisp/loadhist.el index 51df6ecff0a..d747eb13b79 100644 --- a/lisp/loadhist.el +++ b/lisp/loadhist.el @@ -1,6 +1,6 @@ ;;; loadhist.el --- lisp functions for working with feature groups -;; Copyright (C) 1995, 1998, 2000-2011 Free Software Foundation, Inc. +;; Copyright (C) 1995, 1998, 2000-2012 Free Software Foundation, Inc. ;; Author: Eric S. Raymond <esr@snark.thyrsus.com> ;; Maintainer: FSF @@ -156,7 +156,7 @@ documentation of `unload-feature' for details.") (dolist (buffer (buffer-list)) (set-buffer buffer) (let ((proposed major-mode)) - ;; Look for an antecessor mode not defined in the feature we're processing + ;; Look for a predecessor mode not defined in the feature we're processing (while (and proposed (rassq proposed unload-function-defs-list)) (setq proposed (get proposed 'derived-mode-parent))) (unless (eq proposed major-mode) diff --git a/lisp/loadup.el b/lisp/loadup.el index 792827dd913..b7af41d6246 100644 --- a/lisp/loadup.el +++ b/lisp/loadup.el @@ -1,6 +1,6 @@ ;;; loadup.el --- load up standardly loaded Lisp files for Emacs -;; Copyright (C) 1985-1986, 1992, 1994, 2001-2011 +;; Copyright (C) 1985-1986, 1992, 1994, 2001-2012 ;; Free Software Foundation, Inc. ;; Maintainer: FSF diff --git a/lisp/locate.el b/lisp/locate.el index 2ac2d30f41d..29d7c75cbb2 100644 --- a/lisp/locate.el +++ b/lisp/locate.el @@ -1,6 +1,6 @@ ;;; locate.el --- interface to the locate command -;; Copyright (C) 1996, 1998, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1996, 1998, 2001-2012 Free Software Foundation, Inc. ;; Author: Peter Breton <pbreton@cs.umb.edu> ;; Keywords: unix files diff --git a/lisp/longlines.el b/lisp/longlines.el index b4d15da78a7..68722a8f920 100644 --- a/lisp/longlines.el +++ b/lisp/longlines.el @@ -1,6 +1,6 @@ ;;; longlines.el --- automatically wrap long lines -*- coding:utf-8 -*- -;; Copyright (C) 2000-2001, 2004-2011 Free Software Foundation, Inc. +;; Copyright (C) 2000-2001, 2004-2012 Free Software Foundation, Inc. ;; Authors: Kai Grossjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE> ;; Alex Schroeder <alex@gnu.org> diff --git a/lisp/lpr.el b/lisp/lpr.el index 296063549fc..65295a7f860 100644 --- a/lisp/lpr.el +++ b/lisp/lpr.el @@ -1,6 +1,6 @@ ;;; lpr.el --- print Emacs buffer on line printer -;; Copyright (C) 1985, 1988, 1992, 1994, 2001-2011 +;; Copyright (C) 1985, 1988, 1992, 1994, 2001-2012 ;; Free Software Foundation, Inc. ;; Maintainer: FSF diff --git a/lisp/ls-lisp.el b/lisp/ls-lisp.el index 14a8cabf1a7..576c746761d 100644 --- a/lisp/ls-lisp.el +++ b/lisp/ls-lisp.el @@ -1,6 +1,6 @@ ;;; ls-lisp.el --- emulate insert-directory completely in Emacs Lisp -;; Copyright (C) 1992, 1994, 2000-2011 Free Software Foundation, Inc. +;; Copyright (C) 1992, 1994, 2000-2012 Free Software Foundation, Inc. ;; Author: Sebastian Kremer <sk@thp.uni-koeln.de> ;; Modified by: Francis J. Wright <F.J.Wright@maths.qmw.ac.uk> diff --git a/lisp/macros.el b/lisp/macros.el index 554f89a8a60..2f48aaa982a 100644 --- a/lisp/macros.el +++ b/lisp/macros.el @@ -1,6 +1,6 @@ ;;; macros.el --- non-primitive commands for keyboard macros -;; Copyright (C) 1985-1987, 1992, 1994-1995, 2001-2011 +;; Copyright (C) 1985-1987, 1992, 1994-1995, 2001-2012 ;; Free Software Foundation, Inc. ;; Maintainer: FSF diff --git a/lisp/mail/binhex.el b/lisp/mail/binhex.el index 32593462062..dd76ce90809 100644 --- a/lisp/mail/binhex.el +++ b/lisp/mail/binhex.el @@ -1,6 +1,6 @@ ;;; binhex.el --- decode BinHex-encoded text -;; Copyright (C) 1998-2011 Free Software Foundation, Inc. +;; Copyright (C) 1998-2012 Free Software Foundation, Inc. ;; Author: Shenghuo Zhu <zsh@cs.rochester.edu> ;; Keywords: binhex news diff --git a/lisp/mail/blessmail.el b/lisp/mail/blessmail.el index b614fffb69d..44b2996dea9 100644 --- a/lisp/mail/blessmail.el +++ b/lisp/mail/blessmail.el @@ -1,6 +1,6 @@ ;;; blessmail.el --- decide whether movemail needs special privileges -*- no-byte-compile: t -*- -;; Copyright (C) 1994, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1994, 2001-2012 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: internal diff --git a/lisp/mail/emacsbug.el b/lisp/mail/emacsbug.el index 5b7601c6335..0e30727d483 100644 --- a/lisp/mail/emacsbug.el +++ b/lisp/mail/emacsbug.el @@ -1,6 +1,6 @@ ;;; emacsbug.el --- command to report Emacs bugs to appropriate mailing list -;; Copyright (C) 1985, 1994, 1997-1998, 2000-2011 +;; Copyright (C) 1985, 1994, 1997-1998, 2000-2012 ;; Free Software Foundation, Inc. ;; Author: K. Shane Hartman diff --git a/lisp/mail/footnote.el b/lisp/mail/footnote.el index 342d6c16b6e..05949d0eccf 100644 --- a/lisp/mail/footnote.el +++ b/lisp/mail/footnote.el @@ -1,6 +1,6 @@ ;;; footnote.el --- footnote support for message mode -*- coding: utf-8;-*- -;; Copyright (C) 1997, 2000-2011 Free Software Foundation, Inc. +;; Copyright (C) 1997, 2000-2012 Free Software Foundation, Inc. ;; Author: Steven L Baur <steve@xemacs.org> ;; Keywords: mail, news diff --git a/lisp/mail/hashcash.el b/lisp/mail/hashcash.el index 8343cd086b1..279b5f7b460 100644 --- a/lisp/mail/hashcash.el +++ b/lisp/mail/hashcash.el @@ -1,6 +1,6 @@ ;;; hashcash.el --- Add hashcash payments to email -;; Copyright (C) 2003-2005, 2007-2011 Free Software Foundation, Inc. +;; Copyright (C) 2003-2005, 2007-2012 Free Software Foundation, Inc. ;; Written by: Paul Foley <mycroft@actrix.gen.nz> (1997-2002) ;; Maintainer: Paul Foley <mycroft@actrix.gen.nz> diff --git a/lisp/mail/mail-extr.el b/lisp/mail/mail-extr.el index 12826001d86..5012d8af650 100644 --- a/lisp/mail/mail-extr.el +++ b/lisp/mail/mail-extr.el @@ -1,6 +1,6 @@ ;;; mail-extr.el --- extract full name and address from RFC 822 mail header -*- coding: utf-8 -*- -;; Copyright (C) 1991-1994, 1997, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1991-1994, 1997, 2001-2012 Free Software Foundation, Inc. ;; Author: Joe Wells <jbw@cs.bu.edu> ;; Maintainer: FSF diff --git a/lisp/mail/mail-hist.el b/lisp/mail/mail-hist.el index d824c282805..0e79992aebe 100644 --- a/lisp/mail/mail-hist.el +++ b/lisp/mail/mail-hist.el @@ -1,6 +1,6 @@ ;;; mail-hist.el --- headers and message body history for outgoing mail -;; Copyright (C) 1994, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1994, 2001-2012 Free Software Foundation, Inc. ;; Author: Karl Fogel <kfogel@red-bean.com> ;; Created: March, 1994 diff --git a/lisp/mail/mail-utils.el b/lisp/mail/mail-utils.el index 2e6f06a6758..a20201fb529 100644 --- a/lisp/mail/mail-utils.el +++ b/lisp/mail/mail-utils.el @@ -1,6 +1,6 @@ ;;; mail-utils.el --- utility functions used both by rmail and rnews -;; Copyright (C) 1985, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1985, 2001-2012 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: mail, news diff --git a/lisp/mail/mailabbrev.el b/lisp/mail/mailabbrev.el index 2472b8a1870..51a4c6506be 100644 --- a/lisp/mail/mailabbrev.el +++ b/lisp/mail/mailabbrev.el @@ -1,6 +1,6 @@ ;;; mailabbrev.el --- abbrev-expansion of mail aliases -;; Copyright (C) 1985-1987, 1992-1993, 1996-1997, 2000-2011 +;; Copyright (C) 1985-1987, 1992-1993, 1996-1997, 2000-2012 ;; Free Software Foundation, Inc. ;; Author: Jamie Zawinski <jwz@lucid.com; now jwz@jwz.org> diff --git a/lisp/mail/mailalias.el b/lisp/mail/mailalias.el index fc8a07acd47..0b55fe42e42 100644 --- a/lisp/mail/mailalias.el +++ b/lisp/mail/mailalias.el @@ -1,6 +1,6 @@ ;;; mailalias.el --- expand and complete mailing address aliases -*- lexical-binding: t -*- -;; Copyright (C) 1985, 1987, 1995-1997, 2001-2011 +;; Copyright (C) 1985, 1987, 1995-1997, 2001-2012 ;; Free Software Foundation, Inc. ;; Maintainer: FSF diff --git a/lisp/mail/mailclient.el b/lisp/mail/mailclient.el index b957d9f36c6..2e18c7ce23a 100644 --- a/lisp/mail/mailclient.el +++ b/lisp/mail/mailclient.el @@ -1,6 +1,6 @@ ;;; mailclient.el --- mail sending via system's mail client. -;; Copyright (C) 2005-2011 Free Software Foundation +;; Copyright (C) 2005-2012 Free Software Foundation ;; Author: David Reitter <david.reitter@gmail.com> ;; Keywords: mail diff --git a/lisp/mail/mailheader.el b/lisp/mail/mailheader.el index 1277d1d4109..1c917a05dfb 100644 --- a/lisp/mail/mailheader.el +++ b/lisp/mail/mailheader.el @@ -1,6 +1,6 @@ ;;; mailheader.el --- mail header parsing, merging, formatting -;; Copyright (C) 1996, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1996, 2001-2012 Free Software Foundation, Inc. ;; Author: Erik Naggum <erik@naggum.no> ;; Keywords: tools, mail, news diff --git a/lisp/mail/metamail.el b/lisp/mail/metamail.el index fcc334ea30b..ed2c4a66b7a 100644 --- a/lisp/mail/metamail.el +++ b/lisp/mail/metamail.el @@ -1,6 +1,6 @@ ;;; metamail.el --- Metamail interface for GNU Emacs -;; Copyright (C) 1993, 1996, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1993, 1996, 2001-2012 Free Software Foundation, Inc. ;; Author: Masanobu UMEDA <umerin@mse.kyutech.ac.jp> ;; Keywords: mail, news, mime, multimedia diff --git a/lisp/mail/mspools.el b/lisp/mail/mspools.el index 9af59672689..d52d9633ee7 100644 --- a/lisp/mail/mspools.el +++ b/lisp/mail/mspools.el @@ -1,6 +1,6 @@ ;;; mspools.el --- show mail spools waiting to be read -;; Copyright (C) 1997, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1997, 2001-2012 Free Software Foundation, Inc. ;; Author: Stephen Eglen <stephen@gnu.org> ;; Maintainer: Stephen Eglen <stephen@gnu.org> diff --git a/lisp/mail/reporter.el b/lisp/mail/reporter.el index 6c5448aca83..b4ee19b5186 100644 --- a/lisp/mail/reporter.el +++ b/lisp/mail/reporter.el @@ -1,6 +1,6 @@ ;;; reporter.el --- customizable bug reporting of lisp programs -;; Copyright (C) 1993-1998, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1993-1998, 2001-2012 Free Software Foundation, Inc. ;; Author: 1993-1998 Barry A. Warsaw ;; Maintainer: FSF diff --git a/lisp/mail/rfc2368.el b/lisp/mail/rfc2368.el index d3f824fe50f..dd10189d264 100644 --- a/lisp/mail/rfc2368.el +++ b/lisp/mail/rfc2368.el @@ -1,6 +1,6 @@ ;;; rfc2368.el --- support for rfc2368 -;; Copyright (C) 1998, 2000-2011 Free Software Foundation, Inc. +;; Copyright (C) 1998, 2000-2012 Free Software Foundation, Inc. ;; Author: Sen Nagata <sen@eccosys.com> ;; Keywords: mail diff --git a/lisp/mail/rfc822.el b/lisp/mail/rfc822.el index 9e4e60e6806..4a1779d44f7 100644 --- a/lisp/mail/rfc822.el +++ b/lisp/mail/rfc822.el @@ -1,6 +1,6 @@ ;;; rfc822.el --- hairy rfc822 parser for mail and news and suchlike -;; Copyright (C) 1986-1987, 1990, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1986-1987, 1990, 2001-2012 Free Software Foundation, Inc. ;; Author: Richard Mlynarik <mly@eddie.mit.edu> ;; Maintainer: FSF diff --git a/lisp/mail/rmail-spam-filter.el b/lisp/mail/rmail-spam-filter.el index 14a76746797..d7e31bfade7 100644 --- a/lisp/mail/rmail-spam-filter.el +++ b/lisp/mail/rmail-spam-filter.el @@ -1,6 +1,6 @@ ;;; rmail-spam-filter.el --- spam filter for Rmail, the Emacs mail reader -;; Copyright (C) 2002-2011 Free Software Foundation, Inc. +;; Copyright (C) 2002-2012 Free Software Foundation, Inc. ;; Keywords: email, spam, filter, rmail ;; Author: Eli Tziperman <eli AT deas.harvard.edu> ;; Package: rmail diff --git a/lisp/mail/rmail.el b/lisp/mail/rmail.el index 2415ef969ee..2a8140dd972 100644 --- a/lisp/mail/rmail.el +++ b/lisp/mail/rmail.el @@ -1,6 +1,6 @@ ;;; rmail.el --- main code of "RMAIL" mail reader for Emacs -;; Copyright (C) 1985-1988, 1993-1998, 2000-2011 +;; Copyright (C) 1985-1988, 1993-1998, 2000-2012 ;; Free Software Foundation, Inc. ;; Maintainer: FSF @@ -791,7 +791,7 @@ that knows the exact ordering of the \\( \\) subexpressions.") ;; These are all matched case-insensitively. (eval-when-compile (let* ((cite-chars "[>|}]") - (cite-prefix "a-z") + (cite-prefix "[:alpha:]") (cite-suffix (concat cite-prefix "0-9_.@-`'\""))) (list '("^\\(From\\|Sender\\|Resent-From\\):" . 'rmail-header-name) @@ -2773,7 +2773,15 @@ The current mail message becomes the message displayed." (forward-line)) (goto-char (point-min))) ;; Copy the headers to the front of the message view buffer. - (rmail-copy-headers beg end)) + (rmail-copy-headers beg end) + ;; Decode any RFC2047 encoded message headers. + (if rmail-enable-mime + (with-current-buffer rmail-view-buffer + (rfc2047-decode-region + (point-min) + (progn + (search-forward "\n\n" nil 'move) + (point)))))) ;; highlight the message, activate any URL like text and add ;; special highlighting for and quoted material. (with-current-buffer rmail-view-buffer @@ -4472,7 +4480,7 @@ encoded string (and the same mask) will decode the string." ;;; Start of automatically extracted autoloads. ;;;### (autoloads (rmail-edit-current-message) "rmailedit" "rmailedit.el" -;;;;;; "7f9bff22ed0bbac561c97fd1e3ab503d") +;;;;;; "7d558f958574f6003fa474ce2f3c80a8") ;;; Generated autoloads from rmailedit.el (autoload 'rmail-edit-current-message "rmailedit" "\ @@ -4484,7 +4492,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" -;;;;;; "rmailkwd.el" "ec13237a2b0a9e9c1893e38d36b11134") +;;;;;; "rmailkwd.el" "4ae5660d86d49e524f4a6bcbc6d9a984") ;;; Generated autoloads from rmailkwd.el (autoload 'rmail-add-label "rmailkwd" "\ @@ -4527,7 +4535,7 @@ With prefix argument N moves forward N messages with these labels. ;;;*** -;;;### (autoloads (rmail-mime) "rmailmm" "rmailmm.el" "2cb1f29b88b0c724fdba389fd7b98b00") +;;;### (autoloads (rmail-mime) "rmailmm" "rmailmm.el" "be7f4b94a269f840b8707defd515c4f9") ;;; Generated autoloads from rmailmm.el (autoload 'rmail-mime "rmailmm" "\ @@ -4554,7 +4562,7 @@ The arguments ARG and STATE have no effect in this case. ;;;*** ;;;### (autoloads (set-rmail-inbox-list) "rmailmsc" "rmailmsc.el" -;;;;;; "ca19b2f8a3e8aa01aa75ca7413f8a5ef") +;;;;;; "e2212ea15561d60365ffa1f7a5902939") ;;; Generated autoloads from rmailmsc.el (autoload 'set-rmail-inbox-list "rmailmsc" "\ @@ -4570,7 +4578,7 @@ This applies only to the current session. ;;;### (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" "rmailsort.el" "ad1c98fe868c0e5804cf945d6c980d0b") +;;;;;; rmail-sort-by-date) "rmailsort" "rmailsort.el" "38da5f17d4ed0dcd2b09c158642cef63") ;;; Generated autoloads from rmailsort.el (autoload 'rmail-sort-by-date "rmailsort" "\ @@ -4629,7 +4637,7 @@ If prefix argument REVERSE is non-nil, sorts in reverse order. ;;;### (autoloads (rmail-summary-by-senders rmail-summary-by-topic ;;;;;; rmail-summary-by-regexp rmail-summary-by-recipients rmail-summary-by-labels -;;;;;; rmail-summary) "rmailsum" "rmailsum.el" "d5971848a5fb43dc0092008376298a80") +;;;;;; rmail-summary) "rmailsum" "rmailsum.el" "bef21a376bd5bd59792a20dd86e6ec34") ;;; Generated autoloads from rmailsum.el (autoload 'rmail-summary "rmailsum" "\ @@ -4677,7 +4685,7 @@ SENDERS is a string of regexps separated by commas. ;;;*** ;;;### (autoloads (unforward-rmail-message undigestify-rmail-message) -;;;;;; "undigest" "undigest.el" "41e6a48ea63224385c447a944528feb6") +;;;;;; "undigest" "undigest.el" "1be42b2d20b13004f0ad1b504630ed00") ;;; Generated autoloads from undigest.el (autoload 'undigestify-rmail-message "undigest" "\ diff --git a/lisp/mail/rmailedit.el b/lisp/mail/rmailedit.el index 7e70f66ef11..0b837a43d94 100644 --- a/lisp/mail/rmailedit.el +++ b/lisp/mail/rmailedit.el @@ -1,6 +1,6 @@ ;;; rmailedit.el --- "RMAIL edit mode" Edit the current message -;; Copyright (C) 1985, 1994, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1985, 1994, 2001-2012 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: mail diff --git a/lisp/mail/rmailkwd.el b/lisp/mail/rmailkwd.el index 472740aefd8..a3a56fa47a2 100644 --- a/lisp/mail/rmailkwd.el +++ b/lisp/mail/rmailkwd.el @@ -1,6 +1,6 @@ ;;; rmailkwd.el --- part of the "RMAIL" mail reader for Emacs -;; Copyright (C) 1985, 1988, 1994, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1985, 1988, 1994, 2001-2012 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: mail diff --git a/lisp/mail/rmailmm.el b/lisp/mail/rmailmm.el index d01cfc7f2c8..9adc5eb9a06 100644 --- a/lisp/mail/rmailmm.el +++ b/lisp/mail/rmailmm.el @@ -1,6 +1,6 @@ ;;; rmailmm.el --- MIME decoding and display stuff for RMAIL -;; Copyright (C) 2006-2011 Free Software Foundation, Inc. +;; Copyright (C) 2006-2012 Free Software Foundation, Inc. ;; Author: Alexander Pohoyda ;; Alex Schroeder @@ -320,7 +320,7 @@ The value is a vector [INDEX HEADER TAGLINE BODY END], where (setq index 2)) ;; If the tagline is displayed, get past it to the body. (if (rmail-mime-display-tagline current) - ;; The next foward-line call must be in sync with how + ;; The next forward-line call must be in sync with how ;; `rmail-mime-insert-tagline' formats the tagline. The ;; body begins after the empty line that ends the tagline. (forward-line 3)) diff --git a/lisp/mail/rmailmsc.el b/lisp/mail/rmailmsc.el index 4519ab1505f..bfe2b6bbd79 100644 --- a/lisp/mail/rmailmsc.el +++ b/lisp/mail/rmailmsc.el @@ -1,6 +1,6 @@ ;;; rmailmsc.el --- miscellaneous support functions for the RMAIL mail reader -;; Copyright (C) 1985, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1985, 2001-2012 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: mail diff --git a/lisp/mail/rmailout.el b/lisp/mail/rmailout.el index ad76a493483..9c5b99c5184 100644 --- a/lisp/mail/rmailout.el +++ b/lisp/mail/rmailout.el @@ -1,6 +1,6 @@ ;;; rmailout.el --- "RMAIL" mail reader for Emacs: output message to a file -;; Copyright (C) 1985, 1987, 1993-1994, 2001-2011 +;; Copyright (C) 1985, 1987, 1993-1994, 2001-2012 ;; Free Software Foundation, Inc. ;; Maintainer: FSF diff --git a/lisp/mail/rmailsort.el b/lisp/mail/rmailsort.el index d8b85ad688a..41e24c0c16a 100644 --- a/lisp/mail/rmailsort.el +++ b/lisp/mail/rmailsort.el @@ -1,6 +1,6 @@ ;;; rmailsort.el --- Rmail: sort messages -;; Copyright (C) 1990, 1993-1994, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1990, 1993-1994, 2001-2012 Free Software Foundation, Inc. ;; Author: Masanobu UMEDA <umerin@mse.kyutech.ac.jp> ;; Maintainer: FSF diff --git a/lisp/mail/rmailsum.el b/lisp/mail/rmailsum.el index 5c147be3104..d3a464161cb 100644 --- a/lisp/mail/rmailsum.el +++ b/lisp/mail/rmailsum.el @@ -1,6 +1,6 @@ ;;; rmailsum.el --- make summary buffers for the mail reader -;; Copyright (C) 1985, 1993-1996, 2000-2011 Free Software Foundation, Inc. +;; Copyright (C) 1985, 1993-1996, 2000-2012 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: mail diff --git a/lisp/mail/sendmail.el b/lisp/mail/sendmail.el index 6044392d4e0..f0068e81811 100644 --- a/lisp/mail/sendmail.el +++ b/lisp/mail/sendmail.el @@ -1,6 +1,6 @@ ;;; sendmail.el --- mail sending commands for Emacs. -*- byte-compile-dynamic: t -*- -;; Copyright (C) 1985-1986, 1992-1996, 1998, 2000-2011 +;; Copyright (C) 1985-1986, 1992-1996, 1998, 2000-2012 ;; Free Software Foundation, Inc. ;; Maintainer: FSF diff --git a/lisp/mail/smtpmail.el b/lisp/mail/smtpmail.el index bc38b10124e..e3051fd0c9f 100644 --- a/lisp/mail/smtpmail.el +++ b/lisp/mail/smtpmail.el @@ -1,6 +1,6 @@ ;;; smtpmail.el --- simple SMTP protocol (RFC 821) for sending mail -;; Copyright (C) 1995-1996, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1995-1996, 2001-2012 Free Software Foundation, Inc. ;; Author: Tomoji Kagatani <kagatani@rbc.ncl.omron.co.jp> ;; Maintainer: Simon Josefsson <simon@josefsson.org> @@ -60,7 +60,6 @@ (autoload 'message-make-date "message") (autoload 'message-make-message-id "message") (autoload 'rfc2104-hash "rfc2104") -(autoload 'password-read "password-cache") ;;; (defgroup smtpmail nil @@ -103,12 +102,14 @@ don't define this value." "Connection type SMTP connections. This may be either nil (possibly upgraded to STARTTLS if possible), or `starttls' (refuse to send if STARTTLS isn't -available), or `plain' (never use STARTTLS).." +available), or `plain' (never use STARTTLS), or `ssl' (to use +TLS/SSL)." :version "24.1" :group 'smtpmail :type '(choice (const :tag "Possibly upgrade to STARTTLS" nil) (const :tag "Always use STARTTLS" starttls) - (const :tag "Never use STARTTLS" plain))) + (const :tag "Never use STARTTLS" plain) + (const :tag "Use TLS/SSL" ssl))) (defcustom smtpmail-sendto-domain nil "Local domain name without a host name. @@ -468,9 +469,6 @@ The list is in preference order.") (push el2 result))) (nreverse result))) -;; `password-read' autoloads password-cache. -(declare-function password-cache-add "password-cache" (key password)) - (defun smtpmail-command-or-throw (process string &optional code) (let (ret) (smtpmail-send-command process string) diff --git a/lisp/mail/supercite.el b/lisp/mail/supercite.el index 3d754c08f83..c91c4b9fcd8 100644 --- a/lisp/mail/supercite.el +++ b/lisp/mail/supercite.el @@ -1,6 +1,6 @@ ;;; supercite.el --- minor mode for citing mail and news replies -;; Copyright (C) 1993, 1997, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1993, 1997, 2001-2012 Free Software Foundation, Inc. ;; Author: 1993 Barry A. Warsaw <bwarsaw@python.org> ;; Maintainer: Glenn Morris <rgm@gnu.org> diff --git a/lisp/mail/uce.el b/lisp/mail/uce.el index f1bd98af297..fdfe17a1a07 100644 --- a/lisp/mail/uce.el +++ b/lisp/mail/uce.el @@ -1,6 +1,6 @@ ;;; uce.el --- facilitate reply to unsolicited commercial email -;; Copyright (C) 1996, 1998, 2000-2011 Free Software Foundation, Inc. +;; Copyright (C) 1996, 1998, 2000-2012 Free Software Foundation, Inc. ;; Author: stanislav shalunov <shalunov@mccme.ru> ;; Created: 10 Dec 1996 diff --git a/lisp/mail/undigest.el b/lisp/mail/undigest.el index 04bb320a2ab..ee44cc72051 100644 --- a/lisp/mail/undigest.el +++ b/lisp/mail/undigest.el @@ -1,6 +1,6 @@ ;;; undigest.el --- digest-cracking support for the RMAIL mail reader -;; Copyright (C) 1985-1986, 1994, 1996, 2001-2011 +;; Copyright (C) 1985-1986, 1994, 1996, 2001-2012 ;; Free Software Foundation, Inc. ;; Maintainer: FSF diff --git a/lisp/mail/unrmail.el b/lisp/mail/unrmail.el index 652693209e8..929f97746b0 100644 --- a/lisp/mail/unrmail.el +++ b/lisp/mail/unrmail.el @@ -1,6 +1,6 @@ ;;; unrmail.el --- convert Rmail Babyl files to mailbox files -;; Copyright (C) 1992, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1992, 2001-2012 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: mail @@ -66,7 +66,8 @@ For example, invoke `emacs -batch -f batch-unrmail RMAIL'." from to) (goto-char (point-min)) (search-forward "\n\^_" nil t) ; Skip BABYL header. - (setq from (point)) + (if (= (setq from (point)) (point-max)) + (error "The input file contains no messages")) (goto-char (point-max)) (search-backward "\n\^_" from 'mv) (setq to (point)) diff --git a/lisp/mail/uudecode.el b/lisp/mail/uudecode.el index 8652e67d3e1..d4bf89ffaa1 100644 --- a/lisp/mail/uudecode.el +++ b/lisp/mail/uudecode.el @@ -1,6 +1,6 @@ ;;; uudecode.el -- elisp native uudecode -;; Copyright (C) 1998-2011 Free Software Foundation, Inc. +;; Copyright (C) 1998-2012 Free Software Foundation, Inc. ;; Author: Shenghuo Zhu <zsh@cs.rochester.edu> ;; Keywords: uudecode news @@ -197,10 +197,10 @@ If FILE-NAME is non-nil, save the result to FILE-NAME." (cond (done) ((> 0 remain) - (error "uucode line ends unexpectly") + (error "uucode line ends unexpectedly") (setq done t)) ((and (= (point) end) (not done)) - ;;(error "uucode ends unexpectly") + ;;(error "uucode ends unexpectedly") (setq done t)) ((= counter 3) (setq result (cons diff --git a/lisp/makefile.w32-in b/lisp/makefile.w32-in index c8e535d4ac0..33c87778dfd 100644 --- a/lisp/makefile.w32-in +++ b/lisp/makefile.w32-in @@ -1,5 +1,5 @@ # -*- Makefile -*- for GNU Emacs on the Microsoft W32 API. -# Copyright (C) 2000-2011 Free Software Foundation, Inc. +# Copyright (C) 2000-2012 Free Software Foundation, Inc. # This file is part of GNU Emacs. diff --git a/lisp/makesum.el b/lisp/makesum.el index 21fc693cfd6..f19cb4f5a31 100644 --- a/lisp/makesum.el +++ b/lisp/makesum.el @@ -1,6 +1,6 @@ ;;; makesum.el --- generate key binding summary for Emacs -;; Copyright (C) 1985, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1985, 2001-2012 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: help diff --git a/lisp/man.el b/lisp/man.el index aeba3327c40..fb315352749 100644 --- a/lisp/man.el +++ b/lisp/man.el @@ -1,6 +1,6 @@ ;;; man.el --- browse UNIX manual pages -*- coding: iso-8859-1 -*- -;; Copyright (C) 1993-1994, 1996-1997, 2001-2011 +;; Copyright (C) 1993-1994, 1996-1997, 2001-2012 ;; Free Software Foundation, Inc. ;; Author: Barry A. Warsaw <bwarsaw@cen.com> @@ -933,7 +933,8 @@ Return the buffer in which the manpage will appear." ;; minal (using an ioctl(2) if available, the value of ;; $COLUMNS, or falling back to 80 characters if nei- ;; ther is available). - (unless (or (getenv "MANWIDTH") (getenv "COLUMNS")) + (when (or window-system + (not (or (getenv "MANWIDTH") (getenv "COLUMNS")))) ;; This isn't strictly correct, since we don't know how ;; the page will actually be displayed, but it seems ;; reasonable. diff --git a/lisp/master.el b/lisp/master.el index c3e9004ca0b..b23c4493646 100644 --- a/lisp/master.el +++ b/lisp/master.el @@ -1,6 +1,6 @@ ;;; master.el --- make a buffer the master over another buffer -;; Copyright (C) 1999-2011 Free Software Foundation, Inc. +;; Copyright (C) 1999-2012 Free Software Foundation, Inc. ;; Author: Alex Schroeder <alex@gnu.org> ;; Maintainer: Alex Schroeder <alex@gnu.org> diff --git a/lisp/mb-depth.el b/lisp/mb-depth.el index 22fd84a67aa..6cc5653d1ed 100644 --- a/lisp/mb-depth.el +++ b/lisp/mb-depth.el @@ -1,6 +1,6 @@ ;;; mb-depth.el --- Indicate minibuffer-depth in prompt ;; -;; Copyright (C) 2006-2011 Free Software Foundation, Inc. +;; Copyright (C) 2006-2012 Free Software Foundation, Inc. ;; ;; Author: Miles Bader <miles@gnu.org> ;; Keywords: convenience diff --git a/lisp/md4.el b/lisp/md4.el index 8d89004de23..9ab44d5e3b2 100644 --- a/lisp/md4.el +++ b/lisp/md4.el @@ -1,6 +1,6 @@ ;;; md4.el --- MD4 Message Digest Algorithm. -;; Copyright (C) 2001, 2004, 2007-2011 Free Software Foundation, Inc. +;; Copyright (C) 2001, 2004, 2007-2012 Free Software Foundation, Inc. ;; Author: Taro Kawagishi <tarok@transpulse.org> ;; Keywords: MD4 diff --git a/lisp/menu-bar.el b/lisp/menu-bar.el index 9c020ffadab..7e54a9762ec 100644 --- a/lisp/menu-bar.el +++ b/lisp/menu-bar.el @@ -1,6 +1,6 @@ ;;; menu-bar.el --- define a default menu bar -;; Copyright (C) 1993-1995, 2000-2011 Free Software Foundation, Inc. +;; Copyright (C) 1993-1995, 2000-2012 Free Software Foundation, Inc. ;; Author: RMS ;; Maintainer: FSF diff --git a/lisp/mh-e/ChangeLog b/lisp/mh-e/ChangeLog index 02e531120be..5ae9f8ecccc 100644 --- a/lisp/mh-e/ChangeLog +++ b/lisp/mh-e/ChangeLog @@ -122,7 +122,7 @@ * mh-mime.el: Shush XEmacs compiler in mh-do-in-xemacs block. * mh-folder.el: Use boundp instead of fboundp when testing - existence of desktop-buffer-mode-handlers. + existence of desktop-buffer-mode-handlers (closes SF #1510145). 2011-05-10 Jim Meyering <meyering@redhat.com> @@ -232,7 +232,8 @@ (mh-handle-process-error, mh-variant-info): * mh-comp.el (mh-forward): * mh-alias.el (mh-alias-local-users, mh-alias-which-file-has-alias): - (mh-alias-add-alias-to-file): Use with-current-buffer. + (mh-alias-add-alias-to-file): Use with-current-buffer (closes SF + #1903293). 2009-11-04 Stefan Monnier <monnier@iro.umontreal.ca> @@ -3434,7 +3435,7 @@ * ChangeLog.1: New file. Contains old ChangeLog. - Copyright (C) 2005-2011 Free Software Foundation, Inc. + Copyright (C) 2005-2012 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/lisp/mh-e/ChangeLog.1 b/lisp/mh-e/ChangeLog.1 index 65ffb0375ab..8b4981940ae 100644 --- a/lisp/mh-e/ChangeLog.1 +++ b/lisp/mh-e/ChangeLog.1 @@ -1648,7 +1648,7 @@ * mh-e.el (mh-version): Do something sensible when mh-variant-in-use is undefined. * mh-junk.el (mh-spamassassin-blacklist) - (mh-spamassassin-whitelist): Change options to be compatoble with + (mh-spamassassin-whitelist): Change options to be compatible with old version of spamassassin (V2.20). 2003-09-07 Mark D. Baushke <mdb@gnu.org> @@ -11400,7 +11400,7 @@ (dist): Leave release in current directory. - Copyright (C) 2003-2011 Free Software Foundation, Inc. + Copyright (C) 2003-2012 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/lisp/mh-e/mh-acros.el b/lisp/mh-e/mh-acros.el index 2144eef7308..ee481868c47 100644 --- a/lisp/mh-e/mh-acros.el +++ b/lisp/mh-e/mh-acros.el @@ -1,6 +1,6 @@ ;;; mh-acros.el --- macros used in MH-E -;; Copyright (C) 2004, 2006-2011 Free Software Foundation, Inc. +;; Copyright (C) 2004, 2006-2012 Free Software Foundation, Inc. ;; Author: Satyaki Das <satyaki@theforce.stanford.edu> ;; Maintainer: Bill Wohler <wohler@newt.com> diff --git a/lisp/mh-e/mh-alias.el b/lisp/mh-e/mh-alias.el index c6d60b3b2e2..f5a7719d1ee 100644 --- a/lisp/mh-e/mh-alias.el +++ b/lisp/mh-e/mh-alias.el @@ -1,6 +1,6 @@ ;;; mh-alias.el --- MH-E mail alias completion and expansion -;; Copyright (C) 1994-1997, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1994-1997, 2001-2012 Free Software Foundation, Inc. ;; Author: Peter S. Galbraith <psg@debian.org> ;; Maintainer: Bill Wohler <wohler@newt.com> diff --git a/lisp/mh-e/mh-buffers.el b/lisp/mh-e/mh-buffers.el index 48154cbf4e0..3410d859c49 100644 --- a/lisp/mh-e/mh-buffers.el +++ b/lisp/mh-e/mh-buffers.el @@ -1,6 +1,6 @@ ;;; mh-buffers.el --- MH-E buffer constants and utilities -;; Copyright (C) 1993, 1995, 1997, 2000-2011 Free Software Foundation, Inc. +;; Copyright (C) 1993, 1995, 1997, 2000-2012 Free Software Foundation, Inc. ;; Author: Bill Wohler <wohler@newt.com> ;; Maintainer: Bill Wohler <wohler@newt.com> diff --git a/lisp/mh-e/mh-comp.el b/lisp/mh-e/mh-comp.el index eceb7a5fe3a..b2a5f023224 100644 --- a/lisp/mh-e/mh-comp.el +++ b/lisp/mh-e/mh-comp.el @@ -1,6 +1,6 @@ ;;; mh-comp.el --- MH-E functions for composing and sending messages -;; Copyright (C) 1993, 1995, 1997, 2000-2011 Free Software Foundation, Inc. +;; Copyright (C) 1993, 1995, 1997, 2000-2012 Free Software Foundation, Inc. ;; Author: Bill Wohler <wohler@newt.com> ;; Maintainer: Bill Wohler <wohler@newt.com> diff --git a/lisp/mh-e/mh-compat.el b/lisp/mh-e/mh-compat.el index 88a6ed84055..97d9c4eb69d 100644 --- a/lisp/mh-e/mh-compat.el +++ b/lisp/mh-e/mh-compat.el @@ -1,6 +1,6 @@ ;;; mh-compat.el --- make MH-E compatible with various versions of Emacs -;; Copyright (C) 2006-2011 Free Software Foundation, Inc. +;; Copyright (C) 2006-2012 Free Software Foundation, Inc. ;; Author: Bill Wohler <wohler@newt.com> ;; Maintainer: Bill Wohler <wohler@newt.com> diff --git a/lisp/mh-e/mh-e.el b/lisp/mh-e/mh-e.el index 77ff914b0cc..2723fb5e684 100644 --- a/lisp/mh-e/mh-e.el +++ b/lisp/mh-e/mh-e.el @@ -1,6 +1,6 @@ ;;; mh-e.el --- GNU Emacs interface to the MH mail system -;; Copyright (C) 1985-1988, 1990, 1992-1995, 1997, 1999-2011 +;; Copyright (C) 1985-1988, 1990, 1992-1995, 1997, 1999-2012 ;; Free Software Foundation, Inc. ;; Author: Bill Wohler <wohler@newt.com> @@ -342,7 +342,7 @@ Name of the Previous sequence.") "Non-nil means that we have \"flists\".") (defvar mh-index-data-file ".mhe_index" - "MH-E specific file where index seach info is stored.") + "MH-E specific file where index search info is stored.") (defvar mh-letter-header-field-regexp "^\\([A-Za-z][A-Za-z0-9-]*\\):") @@ -2508,7 +2508,7 @@ of citations entirely, choose \"None\"." "Seal-Send-Time:" "See-Also:" ; H. Spencer: News Article Format and Transmission, June 1994 "Sensitivity:" ; RFC 2156, 2421 - "Speach-Act:" ; http://people.dsv.su.se/~jpalme/ietf/mail-headers/ + "Speech-Act:" ; http://people.dsv.su.se/~jpalme/ietf/mail-headers/ "Status:" ; sendmail "Supersedes:" ; H. Spencer: News Article Format and Transmission, June 1994 "Telefax:" ; http://people.dsv.su.se/~jpalme/ietf/mail-headers/ diff --git a/lisp/mh-e/mh-folder.el b/lisp/mh-e/mh-folder.el index 40febd641de..71ef87385ca 100644 --- a/lisp/mh-e/mh-folder.el +++ b/lisp/mh-e/mh-folder.el @@ -1,6 +1,6 @@ ;;; mh-folder.el --- MH-Folder mode -;; Copyright (C) 2002-2003, 2005-2011 Free Software Foundation, Inc. +;; Copyright (C) 2002-2003, 2005-2012 Free Software Foundation, Inc. ;; Author: Bill Wohler <wohler@newt.com> ;; Maintainer: Bill Wohler <wohler@newt.com> diff --git a/lisp/mh-e/mh-funcs.el b/lisp/mh-e/mh-funcs.el index 46a04c38845..545919ae74c 100644 --- a/lisp/mh-e/mh-funcs.el +++ b/lisp/mh-e/mh-funcs.el @@ -1,6 +1,6 @@ ;;; mh-funcs.el --- MH-E functions not everyone will use right away -;; Copyright (C) 1993, 1995, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1993, 1995, 2001-2012 Free Software Foundation, Inc. ;; Author: Bill Wohler <wohler@newt.com> ;; Maintainer: Bill Wohler <wohler@newt.com> diff --git a/lisp/mh-e/mh-gnus.el b/lisp/mh-e/mh-gnus.el index f644282fc82..18b320e6078 100644 --- a/lisp/mh-e/mh-gnus.el +++ b/lisp/mh-e/mh-gnus.el @@ -1,6 +1,6 @@ ;;; mh-gnus.el --- make MH-E compatible with various versions of Gnus -;; Copyright (C) 2003-2004, 2006-2011 Free Software Foundation, Inc. +;; Copyright (C) 2003-2004, 2006-2012 Free Software Foundation, Inc. ;; Author: Satyaki Das <satyaki@theforce.stanford.edu> ;; Maintainer: Bill Wohler <wohler@newt.com> diff --git a/lisp/mh-e/mh-identity.el b/lisp/mh-e/mh-identity.el index 7e8b8576ff1..908f219e0fa 100644 --- a/lisp/mh-e/mh-identity.el +++ b/lisp/mh-e/mh-identity.el @@ -1,6 +1,6 @@ ;;; mh-identity.el --- multiple identify support for MH-E -;; Copyright (C) 2002-2011 Free Software Foundation, Inc. +;; Copyright (C) 2002-2012 Free Software Foundation, Inc. ;; Author: Peter S. Galbraith <psg@debian.org> ;; Maintainer: Bill Wohler <wohler@newt.com> diff --git a/lisp/mh-e/mh-inc.el b/lisp/mh-e/mh-inc.el index 5248d6ab75e..34903a0bca2 100644 --- a/lisp/mh-e/mh-inc.el +++ b/lisp/mh-e/mh-inc.el @@ -1,6 +1,6 @@ ;;; mh-inc.el --- MH-E "inc" and separate mail spool handling -;; Copyright (C) 2003-2004, 2006-2011 Free Software Foundation, Inc. +;; Copyright (C) 2003-2004, 2006-2012 Free Software Foundation, Inc. ;; Author: Peter S. Galbraith <psg@debian.org> ;; Maintainer: Bill Wohler <wohler@newt.com> diff --git a/lisp/mh-e/mh-junk.el b/lisp/mh-e/mh-junk.el index 897f7518b1e..2119d6f93ea 100644 --- a/lisp/mh-e/mh-junk.el +++ b/lisp/mh-e/mh-junk.el @@ -1,6 +1,6 @@ ;;; mh-junk.el --- MH-E interface to anti-spam measures -;; Copyright (C) 2003-2011 Free Software Foundation, Inc. +;; Copyright (C) 2003-2012 Free Software Foundation, Inc. ;; Author: Satyaki Das <satyaki@theforce.stanford.edu>, ;; Bill Wohler <wohler@newt.com> diff --git a/lisp/mh-e/mh-letter.el b/lisp/mh-e/mh-letter.el index f269faf3a51..8aed1873348 100644 --- a/lisp/mh-e/mh-letter.el +++ b/lisp/mh-e/mh-letter.el @@ -1,6 +1,6 @@ ;;; mh-letter.el --- MH-Letter mode -;; Copyright (C) 1993, 1995, 1997, 2000-2011 Free Software Foundation, Inc. +;; Copyright (C) 1993, 1995, 1997, 2000-2012 Free Software Foundation, Inc. ;; Author: Bill Wohler <wohler@newt.com> ;; Maintainer: Bill Wohler <wohler@newt.com> @@ -909,7 +909,7 @@ Any match found replaces the text from BEGIN to END." (with-output-to-temp-buffer completions-buffer (mh-display-completion-list (all-completions word choices) - ;; The `common-subtring' arg only works if it's a prefix. + ;; The `common-substring' arg only works if it's a prefix. (unless (and (functionp choices) (let ((bounds (funcall choices diff --git a/lisp/mh-e/mh-limit.el b/lisp/mh-e/mh-limit.el index db17b05ef37..a7da41e0535 100644 --- a/lisp/mh-e/mh-limit.el +++ b/lisp/mh-e/mh-limit.el @@ -1,6 +1,6 @@ ;;; mh-limit.el --- MH-E display limits -;; Copyright (C) 2001-2003, 2006-2011 Free Software Foundation, Inc. +;; Copyright (C) 2001-2003, 2006-2012 Free Software Foundation, Inc. ;; Author: Peter S. Galbraith <psg@debian.org> ;; Maintainer: Bill Wohler <wohler@newt.com> diff --git a/lisp/mh-e/mh-mime.el b/lisp/mh-e/mh-mime.el index a97185e1496..66e1ba5ec69 100644 --- a/lisp/mh-e/mh-mime.el +++ b/lisp/mh-e/mh-mime.el @@ -1,6 +1,6 @@ ;;; mh-mime.el --- MH-E MIME support -;; Copyright (C) 1993, 1995, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1993, 1995, 2001-2012 Free Software Foundation, Inc. ;; Author: Bill Wohler <wohler@newt.com> ;; Maintainer: Bill Wohler <wohler@newt.com> diff --git a/lisp/mh-e/mh-print.el b/lisp/mh-e/mh-print.el index bd99245efe6..0a289ab6e45 100644 --- a/lisp/mh-e/mh-print.el +++ b/lisp/mh-e/mh-print.el @@ -1,6 +1,6 @@ ;;; mh-print.el --- MH-E printing support -;; Copyright (C) 2003-2011 Free Software Foundation, Inc. +;; Copyright (C) 2003-2012 Free Software Foundation, Inc. ;; Author: Jeffrey C Honig <jch@honig.net> ;; Maintainer: Bill Wohler <wohler@newt.com> diff --git a/lisp/mh-e/mh-scan.el b/lisp/mh-e/mh-scan.el index 8a3e1632e2e..5f0c0818714 100644 --- a/lisp/mh-e/mh-scan.el +++ b/lisp/mh-e/mh-scan.el @@ -1,6 +1,6 @@ ;;; mh-scan.el --- MH-E scan line constants and utilities -;; Copyright (C) 1993, 1995, 1997, 2000-2011 Free Software Foundation, Inc. +;; Copyright (C) 1993, 1995, 1997, 2000-2012 Free Software Foundation, Inc. ;; Author: Bill Wohler <wohler@newt.com> ;; Maintainer: Bill Wohler <wohler@newt.com> diff --git a/lisp/mh-e/mh-search.el b/lisp/mh-e/mh-search.el index c06bc6649a5..453f1b77901 100644 --- a/lisp/mh-e/mh-search.el +++ b/lisp/mh-e/mh-search.el @@ -1,6 +1,6 @@ ;;; mh-search --- MH-Search mode -;; Copyright (C) 1993, 1995, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1993, 1995, 2001-2012 Free Software Foundation, Inc. ;; Author: Indexed search by Satyaki Das <satyaki@theforce.stanford.edu> ;; Maintainer: Bill Wohler <wohler@newt.com> diff --git a/lisp/mh-e/mh-seq.el b/lisp/mh-e/mh-seq.el index fc3e5c08143..19563dd9ba7 100644 --- a/lisp/mh-e/mh-seq.el +++ b/lisp/mh-e/mh-seq.el @@ -1,6 +1,6 @@ ;;; mh-seq.el --- MH-E sequences support -;; Copyright (C) 1993, 1995, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1993, 1995, 2001-2012 Free Software Foundation, Inc. ;; Author: Bill Wohler <wohler@newt.com> ;; Maintainer: Bill Wohler <wohler@newt.com> diff --git a/lisp/mh-e/mh-show.el b/lisp/mh-e/mh-show.el index d14ab20fc7c..a5759344b25 100644 --- a/lisp/mh-e/mh-show.el +++ b/lisp/mh-e/mh-show.el @@ -1,6 +1,6 @@ ;;; mh-show.el --- MH-Show mode -;; Copyright (C) 1993, 1995, 1997, 2000-2011 Free Software Foundation, Inc. +;; Copyright (C) 1993, 1995, 1997, 2000-2012 Free Software Foundation, Inc. ;; Author: Bill Wohler <wohler@newt.com> ;; Maintainer: Bill Wohler <wohler@newt.com> diff --git a/lisp/mh-e/mh-speed.el b/lisp/mh-e/mh-speed.el index 5c3679e8ce6..65fef66be91 100644 --- a/lisp/mh-e/mh-speed.el +++ b/lisp/mh-e/mh-speed.el @@ -1,6 +1,6 @@ ;;; mh-speed.el --- MH-E speedbar support -;; Copyright (C) 2002-2011 Free Software Foundation, Inc. +;; Copyright (C) 2002-2012 Free Software Foundation, Inc. ;; Author: Satyaki Das <satyaki@theforce.stanford.edu> ;; Maintainer: Bill Wohler <wohler@newt.com> diff --git a/lisp/mh-e/mh-thread.el b/lisp/mh-e/mh-thread.el index c6f33a15fd2..48c06c3df87 100644 --- a/lisp/mh-e/mh-thread.el +++ b/lisp/mh-e/mh-thread.el @@ -1,6 +1,6 @@ ;;; mh-thread.el --- MH-E threading support -;; Copyright (C) 2002-2004, 2006-2011 Free Software Foundation, Inc. +;; Copyright (C) 2002-2004, 2006-2012 Free Software Foundation, Inc. ;; Author: Satyaki Das <satyaki@theforce.stanford.edu> ;; Maintainer: Bill Wohler <wohler@newt.com> diff --git a/lisp/mh-e/mh-tool-bar.el b/lisp/mh-e/mh-tool-bar.el index 4469c043b15..384c0e7da47 100644 --- a/lisp/mh-e/mh-tool-bar.el +++ b/lisp/mh-e/mh-tool-bar.el @@ -1,6 +1,6 @@ ;;; mh-tool-bar.el --- MH-E tool bar support -;; Copyright (C) 2002-2003, 2005-2011 Free Software Foundation, Inc. +;; Copyright (C) 2002-2003, 2005-2012 Free Software Foundation, Inc. ;; Author: Satyaki Das <satyaki@theforce.stanford.edu> ;; Maintainer: Bill Wohler <wohler@newt.com> diff --git a/lisp/mh-e/mh-utils.el b/lisp/mh-e/mh-utils.el index 327d8ad7040..1944a4cd08f 100644 --- a/lisp/mh-e/mh-utils.el +++ b/lisp/mh-e/mh-utils.el @@ -1,6 +1,6 @@ ;;; mh-utils.el --- MH-E general utilities -;; Copyright (C) 1993, 1995, 1997, 2000-2011 Free Software Foundation, Inc. +;; Copyright (C) 1993, 1995, 1997, 2000-2012 Free Software Foundation, Inc. ;; Author: Bill Wohler <wohler@newt.com> ;; Maintainer: Bill Wohler <wohler@newt.com> diff --git a/lisp/mh-e/mh-xface.el b/lisp/mh-e/mh-xface.el index 179b552d536..5749a2c3461 100644 --- a/lisp/mh-e/mh-xface.el +++ b/lisp/mh-e/mh-xface.el @@ -1,6 +1,6 @@ ;;; mh-xface.el --- MH-E X-Face and Face header field display -;; Copyright (C) 2002-2003, 2005-2011 Free Software Foundation, Inc. +;; Copyright (C) 2002-2003, 2005-2012 Free Software Foundation, Inc. ;; Author: Bill Wohler <wohler@newt.com> ;; Maintainer: Bill Wohler <wohler@newt.com> diff --git a/lisp/midnight.el b/lisp/midnight.el index 762bc5445ba..3c0923d7e58 100644 --- a/lisp/midnight.el +++ b/lisp/midnight.el @@ -1,6 +1,6 @@ ;;; midnight.el --- run something every midnight, e.g., kill old buffers -;; Copyright (C) 1998, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1998, 2001-2012 Free Software Foundation, Inc. ;; Author: Sam Steingold <sds@gnu.org> ;; Maintainer: Sam Steingold <sds@gnu.org> diff --git a/lisp/minibuf-eldef.el b/lisp/minibuf-eldef.el index 405721f97ee..ef1bb115a23 100644 --- a/lisp/minibuf-eldef.el +++ b/lisp/minibuf-eldef.el @@ -1,6 +1,6 @@ ;;; minibuf-eldef.el --- Only show defaults in prompts when applicable ;; -;; Copyright (C) 2000-2011 Free Software Foundation, Inc. +;; Copyright (C) 2000-2012 Free Software Foundation, Inc. ;; ;; Author: Miles Bader <miles@gnu.org> ;; Keywords: convenience diff --git a/lisp/minibuffer.el b/lisp/minibuffer.el index 11e195d4f7f..756010160d2 100644 --- a/lisp/minibuffer.el +++ b/lisp/minibuffer.el @@ -1,6 +1,6 @@ ;;; minibuffer.el --- Minibuffer completion functions -*- lexical-binding: t -*- -;; Copyright (C) 2008-2011 Free Software Foundation, Inc. +;; Copyright (C) 2008-2012 Free Software Foundation, Inc. ;; Author: Stefan Monnier <monnier@iro.umontreal.ca> ;; Package: emacs @@ -2672,7 +2672,7 @@ the same set of elements." mergedpat)) ;; New pos from the start. (newpos (length (completion-pcm--pattern->string pointpat))) - ;; Do it afterwards because it changes `pointpat' by sideeffect. + ;; Do it afterwards because it changes `pointpat' by side effect. (merged (completion-pcm--pattern->string (nreverse mergedpat)))) (setq suffix (completion--merge-suffix merged newpos suffix)) diff --git a/lisp/misc.el b/lisp/misc.el index 8087c7f5259..4706c918db3 100644 --- a/lisp/misc.el +++ b/lisp/misc.el @@ -1,6 +1,6 @@ ;;; misc.el --- some nonstandard editing and utility commands for Emacs -;; Copyright (C) 1989, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1989, 2001-2012 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: convenience diff --git a/lisp/misearch.el b/lisp/misearch.el index de1a32ff7d5..22021bac570 100644 --- a/lisp/misearch.el +++ b/lisp/misearch.el @@ -1,6 +1,6 @@ ;;; misearch.el --- isearch extensions for multi-buffer search -;; Copyright (C) 2007-2011 Free Software Foundation, Inc. +;; Copyright (C) 2007-2012 Free Software Foundation, Inc. ;; Author: Juri Linkov <juri@jurta.org> ;; Keywords: matching diff --git a/lisp/mouse-copy.el b/lisp/mouse-copy.el index 92fbdeb74e0..8d043b4495f 100644 --- a/lisp/mouse-copy.el +++ b/lisp/mouse-copy.el @@ -1,6 +1,6 @@ ;;; mouse-copy.el --- one-click text copy and move -;; Copyright (C) 1996, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1996, 2001-2012 Free Software Foundation, Inc. ;; Author: John Heidemann <johnh@ISI.EDU> ;; Keywords: mouse diff --git a/lisp/mouse-drag.el b/lisp/mouse-drag.el index fb6c8b7470f..17591ef12dd 100644 --- a/lisp/mouse-drag.el +++ b/lisp/mouse-drag.el @@ -1,6 +1,6 @@ ;;; mouse-drag.el --- use mouse-2 to do a new style of scrolling -;; Copyright (C) 1996-1997, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1996-1997, 2001-2012 Free Software Foundation, Inc. ;; Author: John Heidemann <johnh@ISI.EDU> ;; Keywords: mouse diff --git a/lisp/mouse-sel.el b/lisp/mouse-sel.el index 7f04cac96fe..6323ef03696 100644 --- a/lisp/mouse-sel.el +++ b/lisp/mouse-sel.el @@ -1,6 +1,6 @@ ;;; mouse-sel.el --- multi-click selection support -;; Copyright (C) 1993-1995, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1993-1995, 2001-2012 Free Software Foundation, Inc. ;; Author: Mike Williams <mdub@bigfoot.com> ;; Keywords: mouse diff --git a/lisp/mouse.el b/lisp/mouse.el index 615062dc031..2e119483797 100644 --- a/lisp/mouse.el +++ b/lisp/mouse.el @@ -1,6 +1,6 @@ ;;; mouse.el --- window system-independent mouse support -;; Copyright (C) 1993-1995, 1999-2011 Free Software Foundation, Inc. +;; Copyright (C) 1993-1995, 1999-2012 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: hardware, mouse @@ -62,7 +62,7 @@ typically sets point where you click the mouse). If value is an integer, the time elapsed between pressing and releasing the mouse button determines whether to follow the link or perform the normal Mouse-1 action (typically set point). -The absolute numeric value specifices the maximum duration of a +The absolute numeric value specifies the maximum duration of a \"short click\" in milliseconds. A positive value means that a short click follows the link, and a longer click performs the normal action. A negative value gives the opposite behavior. diff --git a/lisp/mpc.el b/lisp/mpc.el index 224131623f4..614f2bd6806 100644 --- a/lisp/mpc.el +++ b/lisp/mpc.el @@ -1,6 +1,6 @@ ;;; mpc.el --- A client for the Music Player Daemon -*- coding: utf-8; lexical-binding: t -*- -;; Copyright (C) 2006-2011 Free Software Foundation, Inc. +;; Copyright (C) 2006-2012 Free Software Foundation, Inc. ;; Author: Stefan Monnier <monnier@iro.umontreal.ca> ;; Keywords: multimedia @@ -2412,7 +2412,7 @@ This is used so that they can be compared with `eq', which is needed for (let* (songid ;The ID of the currently ffwd/rewinding song. songduration ;The duration of that song. songtime ;The time of the song last time we ran. - oldtime ;The timeoftheday last time we ran. + oldtime ;The time of day last time we ran. prevsongid) ;The song we're in the process leaving. (let ((fun (lambda () diff --git a/lisp/msb.el b/lisp/msb.el index 74ceff1a9cd..2c759b1c89d 100644 --- a/lisp/msb.el +++ b/lisp/msb.el @@ -1,6 +1,6 @@ ;;; msb.el --- customizable buffer-selection with multiple menus -;; Copyright (C) 1993-1995, 1997-2011 Free Software Foundation, Inc. +;; Copyright (C) 1993-1995, 1997-2012 Free Software Foundation, Inc. ;; Author: Lars Lindberg <lars.lindberg@home.se> ;; Maintainer: FSF diff --git a/lisp/mwheel.el b/lisp/mwheel.el index 05aeb12acf4..7b507664712 100644 --- a/lisp/mwheel.el +++ b/lisp/mwheel.el @@ -1,6 +1,6 @@ ;;; mwheel.el --- Wheel mouse support -;; Copyright (C) 1998, 2000-2011 Free Software Foundation, Inc. +;; Copyright (C) 1998, 2000-2012 Free Software Foundation, Inc. ;; Maintainer: William M. Perry <wmperry@gnu.org> ;; Keywords: mouse ;; Package: emacs diff --git a/lisp/net/ange-ftp.el b/lisp/net/ange-ftp.el index 06d200c4e3e..93954588fa9 100644 --- a/lisp/net/ange-ftp.el +++ b/lisp/net/ange-ftp.el @@ -1,6 +1,6 @@ ;;; ange-ftp.el --- transparent FTP support for GNU Emacs -;; Copyright (C) 1989-1996, 1998, 2000-2011 Free Software Foundation, Inc. +;; Copyright (C) 1989-1996, 1998, 2000-2012 Free Software Foundation, Inc. ;; Author: Andy Norman (ange@hplb.hpl.hp.com) ;; Maintainer: FSF @@ -3637,6 +3637,10 @@ so return the size on the remote host exactly. See RFC 3659." (setq filename (expand-file-name filename) newname (expand-file-name newname)) + (or (file-exists-p filename) + (signal 'file-error + (list "Copy file" "no such file or directory" filename))) + ;; canonicalize newname if a directory. (if (file-directory-p newname) (setq newname (expand-file-name (file-name-nondirectory filename) newname))) diff --git a/lisp/net/browse-url.el b/lisp/net/browse-url.el index 3ab1a345470..f378277d5f0 100644 --- a/lisp/net/browse-url.el +++ b/lisp/net/browse-url.el @@ -1,6 +1,6 @@ ;;; browse-url.el --- pass a URL to a WWW browser -;; Copyright (C) 1995-2011 Free Software Foundation, Inc. +;; Copyright (C) 1995-2012 Free Software Foundation, Inc. ;; Author: Denis Howe <dbh@doc.ic.ac.uk> ;; Maintainer: FSF diff --git a/lisp/net/dbus.el b/lisp/net/dbus.el index 9254fef8a7f..fbc83bf1df0 100644 --- a/lisp/net/dbus.el +++ b/lisp/net/dbus.el @@ -1,6 +1,6 @@ ;;; dbus.el --- Elisp bindings for D-Bus. -;; Copyright (C) 2007-2011 Free Software Foundation, Inc. +;; Copyright (C) 2007-2012 Free Software Foundation, Inc. ;; Author: Michael Albinus <michael.albinus@gmx.de> ;; Keywords: comm, hardware diff --git a/lisp/net/dig.el b/lisp/net/dig.el index af78ded4786..6fffce679d1 100644 --- a/lisp/net/dig.el +++ b/lisp/net/dig.el @@ -1,6 +1,6 @@ ;;; dig.el --- Domain Name System dig interface -;; Copyright (C) 2000-2011 Free Software Foundation, Inc. +;; Copyright (C) 2000-2012 Free Software Foundation, Inc. ;; Author: Simon Josefsson <simon@josefsson.org> ;; Keywords: DNS BIND dig comm diff --git a/lisp/net/dns.el b/lisp/net/dns.el index 3c1bd54acfd..b94c161da31 100644 --- a/lisp/net/dns.el +++ b/lisp/net/dns.el @@ -1,6 +1,6 @@ ;;; dns.el --- Domain Name Service lookups -;; Copyright (C) 2002-2011 Free Software Foundation, Inc. +;; Copyright (C) 2002-2012 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; Keywords: network comm diff --git a/lisp/net/eudc-bob.el b/lisp/net/eudc-bob.el index 5847a2def64..17ea7f7fcd3 100644 --- a/lisp/net/eudc-bob.el +++ b/lisp/net/eudc-bob.el @@ -1,6 +1,6 @@ ;;; eudc-bob.el --- Binary Objects Support for EUDC -;; Copyright (C) 1999-2011 Free Software Foundation, Inc. +;; Copyright (C) 1999-2012 Free Software Foundation, Inc. ;; Author: Oscar Figueiredo <oscar@cpe.fr> ;; Maintainer: Pavel Janík <Pavel@Janik.cz> diff --git a/lisp/net/eudc-export.el b/lisp/net/eudc-export.el index af8bc084b57..beaceedd788 100644 --- a/lisp/net/eudc-export.el +++ b/lisp/net/eudc-export.el @@ -1,6 +1,6 @@ ;;; eudc-export.el --- functions to export EUDC query results -;; Copyright (C) 1998-2011 Free Software Foundation, Inc. +;; Copyright (C) 1998-2012 Free Software Foundation, Inc. ;; Author: Oscar Figueiredo <oscar@cpe.fr> ;; Maintainer: Pavel Janík <Pavel@Janik.cz> diff --git a/lisp/net/eudc-hotlist.el b/lisp/net/eudc-hotlist.el index 1f6c4464808..a4b98f9864b 100644 --- a/lisp/net/eudc-hotlist.el +++ b/lisp/net/eudc-hotlist.el @@ -1,6 +1,6 @@ ;;; eudc-hotlist.el --- hotlist management for EUDC -;; Copyright (C) 1998-2011 Free Software Foundation, Inc. +;; Copyright (C) 1998-2012 Free Software Foundation, Inc. ;; Author: Oscar Figueiredo <oscar@cpe.fr> ;; Maintainer: Pavel Janík <Pavel@Janik.cz> diff --git a/lisp/net/eudc-vars.el b/lisp/net/eudc-vars.el index d9985312f99..c6b42b2ba72 100644 --- a/lisp/net/eudc-vars.el +++ b/lisp/net/eudc-vars.el @@ -1,6 +1,6 @@ ;;; eudc-vars.el --- Emacs Unified Directory Client -;; Copyright (C) 1998-2011 Free Software Foundation, Inc. +;; Copyright (C) 1998-2012 Free Software Foundation, Inc. ;; Author: Oscar Figueiredo <oscar@cpe.fr> ;; Maintainer: Pavel Janík <Pavel@Janik.cz> diff --git a/lisp/net/eudc.el b/lisp/net/eudc.el index 6f4d5b2bbda..275f5f0fcbe 100644 --- a/lisp/net/eudc.el +++ b/lisp/net/eudc.el @@ -1,6 +1,6 @@ ;;; eudc.el --- Emacs Unified Directory Client -;; Copyright (C) 1998-2011 Free Software Foundation, Inc. +;; Copyright (C) 1998-2012 Free Software Foundation, Inc. ;; Author: Oscar Figueiredo <oscar@cpe.fr> ;; Maintainer: Pavel Janík <Pavel@Janik.cz> diff --git a/lisp/net/eudcb-bbdb.el b/lisp/net/eudcb-bbdb.el index 5afd255f419..9d160fe319d 100644 --- a/lisp/net/eudcb-bbdb.el +++ b/lisp/net/eudcb-bbdb.el @@ -1,6 +1,6 @@ ;;; eudcb-bbdb.el --- Emacs Unified Directory Client - BBDB Backend -;; Copyright (C) 1998-2011 Free Software Foundation, Inc. +;; Copyright (C) 1998-2012 Free Software Foundation, Inc. ;; Author: Oscar Figueiredo <oscar@cpe.fr> ;; Maintainer: Pavel Janík <Pavel@Janik.cz> diff --git a/lisp/net/eudcb-ldap.el b/lisp/net/eudcb-ldap.el index fc7519e5b30..ba664e41362 100644 --- a/lisp/net/eudcb-ldap.el +++ b/lisp/net/eudcb-ldap.el @@ -1,6 +1,6 @@ ;;; eudcb-ldap.el --- Emacs Unified Directory Client - LDAP Backend -;; Copyright (C) 1998-2011 Free Software Foundation, Inc. +;; Copyright (C) 1998-2012 Free Software Foundation, Inc. ;; Author: Oscar Figueiredo <oscar@cpe.fr> ;; Maintainer: Pavel Janík <Pavel@Janik.cz> diff --git a/lisp/net/eudcb-mab.el b/lisp/net/eudcb-mab.el index 485ca5a0c06..69058c7af5c 100644 --- a/lisp/net/eudcb-mab.el +++ b/lisp/net/eudcb-mab.el @@ -1,6 +1,6 @@ ;;; eudcb-mab.el --- Emacs Unified Directory Client - AddressBook backend -;; Copyright (C) 2003-2011 Free Software Foundation, Inc. +;; Copyright (C) 2003-2012 Free Software Foundation, Inc. ;; Author: John Wiegley <johnw@newartisans.com> ;; Maintainer: FSF diff --git a/lisp/net/eudcb-ph.el b/lisp/net/eudcb-ph.el index 9e7490106ed..8da98e9d7ce 100644 --- a/lisp/net/eudcb-ph.el +++ b/lisp/net/eudcb-ph.el @@ -1,6 +1,6 @@ ;;; eudcb-ph.el --- Emacs Unified Directory Client - CCSO PH/QI Backend -;; Copyright (C) 1998-2011 Free Software Foundation, Inc. +;; Copyright (C) 1998-2012 Free Software Foundation, Inc. ;; Author: Oscar Figueiredo <oscar@cpe.fr> ;; Maintainer: Pavel Janík <Pavel@Janik.cz> diff --git a/lisp/net/gnutls.el b/lisp/net/gnutls.el index 18471782f2c..17fef277736 100644 --- a/lisp/net/gnutls.el +++ b/lisp/net/gnutls.el @@ -1,6 +1,6 @@ ;;; gnutls.el --- Support SSL/TLS connections through GnuTLS -;; Copyright (C) 2010-2011 Free Software Foundation, Inc. +;; Copyright (C) 2010-2012 Free Software Foundation, Inc. ;; Author: Ted Zlatanov <tzz@lifelogs.com> ;; Keywords: comm, tls, ssl, encryption diff --git a/lisp/net/goto-addr.el b/lisp/net/goto-addr.el index 1432c1e516b..f95381fa808 100644 --- a/lisp/net/goto-addr.el +++ b/lisp/net/goto-addr.el @@ -1,6 +1,6 @@ ;;; goto-addr.el --- click to browse URL or to send to e-mail address -;; Copyright (C) 1995, 2000-2011 Free Software Foundation, Inc. +;; Copyright (C) 1995, 2000-2012 Free Software Foundation, Inc. ;; Author: Eric Ding <ericding@alum.mit.edu> ;; Maintainer: FSF diff --git a/lisp/net/hmac-def.el b/lisp/net/hmac-def.el index 5c8710afdbf..ae604767a79 100644 --- a/lisp/net/hmac-def.el +++ b/lisp/net/hmac-def.el @@ -1,6 +1,6 @@ ;;; hmac-def.el --- A macro for defining HMAC functions. -;; Copyright (C) 1999, 2001, 2007-2011 Free Software Foundation, Inc. +;; Copyright (C) 1999, 2001, 2007-2012 Free Software Foundation, Inc. ;; Author: Shuhei KOBAYASHI <shuhei@aqua.ocn.ne.jp> ;; Keywords: HMAC, RFC2104 diff --git a/lisp/net/hmac-md5.el b/lisp/net/hmac-md5.el index a423cbeadd1..8d33750df25 100644 --- a/lisp/net/hmac-md5.el +++ b/lisp/net/hmac-md5.el @@ -1,6 +1,6 @@ ;;; hmac-md5.el --- Compute HMAC-MD5. -;; Copyright (C) 1999, 2001, 2007-2011 Free Software Foundation, Inc. +;; Copyright (C) 1999, 2001, 2007-2012 Free Software Foundation, Inc. ;; Author: Shuhei KOBAYASHI <shuhei@aqua.ocn.ne.jp> ;; Keywords: HMAC, RFC2104, HMAC-MD5, MD5, KEYED-MD5, CRAM-MD5 diff --git a/lisp/net/imap.el b/lisp/net/imap.el index f4af03f100f..6a25be73615 100644 --- a/lisp/net/imap.el +++ b/lisp/net/imap.el @@ -1,6 +1,6 @@ ;;; imap.el --- imap library -;; Copyright (C) 1998-2011 Free Software Foundation, Inc. +;; Copyright (C) 1998-2012 Free Software Foundation, Inc. ;; Author: Simon Josefsson <simon@josefsson.org> ;; Keywords: mail diff --git a/lisp/net/ldap.el b/lisp/net/ldap.el index 1fa57dbfe3e..941b6d7787c 100644 --- a/lisp/net/ldap.el +++ b/lisp/net/ldap.el @@ -1,6 +1,6 @@ ;;; ldap.el --- client interface to LDAP for Emacs -;; Copyright (C) 1998-2011 Free Software Foundation, Inc. +;; Copyright (C) 1998-2012 Free Software Foundation, Inc. ;; Author: Oscar Figueiredo <oscar@cpe.fr> ;; Maintainer: FSF diff --git a/lisp/net/mairix.el b/lisp/net/mairix.el index 68a0a6a85d4..84343b7de00 100644 --- a/lisp/net/mairix.el +++ b/lisp/net/mairix.el @@ -1,6 +1,6 @@ ;;; mairix.el --- Mairix interface for Emacs -;; Copyright (C) 2008-2011 Free Software Foundation, Inc. +;; Copyright (C) 2008-2012 Free Software Foundation, Inc. ;; Author: David Engster <dengste@eml.cc> ;; Keywords: mail searching diff --git a/lisp/net/net-utils.el b/lisp/net/net-utils.el index d75b36051f0..7fa8bdfbf70 100644 --- a/lisp/net/net-utils.el +++ b/lisp/net/net-utils.el @@ -1,6 +1,6 @@ ;;; net-utils.el --- network functions -;; Copyright (C) 1998-2011 Free Software Foundation, Inc. +;; Copyright (C) 1998-2012 Free Software Foundation, Inc. ;; Author: Peter Breton <pbreton@cs.umb.edu> ;; Created: Sun Mar 16 1997 diff --git a/lisp/net/netrc.el b/lisp/net/netrc.el index 80836b03978..070b32a63d0 100644 --- a/lisp/net/netrc.el +++ b/lisp/net/netrc.el @@ -1,5 +1,5 @@ ;;; netrc.el --- .netrc parsing functionality -;; Copyright (C) 1996-2011 Free Software Foundation, Inc. +;; Copyright (C) 1996-2012 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; Keywords: news diff --git a/lisp/net/network-stream.el b/lisp/net/network-stream.el index 9c07953c9c9..7860eb96846 100644 --- a/lisp/net/network-stream.el +++ b/lisp/net/network-stream.el @@ -1,6 +1,6 @@ ;;; network-stream.el --- open network processes, possibly with encryption -;; Copyright (C) 2010-2011 Free Software Foundation, Inc. +;; Copyright (C) 2010-2012 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; Keywords: network diff --git a/lisp/net/newst-backend.el b/lisp/net/newst-backend.el index fca36c70f2d..c78249ced0f 100644 --- a/lisp/net/newst-backend.el +++ b/lisp/net/newst-backend.el @@ -1,6 +1,6 @@ ;;; newst-backend.el --- Retrieval backend for newsticker. -;; Copyright (C) 2003-2011 Free Software Foundation, Inc. +;; Copyright (C) 2003-2012 Free Software Foundation, Inc. ;; Author: Ulf Jasper <ulf.jasper@web.de> ;; Filename: newst-backend.el diff --git a/lisp/net/newst-plainview.el b/lisp/net/newst-plainview.el index f1b3ce7fd05..04db3a29d31 100644 --- a/lisp/net/newst-plainview.el +++ b/lisp/net/newst-plainview.el @@ -1,6 +1,6 @@ ;;; newst-plainview.el --- Single buffer frontend for newsticker. -;; Copyright (C) 2003-2011 Free Software Foundation, Inc. +;; Copyright (C) 2003-2012 Free Software Foundation, Inc. ;; Author: Ulf Jasper <ulf.jasper@web.de> ;; Filename: newst-plainview.el diff --git a/lisp/net/newst-reader.el b/lisp/net/newst-reader.el index f9975c45fb3..14e6584e9ab 100644 --- a/lisp/net/newst-reader.el +++ b/lisp/net/newst-reader.el @@ -1,6 +1,6 @@ ;;; newst-reader.el --- Generic RSS reader functions. -;; Copyright (C) 2003-2011 Free Software Foundation, Inc. +;; Copyright (C) 2003-2012 Free Software Foundation, Inc. ;; Author: Ulf Jasper <ulf.jasper@web.de> ;; Filename: newst-reader.el diff --git a/lisp/net/newst-ticker.el b/lisp/net/newst-ticker.el index cb82bb74048..e62dd284f7a 100644 --- a/lisp/net/newst-ticker.el +++ b/lisp/net/newst-ticker.el @@ -1,6 +1,6 @@ ;; newst-ticker.el --- modeline ticker for newsticker. -;; Copyright (C) 2003-2011 Free Software Foundation, Inc. +;; Copyright (C) 2003-2012 Free Software Foundation, Inc. ;; Author: Ulf Jasper <ulf.jasper@web.de> ;; Filename: newst-ticker.el diff --git a/lisp/net/newst-treeview.el b/lisp/net/newst-treeview.el index 8ff74a94eb0..d003554e547 100644 --- a/lisp/net/newst-treeview.el +++ b/lisp/net/newst-treeview.el @@ -1,6 +1,6 @@ ;;; newst-treeview.el --- Treeview frontend for newsticker. -;; Copyright (C) 2008-2011 Free Software Foundation, Inc. +;; Copyright (C) 2008-2012 Free Software Foundation, Inc. ;; Author: Ulf Jasper <ulf.jasper@web.de> ;; Filename: newst-treeview.el diff --git a/lisp/net/newsticker.el b/lisp/net/newsticker.el index 0a1e07e63f1..fc518c24843 100644 --- a/lisp/net/newsticker.el +++ b/lisp/net/newsticker.el @@ -1,6 +1,6 @@ ;;; newsticker.el --- A Newsticker for Emacs. -;; Copyright (C) 2003-2011 Free Software Foundation, Inc. +;; Copyright (C) 2003-2012 Free Software Foundation, Inc. ;; Author: Ulf Jasper <ulf.jasper@web.de> ;; Filename: newsticker.el diff --git a/lisp/net/ntlm.el b/lisp/net/ntlm.el index 9af148e8faa..9626aef558d 100644 --- a/lisp/net/ntlm.el +++ b/lisp/net/ntlm.el @@ -1,6 +1,6 @@ ;;; ntlm.el --- NTLM (NT LanManager) authentication support -;; Copyright (C) 2001, 2007-2011 Free Software Foundation, Inc. +;; Copyright (C) 2001, 2007-2012 Free Software Foundation, Inc. ;; Author: Taro Kawagishi <tarok@transpulse.org> ;; Keywords: NTLM, SASL @@ -440,7 +440,7 @@ length of STR is LEN." (defun ntlm-smb-dohash (in key forw) "Return the hash value for a string IN and a string KEY. -Length of IN and KEY are 64. FORW non nill means forward, nil means +Length of IN and KEY are 64. FORW non-nil means forward, nil means backward." (let (pk1 ;string of length 56 c ;string of length 28 diff --git a/lisp/net/quickurl.el b/lisp/net/quickurl.el index a31ec496c16..8d6aedff562 100644 --- a/lisp/net/quickurl.el +++ b/lisp/net/quickurl.el @@ -1,6 +1,6 @@ ;;; quickurl.el --- insert a URL based on text at point in buffer -;; Copyright (C) 1999-2011 Free Software Foundation, Inc. +;; Copyright (C) 1999-2012 Free Software Foundation, Inc. ;; Author: Dave Pearson <davep@davep.org> ;; Maintainer: Dave Pearson <davep@davep.org> diff --git a/lisp/net/rcirc.el b/lisp/net/rcirc.el index 7d069a0f306..771c9839cc0 100644 --- a/lisp/net/rcirc.el +++ b/lisp/net/rcirc.el @@ -1,6 +1,6 @@ ;;; rcirc.el --- default, simple IRC client. -;; Copyright (C) 2005-2011 Free Software Foundation, Inc. +;; Copyright (C) 2005-2012 Free Software Foundation, Inc. ;; Author: Ryan Yeske <rcyeske@gmail.com> ;; Maintainers: Ryan Yeske <rcyeske@gmail.com>, diff --git a/lisp/net/rcompile.el b/lisp/net/rcompile.el index 82df5b39c95..d5815468a05 100644 --- a/lisp/net/rcompile.el +++ b/lisp/net/rcompile.el @@ -1,6 +1,6 @@ ;;; rcompile.el --- run a compilation on a remote machine -;; Copyright (C) 1993-1994, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1993-1994, 2001-2012 Free Software Foundation, Inc. ;; Author: Albert <alon@milcse.rtsg.mot.com> ;; Maintainer: FSF diff --git a/lisp/net/rlogin.el b/lisp/net/rlogin.el index effdcabfb65..ac936ee1429 100644 --- a/lisp/net/rlogin.el +++ b/lisp/net/rlogin.el @@ -1,6 +1,6 @@ ;;; rlogin.el --- remote login interface -;; Copyright (C) 1992-1995, 1997-1998, 2001-2011 +;; Copyright (C) 1992-1995, 1997-1998, 2001-2012 ;; Free Software Foundation, Inc. ;; Author: Noah Friedman diff --git a/lisp/net/sasl-cram.el b/lisp/net/sasl-cram.el index 153d2cafe29..dd2a0c3c505 100644 --- a/lisp/net/sasl-cram.el +++ b/lisp/net/sasl-cram.el @@ -1,6 +1,6 @@ ;;; sasl-cram.el --- CRAM-MD5 module for the SASL client framework -;; Copyright (C) 2000, 2007-2011 Free Software Foundation, Inc. +;; Copyright (C) 2000, 2007-2012 Free Software Foundation, Inc. ;; Author: Daiki Ueno <ueno@unixuser.org> ;; Kenichi OKADA <okada@opaopa.org> diff --git a/lisp/net/sasl-digest.el b/lisp/net/sasl-digest.el index 1c7d2f02d10..52a4a226008 100644 --- a/lisp/net/sasl-digest.el +++ b/lisp/net/sasl-digest.el @@ -1,6 +1,6 @@ ;;; sasl-digest.el --- DIGEST-MD5 module for the SASL client framework -;; Copyright (C) 2000, 2007-2011 Free Software Foundation, Inc. +;; Copyright (C) 2000, 2007-2012 Free Software Foundation, Inc. ;; Author: Daiki Ueno <ueno@unixuser.org> ;; Kenichi OKADA <okada@opaopa.org> diff --git a/lisp/net/sasl-ntlm.el b/lisp/net/sasl-ntlm.el index d8b367ac8ad..312941816c7 100644 --- a/lisp/net/sasl-ntlm.el +++ b/lisp/net/sasl-ntlm.el @@ -1,6 +1,6 @@ ;;; sasl-ntlm.el --- NTLM (NT Lan Manager) module for the SASL client framework -;; Copyright (C) 2000, 2007-2011 Free Software Foundation, Inc. +;; Copyright (C) 2000, 2007-2012 Free Software Foundation, Inc. ;; Author: Taro Kawagishi <tarok@transpulse.org> ;; Keywords: SASL, NTLM diff --git a/lisp/net/sasl.el b/lisp/net/sasl.el index 2c4da7986e7..c6e95970f3d 100644 --- a/lisp/net/sasl.el +++ b/lisp/net/sasl.el @@ -1,6 +1,6 @@ ;;; sasl.el --- SASL client framework -;; Copyright (C) 2000, 2007-2011 Free Software Foundation, Inc. +;; Copyright (C) 2000, 2007-2012 Free Software Foundation, Inc. ;; Author: Daiki Ueno <ueno@unixuser.org> ;; Keywords: SASL diff --git a/lisp/net/secrets.el b/lisp/net/secrets.el index 1a48e8863f1..46f45c501d2 100644 --- a/lisp/net/secrets.el +++ b/lisp/net/secrets.el @@ -1,6 +1,6 @@ ;;; secrets.el --- Client interface to gnome-keyring and kwallet. -;; Copyright (C) 2010-2011 Free Software Foundation, Inc. +;; Copyright (C) 2010-2012 Free Software Foundation, Inc. ;; Author: Michael Albinus <michael.albinus@gmx.de> ;; Keywords: comm password passphrase diff --git a/lisp/net/snmp-mode.el b/lisp/net/snmp-mode.el index 8112ed5b177..42b6f482665 100644 --- a/lisp/net/snmp-mode.el +++ b/lisp/net/snmp-mode.el @@ -1,6 +1,6 @@ ;;; snmp-mode.el --- SNMP & SNMPv2 MIB major mode -;; Copyright (C) 1995, 1998, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1995, 1998, 2001-2012 Free Software Foundation, Inc. ;; Author: Paul D. Smith <psmith@BayNetworks.com> ;; Keywords: data diff --git a/lisp/net/soap-client.el b/lisp/net/soap-client.el index 74f51d148ef..dfa2b76899a 100644 --- a/lisp/net/soap-client.el +++ b/lisp/net/soap-client.el @@ -1,6 +1,6 @@ ;;;; soap-client.el -- Access SOAP web services from Emacs -;; Copyright (C) 2009-2011 Free Software Foundation, Inc. +;; Copyright (C) 2009-2012 Free Software Foundation, Inc. ;; Author: Alexandru Harsanyi <AlexHarsanyi@gmail.com> ;; Created: December, 2009 diff --git a/lisp/net/soap-inspect.el b/lisp/net/soap-inspect.el index 8f67d02dc6f..823f815d58f 100644 --- a/lisp/net/soap-inspect.el +++ b/lisp/net/soap-inspect.el @@ -1,6 +1,6 @@ ;;;; soap-inspect.el -- Interactive inspector for soap WSDL structures -;; Copyright (C) 2010-2011 Free Software Foundation, Inc. +;; Copyright (C) 2010-2012 Free Software Foundation, Inc. ;; Author: Alexandru Harsanyi <AlexHarsanyi@gmail.com> ;; Created: October 2010 diff --git a/lisp/net/socks.el b/lisp/net/socks.el index d792077d861..b9431bdeed7 100644 --- a/lisp/net/socks.el +++ b/lisp/net/socks.el @@ -1,6 +1,6 @@ ;;; socks.el --- A Socks v5 Client for Emacs -;; Copyright (C) 1996-2000, 2002, 2007-2011 Free Software Foundation, Inc. +;; Copyright (C) 1996-2000, 2002, 2007-2012 Free Software Foundation, Inc. ;; Author: William M. Perry <wmperry@gnu.org> ;; Dave Love <fx@gnu.org> @@ -414,7 +414,7 @@ version.") ((= atype socks-address-type-name) (format "%c%s" (length address) address)) (t - (error "Unkown address type: %d" atype)))) + (error "Unknown address type: %d" atype)))) (info (gethash proc socks-connections)) request version) (or info (error "socks-send-command called on non-SOCKS connection %S" diff --git a/lisp/net/telnet.el b/lisp/net/telnet.el index 59850f68d44..00a556813c1 100644 --- a/lisp/net/telnet.el +++ b/lisp/net/telnet.el @@ -1,6 +1,6 @@ ;;; telnet.el --- run a telnet session from within an Emacs buffer -;; Copyright (C) 1985, 1988, 1992, 1994, 2001-2011 +;; Copyright (C) 1985, 1988, 1992, 1994, 2001-2012 ;; Free Software Foundation, Inc. ;; Author: William F. Schelter diff --git a/lisp/net/tls.el b/lisp/net/tls.el index 6f66156a7e2..9b9eb6f8f2e 100644 --- a/lisp/net/tls.el +++ b/lisp/net/tls.el @@ -1,6 +1,6 @@ ;;; tls.el --- TLS/SSL support via wrapper around GnuTLS -;; Copyright (C) 1996-1999, 2002-2011 Free Software Foundation, Inc. +;; Copyright (C) 1996-1999, 2002-2012 Free Software Foundation, Inc. ;; Author: Simon Josefsson <simon@josefsson.org> ;; Keywords: comm, tls, gnutls, ssl diff --git a/lisp/net/tramp-cache.el b/lisp/net/tramp-cache.el index 56087a3aef6..03a5fe5b88e 100644 --- a/lisp/net/tramp-cache.el +++ b/lisp/net/tramp-cache.el @@ -1,6 +1,6 @@ ;;; tramp-cache.el --- file information caching for Tramp -;; Copyright (C) 2000, 2005-2011 Free Software Foundation, Inc. +;; Copyright (C) 2000, 2005-2012 Free Software Foundation, Inc. ;; Author: Daniel Pittman <daniel@inanna.danann.net> ;; Michael Albinus <michael.albinus@gmx.de> diff --git a/lisp/net/tramp-cmds.el b/lisp/net/tramp-cmds.el index 998f62920a1..e0d15eb85f6 100644 --- a/lisp/net/tramp-cmds.el +++ b/lisp/net/tramp-cmds.el @@ -1,6 +1,6 @@ ;;; tramp-cmds.el --- Interactive commands for Tramp -;; Copyright (C) 2007-2011 Free Software Foundation, Inc. +;; Copyright (C) 2007-2012 Free Software Foundation, Inc. ;; Author: Michael Albinus <michael.albinus@gmx.de> ;; Keywords: comm, processes diff --git a/lisp/net/tramp-compat.el b/lisp/net/tramp-compat.el index 89c7db241d8..2aea87e66ed 100644 --- a/lisp/net/tramp-compat.el +++ b/lisp/net/tramp-compat.el @@ -1,6 +1,6 @@ ;;; tramp-compat.el --- Tramp compatibility functions -;; Copyright (C) 2007-2011 Free Software Foundation, Inc. +;; Copyright (C) 2007-2012 Free Software Foundation, Inc. ;; Author: Michael Albinus <michael.albinus@gmx.de> ;; Keywords: comm, processes diff --git a/lisp/net/tramp-ftp.el b/lisp/net/tramp-ftp.el index 71b3eacccea..4b5b08cf7e1 100644 --- a/lisp/net/tramp-ftp.el +++ b/lisp/net/tramp-ftp.el @@ -1,6 +1,6 @@ ;;; tramp-ftp.el --- Tramp convenience functions for Ange-FTP -;; Copyright (C) 2002-2011 Free Software Foundation, Inc. +;; Copyright (C) 2002-2012 Free Software Foundation, Inc. ;; Author: Michael Albinus <michael.albinus@gmx.de> ;; Keywords: comm, processes diff --git a/lisp/net/tramp-gvfs.el b/lisp/net/tramp-gvfs.el index 27dff3aa8d9..396443e60e6 100644 --- a/lisp/net/tramp-gvfs.el +++ b/lisp/net/tramp-gvfs.el @@ -1,6 +1,6 @@ ;;; tramp-gvfs.el --- Tramp access functions for GVFS daemon -;; Copyright (C) 2009-2011 Free Software Foundation, Inc. +;; Copyright (C) 2009-2012 Free Software Foundation, Inc. ;; Author: Michael Albinus <michael.albinus@gmx.de> ;; Keywords: comm, processes @@ -1209,7 +1209,7 @@ connection if a previous connection has died for some reason." (format "Opening connection for %s using %s" host method) (format "Opening connection for %s@%s using %s" user host method)) - ;; Enable auth-sorce and password-cache. + ;; Enable auth-source and password-cache. (tramp-set-connection-property vec "first-password-request" t) ;; There will be a callback of "askPassword" when a password is diff --git a/lisp/net/tramp-gw.el b/lisp/net/tramp-gw.el index 4ddd63bc3b8..de42c402a63 100644 --- a/lisp/net/tramp-gw.el +++ b/lisp/net/tramp-gw.el @@ -1,6 +1,6 @@ ;;; tramp-gw.el --- Tramp utility functions for HTTP tunnels and SOCKS gateways -;; Copyright (C) 2007-2011 Free Software Foundation, Inc. +;; Copyright (C) 2007-2012 Free Software Foundation, Inc. ;; Author: Michael Albinus <michael.albinus@gmx.de> ;; Keywords: comm, processes diff --git a/lisp/net/tramp-sh.el b/lisp/net/tramp-sh.el index da6f8a69e6d..02f933be367 100644 --- a/lisp/net/tramp-sh.el +++ b/lisp/net/tramp-sh.el @@ -1,6 +1,6 @@ ;;; tramp-sh.el --- Tramp access functions for (s)sh-like connections -;; Copyright (C) 1998-2011 Free Software Foundation, Inc. +;; Copyright (C) 1998-2012 Free Software Foundation, Inc. ;; (copyright statements below in code to be updated with the above notice) @@ -806,7 +806,7 @@ on the remote host.") (defconst tramp-perl-encode "%s -e ' # This script contributed by Juanma Barranquero <lektu@terra.es>. -# Copyright (C) 2002-2011 Free Software Foundation, Inc. +# Copyright (C) 2002-2012 Free Software Foundation, Inc. use strict; my %%trans = do { @@ -847,7 +847,7 @@ This string is passed to `format', so percent characters need to be doubled.") (defconst tramp-perl-decode "%s -e ' # This script contributed by Juanma Barranquero <lektu@terra.es>. -# Copyright (C) 2002-2011 Free Software Foundation, Inc. +# Copyright (C) 2002-2012 Free Software Foundation, Inc. use strict; my %%trans = do { @@ -3526,7 +3526,7 @@ variable PATH." Here, we are looking for a command which has zero exit status if the file exists and nonzero exit status otherwise." (let ((existing "/") - (nonexisting + (nonexistent (tramp-shell-quote-argument "/ this file does not exist ")) result) ;; The algorithm is as follows: we try a list of several commands. @@ -3551,22 +3551,22 @@ file exists and nonzero exit status otherwise." (tramp-send-command-and-check vec (format "%s %s" result existing)) (not (tramp-send-command-and-check - vec (format "%s %s" result nonexisting)))) + vec (format "%s %s" result nonexistent)))) (and (setq result "/bin/test -e") (tramp-send-command-and-check vec (format "%s %s" result existing)) (not (tramp-send-command-and-check - vec (format "%s %s" result nonexisting)))) + vec (format "%s %s" result nonexistent)))) (and (setq result "/usr/bin/test -e") (tramp-send-command-and-check vec (format "%s %s" result existing)) (not (tramp-send-command-and-check - vec (format "%s %s" result nonexisting)))) + vec (format "%s %s" result nonexistent)))) (and (setq result (format "%s -d" (tramp-get-ls-command vec))) (tramp-send-command-and-check vec (format "%s %s" result existing)) (not (tramp-send-command-and-check - vec (format "%s %s" result nonexisting))))) + vec (format "%s %s" result nonexistent))))) (tramp-error vec 'file-error "Couldn't find command to check if file exists")) result)) @@ -3618,7 +3618,8 @@ file exists and nonzero exit status otherwise." vec 'file-error "Couldn't find a shell which groks tilde expansion")) (tramp-message - vec 5 "Starting remote shell `%s' for tilde expansion" shell) + vec 5 "Starting remote shell `%s' for tilde expansion" + (tramp-set-connection-property vec "remote-shell" shell)) (tramp-open-shell vec shell)) (t (tramp-message @@ -3785,6 +3786,17 @@ process to set up. VEC specifies the connection." ;; Disable unexpected output. (tramp-send-command vec "mesg n; biff n" t) + ;; Busyboxes tend to behave strange. We check for the existence. + (with-connection-property vec "busybox" + (tramp-send-command + vec + (format + "%s --version" (tramp-get-connection-property vec "remote-shell" "echo")) + t) + (with-current-buffer (process-buffer proc) + (let ((case-fold-search t)) + (and (string-match "busybox" (buffer-string)) t)))) + ;; IRIX64 bash expands "!" even when in single quotes. This ;; destroys our shell functions, we must disable it. See ;; <http://stackoverflow.com/questions/3291692/irix-bash-shell-expands-expression-in-single-quotes-yet-shouldnt>. @@ -4397,7 +4409,8 @@ function waits for output unless NOOUTPUT is set." ;; We mark the command string that it can be erased in the output buffer. (tramp-set-connection-property p "check-remote-echo" t) (setq command (format "%s%s%s" tramp-echo-mark command tramp-echo-mark))) - (when (string-match "<<'EOF'" command) + (when (and (string-match "<<'EOF'" command) + (not (tramp-get-connection-property vec "busybox" nil))) ;; Unset $PS1 when using here documents, in order to avoid ;; multiple prompts. (setq command (concat "(PS1= ; " command "\n)"))) diff --git a/lisp/net/tramp-smb.el b/lisp/net/tramp-smb.el index 73b9339e25a..afce61cba83 100644 --- a/lisp/net/tramp-smb.el +++ b/lisp/net/tramp-smb.el @@ -1,6 +1,6 @@ ;;; tramp-smb.el --- Tramp access functions for SMB servers -;; Copyright (C) 2002-2011 Free Software Foundation, Inc. +;; Copyright (C) 2002-2012 Free Software Foundation, Inc. ;; Author: Michael Albinus <michael.albinus@gmx.de> ;; Keywords: comm, processes @@ -973,7 +973,7 @@ If VEC has no cifs capabilities, exchange \"/\" by \"\\\\\"." (setq localname (if (string-match "^/?[^/]+\\(/.*\\)" localname) - ;; There is a share, sparated by "/". + ;; There is a share, separated by "/". (if (not (tramp-smb-get-cifs-capabilities vec)) (mapconcat (lambda (x) (if (equal x ?/) "\\" (char-to-string x))) diff --git a/lisp/net/tramp-uu.el b/lisp/net/tramp-uu.el index 391fba0b404..be612d011eb 100644 --- a/lisp/net/tramp-uu.el +++ b/lisp/net/tramp-uu.el @@ -1,6 +1,6 @@ ;;; tramp-uu.el --- uuencode in Lisp -;; Copyright (C) 2002-2011 Free Software Foundation, Inc. +;; Copyright (C) 2002-2012 Free Software Foundation, Inc. ;; Author: Kai Großjohann <kai.grossjohann@gmx.net> ;; Keywords: comm, terminals diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el index 2848211fae9..afb7ab4312b 100644 --- a/lisp/net/tramp.el +++ b/lisp/net/tramp.el @@ -1,6 +1,6 @@ ;;; tramp.el --- Transparent Remote Access, Multiple Protocol -;; Copyright (C) 1998-2011 Free Software Foundation, Inc. +;; Copyright (C) 1998-2012 Free Software Foundation, Inc. ;; Author: Kai Großjohann <kai.grossjohann@gmx.net> ;; Michael Albinus <michael.albinus@gmx.de> @@ -3506,7 +3506,7 @@ If the `tramp-methods' entry does not exist, return nil." (cond ((char-equal other-write ?w) (tramp-compat-octal-to-decimal "00002")) ((char-equal other-write ?-) 0) - (t (error "Nineth char `%c' must be one of `w-'" other-write))) + (t (error "Ninth char `%c' must be one of `w-'" other-write))) (cond ((char-equal other-execute-or-sticky ?x) (tramp-compat-octal-to-decimal "00001")) diff --git a/lisp/net/trampver.el b/lisp/net/trampver.el index fc0c936c407..f028c6e943f 100644 --- a/lisp/net/trampver.el +++ b/lisp/net/trampver.el @@ -1,7 +1,7 @@ ;;; trampver.el --- Transparent Remote Access, Multiple Protocol ;;; lisp/trampver.el. Generated from trampver.el.in by configure. -;; Copyright (C) 2003-2011 Free Software Foundation, Inc. +;; Copyright (C) 2003-2012 Free Software Foundation, Inc. ;; Author: Kai Großjohann <kai.grossjohann@gmx.net> ;; Keywords: comm, processes diff --git a/lisp/net/webjump.el b/lisp/net/webjump.el index 6ef24e9f354..4b8fbe1e2cf 100644 --- a/lisp/net/webjump.el +++ b/lisp/net/webjump.el @@ -1,6 +1,6 @@ ;;; webjump.el --- programmable Web hotlist -;; Copyright (C) 1996-1997, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1996-1997, 2001-2012 Free Software Foundation, Inc. ;; Author: Neil W. Van Dyke <nwv@acm.org> ;; Created: 09-Aug-1996 diff --git a/lisp/net/xesam.el b/lisp/net/xesam.el index 17b22aa03ba..f47eeda8d97 100644 --- a/lisp/net/xesam.el +++ b/lisp/net/xesam.el @@ -1,6 +1,6 @@ ;;; xesam.el --- Xesam interface to search engines. -;; Copyright (C) 2008-2011 Free Software Foundation, Inc. +;; Copyright (C) 2008-2012 Free Software Foundation, Inc. ;; Author: Michael Albinus <michael.albinus@gmx.de> ;; Keywords: tools, hypermedia diff --git a/lisp/net/zeroconf.el b/lisp/net/zeroconf.el index a889a6a4177..b994cdeaa68 100644 --- a/lisp/net/zeroconf.el +++ b/lisp/net/zeroconf.el @@ -1,6 +1,6 @@ ;;; zeroconf.el --- Service browser using Avahi. -;; Copyright (C) 2008-2011 Free Software Foundation, Inc. +;; Copyright (C) 2008-2012 Free Software Foundation, Inc. ;; Author: Michael Albinus <michael.albinus@gmx.de> ;; Keywords: comm, hardware diff --git a/lisp/newcomment.el b/lisp/newcomment.el index 3f2338b3a4c..e2be4829a9b 100644 --- a/lisp/newcomment.el +++ b/lisp/newcomment.el @@ -1,6 +1,6 @@ ;;; newcomment.el --- (un)comment regions of buffers -*- lexical-binding: t -*- -;; Copyright (C) 1999-2011 Free Software Foundation, Inc. +;; Copyright (C) 1999-2012 Free Software Foundation, Inc. ;; Author: code extracted from Emacs-20's simple.el ;; Maintainer: Stefan Monnier <monnier@iro.umontreal.ca> diff --git a/lisp/notifications.el b/lisp/notifications.el index e4e44fb0f67..c3b6c759506 100644 --- a/lisp/notifications.el +++ b/lisp/notifications.el @@ -1,6 +1,6 @@ ;;; notifications.el --- Client interface to desktop notifications. -;; Copyright (C) 2010-2011 Free Software Foundation, Inc. +;; Copyright (C) 2010-2012 Free Software Foundation, Inc. ;; Author: Julien Danjou <julien@danjou.info> ;; Keywords: comm desktop notifications diff --git a/lisp/novice.el b/lisp/novice.el index e47b17cf346..a5d38a3a57f 100644 --- a/lisp/novice.el +++ b/lisp/novice.el @@ -1,6 +1,6 @@ ;;; novice.el --- handling of disabled commands ("novice mode") for Emacs -;; Copyright (C) 1985-1987, 1994, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1985-1987, 1994, 2001-2012 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: internal, help diff --git a/lisp/nxml/nxml-enc.el b/lisp/nxml/nxml-enc.el index 350c5c77c7b..dffea031b97 100644 --- a/lisp/nxml/nxml-enc.el +++ b/lisp/nxml/nxml-enc.el @@ -1,6 +1,6 @@ ;;; nxml-enc.el --- XML encoding auto-detection -;; Copyright (C) 2003, 2007-2011 Free Software Foundation, Inc. +;; Copyright (C) 2003, 2007-2012 Free Software Foundation, Inc. ;; Author: James Clark ;; Keywords: XML diff --git a/lisp/nxml/nxml-glyph.el b/lisp/nxml/nxml-glyph.el index 1b48a3fa25f..ba940cd513e 100644 --- a/lisp/nxml/nxml-glyph.el +++ b/lisp/nxml/nxml-glyph.el @@ -1,6 +1,6 @@ ;;; nxml-glyph.el --- glyph-handling for nxml-mode -;; Copyright (C) 2003, 2007-2011 Free Software Foundation, Inc. +;; Copyright (C) 2003, 2007-2012 Free Software Foundation, Inc. ;; Author: James Clark ;; Keywords: XML diff --git a/lisp/nxml/nxml-maint.el b/lisp/nxml/nxml-maint.el index e24a3d7172a..79d5c354ab1 100644 --- a/lisp/nxml/nxml-maint.el +++ b/lisp/nxml/nxml-maint.el @@ -1,6 +1,6 @@ ;;; nxml-maint.el --- commands for maintainers of nxml-*.el -;; Copyright (C) 2003, 2007-2011 Free Software Foundation, Inc. +;; Copyright (C) 2003, 2007-2012 Free Software Foundation, Inc. ;; Author: James Clark ;; Keywords: XML diff --git a/lisp/nxml/nxml-mode.el b/lisp/nxml/nxml-mode.el index 93e5f9d25f4..a22288e7d4e 100644 --- a/lisp/nxml/nxml-mode.el +++ b/lisp/nxml/nxml-mode.el @@ -1,6 +1,6 @@ ;;; nxml-mode.el --- a new XML mode -;; Copyright (C) 2003-2004, 2007-2011 Free Software Foundation, Inc. +;; Copyright (C) 2003-2004, 2007-2012 Free Software Foundation, Inc. ;; Author: James Clark ;; Keywords: XML diff --git a/lisp/nxml/nxml-ns.el b/lisp/nxml/nxml-ns.el index 4cf7f50d096..1c6429cd467 100644 --- a/lisp/nxml/nxml-ns.el +++ b/lisp/nxml/nxml-ns.el @@ -1,6 +1,6 @@ ;;; nxml-ns.el --- XML namespace processing -;; Copyright (C) 2003, 2007-2011 Free Software Foundation, Inc. +;; Copyright (C) 2003, 2007-2012 Free Software Foundation, Inc. ;; Author: James Clark ;; Keywords: XML diff --git a/lisp/nxml/nxml-outln.el b/lisp/nxml/nxml-outln.el index 53d2cabc2e5..cf8cc820cec 100644 --- a/lisp/nxml/nxml-outln.el +++ b/lisp/nxml/nxml-outln.el @@ -1,6 +1,6 @@ ;;; nxml-outln.el --- outline support for nXML mode -;; Copyright (C) 2004, 2007-2011 Free Software Foundation, Inc. +;; Copyright (C) 2004, 2007-2012 Free Software Foundation, Inc. ;; Author: James Clark ;; Keywords: XML diff --git a/lisp/nxml/nxml-parse.el b/lisp/nxml/nxml-parse.el index 36e112e4078..dfe98acd413 100644 --- a/lisp/nxml/nxml-parse.el +++ b/lisp/nxml/nxml-parse.el @@ -1,6 +1,6 @@ ;;; nxml-parse.el --- XML parser, sharing infrastructure with nxml-mode -;; Copyright (C) 2003, 2007-2011 Free Software Foundation, Inc. +;; Copyright (C) 2003, 2007-2012 Free Software Foundation, Inc. ;; Author: James Clark ;; Keywords: XML diff --git a/lisp/nxml/nxml-rap.el b/lisp/nxml/nxml-rap.el index 05df6118325..e639bc409b8 100644 --- a/lisp/nxml/nxml-rap.el +++ b/lisp/nxml/nxml-rap.el @@ -1,6 +1,6 @@ ;;; nxml-rap.el --- low-level support for random access parsing for nXML mode -;; Copyright (C) 2003-2004, 2007-2011 Free Software Foundation, Inc. +;; Copyright (C) 2003-2004, 2007-2012 Free Software Foundation, Inc. ;; Author: James Clark ;; Keywords: XML diff --git a/lisp/nxml/nxml-uchnm.el b/lisp/nxml/nxml-uchnm.el index e96ee345ae6..7a49dcc89c5 100644 --- a/lisp/nxml/nxml-uchnm.el +++ b/lisp/nxml/nxml-uchnm.el @@ -1,6 +1,6 @@ ;;; nxml-uchnm.el --- support for Unicode standard cha names in nxml-mode -;; Copyright (C) 2003, 2007-2011 Free Software Foundation, Inc. +;; Copyright (C) 2003, 2007-2012 Free Software Foundation, Inc. ;; Author: James Clark ;; Keywords: XML diff --git a/lisp/nxml/nxml-util.el b/lisp/nxml/nxml-util.el index e2e4ed348bd..6b2c98433a9 100644 --- a/lisp/nxml/nxml-util.el +++ b/lisp/nxml/nxml-util.el @@ -1,6 +1,6 @@ ;;; nxml-util.el --- utility functions for nxml-*.el -;; Copyright (C) 2003, 2007-2011 Free Software Foundation, Inc. +;; Copyright (C) 2003, 2007-2012 Free Software Foundation, Inc. ;; Author: James Clark ;; Keywords: XML diff --git a/lisp/nxml/rng-cmpct.el b/lisp/nxml/rng-cmpct.el index 09bd2b75038..9ea68c3e039 100644 --- a/lisp/nxml/rng-cmpct.el +++ b/lisp/nxml/rng-cmpct.el @@ -1,6 +1,6 @@ ;;; rng-cmpct.el --- parsing of RELAX NG Compact Syntax schemas -;; Copyright (C) 2003, 2007-2011 Free Software Foundation, Inc. +;; Copyright (C) 2003, 2007-2012 Free Software Foundation, Inc. ;; Author: James Clark ;; Keywords: XML, RelaxNG diff --git a/lisp/nxml/rng-dt.el b/lisp/nxml/rng-dt.el index e320f8377b2..e2beaf4dec2 100644 --- a/lisp/nxml/rng-dt.el +++ b/lisp/nxml/rng-dt.el @@ -1,6 +1,6 @@ ;;; rng-dt.el --- datatype library interface for RELAX NG -;; Copyright (C) 2003, 2007-2011 Free Software Foundation, Inc. +;; Copyright (C) 2003, 2007-2012 Free Software Foundation, Inc. ;; Author: James Clark ;; Keywords: XML, RelaxNG diff --git a/lisp/nxml/rng-loc.el b/lisp/nxml/rng-loc.el index b9e31e0a09e..130183609cc 100644 --- a/lisp/nxml/rng-loc.el +++ b/lisp/nxml/rng-loc.el @@ -1,6 +1,6 @@ ;;; rng-loc.el --- locate the schema to use for validation -;; Copyright (C) 2003, 2007-2011 Free Software Foundation, Inc. +;; Copyright (C) 2003, 2007-2012 Free Software Foundation, Inc. ;; Author: James Clark ;; Keywords: XML, RelaxNG diff --git a/lisp/nxml/rng-maint.el b/lisp/nxml/rng-maint.el index bd5b3136d54..71fa59f75cc 100644 --- a/lisp/nxml/rng-maint.el +++ b/lisp/nxml/rng-maint.el @@ -1,6 +1,6 @@ ;;; rng-maint.el --- commands for RELAX NG maintainers -;; Copyright (C) 2003, 2007-2011 Free Software Foundation, Inc. +;; Copyright (C) 2003, 2007-2012 Free Software Foundation, Inc. ;; Author: James Clark ;; Keywords: XML, RelaxNG diff --git a/lisp/nxml/rng-match.el b/lisp/nxml/rng-match.el index 072d932678a..cf49b43ba14 100644 --- a/lisp/nxml/rng-match.el +++ b/lisp/nxml/rng-match.el @@ -1,6 +1,6 @@ ;;; rng-match.el --- matching of RELAX NG patterns against XML events -;; Copyright (C) 2003, 2007-2011 Free Software Foundation, Inc. +;; Copyright (C) 2003, 2007-2012 Free Software Foundation, Inc. ;; Author: James Clark ;; Keywords: XML, RelaxNG diff --git a/lisp/nxml/rng-nxml.el b/lisp/nxml/rng-nxml.el index 1686ebfc514..1047ead1b13 100644 --- a/lisp/nxml/rng-nxml.el +++ b/lisp/nxml/rng-nxml.el @@ -1,6 +1,6 @@ ;;; rng-nxml.el --- make nxml-mode take advantage of rng-validate-mode -;; Copyright (C) 2003, 2007-2011 Free Software Foundation, Inc. +;; Copyright (C) 2003, 2007-2012 Free Software Foundation, Inc. ;; Author: James Clark ;; Keywords: XML, RelaxNG diff --git a/lisp/nxml/rng-parse.el b/lisp/nxml/rng-parse.el index 68a3aff3a0f..fcdb52bbc44 100644 --- a/lisp/nxml/rng-parse.el +++ b/lisp/nxml/rng-parse.el @@ -1,6 +1,6 @@ ;;; rng-parse.el --- parse an XML file and validate it against a schema -;; Copyright (C) 2003, 2007-2011 Free Software Foundation, Inc. +;; Copyright (C) 2003, 2007-2012 Free Software Foundation, Inc. ;; Author: James Clark ;; Keywords: XML, RelaxNG diff --git a/lisp/nxml/rng-pttrn.el b/lisp/nxml/rng-pttrn.el index a803369d3d2..653980d5acd 100644 --- a/lisp/nxml/rng-pttrn.el +++ b/lisp/nxml/rng-pttrn.el @@ -1,6 +1,6 @@ ;;; rng-pttrn.el --- RELAX NG patterns -;; Copyright (C) 2003, 2007-2011 Free Software Foundation, Inc. +;; Copyright (C) 2003, 2007-2012 Free Software Foundation, Inc. ;; Author: James Clark ;; Keywords: XML, RelaxNG diff --git a/lisp/nxml/rng-uri.el b/lisp/nxml/rng-uri.el index 2b367b20072..675be9c5ccf 100644 --- a/lisp/nxml/rng-uri.el +++ b/lisp/nxml/rng-uri.el @@ -1,6 +1,6 @@ ;;; rng-uri.el --- URI parsing and manipulation -;; Copyright (C) 2003, 2007-2011 Free Software Foundation, Inc. +;; Copyright (C) 2003, 2007-2012 Free Software Foundation, Inc. ;; Author: James Clark ;; Keywords: XML diff --git a/lisp/nxml/rng-util.el b/lisp/nxml/rng-util.el index 3e23b67c998..0d50507478a 100644 --- a/lisp/nxml/rng-util.el +++ b/lisp/nxml/rng-util.el @@ -1,6 +1,6 @@ ;;; rng-util.el --- utility functions for RELAX NG library -;; Copyright (C) 2003, 2007-2011 Free Software Foundation, Inc. +;; Copyright (C) 2003, 2007-2012 Free Software Foundation, Inc. ;; Author: James Clark ;; Keywords: XML, RelaxNG diff --git a/lisp/nxml/rng-valid.el b/lisp/nxml/rng-valid.el index 1f69f5d7bf3..6fc696361e8 100644 --- a/lisp/nxml/rng-valid.el +++ b/lisp/nxml/rng-valid.el @@ -1,6 +1,6 @@ ;;; rng-valid.el --- real-time validation of XML using RELAX NG -;; Copyright (C) 2003, 2007-2011 Free Software Foundation, Inc. +;; Copyright (C) 2003, 2007-2012 Free Software Foundation, Inc. ;; Author: James Clark ;; Keywords: XML, RelaxNG @@ -570,7 +570,7 @@ Return t if there is work to do, nil otherwise." (rng-clear-cached-state remove-start (1- pos))) ;; sync up with cached validation state (setq continue nil) - ;; do this before settting rng-validate-up-to-date-end + ;; do this before setting rng-validate-up-to-date-end ;; in case we get a quit (rng-mark-xmltok-errors) (rng-mark-xmltok-dependent-regions) diff --git a/lisp/nxml/rng-xsd.el b/lisp/nxml/rng-xsd.el index b481039fdab..d84ea5e1a71 100644 --- a/lisp/nxml/rng-xsd.el +++ b/lisp/nxml/rng-xsd.el @@ -1,6 +1,6 @@ ;;; rng-xsd.el --- W3C XML Schema datatypes library for RELAX NG -;; Copyright (C) 2003, 2007-2011 Free Software Foundation, Inc. +;; Copyright (C) 2003, 2007-2012 Free Software Foundation, Inc. ;; Author: James Clark ;; Keywords: XML, RelaxNG diff --git a/lisp/nxml/xmltok.el b/lisp/nxml/xmltok.el index a9b24955fa7..e4f6f3ca511 100644 --- a/lisp/nxml/xmltok.el +++ b/lisp/nxml/xmltok.el @@ -1,6 +1,6 @@ ;;; xmltok.el --- XML tokenization -;; Copyright (C) 2003, 2007-2011 Free Software Foundation, Inc. +;; Copyright (C) 2003, 2007-2012 Free Software Foundation, Inc. ;; Author: James Clark ;; Keywords: XML diff --git a/lisp/nxml/xsd-regexp.el b/lisp/nxml/xsd-regexp.el index 9701b8dc6e0..37ed58b2074 100644 --- a/lisp/nxml/xsd-regexp.el +++ b/lisp/nxml/xsd-regexp.el @@ -1,6 +1,6 @@ ;;; xsd-regexp.el --- translate W3C XML Schema regexps to Emacs regexps -;; Copyright (C) 2003, 2007-2011 Free Software Foundation, Inc. +;; Copyright (C) 2003, 2007-2012 Free Software Foundation, Inc. ;; Author: James Clark ;; Keywords: XML, regexp diff --git a/lisp/obsolete/abbrevlist.el b/lisp/obsolete/abbrevlist.el index 55940dfc1ce..36856ea0d71 100644 --- a/lisp/obsolete/abbrevlist.el +++ b/lisp/obsolete/abbrevlist.el @@ -1,6 +1,6 @@ ;;; abbrevlist.el --- list one abbrev table alphabetically ordered -;; Copyright (C) 1986, 1992, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1986, 1992, 2001-2012 Free Software Foundation, Inc. ;; Suggested by a previous version by Gildea. ;; Maintainer: FSF diff --git a/lisp/obsolete/awk-mode.el b/lisp/obsolete/awk-mode.el index 1a6d08c08ef..c931af9df5e 100644 --- a/lisp/obsolete/awk-mode.el +++ b/lisp/obsolete/awk-mode.el @@ -1,6 +1,6 @@ ;;; awk-mode.el --- AWK code editing commands for Emacs -;; Copyright (C) 1988, 1994, 1996, 2000-2011 Free Software Foundation, Inc. +;; Copyright (C) 1988, 1994, 1996, 2000-2012 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: unix, languages diff --git a/lisp/obsolete/cl-compat.el b/lisp/obsolete/cl-compat.el index 21bb46179c5..a086de90b47 100644 --- a/lisp/obsolete/cl-compat.el +++ b/lisp/obsolete/cl-compat.el @@ -1,6 +1,6 @@ ;;; cl-compat.el --- Common Lisp extensions for GNU Emacs Lisp (compatibility) -;; Copyright (C) 1993, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1993, 2001-2012 Free Software Foundation, Inc. ;; Author: Dave Gillespie <daveg@synaptics.com> ;; Version: 2.02 diff --git a/lisp/obsolete/complete.el b/lisp/obsolete/complete.el index 925361566fb..5cb9456df42 100644 --- a/lisp/obsolete/complete.el +++ b/lisp/obsolete/complete.el @@ -1,6 +1,6 @@ ;;; complete.el --- partial completion mechanism plus other goodies -;; Copyright (C) 1990-1993, 1999-2011 Free Software Foundation, Inc. +;; Copyright (C) 1990-1993, 1999-2012 Free Software Foundation, Inc. ;; Author: Dave Gillespie <daveg@synaptics.com> ;; Keywords: abbrev convenience diff --git a/lisp/obsolete/erc-hecomplete.el b/lisp/obsolete/erc-hecomplete.el index 67f51d690b2..6cc45c21727 100644 --- a/lisp/obsolete/erc-hecomplete.el +++ b/lisp/obsolete/erc-hecomplete.el @@ -1,6 +1,6 @@ ;;; erc-hecomplete.el --- Provides Nick name completion for ERC -;; Copyright (C) 2001-2002, 2004, 2006-2011 Free Software Foundation, Inc. +;; Copyright (C) 2001-2002, 2004, 2006-2012 Free Software Foundation, Inc. ;; Author: Alex Schroeder <alex@gnu.org> ;; URL: http://www.emacswiki.org/cgi-bin/wiki.pl?ErcCompletion diff --git a/lisp/obsolete/fast-lock.el b/lisp/obsolete/fast-lock.el index c42c2309413..9eb1d0569f0 100644 --- a/lisp/obsolete/fast-lock.el +++ b/lisp/obsolete/fast-lock.el @@ -1,6 +1,6 @@ ;;; fast-lock.el --- automagic text properties caching for fast Font Lock mode -;; Copyright (C) 1994-1998, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1994-1998, 2001-2012 Free Software Foundation, Inc. ;; Author: Simon Marshall <simon@gnu.org> ;; Maintainer: FSF diff --git a/lisp/obsolete/iso-acc.el b/lisp/obsolete/iso-acc.el index 347db281f1a..5a7e99197b8 100644 --- a/lisp/obsolete/iso-acc.el +++ b/lisp/obsolete/iso-acc.el @@ -1,6 +1,6 @@ ;;; iso-acc.el --- minor mode providing electric accent keys -;; Copyright (C) 1993-1994, 1996, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1993-1994, 1996, 2001-2012 Free Software Foundation, Inc. ;; Author: Johan Vromans ;; Maintainer: FSF diff --git a/lisp/obsolete/iso-insert.el b/lisp/obsolete/iso-insert.el index c223d096730..e2f53ea32af 100644 --- a/lisp/obsolete/iso-insert.el +++ b/lisp/obsolete/iso-insert.el @@ -1,6 +1,6 @@ ;;; iso-insert.el --- insert functions for ISO 8859/1 -*- coding: iso-8859-1;-*- -;; Copyright (C) 1987, 1994, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1987, 1994, 2001-2012 Free Software Foundation, Inc. ;; Author: Howard Gayle ;; Maintainer: FSF diff --git a/lisp/obsolete/iso-swed.el b/lisp/obsolete/iso-swed.el index 43686283e89..c57b006036f 100644 --- a/lisp/obsolete/iso-swed.el +++ b/lisp/obsolete/iso-swed.el @@ -1,6 +1,6 @@ ;;; iso-swed.el --- set up char tables for ISO 8859/1 for Swedish/Finnish ttys -;; Copyright (C) 1987, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1987, 2001-2012 Free Software Foundation, Inc. ;; Author: Howard Gayle ;; Maintainer: FSF diff --git a/lisp/obsolete/keyswap.el b/lisp/obsolete/keyswap.el index ec1263e5189..e1257f8f1aa 100644 --- a/lisp/obsolete/keyswap.el +++ b/lisp/obsolete/keyswap.el @@ -1,6 +1,6 @@ ;;; keyswap.el --- swap BS and DEL keys -*- no-byte-compile: t -*- -;; Copyright (C) 1992, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1992, 2001-2012 Free Software Foundation, Inc. ;; Author: Eric S. Raymond <esr@snark.thyrsus.com> ;; Keywords: terminals diff --git a/lisp/obsolete/lazy-lock.el b/lisp/obsolete/lazy-lock.el index a04db4a0c72..7f055ec8c8f 100644 --- a/lisp/obsolete/lazy-lock.el +++ b/lisp/obsolete/lazy-lock.el @@ -1,6 +1,6 @@ ;;; lazy-lock.el --- lazy demand-driven fontification for fast Font Lock mode -;; Copyright (C) 1994-1998, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1994-1998, 2001-2012 Free Software Foundation, Inc. ;; Author: Simon Marshall <simon@gnu.org> ;; Maintainer: FSF diff --git a/lisp/obsolete/levents.el b/lisp/obsolete/levents.el index 96183cadb9b..bd7272db460 100644 --- a/lisp/obsolete/levents.el +++ b/lisp/obsolete/levents.el @@ -1,6 +1,6 @@ ;;; levents.el --- emulate the Lucid event data type and associated functions -;; Copyright (C) 1993, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1993, 2001-2012 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: emulations diff --git a/lisp/obsolete/lmenu.el b/lisp/obsolete/lmenu.el index 3c188be93e2..8ee8200f900 100644 --- a/lisp/obsolete/lmenu.el +++ b/lisp/obsolete/lmenu.el @@ -1,6 +1,6 @@ ;;; lmenu.el --- emulate Lucid's menubar support -;; Copyright (C) 1992-1994, 1997, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1992-1994, 1997, 2001-2012 Free Software Foundation, Inc. ;; Keywords: emulations obsolete ;; Obsolete-since: 23.3 diff --git a/lisp/obsolete/lucid.el b/lisp/obsolete/lucid.el index d5ef629ffb4..c442ad31d1d 100644 --- a/lisp/obsolete/lucid.el +++ b/lisp/obsolete/lucid.el @@ -1,6 +1,6 @@ ;;; lucid.el --- emulate some Lucid Emacs functions -;; Copyright (C) 1993, 1995, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1993, 1995, 2001-2012 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: emulations diff --git a/lisp/obsolete/old-emacs-lock.el b/lisp/obsolete/old-emacs-lock.el index b45003fcecc..e586d34b499 100644 --- a/lisp/obsolete/old-emacs-lock.el +++ b/lisp/obsolete/old-emacs-lock.el @@ -1,6 +1,6 @@ ;;; emacs-lock.el --- prevents you from exiting Emacs if a buffer is locked -;; Copyright (C) 1994, 1997, 2001-2011 Free Software Foundation, Inc +;; Copyright (C) 1994, 1997, 2001-2012 Free Software Foundation, Inc ;; Author: Tom Wurgler <twurgler@goodyear.com> ;; Created: 12/8/94 diff --git a/lisp/obsolete/old-whitespace.el b/lisp/obsolete/old-whitespace.el index 0c0580b55dc..3cd5d3a0c38 100644 --- a/lisp/obsolete/old-whitespace.el +++ b/lisp/obsolete/old-whitespace.el @@ -1,6 +1,6 @@ ;;; whitespace.el --- warn about and clean bogus whitespaces in the file -;; Copyright (C) 1999-2011 Free Software Foundation, Inc. +;; Copyright (C) 1999-2012 Free Software Foundation, Inc. ;; Author: Rajesh Vaidheeswarran <rv@gnu.org> ;; Keywords: convenience diff --git a/lisp/obsolete/options.el b/lisp/obsolete/options.el index 7c1c3552e2d..fef2943c873 100644 --- a/lisp/obsolete/options.el +++ b/lisp/obsolete/options.el @@ -1,6 +1,6 @@ ;;; options.el --- edit Options command for Emacs -;; Copyright (C) 1985, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1985, 2001-2012 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Obsolete-since: 22.1 diff --git a/lisp/obsolete/pc-mode.el b/lisp/obsolete/pc-mode.el index 192392d3821..f66cc10380e 100644 --- a/lisp/obsolete/pc-mode.el +++ b/lisp/obsolete/pc-mode.el @@ -1,6 +1,6 @@ ;;; pc-mode.el --- emulate certain key bindings used on PCs -;; Copyright (C) 1995, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1995, 2001-2012 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: emulations diff --git a/lisp/obsolete/pc-select.el b/lisp/obsolete/pc-select.el index 9a5f9e9d9dc..676d7817f1b 100644 --- a/lisp/obsolete/pc-select.el +++ b/lisp/obsolete/pc-select.el @@ -2,7 +2,7 @@ ;;; (or MAC GUI or MS-windoze (bah)) look-and-feel ;;; including key bindings. -;; Copyright (C) 1995-1997, 2000-2011 Free Software Foundation, Inc. +;; Copyright (C) 1995-1997, 2000-2012 Free Software Foundation, Inc. ;; Author: Michael Staats <michael@thp.Uni-Duisburg.DE> ;; Keywords: convenience emulations diff --git a/lisp/obsolete/pgg-def.el b/lisp/obsolete/pgg-def.el index 39aef5fd278..ec208ea816d 100644 --- a/lisp/obsolete/pgg-def.el +++ b/lisp/obsolete/pgg-def.el @@ -1,6 +1,6 @@ ;;; pgg-def.el --- functions/macros for defining PGG functions -;; Copyright (C) 1999, 2002-2011 Free Software Foundation, Inc. +;; Copyright (C) 1999, 2002-2012 Free Software Foundation, Inc. ;; Author: Daiki Ueno <ueno@unixuser.org> ;; Created: 1999/11/02 diff --git a/lisp/obsolete/pgg-gpg.el b/lisp/obsolete/pgg-gpg.el index 2eafc631e98..03de093f6b4 100644 --- a/lisp/obsolete/pgg-gpg.el +++ b/lisp/obsolete/pgg-gpg.el @@ -1,6 +1,6 @@ ;;; pgg-gpg.el --- GnuPG support for PGG. -;; Copyright (C) 1999-2000, 2002-2011 Free Software Foundation, Inc. +;; Copyright (C) 1999-2000, 2002-2012 Free Software Foundation, Inc. ;; Author: Daiki Ueno <ueno@unixuser.org> ;; Symmetric encryption and gpg-agent support added by: diff --git a/lisp/obsolete/pgg-parse.el b/lisp/obsolete/pgg-parse.el index 3d4539d9466..c7484ddd747 100644 --- a/lisp/obsolete/pgg-parse.el +++ b/lisp/obsolete/pgg-parse.el @@ -1,6 +1,6 @@ ;;; pgg-parse.el --- OpenPGP packet parsing -;; Copyright (C) 1999, 2002-2011 Free Software Foundation, Inc. +;; Copyright (C) 1999, 2002-2012 Free Software Foundation, Inc. ;; Author: Daiki Ueno <ueno@unixuser.org> ;; Created: 1999/10/28 @@ -53,7 +53,7 @@ (defcustom pgg-parse-symmetric-key-algorithm-alist '((1 . IDEA) (2 . 3DES) (4 . CAST5) (5 . SAFER-SK128)) - "Alist of the assigned number to the simmetric key algorithm." + "Alist of the assigned number to the symmetric key algorithm." :group 'pgg-parse :type '(repeat (cons (sexp :tag "Number") (sexp :tag "Type")))) diff --git a/lisp/obsolete/pgg-pgp.el b/lisp/obsolete/pgg-pgp.el index 7a9c70249a1..8e42779a27f 100644 --- a/lisp/obsolete/pgg-pgp.el +++ b/lisp/obsolete/pgg-pgp.el @@ -1,6 +1,6 @@ ;;; pgg-pgp.el --- PGP 2.* and 6.* support for PGG. -;; Copyright (C) 1999-2000, 2002-2011 Free Software Foundation, Inc. +;; Copyright (C) 1999-2000, 2002-2012 Free Software Foundation, Inc. ;; Author: Daiki Ueno <ueno@unixuser.org> ;; Created: 1999/11/02 diff --git a/lisp/obsolete/pgg-pgp5.el b/lisp/obsolete/pgg-pgp5.el index 796310bcfdc..c6c8cd174e9 100644 --- a/lisp/obsolete/pgg-pgp5.el +++ b/lisp/obsolete/pgg-pgp5.el @@ -1,6 +1,6 @@ ;;; pgg-pgp5.el --- PGP 5.* support for PGG. -;; Copyright (C) 1999-2000, 2002-2011 Free Software Foundation, Inc. +;; Copyright (C) 1999-2000, 2002-2012 Free Software Foundation, Inc. ;; Author: Daiki Ueno <ueno@unixuser.org> ;; Created: 1999/11/02 diff --git a/lisp/obsolete/pgg.el b/lisp/obsolete/pgg.el index 876f3744bc2..996ba824f73 100644 --- a/lisp/obsolete/pgg.el +++ b/lisp/obsolete/pgg.el @@ -1,6 +1,6 @@ ;;; pgg.el --- glue for the various PGP implementations. -;; Copyright (C) 1999-2000, 2002-2011 Free Software Foundation, Inc. +;; Copyright (C) 1999-2000, 2002-2012 Free Software Foundation, Inc. ;; Author: Daiki Ueno <ueno@unixuser.org> ;; Symmetric encryption added by: Sascha Wilde <wilde@sha-bang.de> diff --git a/lisp/obsolete/resume.el b/lisp/obsolete/resume.el index c9df1184d90..905ea07459a 100644 --- a/lisp/obsolete/resume.el +++ b/lisp/obsolete/resume.el @@ -1,6 +1,6 @@ ;;; resume.el --- process command line args from within a suspended Emacs job -;; Copyright (C) 1992, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1992, 2001-2012 Free Software Foundation, Inc. ;; Author: Joe Wells <jbw@bucsf.bu.edu> ;; Adapted-By: ESR diff --git a/lisp/obsolete/s-region.el b/lisp/obsolete/s-region.el index 8fb6703aa25..1e09cbb4db6 100644 --- a/lisp/obsolete/s-region.el +++ b/lisp/obsolete/s-region.el @@ -1,6 +1,6 @@ ;;; s-region.el --- set region using shift key -;; Copyright (C) 1994-1995, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1994-1995, 2001-2012 Free Software Foundation, Inc. ;; Author: Morten Welinder <terra@diku.dk> ;; Keywords: terminals diff --git a/lisp/obsolete/scribe.el b/lisp/obsolete/scribe.el index 1fbc9bc4158..c46c834338f 100644 --- a/lisp/obsolete/scribe.el +++ b/lisp/obsolete/scribe.el @@ -1,6 +1,6 @@ ;;; scribe.el --- scribe mode, and its idiosyncratic commands -;; Copyright (C) 1985, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1985, 2001-2012 Free Software Foundation, Inc. ;; Author: William Sommerfeld ;; (according to ack.texi) diff --git a/lisp/obsolete/spell.el b/lisp/obsolete/spell.el index ec7f912455b..2105fc1cb86 100644 --- a/lisp/obsolete/spell.el +++ b/lisp/obsolete/spell.el @@ -1,6 +1,6 @@ ;;; spell.el --- spelling correction interface for Emacs -;; Copyright (C) 1985, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1985, 2001-2012 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: wp, unix diff --git a/lisp/obsolete/sregex.el b/lisp/obsolete/sregex.el index d1c80a65672..73caf50aae3 100644 --- a/lisp/obsolete/sregex.el +++ b/lisp/obsolete/sregex.el @@ -1,6 +1,6 @@ ;;; sregex.el --- symbolic regular expressions -;; Copyright (C) 1997-1998, 2000-2011 Free Software Foundation, Inc. +;; Copyright (C) 1997-1998, 2000-2012 Free Software Foundation, Inc. ;; Author: Bob Glickstein <bobg+sregex@zanshin.com> ;; Maintainer: Bob Glickstein <bobg+sregex@zanshin.com> diff --git a/lisp/obsolete/swedish.el b/lisp/obsolete/swedish.el index c31af8697ef..96f9b6110bd 100644 --- a/lisp/obsolete/swedish.el +++ b/lisp/obsolete/swedish.el @@ -1,6 +1,6 @@ ;;; swedish.el --- miscellaneous functions for dealing with Swedish -;; Copyright (C) 1988, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1988, 2001-2012 Free Software Foundation, Inc. ;; Author: Howard Gayle ;; Maintainer: FSF diff --git a/lisp/obsolete/sym-comp.el b/lisp/obsolete/sym-comp.el index 7e9a460ea14..53fdd3a66e3 100644 --- a/lisp/obsolete/sym-comp.el +++ b/lisp/obsolete/sym-comp.el @@ -1,6 +1,6 @@ ;;; sym-comp.el --- mode-dependent symbol completion -;; Copyright (C) 2004, 2008-2011 Free Software Foundation, Inc. +;; Copyright (C) 2004, 2008-2012 Free Software Foundation, Inc. ;; Author: Dave Love <fx@gnu.org> ;; Keywords: extensions diff --git a/lisp/obsolete/vc-mcvs.el b/lisp/obsolete/vc-mcvs.el index 980cdbfd71b..94db90f1d6a 100644 --- a/lisp/obsolete/vc-mcvs.el +++ b/lisp/obsolete/vc-mcvs.el @@ -1,6 +1,6 @@ ;;; vc-mcvs.el --- VC backend for the Meta-CVS version-control system -;; Copyright (C) 2003-2011 Free Software Foundation, Inc. +;; Copyright (C) 2003-2012 Free Software Foundation, Inc. ;; Author: FSF (see vc.el for full credits) ;; Maintainer: None diff --git a/lisp/org/ChangeLog b/lisp/org/ChangeLog index 6f835c7bfa4..983df8a6bfc 100644 --- a/lisp/org/ChangeLog +++ b/lisp/org/ChangeLog @@ -1,3 +1,2435 @@ +2012-01-05 Eric Schulte <eric.schulte@gmx.com> + + * ob.el (org-babel-expand-noweb-references): Resurrect dropped + pieces of a previous patch. + + * ob-maxima.el (org-babel-execute:maxima): Fix compiler warning. + +2012-01-05 Bastien Guerry <bzg@gnu.org> + + * org-eshell.el (org-eshell-open): Use (goto-char (point-max)) + instead of (end-of-buffer). + + * org-bbdb.el (name): Declare variable. + (bbdb-record-get-field, bbdb-search-name) + (bbdb-search-organization): Declare as part of ext:bbdb. + + * org-agenda.el: Add an alias for `org-agenda-filter'. + (diary-list-entries-hook): Use the non-obsolete hook. + (org-agenda-filter-apply): Silent compiler warnings. + + * org-mobile.el (org-mobile-push): Use `org-agenda-tag-filter' + instead of the obsolete `org-agenda-filter'. + +2012-01-03 Bastien Guerry <bzg@gnu.org> + + * org.el (org-ctrl-c-ctrl-c): Preserve symmetry when adding + and removing checkboxes with `C-u C-c C-c' on the first item + of a list. Also, don't reinitialize checkboxes that are + already ticked. + +2012-01-03 Bastien Guerry <bzg@gnu.org> + + * org.el (org-ts-regexp0, org-ts-regexp1): Also match a time + value with only one digit for the hours. + +2012-01-03 Bastien Guerry <bzg@gnu.org> + + * org-agenda.el (org-batch-agenda, org-batch-agenda-csv): + Remove deleted function `org-encode-for-stdout'. + +2012-01-03 Bastien Guerry <bzg@gnu.org> + + * org.el (org-show-context): Complete docstring. + +2012-01-03 Bastien Guerry <bzg@gnu.org> + + * org-agenda.el (org-agenda-filter-by-tag): Use + `read-char-exclusive' instead of `read-char'. + +2012-01-03 Carsten Dominik <carsten.dominik@gmail.com> (tiny change) + + * org-clock.el (org-clock-in, org-clock-find-position): Remove + erraneous space in regexp. + +2012-01-03 Eric Schulte <eric.schulte@gmx.com> + + * ob.el (org-babel-expand-noweb-references): Rather than using + a pure regexp solution to resolve noweb references, actually + check the information of every code block in the buffer. This + will cause a slowdown in noweb reference expansion, but is + necessary for correct behavior. + +2012-01-03 Bastien Guerry <bzg@gnu.org> + + * org.el (org-map-continue-from): Fix typo in docstring. + +2012-01-03 Bastien Guerry <bzg@gnu.org> + + * org.el (org-property-re): Also match cumulating properties + like ":prop+:". + +2012-01-03 Bastien Guerry <bzg@gnu.org> + + * org-exp-blocks.el (org-export-blocks-preprocess): Fix regexp for + matching the end of a block. + +2012-01-03 David Maus <dmaus@ictsoc.de> + + * org.el (org-open-at-point): Escape link path for http:, + https:, ftp:, news:, and doi: links only if the path contains + space or non-ascii character. + +2012-01-03 David Maus <dmaus@ictsoc.de> + + * org.el (org-refile-get-targets): Ignore headlines without a + true headline. + +2012-01-03 Eric Schulte <eric.schulte@gmx.com> + + * ob.el (org-babel-map-call-lines): Moved this file from + ob-lob.el into ob.el to ease dependency pains. + +2012-01-03 Bastien Guerry <bzg@gnu.org> + + * org-publish.el (org-publish-index-generate-theindex): Use + theindex.inc for storing index entries, and theindex.org for + including theindex.inc. + +2012-01-03 Bastien Guerry <bzg@gnu.org> + + * org-publish.el (org-publish-index-generate-theindex): Create + proper file target for index entries in subdirectories. + +2012-01-03 Bastien Guerry <bzg@gnu.org> + + * org-protocol.el (org-protocol-check-filename-for-protocol): + Fix spelling mistake. + +2012-01-03 Jambunathan K <kjambunathan@gmail.com> + + * org-odt.el (org-export-odt-default-org-styles-alist): Add styles + for title and subtitle. + (org-odt-format-toc): New. + (org-odt-format-preamble): New. Users can redefine this to + customize what goes before the document body. Currently it + outputs title, author and email, date and toc. + (org-odt-begin-document-body): Use `org-odt-format-preamble'. + (org-odt-format-date): Renamed from + `org-odt-iso-date-from-org-timestamp'. Also added an + additional param for format string. + (org-odt-begin-annotation, org-odt-update-meta-file): Use + `org-odt-format-date'. + +2012-01-03 Bastien Guerry <bzg@gnu.org> + + * org.el (org-at-drawer-p): New function. + (org-end-of-line): Use it. + +2012-01-03 Eric Schulte <eric.schulte@gmx.com> + + * ob.el (*org-babel-use-quick-and-dirty-noweb-expansion*): + Controls the method in which noweb references are expanded. + (org-babel-expand-noweb-references): Bring back the option for + regexp-based noweb expansion. + +2012-01-03 Bastien Guerry <bzg@gnu.org> + + * org.el (org-ts-regexp0, org-ts-regexp1): Also match a time value + with only one digit for the hours. + +2012-01-03 Bastien Guerry <bzg@gnu.org> + + * org.el (org-ctrl-c-ctrl-c): Don't make `C-c C-c' special + when ticking the checkbox of the first item. + +2012-01-03 Nicolas Goaziou <n.goaziou@gmail.com> + + * org-list.el (org-list-write-struct): Add an optional + argument for structure changes happening outside the function. + + * org.el (org-ctrl-c-ctrl-c): Now, `C-u C-c C-c' on the first + item of a sub-list should toggle check-box presence of every + item in the same sub-list. Also fix check-box insertion on a + single item. + +2012-01-03 Bastien Guerry <bzg@gnu.org> + + * org-agenda.el (org-agenda-filter-preset): New alias. + (org-agenda-filter-by-category): New command. + (org-agenda-mode-map): Add the new command. + (org-agenda-custom-commands-local-options): Add category + filter preset. + (org-agenda-mark-filtered-text): Mark both tag and filter + overlays. + (org-agenda-category-filter-preset): New variable. + (org-finalize-agenda, org-agenda-redo) + (org-agenda-filter-make-matcher, org-agenda-filter-apply): Handle + both category and tag filters. + (org-agenda-filter-show-all-tag): Rename from + `org-agenda-filter-by-tag-show-all'. + (org-agenda-filter-show-all-cat): New function. + (org-agenda-set-mode-name): Show the category filter in the + modeline. + +2012-01-03 Carsten Dominik <carsten.dominik@gmail.com> + + * org-bbdb.el (org-bbdb-old): New variable. + (org-bbdb-store-link, org-bbdb-open): Check for + `org-bbdb-old'. + (org-bbdb-open-old, org-bbdb-open-new): New functions. + +2012-01-03 Bastien Guerry <bzg@gnu.org> + + * org-agenda.el (org-batch-agenda, org-batch-agenda-csv): + Remove deleted function `org-encode-for-stdout'. + +2012-01-03 Bastien Guerry <bzg@gnu.org> + + * org.el (org-check-dates-range): New command. + (org-sparse-tree): Use it. + +2012-01-03 Bastien Guerry <bzg@gnu.org> + + * org-agenda.el (org-agenda-write): Rename from + `org-write-agenda'. + (org-agenda-mode-map, org-agenda-menu) + (org-batch-store-agenda-views): Use new name + `org-agenda-write'. + +2012-01-03 Bastien Guerry <bzg@gnu.org> + + * org.el (org-loop-over-headlines-in-active-region): Fix + docstring. + (org-todo, org-deadline, org-schedule): Honor the 'start-level + value of `org-loop-over-headlines-in-active-region'. + +2012-01-03 Bastien Guerry <bzg@gnu.org> + + * org-archive.el (org-archive-subtree) + (org-archive-to-archive-sibling, org-toggle-archive-tag): + Bugfix: use 'region-start-level. + +2012-01-03 Bastien Guerry <bzg@gnu.org> + + * org.el (org-show-context): Complete docstring. + +2012-01-03 Bastien Guerry <bzg@gnu.org> + + * org-agenda.el (org-agenda-filter-by-tag): Use + `read-char-exclusive' instead of `read-char'. + +2012-01-03 Carsten Dominik <carsten.dominik@gmail.com> + + * org.el (org-scan-tags): Make sure `org-map-continue-from' is + nil at each match. + +2012-01-03 Carsten Dominik <carsten.dominik@gmail.com> (tiny change) + + * org-clock.el (org-clock-in, org-clock-find-position): Remove + erraneous space in regexp. + +2012-01-03 Jambunathan K <kjambunathan@gmail.com> + + * org-odt.el (org-odt-lib-dir): Add docstring. + (org-odt-data-dir): New variable. Use this variable to + control the locations from which the ODT exporter picks the + OpenDocument styles and schema files from. Set this variable + explicitly only if the in-built heuristics for locating the + above files fails. + (org-odt-styles-dir-list, org-odt-schema-dir-list): New + variables. Pay specific attention to (eval-when-compile ...) + form through which Makefile's $(datadir) - contained in + `org-odt-data-dir' - gets compiled in as a "hard coded" + constant. + (org-odt-styles-dir, org-export-odt-schema-dir): Add messages to + aid debugging. + +2012-01-03 Bastien Guerry <bzg@gnu.org> + + * org-archive.el (org-archive-subtree) + (org-archive-to-archive-sibling, org-toggle-archive-tag) + (org-archive-set-tag): Handle the 'start-level value for + `org-loop-over-headlines-in-active-region'. + +2012-01-03 Bastien Guerry <bzg@gnu.org> + + * org.el (org-scan-tags): New parameter `start-level' to scan only + through headlines of that level. + (org-map-entries): New allowed value `region-start-level' for + the `scope' parameter, to allow scanning through headlines of + the same level than the first headline in the region. + (org-loop-over-headlines-in-active-region): New allowed value + 'start-level. + +2012-01-03 Bastien Guerry <bzg@gnu.org> + + * org-archive.el (org-archive-subtree) + (org-archive-to-archive-sibling, org-archive-set-tag) + (org-toggle-archive-tag): Allow to loop over the active region by + using `org-loop-over-headlines-in-active-region'. + +2012-01-03 Bastien Guerry <bzg@gnu.org> + + * org.el (org-todo): Allow to loop over the active region by + using `org-loop-over-headlines-in-active-region'. + +2012-01-03 Eric Schulte <eric.schulte@gmx.com> + + * ob.el (org-babel-expand-noweb-references): Rather than using + a pure regexp solution to resolve noweb references, actually + check the information of every code block in the buffer. This + will cause a slowdown in noweb reference expansion, but is + necessary for correct behavior. + +2012-01-03 Bastien Guerry <bzg@gnu.org> + + * org.el (org-map-continue-from): Fix typo in docstring. + +2012-01-03 Bastien Guerry <bzg@gnu.org> + + * org-agenda.el (org-agenda-write-buffer-name): New variable. + (org-write-agenda): Use it. + +2012-01-03 Bastien Guerry <bzg@gnu.org> + + * org-exp.el (org-export-date-timestamp-format): New option to + define the way a timestamp in #+DATE will be exported. + (org-infile-export-plist): Use the new option. + +2012-01-03 Bastien Guerry <bzg@gnu.org> + + * org-drill.el (org-drill-leech-method, org-drill-scope) + (org-drill-spaced-repetition-algorithm): Fix wrong :type spec. + +2012-01-03 Bastien Guerry <bzg@gnu.org> + + * org.el (org-property-re): Also match cumulating properties + like ":prop+:". + +2012-01-03 Jambunathan K <kjambunathan@gmail.com> + + * org-odt.el (org-odt-styles-dir): Assume that the styles + files are located under `data-directory' of Emacs distribution + as etc/org/OrgOdtStyles.xml and + etc/org/OrgOdtContentTemplate.xml. Also update docstring. + (org-export-odt-schema-dir): Update docstring. + +2012-01-03 Jambunathan K <kjambunathan@gmail.com> + + * org-odt.el (org-odt-format-preamble): Honor following user + options: author, timestamp and email. + +2012-01-03 Bastien Guerry <bzg@gnu.org> + + * org-exp-blocks.el (org-export-blocks-preprocess): Fix regexp + for matching the end of a block. + +2012-01-03 Bastien Guerry <bzg@gnu.org> + + * org-eshell.el: New file. + +2012-01-03 David Maus <dmaus@ictsoc.de> + + * org.el (org-open-at-point): Escape link path for http:, + https:, ftp:, news:, and doi: links only if the path contains + space or non-ascii character. + +2012-01-03 Bastien Guerry <bzg@gnu.org> + + * org-beamer.el (org-beamer-fragile-re): Also recognize + \lstinline and \verb as commands that make a frame fragile. + +2012-01-03 David Maus <dmaus@ictsoc.de> + + * org.el (org-refile-get-targets): Ignore headlines without a + true headline. + +2012-01-03 Litvinov Sergey <slitvinov@gmail.com> + + * ob-octave.el: add graphical output to png file + +2012-01-03 Eric Schulte <eric.schulte@gmx.com> + + * ob.el (org-babel-map-call-lines): Moved this file from + ob-lob.el into ob.el to ease dependency pains. + +2012-01-03 Bastien Guerry <bzg@gnu.org> + + * org-publish.el (org-publish-index-generate-theindex): Use + theindex.inc for storing index entries, and theindex.org for + including theindex.inc. + +2012-01-03 Bastien Guerry <bzg@gnu.org> + + * org-publish.el (org-publish-index-generate-theindex): Create + proper file target for index entries in subdirectories. + +2012-01-03 Bastien Guerry <bzg@gnu.org> + + * org-protocol.el (org-protocol-check-filename-for-protocol): + Fix spelling mistake. + +2012-01-03 Jambunathan K <kjambunathan@gmail.com> + + * org-odt.el (org-export-odt-default-org-styles-alist): Add + styles for title and subtitle. + (org-odt-format-toc): New. + (org-odt-format-preamble): New. Users can redefine this to + customize what goes before the document body. Currently it + outputs title, author and email, date and toc. + (org-odt-begin-document-body): Use `org-odt-format-preamble'. + (org-odt-format-date): Renamed from + `org-odt-iso-date-from-org-timestamp'. Also added an + additional param for format string. + (org-odt-begin-annotation, org-odt-update-meta-file): Use + `org-odt-format-date'. + +2012-01-03 Eric Schulte <eric.schulte@gmx.com> + + * ob-ref.el (org-babel-ref-split-args): Now uses + `org-babel-balanced-split'. + +2012-01-03 Bastien Guerry <bzg@gnu.org> + + * org-html.el (org-export-html-preamble) + (org-export-html-postamble): Fix docstrings. + (org-export-as-html): Insert the string used by a custom + function for `org-export-html-pre/postamble'. + +2012-01-03 Bastien Guerry <bzg@gnu.org> + + * org.el (org-block-regexp) + (org-heading-keyword-regexp-format) + (org-heading-keyword-maybe-regexp-format): Move up to keep the + byte-compiler happy. + +2012-01-03 Dave Abrahams <dave@boostpro.com> (tiny change) + + * org-agenda.el (org-agenda-do-tree-to-indirect-buffer): New + function. + (org-agenda-tree-to-indirect-buffer): Use the new function. + +2012-01-03 Bastien Guerry <bzg@gnu.org> + + * org-html.el (org-export-as-html): Fix bug when inserting the + output of a custom function for the pre/postamble. + +2012-01-03 Jambunathan K <kjambunathan@gmail.com> + + * org-odt.el (org-odt-format-source-code-or-example): Try + loading htmlfontify safely. + +2012-01-03 Bastien Guerry <bzg@gnu.org> + + * org-odt.el (require): Require htmlfontify.el only if + emacs-version is greater than 23.2. + +2012-01-03 Bastien Guerry <bzg@gnu.org> + + * org-faces.el (org-agenda-calendar-event) + (org-agenda-calendar-sexp): Use the default face. + +2012-01-03 Eric Schulte <eric.schulte@gmx.com> + + * ob.el (org-babel-expand-noweb-references): Fixed regexp. + +2012-01-03 Michael Brand <michael.ch.brand@gmail.com> + + * org.el Key bindings: remap the Outline functions from + `outline-mode-prefix-map' where possible. + +2012-01-03 Christian Moe <mail@christianmoe.com> (tiny change) + + * org-html.el (org-export-as-html): Apply + `org-export-html-get-todo-kwd-class-name' to the class + attribute of the todo-keyword span tag, not to its text + content. + +2012-01-03 Sebastien Vauban <sva@mygooglest.com> + + * org-agenda.el (org-agenda-get-timestamps) + (org-agenda-get-sexps): Use face for highlighting "calendar" + events. + +2012-01-03 Peter Münster <pmlists@free.fr> (tiny change) + + * org.el (org-add-planning-info): Treat absolute time too. + +2012-01-03 Bastien Guerry <bzg@gnu.org> + + * org-table.el (org-table-transpose-table-at-point): Don't use + Ì€remove-if-not'. + +2012-01-03 Dave Abrahams <dave@boostpro.com> (tiny change) + + * org-clock.el (org-clock-out-if-current): Check the clock + buffer is existing. + +2012-01-03 Bernt Hansen <bernt@norang.ca> + + * org-clock.el (org-clock-out-if-current): Fix marker in no + buffer error for task state change in an indirect buffer. + +2012-01-03 Michael Brand <michael.ch.brand@gmail.com> + + * org.el (org-offer-links-in-entry): Make list when assigning + a single link. + +2012-01-03 Eric Schulte <eric.schulte@gmx.com> + + * ob.el (org-babel-expand-noweb-references): Rather than + collect the info from *every* block in the current buffer, + simply regexp search for those blocks which appear to match + the continued source name. + +2012-01-03 Eric Schulte <eric.schulte@gmx.com> + + * ob.el (org-babel-insert-result): Do not examplize wrapped + scalar results, simply wrap them. + (org-babel-result-end): Find the end of results wrapped in a + RESULTS drawer. + +2012-01-03 Bastien Guerry <bzg@gnu.org> + + * org.el (org-todo-yesterday): When called from the agenda, + use `org-agenda-todo-yesterday' instead. + +2012-01-03 Bastien Guerry <bzg@gnu.org> + + * org-table.el (org-table-transpose-table-at-point): New command. + +2012-01-03 Bastien Guerry <bzg@gnu.org> + + * org-html.el (org-export-html-headline-anchor-format): New + option. + (org-html-level-start): Use the new option. + +2012-01-03 Rob Giardina <rob@giardina.us> (tiny change) + + * org-agenda.el (org-agenda-with-point-at-orig-entry): Small + bugfix. + +2012-01-03 Christian Moe <mail@christianmoe.com> (tiny change) + + * org-special-blocks.el + (org-special-blocks-convert-html-special-cookies): Close + paragraph before opening or closing the <div>, and open + paragraph after. Also changed newline placement to be the same + as for other blocks. + +2012-01-03 Roberto Huelga <rhuelga@gmail.com> + + * org-clock.el (org-program-exists): Make the function + compatible with darwin systems. + +2012-01-03 David Maus <dmaus@ictsoc.de> + + * org-exp.el (org-export-normalize-links): Mark bracket links + before normalization to avoid erroneous normalization of + bracket link parts. + +2012-01-03 Jambunathan K <kjambunathan@gmail.com> + + * org-odt.el (org-odt-data-dir): Removed. + (org-odt-styles-dir, org-export-odt-schema-dir): New + variables. + + * org-odt.el: New file. + + * org-lparse: New file. + +2012-01-03 Carsten Dominik <carsten.dominik@gmail.com> + + * org-capture.el (org-capture-set-target-location): Set the + capture default time also to the prompt time. + +2012-01-03 Nicolas Goaziou <n.goaziou@gmail.com> + + * org-exp.el (org-export-res/src-name-cleanup): Remove #+name + and #+results lines during preprocess. + +2012-01-03 Eric Schulte <eric.schulte@gmx.com> + + * ob-picolisp.el (ob-comint): Required. + (comint): Required. + (cl): Required. + (run-picolisp): Declared. + (org-babel-execute:picolisp): Capture free variable, and replace + function from cl-extra with core function. + +2012-01-03 Eric Schulte <eric.schulte@gmx.com> + + * ob-picolisp.el: New file. + + * org.el (org-babel-load-languages): Add Pico Lisp to the list + of supported code block languages. + +2012-01-03 Eric Schulte <eric.schulte@gmx.com> + + * org-bibtex.el (org-bibtex): Now catches bibtex errors and + directs the user to the location of the error. + +2012-01-03 Bastien Guerry <bzg@gnu.org> + + * org-agenda.el (org-agenda-dim-blocked-tasks): Fix typo. + +2012-01-03 Bastien Guerry <bzg@gnu.org> + + * ob.el (org-babel-execute-src-block): Fix typo. + +2012-01-03 Bastien Guerry <bzg@gnu.org> + + * org-freemind.el (org-freemind-write-mm-buffer): Fix typo. + +2012-01-03 Bastien Guerry <bzg@gnu.org> + + * org.el (org-link-unescape, org-link-unescape-compound): Fix + two typos in docstrings. + +2012-01-03 Thomas Dye <dk@poto.local> + + * ob-R.el: Added tikzDevice support. + +2012-01-03 David Maus <dmaus@ictsoc.de> + + * org.el (org-clone-subtree-with-time-shift): Remove clocking + information and empty drawers when preparing a clone. + +2012-01-03 Eric Schulte <schulte.eric@gmail.com> + + * ob-exp.el: Don't add `org-exp-res/src-name-cleanup' to + `org-export-blocks-postblock-hook'. + +2012-01-03 Eric Schulte <schulte.eric@gmail.com> + + * ob.el (org-babel-hide-result-toggle): Skip over header + argument lines when toggling named code block visibility. + +2012-01-03 Eric Schulte <schulte.eric@gmail.com> + + * org-exp.el (org-export-grab-title-from-buffer): Don't + license to kill text inside blocks when getting a title. + +2012-01-03 Eric Schulte <schulte.eric@gmail.com> + + * ob.el (org-babel-confirm-evaluate): Adding support for new + range of :eval header arguments. + +2012-01-03 Eric Schulte <schulte.eric@gmail.com> + + * ob.el (org-babel-confirm-evaluate): Inhibit evaluation + during export when eval is set to "non-export". + +2012-01-03 Eric Schulte <schulte.eric@gmail.com> + + * ob-ref.el (org-babel-update-intermediate): New custom + variable. + (org-babel-ref-resolve): Optionally update the in-buffer results + of code blocks which are evaluated to resolve references. + +2012-01-03 Eric Schulte <schulte.eric@gmail.com> + + * ob.el (org-babel-join-splits-near-ch): Rejoins a list of a + split string when a character appears on either side of the + split. + (org-babel-parse-multiple-vars): Rejoin splits around "=" signs. + +2012-01-03 Eric Schulte <schulte.eric@gmail.com> + + * org.el (org-reduce): Added a less functional Org-mode copy of + the cl reduce function. + +2012-01-03 Nicolas Goaziou <n.goaziou@gmail.com> + + * org.el (org-fontify-meta-lines-and-blocks-1): Recognize + "name" as a valid keyword that can preceed a block. + +2012-01-03 Eric Schulte <schulte.eric@gmail.com> + + * ob-exp.el (org-babel-exp-lob-one-liners): Don't limit + in-verbatim check to inline code blocks, do lob code blocks as + well. + +2012-01-03 Carsten Dominik <carsten.dominik@gmail.com> + + * org.el (org-todo): Interpret 0 prefix arg as note inhibitor. + +2012-01-03 Eric Schulte <schulte.eric@gmail.com> + + * ob.el (org-babel-named-src-block-regexp-for-name): Ensure + that partial names are not matched. + (org-babel-named-data-regexp-for-name): Ensure that partial names + are not matched. + +2012-01-03 Eric Schulte <schulte.eric@gmail.com> + + * ob-ref.el (org-babel-ref-resolve): Search for named code + blocks before named data. + + * ob.el (org-babel-named-data-regexp-for-name): New function for + finding named data. + +2012-01-03 Eric Schulte <schulte.eric@gmail.com> + + * ob.el (org-babel-insert-result): Gracefully handle results + which are neither lists nor strings. + +2012-01-03 Eric Schulte <schulte.eric@gmail.com> + + * ob-ref.el (org-babel-ref-resolve): Don't change location when + looking at the contents. + +2012-01-03 Milan Zamazal <pdm@zamazal.org> + + * org.el (org-set-outline-overlay-data): Use + outline-flag-region to make a region invisible. This ensures + all necessary actions, especially adding + isearch-open-invisible property, are applied. + +2012-01-03 Eric Schulte <schulte.eric@gmail.com> + + * ob-lob.el (org-babel-in-example-or-verbatim): Fix + compilation warning. + +2012-01-03 Eric Schulte <schulte.eric@gmail.com> + + * ob.el (org-babel-find-named-result): Downcase "name" before + comparison. + +2012-01-03 Eric Schulte <schulte.eric@gmail.com> + + * ob-lisp.el (org-babel-execute:lisp): Fixed typo. + (org-babel-lisp-vector-to-list): Fixed typo. + +2012-01-03 Eric Schulte <schulte.eric@gmail.com> + + * ob-exp.el (org-babel-in-example-or-verbatim): Some valid + execution contexts (e.g., call lines) look like commented + lines. + + * ob.el (org-babel-get-src-block-info): Empty match string doesn't + count. + (org-babel-process-params): Always process parameters, even if + you don't to table splitting. + +2012-01-03 Eric Schulte <schulte.eric@gmail.com> + + * ob-exp.el (org-exp-res/src-name-cleanup): Updated Documentation. + + * ob-lob.el (org-babel-block-lob-one-liner-regexp): Updated + regular expression. + (org-babel-inline-lob-one-liner-regexp): Updated regular + expression. + + * ob-ref.el (org-babel-ref-resolve): Notice when something that + looks like a data results may actually be a code block. + + * ob-table.el: Updated documentation. + + * ob.el (org-babel-src-name-regexp): Simplified regexp. + (org-babel-get-src-block-info): Updated match strings. + (org-babel-data-names): Simplified acceptable names. + (org-babel-find-named-block): Indentation. + (org-babel-find-named-result): Updated to not return a code block + as a result. + + * org.el (org-fontify-meta-lines-and-blocks-1): Removing + references to old syntactic elements. + (org-additional-option-like-keywords): Removing references to + old syntactic elements. + +2012-01-03 Carsten Dominik <carsten.dominik@gmail.com> + + * org-agenda.el (org-agenda-get-todos): Swap calls to `org-trim' + and `buffer-substring'. + +2012-01-03 Nicolas Goaziou <n.goaziou@gmail.com> + + * org-agenda.el (org-agenda-get-todos): Prevent an error when + encountering tasks with only the TODO keyword. + +2012-01-03 Nicolas Goaziou <n.goaziou@gmail.com> + + * org.el (org-try-cdlatex-tab): Don't try to expand a LaTeX + environment when at an item or an headline, but allow LaTeX + fragments. + (org-cycle): Try to call `cdlatex-tab' before cycling item's or + headline's visibility, in order to catch LaTeX fragments within. + +2012-01-03 Eric Schulte <schulte.eric@gmail.com> + + * org-exp-blocks.el (org-export-blocks-preprocess): Require a + newline and spaces before a code block. + +2012-01-03 Eric Schulte <schulte.eric@gmail.com> + + * ob-lob.el (org-babel-map-call-lines): Allow mapping of code + over all call lines in a buffer. + + * ob.el (org-babel-execute-buffer): Execute call lines when + executing an entire buffer. + +2012-01-03 Eric Schulte <schulte.eric@gmail.com> + + * ob.el (org-babel-process-params): Don't disassemble tables + twice. + +2012-01-03 Carsten Dominik <carsten.dominik@gmail.com> + + * org-clock.el (org-clock-in, org-clock-find-position): Make space + after date optional. + + * org.el (org-set-regexps-and-options) + (org-ts-regexp, org-ts-regexp-both, org-ts-regexp1) + (org-ctrl-c-ctrl-c): Make `C-c C-c' on date fix the time stamp. + +2012-01-03 Eric Schulte <schulte.eric@gmail.com> + + * ob-lob.el (org-babel-lob-execute-maybe): Don't execute a call + inside a verbatim block. + + * ob-exp.el (org-babel-in-example-or-verbatim): Check for example + blocks. + +2012-01-03 Litvinov Sergey <slitvinov@gmail.com> + + * ob-maxima.el (org-babel-tangle-lang-exts): Maxima extension. + (org-babel-maxima-expand): Add input variables and graphic output. + (org-babel-execute:maxima): Add input variables and graphic output. + (org-babel-maxima-var-to-maxima): Add input variables and graphic + output. + (org-babel-maxima-graphical-output-file): Add input variables and + graphic output. + (org-babel-maxima-elisp-to-maxima): Add input variables and graphic + output. + +2012-01-03 Eric Schulte <schulte.eric@gmail.com> + + * ob-fortran.el: New file. Adding support for Fortran code blocks. + * org.el (org-babel-load-languages): Adding fortran to this list. + +2012-01-03 Nicolas Goaziou <n.goaziou@gmail.com> + + * org-footnote.el (org-footnote-new): Cannot insert an inline + footnote at beginning of line anymore. + (org-footnote-at-reference-p): Don't recognize inline footnotes at + beginning of line. + +2012-01-03 Nicolas Goaziou <n.goaziou@gmail.com> + + * org.el (org-set-font-lock-defaults): Fix small error in matching + group that prevented fontification of keywords like + org-comment-string and stars in headlines. + +2012-01-03 Carsten Dominik <carsten.dominik@gmail.com> + + * org.el (org-catch-invisible-edits): New option. + (org-self-insert-command, org-delete-backward-char) + (org-delete-char): Call `org-check-before-invisible-edit'. + (org-check-before-invisible-edit): New function. + +2012-01-03 Suvayu Ali <fatkasuvayu+linux@gmail.com> + + * org-exp.el (org-solidify-link-text): Respect + org-export-with-tags when forming the export title during subtree + export. + +2012-01-03 Nicolas Goaziou <n.goaziou@gmail.com> + + * org.el (org-heading-regexp, org-heading-keyword-regexp-format) + (org-heading-keyword-maybe-regexp-format): Globalize variables so + they are accessible even in buffers not in Org mode. + +2012-01-03 David Maus <dmaus@ictsoc.de> + + * org.el (org-insert-link): Don't use default-description if a + `org-make-link-description-function' is defined. + +2012-01-03 Eric Schulte <schulte.eric@gmail.com> + + * org.el (org-set-regexps-and-options): Use property blocks for + multi-line properties. + +2012-01-03 Bastien Guerry <bzg@gnu.org> + + * org.el (org-self-insert-command): Don't throw an error when + editing takes place at the first point of the buffer. + +2012-01-03 Bastien Guerry <bzg@gnu.org> + + * org.el (org-self-insert-command): Unfold invisible region at + point or right before point when editing. + +2012-01-03 Bastien Guerry <bzg@gnu.org> + + * org-faces.el (org-agenda-filter-tags): Use the 'modeline face as + default. + +2012-01-03 Bastien Guerry <bzg@gnu.org> + + * org-html.el (org-html-expand): Prevent a nil value for STRING to + return an error, just return nil. + +2012-01-03 Bastien Guerry <bzg@gnu.org> + + * org-latex.el (org-export-latex-set-initial-vars): Allow "/" + character in the #+LaTeX_CLASS option. + +2012-01-03 Nicolas Goaziou <n.goaziou@gmail.com> + + * org-footnote.el (org-footnote-at-reference-p) + (org-footnote-at-definition-p): Don't store text-properties of + footnote definitions. + +2012-01-03 Bastien Guerry <bzg@gnu.org> + + * org-html.el (org-export-as-html): Convert special characters in + meta tag "author", "date", "keyword" and "description". + +2012-01-03 Bastien Guerry <bzg@gnu.org> + + * org-capture.el (org-capture-before-finalize-hook): Docstring + improvement: mention that the buffer is widened when this hook is + run. + +2012-01-03 Sebastien Vauban <sva@mygooglest.com> + + * org-html.el (org-export-as-html): Make sure the div for preamble + is not inserted when the preamble is empty. + +2012-01-03 Sebastien Vauban <sva@mygooglest.com> + + * org-agenda.el (org-agenda-set-mode-name): Highlight tags used + for filtering (shown in the mode-line). + +2012-01-03 Eric Schulte <schulte.eric@gmail.com> + + * ob.el (org-babel-parse-multiple-vars): Trimming excess white + space from split variables. + +2012-01-03 Nicolas Goaziou <n.goaziou@gmail.com> + + * org.el (org-link-search): Add an optional argument preventing + function from revealing context around match. + +2012-01-03 Bastien Guerry <bzg@gnu.org> + + * org-agenda.el (calendar-check-holidays): Declare function. + +2012-01-03 Bastien Guerry <bzg@gnu.org> + + * org.el (org-return): Fix bug when matching the face property + before following a link. + +2012-01-03 Matt Lundin <mdl@imapmail.org> + + * org-agenda.el: (org-class): Fix holidays symbol in + org-class. This was resulting in an "Bad sexp..." warning. + +2012-01-03 Carsten Dominik <carsten.dominik@gmail.com> + + * org.el (org-scan-tags): Also remember + `org-complex-heading-regexp' in a property. + +2012-01-03 Carsten Dominik <carsten.dominik@gmail.com> + + * org-latex.el (org-export-as-latex): Turn off auto-insert and set + TeX-master to t when creating new TeX buffers. + + * org-docbook.el (org-export-as-docbook): Turn off auto-insert + when creating new buffers. + + * org-html.el (org-export-as-html): Turn off auto-insert + when creating new buffers. + +2012-01-03 Carsten Dominik <carsten.dominik@gmail.com> + + * org-table.el (org-table-formula-handle-first/last-rc): Do not + expand pointers to first/last row/column that are inside a call to + `remote'. + (org-table-get-remote-range): Expand pointers to first/last + row/column. + +2012-01-03 Michael Sperber <sperber@deinprogramm.de> (tiny change) + + * org-capture.el (org-capture-get-indirect-buffer): Fix XEmacs + compatibility issue when creating an indirect buffer. + +2012-01-03 Christophe Rhodes <csr21@cantab.net> + + * org-exp.el (org-infile-export-plist): Handle LATEX_CLASS_OPTIONS + the same way than LATEX_CLASS. + +2012-01-03 Bastien Guerry <bzg@gnu.org> + + * org.el (org-return): Check the presence of the 'org-link face + even in contexts where there is more than one face. + +2012-01-03 Eric Schulte <schulte.eric@gmail.com> + + * ob-sql.el (org-babel-header-arg-names:sql): Sql specific header + argument names which should be inherited. + +2012-01-03 Nicolas Goaziou <n.goaziou@gmail.com> + + * org.el (org-in-block-p): Return matched name of block, if + any. It can be useful when a list of block names is provided as + an argument. + +2012-01-03 Nicolas Goaziou <n.goaziou@gmail.com> + + * org-docbook.el (org-export-as-docbook): Fix regexp. + + * org-html.el (org-export-as-html): Fix regexp. + +2012-01-03 Carsten Dominik <carsten.dominik@gmail.com> + + * org-agenda.el (org-class): Allow holidays to be skipped. + +2012-01-03 Eric Schulte <schulte.eric@gmail.com> + + * ob-shen.el (org-babel-execute:shen): Fix two compilation errors. + +2012-01-03 Peter Münster <pmrb@free.fr> (tiny change) + + * org-agenda.el (org-agenda-to-appt): Make sure filter-items are + strings before calling `string-match'. + +2012-01-03 Nicolas Goaziou <n.goaziou@gmail.com> + + * org-footnote.el (org-footnote-at-reference-p) + (org-footnote-at-definition-p): Remove text-properties from label. + +2012-01-03 Bastien Guerry <bzg@gnu.org> + + * org-html.el (org-export-as-html): Add a "title" meta tag. + +2012-01-03 Bastien Guerry <bzg@gnu.org> + + * org-agenda.el (org-agenda-to-appt): Allow to refine the scope of + entries to pass to `org-agenda-get-day-entries' and allow to + filter out entries using a function. + +2012-01-03 Nicolas Goaziou <n.goaziou@gmail.com> + + * org-agenda.el: Fix small display bug. + +2012-01-03 Nicolas Goaziou <n.goaziou@gmail.com> + + * org.el (org-set-regexps-and-options): Fix small bug introduced + by commit dfcb6faef11a2439b56b18a6289803361d402130. + +2012-01-03 Nicolas Goaziou <n.goaziou@gmail.com> + + * org-agenda.el (org-search-view): Simplify regexp. + (org-agenda-get-todos): Use new format string. + + * org-archive.el (org-archive-all-done): Simplify regexp. + + * org-ascii.el (org-export-as-ascii): More accurate regexp. + + * org-colview.el (org-columns-capture-view): Use new format string + and new string. + + * org-docbook.el (org-export-as-docbook): More accurate + regexp. Also use new regexp to match generic headlines. + + * org-exp.el (org-export-protect-quoted-subtrees): More accurate + regexp. Also use new regexp to match generic headlines. + + * org-html.el (org-export-as-html): More accurate regexp. Also + use new regexp to match generic headlines. + + * org-mouse.el (org-mouse-match-todo-keyword): Removed unused + and now erroneous function. + + * org.el (org-heading-regexp, org-heading-keyword-regexp-format): + New variables. + (org-set-regexps-and-options): Create regexps according to the + following rule: use spaces only to separate elements from an headline, + while allowing mixed tabs and spaces for any indentation job. + (org-nl-done-regexp, org-looking-at-done-regexp): Removed variables. + (org-set-font-lock-defaults): Fontify again headlines with a keyword + and no other text. Use new format strings. + (org-get-heading, org-toggle-comment, org-prepare-agenda-buffers) + (org-toggle-fixed-width-section): Use new format string. + (org-todo): More accurate regexps. + (org-point-at-end-of-empty-headline): Simplify regexp. + (org-insert-heading): Headline can sometimes be nil. + +2012-01-03 David Maus <dmaus@ictsoc.de> + + * org-agenda.el (org-agenda-bulk-action): Bind + `org-loop-over-headlines-in-active-region' to nil to avoid conflict + with bulk command. + +2012-01-03 David Maus <dmaus@ictsoc.de> + + * org.el (org-deadline, org-schedule): Skip invisible headlines when + mapping over headlines in active region. + +2012-01-03 David Maus <dmaus@ictsoc.de> + + * org.el (org-loop-over-headlines-in-active-region): New + customization variable. Loop over headlines in active region. + (org-schedule, org-deadline): Apply to headlines in region depending + on new customization variable. + +2012-01-03 David Maus <dmaus@ictsoc.de> + + * org.el (org-map-entries): Immediately return if scope is 'region + but no region is active. + +2012-01-03 David Maus <dmaus@ictsoc.de> + + * org.el (org-map-entries): Extend scope 'region to include entire + body of last headline in active region. + +2012-01-03 Bastien Guerry <bzg@gnu.org> + + * org-src.el (org-edit-src-code): Fix typo-bug. + +2012-01-03 Bastien Guerry <bzg@gnu.org> + + * org.el (org-format-agenda-item, org-scan-tags): Rename + `org-format-agenda-item' to `org-agenda-format-item'. + +2012-01-03 Bastien Guerry <bzg@gnu.org> + + * org-agenda.el: Replace `category-pos' by `org-category-pos' to + silent byte-compiler. + +2012-01-03 Bastien Guerry <bzg@gnu.org> + + * org.el: Declare external function `cdlatex-compute-tables'. + +2012-01-03 Bastien Guerry <bzg@gnu.org> + + * org-latex.el (org-export-latex-set-initial-vars): Fix problem + when matching #+LaTeX_CLASS. + +2012-01-03 Rafael Laboissiere <rafael@laboissiere.net> (tiny change) + + * org.el (org-link-search-must-match-exact-headline): Fix typos. + +2012-01-03 Bastien Guerry <bzg@gnu.org> + + * org-latex.el (org-export-latex-make-header): Add some hyperref + options. + +2012-01-03 Kai Tetzlaff <kai.tetzlaff@web.de> (tiny change) + + * org-publish.el (org-publish-file): Added 'eval'ing the value of + the :publishing-directory property before using it as destination + of the publishing project. This allows to construct the publish + destination directory dynamically at run-time using the return + value of a function. + +2012-01-03 Bastien Guerry <bzg@gnu.org> + + * org-agenda.el (org-agenda-list-stuck-projects): Fix tiny bug. + +2012-01-03 Carsten Dominik <carsten.dominik@gmail.com> + + * org-agenda.el (org-agenda-move-date-from-past-immediately-to-today): + New option. + (org-agenda-date-later): Improve the logical structure. + +2012-01-03 Carsten Dominik <carsten.dominik@gmail.com> + + * ob-calc.el (featurep): Require calc-store. + + * org-agenda.el (org-agenda-list-stuck-projects): Fix regexp + special handling. + + * org-compat.el (fboundp): Support for XEmacs. + + * org-exp.el (org-export): Protect XEmacs from `(redisplay)' call. + + * org-footnote.el (org-footnote-re): Optimize macro processing. + + * org.el (org-set-autofill-regexps): Xemacs compatibility. + +2012-01-03 Eric Schulte <schulte.eric@gmail.com> + + * ob.el (org-babel-balanced-split): Balance both [] and () + groupings. + (org-babel-parse-header-arguments): Be sure to replace removed ":" + characters. + +2012-01-03 Eric Schulte <schulte.eric@gmail.com> + + * ob.el (org-babel-parse-header-arguments): Quick fix for a + tiny bug. + +2012-01-03 Eric Schulte <schulte.eric@gmail.com> + + * ob.el (org-babel-params-from-properties): Now splits + multiple var arguments behind a single ":var". + (org-babel-balanced-split): Separated balanced splitting of + strings out into a new function. + (org-babel-parse-multiple-vars): Splits multiple var arguments + behind a single ":var". + +2012-01-03 Bastien Guerry <bzg@gnu.org> + + * org.el: Remap `outline-promote' and `outline-demote' keys to + `org-promote-subtree' and `org-demote-subtree'. + +2012-01-03 Leo <sdl.web@gmail.com> + + * org-agenda.el (org-agenda-do-context-action): Check if marker is + valid before use. + +2012-01-03 Carsten Dominik <carsten.dominik@gmail.com> (tiny change) + + * org-agenda.el (org-agenda-date-later): Fix shifting of date + ranges. + +2012-01-03 Eric Schulte <schulte.eric@gmail.com> + + * ob.el: Removing `org-babel-params-from-buffer' and + #+PROPERTIES: entirely. + + * ob-exp.el (org-babel-exp-src-block): Removing + `org-babel-params-from-buffer' and #+PROPERTIES: entirely. + + * ob-lob.el (org-babel-lob-execute): Removing + `org-babel-params-from-buffer' and #+PROPERTIES: entirely. + +2012-01-03 Eric Schulte <schulte.eric@gmail.com> + + * ob.el (org-babel-params-from-buffer): Removing #+BABEL: + lines in favor of general #+PROPERTIES: lines. + +2012-01-03 Eric Schulte <schulte.eric@gmail.com> + + * ob-sql.el (org-babel-execute:sql): Insert into a temporary + buffer. + +2012-01-03 Carsten Dominik <carsten.dominik@gmail.com> + + * org.el (org-cdlatex-mode): Run `cdlatex-mode-hook' and + update the internal cdlatex tables. + +2012-01-03 Eric Schulte <schulte.eric@gmail.com> + + * ob-sql.el (org-babel-execute:sql): Respect literal-results + options. + +2012-01-03 Eric Schulte <schulte.eric@gmail.com> + + * ob.el (org-babel-disassemble-tables): Fix multi-table bug in + code block colname and rowname handling. + +2012-01-03 Carsten Dominik <carsten.dominik@gmail.com> + + * org-publish.el (org-publish-cache-file-needs-publishing): + Fix regexp to not inlcude newlines. + +2012-01-03 Carsten Dominik <carsten.dominik@gmail.com> + + * org.el (org-ctrl-c-ctrl-c): Remove table overlays before + restart. + +2012-01-03 Carsten Dominik <carsten.dominik@gmail.com> + + * org.el (org-fontify-entities): Match entities before + numbers, as in `\sim2'. + +2012-01-03 Carsten Dominik <carsten.dominik@gmail.com> + + * org-agenda.el (org-agenda-date-later): Make pushing forward + a past date to jump immedialtely to today. + +2012-01-03 Carsten Dominik <carsten.dominik@gmail.com> + + * org-exp.el (org-store-forced-table-alignment): Parse the + column cookie for both alignment and width + specification. Store the resulting value in `org-col-cookies' + property. Retire the previously used `org-forced-aligns' + property for consistency. Renamed local variable `aligns' to + `cookies'. + + * org-html.el (org-format-org-table-html): Use + `org-col-cookies'. Renamed local variable forced-aligns to + col-cookies. + +2012-01-03 Carsten Dominik <carsten.dominik@gmail.com> + + * org.el (org-latex-to-mathml-jar-file) + (org-latex-to-mathml-convert-command): New user-customizable + variables. + (org-format-latex-mathml-available-p, org-create-math-formula) + (org-format-latex-as-mathml): New functions. + (org-format-latex): Add a new local variable block-type that notes + the nature of the equation - inline or display. Associate it's + value to `org-latex-src-embed-type' property of dvipng links. Add + mathml as new processing type. + +2012-01-03 Sébastien Vauban <wxhgmqzgwmuf@spammotel.com> + + * org.el (org-refile): Add tree name to prompt. + +2012-01-03 Carsten Dominik <carsten.dominik@gmail.com> + + * org-latex.el (org-export-latex-tables): Honor + `org-export-latex-table-caption-above' + (org-export-latex-table-caption-above): New option. + +2012-01-03 Eric Schulte <schulte.eric@gmail.com> + + * ob.el (org-babel-insert-header-arg): Now including language + specific header arg values in insertion options. + +2012-01-03 Eric Schulte <schulte.eric@gmail.com> + + * ob.el (org-babel-insert-header-arg): Fixed typo. + +2012-01-03 Jambunathan K <kjambunathan@gmail.com> + + * org-exp.el (org-export-number-lines): Modified. Add a new + parameter `preprocess' and use this for backend-agnostic + handling of literal examples. + +2012-01-03 Nicolas Goaziou <n.goaziou@gmail.com> + + * org.el (org-match-substring-regexp) + (org-match-substring-with-braces-regexp): Allow subscripts and + superscripts to start at beginning of line. + +2012-01-03 Eric Schulte <schulte.eric@gmail.com> + + * ob.el (org-babel-common-header-args-w-values): New variable to + hold common header arguments and their default values. + (org-babel-header-arg-names): Redefined using the new common + header arg variable. + (org-babel-insert-header-arg): New function to help when inserting + header arguments. + +2012-01-03 David Maus <dmaus@ictsoc.de> + + * org-html.el (org-html-handle-links): Remove unnecessary + protection markers when publishing link in default format. + +2012-01-03 Pieter Praet <pieter@praet.org> (tiny change) + + * org-crypt.el (org-crypt-check-auto-save): New function, see + next change. + + * org-crypt.el (org-decrypt-entry): Break the auto-save-mode + check out into a separate function, and call it at a later + point, to assure it only runs when visiting an encrypted + entry. + +2012-01-03 John J Foerch <jjfoerch@earthlink.net> (tiny change) + + * org.el (org-log-note-headings): Document new %d and %D + escapes. + (org-store-log-note): Implement new %d and %D escapes. + +2012-01-03 Dave Abrahams <dave@boostpro.com> + + * org-agenda.el (org-agenda-follow-indirect): New option. + (org-agenda-follow-mode): Call `org-agenda-do-context-action' fro + follow mode. + (org-agenda-do-context-action): Also do indirect follow mode + action. + +2012-01-03 Eric Schulte <schulte.eric@gmail.com> + + * ob-table.el (sbe): Fix typo in new sbe specification. + +2012-01-03 Eric Schulte <schulte.eric@gmail.com> + + * ob-table.el (sbe): If first variable is a string and not a + cons cell, then interpret it as a string of header arguments + to be passed to the code block. + +2012-01-03 Eric Schulte <schulte.eric@gmail.com> + + * ob-shen.el (shen-eval-defun): Declare external function. + (org-babel-execute:shen): Move requirement of inf-shen into + the function in which it is used to fix build error. + + * ob-shen.el: New file. + +2012-01-03 Carsten Dominik <carsten.dominik@gmail.com> (tiny change) + + * org.el (org-open-at-point): Make `org-open-at-point' only + ask once about creating a new headline. + +2012-01-03 Nick Dokos <nicholas.dokos@hp.com> (tiny change) + + * org.el (org-refile-targets): Elaborated the documentation of + the variable as suggested by Dave Abrahams. + +2012-01-03 Carsten Dominik <carsten.dominik@gmail.com> (tiny change) + + * org.el (org-align-tags-here): Allow tags to be placed right + after heading. + (org-tags-column): Document the meaning of tags column 0. + +2012-01-03 Niels Giesen <niels.giesen@gmail.com> + + * org-agenda.el (org-agenda-get-blocks): Show timestamp ranges + in agenda if start day is same as end day. + +2012-01-03 Carsten Dominik <carsten.dominik@gmail.com> + + * org.el (org-refile-get-location): Ignore errors when + collection heading to be excluded. + +2012-01-03 Carsten Dominik <carsten.dominik@gmail.com> + + * org-special-blocks.el + (org-special-blocks-convert-html-special-cookies): Avoid XHTML + strict problems by not enclosing special blocks in paragraph tags. + +2012-01-03 Bernt Hansen <bernt@norang.ca> + + * org-html.el (org-export-as-html): Check string-match + argument. + (org-html-handle-time-stamps): Check string-match argument. + +2012-01-03 Carsten Dominik <carsten.dominik@gmail.com> + + * org-agenda.el + (org-agenda-skip-additional-timestamps-same-entry): Change + default value. + +2012-01-03 Carsten Dominik <carsten.dominik@gmail.com> + + * org.el (org-time-string-to-time): + (org-time-string-to-absolute): Add optional arguments BUFFER and + POS for error reporting. + + * org-agenda.el (org-get-all-dates): + (org-agenda-get-timestamps, org-agenda-get-deadlines) + (org-agenda-get-scheduled, org-agenda-get-blocks): Call time + stamp parsing functions with information on where the + timestamp was taken from. + +2012-01-03 Carsten Dominik <carsten.dominik@gmail.com> + + * org.el (org-tree-to-indirect-buffer): Run `org-cycle-hook' + after `show-all' in indirect buffer. + +2012-01-03 Nicolas Goaziou <n.goaziou@gmail.com> + + * org-list.el (org-list-parents-alist): When no parent is found + for an item, set it as the closest less indented item above. If + none is found, make it a top level item. + (org-list-write-struct): Externalize code. + (org-list-struct-fix-item-end): New function. + (org-list-struct): Remove a now useless fix. + + * org.el (org-ctrl-c-ctrl-c): Use new function. + +2012-01-03 Nicolas Goaziou <n.goaziou@gmail.com> + + * org.el (org-end-of-line): When on an item, move point at the + end of the line, but before any hidden text. Thus, it's still + possible to use commands, like `C-c C-c', acting at + items. This is still disabled if `org-special-ctrl-a/e' + ignores `C-e'. + +2012-01-03 Nicolas Goaziou <n.goaziou@gmail.com> + + * org-footnote.el (org-footnote-renumber-fn:N): Small refactoring. + +2012-01-03 Nicolas Goaziou <n.goaziou@gmail.com> + + * org-footnote.el (org-footnote-renumber-fn:N): Fix an + infloop. + +2012-01-03 Nicolas Goaziou <n.goaziou@gmail.com> + + * org-footnote.el (org-footnote-at-definition-p): Remove + useless `org-re'. + +2012-01-03 Nicolas Goaziou <n.goaziou@gmail.com> + + * org-footnote.el (org-footnote-renumber-fn:N): Verify point + is at a real footnote reference or definition before + renumbering it. + +2012-01-03 Nicolas Goaziou <n.goaziou@gmail.com> + + * org-footnote.el (org-footnote-goto-definition): This patch + makes sure the function says when a definition has been + found. Thus, moving from the reference to the definition + doesn't offer to create the latter again. + +2012-01-03 Nicolas Goaziou <n.goaziou@gmail.com> + + * org-footnote.el (org-footnote-create-definition): + Explicitely move point after tag, if it has just been + inserted. + +2012-01-03 Eric Schulte <schulte.eric@gmail.com> + + * ob-gnuplot.el (org-babel-execute:gnuplot): Don't quote file + names on Windows systems. + +2012-01-03 Nicolas Goaziou <n.goaziou@gmail.com> + + * org-footnote.el (org-footnote-create-definition): When the + tag is missing, it is created before any existing footnote, or + at end of buffer. In the latter case, the marker pointing at + the position where the new footnote is going to be inserted + (at end of buffer) stays before the tag. This patch makes + sure that the marker will be kept after the tag. + +2012-01-03 Eli Zaretskii <eliz@gnu.org> + + * org.el (org-mode): Force left-to-right paragraphs in Org + buffers. For a related discussions, see + https://lists.gnu.org/archive/html/emacs-devel/2011-09/msg00349.html. + +2012-01-03 Nicolas Goaziou <n.goaziou@gmail.com> + + * ob-asymptote.el (org-babel-asymptote-define-type): Silence + byte-compiler. + +2012-01-03 Eric Schulte <schulte.eric@gmail.com> + + * ob-R.el (org-babel-R-evaluate): Fix bug in R session + evaluation. + +2012-01-03 Eric Schulte <schulte.eric@gmail.com> + + * org-bibtex.el (org-bibtex-type-property-name): Configurable + property name for bibtex entry types. + (org-bibtex-headline): Use new configurable property name. + (org-bibtex-check): Use new configurable property name. + (org-bibtex-create): Use new configurable property name. + (org-bibtex-write): Use new configurable property name. + +2012-01-03 Carsten Dominik <carsten.dominik@gmail.com> + + * org.el (org-paste-subtree): Remove unnecessary `concat'. + +2012-01-03 Bastien Guerry <bzg@gnu.org> + + * org.el (org-paste-subtree): Remove useless (concat ...). + +2012-01-03 Eric Schulte <schulte.eric@gmail.com> + + * ob-C.el (org-babel-C-var-to-C): Replacing usage of + characterp with integerp (which should work w/Emacs22). + +2012-01-03 Nicolas Goaziou <n.goaziou@gmail.com> + + * org-footnote.el (org-footnote-at-definition-p): Context must + be valid at the beginning of line, not at point. + +2012-01-03 Eric Schulte <schulte.eric@gmail.com> + + * ob-tangle.el (org-babel-tangle-collect-blocks): Better + delimiting of Org-mode text preceding a code block. + +2012-01-03 Eric Schulte <schulte.eric@gmail.com> + + * ob.el (org-babel-get-src-block-info): Fixing bug, + accidentally deleted variable values. + +2012-01-03 Eric Schulte <schulte.eric@gmail.com> + + * ob-tangle.el (org-babel-process-comment-text): Customizable + function to process comment text. + (org-babel-tangle-collect-blocks): Make use of new + customizable processing function. + (org-babel-spec-to-string): Call customizable function rather than + `org-babel-trim'. + +2012-01-03 Eric Schulte <schulte.eric@gmail.com> + + * ob-R.el (org-babel-execute:R): Collect and pass along the + result-params. + (org-babel-R-evaluate): Accept result-params and if "scalar" or + "verbatim" don't process output. + (org-babel-R-evaluate-session): Accept result-params and if + "scalar" or "verbatim" don't process output. + +2012-01-03 Eric Schulte <schulte.eric@gmail.com> + + * ob.el (org-babel-merge-params): Differentiate between result + types and wrappers. + +2012-01-03 Eric Schulte <schulte.eric@gmail.com> + + * ob.el (org-babel-get-src-block-info): Check that + functional-syntax variables are initialized. + +2012-01-03 Eric Schulte <schulte.eric@gmail.com> + + * ob.el (org-babel-check-src-block): Adding a note for a + future enhancement. + +2012-01-03 Carsten Dominik <carsten.dominik@gmail.com> + + * org-exp.el (org-export): Restore point when exporting a subtree. + +2012-01-03 Eric Schulte <schulte.eric@gmail.com> + + * ob.el (org-babel-parse-src-block-match): More robust to code + blocks with empty bodies. + +2012-01-03 Eric Schulte <schulte.eric@gmail.com> + + * ob.el (org-babel-parse-src-block-match): Don't error on empty + code block body. + +2012-01-03 David Maus <dmaus@ictsoc.de> + + * org.el (org-open-at-point): Unescape plain link. + +2012-01-03 David Maus <dmaus@ictsoc.de> + + * org-html.el (org-html-handle-links): Remove unnecessary link + unescape. + +2012-01-03 Eric Schulte <schulte.eric@gmail.com> + + * ob.el (org-babel-merge-params): Better error message for + unassigned variables. + +2012-01-03 Christian Egli <christian.egli@alumni.ethz.ch> + + * org-taskjuggler.el (org-export-as-taskjuggler): Clone the + buffer local variables to the temporary buffer before + exporting. + +2012-01-03 Eric Schulte <schulte.eric@gmail.com> + + * org-exp.el (org-export-select-backend-specific-text): Only + remove commas on the front line of a code block. + +2012-01-03 Eric Schulte <schulte.eric@gmail.com> + + * ob.el (org-babel-demarcate-block): Copy headers and indent to + column of point when a block is split. + +2012-01-03 Eric Schulte <schulte.eric@gmail.com> + + * ob.el (org-babel-insert-result): Corrected file insertion + for inline results. + +2012-01-03 Nicolas Goaziou <n.goaziou@gmail.com> + + * org-footnote.el (org-footnote-in-valid-context-p): No + footnote in latex fragments. + +2012-01-03 Martin Rudalics <rudalics@gmx.at> + + * org-compat.el (org-pop-to-buffer-same-window): Remove LABEL + argument from `pop-to-buffer-same-window' call. + +2012-01-03 Eric Schulte <schulte.eric@gmail.com> + + * ob-R.el (org-babel-R-evaluate-session): Improve prompt + detection regexp. + +2012-01-03 Nicolas Goaziou <n.goaziou@gmail.com> + + * org-inlinetask.el (org-inlinetask-goto-end): Small + refactoring. + +2012-01-03 Nicolas Goaziou <n.goaziou@gmail.com> + + * ob-asymptote.el (org-babel-asymptote-var-to-asymptote): + refactor code. + (org-babel-asymptote-table-to-array): Removed function. + +2012-01-03 Nicolas Goaziou <n.goaziou@gmail.com> + + * ob-asymptote.el (org-babel-asymptote-var-to-asymptote): + recognize non-nested lists as uni-dimensional arrays. + +2012-01-03 Eric Schulte <schulte.eric@gmail.com> + + * ob.el (org-babel-params-from-properties): Don't check for + header arguments in properties with leading ":"s. + +2012-01-03 Nicolas Goaziou <n.goaziou@gmail.com> + + * org-inlinetask.el (org-inlinetask-goto-end): Correctly + detect the end of an inlinetask when the next one starts + immediately after the current one. Also, return position of + point. + +2012-01-03 Nicolas Goaziou <n.goaziou@gmail.com> + + * ob.el (org-babel-inline-src-block-regexp): Allow regexp to + start at bol. + +2012-01-03 Nicolas Goaziou <n.goaziou@gmail.com> + + * ob-asymptote.el (org-babel-asymptote-define-type): Elisp + floats are asymptote reals. + +2012-01-03 Nicolas Goaziou <n.goaziou@gmail.com> + + * ob-asymptote.el (org-babel-asymptote-table-to-array): + Require a new argument TYPE specifying the detected type of + array. If it's a string array, make sure every element is + returned as a string. Also improve doc-string. + (org-babel-asymptote-var-to-asymptote): Fill new argument. Small + refactoring. + (org-babel-asymptote-define-type): Rewrite to avoid stopping + search at first float found, as strings have precedence over + floats. + +2012-01-03 Nicolas Goaziou <n.goaziou@gmail.com> + + * org-footnote.el (org-footnote-normalize): Be sure to separate + the last footnote definition from the rest of the buffer. + +2012-01-03 Eric Schulte <schulte.eric@gmail.com> + + * ob-awk.el (org-babel-expand-body:awk): Allow for symbolic + variable names. + +2012-01-03 Nicolas Goaziou <n.goaziou@gmail.com> + + * org.el (org-latex-regexps): Allow matching latex fragments + of type "$" and "$1" at beginning of line. + +2012-01-03 Bastien Guerry <bzg@gnu.org> + + * org-agenda.el (org-search-view, org-agenda-get-todos) + (org-agenda-get-deadlines, org-agenda-get-scheduled): Add + `category-pos' in let construct. + +2012-01-03 Nicolas Goaziou <n.goaziou@gmail.com> + + * org-footnote.el (org-footnote-get-definition): The function has + to widen buffer if definition has not been found in the current + narrowed part. Be sure to restore that restriction once the + definition is found. + +2012-01-03 Michal Sojka <sojka@os.inf.tu-dresden.de> (tiny change) + + * org-icalendar.el (org-print-icalendar-entries): Make alarm + duration RFC5545 compliant. + +2012-01-03 Bastien Guerry <bzg@gnu.org> + + * org-agenda.el (org-agenda-get-timestamps) + (org-agenda-get-sexps, org-agenda-get-progress): Correctly set + the `org-category-pos' property. + +2012-01-03 Bastien Guerry <bzg@gnu.org> + + * org-html.el (org-export-html-divs): Improve docstring. + +2012-01-03 Carsten Dominik <carsten.dominik@gmail.com> + + * org-table.el (org-table-fix-formulas): Throw error when + changing formula leads to an invalid formula. + +2012-01-03 Bastien Guerry <bzg@gnu.org> + + * org.el (org-archive-location): Minor docstring fix. + +2012-01-03 Nicolas Goaziou <n.goaziou@gmail.com> + + * org.el (org-block-todo-from-checkboxes): + `org-list-search-forward' should be used when looking for an + item, as it filters out contexts where match couldn't be in a + list. Also use a correct item regexp, taking into account + alphabetical ordered lists and counters. + +2012-01-03 Bastien Guerry <bzg@gnu.org> + + * org-html.el (org-html-make-link): Minor fix to the + docstring. + +2012-01-03 Suvayu Ali <fatkasuvayu+linux@gmail.com> (tiny change) + + * org-inlinetask.el (org-inlinetask): New customisable face + for inlinetasks + +2012-01-03 Bastien Guerry <bzg@gnu.org> + + * org-agenda.el (org-agenda-get-todos): Properly set + `category-pos'. + +2012-01-03 Nicolas Goaziou <n.goaziou@gmail.com> + + * org-list.el (org-list-struct-apply-struct): Don't use + (copy-marker (point)) instead of (point-marker). + +2012-01-03 Eric Schulte <schulte.eric@gmail.com> + + * ob.el (org-babel-where-is-src-block-result): Don't try to + resolve variables when simply checking if we're inside of a + code block. + +2012-01-03 Bastien Guerry <bzg@gnu.org> + + * org.el (org-refresh-category-properties): New text property + 'org-category-position to point at the beginning of the + headline from which the category is set. + +2012-01-03 Matt Lundin <mdl@imapmail.org> + + * org.el (org-refile): Don't call `org-back-to-heading' with + goto argument. + +2012-01-03 Bastien Guerry <bzg@gnu.org> + + * org.el (org-link-display-descriptive): Remove this option and + rely on the existing `org-descriptive-links' instead. + (org-toggle-link-display): Use `org-descriptive-links'. + +2012-01-03 Eric Schulte <schulte.eric@gmail.com> + + * ob-ref.el (org-babel-ref-resolve): Allow matching of results + with tags after the result name. + +2012-01-03 Bastien Guerry <bzg@gnu.org> + + * org-table.el (org-table-get-specials): Allow the use of the + underscore character in column names. + (org-table-get-specials): Allow the use of the underscore + character in field names. + +2012-01-03 Eric Schulte <schulte.eric@gmail.com> + + * org-exp-blocks.el (org-export-blocks-preprocess): Explicitly + cleaning up markers. + +2012-01-03 Eric Schulte <schulte.eric@gmail.com> + + * ob-exp.el (org-babel-exp-inline-src-blocks): Save match data + around `org-babel-exp-do-export' which now searches in this case. + (org-babel-exp-results): Position the point in the inline source + block during export evaluation. + + * ob.el (org-babel-insert-result): More readable code. + +2012-01-03 Eric Schulte <schulte.eric@gmail.com> + + * org-exp-blocks.el (org-export-blocks-preprocess): Use the built + in function rather than the superfluous (and now removed) + org-specific function. + +2012-01-03 Eric Schulte <schulte.eric@gmail.com> + + * ob-exp.el (org-babel-exp-inline-src-blocks): Don't examplize + inline code blocks which are already escaped. + +2012-01-03 Eric Schulte <schulte.eric@gmail.com> + + * org-exp-blocks.el (org-marker-from-point): Helper function to + create markers at specific points in source buffers. + (org-export-blocks-preprocess): Use markers instead of points + to delimit code blocks. + +2012-01-03 Nicolas Goaziou <n.goaziou@gmail.com> + + * org-list.el (org-list-separating-blank-lines-number): The + behaviour of `org-back-over-empty-lines' depends on the + associated value of `headline' in + `org-blank-before-new-entry', which is out of context in a + list. + +2012-01-03 Nicolas Goaziou <n.goaziou@gmail.com> + + * org-indent.el (org-indent-initialize-agent): When the current + buffer isn't being watched, resume initialization of other watched + buffers. In that case, give hand to others idle timers or + processes more frequently. + (org-indent-agent-active-delay): Renamed from + `org-indent-agent-process-duration'. + (org-indent-agent-passive-delay): New variable. + (org-indent-agent-resume-delay): Change value. + (org-indent-initialize-buffer): Change argument name. + (org-indent-add-properties): Change argument name and type + expected. It must be a time value now. + +2012-01-03 Bastien Guerry <bzg@gnu.org> + + * org.el (org-set-property): Bugfix. + +2012-01-03 Eric Schulte <schulte.eric@gmail.com> + + * ob.el (org-babel-remove-result): Idempotent code block + evaluation and result removal. + +2012-01-03 Eric Schulte <schulte.eric@gmail.com> + + * ob-ruby.el (org-babel-ruby-initiate-session): No longer + require inf-ruby when no session evaluation takes place. + +2012-01-03 Bastien Guerry <bzg@gnu.org> + + * org-agenda.el (org-agenda-prefix-format): Mention "%e" in + the docstring. + +2012-01-03 Carsten Dominik <carsten.dominik@gmail.com> + + * org-agenda.el (org-agenda-custom-commands): Set a default + value for this command. + +2012-01-03 Carsten Dominik <carsten.dominik@gmail.com> + + * org-agenda.el (org-agenda-include-all-todo): Declare this option + as no longer working. + (org-timeline): Rename the include-all argument to dotodo. + (org-arg-loc): Renamed from` org-include-all-loc'. + (org-agenda-list): Rename the INCLUDE-ALL argument to ARG, + because its function has changed. + +2012-01-03 Bastien Guerry <bzg@gnu.org> + + * org.el (org-fixup-indentation): Fix various small bugs. + +2012-01-03 Nicolas Goaziou <n.goaziou@gmail.com> + + * org-indent.el (org-indent-agent-timer) + (org-indent-agentized-buffers, org-indent-agent-resume-timer) + (org-indent-agent-process-duration) + (org-indent-agent-resume-delay): New variables. + (org-indent-initial-marker): More accurate doc-string. + (org-indent-initial-timer, org-indent-initial-resume-timer) + (org-indent-initial-process-duration) + (org-indent-initial-resume-delay) + (org-indent-initial-lock): Removed variables. + (org-indent-mode): Set up an agent to watch current buffer, or + add it to the list of already watched buffers. + (org-indent-initialize-agent): New function. + (org-indent-initialize-buffer): Now requires a mandatory + buffer argument. + (org-indent-add-properties): Reflect changes to variables. The resume + timer is now global. + +2012-01-03 Nicolas Goaziou <n.goaziou@gmail.com> + + * org-footnote.el (org-footnote-normalize): Refactor, and fix + some blank lines deletion. + +2012-01-03 Nicolas Goaziou <n.goaziou@gmail.com> + + * org-indent.el (org-indent-mode): + `org-indent-initial-resume-timer ' needs to be local. + +2012-01-03 Bastien Guerry <bzg@gnu.org> + + * org.el (org-fixup-indentation): Correctly indent meta lines. + +2012-01-03 Nicolas Goaziou <n.goaziou@gmail.com> + + * org-indent.el (org-indent-set-line-properties): Add text + properties down to the beginning of the next line. + (org-indent-add-properties): When last position to add + properties to is at the beginning of a line, all that line + will have properties. + +2012-01-03 Nicolas Goaziou <n.goaziou@gmail.com> + + * org-indent.el (org-indent-initial-resume-timer): New variable. + (org-indent-initialize-buffer): Also resume after a small break. + (org-indent-add-properties): When in asynchronous mode, + proceed for 2 seconds, then take a break. + +2012-01-03 Nicolas Goaziou <n.goaziou@gmail.com> + + * org-indent.el (org-indent-set-line-properties): New function. + (org-indent-add-properties): Externalize worker function. + +2012-01-03 Nicolas Goaziou <n.goaziou@gmail.com> + + * org-indent.el (org-indent-indent-buffer): Take into account + narrowing. + +2012-01-03 Nicolas Goaziou <n.goaziou@gmail.com> + + * org-indent.el (org-indent-modified-headline-flag): Renamed from + `org-indent-deleted-headline-flag' + (org-indent-notify-modified-headline): Renamed from + `org-indent-notify-deleted-headline'. Handle situations when + the stars of an headline are modified. + (org-indent-refresh-maybe): Remove case now handled by + previous function. + (org-indent-mode): Apply renames. + +2012-01-03 Nicolas Goaziou <n.goaziou@gmail.com> + + * org-indent.el (org-indent-inlinetask-first-star): New + variable. + (org-indent-add-properties): Set the first star of inline-tasks' + virtual indentation in `org-warning' face. + + * org-inlinetask.el (org-inlinetask-insert-task): Create a new + inline-task slightly differently, so virtual indentation can + be applied normally. + +2012-01-03 Nicolas Goaziou <n.goaziou@gmail.com> + + * org-indent.el (org-indent-initial-marker) + (org-indent-initial-timer, org-indent-initial-lock): New + variables. + (org-indent-mode): At initialization, start an idle timer to indent + the whole buffer. When the user is asking for control, interrupt the + process, and resume at the same point when idle again. + (org-indent-initialize-buffer): New function. + (org-indent-add-properties): Throw an interrupt when indentation of + buffer is stopped during initialization. + +2012-01-03 Nicolas Goaziou <n.goaziou@gmail.com> + + * org-indent.el (org-indent-indent-buffer): Send more + appropriate messages. + +2012-01-03 Nicolas Goaziou <n.goaziou@gmail.com> + + * org-indent.el (org-indent-notify-deleted-headline) + (org-indent-refresh-maybe): Replace `org-indent-outline-re' + with `org-outline-regexp-bol'. + +2012-01-03 Nicolas Goaziou <n.goaziou@gmail.com> + + * org-indent.el (org-indent-max-levels): Modify default value and + add comment. + (org-indent-add-properties): Pay attention to `org-indent-max' + and `org-indent-max-levels' values. + (org-indent-refresh-maybe): Refactor code to avoid an unnecessary + save excursion. + +2012-01-03 Nicolas Goaziou <n.goaziou@gmail.com> + + * org-table.el (org-table-align): Remove now useless hack. + +2012-01-03 Nicolas Goaziou <n.goaziou@gmail.com> + + * org-indent.el (org-indent-fix-section-after-idle-time): Remove + variable. + (org-indent-initialize): Remove timer. + (org-indent-add-properties): Refactor code. + (org-indent-refresh-subtree, org-indent-refresh-section) + (org-indent-refresh-buffer,org-indent-set-initial-properties): Remove + functions. + (org-indent-deleted-headline): New variable. + (org-indent-notify-deleted-headline,org-indent-refresh-maybe): New + functions. + (org-indent-mode): Insert new functions into a hook. + +2012-01-03 Nicolas Goaziou <n.goaziou@gmail.com> + + * org-indent.el (org-indent-mode): Completely refresh buffer + before starting org-indent-mode. Also set idle timer to refresh + only visible portion of buffer, and refresh the subtree instead of + section when promoting or demoting it. + (org-indent-add-properties): Rewrite function to proceed line by + line, as required by `wrap-prefix' specificity. + (org-indent-refresh-section,org-indent-refresh-subtree): Refactor. + (org-indent-refresh-view): New function. + (org-indent-refresh-to, org-indent-refresh-section): Removed + functions. + + * org.el (org-unfontify-region): Do not remove prefix + properties when unfontifying a region. + +2012-01-03 Bastien Guerry <bzg@gnu.org> + + * org-colview.el (org-columns-cleanup-item): Correctly remove + leading stars in items displayed in the agenda column view. + +2012-01-03 Bastien Guerry <bzg@gnu.org> + + * org-colview.el (org-columns-display-here): Clean up items in + `org-agenda-mode' too. + (org-columns-cleanup-item): Take a new argument CPHR to allow + passing a complex heading regexp. Rewrite to cleanup ITEM + correctly in `org-agenda-mode'. + +2012-01-03 Bastien Guerry <bzg@gnu.org> + + * org-clock.el (org-duration-string-to-minutes) + (org-minutes-to-hh:mm-string, org-hh:mm-string-to-minutes): Move + from org.el. + +2012-01-03 Bastien Guerry <bzg@gnu.org> + + * org.el (org-refile-active-region-within-subtree): New option to + allow refiling a region that is part of a subtree without + containing a subtree itself. This default to `nil'. + (org-refile): Use the new option. Put point at the beginning + of the region/subtree to be refiled, so that users understand + what will be refiled. Also improve the prompt to tell whether + the user is refiling a region or a headline. + +2012-01-03 Bastien Guerry <bzg@gnu.org> + + * org.el (org-properties-postprocess-alist): New option to allow + postprocessing the values of properties set through + `org-set-property'. + (org-set-property): Use this option. + +2012-01-03 Bastien Guerry <bzg@gnu.org> + + * org.el (org-outline-regexp, org-outline-regexp-bol): Add a + docstring. + +2012-01-03 Bastien Guerry <bzg@gnu.org> + + * org-archive.el (org-archive-to-archive-sibling): Use + `org-outline-regexp' instead of `outline-regexp'. + +2012-01-03 Nicolas Goaziou <n.goaziou@gmail.com> + + * org.el (org-between-regexps-p): Searching up to pos may + match again beginning regexp. + +2012-01-03 Nicolas Goaziou <n.goaziou@gmail.com> + + * org-footnote.el (org-footnote-goto-definition): Don't send + erroneous message: suggested bindings might not be set outside + Org. + +2012-01-03 Nicolas Goaziou <n.goaziou@gmail.com> + + * org-footnote.el (org-footnote-normalize): Effectively remove + any footnote tag in non Org buffers, as detailled in the + docstring of `org-footnote-tag-for-non-org-mode-files'. + +2012-01-03 Nicolas Goaziou <n.goaziou@gmail.com> + + * org-footnote.el (org-footnote-tag-for-non-org-mode-files): + notify the opportunity to set the variable to the empty string. + (org-footnote-normalize, org-footnote-create-definition): + Carefully check for inserted newlines and presence of the + footnote tag. + +2012-01-03 Nicolas Goaziou <n.goaziou@gmail.com> + + * org-footnote.el (org-footnote-at-definition-p): Re-use + `org-footnote-definition-re'. + +2012-01-03 Nicolas Goaziou <n.goaziou@gmail.com> + + * org-footnote.el (org-footnote-definition-re): Remove an + useless group. + (org-footnote-at-definition-p): Reflect removal of the group. + +2012-01-03 Nicolas Goaziou <n.goaziou@gmail.com> + + * org.el (org-set-regexps-and-options): Enforce white space + after todo keyword, as word boundary isn't sufficient (i.e. in + matches * TODO/this). + +2012-01-03 Jambunathan K <kjambunathan@gmail.com> + + * org-inlinetask.el (org-inlinetask-export-templates): Fixed + template for html so that the exported file is valid + xhtml. Added template for odt. + (org-inlinetask-export-handler): Fix typo in the regexp that + trims content. Make sure that the content is flanked by + paragraph boundaries on either side. + +2012-01-03 Bastien Guerry <bzg@gnu.org> + + * org.el (org-add-planning-info): Don't insert superfluous + space when updating timestamps. + +2012-01-03 Bastien Guerry <bzg@gnu.org> + + * org-agenda.el (org-cmp-effort): Fix docstring. + +2012-01-03 Nicolas Goaziou <n.goaziou@gmail.com> + + * org-list.el (org-list-full-item-re): When an item has only a + bullet and no space after it, list structure would not be + recognized correctly. + +2012-01-03 Bastien Guerry <bzg@gnu.org> + + * org.el (org-overview): Use `outline-regexp' instead of + `org-outline-regexp' so that global cycling using + `orgstruct-mode' works outside of Org buffers. + +2012-01-03 Bastien Guerry <bzg@gnu.org> + + * org-table.el (org-table-eval-formula): Fix missing variable + in let construct. + (org-table-time-string-to-seconds): Fix missing variable in + let construct. + +2012-01-03 Michael Brand <michael.ch.brand@gmail.com> + + * org-agenda.el (org-agenda-get-deadlines): Fix dfrac for the + case of wdays being 0. Don't pass wdays to + org-agenda-deadline-face, like before the old fix. + (org-agenda-deadline-face): Revert to old state that was without + wdays. + +2012-01-03 Bastien Guerry <bzg@gnu.org> + + * org-latex.el (org-export-latex-fixed-width): Only add one + line break after exporting verbatim environments. + +2012-01-03 Bastien Guerry <bzg@gnu.org> + + * org-mw.el (org-mw-export-lists): Fix list export. + +2012-01-03 Bastien Guerry <bzg@gnu.org> + + * org-list.el (org-list-item-trim-br): New function. + (org-list-to-generic): New parameter :nobr to use the new + function. + +2012-01-03 David Maus <dmaus@ictsoc.de> + + * org.el (org-paste-subtree): Fix wrong order of lines to move + before pasting. + +2012-01-03 David Maus <dmaus@ictsoc.de> + + * org.el (org-paste-subtree): Paste subtree above target + headline if point is at bol. + +2012-01-03 Nicolas Goaziou <n.goaziou@gmail.com> + + * org-list.el (org-toggle-checkbox): Don't clear lim-down + while used in the while loop. + +2012-01-03 Nicolas Goaziou <n.goaziou@gmail.com> + + * org-list.el (org-toggle-checkbox): Lim-down must be a + marker. + +2012-01-03 Nicolas Goaziou <n.goaziou@gmail.com> + + * org.el (org-activate-code): Correct regexp so ":.*" isn't + matched. + +2012-01-03 David Maus <dmaus@ictsoc.de> + + * org-macs.el (org-with-gensyms, org-called-interactively-p) + (with-silent-modifications, org-bound-and-true-p) + (org-unmodified, org-re, org-preserve-lc) + (org-without-partial-completion, org-with-point-at) + (org-no-warnings, org-if-unprotected, org-if-unprotected-1) + (org-if-unprotected-at, org-with-remote-undo) + (org-no-read-only, org-save-outline-visibility) + (org-with-wide-buffer, org-with-limited-levels) + (org-eval-in-environment): Provide edebug specifications. + + * org-src.el (org-src-do-at-code-block): Dto. + + * org-publish.el (org-publish-with-aux-preprocess-maybe): Dto. + + * org-compat.el (org-xemacs-without-invisibility): Dto. + + * org-clock.el (org-with-clock-position, org-with-clock): Dto. + + * org-agenda.el (org-agenda-with-point-at-orig-entry) + (org-batch-agenda, org-batch-agenda-csv) + (org-batch-store-agenda-views): Dto. + + * ob.el (org-babel-do-in-edit-buffer) + (org-babel-map-src-blocks, org-babel-map-inline-src-blocks): Dto. + + * ob-tangle.el (org-babel-with-temp-filebuffer): Dto. + + * ob-table.el (sbe): Dto. + + * ob-exp.el (org-babel-exp-in-export-file): Dto. + + * ob-comint.el (org-babel-comint-in-buffer) + (org-babel-comint-with-output): Dto. + +2012-01-03 Nicolas Goaziou <n.goaziou@gmail.com> + + * org-inlinetask.el (org-inlinetask-export-templates): Fix + docstring. + +2012-01-03 Nicolas Goaziou <n.goaziou@gmail.com> + + * org-inlinetask.el (org-inlinetask-insert-task): Error when + trying to nest inline tasks. + +2012-01-03 Nicolas Goaziou <n.goaziou@gmail.com> + + * org.el (org-activate-code, org-toggle-fixed-width-section) + (org-indent-line-function): Allow "[ \t]*:$" as a special case of + fixed-width section. + +2012-01-03 David Maus <dmaus@ictsoc.de> + + * org.el (org-paste-subtree): Don't eat headline when called + with point at existing headline. + +2012-01-03 David Maus <dmaus@ictsoc.de> + + * org.el (org-paste-subtree): Fix typo in variable name. + +2012-01-03 Jambunathan K <kjambunathan@gmail.com> + + * org-inlinetask.el (org-inlinetask-export-handler): Don't + export inline tasks if the current backend has provided no + entries in `org-inlinetask-export-templates'. + +2012-01-03 Valentin Wüstholz <wuestholz@gmail.com> (tiny change) + + * org.el (org-indent-line-function): Made the way in which + example blocks are indented more flexible. + +2012-01-03 David Maus <dmaus@ictsoc.de> + + * org-agenda.el (org-batch-agenda-csv): Fix argument to append + when creating final parameter alist. + +2012-01-03 David Maus <dmaus@ictsoc.de> + + * org-agenda.el (org-batch-store-agenda-views): Use macro + `org-eval-in-environment'. + +2012-01-03 David Maus <dmaus@ictsoc.de> + + * org-agenda.el (org-batch-agenda, org-batch-agenda-csv): Use + `org-eval-in-environment. + +2012-01-03 David Maus <dmaus@ictsoc.de> + + * org-macs.el (org-make-parameter-alist): New function. Turn + flat list of alternating symbol names and values into an alist + with symbol name in car and value in cdr. + +2012-01-03 David Maus <dmaus@ictsoc.de> + + * org-agenda.el (org-agenda-with-point-at-orig-entry): Use + macro `org-with-gensyms'. + +2012-01-03 David Maus <dmaus@ictsoc.de> + + * org-macs.el (org-substitute-posix-classes): New + function. Substitute posix classes in regular expression. + (org-re): Use new function. + +2012-01-03 David Maus <dmaus@ictsoc.de> + + * org-macs.el (org-eval-in-environment): New macro. Evaluate FORM + in ENVIRONMENT. + +2012-01-03 David Maus <dmaus@ictsoc.de> + + * org-macs.el (org-preserve-lc, org-with-point-at) + (org-with-remote-undo, org-save-outline-visibility): Use new + macro `org-with-gensyms'. + +2012-01-03 David Maus <dmaus@ictsoc.de> + + * org-macs.el (org-with-gensyms): New macro. Wrap let-binding + of SYMBOLS to new uninterned symbols around BODY. + +2012-01-03 Nicolas Goaziou <n.goaziou@gmail.com> + + * org-inlinetask.el (org-inlinetask-export-handler): Make sure + the task starts a paragraph or the HTML exporter will produce + an incorrect output. + +2012-01-03 Nicolas Goaziou <n.goaziou@gmail.com> + + * org.el (org-return): When filling happens, `newline' can + change match data, hence modifying the indent column. + +2012-01-03 Nicolas Goaziou <n.goaziou@gmail.com> + + * org-footnote.el (org-footnote-new): Only forbid non-inlined + footnotes at column 0, as only them can be confused with a + footnote definition. + +2012-01-03 Nicolas Goaziou <n.goaziou@gmail.com> + + * org-footnote.el (org-footnote-new): Use `ido' or `iswitchb' + when available when prompted for a label. Also rename a local + variable to avoid confusion with an existing function. + +2012-01-03 Nicolas Goaziou <n.goaziou@gmail.com> + + * org-footnote.el (org-footnote-label-history): Removed + variable + (org-footnote-new): Remove call to that variable. + +2012-01-03 Nicolas Goaziou <n.goaziou@gmail.com> + + * org.el (org-insert-heading): With `force-heading' non-nil, + inserting an heading before any headline, and just after a + list would return an error. + +2012-01-03 Eric Schulte <schulte.eric@gmail.com> + + * ob.el (org-babel-sha1-hash): Removed use of `copy-seq'. + +2012-01-03 Eric Schulte <schulte.eric@gmail.com> + + * org-bibtex.el (org-bibtex-get): Make the "FILE" property + non-special when resolving bibtex values. + +2012-01-03 David Maus <dmaus@ictsoc.de> + + * org.el (org-back-over-empty-lines): Don't move line upward + if point is at eob. + +2012-01-03 Nicolas Goaziou <n.goaziou@gmail.com> + + * org-footnote.el (org-footnote-in-valid-context-p): Check + `org-protected' property before allowing to match a footnote. + (org-footnote-at-reference-p): Remove an obsolete test. It is now + done in the previous function. + +2012-01-03 Nicolas Goaziou <n.goaziou@gmail.com> + + * org.el (org-between-regexps-p): Previous name implied the + function was related to blocks, which isn't mandatory. + (org-narrow-to-block, org-in-block-p) + (org-indent-line-function): Applied the rename. + + * ob-exp.el (org-babel-in-example-or-verbatim): Applied + rename. Also removed a white space. + +2012-01-03 Nicolas Goaziou <n.goaziou@gmail.com> + + * org.el (org-in-regexps-block-p): Return an useful value when + point is between START-RE and END-RE. No incomplete block is + allowed anymore. Add another optional argument to bound the + bottom part of the search. + (org-narrow-to-block, org-in-block-p): Apply modifications. + +2012-01-03 Eric Schulte <schulte.eric@gmail.com> + + * ob.el (org-babel-src-block-regexp): If a code block has a + body, its last character must be a newline. + +2012-01-03 Nicolas Goaziou <n.goaziou@gmail.com> + + * org-footnote.el (org-footnote-next-reference-or-definition): + If no more footnote is found, be sure to go back to the + original position. Otherwise, point might be left on a + footnote-like element that has been dished out. + +2012-01-03 Eric Schulte <schulte.eric@gmail.com> + + * ob-exp.el (org-babel-inline-src-block-regexp): Declare this + variable. + + * ob.el (defvar): Wrap variable declaration in + `eval-when-compile'. + +2012-01-03 Eric Schulte <schulte.eric@gmail.com> + + * ob-keys.el (org-babel-key-bindings): Bound to `C-c C-v k'. + +2012-01-03 Eric Schulte <schulte.eric@gmail.com> + + * ob-java.el (org-babel-execute:java): Allow cmdline flags + during compilation and evaluation. + 2011-12-06 Juanma Barranquero <lekktu@gmail.com> * ob.el (org-babel-expand-body:generic, org-babel-number-p): @@ -322,7 +2754,7 @@ 2011-07-28 Nicolas Goaziou <n.goaziou@gmail.com> * org-capture.el (org-capture): If no file is associated to - current buffer, check dired buffer and try to retreive a possibly + current buffer, check dired buffer and try to retrieve a possibly directory associated. 2011-07-28 Eric Schulte <schulte.eric@gmail.com> @@ -948,7 +3380,7 @@ 2011-07-28 Nicolas Goaziou <n.goaziou@gmail.com> * org-latex.el (org-export-latex-preprocess): Rely on - `org-export-footnotes-markers' to retreive definition of the + `org-export-footnotes-markers' to retrieve definition of the current footnote during export. 2011-07-28 Nicolas Goaziou <n.goaziou@gmail.com> @@ -18054,7 +20486,7 @@ ;; add-log-time-zone-rule: t ;; End: - Copyright (C) 2008-2011 Free Software Foundation, Inc. + Copyright (C) 2008-2012 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/lisp/org/ob-C.el b/lisp/org/ob-C.el index 4f8106cd66f..4f33fc45310 100644 --- a/lisp/org/ob-C.el +++ b/lisp/org/ob-C.el @@ -1,11 +1,10 @@ ;;; ob-C.el --- org-babel functions for C and similar languages -;; Copyright (C) 2010-2011 Free Software Foundation, Inc. +;; Copyright (C) 2010-2012 Free Software Foundation, Inc. ;; Author: Eric Schulte ;; Keywords: literate programming, reproducible research ;; Homepage: http://orgmode.org -;; Version: 7.7 ;; This file is part of GNU Emacs. @@ -180,7 +179,7 @@ of the same value." (format "int %S = %S;" var val)) ((floatp val) (format "double %S = %S;" var val)) - ((or (characterp val)) + ((or (integerp val)) (format "char %S = '%S';" var val)) ((stringp val) (format "char %S[%d] = \"%s\";" diff --git a/lisp/org/ob-R.el b/lisp/org/ob-R.el index 2b0e6d5e16a..e8400f494ad 100644 --- a/lisp/org/ob-R.el +++ b/lisp/org/ob-R.el @@ -1,12 +1,11 @@ ;;; ob-R.el --- org-babel functions for R code evaluation -;; Copyright (C) 2009-2011 Free Software Foundation, Inc. +;; Copyright (C) 2009-2012 Free Software Foundation, Inc. ;; Author: Eric Schulte ;; Dan Davison ;; Keywords: literate programming, reproducible research, R, statistics ;; Homepage: http://orgmode.org -;; Version: 7.7 ;; This file is part of GNU Emacs. @@ -80,7 +79,8 @@ "Execute a block of R code. This function is called by `org-babel-execute-src-block'." (save-excursion - (let* ((result-type (cdr (assoc :result-type params))) + (let* ((result-params (cdr (assoc :result-params params))) + (result-type (cdr (assoc :result-type params))) (session (org-babel-R-initiate-session (cdr (assoc :session params)) params)) (colnames-p (cdr (assoc :colnames params))) @@ -89,7 +89,7 @@ This function is called by `org-babel-execute-src-block'." (full-body (org-babel-expand-body:R body params graphics-file)) (result (org-babel-R-evaluate - session full-body result-type + session full-body result-type result-params (or (equal "yes" colnames-p) (org-babel-pick-name (cdr (assoc :colname-names params)) colnames-p)) @@ -197,6 +197,7 @@ current code buffer." '((:bmp . "bmp") (:jpg . "jpeg") (:jpeg . "jpeg") + (:tex . "tikz") (:tiff . "tiff") (:png . "png") (:svg . "svg") @@ -214,7 +215,7 @@ current code buffer." (setq device (or (and device (cdr (assq (intern (concat ":" device)) devices))) "png")) (setq filearg - (if (member device '("pdf" "postscript" "svg")) "file" "filename")) + (if (member device '("pdf" "postscript" "svg" "tikz")) "file" "filename")) (setq args (mapconcat (lambda (pair) (if (member (car pair) allowed-args) @@ -232,16 +233,16 @@ current code buffer." (defvar org-babel-R-write-object-command "{function(object,transfer.file){object;invisible(if(inherits(try({tfile<-tempfile();write.table(object,file=tfile,sep=\"\\t\",na=\"nil\",row.names=%s,col.names=%s,quote=FALSE);file.rename(tfile,transfer.file)},silent=TRUE),\"try-error\")){if(!file.exists(transfer.file))file.create(transfer.file)})}}(object=%s,transfer.file=\"%s\")") (defun org-babel-R-evaluate - (session body result-type column-names-p row-names-p) + (session body result-type result-params column-names-p row-names-p) "Evaluate R code in BODY." (if session (org-babel-R-evaluate-session - session body result-type column-names-p row-names-p) + session body result-type result-params column-names-p row-names-p) (org-babel-R-evaluate-external-process - body result-type column-names-p row-names-p))) + body result-type result-params column-names-p row-names-p))) (defun org-babel-R-evaluate-external-process - (body result-type column-names-p row-names-p) + (body result-type result-params column-names-p row-names-p) "Evaluate BODY in external R process. If RESULT-TYPE equals 'output then return standard output as a string. If RESULT-TYPE equals 'value then return the value of the @@ -258,11 +259,17 @@ last statement in BODY, as elisp." (format "{function ()\n{\n%s\n}}()" body) (org-babel-process-file-name tmp-file 'noquote))) (org-babel-R-process-value-result - (org-babel-import-elisp-from-file tmp-file '(16)) column-names-p))) + (if (or (member "scalar" result-params) + (member "verbatim" result-params)) + (with-temp-buffer + (insert-file-contents tmp-file) + (buffer-string)) + (org-babel-import-elisp-from-file tmp-file '(16))) + column-names-p))) (output (org-babel-eval org-babel-R-command body)))) (defun org-babel-R-evaluate-session - (session body result-type column-names-p row-names-p) + (session body result-type result-params column-names-p row-names-p) "Evaluate BODY in SESSION. If RESULT-TYPE equals 'output then return standard output as a string. If RESULT-TYPE equals 'value then return the value of the @@ -284,7 +291,13 @@ last statement in BODY, as elisp." "FALSE") ".Last.value" (org-babel-process-file-name tmp-file 'noquote))) (org-babel-R-process-value-result - (org-babel-import-elisp-from-file tmp-file '(16)) column-names-p))) + (if (or (member "scalar" result-params) + (member "verbatim" result-params)) + (with-temp-buffer + (insert-file-contents tmp-file) + (buffer-string)) + (org-babel-import-elisp-from-file tmp-file '(16))) + column-names-p))) (output (mapconcat #'org-babel-chomp @@ -295,7 +308,7 @@ last statement in BODY, as elisp." (mapcar (lambda (line) ;; cleanup extra prompts left in output (if (string-match - "^\\([ ]*[>+][ ]?\\)+\\([[0-9]+\\|[ ]\\)" line) + "^\\([ ]*[>+\\.][ ]?\\)+\\([[0-9]+\\|[ ]\\)" line) (substring line (match-end 1)) line)) (org-babel-comint-with-output (session org-babel-R-eoe-output) diff --git a/lisp/org/ob-asymptote.el b/lisp/org/ob-asymptote.el index 6bae3581cf4..913c5230815 100644 --- a/lisp/org/ob-asymptote.el +++ b/lisp/org/ob-asymptote.el @@ -1,11 +1,10 @@ ;;; ob-asymptote.el --- org-babel functions for asymptote evaluation -;; Copyright (C) 2009-2011 Free Software Foundation, Inc. +;; Copyright (C) 2009-2012 Free Software Foundation, Inc. ;; Author: Eric Schulte ;; Keywords: literate programming, reproducible research ;; Homepage: http://orgmode.org -;; Version: 7.7 ;; This file is part of GNU Emacs. @@ -98,9 +97,8 @@ Asymptote does not support sessions" The elisp value PAIR is converted into Asymptote code specifying a variable of the same value." (let ((var (car pair)) - (val (if (symbolp (cdr pair)) - (symbol-name (cdr pair)) - (cdr pair)))) + (val (let ((v (cdr pair))) + (if (symbolp v) (symbol-name v) v)))) (cond ((integerp val) (format "int %S=%S;" var val)) @@ -108,55 +106,42 @@ a variable of the same value." (format "real %S=%S;" var val)) ((stringp val) (format "string %S=\"%s\";" var val)) + ((and (listp val) (not (listp (car val)))) + (let* ((type (org-babel-asymptote-define-type val)) + (fmt (if (eq 'string type) "\"%s\"" "%s")) + (vect (mapconcat (lambda (e) (format fmt e)) val ", "))) + (format "%s[] %S={%s};" type var vect))) ((listp val) - (let* ((dimension-2-p (not (null (cdr val)))) - (dim (if dimension-2-p "[][]" "[]")) - (type (org-babel-asymptote-define-type val)) - (array (org-babel-asymptote-table-to-array - val - (if dimension-2-p '(:lstart "{" :lend "}," :llend "}"))))) - (format "%S%s %S=%s;" type dim var array)))))) - -(defun org-babel-asymptote-table-to-array (table params) - "Convert values of an elisp table into a string of an asymptote array. -Empty cells are ignored." - (labels ((atom-to-string (table) - (cond - ((null table) '()) - ((not (listp (car table))) - (cons (if (and (stringp (car table)) - (not (string= (car table) ""))) - (format "\"%s\"" (car table)) - (format "%s" (car table))) - (atom-to-string (cdr table)))) - (t - (cons (atom-to-string (car table)) - (atom-to-string (cdr table)))))) - ;; Remove any empty row - (fix-empty-lines (table) - (delq nil (mapcar (lambda (l) (delq "" l)) table)))) - (orgtbl-to-generic - (fix-empty-lines (atom-to-string table)) - (org-combine-plists '(:hline nil :sep "," :tstart "{" :tend "}") params)))) + (let* ((type (org-babel-asymptote-define-type val)) + (fmt (if (eq 'string type) "\"%s\"" "%s")) + (array (mapconcat (lambda (row) + (concat "{" + (mapconcat (lambda (e) (format fmt e)) + row ", ") + "}")) + val ","))) + (format "%S[][] %S={%s};" type var array)))))) (defun org-babel-asymptote-define-type (data) "Determine type of DATA. -DATA is a list. Type symbol is returned as 'symbol. The type is -usually the type of the first atom encountered, except for arrays -of int, where every cell must be of int type." - (labels ((anything-but-int (el) - (cond - ((null el) nil) - ((not (listp (car el))) - (cond - ((floatp (car el)) 'real) - ((stringp (car el)) 'string) - (t - (anything-but-int (cdr el))))) - (t - (or (anything-but-int (car el)) - (anything-but-int (cdr el))))))) - (or (anything-but-int data) 'int))) + +DATA is a list. Return type as a symbol. + +The type is `string' if any element in DATA is +a string. Otherwise, it is either `real', if some elements are +floats, or `int'." + (let* ((type 'int) + find-type ; for byte-compiler + (find-type + (function + (lambda (row) + (catch 'exit + (mapc (lambda (el) + (cond ((listp el) (funcall find-type el)) + ((stringp el) (throw 'exit (setq type 'string))) + ((floatp el) (setq type 'real)))) + row)))))) + (funcall find-type data) type)) (provide 'ob-asymptote) diff --git a/lisp/org/ob-awk.el b/lisp/org/ob-awk.el index 66e07bf175c..682d802c11c 100644 --- a/lisp/org/ob-awk.el +++ b/lisp/org/ob-awk.el @@ -1,11 +1,10 @@ ;;; ob-awk.el --- org-babel functions for awk evaluation -;; Copyright (C) 2011 Free Software Foundation, Inc. +;; Copyright (C) 2011-2012 Free Software Foundation, Inc. ;; Author: Eric Schulte ;; Keywords: literate programming, reproducible research ;; Homepage: http://orgmode.org -;; Version: 7.7 ;; This file is part of GNU Emacs. @@ -25,9 +24,9 @@ ;;; Commentary: ;; Babel's awk can use special header argument: -;; +;; ;; - :in-file takes a path to a file of data to be processed by awk -;; +;; ;; - :stdin takes an Org-mode data or code block reference, the value ;; of which will be passed to the awk process through STDIN @@ -49,7 +48,7 @@ "Expand BODY according to PARAMS, return the expanded body." (dolist (pair (mapcar #'cdr (org-babel-get-header params :var))) (setf body (replace-regexp-in-string - (regexp-quote (concat "$" (car pair))) (cdr pair) body))) + (regexp-quote (format "$%s" (car pair))) (cdr pair) body))) body) (defun org-babel-execute:awk (body params) diff --git a/lisp/org/ob-calc.el b/lisp/org/ob-calc.el index 68694786729..f8ad7e3374e 100644 --- a/lisp/org/ob-calc.el +++ b/lisp/org/ob-calc.el @@ -1,11 +1,10 @@ ;;; ob-calc.el --- org-babel functions for calc code evaluation -;; Copyright (C) 2010-2011 Free Software Foundation, Inc +;; Copyright (C) 2010-2012 Free Software Foundation, Inc. ;; Author: Eric Schulte ;; Keywords: literate programming, reproducible research ;; Homepage: http://orgmode.org -;; Version: 7.7 ;; This file is part of GNU Emacs. @@ -29,10 +28,15 @@ ;;; Code: (require 'ob) (require 'calc) -(require 'calc-store) -(unless (featurep 'xemacs) (require 'calc-trail)) +(unless (featurep 'xemacs) + (require 'calc-trail) + (require 'calc-store)) (eval-when-compile (require 'ob-comint)) +(declare-function calc-store-into "calc-store" (&optional var)) +(declare-function calc-recall "calc-store" (&optional var)) +(declare-function math-evaluate-expr "calc-ext" (x)) + (defvar org-babel-default-header-args:calc nil "Default arguments for evaluating an calc source block.") diff --git a/lisp/org/ob-clojure.el b/lisp/org/ob-clojure.el index 090b60662f8..1c0c37c1dd4 100644 --- a/lisp/org/ob-clojure.el +++ b/lisp/org/ob-clojure.el @@ -1,12 +1,11 @@ ;;; ob-clojure.el --- org-babel functions for clojure evaluation -;; Copyright (C) 2009-2011 Free Software Foundation, Inc. +;; Copyright (C) 2009-2012 Free Software Foundation, Inc. ;; Author: Joel Boehland ;; Eric Schulte ;; Keywords: literate programming, reproducible research ;; Homepage: http://orgmode.org -;; Version: 7.7 ;; This file is part of GNU Emacs. diff --git a/lisp/org/ob-comint.el b/lisp/org/ob-comint.el index efdac4d3818..a0712b90f35 100644 --- a/lisp/org/ob-comint.el +++ b/lisp/org/ob-comint.el @@ -1,11 +1,10 @@ ;;; ob-comint.el --- org-babel functions for interaction with comint buffers -;; Copyright (C) 2009-2011 Free Software Foundation, Inc. +;; Copyright (C) 2009-2012 Free Software Foundation, Inc. ;; Author: Eric Schulte ;; Keywords: literate programming, reproducible research, comint ;; Homepage: http://orgmode.org -;; Version: 7.7 ;; This file is part of GNU Emacs. @@ -54,6 +53,7 @@ executed inside the protection of `save-excursion' and (error "buffer %s doesn't exist or has no process" ,buffer)) (set-buffer ,buffer) ,@body))) +(def-edebug-spec org-babel-comint-in-buffer (form body)) (defmacro org-babel-comint-with-output (meta &rest body) "Evaluate BODY in BUFFER and return process output. @@ -115,6 +115,7 @@ or user `keyboard-quit' during execution of body." string-buffer)) (setq raw (substring string-buffer (match-end 0)))) (split-string string-buffer comint-prompt-regexp))))) +(def-edebug-spec org-babel-comint-with-output (form body)) (defun org-babel-comint-input-command (buffer cmd) "Pass CMD to BUFFER. diff --git a/lisp/org/ob-css.el b/lisp/org/ob-css.el index 7bc97f82909..a9ac1cfa20f 100644 --- a/lisp/org/ob-css.el +++ b/lisp/org/ob-css.el @@ -1,11 +1,10 @@ ;;; ob-css.el --- org-babel functions for css evaluation -;; Copyright (C) 2009-2011 Free Software Foundation, Inc. +;; Copyright (C) 2009-2012 Free Software Foundation, Inc. ;; Author: Eric Schulte ;; Keywords: literate programming, reproducible research ;; Homepage: http://orgmode.org -;; Version: 7.7 ;; This file is part of GNU Emacs. diff --git a/lisp/org/ob-ditaa.el b/lisp/org/ob-ditaa.el index db638f6ef98..17e9d5d0ccf 100644 --- a/lisp/org/ob-ditaa.el +++ b/lisp/org/ob-ditaa.el @@ -1,11 +1,10 @@ ;;; ob-ditaa.el --- org-babel functions for ditaa evaluation -;; Copyright (C) 2009-2011 Free Software Foundation, Inc. +;; Copyright (C) 2009-2012 Free Software Foundation, Inc. ;; Author: Eric Schulte ;; Keywords: literate programming, reproducible research ;; Homepage: http://orgmode.org -;; Version: 7.7 ;; This file is part of GNU Emacs. @@ -40,10 +39,22 @@ (require 'ob) (defvar org-babel-default-header-args:ditaa - '((:results . "file") (:exports . "results") (:java . "-Dfile.encoding=UTF-8")) + '((:results . "file") + (:exports . "results") + (:java . "-Dfile.encoding=UTF-8")) "Default arguments for evaluating a ditaa source block.") -(defvar org-ditaa-jar-path) +(defcustom org-ditaa-jar-path nil + "Path for the ditaa jar file." + :group 'org-babel + :type 'string) + +(defcustom org-ditaa-jar-option "-jar" + "Option for the ditaa jar file. +Do not leave leading or trailing spaces in this string." + :group 'org-babel + :type 'string) + (defun org-babel-execute:ditaa (body params) "Execute a block of Ditaa code with org-babel. This function is called by `org-babel-execute-src-block'." @@ -56,7 +67,7 @@ This function is called by `org-babel-execute-src-block'." (cmdline (cdr (assoc :cmdline params))) (java (cdr (assoc :java params))) (in-file (org-babel-temp-file "ditaa-")) - (cmd (concat "java " java " -jar " + (cmd (concat "java " java " " org-ditaa-jar-option " " (shell-quote-argument (expand-file-name org-ditaa-jar-path)) " " cmdline diff --git a/lisp/org/ob-dot.el b/lisp/org/ob-dot.el index cc78ac5bf95..1d4b7da7e18 100644 --- a/lisp/org/ob-dot.el +++ b/lisp/org/ob-dot.el @@ -1,11 +1,10 @@ ;;; ob-dot.el --- org-babel functions for dot evaluation -;; Copyright (C) 2009-2011 Free Software Foundation, Inc. +;; Copyright (C) 2009-2012 Free Software Foundation, Inc. ;; Author: Eric Schulte ;; Keywords: literate programming, reproducible research ;; Homepage: http://orgmode.org -;; Version: 7.7 ;; This file is part of GNU Emacs. diff --git a/lisp/org/ob-emacs-lisp.el b/lisp/org/ob-emacs-lisp.el index 2eccf19b6d1..afbc20d5fc5 100644 --- a/lisp/org/ob-emacs-lisp.el +++ b/lisp/org/ob-emacs-lisp.el @@ -1,11 +1,10 @@ ;;; ob-emacs-lisp.el --- org-babel functions for emacs-lisp code evaluation -;; Copyright (C) 2009-2011 Free Software Foundation, Inc +;; Copyright (C) 2009-2012 Free Software Foundation, Inc. ;; Author: Eric Schulte ;; Keywords: literate programming, reproducible research ;; Homepage: http://orgmode.org -;; Version: 7.7 ;; This file is part of GNU Emacs. diff --git a/lisp/org/ob-eval.el b/lisp/org/ob-eval.el index e74be0b6e02..0ac6ab004b7 100644 --- a/lisp/org/ob-eval.el +++ b/lisp/org/ob-eval.el @@ -1,11 +1,10 @@ ;;; ob-eval.el --- org-babel functions for external code evaluation -;; Copyright (C) 2009-2011 Free Software Foundation, Inc. +;; Copyright (C) 2009-2012 Free Software Foundation, Inc. ;; Author: Eric Schulte ;; Keywords: literate programming, reproducible research, comint ;; Homepage: http://orgmode.org -;; Version: 7.7 ;; This file is part of GNU Emacs. diff --git a/lisp/org/ob-exp.el b/lisp/org/ob-exp.el index 0fceb184c5e..bfb3aa85bca 100644 --- a/lisp/org/ob-exp.el +++ b/lisp/org/ob-exp.el @@ -1,12 +1,11 @@ ;;; ob-exp.el --- Exportation of org-babel source blocks -;; Copyright (C) 2009-2011 Free Software Foundation, Inc. +;; Copyright (C) 2009-2012 Free Software Foundation, Inc. ;; Author: Eric Schulte ;; Dan Davison ;; Keywords: literate programming, reproducible research ;; Homepage: http://orgmode.org -;; Version: 7.7 ;; This file is part of GNU Emacs. @@ -37,7 +36,6 @@ (declare-function org-babel-eval-wipe-error-buffer "ob-eval" ()) (add-to-list 'org-export-interblocks '(src org-babel-exp-inline-src-blocks)) (add-to-list 'org-export-interblocks '(lob org-babel-exp-lob-one-liners)) -(add-hook 'org-export-blocks-postblock-hook 'org-exp-res/src-name-cleanup) (org-export-blocks-add-block '(src org-babel-exp-src-block nil)) @@ -74,6 +72,7 @@ process." (setq results ,@body)) (set-buffer export-buffer) results))) +(def-edebug-spec org-babel-exp-in-export-file (form body)) (defun org-babel-exp-src-block (body &rest headers) "Process source block for export. @@ -105,7 +104,6 @@ none ----- do not display either code or results upon export" (org-babel-process-params (org-babel-merge-params org-babel-default-header-args - (org-babel-params-from-buffer) (org-babel-params-from-properties lang) (if (boundp lang-headers) (eval lang-headers) nil) raw-params)))) @@ -129,10 +127,10 @@ options and are taken from `org-babel-default-inline-header-args'." (while (and (< (point) end) (re-search-forward org-babel-inline-src-block-regexp end t)) (let* ((info (save-match-data (org-babel-parse-inline-src-block-match))) - (params (nth 2 info)) code-replacement) + (params (nth 2 info))) (save-match-data (goto-char (match-beginning 2)) - (when (not (org-babel-in-example-or-verbatim)) + (unless (org-babel-in-example-or-verbatim) ;; expand noweb references in the original file (setf (nth 1 info) (if (and (cdr (assoc :noweb params)) @@ -140,39 +138,25 @@ options and are taken from `org-babel-default-inline-header-args'." (org-babel-expand-noweb-references info (get-file-buffer org-current-export-file)) (nth 1 info))) - (setq code-replacement (org-babel-exp-do-export info 'inline)))) - (if code-replacement - (replace-match code-replacement nil nil nil 1) - (org-babel-examplize-region (match-beginning 1) (match-end 1)) - (forward-char 2)))))) - -(defun org-exp-res/src-name-cleanup () - "Clean up #+results and #+srcname lines for export. -This function should only be called after all block processing -has taken place." - (interactive) - (save-excursion - (goto-char (point-min)) - (while (org-re-search-forward-unprotected - (concat - "\\("org-babel-src-name-regexp"\\|"org-babel-result-regexp"\\)") - nil t) - (delete-region - (progn (beginning-of-line) (point)) - (progn (end-of-line) (+ 1 (point))))))) + (let ((code-replacement (save-match-data + (org-babel-exp-do-export info 'inline)))) + (if code-replacement + (replace-match code-replacement nil nil nil 1) + (org-babel-examplize-region (match-beginning 1) (match-end 1)) + (forward-char 2))))))))) (defun org-babel-in-example-or-verbatim () "Return true if point is in example or verbatim code. Example and verbatim code include escaped portions of an org-mode buffer code that should be treated as normal org-mode text." - (or (org-in-indented-comment-line) - (save-match-data + (or (save-match-data (save-excursion (goto-char (point-at-bol)) (looking-at "[ \t]*:[ \t]"))) (org-in-verbatim-emphasis) - (org-in-regexps-block-p "^[ \t]*#\\+begin_src" "^[ \t]*#\\+end_src"))) + (org-in-block-p org-list-forbidden-blocks) + (org-between-regexps-p "^[ \t]*#\\+begin_src" "^[ \t]*#\\+end_src"))) (defvar org-babel-default-lob-header-args) (defun org-babel-exp-lob-one-liners (start end) @@ -183,8 +167,8 @@ options are taken from `org-babel-default-header-args'." (save-excursion (goto-char start) (while (and (< (point) end) - (re-search-forward org-babel-lob-one-liner-regexp nil t)) - (unless (and (match-string 12) (org-babel-in-example-or-verbatim)) + (re-search-forward org-babel-lob-one-liner-regexp end t)) + (unless (org-babel-in-example-or-verbatim) (let* ((lob-info (org-babel-lob-get-info)) (inlinep (match-string 11)) (inline-start (match-end 11)) @@ -196,7 +180,6 @@ options are taken from `org-babel-default-header-args'." (org-babel-merge-params org-babel-default-header-args org-babel-default-lob-header-args - (org-babel-params-from-buffer) (org-babel-params-from-properties) (org-babel-parse-header-arguments (org-babel-clean-text-properties @@ -232,7 +215,7 @@ The function respects the value of the :exports header argument." (defun org-babel-exp-code (info) "Return the original code block formatted for export." (org-fill-template - "#+BEGIN_SRC %lang%flags\n%body\n#+END_SRC\n" + "#+BEGIN_SRC %lang%flags\n%body\n#+END_SRC" `(("lang" . ,(nth 0 info)) ("flags" . ,((lambda (f) (when f (concat " " f))) (nth 3 info))) ("body" . ,(nth 1 info))))) @@ -258,7 +241,15 @@ inhibit insertion of results into the buffer." (nth 2 info) `((:results . ,(if silent "silent" "replace"))))))) (cond - ((or (equal type 'block) (equal type 'inline)) + ((equal type 'block) + (org-babel-execute-src-block nil info)) + ((equal type 'inline) + ;; position the point on the inline source block allowing + ;; `org-babel-insert-result' to check that the block is + ;; inline + (re-search-backward "[ \f\t\n\r\v]" nil t) + (re-search-forward org-babel-inline-src-block-regexp nil t) + (re-search-backward "src_" nil t) (org-babel-execute-src-block nil info)) ((equal type 'lob) (save-excursion diff --git a/lisp/org/ob-fortran.el b/lisp/org/ob-fortran.el new file mode 100644 index 00000000000..b6305c42769 --- /dev/null +++ b/lisp/org/ob-fortran.el @@ -0,0 +1,164 @@ +;;; ob-fortran.el --- org-babel functions for fortran + +;; Copyright (C) 2011-2012 Free Software Foundation, Inc. + +;; Authors: Sergey Litvinov +;; Eric Schulte +;; Keywords: literate programming, reproducible research, fortran +;; Homepage: http://orgmode.org +;; Version: 7.8.02 + +;; 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 3 of the License, 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. If not, see <http://www.gnu.org/licenses/>. + +;;; Commentary: + +;; Org-Babel support for evaluating fortran code. +;; Based on ob-C.el by Eric Schulte. + +;;; Code: +(require 'ob) +(require 'ob-eval) +(require 'cc-mode) + +(declare-function org-entry-get "org" + (pom property &optional inherit literal-nil)) + +(defvar org-babel-tangle-lang-exts) +(add-to-list 'org-babel-tangle-lang-exts '("fortran" . "F90")) + +(defvar org-babel-default-header-args:fortran '()) + +(defvar org-babel-fortran-compiler "gfortran" + "fortran command used to compile a fortran source code file into an + executable.") + +(defun org-babel-execute:fortran (body params) + "This function should only be called by `org-babel-execute:fortran'" + (let* ((tmp-src-file (org-babel-temp-file "fortran-src-" ".F90")) + (tmp-bin-file (org-babel-temp-file "fortran-bin-")) + (cmdline (cdr (assoc :cmdline params))) + (flags (cdr (assoc :flags params))) + (full-body (org-babel-expand-body:fortran body params)) + (compile + (progn + (with-temp-file tmp-src-file (insert full-body)) + (org-babel-eval + (format "%s -o %s %s %s" + org-babel-fortran-compiler + (org-babel-process-file-name tmp-bin-file) + (mapconcat 'identity + (if (listp flags) flags (list flags)) " ") + (org-babel-process-file-name tmp-src-file)) "")))) + ((lambda (results) + (org-babel-reassemble-table + (if (member "vector" (cdr (assoc :result-params params))) + (let ((tmp-file (org-babel-temp-file "f-"))) + (with-temp-file tmp-file (insert results)) + (org-babel-import-elisp-from-file tmp-file)) + (org-babel-read results)) + (org-babel-pick-name + (cdr (assoc :colname-names params)) (cdr (assoc :colnames params))) + (org-babel-pick-name + (cdr (assoc :rowname-names params)) (cdr (assoc :rownames params))))) + (org-babel-trim + (org-babel-eval + (concat tmp-bin-file (if cmdline (concat " " cmdline) "")) ""))))) + +(defun org-babel-expand-body:fortran (body params) + "Expand a block of fortran or fortran code with org-babel according to +it's header arguments." + (let ((vars (mapcar #'cdr (org-babel-get-header params :var))) + (main-p (not (string= (cdr (assoc :main params)) "no"))) + (includes (or (cdr (assoc :includes params)) + (org-babel-read (org-entry-get nil "includes" t)))) + (defines (org-babel-read + (or (cdr (assoc :defines params)) + (org-babel-read (org-entry-get nil "defines" t)))))) + (mapconcat 'identity + (list + ;; includes + (mapconcat + (lambda (inc) (format "#include %s" inc)) + (if (listp includes) includes (list includes)) "\n") + ;; defines + (mapconcat + (lambda (inc) (format "#define %s" inc)) + (if (listp defines) defines (list defines)) "\n") + ;; body + (if main-p + (org-babel-fortran-ensure-main-wrap + (concat + ;; variables + (mapconcat 'org-babel-fortran-var-to-fortran vars "\n") + body) params) + body) "\n") "\n"))) + +(defun org-babel-fortran-ensure-main-wrap (body params) + "Wrap body in a \"program ... end program\" block if none exists." + (if (string-match "^[ \t]*program[ \t]*.*" (capitalize body)) + (let ((vars (mapcar #'cdr (org-babel-get-header params :var)))) + (if vars (error "cannot use :vars if 'program' statment is present")) + body) + (format "program main\n%s\nend program main\n" body))) + +(defun org-babel-prep-session:fortran (session params) + "This function does nothing as fortran is a compiled language with no +support for sessions" + (error "fortran is a compiled languages -- no support for sessions")) + +(defun org-babel-load-session:fortran (session body params) + "This function does nothing as fortran is a compiled language with no +support for sessions" + (error "fortran is a compiled languages -- no support for sessions")) + +;; helper functions + +(defun org-babel-fortran-var-to-fortran (pair) + "fortranonvert an elisp val into a string of fortran code specifying a var +of the same value." + ;; TODO list support + (let ((var (car pair)) + (val (cdr pair))) + (when (symbolp val) + (setq val (symbol-name val)) + (when (= (length val) 1) + (setq val (string-to-char val)))) + (cond + ((integerp val) + (format "integer, parameter :: %S = %S\n" var val)) + ((floatp val) + (format "real, parameter :: %S = %S\n" var val)) + ((or (integerp val)) + (format "character, parameter :: %S = '%S'\n" var val)) + ((stringp val) + (format "character(len=%d), parameter :: %S = '%s'\n" + (length val) var val)) + ((listp val) + (format "real, parameter :: %S(%d) = %s\n" + var (length val) (ob-fortran-transform-list val))) + (t + (error (format "the type of parameter %s is not supported by ob-fortran" + var)))))) + +(defun ob-fortran-transform-list (val) + "Return a fortran representation of enclose syntactic lists." + (if (listp val) + (concat "(/" (mapconcat #'ob-fortran-transform-list val ", ") "/)") + (format "%S" val))) + +(provide 'ob-fortran) + +;;; ob-fortran.el ends here diff --git a/lisp/org/ob-gnuplot.el b/lisp/org/ob-gnuplot.el index 9bf0433f9fc..5d07366e774 100644 --- a/lisp/org/ob-gnuplot.el +++ b/lisp/org/ob-gnuplot.el @@ -1,11 +1,10 @@ ;;; ob-gnuplot.el --- org-babel functions for gnuplot evaluation -;; Copyright (C) 2009-2011 Free Software Foundation, Inc. +;; Copyright (C) 2009-2012 Free Software Foundation, Inc. ;; Author: Eric Schulte ;; Keywords: literate programming, reproducible research ;; Homepage: http://orgmode.org -;; Version: 7.7 ;; This file is part of GNU Emacs. @@ -35,7 +34,7 @@ ;;; Requirements: ;; - gnuplot :: http://www.gnuplot.info/ -;; +;; ;; - gnuplot-mode :: http://cars9.uchicago.edu/~ravel/software/gnuplot-mode.html ;;; Code: @@ -149,7 +148,10 @@ This function is called by `org-babel-execute-src-block'." (shell-command-to-string (format "gnuplot \"%s\"" - (org-babel-process-file-name script-file)))) + (org-babel-process-file-name + script-file + (if (member system-type '(cygwin windows-nt ms-dos)) + t nil))))) (message output)) (with-temp-buffer (insert (concat body "\n")) diff --git a/lisp/org/ob-haskell.el b/lisp/org/ob-haskell.el index 236dbba28f1..53c55329752 100644 --- a/lisp/org/ob-haskell.el +++ b/lisp/org/ob-haskell.el @@ -1,11 +1,10 @@ ;;; ob-haskell.el --- org-babel functions for haskell evaluation -;; Copyright (C) 2009-2011 Free Software Foundation, Inc. +;; Copyright (C) 2009-2012 Free Software Foundation, Inc. ;; Author: Eric Schulte ;; Keywords: literate programming, reproducible research ;; Homepage: http://orgmode.org -;; Version: 7.7 ;; This file is part of GNU Emacs. @@ -29,7 +28,7 @@ ;; they can be run, but haskell code can also be run through an ;; interactive interpreter. ;; -;; For now let's only allow evaluation using the haskell interpreter. +;; For now lets only allow evaluation using the haskell interpreter. ;;; Requirements: diff --git a/lisp/org/ob-java.el b/lisp/org/ob-java.el index 20824d4cb30..75afda124d6 100644 --- a/lisp/org/ob-java.el +++ b/lisp/org/ob-java.el @@ -1,11 +1,10 @@ ;;; ob-java.el --- org-babel functions for java evaluation -;; Copyright (C) 2011 Free Software Foundation, Inc. +;; Copyright (C) 2011-2012 Free Software Foundation, Inc. ;; Author: Eric Schulte ;; Keywords: literate programming, reproducible research ;; Homepage: http://orgmode.org -;; Version: 7.7 ;; This file is part of GNU Emacs. @@ -46,11 +45,14 @@ "Can't compile a java block without a classname"))) (packagename (file-name-directory classname)) (src-file (concat classname ".java")) + (cmpflag (or (cdr (assoc :cmpflag params)) "")) + (cmdline (or (cdr (assoc :cmdline params)) "")) (full-body (org-babel-expand-body:generic body params)) (compile (progn (with-temp-file src-file (insert full-body)) (org-babel-eval - (concat org-babel-java-compiler " " src-file) "")))) + (concat org-babel-java-compiler + " " cmpflag " " src-file) "")))) ;; created package-name directories if missing (unless (or (not packagename) (file-exists-p packagename)) (make-directory packagename 'parents)) @@ -65,7 +67,8 @@ (cdr (assoc :colname-names params)) (cdr (assoc :colnames params))) (org-babel-pick-name (cdr (assoc :rowname-names params)) (cdr (assoc :rownames params))))) - (org-babel-eval (concat org-babel-java-command " " classname) "")))) + (org-babel-eval (concat org-babel-java-command + " " cmdline " " classname) "")))) (provide 'ob-java) diff --git a/lisp/org/ob-js.el b/lisp/org/ob-js.el index 9e6751c9525..bbb7aa0855e 100644 --- a/lisp/org/ob-js.el +++ b/lisp/org/ob-js.el @@ -1,11 +1,10 @@ ;;; ob-js.el --- org-babel functions for Javascript -;; Copyright (C) 2010-2011 Free Software Foundation +;; Copyright (C) 2010-2012 Free Software Foundation, Inc. ;; Author: Eric Schulte ;; Keywords: literate programming, reproducible research, js ;; Homepage: http://orgmode.org -;; Version: 7.7 ;; This file is part of GNU Emacs. diff --git a/lisp/org/ob-keys.el b/lisp/org/ob-keys.el index b56ba5cf01a..759bef3905f 100644 --- a/lisp/org/ob-keys.el +++ b/lisp/org/ob-keys.el @@ -1,11 +1,10 @@ ;;; ob-keys.el --- key bindings for org-babel -;; Copyright (C) 2009-2011 Free Software Foundation, Inc. +;; Copyright (C) 2009-2012 Free Software Foundation, Inc. ;; Author: Eric Schulte ;; Keywords: literate programming, reproducible research ;; Homepage: http://orgmode.org -;; Version: 7.7 ;; This file is part of GNU Emacs. @@ -75,6 +74,8 @@ functions which are assigned key bindings, and see ("f" . org-babel-tangle-file) ("\C-c" . org-babel-check-src-block) ("c" . org-babel-check-src-block) + ("\C-j" . org-babel-insert-header-arg) + ("j" . org-babel-insert-header-arg) ("\C-l" . org-babel-load-in-session) ("l" . org-babel-load-in-session) ("\C-i" . org-babel-lob-ingest) diff --git a/lisp/org/ob-latex.el b/lisp/org/ob-latex.el index c27ca33080a..0db71992826 100644 --- a/lisp/org/ob-latex.el +++ b/lisp/org/ob-latex.el @@ -1,11 +1,10 @@ ;;; ob-latex.el --- org-babel functions for latex "evaluation" -;; Copyright (C) 2009-2011 Free Software Foundation, Inc. +;; Copyright (C) 2009-2012 Free Software Foundation, Inc. ;; Author: Eric Schulte ;; Keywords: literate programming, reproducible research ;; Homepage: http://orgmode.org -;; Version: 7.7 ;; This file is part of GNU Emacs. @@ -73,6 +72,10 @@ This function is called by `org-babel-execute-src-block'." (let* ((out-file (cdr (assoc :file params))) (tex-file (org-babel-temp-file "latex-" ".tex")) (border (cdr (assoc :border params))) + (imagemagick (cdr (assoc :imagemagick params))) + (im-in-options (cdr (assoc :iminoptions params))) + (im-out-options (cdr (assoc :imoutoptions params))) + (pdfpng (cdr (assoc :pdfpng params))) (fit (or (cdr (assoc :fit params)) border)) (height (and fit (cdr (assoc :pdfheight params)))) (width (and fit (cdr (assoc :pdfwidth params)))) @@ -82,10 +85,10 @@ This function is called by `org-babel-execute-src-block'." (append (cdr (assoc :packages params)) org-export-latex-packages-alist))) (cond - ((string-match "\\.png$" out-file) + ((and (string-match "\\.png$" out-file) (not imagemagick)) (org-create-formula-image body out-file org-format-latex-options in-buffer)) - ((string-match "\\.pdf$" out-file) + ((or (string-match "\\.pdf$" out-file) imagemagick) (require 'org-latex) (with-temp-file tex-file (insert @@ -119,13 +122,29 @@ This function is called by `org-babel-execute-src-block'." (concat "\n\\begin{document}\n" body "\n\\end{document}\n"))) (org-export-latex-fix-inputenc)) (when (file-exists-p out-file) (delete-file out-file)) - (rename-file (org-babel-latex-tex-to-pdf tex-file) out-file)) + (let ((transient-pdf-file (org-babel-latex-tex-to-pdf tex-file))) + (cond + ((string-match "\\.pdf$" out-file) + (rename-file transient-pdf-file out-file)) + (imagemagick + (convert-pdf + transient-pdf-file out-file im-in-options im-out-options) + (when (file-exists-p transient-pdf-file) + (delete-file transient-pdf-file)))))) ((string-match "\\.\\([^\\.]+\\)$" out-file) - (error "can not create %s files, please specify a .png or .pdf file" + (error "can not create %s files, please specify a .png or .pdf file or try the :imagemagick header arguement" (match-string 1 out-file)))) nil) ;; signal that output has already been written to file body)) + +(defun convert-pdf (pdffile out-file im-in-options im-out-options) + "Generate a file from a pdf file using imagemagick." + (let ((cmd (concat "convert " im-in-options " " pdffile " " + im-out-options " " out-file))) + (message (concat "Converting pdffile file " cmd "...")) + (shell-command cmd))) + (defun org-babel-latex-tex-to-pdf (file) "Generate a pdf file according to the contents FILE. Extracted from `org-export-as-pdf' in org-latex.el." @@ -171,7 +190,7 @@ Extracted from `org-export-as-pdf' in org-latex.el." pdffile))) (defun org-babel-prep-session:latex (session params) - "Return an error because LaTeX doesn't support sesstions." + "Return an error because LaTeX doesn't support sessions." (error "LaTeX does not support sessions")) (provide 'ob-latex) diff --git a/lisp/org/ob-ledger.el b/lisp/org/ob-ledger.el index 4fe61451982..e9c142712eb 100644 --- a/lisp/org/ob-ledger.el +++ b/lisp/org/ob-ledger.el @@ -1,11 +1,10 @@ ;;; ob-ledger.el --- org-babel functions for ledger evaluation -;; Copyright (C) 2010-2011 Free Software Foundation, Inc. +;; Copyright (C) 2010-2012 Free Software Foundation, Inc. ;; Author: Eric S Fraga ;; Keywords: literate programming, reproducible research, accounting ;; Homepage: http://orgmode.org -;; Version: 7.7 ;; This file is part of GNU Emacs. @@ -30,7 +29,7 @@ ;; ;; 1) there is no such thing as a "session" in ledger ;; -;; 2) we are generally only going to return output from the ledger program +;; 2) we are generally only going to return output from the leger program ;; ;; 3) we are adding the "cmdline" header argument ;; diff --git a/lisp/org/ob-lilypond.el b/lisp/org/ob-lilypond.el index 23fc8f04c34..0dde0de9e42 100644 --- a/lisp/org/ob-lilypond.el +++ b/lisp/org/ob-lilypond.el @@ -1,11 +1,10 @@ ;;; ob-lilypond.el --- org-babel functions for lilypond evaluation -;; Copyright (C) 2010-2011 Free Software Foundation, Inc. +;; Copyright (C) 2010-2012 Free Software Foundation, Inc. ;; Author: Martyn Jago ;; Keywords: babel language, literate programming ;; Homepage: https://github.com/mjago/ob-lilypond -;; Version: 7.7 ;; This file is part of GNU Emacs. @@ -115,7 +114,7 @@ blocks") body)))) vars) body)) - + (defun org-babel-execute:lilypond (body params) "This function is called by `org-babel-execute-src-block'. Depending on whether we are in arrange mode either: @@ -139,7 +138,7 @@ specific arguments to =org-babel-tangle=" (defun ly-process-basic (body params) "Execute a lilypond block in basic mode" - + (let* ((result-params (cdr (assoc :result-params params))) (out-file (cdr (assoc :file params))) (cmdline (or (cdr (assoc :cmdline params)) @@ -148,7 +147,7 @@ specific arguments to =org-babel-tangle=" (with-temp-file in-file (insert (org-babel-expand-body:generic body params))) - + (org-babel-eval (concat (ly-determine-ly-path) @@ -178,7 +177,7 @@ If error in compilation, attempt to mark the error in lilypond org file" (ly-temp-file (ly-switch-extension (buffer-file-name) ".ly"))) (if (file-exists-p ly-tangled-file) - (progn + (progn (when (file-exists-p ly-temp-file) (delete-file ly-temp-file)) (rename-file ly-tangled-file @@ -244,7 +243,7 @@ FILE-NAME is full path to lilypond file" "Mark the erroneous lines in the lilypond org buffer. FILE-NAME is full path to lilypond file. LINE is the erroneous line" - + (switch-to-buffer-other-window (concat (file-name-nondirectory (ly-switch-extension file-name ".org")))) @@ -257,7 +256,7 @@ LINE is the erroneous line" (set-mark (point)) (goto-char (- (point) (length line)))) (goto-char temp)))) - + (defun ly-parse-line-num (&optional buffer) "Extract error line number." @@ -285,7 +284,7 @@ LINE is the erroneous line" "Extract the erroneous line from the tangled .ly file FILE-NAME is full path to lilypond file. LINENO is the number of the erroneous line" - + (with-temp-buffer (insert-file-contents (ly-switch-extension file-name ".ly") nil nil nil t) @@ -295,12 +294,12 @@ LINENO is the number of the erroneous line" (forward-line (- lineNo 1)) (buffer-substring (point) (point-at-eol))) nil))) - + (defun ly-attempt-to-open-pdf (file-name &optional test) "Attempt to display the generated pdf file FILE-NAME is full path to lilypond file If TEST is non-nil, the shell command is returned and is not run" - + (when ly-display-pdf-post-tangle (let ((pdf-file (ly-switch-extension file-name ".pdf"))) (if (file-exists-p pdf-file) @@ -341,7 +340,7 @@ If TEST is non-nil, it contains a simulation of the OS for test purposes" (defun ly-determine-pdf-path (&optional test) "Return correct path to pdf viewer depending on OS If TEST is non-nil, it contains a simulation of the OS for test purposes" - + (let ((sys-type (or test system-type))) (cond ((string= sys-type "darwin") @@ -353,7 +352,7 @@ If TEST is non-nil, it contains a simulation of the OS for test purposes" (defun ly-determine-midi-path (&optional test) "Return correct path to midi player depending on OS If TEST is non-nil, it contains a simulation of the OS for test purposes" - + (let ((sys-type (or test test system-type))) (cond ((string= sys-type "darwin") @@ -361,10 +360,10 @@ If TEST is non-nil, it contains a simulation of the OS for test purposes" ((string= sys-type "win32") ly-win32-midi-path) (t ly-nix-midi-path)))) - + (defun ly-toggle-midi-play () "Toggle whether midi will be played following a successful compilation" - + (interactive) (setq ly-play-midi-post-tangle (not ly-play-midi-post-tangle)) @@ -374,7 +373,7 @@ If TEST is non-nil, it contains a simulation of the OS for test purposes" (defun ly-toggle-pdf-display () "Toggle whether pdf will be displayed following a successful compilation" - + (interactive) (setq ly-display-pdf-post-tangle (not ly-display-pdf-post-tangle)) diff --git a/lisp/org/ob-lisp.el b/lisp/org/ob-lisp.el index 4ff9c4076ec..2e457878b7f 100644 --- a/lisp/org/ob-lisp.el +++ b/lisp/org/ob-lisp.el @@ -1,13 +1,12 @@ ;;; ob-lisp.el --- org-babel functions for common lisp evaluation -;; Copyright (C) 2009-2011 Free Software Foundation, Inc. +;; Copyright (C) 2009-2012 Free Software Foundation, Inc. ;; Author: Joel Boehland ;; Eric Schulte ;; David T. O'Toole <dto@gnu.org> ;; Keywords: literate programming, reproducible research ;; Homepage: http://orgmode.org -;; Version: 7.7 ;; This file is part of GNU Emacs. @@ -79,7 +78,7 @@ current directory string." (if (member "output" (cdr (assoc :result-params params))) (car result) (condition-case nil - (read (org-bable-lisp-vector-to-list (cadr result))) + (read (org-babel-lisp-vector-to-list (cadr result))) (error (cadr result))))) (with-temp-buffer (insert (org-babel-expand-body:lisp body params)) @@ -97,7 +96,7 @@ current directory string." (org-babel-pick-name (cdr (assoc :rowname-names params)) (cdr (assoc :rownames params))))) -(defun org-bable-lisp-vector-to-list (results) +(defun org-babel-lisp-vector-to-list (results) ;; TODO: better would be to replace #(...) with [...] (replace-regexp-in-string "#(" "(" results)) diff --git a/lisp/org/ob-lob.el b/lisp/org/ob-lob.el index 5cb40a057f3..8976427ab7e 100644 --- a/lisp/org/ob-lob.el +++ b/lisp/org/ob-lob.el @@ -1,12 +1,11 @@ ;;; ob-lob.el --- functions supporting the Library of Babel -;; Copyright (C) 2009-2011 Free Software Foundation, Inc. +;; Copyright (C) 2009-2012 Free Software Foundation, Inc. ;; Author: Eric Schulte ;; Dan Davison ;; Keywords: literate programming, reproducible research ;; Homepage: http://orgmode.org -;; Version: 7.7 ;; This file is part of GNU Emacs. @@ -29,6 +28,8 @@ (require 'ob) (require 'ob-table) +(declare-function org-babel-in-example-or-verbatim "ob-exp" nil) + (defvar org-babel-library-of-babel nil "Library of source-code blocks. This is an association list. Populate the library by adding @@ -62,24 +63,15 @@ To add files to this list use the `org-babel-lob-ingest' command." lob-ingest-count (if (> lob-ingest-count 1) "s" "")) lob-ingest-count)) -(defconst org-babel-lob-call-aliases '("lob" "call") - "Aliases to call a source block function. -If you change the value of this variable then your files may - become unusable by other org-babel users, and vice versa.") - (defconst org-babel-block-lob-one-liner-regexp (concat - "^\\([ \t]*\\)#\\+\\(?:" - (mapconcat #'regexp-quote org-babel-lob-call-aliases "\\|") - "\\):[ \t]+\\([^\(\)\n]+?\\)\\(\\[\\(.*\\)\\]\\|\\(\\)\\)" + "^\\([ \t]*\\)#\\+call:[ \t]+\\([^\(\)\n]+?\\)\\(\\[\\(.*\\)\\]\\|\\(\\)\\)" "\(\\([^\n]*\\)\)\\(\\[.+\\]\\|\\)[ \t]*\\(\\([^\n]*\\)\\)?") "Regexp to match non-inline calls to predefined source block functions.") (defconst org-babel-inline-lob-one-liner-regexp (concat - "\\([^\n]*\\)\\(?:" - (mapconcat #'regexp-quote org-babel-lob-call-aliases "\\|") - "\\)_\\([^\(\)\n]+?\\)\\(\\[\\(.*\\)\\]\\|\\(\\)\\)" + "\\([^\n]*\\)call_\\([^\(\)\n]+?\\)\\(\\[\\(.*\\)\\]\\|\\(\\)\\)" "\(\\([^\n]*\\)\)\\(\\[\\(.*?\\)\\]\\)?") "Regexp to match inline calls to predefined source block functions.") @@ -89,6 +81,7 @@ If you change the value of this variable then your files may "Regexp to match calls to predefined source block functions.") ;; functions for executing lob one-liners + ;;;###autoload (defun org-babel-lob-execute-maybe () "Execute a Library of Babel source block, if appropriate. @@ -96,7 +89,9 @@ Detect if this is context for a Library Of Babel source block and if so then run the appropriate source block from the Library." (interactive) (let ((info (org-babel-lob-get-info))) - (if (nth 0 info) (progn (org-babel-lob-execute info) t) nil))) + (if (and (nth 0 info) (not (org-babel-in-example-or-verbatim))) + (progn (org-babel-lob-execute info) t) + nil))) ;;;###autoload (defun org-babel-lob-get-info () @@ -109,7 +104,7 @@ if so then run the appropriate source block from the Library." (beginning-of-line 1) (when (looking-at org-babel-lob-one-liner-regexp) (append - (mapcar #'org-babel-clean-text-properties + (mapcar #'org-babel-clean-text-properties (list (format "%s%s(%s)%s" (nonempty 3 12) @@ -120,13 +115,12 @@ if so then run the appropriate source block from the Library." (nonempty 9 18))) (list (length (if (= (length (match-string 12)) 0) (match-string 2) (match-string 11)))))))))) - + (defun org-babel-lob-execute (info) "Execute the lob call specified by INFO." (let ((params (org-babel-process-params (org-babel-merge-params org-babel-default-header-args - (org-babel-params-from-buffer) (org-babel-params-from-properties) (org-babel-parse-header-arguments (org-babel-clean-text-properties diff --git a/lisp/org/ob-matlab.el b/lisp/org/ob-matlab.el index bb32c5a29f5..717fc746dc6 100644 --- a/lisp/org/ob-matlab.el +++ b/lisp/org/ob-matlab.el @@ -1,11 +1,10 @@ ;;; ob-matlab.el --- org-babel support for matlab evaluation -;; Copyright (C) 2010-2011 Free Software Foundation, Inc. +;; Copyright (C) 2010-2012 Free Software Foundation, Inc. ;; Author: Dan Davison ;; Keywords: literate programming, reproducible research ;; Homepage: http://orgmode.org -;; Version: 7.7 ;; This file is part of GNU Emacs. diff --git a/lisp/org/ob-maxima.el b/lisp/org/ob-maxima.el index 279ba6b928b..74bcb069434 100644 --- a/lisp/org/ob-maxima.el +++ b/lisp/org/ob-maxima.el @@ -1,12 +1,11 @@ ;;; ob-maxima.el --- org-babel functions for maxima evaluation -;; Copyright (C) 2009-2011 Free Software Foundation, Inc. +;; Copyright (C) 2009-2012 Free Software Foundation, Inc. ;; Author: Eric S Fraga ;; Eric Schulte ;; Keywords: literate programming, reproducible research, maxima ;; Homepage: http://orgmode.org -;; Version: 7.7 ;; This file is part of GNU Emacs. @@ -31,47 +30,96 @@ ;; ;; 1) there is no such thing as a "session" in maxima ;; -;; 2) we are generally only going to return output from maxima -;; -;; 3) we are adding the "cmdline" header argument -;; -;; 4) there are no variables +;; 2) we are adding the "cmdline" header argument ;;; Code: (require 'ob) +(defvar org-babel-tangle-lang-exts) +(add-to-list 'org-babel-tangle-lang-exts '("maxima" . "max")) + (defvar org-babel-default-header-args:maxima '()) (defun org-babel-maxima-expand (body params) "Expand a block of Maxima code according to its header arguments." - body) + (let ((vars (mapcar #'cdr (org-babel-get-header params :var)))) + (mapconcat 'identity + (list + ;; graphic output + (let ((graphic-file (org-babel-maxima-graphical-output-file params))) + (if graphic-file + (format + "set_plot_option ([gnuplot_term, png]); set_plot_option ([gnuplot_out_file, %S]);" + graphic-file) + "")) + ;; variables + (mapconcat 'org-babel-maxima-var-to-maxima vars "\n") + ;; body + body + "gnuplot_close ()$") + "\n"))) (defun org-babel-execute:maxima (body params) "Execute a block of Maxima entries with org-babel. This function is called by `org-babel-execute-src-block'." (message "executing Maxima source code block") - (let* ((result-params (split-string (or (cdr (assoc :results params)) ""))) - (cmdline (cdr (assoc :cmdline params))) - (in-file (org-babel-temp-file "maxima-")) - (cmd (format "maxima --very-quiet -r 'batchload(%S)$' %s" - in-file cmdline))) - (with-temp-file in-file (insert body)) - (message cmd) - ((lambda (raw) ;; " | grep -v batch | grep -v 'replaced' | sed '/^$/d' " - (mapconcat - #'identity - (delq nil - (mapcar (lambda (line) - (unless (or (string-match "batch" line) - (string-match "^rat: replaced .*$" line) - (= 0 (length line))) - line)) - (split-string raw "[\r\n]"))) "\n")) - (org-babel-eval cmd "")))) + (let ((result-params (split-string (or (cdr (assoc :results params)) ""))) + (result + (let* ((cmdline (cdr (assoc :cmdline params))) + (in-file (org-babel-temp-file "maxima-" ".max")) + (cmd (format "maxima --very-quiet -r 'batchload(%S)$' %s" + in-file cmdline))) + (with-temp-file in-file (insert (org-babel-maxima-expand body params))) + (message cmd) + ((lambda (raw) ;; " | grep -v batch | grep -v 'replaced' | sed '/^$/d' " + (mapconcat + #'identity + (delq nil + (mapcar (lambda (line) + (unless (or (string-match "batch" line) + (string-match "^rat: replaced .*$" line) + (= 0 (length line))) + line)) + (split-string raw "[\r\n]"))) "\n")) + (org-babel-eval cmd ""))))) + (if (org-babel-maxima-graphical-output-file params) + nil + (if (or (member "scalar" result-params) + (member "verbatim" result-params) + (member "output" result-params)) + result + (let ((tmp-file (org-babel-temp-file "maxima-res-"))) + (with-temp-file tmp-file (insert result)) + (org-babel-import-elisp-from-file tmp-file)))))) + (defun org-babel-prep-session:maxima (session params) (error "Maxima does not support sessions")) +(defun org-babel-maxima-var-to-maxima (pair) + "Convert an elisp val into a string of maxima code specifying a var +of the same value." + (let ((var (car pair)) + (val (cdr pair))) + (when (symbolp val) + (setq val (symbol-name val)) + (when (= (length val) 1) + (setq val (string-to-char val)))) + (format "%S: %s$" var + (org-babel-maxima-elisp-to-maxima val)))) + +(defun org-babel-maxima-graphical-output-file (params) + "Name of file to which maxima should send graphical output." + (and (member "graphics" (cdr (assq :result-params params))) + (cdr (assq :file params)))) + +(defun org-babel-maxima-elisp-to-maxima (val) + "Return a string of maxima code which evaluates to VAL." + (if (listp val) + (concat "[" (mapconcat #'org-babel-maxima-elisp-to-maxima val ", ") "]") + (format "%s" val))) + + (provide 'ob-maxima) diff --git a/lisp/org/ob-mscgen.el b/lisp/org/ob-mscgen.el index dc800a875c6..b40f9a39cef 100644 --- a/lisp/org/ob-mscgen.el +++ b/lisp/org/ob-mscgen.el @@ -1,11 +1,10 @@ ;;; ob-msc.el --- org-babel functions for mscgen evaluation -;; Copyright (C) 2010-2011 Free Software Foundation, Inc. +;; Copyright (C) 2010-2012 Free Software Foundation, Inc. ;; Author: Juan Pechiar ;; Keywords: literate programming, reproducible research ;; Homepage: http://orgmode.org -;; Version: 7.7 ;; This file is part of GNU Emacs. diff --git a/lisp/org/ob-ocaml.el b/lisp/org/ob-ocaml.el index 78d309b9e13..8d61ff37e6e 100644 --- a/lisp/org/ob-ocaml.el +++ b/lisp/org/ob-ocaml.el @@ -1,11 +1,10 @@ ;;; ob-ocaml.el --- org-babel functions for ocaml evaluation -;; Copyright (C) 2009-2011 Free Software Foundation, Inc. +;; Copyright (C) 2009-2012 Free Software Foundation, Inc. ;; Author: Eric Schulte ;; Keywords: literate programming, reproducible research ;; Homepage: http://orgmode.org -;; Version: 7.7 ;; This file is part of GNU Emacs. @@ -29,7 +28,7 @@ ;; they can be run, but ocaml code can also be run through an ;; interactive interpreter. ;; -;; For now let's only allow evaluation using the ocaml interpreter. +;; For now lets only allow evaluation using the ocaml interpreter. ;;; Requirements: diff --git a/lisp/org/ob-octave.el b/lisp/org/ob-octave.el index 2003a6f18f7..9e8575768dc 100644 --- a/lisp/org/ob-octave.el +++ b/lisp/org/ob-octave.el @@ -1,11 +1,10 @@ ;;; ob-octave.el --- org-babel functions for octave and matlab evaluation -;; Copyright (C) 2010-2011 Free Software Foundation, Inc. +;; Copyright (C) 2010-2012 Free Software Foundation, Inc. ;; Author: Dan Davison ;; Keywords: literate programming, reproducible research ;; Homepage: http://orgmode.org -;; Version: 7.7 ;; This file is part of GNU Emacs. @@ -87,13 +86,24 @@ end") (org-babel-expand-body:generic body params (org-babel-variable-assignments:octave params))) (result (org-babel-octave-evaluate - session full-body result-type matlabp))) - (org-babel-reassemble-table - result - (org-babel-pick-name - (cdr (assoc :colname-names params)) (cdr (assoc :colnames params))) - (org-babel-pick-name - (cdr (assoc :rowname-names params)) (cdr (assoc :rownames params)))))) + session + (if (org-babel-octave-graphical-output-file params) + (mapconcat 'identity + (list + "set (0, \"defaultfigurevisible\", \"off\");" + full-body + (format "print -dpng %s" (org-babel-octave-graphical-output-file params))) + "\n") + full-body) + result-type matlabp))) + (if (org-babel-octave-graphical-output-file params) + nil + (org-babel-reassemble-table + result + (org-babel-pick-name + (cdr (assoc :colname-names params)) (cdr (assoc :colnames params))) + (org-babel-pick-name + (cdr (assoc :rowname-names params)) (cdr (assoc :rownames params))))))) (defun org-babel-prep-session:matlab (session params) "Prepare SESSION according to PARAMS." @@ -118,7 +128,11 @@ specifying a variable of the same value." (if (listp var) (concat "[" (mapconcat #'org-babel-octave-var-to-octave var (if (listp (car var)) "; " ",")) "]") - (format "%s" (or var "nil")))) + (cond + ((stringp var) + (format "\'%s\'" var)) + (t + (format "%s" var))))) (defun org-babel-prep-session:octave (session params &optional matlabp) "Prepare SESSION according to the header arguments specified in PARAMS." @@ -256,6 +270,11 @@ This removes initial blank and comment lines and then calls (match-string 1 string) string)) +(defun org-babel-octave-graphical-output-file (params) + "Name of file to which maxima should send graphical output." + (and (member "graphics" (cdr (assq :result-params params))) + (cdr (assq :file params)))) + (provide 'ob-octave) diff --git a/lisp/org/ob-org.el b/lisp/org/ob-org.el index 37256d015c7..d57f8b506d1 100644 --- a/lisp/org/ob-org.el +++ b/lisp/org/ob-org.el @@ -1,11 +1,10 @@ ;;; ob-org.el --- org-babel functions for org code block evaluation -;; Copyright (C) 2010-2011 Free Software Foundation, Inc. +;; Copyright (C) 2010-2012 Free Software Foundation, Inc. ;; Author: Eric Schulte ;; Keywords: literate programming, reproducible research ;; Homepage: http://orgmode.org -;; Version: 7.7 ;; This file is part of GNU Emacs. diff --git a/lisp/org/ob-perl.el b/lisp/org/ob-perl.el index 13d71413731..916eb029dbe 100644 --- a/lisp/org/ob-perl.el +++ b/lisp/org/ob-perl.el @@ -1,12 +1,11 @@ ;;; ob-perl.el --- org-babel functions for perl evaluation -;; Copyright (C) 2009-2011 Free Software Foundation +;; Copyright (C) 2009-2012 Free Software Foundation, Inc. ;; Author: Dan Davison ;; Eric Schulte ;; Keywords: literate programming, reproducible research ;; Homepage: http://orgmode.org -;; Version: 7.7 ;; This file is part of GNU Emacs. diff --git a/lisp/org/ob-picolisp.el b/lisp/org/ob-picolisp.el new file mode 100644 index 00000000000..572b6590e8d --- /dev/null +++ b/lisp/org/ob-picolisp.el @@ -0,0 +1,193 @@ +;;; ob-picolisp.el --- org-babel functions for picolisp evaluation + +;; Copyright (C) 2010-2012 Free Software Foundation, Inc. + +;; Authors: Thorsten Jolitz +;; Eric Schulte +;; Keywords: literate programming, reproducible research +;; Homepage: http://orgmode.org + +;; 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 3 of the License, 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. If not, see <http://www.gnu.org/licenses/>. + +;;; Commentary: + +;; This library enables the use of PicoLisp in the multi-language +;; programming framework Org-Babel. PicoLisp is a minimal yet +;; fascinating lisp dialect and a highly productive application +;; framework for web-based client-server applications on top of +;; object-oriented databases. A good way to learn PicoLisp is to first +;; read Paul Grahams essay "The hundred year language" +;; (http://www.paulgraham.com/hundred.html) and then study the various +;; documents and essays published in the PicoLisp wiki +;; (http://picolisp.com/5000/-2.html). PicoLisp is included in some +;; GNU/Linux Distributions, and can be downloaded here: +;; http://software-lab.de/down.html. It ships with a picolisp-mode and +;; a inferior-picolisp-mode for Emacs (to be found in the /lib/el/ +;; directory). + +;; Although it might seem more natural to use Emacs Lisp for most +;; Lisp-based programming tasks inside Org-Mode, an Emacs library +;; written in Emacs Lisp, PicoLisp has at least two outstanding +;; features that make it a valuable addition to Org-Babel: + +;; PicoLisp _is_ an object-oriented database with a Prolog-based query +;; language implemented in PicoLisp (Pilog). Database objects are +;; first-class members of the language. + +;; PicoLisp is an extremely productive framework for the development +;; of interactive web-applications (on top of a database). + +;;; Requirements: + +;;; Code: +(require 'ob) +(require 'ob-eval) +(require 'ob-comint) +(require 'comint) +(eval-when-compile (require 'cl)) + +(declare-function run-picolisp "ext:inferior-picolisp" (cmd)) + +;; optionally define a file extension for this language +(add-to-list 'org-babel-tangle-lang-exts '("picolisp" . "l")) + +;;; interferes with settings in org-babel buffer? +;; optionally declare default header arguments for this language +;; (defvar org-babel-default-header-args:picolisp +;; '((:colnames . "no")) +;; "Default arguments for evaluating a picolisp source block.") + +(defvar org-babel-picolisp-eoe "org-babel-picolisp-eoe" + "String to indicate that evaluation has completed.") + +(defcustom org-babel-picolisp-cmd "pil" + "Name of command used to evaluate picolisp blocks." + :group 'org-babel + :type 'string) + +(defun org-babel-expand-body:picolisp (body params &optional processed-params) + "Expand BODY according to PARAMS, return the expanded body." + (let ((vars (mapcar #'cdr (org-babel-get-header params :var))) + (result-params (cdr (assoc :result-params params))) + (print-level nil) (print-length nil)) + (if (> (length vars) 0) + (concat "(prog (let (" + (mapconcat + (lambda (var) + (format "%S '%S)" + (print (car var)) + (print (cdr var)))) + vars "\n ") + " \n" body ") )") + body))) + +(defun org-babel-execute:picolisp (body params) + "Execute a block of Picolisp code with org-babel. This function is + called by `org-babel-execute-src-block'" + (message "executing Picolisp source code block") + (let* ( + ;; name of the session or "none" + (session-name (cdr (assoc :session params))) + ;; set the session if the session variable is non-nil + (session (org-babel-picolisp-initiate-session session-name)) + ;; either OUTPUT or VALUE which should behave as described above + (result-type (cdr (assoc :result-type params))) + (result-params (cdr (assoc :result-params params))) + ;; expand the body with `org-babel-expand-body:picolisp' + (full-body (org-babel-expand-body:picolisp body params)) + ;; wrap body appropriately for the type of evaluation and results + (wrapped-body + (cond + ((or (member "code" result-params) + (member "pp" result-params)) + (format "(pretty (out \"/dev/null\" %s))" full-body)) + ((and (member "value" result-params) (not session)) + (format "(print (out \"/dev/null\" %s))" full-body)) + ((member "value" result-params) + (format "(out \"/dev/null\" %s)" full-body)) + (t full-body)))) + + ((lambda (result) + (if (or (member "verbatim" result-params) + (member "scalar" result-params) + (member "output" result-params) + (member "code" result-params) + (member "pp" result-params) + (= (length result) 0)) + result + (read result))) + (if (not (string= session-name "none")) + ;; session based evaluation + (mapconcat ;; <- joins the list back together into a single string + #'identity + (butlast ;; <- remove the org-babel-picolisp-eoe line + (delq nil + (mapcar + (lambda (line) + (org-babel-chomp ;; remove trailing newlines + (when (> (length line) 0) ;; remove empty lines + (cond + ;; remove leading "-> " from return values + ((and (>= (length line) 3) + (string= "-> " (substring line 0 3))) + (substring line 3)) + ;; remove trailing "-> <<return-value>>" on the + ;; last line of output + ((and (member "output" result-params) + (string-match-p "->" line)) + (substring line 0 (string-match "->" line))) + (t line) + ) + ;; (if (and (>= (length line) 3) ;; remove leading "<- " + ;; (string= "-> " (substring line 0 3))) + ;; (substring line 3) + ;; line) + ))) + ;; returns a list of the output of each evaluated expression + (org-babel-comint-with-output (session org-babel-picolisp-eoe) + (insert wrapped-body) (comint-send-input) + (insert "'" org-babel-picolisp-eoe) (comint-send-input))))) + "\n") + ;; external evaluation + (let ((script-file (org-babel-temp-file "picolisp-script-"))) + (with-temp-file script-file + (insert (concat wrapped-body "(bye)"))) + (org-babel-eval + (format "%s %s" + org-babel-picolisp-cmd + (org-babel-process-file-name script-file)) + "")))))) + +(defun org-babel-picolisp-initiate-session (&optional session-name) + "If there is not a current inferior-process-buffer in SESSION +then create. Return the initialized session." + (unless (string= session-name "none") + (require 'inferior-picolisp) + ;; provide a reasonable default session name + (let ((session (or session-name "*inferior-picolisp*"))) + ;; check if we already have a live session by this name + (if (org-babel-comint-buffer-livep session) + (get-buffer session) + (save-window-excursion + (run-picolisp org-babel-picolisp-cmd) + (rename-buffer session-name) + (current-buffer)))))) + +(provide 'ob-picolisp) + + + +;;; ob-picolisp.el ends here diff --git a/lisp/org/ob-plantuml.el b/lisp/org/ob-plantuml.el index 9fa55727592..da700527f71 100644 --- a/lisp/org/ob-plantuml.el +++ b/lisp/org/ob-plantuml.el @@ -1,11 +1,10 @@ ;;; ob-plantuml.el --- org-babel functions for plantuml evaluation -;; Copyright (C) 2010-2011 Free Software Foundation, Inc. +;; Copyright (C) 2010-2012 Free Software Foundation, Inc. ;; Author: Zhang Weize ;; Keywords: literate programming, reproducible research ;; Homepage: http://orgmode.org -;; Version: 7.7 ;; This file is part of GNU Emacs. diff --git a/lisp/org/ob-python.el b/lisp/org/ob-python.el index 5234d83ecee..5e7a2f0e6b5 100644 --- a/lisp/org/ob-python.el +++ b/lisp/org/ob-python.el @@ -1,12 +1,11 @@ ;;; ob-python.el --- org-babel functions for python evaluation -;; Copyright (C) 2009-2011 Free Software Foundation +;; Copyright (C) 2009-2012 Free Software Foundation, Inc. ;; Author: Eric Schulte ;; Dan Davison ;; Keywords: literate programming, reproducible research ;; Homepage: http://orgmode.org -;; Version: 7.7 ;; This file is part of GNU Emacs. diff --git a/lisp/org/ob-ref.el b/lisp/org/ob-ref.el index 1e14021a364..cde594e11b0 100644 --- a/lisp/org/ob-ref.el +++ b/lisp/org/ob-ref.el @@ -1,12 +1,11 @@ ;;; ob-ref.el --- org-babel functions for referencing external data -;; Copyright (C) 2009-2011 Free Software Foundation, Inc. +;; Copyright (C) 2009-2012 Free Software Foundation, Inc. ;; Author: Eric Schulte ;; Dan Davison ;; Keywords: literate programming, reproducible research ;; Homepage: http://orgmode.org -;; Version: 7.7 ;; This file is part of GNU Emacs. @@ -61,10 +60,15 @@ (declare-function org-narrow-to-subtree "org" ()) (declare-function org-id-find-id-in-file "org-id" (id file &optional markerp)) (declare-function org-show-context "org" (&optional key)) +(declare-function org-pop-to-buffer-same-window + "org-compat" (&optional buffer-or-name norecord label)) (defvar org-babel-ref-split-regexp "[ \f\t\n\r\v]*\\(.+?\\)[ \f\t\n\r\v]*=[ \f\t\n\r\v]*\\(.+\\)[ \f\t\n\r\v]*") +(defvar org-babel-update-intermediate nil + "Update the in-buffer results of code blocks executed to resolve references.") + (defun org-babel-ref-parse (assignment) "Parse a variable ASSIGNMENT in a header argument. If the right hand side of the assignment has a literal value @@ -94,7 +98,7 @@ the variable." (m (when file (org-id-find-id-in-file id file 'marker)))) (when (and file m) (message "file:%S" file) - (switch-to-buffer (marker-buffer m)) + (org-pop-to-buffer-same-window (marker-buffer m)) (goto-char m) (move-marker m nil) (org-show-context) @@ -147,21 +151,19 @@ the variable." (save-restriction (widen) (goto-char (point-min)) - (if (let* ((rx (regexp-quote ref)) - (res-rx (concat org-babel-result-regexp rx "[ \t]*$")) - (src-rx (concat org-babel-src-name-regexp - rx "\\(\(.*\)\\)?" "[ \t]*$"))) + (if (let ((src-rx (org-babel-named-src-block-regexp-for-name ref)) + (res-rx (org-babel-named-data-regexp-for-name ref))) ;; goto ref in the current buffer - (or (and (not args) - (or (re-search-forward res-rx nil t) - (re-search-backward res-rx nil t))) - (re-search-forward src-rx nil t) - (re-search-backward src-rx nil t) - ;; check for local or global headlines by id - (setq id (org-babel-ref-goto-headline-id ref)) - ;; check the Library of Babel - (setq lob-info (cdr (assoc (intern ref) - org-babel-library-of-babel))))) + (or + ;; check for code blocks + (re-search-forward src-rx nil t) + ;; check for named data + (re-search-forward res-rx nil t) + ;; check for local or global headlines by id + (setq id (org-babel-ref-goto-headline-id ref)) + ;; check the Library of Babel + (setq lob-info (cdr (assoc (intern ref) + org-babel-library-of-babel))))) (unless (or lob-info id) (goto-char (match-beginning 0))) ;; ;; TODO: allow searching for names in other buffers ;; (setq id-loc (org-id-find ref 'marker) @@ -172,6 +174,12 @@ the variable." (cond (lob-info (setq type 'lob)) (id (setq type 'id)) + ((and (looking-at org-babel-src-name-regexp) + (save-excursion + (forward-line 1) + (or (looking-at org-babel-src-block-regexp) + (looking-at org-babel-multi-line-header-regexp)))) + (setq type 'source-block)) (t (while (not (setq type (org-babel-ref-at-ref-p))) (forward-line 1) (beginning-of-line) @@ -184,7 +192,9 @@ the variable." (table (org-babel-read-table)) (list (org-babel-read-list)) (file (org-babel-read-link)) - (source-block (org-babel-execute-src-block nil nil params)) + (source-block (org-babel-execute-src-block + nil nil (if org-babel-update-intermediate + nil params))) (lob (org-babel-execute-src-block nil lob-info params)) (id (org-babel-ref-headline-body))))) @@ -234,20 +244,7 @@ to \"0:-1\"." (defun org-babel-ref-split-args (arg-string) "Split ARG-STRING into top-level arguments of balanced parenthesis." - (let ((index 0) (depth 0) (buffer "") holder return) - ;; crawl along string, splitting at any ","s which are on the top level - (while (< index (length arg-string)) - (setq holder (substring arg-string index (+ 1 index))) - (setq buffer (concat buffer holder)) - (setq index (+ 1 index)) - (cond - ((string= holder ",") - (when (= depth 0) - (setq return (cons (substring buffer 0 -1) return)) - (setq buffer ""))) - ((or (string= holder "(") (string= holder "[")) (setq depth (+ depth 1))) - ((or (string= holder ")") (string= holder "]")) (setq depth (- depth 1))))) - (mapcar #'org-babel-trim (reverse (cons buffer return))))) + (mapcar #'org-babel-trim (org-babel-balanced-split arg-string 44))) (defvar org-bracket-link-regexp) (defun org-babel-ref-at-ref-p () diff --git a/lisp/org/ob-ruby.el b/lisp/org/ob-ruby.el index 02089b4a214..19cce58d820 100644 --- a/lisp/org/ob-ruby.el +++ b/lisp/org/ob-ruby.el @@ -1,11 +1,10 @@ ;;; ob-ruby.el --- org-babel functions for ruby evaluation -;; Copyright (C) 2009-2011 Free Software Foundation +;; Copyright (C) 2009-2012 Free Software Foundation, Inc. ;; Author: Eric Schulte ;; Keywords: literate programming, reproducible research ;; Homepage: http://orgmode.org -;; Version: 7.7 ;; This file is part of GNU Emacs. @@ -29,10 +28,10 @@ ;;; Requirements: ;; - ruby and irb executables :: http://www.ruby-lang.org/ -;; +;; ;; - ruby-mode :: Can be installed through ELPA, or from ;; http://github.com/eschulte/rinari/raw/master/util/ruby-mode.el -;; +;; ;; - inf-ruby mode :: Can be installed through ELPA, or from ;; http://github.com/eschulte/rinari/raw/master/util/inf-ruby.el @@ -129,8 +128,8 @@ Emacs-lisp table, otherwise return the results as a string." "Initiate a ruby session. If there is not a current inferior-process-buffer in SESSION then create one. Return the initialized session." - (require 'inf-ruby) (unless (string= session "none") + (require 'inf-ruby) (let ((session-buffer (save-window-excursion (run-ruby nil session) (current-buffer)))) (if (org-babel-comint-buffer-livep session-buffer) diff --git a/lisp/org/ob-sass.el b/lisp/org/ob-sass.el index 162113ea5a8..c9606104311 100644 --- a/lisp/org/ob-sass.el +++ b/lisp/org/ob-sass.el @@ -1,11 +1,10 @@ ;;; ob-sass.el --- org-babel functions for the sass css generation language -;; Copyright (C) 2009-2011 Free Software Foundation, Inc. +;; Copyright (C) 2009-2012 Free Software Foundation, Inc. ;; Author: Eric Schulte ;; Keywords: literate programming, reproducible research ;; Homepage: http://orgmode.org -;; Version: 7.7 ;; This file is part of GNU Emacs. diff --git a/lisp/org/ob-scheme.el b/lisp/org/ob-scheme.el index 3e93a3a74f7..4bcde94235f 100644 --- a/lisp/org/ob-scheme.el +++ b/lisp/org/ob-scheme.el @@ -1,11 +1,10 @@ ;;; ob-scheme.el --- org-babel functions for Scheme -;; Copyright (C) 2010-2011 Free Software Foundation +;; Copyright (C) 2010-2012 Free Software Foundation, Inc. ;; Author: Eric Schulte ;; Keywords: literate programming, reproducible research, scheme ;; Homepage: http://orgmode.org -;; Version: 7.7 ;; This file is part of GNU Emacs. diff --git a/lisp/org/ob-screen.el b/lisp/org/ob-screen.el index 084beffd229..37cdb28690a 100644 --- a/lisp/org/ob-screen.el +++ b/lisp/org/ob-screen.el @@ -1,11 +1,10 @@ ;;; ob-screen.el --- org-babel support for interactive terminal -;; Copyright (C) 2009-2011 Free Software Foundation +;; Copyright (C) 2009-2012 Free Software Foundation, Inc. ;; Author: Benjamin Andresen ;; Keywords: literate programming, interactive shell ;; Homepage: http://orgmode.org -;; Version: 7.7 ;; This file is part of GNU Emacs. @@ -38,7 +37,7 @@ (require 'ob-ref) (defvar org-babel-screen-location "screen" - "The command location for screen. + "The command location for screen. In case you want to use a different screen than one selected by your $PATH") (defvar org-babel-default-header-args:screen @@ -112,7 +111,7 @@ In case you want to use a different screen than one selected by your $PATH") (with-temp-file tmpfile (insert body) - ;; org-babel has superflous spaces + ;; org-babel has superfluous spaces (goto-char (point-min)) (delete-matching-lines "^ +$")) tmpfile)) diff --git a/lisp/org/ob-sh.el b/lisp/org/ob-sh.el index f46ba45770a..6f4cb4ffdfc 100644 --- a/lisp/org/ob-sh.el +++ b/lisp/org/ob-sh.el @@ -1,11 +1,10 @@ ;;; ob-sh.el --- org-babel functions for shell evaluation -;; Copyright (C) 2009-2011 Free Software Foundation, Inc. +;; Copyright (C) 2009-2012 Free Software Foundation, Inc. ;; Author: Eric Schulte ;; Keywords: literate programming, reproducible research ;; Homepage: http://orgmode.org -;; Version: 7.7 ;; This file is part of GNU Emacs. diff --git a/lisp/org/ob-shen.el b/lisp/org/ob-shen.el new file mode 100644 index 00000000000..8f4b13217c6 --- /dev/null +++ b/lisp/org/ob-shen.el @@ -0,0 +1,79 @@ +;;; ob-shen.el --- org-babel functions for Shen + +;; Copyright (C) 2010-2012 Free Software Foundation, Inc. + +;; Author: Eric Schulte +;; Keywords: literate programming, reproducible research, shen +;; Homepage: http://orgmode.org + +;; 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 3 of the License, 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. If not, see <http://www.gnu.org/licenses/>. + +;;; Commentary: + +;; Currently this only works using session evaluation as there is no +;; defined method for executing shen code outside of a session. + +;;; Requirements: + +;; - shen-mode and inf-shen will soon be available through the GNU +;; elpa, however in the interim they are available at +;; https://github.com/eschulte/shen-mode + +;;; Code: +(require 'ob) + +(declare-function shen-eval-defun "ext:inf-shen" (&optional and-go)) + +(defvar org-babel-default-header-args:shen '() + "Default header arguments for shen code blocks.") + +(defun org-babel-expand-body:shen (body params) + "Expand BODY according to PARAMS, return the expanded body." + (let ((vars (mapcar #'cdr (org-babel-get-header params :var)))) + (if (> (length vars) 0) + (concat "(let " + (mapconcat (lambda (var) + (format "%s %s" (car var) + (org-babel-shen-var-to-shen (cdr var)))) + vars " ") + body ")") + body))) + +(defun org-babel-shen-var-to-shen (var) + "Convert VAR into a shen variable." + (if (listp var) + (concat "[" (mapconcat #'org-babel-ruby-var-to-ruby var " ") "]") + (format "%S" var))) + +(defun org-babel-execute:shen (body params) + "Execute a block of Shen code with org-babel. +This function is called by `org-babel-execute-src-block'" + (require 'inf-shen) + (let* ((result-type (cdr (assoc :result-type params))) + (result-params (cdr (assoc :result-params params))) + (full-body (org-babel-expand-body:shen body params))) + ((lambda (results) + (if (or (member 'scalar result-params) + (member 'verbatim result-params)) + results + (condition-case nil (org-babel-script-escape results) + (error results)))) + (with-temp-buffer + (insert full-body) + (call-interactively #'shen-eval-defun))))) + +(provide 'ob-shen) +;;; ob-shen.el ends here diff --git a/lisp/org/ob-sql.el b/lisp/org/ob-sql.el index 7a5c7c8a46a..3f7882c9919 100644 --- a/lisp/org/ob-sql.el +++ b/lisp/org/ob-sql.el @@ -1,11 +1,10 @@ ;;; ob-sql.el --- org-babel functions for sql evaluation -;; Copyright (C) 2009-2011 Free Software Foundation, Inc. +;; Copyright (C) 2009-2012 Free Software Foundation, Inc. ;; Author: Eric Schulte ;; Keywords: literate programming, reproducible research ;; Homepage: http://orgmode.org -;; Version: 7.7 ;; This file is part of GNU Emacs. @@ -32,7 +31,7 @@ ;; ;; Also SQL evaluation generally takes place inside of a database. ;; -;; For now let's just allow a generic ':cmdline' header argument. +;; For now lets just allow a generic ':cmdline' header argument. ;; ;; TODO: ;; @@ -51,6 +50,9 @@ (defvar org-babel-default-header-args:sql '()) +(defvar org-babel-header-arg-names:sql + '(engine out-file)) + (defun org-babel-expand-body:sql (body params) "Expand BODY according to the values of PARAMS." (org-babel-sql-expand-vars @@ -85,31 +87,38 @@ This function is called by `org-babel-execute-src-block'." (insert (org-babel-expand-body:sql body params))) (message command) (shell-command command) - (with-temp-buffer - ;; need to figure out what the delimiter is for the header row + (if (or (member "scalar" result-params) + (member "verbatim" result-params) + (member "html" result-params) + (member "code" result-params) + (equal (point-min) (point-max))) + (with-temp-buffer + (progn (insert-file-contents-literally out-file) (buffer-string))) (with-temp-buffer - (insert-file-contents out-file) - (goto-char (point-min)) - (when (re-search-forward "^\\(-+\\)[^-]" nil t) - (setq header-delim (match-string-no-properties 1))) - (goto-char (point-max)) - (forward-char -1) - (while (looking-at "\n") - (delete-char 1) - (goto-char (point-max)) - (forward-char -1)) - (write-file out-file)) - (org-table-import out-file '(16)) - (org-babel-reassemble-table - (mapcar (lambda (x) - (if (string= (car x) header-delim) - 'hline - x)) - (org-table-to-lisp)) - (org-babel-pick-name (cdr (assoc :colname-names params)) - (cdr (assoc :colnames params))) - (org-babel-pick-name (cdr (assoc :rowname-names params)) - (cdr (assoc :rownames params))))))) + ;; need to figure out what the delimiter is for the header row + (with-temp-buffer + (insert-file-contents out-file) + (goto-char (point-min)) + (when (re-search-forward "^\\(-+\\)[^-]" nil t) + (setq header-delim (match-string-no-properties 1))) + (goto-char (point-max)) + (forward-char -1) + (while (looking-at "\n") + (delete-char 1) + (goto-char (point-max)) + (forward-char -1)) + (write-file out-file)) + (org-table-import out-file '(16)) + (org-babel-reassemble-table + (mapcar (lambda (x) + (if (string= (car x) header-delim) + 'hline + x)) + (org-table-to-lisp)) + (org-babel-pick-name (cdr (assoc :colname-names params)) + (cdr (assoc :colnames params))) + (org-babel-pick-name (cdr (assoc :rowname-names params)) + (cdr (assoc :rownames params)))))))) (defun org-babel-sql-expand-vars (body vars) "Expand the variables held in VARS in BODY." diff --git a/lisp/org/ob-sqlite.el b/lisp/org/ob-sqlite.el index c08c7f38e8a..599113ca830 100644 --- a/lisp/org/ob-sqlite.el +++ b/lisp/org/ob-sqlite.el @@ -1,11 +1,10 @@ ;;; ob-sqlite.el --- org-babel functions for sqlite database interaction -;; Copyright (C) 2010-2011 Free Software Foundation +;; Copyright (C) 2010-2012 Free Software Foundation, Inc. ;; Author: Eric Schulte ;; Keywords: literate programming, reproducible research ;; Homepage: http://orgmode.org -;; Version: 7.7 ;; This file is part of GNU Emacs. diff --git a/lisp/org/ob-table.el b/lisp/org/ob-table.el index ea253b2f048..7b4920e1ec4 100644 --- a/lisp/org/ob-table.el +++ b/lisp/org/ob-table.el @@ -1,11 +1,10 @@ ;;; ob-table.el --- support for calling org-babel functions from tables -;; Copyright (C) 2009-2011 Free Software Foundation, Inc. +;; Copyright (C) 2009-2012 Free Software Foundation, Inc. ;; Author: Eric Schulte ;; Keywords: literate programming, reproducible research ;; Homepage: http://orgmode.org -;; Version: 7.7 ;; This file is part of GNU Emacs. @@ -31,7 +30,7 @@ ;; (defun fibbd (n) (if (< n 2) 1 (+ (fibbd (- n 1)) (fibbd (- n 2))))) ;; #+end_src -;; #+srcname: fibbd +;; #+name: fibbd ;; #+begin_src emacs-lisp :var n=2 :results silent ;; (fibbd n) ;; #+end_src @@ -78,46 +77,60 @@ NOTE: by default string variable names are interpreted as references to source-code blocks, to force interpretation of a cell's value as a string, prefix the identifier with two \"$\"s rather than a single \"$\" (i.e. \"$$2\" instead of \"$2\" in the -example above." - (let* (quote - (variables - (mapcar - (lambda (var) - ;; ensure that all cells prefixed with $'s are strings - (cons (car var) - (delq nil (mapcar - (lambda (el) - (if (eq '$ el) - (setq quote t) - (prog1 (if quote - (format "\"%s\"" el) - (org-babel-clean-text-properties el)) - (setq quote nil)))) - (cdr var))))) - variables))) - (unless (stringp source-block) - (setq source-block (symbol-name source-block))) - ((lambda (result) - (org-babel-trim (if (stringp result) result (format "%S" result)))) - (if (and source-block (> (length source-block) 0)) - (let ((params - (eval `(org-babel-parse-header-arguments - (concat ":var results=" - ,source-block - "(" - (mapconcat - (lambda (var-spec) - (if (> (length (cdr var-spec)) 1) - (format "%S='%S" - (car var-spec) - (mapcar #'read (cdr var-spec))) - (format "%S=%s" - (car var-spec) (cadr var-spec)))) - ',variables ", ") - ")"))))) - (org-babel-execute-src-block - nil (list "emacs-lisp" "results" params) '((:results . "silent")))) - "")))) +example above. + +NOTE: it is also possible to pass header arguments to the code +block. In this case a table cell should hold the string value of +the header argument which can then be passed before all variables +as shown in the example below. + +| 1 | 2 | :file nothing.png | nothing.png | +#+TBLFM: @1$4='(sbe test-sbe $3 (x $1) (y $2))" + (let* ((header-args (if (stringp (car variables)) (car variables) "")) + (variables (if (stringp (car variables)) (cdr variables) variables))) + (let* (quote + (variables + (mapcar + (lambda (var) + ;; ensure that all cells prefixed with $'s are strings + (cons (car var) + (delq nil (mapcar + (lambda (el) + (if (eq '$ el) + (setq quote t) + (prog1 (if quote + (format "\"%s\"" el) + (org-babel-clean-text-properties el)) + (setq quote nil)))) + (cdr var))))) + variables))) + (unless (stringp source-block) + (setq source-block (symbol-name source-block))) + ((lambda (result) + (org-babel-trim (if (stringp result) result (format "%S" result)))) + (if (and source-block (> (length source-block) 0)) + (let ((params + (eval `(org-babel-parse-header-arguments + (concat + ":var results=" + ,source-block + "[" ,header-args "]" + "(" + (mapconcat + (lambda (var-spec) + (if (> (length (cdr var-spec)) 1) + (format "%S='%S" + (car var-spec) + (mapcar #'read (cdr var-spec))) + (format "%S=%s" + (car var-spec) (cadr var-spec)))) + ',variables ", ") + ")"))))) + (org-babel-execute-src-block + nil (list "emacs-lisp" "results" params) + '((:results . "silent")))) + ""))))) +(def-edebug-spec sbe (form form)) (provide 'ob-table) diff --git a/lisp/org/ob-tangle.el b/lisp/org/ob-tangle.el index 26549126009..0b4eaf1fafa 100644 --- a/lisp/org/ob-tangle.el +++ b/lisp/org/ob-tangle.el @@ -1,11 +1,10 @@ ;;; ob-tangle.el --- extract source code from org-mode files -;; Copyright (C) 2009-2011 Free Software Foundation, Inc. +;; Copyright (C) 2009-2012 Free Software Foundation, Inc. ;; Author: Eric Schulte ;; Keywords: literate programming, reproducible research ;; Homepage: http://orgmode.org -;; Version: 7.7 ;; This file is part of GNU Emacs. @@ -96,6 +95,14 @@ controlled by the :comments header argument." :group 'org-babel :type 'string) +(defcustom org-babel-process-comment-text #'org-babel-trim + "Function called to process raw Org-mode text collected to be +inserted as comments in tangled source-code files. The function +should take a single string argument and return a string +result. The default value is `org-babel-trim'." + :group 'org-babel + :type 'function) + (defun org-babel-find-file-noselect-refresh (file) "Find file ensuring that the latest changes on disk are represented in the file." @@ -119,6 +126,7 @@ evaluating BODY." (setf ,temp-result (progn ,@body))) (unless ,visited-p (kill-buffer ,temp-file)) ,temp-result))) +(def-edebug-spec org-babel-with-temp-filebuffer (form body)) ;;;###autoload (defun org-babel-load-file (file) @@ -345,16 +353,20 @@ code blocks by language." (when (or (string= "both" (cdr (assoc :comments params))) (string= "org" (cdr (assoc :comments params)))) ;; from the previous heading or code-block end - (buffer-substring - (max (condition-case nil - (save-excursion - (org-back-to-heading t) (point)) - (error 0)) - (save-excursion - (re-search-backward - org-babel-src-block-regexp nil t) - (match-end 0))) - (point)))) + (funcall + org-babel-process-comment-text + (buffer-substring + (max (condition-case nil + (save-excursion + (org-back-to-heading t) ; sets match data + (match-end 0)) + (error (point-min))) + (save-excursion + (if (re-search-backward + org-babel-src-block-regexp nil t) + (match-end 0) + (point-min)))) + (point))))) by-lang) ;; add the spec for this block to blocks under it's language (setq by-lang (cdr (assoc src-lang blocks))) @@ -396,12 +408,11 @@ form (eval el)))) '(start-line file link source-name)))) (flet ((insert-comment (text) - (let ((text (org-babel-trim text))) - (when (and comments (not (string= comments "no")) - (> (length text) 0)) - (when padline (insert "\n")) - (comment-region (point) (progn (insert text) (point))) - (end-of-line nil) (insert "\n"))))) + (when (and comments (not (string= comments "no")) + (> (length text) 0)) + (when padline (insert "\n")) + (comment-region (point) (progn (insert text) (point))) + (end-of-line nil) (insert "\n")))) (when comment (insert-comment comment)) (when link-p (insert-comment diff --git a/lisp/org/ob.el b/lisp/org/ob.el index 8bba4672169..0288eb357b5 100644 --- a/lisp/org/ob.el +++ b/lisp/org/ob.el @@ -1,12 +1,11 @@ ;;; ob.el --- working with code blocks in org-mode -;; Copyright (C) 2009-2011 Free Software Foundation, Inc. +;; Copyright (C) 2009-2012 Free Software Foundation, Inc. ;; Author: Eric Schulte ;; Dan Davison ;; Keywords: literate programming, reproducible research ;; Homepage: http://orgmode.org -;; Version: 7.7 ;; This file is part of GNU Emacs. @@ -33,6 +32,7 @@ (defvar org-src-lang-modes) (defvar org-babel-library-of-babel) (declare-function show-all "outline" ()) +(declare-function org-reduce "org" (CL-FUNC CL-SEQ &rest CL-KEYS)) (declare-function tramp-compat-make-temp-file "tramp-compat" (filename &optional dir-flag)) (declare-function tramp-dissect-file-name "tramp" (name &optional nodefault)) @@ -114,7 +114,7 @@ remove code block execution from the C-c C-c keybinding." :type 'boolean) (defvar org-babel-src-name-regexp - "^[ \t]*#\\+\\(srcname\\|source\\|function\\):[ \t]*" + "^[ \t]*#\\+name:[ \t]*" "Regular expression used to match a source name line.") (defvar org-babel-multi-line-header-regexp @@ -144,7 +144,7 @@ remove code block execution from the C-c C-c keybinding." (defvar org-babel-inline-src-block-regexp (concat ;; (1) replacement target (2) lang - "[^-[:alnum:]]\\(src_\\([^ \f\t\n\r\v]+\\)" + "\\(?:^\\|[^-[:alnum:]]\\)\\(src_\\([^ \f\t\n\r\v]+\\)" ;; (3,4) (unused, headers) "\\(\\|\\[\\(.*?\\)\\]\\)" ;; (5) body @@ -160,6 +160,39 @@ not match KEY should be returned." (lambda (p) (when (funcall (if others #'not #'identity) (eq (car p) key)) p)) params))) +(defun org-babel-get-inline-src-block-matches() + "Set match data if within body of an inline source block. +Returns non-nil if match-data set" + (let ((src-at-0-p (save-excursion + (beginning-of-line 1) + (string= "src" (thing-at-point 'word)))) + (first-line-p (= 1 (line-number-at-pos))) + (orig (point))) + (let ((search-for (cond ((and src-at-0-p first-line-p "src_")) + (first-line-p "[ \t]src_") + (t "[ \f\t\n\r\v]src_"))) + (lower-limit (if first-line-p + nil + (- (point-at-bol) 1)))) + (save-excursion + (when (or (and src-at-0-p (bobp)) + (and (re-search-forward "}" (point-at-eol) t) + (re-search-backward search-for lower-limit t) + (> orig (point)))) + (when (looking-at org-babel-inline-src-block-regexp) + t )))))) + +(defvar org-babel-inline-lob-one-liner-regexp) +(defun org-babel-get-lob-one-liner-matches() + "Set match data if on line of an lob one liner. +Returns non-nil if match-data set" + (save-excursion + (unless (= (point) (point-at-bol)) ;; move before inline block + (re-search-backward "[ \f\t\n\r\v]" nil t)) + (if (looking-at org-babel-inline-lob-one-liner-regexp) + t + nil))) + (defun org-babel-get-src-block-info (&optional light) "Get information on the current source block. @@ -184,22 +217,30 @@ Returns a list (nth 2 info) (org-babel-parse-header-arguments (match-string 1))))) (when (looking-at org-babel-src-name-w-name-regexp) - (setq name (org-babel-clean-text-properties (match-string 4))) - (when (match-string 6) + (setq name (org-babel-clean-text-properties (match-string 3))) + (when (and (match-string 5) (> (length (match-string 5)) 0)) (setf (nth 2 info) ;; merge functional-syntax vars and header-args (org-babel-merge-params - (mapcar (lambda (ref) (cons :var ref)) - (org-babel-ref-split-args (match-string 6))) + (mapcar + (lambda (ref) (cons :var ref)) + (mapcar + (lambda (var) ;; check that each variable is initialized + (if (string-match ".+=.+" var) + var + (error + "variable \"%s\"%s must be assigned a default value" + var (if name (format " in block \"%s\"" name) "")))) + (org-babel-ref-split-args (match-string 5)))) (nth 2 info)))))) ;; inline source block - (when (save-excursion (re-search-backward "[ \f\t\n\r\v]" nil t) - (looking-at org-babel-inline-src-block-regexp)) + (when (org-babel-get-inline-src-block-matches) (setq info (org-babel-parse-inline-src-block-match)))) ;; resolve variable references and add summary parameters (when (and info (not light)) (setf (nth 2 info) (org-babel-process-params (nth 2 info)))) (when info (append info (list name indent))))) +(defvar org-current-export-file) ; dynamically bound (defun org-babel-confirm-evaluate (info) "Confirm evaluation of the code block INFO. This behavior can be suppressed by setting the value of @@ -212,11 +253,15 @@ of potentially harmful code." (let* ((eval (or (cdr (assoc :eval (nth 2 info))) (when (assoc :noeval (nth 2 info)) "no"))) (query (cond ((equal eval "query") t) + ((and org-current-export-file + (equal eval "query-export")) t) ((functionp org-confirm-babel-evaluate) (funcall org-confirm-babel-evaluate (nth 0 info) (nth 1 info))) (t org-confirm-babel-evaluate)))) (if (or (equal eval "never") (equal eval "no") + (and org-current-export-file (or (equal eval "no-export") + (equal eval "never-export"))) (and query (not (yes-or-no-p (format "Evaluate this%scode block%son your system? " @@ -224,7 +269,9 @@ of potentially harmful code." (if (nth 4 info) (format " (%s) " (nth 4 info)) " ")))))) (prog1 nil (message "Evaluation %s" - (if (or (equal eval "never") (equal eval "no")) + (if (or (equal eval "never") (equal eval "no") + (equal eval "no-export") + (equal eval "never-export")) "Disabled" "Aborted"))) t))) @@ -314,10 +361,35 @@ then run `org-babel-pop-to-session'." (add-hook 'org-metadown-hook 'org-babel-pop-to-session-maybe) +(defconst org-babel-common-header-args-w-values + '((cache . ((no yes))) + (cmdline . :any) + (colnames . ((nil no yes))) + (comments . ((no link yes org both noweb))) + (dir . :any) + (eval . ((never query))) + (exports . ((code results both none))) + (file . :any) + (hlines . ((no yes))) + (mkdirp . ((yes no))) + (no-expand) + (noeval) + (noweb . ((yes no tangle))) + (noweb-ref . :any) + (padline . ((yes no))) + (results . ((file list vector table scalar verbatim) + (raw org html latex code pp wrap) + (replace silent append prepend) + (output value))) + (rownames . ((no yes))) + (sep . :any) + (session . :any) + (shebang . :any) + (tangle . ((tangle yes no :any))) + (var . :any))) + (defconst org-babel-header-arg-names - '(cache cmdline colnames dir exports file noweb results - session tangle var eval noeval comments no-expand shebang - padline noweb-ref) + (mapcar #'car org-babel-common-header-args-w-values) "Common header arguments used by org-babel. Note that individual languages may define their own language specific header arguments as well.") @@ -332,7 +404,7 @@ specific header arguments as well.") '((:session . "none") (:results . "replace") (:exports . "results")) "Default arguments to use when evaluating an inline source block.") -(defvar org-babel-data-names '("TBLNAME" "RESNAME" "RESULTS" "DATA")) +(defvar org-babel-data-names '("TBLNAME" "RESULTS" "NAME")) (defvar org-babel-result-regexp (concat "^[ \t]*#\\+" @@ -365,11 +437,17 @@ can not be resolved.") (defvar org-babel-after-execute-hook nil "Hook for functions to be called after `org-babel-execute-src-block'") + (defun org-babel-named-src-block-regexp-for-name (name) "This generates a regexp used to match a src block named NAME." - (concat org-babel-src-name-regexp (regexp-quote name) "[ \t\n]*" + (concat org-babel-src-name-regexp (regexp-quote name) + "\\([ \t]\\|$\\|(\\)" ".*[\r\n]" (substring org-babel-src-block-regexp 1))) +(defun org-babel-named-data-regexp-for-name (name) + "This generates a regexp used to match data named NAME." + (concat org-babel-result-regexp (regexp-quote name) "\\([ \t]\\|$\\)")) + ;;; functions (defvar call-process-region) ;;;###autoload @@ -380,9 +458,8 @@ Insert the results of execution into the buffer. Source code execution and the collection and formatting of results can be controlled through a variety of header arguments. -With prefix argument ARG, force re-execution even if an -existing result cached in the buffer would otherwise have been -returned. +With prefix argument ARG, force re-execution even if an existing +result cached in the buffer would otherwise have been returned. Optionally supply a value for INFO in the form returned by `org-babel-get-src-block-info'. @@ -519,6 +596,7 @@ arguments and pop open the results in a preview buffer." (interactive) ;; TODO: report malformed code block ;; TODO: report incompatible combinations of header arguments + ;; TODO: report uninitialized variables (let ((too-close 2)) ;; <- control closeness to report potential match (dolist (header (mapcar (lambda (arg) (substring (symbol-name (car arg)) 1)) (and (org-babel-where-is-src-block-head) @@ -533,6 +611,41 @@ arguments and pop open the results in a preview buffer." (message "No suspicious header arguments found."))) ;;;###autoload +(defun org-babel-insert-header-arg () + "Insert a header argument selecting from lists of common args and values." + (interactive) + (let* ((lang (car (org-babel-get-src-block-info 'light))) + (lang-headers (intern (concat "org-babel-header-arg-names:" lang))) + (headers (append (if (boundp lang-headers) + (mapcar (lambda (h) (cons h :any)) + (eval lang-headers)) + nil) + org-babel-common-header-args-w-values)) + (arg (org-icompleting-read + "Header Arg: " + (mapcar + (lambda (header-spec) (symbol-name (car header-spec))) + headers)))) + (insert ":" arg) + (let ((vals (cdr (assoc (intern arg) headers)))) + (when vals + (insert + " " + (cond + ((eq vals :any) + (read-from-minibuffer "value: ")) + ((listp vals) + (mapconcat + (lambda (group) + (let ((arg (org-icompleting-read + "value: " + (cons "default" (mapcar #'symbol-name group))))) + (if (and arg (not (string= "default" arg))) + (concat arg " ") + ""))) + vals "")))))))) + +;;;###autoload (defun org-babel-load-in-session (&optional arg info) "Load the body of the current source-code block. Evaluate the header arguments for the source block before @@ -625,6 +738,7 @@ Return t if a code block was found at point, nil otherwise." (if (org-bound-and-true-p org-edit-src-from-org-mode) (org-edit-src-exit))) t))) +(def-edebug-spec org-babel-do-in-edit-buffer (body)) (defun org-babel-do-key-sequence-in-edit-buffer (key) "Read key sequence and execute the command in edit buffer. @@ -721,6 +835,7 @@ end-body --------- point at the end of the body" (goto-char end-block)))) (unless visited-p (kill-buffer to-be-removed)) (goto-char point)))) +(def-edebug-spec org-babel-map-src-blocks (form body)) ;;;###autoload (defmacro org-babel-map-inline-src-blocks (file &rest body) @@ -743,6 +858,31 @@ buffer." (goto-char (match-end 0)))) (unless visited-p (kill-buffer to-be-removed)) (goto-char point)))) +(def-edebug-spec org-babel-map-inline-src-blocks (form body)) + +(defvar org-babel-lob-one-liner-regexp) +;;;###autoload +(defmacro org-babel-map-call-lines (file &rest body) + "Evaluate BODY forms on each call line in FILE. +If FILE is nil evaluate BODY forms on source blocks in current +buffer." + (declare (indent 1)) + (let ((tempvar (make-symbol "file"))) + `(let* ((,tempvar ,file) + (visited-p (or (null ,tempvar) + (get-file-buffer (expand-file-name ,tempvar)))) + (point (point)) to-be-removed) + (save-window-excursion + (when ,tempvar (find-file ,tempvar)) + (setq to-be-removed (current-buffer)) + (goto-char (point-min)) + (while (re-search-forward org-babel-lob-one-liner-regexp nil t) + (goto-char (match-beginning 1)) + (save-match-data ,@body) + (goto-char (match-end 0)))) + (unless visited-p (kill-buffer to-be-removed)) + (goto-char point)))) +(def-edebug-spec org-babel-map-call-lines (form body)) ;;;###autoload (defun org-babel-execute-buffer (&optional arg) @@ -755,7 +895,9 @@ the current buffer." (org-babel-map-src-blocks nil (org-babel-execute-src-block arg)) (org-babel-map-inline-src-blocks nil - (org-babel-execute-src-block arg)))) + (org-babel-execute-src-block arg)) + (org-babel-map-call-lines nil + (org-babel-lob-execute-maybe)))) ;;;###autoload (defun org-babel-execute-subtree (&optional arg) @@ -784,7 +926,7 @@ the current subtree." lst) (norm (arg) (let ((v (if (and (listp (cdr arg)) (null (cddr arg))) - (copy-seq (cdr arg)) + (copy-sequence (cdr arg)) (cdr arg)))) (when (and v (not (and (sequencep v) (not (consp v)) @@ -857,86 +999,6 @@ This can be called with C-c C-c." (when hash (kill-new hash) (message hash)))) (add-hook 'org-ctrl-c-ctrl-c-hook 'org-babel-hash-at-point) -(defun org-babel-result-hide-spec () - "Hide portions of results lines. -Add `org-babel-hide-result' as an invisibility spec for hiding -portions of results lines." - (add-to-invisibility-spec '(org-babel-hide-result . t))) -(add-hook 'org-mode-hook 'org-babel-result-hide-spec) - -(defvar org-babel-hide-result-overlays nil - "Overlays hiding results.") - -(defun org-babel-result-hide-all () - "Fold all results in the current buffer." - (interactive) - (org-babel-show-result-all) - (save-excursion - (while (re-search-forward org-babel-result-regexp nil t) - (save-excursion (goto-char (match-beginning 0)) - (org-babel-hide-result-toggle-maybe))))) - -(defun org-babel-show-result-all () - "Unfold all results in the current buffer." - (mapc 'delete-overlay org-babel-hide-result-overlays) - (setq org-babel-hide-result-overlays nil)) - -;;;###autoload -(defun org-babel-hide-result-toggle-maybe () - "Toggle visibility of result at point." - (interactive) - (let ((case-fold-search t)) - (if (save-excursion - (beginning-of-line 1) - (looking-at org-babel-result-regexp)) - (progn (org-babel-hide-result-toggle) - t) ;; to signal that we took action - nil))) ;; to signal that we did not - -(defun org-babel-hide-result-toggle (&optional force) - "Toggle the visibility of the current result." - (interactive) - (save-excursion - (beginning-of-line) - (if (re-search-forward org-babel-result-regexp nil t) - (let ((start (progn (beginning-of-line 2) (- (point) 1))) - (end (progn (goto-char (- (org-babel-result-end) 1)) (point))) - ov) - (if (memq t (mapcar (lambda (overlay) - (eq (overlay-get overlay 'invisible) - 'org-babel-hide-result)) - (overlays-at start))) - (if (or (not force) (eq force 'off)) - (mapc (lambda (ov) - (when (member ov org-babel-hide-result-overlays) - (setq org-babel-hide-result-overlays - (delq ov org-babel-hide-result-overlays))) - (when (eq (overlay-get ov 'invisible) - 'org-babel-hide-result) - (delete-overlay ov))) - (overlays-at start))) - (setq ov (make-overlay start end)) - (overlay-put ov 'invisible 'org-babel-hide-result) - ;; make the block accessible to isearch - (overlay-put - ov 'isearch-open-invisible - (lambda (ov) - (when (member ov org-babel-hide-result-overlays) - (setq org-babel-hide-result-overlays - (delq ov org-babel-hide-result-overlays))) - (when (eq (overlay-get ov 'invisible) - 'org-babel-hide-result) - (delete-overlay ov)))) - (push ov org-babel-hide-result-overlays))) - (error "Not looking at a result line")))) - -;; org-tab-after-check-for-cycling-hook -(add-hook 'org-tab-first-hook 'org-babel-hide-result-toggle-maybe) -;; Remove overlays when changing major mode -(add-hook 'org-mode-hook - (lambda () (org-add-hook 'change-major-mode-hook - 'org-babel-show-result-all 'append 'local))) - (defvar org-file-properties) (defun org-babel-params-from-properties (&optional lang) "Retrieve parameters specified as properties. @@ -944,40 +1006,21 @@ Return an association list of any source block params which may be specified in the properties of the current outline entry." (save-match-data (let (val sym) - (delq nil - (mapcar - (lambda (header-arg) - (and (setq val - (or (org-entry-get (point) header-arg t) - (org-entry-get (point) (concat ":" header-arg) t))) - (cons (intern (concat ":" header-arg)) - (org-babel-read val)))) + (org-babel-parse-multiple-vars + (delq nil (mapcar - 'symbol-name - (append - org-babel-header-arg-names - (progn - (setq sym (intern (concat "org-babel-header-arg-names:" lang))) - (and (boundp sym) (eval sym)))))))))) - -(defun org-babel-params-from-buffer () - "Retrieve per-buffer parameters. - Return an association list of any source block params which -may be specified in the current buffer." - (let (local-properties) - (save-match-data - (save-excursion - (save-restriction - (widen) - (goto-char (point-min)) - (while (re-search-forward - (org-make-options-regexp (list "BABEL" "PROPERTIES")) nil t) - (setq local-properties - (org-babel-merge-params - local-properties - (org-babel-parse-header-arguments - (org-match-string-no-properties 2))))) - local-properties))))) + (lambda (header-arg) + (and (setq val (org-entry-get (point) header-arg t)) + (cons (intern (concat ":" header-arg)) + (org-babel-read val)))) + (mapcar + 'symbol-name + (append + org-babel-header-arg-names + (progn + (setq sym (intern (concat "org-babel-header-arg-names:" + lang))) + (and (boundp sym) (eval sym))))))))))) (defvar org-src-preserve-indentation) (defun org-babel-parse-src-block-match () @@ -989,9 +1032,10 @@ may be specified in the current buffer." (body (org-babel-clean-text-properties (let* ((body (match-string 5)) (sub-length (- (length body) 1))) - (if (string= "\n" (substring body sub-length)) + (if (and (> sub-length 0) + (string= "\n" (substring body sub-length))) (substring body 0 sub-length) - body)))) + (or body ""))))) (preserve-indentation (or org-src-preserve-indentation (string-match "-i\\>" switches)))) (list lang @@ -1003,7 +1047,6 @@ may be specified in the current buffer." (buffer-string))) (org-babel-merge-params org-babel-default-header-args - (org-babel-params-from-buffer) (org-babel-params-from-properties lang) (if (boundp lang-headers) (eval lang-headers) nil) (org-babel-parse-header-arguments @@ -1020,50 +1063,104 @@ may be specified in the current buffer." (org-babel-clean-text-properties (match-string 5))) (org-babel-merge-params org-babel-default-inline-header-args - (org-babel-params-from-buffer) (org-babel-params-from-properties lang) (if (boundp lang-headers) (eval lang-headers) nil) (org-babel-parse-header-arguments (org-babel-clean-text-properties (or (match-string 4) ""))))))) +(defun org-babel-balanced-split (string alts) + "Split STRING on instances of ALTS. +ALTS is a cons of two character options where each option may be +either the numeric code of a single character or a list of +character alternatives. For example to split on balanced +instances of \"[ \t]:\" set ALTS to '((32 9) . 58)." + (flet ((matches (ch spec) (if (listp spec) (member ch spec) (equal spec ch))) + (matched (ch last) + (if (consp alts) + (and (matches ch (cdr alts)) + (matches last (car alts))) + (matches ch alts)))) + (let ((balance 0) (quote nil) (partial nil) (lst nil) (last 0)) + (mapc (lambda (ch) ; split on [], (), "" balanced instances of [ \t]: + (setq balance (+ balance + (cond ((or (equal 91 ch) (equal 40 ch)) 1) + ((or (equal 93 ch) (equal 41 ch)) -1) + (t 0)))) + (when (and (equal 34 ch) (not (equal 92 last))) + (setq quote (not quote))) + (setq partial (cons ch partial)) + (when (and (= balance 0) (not quote) (matched ch last)) + (setq lst (cons (apply #'string (nreverse + (if (consp alts) + (cddr partial) + (cdr partial)))) + lst)) + (setq partial nil)) + (setq last ch)) + (string-to-list string)) + (nreverse (cons (apply #'string (nreverse partial)) lst))))) + +(defun org-babel-join-splits-near-ch (ch list) + "Join splits where \"=\" is on either end of the split." + (flet ((last= (str) (= ch (aref str (1- (length str))))) + (first= (str) (= ch (aref str 0)))) + (reverse + (org-reduce (lambda (acc el) + (let ((head (car acc))) + (if (and head (or (last= head) (first= el))) + (cons (concat head el) (cdr acc)) + (cons el acc)))) + list :initial-value nil)))) + (defun org-babel-parse-header-arguments (arg-string) "Parse a string of header arguments returning an alist." (when (> (length arg-string) 0) - (delq nil - (mapcar - (lambda (arg) - (if (string-match - "\\([^ \f\t\n\r\v]+\\)[ \f\t\n\r\v]+\\([^ \f\t\n\r\v]+.*\\)" - arg) - (cons (intern (match-string 1 arg)) - (org-babel-read (org-babel-chomp (match-string 2 arg)))) - (cons (intern (org-babel-chomp arg)) nil))) - (let ((balance 0) (partial nil) (lst nil) (last 0)) - (mapc (lambda (ch) ; split on [] balanced instances of [ \t]: - (setq balance (+ balance - (cond ((equal 91 ch) 1) - ((equal 93 ch) -1) - (t 0)))) - (setq partial (cons ch partial)) - (when (and (= ch 58) (= balance 0) - (or (= last 32) (= last 9))) - (setq lst (cons (apply #'string (nreverse (cddr partial))) - lst)) - (setq partial (list ch))) - (setq last ch)) - (string-to-list arg-string)) - (nreverse (cons (apply #'string (nreverse partial)) lst))))))) + (org-babel-parse-multiple-vars + (delq nil + (mapcar + (lambda (arg) + (if (string-match + "\\([^ \f\t\n\r\v]+\\)[ \f\t\n\r\v]+\\([^ \f\t\n\r\v]+.*\\)" + arg) + (cons (intern (match-string 1 arg)) + (org-babel-read (org-babel-chomp (match-string 2 arg)))) + (cons (intern (org-babel-chomp arg)) nil))) + ((lambda (raw) + (cons (car raw) (mapcar (lambda (r) (concat ":" r)) (cdr raw)))) + (org-babel-balanced-split arg-string '((32 9) . 58)))))))) + +(defun org-babel-parse-multiple-vars (header-arguments) + "Expand multiple variable assignments behind a single :var keyword. + +This allows expression of multiple variables with one :var as +shown below. + +#+PROPERTY: var foo=1, bar=2" + (let (results) + (mapc (lambda (pair) + (if (eq (car pair) :var) + (mapcar (lambda (v) (push (cons :var (org-babel-trim v)) results)) + (org-babel-join-splits-near-ch + 61 (org-babel-balanced-split (cdr pair) 32))) + (push pair results))) + header-arguments) + (nreverse results))) (defun org-babel-process-params (params) "Expand variables in PARAMS and add summary parameters." - (let* ((vars-and-names (org-babel-disassemble-tables - (mapcar (lambda (el) - (if (consp (cdr el)) - (cdr el) (org-babel-ref-parse (cdr el)))) - (org-babel-get-header params :var)) - (cdr (assoc :hlines params)) - (cdr (assoc :colnames params)) - (cdr (assoc :rownames params)))) + (let* ((processed-vars (mapcar (lambda (el) + (if (consp (cdr el)) + (cdr el) + (org-babel-ref-parse (cdr el)))) + (org-babel-get-header params :var))) + (vars-and-names (if (and (assoc :colname-names params) + (assoc :rowname-names params)) + (list processed-vars) + (org-babel-disassemble-tables + processed-vars + (cdr (assoc :hlines params)) + (cdr (assoc :colnames params)) + (cdr (assoc :rownames params))))) (raw-result (or (cdr (assoc :results params)) "")) (result-params (append (split-string (if (stringp raw-result) @@ -1170,7 +1267,7 @@ of the vars, cnames and rnames." (setq var (cons (car var) (org-babel-del-hlines (cdr var)))))) var) vars) - cnames rnames))) + (reverse cnames) (reverse rnames)))) (defun org-babel-reassemble-table (table colnames rownames) "Add column and row names to a table. @@ -1245,7 +1342,7 @@ org-babel-named-src-block-regexp." (regexp (org-babel-named-src-block-regexp-for-name name)) msg) (goto-char (point-min)) (when (or (re-search-forward regexp nil t) - (re-search-backward regexp nil t)) + (re-search-backward regexp nil t)) (match-beginning 0))))) (defun org-babel-src-block-names (&optional file) @@ -1254,7 +1351,7 @@ org-babel-named-src-block-regexp." (when file (find-file file)) (goto-char (point-min)) (let (names) (while (re-search-forward org-babel-src-name-w-name-regexp nil t) - (setq names (cons (match-string 4) names))) + (setq names (cons (match-string 3) names))) names))) ;;;###autoload @@ -1270,16 +1367,21 @@ org-babel-named-src-block-regexp." (progn (goto-char point) (org-show-context)) (message "result '%s' not found in this buffer" name)))) -(defun org-babel-find-named-result (name) +(defun org-babel-find-named-result (name &optional point) "Find a named result. Return the location of the result named NAME in the current buffer or nil if no such result exists." (save-excursion - (goto-char (point-min)) - (when (re-search-forward - (concat org-babel-result-regexp - "[ \t]" (regexp-quote name) "[ \t\n\f\v\r]") nil t) - (beginning-of-line 0) (point)))) + (goto-char (or point (point-min))) + (catch 'is-a-code-block + (when (re-search-forward + (concat org-babel-result-regexp + "[ \t]" (regexp-quote name) "[ \t\n\f\v\r]") nil t) + (when (and (string= "name" (downcase (match-string 1))) + (or (looking-at org-babel-src-block-regexp) + (looking-at org-babel-multi-line-header-regexp))) + (throw 'is-a-code-block (org-babel-find-named-result name (point)))) + (beginning-of-line 0) (point))))) (defun org-babel-result-names (&optional file) "Returns the names of results in FILE or the current buffer." @@ -1334,6 +1436,8 @@ is created. In both cases if the region is demarcated and if the region is not active then the point is demarcated." (interactive "P") (let ((info (org-babel-get-src-block-info 'light)) + (headers (progn (org-babel-where-is-src-block-head) + (match-string 4))) (stars (concat (make-string (or (org-current-level) 1) ?*) " "))) (if info (mapc @@ -1346,11 +1450,16 @@ region is not active then the point is demarcated." (buffer-substring (point-at-bol) (point-at-eol))) (delete-region (point-at-bol) (point-at-eol))) - (insert (concat (if (looking-at "^") "" "\n") - indent "#+end_src\n" - (if arg stars indent) "\n" - indent "#+begin_src " lang - (if (looking-at "[\n\r]") "" "\n"))))) + (insert (concat + (if (looking-at "^") "" "\n") + indent "#+end_src\n" + (if arg stars indent) "\n" + indent "#+begin_src " lang + (if (> (length headers) 1) + (concat " " headers) headers) + (if (looking-at "[\n\r]") + "" + (concat "\n" (make-string (current-column) ? ))))))) (move-end-of-line 2)) (sort (if (region-active-p) (list (mark) (point)) (list (point))) #'>)) (let ((start (point)) @@ -1369,7 +1478,6 @@ region is not active then the point is demarcated." (goto-char start) (move-end-of-line 1))))) (defvar org-babel-lob-one-liner-regexp) -(defvar org-babel-inline-lob-one-liner-regexp) (defun org-babel-where-is-src-block-result (&optional insert info hash indent) "Find where the current source block results begin. Return the point at the beginning of the result of the current @@ -1380,13 +1488,11 @@ following the source block." (let* ((on-lob-line (save-excursion (beginning-of-line 1) (looking-at org-babel-lob-one-liner-regexp))) - (inlinep (save-excursion - (re-search-backward "[ \f\t\n\r\v]" nil t) - (when (looking-at org-babel-inline-src-block-regexp) - (match-end 0)))) + (inlinep (when (org-babel-get-inline-src-block-matches) + (match-end 0))) (name (if on-lob-line (nth 0 (org-babel-lob-get-info)) - (nth 4 (or info (org-babel-get-src-block-info))))) + (nth 4 (or info (org-babel-get-src-block-info 'light))))) (head (unless on-lob-line (org-babel-where-is-src-block-head))) found beg end) (when head (goto-char head)) @@ -1538,6 +1644,10 @@ raw ----- results are added directly to the Org-mode file. This is a good option if you code block will output org-mode formatted text. +wrap ---- results are added directly to the Org-mode file as with + \"raw\", but are wrapped in a RESULTS drawer, allowing + them to later be replaced or removed automatically. + org ----- similar in effect to raw, only the results are wrapped in an org code block. Similar to the raw option, on export the results will be interpreted as org-formatted @@ -1571,10 +1681,8 @@ code ---- the results are extracted in the syntax of the source (save-excursion (let* ((inlinep (save-excursion - (or (= (point) (point-at-bol)) - (re-search-backward "[ \f\t\n\r\v]" nil t)) - (when (or (looking-at org-babel-inline-src-block-regexp) - (looking-at org-babel-inline-lob-one-liner-regexp)) + (when (or (org-babel-get-inline-src-block-matches) + (org-babel-get-lob-one-liner-matches)) (goto-char (match-end 0)) (insert (if (listp result) "\n" " ")) (point)))) @@ -1606,41 +1714,45 @@ code ---- the results are extracted in the syntax of the source ((member "prepend" result-params)))) ; already there (setq results-switches (if results-switches (concat " " results-switches) "")) - ;; insert results based on type - (cond - ;; do nothing for an empty result - ((= (length result) 0)) - ;; insert a list if preferred - ((member "list" result-params) - (insert - (org-babel-trim - (org-list-to-generic - (cons 'unordered - (mapcar - (lambda (el) (list nil (if (stringp el) el (format "%S" el)))) - (if (listp result) result (list result)))) - '(:splicep nil :istart "- " :iend "\n"))) - "\n")) - ;; assume the result is a table if it's not a string - ((not (stringp result)) - (goto-char beg) - (insert (concat (orgtbl-to-orgtbl - (if (or (eq 'hline (car result)) - (and (listp (car result)) - (listp (cdr (car result))))) - result (list result)) - '(:fmt (lambda (cell) (format "%s" cell)))) "\n")) - (goto-char beg) (when (org-at-table-p) (org-table-align))) - ((member "file" result-params) - (insert result)) - (t (goto-char beg) (insert result))) - (when (listp result) (goto-char (org-table-end))) - (setq end (point-marker)) - ;; possibly wrap result (flet ((wrap (start finish) (goto-char beg) (insert (concat start "\n")) (goto-char end) (insert (concat finish "\n")) - (setq end (point-marker)))) + (setq end (point-marker))) + (proper-list-p (it) (and (listp it) (null (cdr (last it)))))) + ;; insert results based on type + (cond + ;; do nothing for an empty result + ((null result)) + ;; insert a list if preferred + ((member "list" result-params) + (insert + (org-babel-trim + (org-list-to-generic + (cons 'unordered + (mapcar + (lambda (el) (list nil (if (stringp el) el (format "%S" el)))) + (if (listp result) result (list result)))) + '(:splicep nil :istart "- " :iend "\n"))) + "\n")) + ;; assume the result is a table if it's not a string + ((proper-list-p result) + (goto-char beg) + (insert (concat (orgtbl-to-orgtbl + (if (or (eq 'hline (car result)) + (and (listp (car result)) + (listp (cdr (car result))))) + result (list result)) + '(:fmt (lambda (cell) (format "%s" cell)))) "\n")) + (goto-char beg) (when (org-at-table-p) (org-table-align))) + ((and (listp result) (not (proper-list-p result))) + (insert (format "%s\n" result))) + ((member "file" result-params) + (when inlinep (goto-char inlinep)) + (insert result)) + (t (goto-char beg) (insert result))) + (when (proper-list-p result) (goto-char (org-table-end))) + (setq end (point-marker)) + ;; possibly wrap result (cond ((member "html" result-params) (wrap "#+BEGIN_HTML" "#+END_HTML")) @@ -1654,10 +1766,9 @@ code ---- the results are extracted in the syntax of the source ((member "raw" result-params) (goto-char beg) (if (org-at-table-p) (org-cycle))) ((member "wrap" result-params) - (when (and (stringp result) (not (member "file" result-params))) - (org-babel-examplize-region beg end results-switches)) - (wrap "#+BEGIN_RESULT" "#+END_RESULT")) - ((and (stringp result) (not (member "file" result-params))) + (wrap ":RESULTS:" ":END:")) + ((and (not (proper-list-p result)) + (not (member "file" result-params))) (org-babel-examplize-region beg end results-switches) (setq end (point))))) ;; possibly indent the results to match the #+results line @@ -1666,7 +1777,7 @@ code ---- the results are extracted in the syntax of the source (not (and (listp result) (member "append" result-params)))) (indent-rigidly beg end indent)))) - (if (= (length result) 0) + (if (null result) (if (member "value" result-params) (message "Code block returned no value.") (message "Code block produced no output.")) @@ -1677,8 +1788,9 @@ code ---- the results are extracted in the syntax of the source (interactive) (let ((location (org-babel-where-is-src-block-result nil info)) start) (when location + (setq start (- location 1)) (save-excursion - (goto-char location) (setq start (point)) (forward-line 1) + (goto-char location) (forward-line 1) (delete-region start (org-babel-result-end)))))) (defun org-babel-result-end () @@ -1689,6 +1801,8 @@ code ---- the results are extracted in the syntax of the source ((org-at-item-p) (let* ((struct (org-list-struct)) (prvs (org-list-prevs-alist struct))) (org-list-get-list-end (point-at-bol) struct prvs))) + ((looking-at "^\\([ \t]*\\):RESULTS:") + (re-search-forward (concat "^" (match-string 1) ":END:"))) (t (let ((case-fold-search t) (blocks-re (regexp-opt @@ -1757,12 +1871,11 @@ Later elements of PLISTS override the values of previous elements. This takes into account some special considerations for certain parameters when merging lists." (let ((results-exclusive-groups - '(("file" "list" "vector" "table" "scalar" "verbatim" "raw" "org" - "html" "latex" "code" "pp" "wrap") - ("replace" "silent" "append" "prepend") - ("output" "value"))) + (mapcar (lambda (group) (mapcar #'symbol-name group)) + (cdr (assoc 'results org-babel-common-header-args-w-values)))) (exports-exclusive-groups - '(("code" "results" "both" "none"))) + (mapcar (lambda (group) (mapcar #'symbol-name group)) + (cdr (assoc 'exports org-babel-common-header-args-w-values)))) (variable-index 0) params results exports tangle noweb cache vars shebang comments padline) (flet ((e-merge (exclusive-groups &rest result-params) @@ -1806,12 +1919,16 @@ parameters when merging lists." vars)) vars) (list (cons name pair)))) - ;; if no name is given, then assign to variables in order - (prog1 (setf (cddr (nth variable-index vars)) - (concat (symbol-name - (car (nth variable-index vars))) - "=" (cdr pair))) - (incf variable-index))))) + ;; if no name is given and we already have named variables + ;; then assign to named variables in order + (if (and vars (nth variable-index vars)) + (prog1 (setf (cddr (nth variable-index vars)) + (concat (symbol-name + (car (nth variable-index vars))) + "=" (cdr pair))) + (incf variable-index)) + (error "variable \"%s\" must be assigned a default value" + (cdr pair)))))) (:results (setq results (e-merge results-exclusive-groups results @@ -1861,6 +1978,12 @@ parameters when merging lists." '(results exports tangle noweb padline cache shebang comments)) params)) +(defvar *org-babel-use-quick-and-dirty-noweb-expansion* nil + "Set to true to use regular expressions to expand noweb references. +This results in much faster noweb reference expansion but does +not properly allow code blocks to inherit the \":noweb-ref\" +header argument from buffer or subtree wide properties.") + (defun org-babel-expand-noweb-references (&optional info parent-buffer) "Expand Noweb references in the body of the current source code block. @@ -1896,21 +2019,15 @@ block but are passed literally to the \"example-block\"." (lang (nth 0 info)) (body (nth 1 info)) (comment (string= "noweb" (cdr (assoc :comments (nth 2 info))))) + (rx-prefix (concat "\\(" org-babel-src-name-regexp "\\|" + ":noweb-ref[ \t]+" "\\)")) (new-body "") index source-name evaluate prefix blocks-in-buffer) (flet ((nb-add (text) (setq new-body (concat new-body text))) (c-wrap (text) (with-temp-buffer (funcall (intern (concat lang "-mode"))) (comment-region (point) (progn (insert text) (point))) - (org-babel-trim (buffer-string)))) - (blocks () ;; return the info lists of all blocks in this buffer - (let (infos) - (save-restriction - (widen) - (org-babel-map-src-blocks nil - (setq infos (cons (org-babel-get-src-block-info 'light) - infos)))) - (reverse infos)))) + (org-babel-trim (buffer-string))))) (with-temp-buffer (insert body) (goto-char (point-min)) (setq index (point)) @@ -1944,21 +2061,37 @@ block but are passed literally to the \"example-block\"." (when (org-babel-ref-goto-headline-id source-name) (org-babel-ref-headline-body))) ;; find the expansion of reference in this buffer - (mapconcat - (lambda (i) - (when (string= source-name - (or (cdr (assoc :noweb-ref (nth 2 i))) - (nth 4 i))) - (let ((body (org-babel-expand-noweb-references i))) - (if comment - ((lambda (cs) - (concat (c-wrap (car cs)) "\n" - body "\n" (c-wrap (cadr cs)))) - (org-babel-tangle-comment-links i)) - body)))) - (or blocks-in-buffer - (setq blocks-in-buffer (blocks))) - "") + (let ((rx (concat rx-prefix source-name)) + expansion) + (save-excursion + (goto-char (point-min)) + (if *org-babel-use-quick-and-dirty-noweb-expansion* + (while (re-search-forward rx nil t) + (let* ((i (org-babel-get-src-block-info 'light)) + (body (org-babel-expand-noweb-references i)) + (full (if comment + ((lambda (cs) + (concat (c-wrap (car cs)) "\n" + body "\n" + (c-wrap (cadr cs)))) + (org-babel-tangle-comment-links i)) + body))) + (setq expansion (concat expansion full)))) + (org-babel-map-src-blocks nil + (let ((i (org-babel-get-src-block-info 'light))) + (when (equal (or (cdr (assoc :noweb-ref (nth 2 i))) + (nth 4 i)) + source-name) + (let* ((body (org-babel-expand-noweb-references i)) + (full (if comment + ((lambda (cs) + (concat (c-wrap (car cs)) "\n" + body "\n" + (c-wrap (cadr cs)))) + (org-babel-tangle-comment-links i)) + body))) + (setq expansion (concat expansion full)))))))) + expansion) ;; possibly raise an error if named block doesn't exist (if (member lang org-babel-noweb-error-langs) (error "%s" (concat diff --git a/lisp/org/org-agenda.el b/lisp/org/org-agenda.el index a54f3c4c3d3..d444aff4f2b 100644 --- a/lisp/org/org-agenda.el +++ b/lisp/org/org-agenda.el @@ -1,11 +1,10 @@ ;;; org-agenda.el --- Dynamic task and appointment lists for Org -;; Copyright (C) 2004-2011 Free Software Foundation, Inc. +;; Copyright (C) 2004-2012 Free Software Foundation, Inc. ;; Author: Carsten Dominik <carsten at orgmode dot org> ;; Keywords: outlines, hypermedia, calendar, wp ;; Homepage: http://orgmode.org -;; Version: 7.7 ;; ;; This file is part of GNU Emacs. ;; @@ -26,6 +25,23 @@ ;;; Commentary: ;; This file contains the code for creating and using the Agenda for Org-mode. +;; +;; The functions `org-batch-agenda', `org-batch-agenda-csv', and +;; `org-batch-store-agenda-views' are implemented as macros to provide +;; a conveniant way for extracting agenda information from the command +;; line. The Lisp does not evaluate parameters of a macro call; thus +;; it is not necessary to quote the parameters passed to one of those +;; functions. E.g. you can write: +;; +;; emacs -batch -l ~/.emacs -eval '(org-batch-agenda "a" org-agenda-span 7)' +;; +;; To export an agenda spanning 7 days. If `org-batch-agenda' would +;; have been implemented as a regular function you'd have to quote the +;; symbol org-agenda-span. Moreover: To use a symbol as parameter +;; value you would have to double quote the symbol. +;; +;; This is a hack, but it works even when running Org byte-compiled. +;; ;;; Code: @@ -50,6 +66,8 @@ (declare-function calendar-julian-date-string "cal-julian" (&optional date)) (declare-function calendar-mayan-date-string "cal-mayan" (&optional date)) (declare-function calendar-persian-date-string "cal-persia" (&optional date)) +(declare-function calendar-check-holidays "holidays" (date)) + (declare-function org-datetree-find-date-create "org-datetree" (date &optional keep-restriction)) (declare-function org-columns-quit "org-colview" ()) @@ -60,6 +78,8 @@ (declare-function org-is-habit-p "org-habit" (&optional pom)) (declare-function org-habit-parse-todo "org-habit" (&optional pom)) (declare-function org-habit-get-priority "org-habit" (habit &optional moment)) +(declare-function org-pop-to-buffer-same-window "org-compat" + (&optional buffer-or-name norecord label)) (defvar calendar-mode-map) (defvar org-clock-current-task) ; defined in org-clock.el @@ -156,7 +176,7 @@ and `org-agenda-entry-text-maxlines'." "Non-nil means export org-links as descriptive links in agenda added text. This variable applies to the text added to the agenda when `org-agenda-add-entry-text-maxlines' is larger than 0. -When this variable is nil, the URL will (also) be shown." +When this variable nil, the URL will (also) be shown." :group 'org-agenda :type 'boolean) @@ -225,6 +245,12 @@ you can \"misuse\" it to also add other text to the header. However, (const user-defined-up) (const user-defined-down)) "Sorting choices.") +;; Keep custom values for `org-agenda-filter-preset' compatible with +;; the new variable `org-agenda-tag-filter-preset'. +(if (fboundp 'defvaralias) + (defvaralias 'org-agenda-filter-preset 'org-agenda-tag-filter-preset) + (defvaralias 'org-agenda-filter 'org-agenda-tag-filter)) + (defconst org-agenda-custom-commands-local-options `(repeat :tag "Local settings for this command. Remember to quote values" (choice :tag "Setting" @@ -266,8 +292,14 @@ you can \"misuse\" it to also add other text to the header. However, (list :tag "Deadline Warning days" (const org-deadline-warning-days) (integer :value 1)) + (list :tag "Category filter preset" + (const org-agenda-category-filter-preset) + (list + (const :format "" quote) + (repeat + (string :tag "+category or -category")))) (list :tag "Tags filter preset" - (const org-agenda-filter-preset) + (const org-agenda-tag-filter-preset) (list (const :format "" quote) (repeat @@ -330,7 +362,8 @@ This will be spliced into the custom type of `org-agenda-custom-commands'.") -(defcustom org-agenda-custom-commands nil +(defcustom org-agenda-custom-commands '(("n" "Agenda and all TODO's" + ((agenda "") (alltodo)))) "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: @@ -339,7 +372,7 @@ agenda dispatcher \\[org-agenda]. Each entry is a list like this: key The key (one or more characters as a string) to be associated with the command. -desc A description of the command; when omitted or nil, a default +desc A description of the command, when omitted or nil, a default description is built using MATCH. type The command type, any of the following symbols: agenda The daily/weekly agenda. @@ -354,7 +387,7 @@ type The command type, any of the following symbols: match What to search for: - a single keyword for TODO keyword searches - a tags match expression for tags searches - - a word search expression for text searches + - a word search expression for text searches. - a regular expression for occur searches For all other commands, this should be the empty string. settings A list of option settings, similar to that in a let form, so like @@ -363,7 +396,7 @@ settings A list of option settings, similar to that in a let form, so like 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 + is written out. If it ends in \".ps\", a postscript version is produced. Otherwise, only the plain text is written to the file. You can also define a set of commands, to create a composite agenda buffer. @@ -764,11 +797,11 @@ because you will take care of it on the day when scheduled." :group 'org-agenda-skip :group 'org-agenda-daily/weekly :type '(choice - (const :tag "Always show prewarning" nil) + (const :tag "Alwas show prewarning" nil) (const :tag "Remove prewarning if entry is scheduled" t) (integer :tag "Restart prewarning N days before deadline"))) -(defcustom org-agenda-skip-additional-timestamps-same-entry t +(defcustom org-agenda-skip-additional-timestamps-same-entry nil "When nil, multiple same-day timestamps in entry make multiple agenda lines. When non-nil, after the search for timestamps has matched once in an entry, the rest of the entry will not be searched." @@ -853,6 +886,12 @@ Needs to be set before org.el is loaded." :group 'org-agenda-startup :type 'boolean) +(defcustom org-agenda-follow-indirect nil + "Non-nil means `org-agenda-follow-mode' displays only the +current item's tree, in an indirect buffer." + :group 'org-agenda + :type 'boolean) + (defcustom org-agenda-show-outline-path t "Non-nil means show outline path in echo area after line motion." :group 'org-agenda-startup @@ -1048,6 +1087,15 @@ and timeline buffers." (const :tag "Saturday" 6) (const :tag "Sunday" 0))) +(defcustom org-agenda-move-date-from-past-immediately-to-today t + "Non-nil means jumpt to today when moving a past date forward in time. +When using S-right in the agenda to move a a date forward, and the date +stamp currently points to the past, the first key press will move it +to today. WHen nil, just move one day forward even if the date stays +in the past." + :group 'org-agenda-daily/weekly + :type 'boolean) + (defcustom org-agenda-include-diary nil "If non-nil, include in the agenda entries from the Emacs Calendar's diary. Custom commands can set this variable in the options section." @@ -1060,14 +1108,6 @@ Custom commands can set this variable in the options section." :group 'org-agenda-daily/weekly :type 'boolean) -(defcustom org-agenda-include-all-todo nil - "Set means weekly/daily agenda will always contain all TODO entries. -The TODO entries will be listed at the top of the agenda, before -the entries for specific days. -This option is deprecated, it is better to define a block agenda instead." - :group 'org-agenda-daily/weekly - :type 'boolean) - (defcustom org-agenda-repeating-timestamp-show-all t "Non-nil means show all occurrences of a repeating stamp in the agenda. When set to a list of strings, only show occurrences of repeating @@ -1396,6 +1436,7 @@ This format works similar to a printf format, with the following meaning: %c the category of the item, \"Diary\" for entries from the diary, or as given by the CATEGORY keyword or derived from the file name + %e the effort required by the item %i the icon category of the item, see `org-agenda-category-icon-alist' %T the last tag of the item (ignore inherited tags, which come first) %t the HH:MM time-of-day specification if one applies to the entry @@ -1619,7 +1660,7 @@ Where CATEGORY-REGEXP is a regexp matching the categories where the icon should be displayed. FILE-OR-DATA either a file path or a string containing image data. -The other fields can be omitted safely if not needed: +The other fields can be omited safely if not needed: TYPE indicates the image type. DATA-P is a boolean indicating whether the FILE-OR-DATA string is image data. @@ -1711,12 +1752,14 @@ Note that functions in this alist don't need to be quoted." If STRING is non-nil, the text property will be fetched from position 0 in that string. If STRING is nil, it will be fetched from the beginning of the current line." - `(let ((marker (get-text-property (if string 0 (point-at-bol)) - 'org-hd-marker string))) - (with-current-buffer (marker-buffer marker) - (save-excursion - (goto-char marker) - ,@body)))) + (org-with-gensyms (marker) + `(let ((,marker (get-text-property (if string 0 (point-at-bol)) + 'org-hd-marker ,string))) + (with-current-buffer (marker-buffer ,marker) + (save-excursion + (goto-char ,marker) + ,@body))))) +(def-edebug-spec org-agenda-with-point-at-orig-entry (form body)) (defun org-add-agenda-custom-command (entry) "Replace or add a command in `org-agenda-custom-commands'. @@ -1727,7 +1770,7 @@ works you probably want to add it to `org-agenda-custom-commands' for good." (setcdr ass (cdr entry)) (push entry org-agenda-custom-commands)))) -;;; Define the Org-agenda-mode +;;; Define the org-agenda-mode (defvar org-agenda-mode-map (make-sparse-keymap) "Keymap for `org-agenda-mode'.") @@ -1870,7 +1913,7 @@ The following commands are available: (org-defkey org-agenda-mode-map "\C-c\C-xp" 'org-agenda-set-property) (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 "\C-x\C-w" 'org-agenda-write) (org-defkey org-agenda-mode-map "\C-x\C-s" 'org-save-all-org-buffers) (org-defkey org-agenda-mode-map "s" 'org-save-all-org-buffers) (org-defkey org-agenda-mode-map "P" 'org-agenda-show-priority) @@ -1918,6 +1961,7 @@ The following commands are available: (org-defkey org-agenda-mode-map "}" 'org-agenda-manipulate-query-subtract-re) (org-defkey org-agenda-mode-map "/" 'org-agenda-filter-by-tag) (org-defkey org-agenda-mode-map "\\" 'org-agenda-filter-by-tag-refine) +(org-defkey org-agenda-mode-map "<" 'org-agenda-filter-by-category) (org-defkey org-agenda-mode-map ";" 'org-timer-set-timer) (define-key org-agenda-mode-map "?" 'org-agenda-show-the-flagging-note) (org-defkey org-agenda-mode-map "\C-c\C-x\C-mg" 'org-mobile-pull) @@ -1984,7 +2028,7 @@ The following commands are available: :keys "v A"] "--" ["Remove Restriction" org-agenda-remove-restriction-lock org-agenda-restrict]) - ["Write view to file" org-write-agenda t] + ["Write view to file" org-agenda-write t] ["Rebuild buffer" org-agenda-redo t] ["Save all Org-mode Buffers" org-save-all-org-buffers t] "--" @@ -2295,7 +2339,7 @@ Pressing `<' twice means to restrict to the current subtree or region nil 'face 'org-warning))))))) t t)) ((equal keys "L") - (unless (org-mode-p) + (unless (eq major-mode 'org-mode) (error "This is not an Org-mode file")) (unless restriction (put 'org-agenda-files 'org-restrict (list bfn)) @@ -2330,7 +2374,7 @@ Agenda views are separated by `org-agenda-block-separator'." "The user interface for selecting an agenda command." (catch 'exit (let* ((bfn (buffer-file-name (buffer-base-buffer))) - (restrict-ok (and bfn (org-mode-p))) + (restrict-ok (and bfn (eq major-mode 'org-mode))) (region-p (org-region-active-p)) (custom org-agenda-custom-commands) (selstring "") @@ -2572,23 +2616,13 @@ If CMD-KEY is a string of length 1, it is used as a key in longer string it is used as a tags/todo match string. Parameters 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)) + (org-eval-in-environment (org-make-parameter-alist parameters) (if (> (length cmd-key) 2) - (eval (list 'let (nreverse pars) - (list 'org-tags-view nil cmd-key))) - (eval (list 'let (nreverse pars) (list 'org-agenda nil cmd-key)))) - (set-buffer org-agenda-buffer-name) - (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)) - -(defun org-encode-for-stdout (string) - string) + (org-tags-view nil cmd-key) + (org-agenda nil cmd-key))) + (set-buffer org-agenda-buffer-name) + (princ (buffer-string))) +(def-edebug-spec org-batch-agenda (form &rest sexp)) (defvar org-agenda-info nil) @@ -2627,30 +2661,26 @@ extra Sting with extra planning info priority-l The priority letter if any was given priority-n The computed numerical priority agenda-day The day in the agenda where this is listed" - - (let (pars) - (while parameters - (push (list (pop parameters) (if parameters (pop parameters))) pars)) - (push (list 'org-agenda-remove-tags t) pars) + (org-eval-in-environment (append '((org-agenda-remove-tags t)) + (org-make-parameter-alist parameters)) (if (> (length cmd-key) 2) - (eval (list 'let (nreverse pars) - (list 'org-tags-view nil cmd-key))) - (eval (list 'let (nreverse pars) (list 'org-agenda nil cmd-key)))) - (set-buffer org-agenda-buffer-name) - (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 extra - priority-letter priority agenda-day) - ","))) - (princ "\n")))))) + (org-tags-view nil cmd-key) + (org-agenda nil cmd-key))) + (set-buffer org-agenda-buffer-name) + (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 + (mapconcat 'org-agenda-export-csv-mapper + '(org-category txt type todo tags date time extra + priority-letter priority agenda-day) + ",")) + (princ "\n"))))) +(def-edebug-spec org-batch-agenda-csv (form &rest sexp)) (defun org-fix-agenda-info (props) "Make sure all properties on an agenda item have a canonical form. @@ -2700,17 +2730,14 @@ This ensures the export commands can easily use it." (interactive) (eval (list 'org-batch-store-agenda-views))) -;; 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-normalize-custom-commands org-agenda-custom-commands)) (pop-up-frames nil) (dir default-directory) - pars cmd thiscmdkey files opts cmd-or-set) - (while parameters - (push (list (pop parameters) (if parameters (pop parameters))) pars)) - (setq pars (reverse pars)) + (pars (org-make-parameter-alist parameters)) + cmd thiscmdkey files opts cmd-or-set) (save-window-excursion (while cmds (setq cmd (pop cmds) @@ -2720,15 +2747,17 @@ This ensures the export commands can easily use it." files (nth (if (listp cmd-or-set) 4 5) cmd)) (if (stringp files) (setq files (list files))) (when files - (eval (list 'let (append org-agenda-exporter-settings opts pars) - (list 'org-agenda nil thiscmdkey))) + (org-eval-in-environment (append org-agenda-exporter-settings + opts pars) + (org-agenda nil thiscmdkey)) (set-buffer org-agenda-buffer-name) (while files - (eval (list 'let (append org-agenda-exporter-settings opts pars) - (list 'org-write-agenda - (expand-file-name (pop files) dir) nil t)))) + (org-eval-in-environment (append org-agenda-exporter-settings + opts pars) + (org-agenda-write (expand-file-name (pop files) dir) nil t))) (and (get-buffer org-agenda-buffer-name) (kill-buffer org-agenda-buffer-name))))))) +(def-edebug-spec org-batch-store-agenda-views (&rest sexp)) (defun org-agenda-mark-header-line (pos) "Mark the line at POS as an agenda structure header." @@ -2741,11 +2770,12 @@ This ensures the export commands can easily use it." 'org-agenda-title-append org-agenda-title-append)))) (defvar org-mobile-creating-agendas) -(defun org-write-agenda (file &optional open nosettings) +(defvar org-agenda-write-buffer-name "Agenda View") +(defun org-agenda-write (file &optional open 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 the extension is .ics, run iCalendar export over all files used +HTML (.html or .htm) or Postscript (.ps) is produced. +If the extension is .ics, run icalendar export over all files used to construct the agenda and limit the export to entries listed in the agenda now. With prefix argument OPEN, open the new file immediately. @@ -2763,7 +2793,7 @@ higher priority settings." (let ((bs (copy-sequence (buffer-string))) beg) (org-agenda-unmark-filtered-text) (with-temp-buffer - (rename-buffer "Agenda View" t) + (rename-buffer org-agenda-write-buffer-name t) (set-buffer-modified-p nil) (insert bs) (org-agenda-remove-marked-text 'org-filtered) @@ -2793,7 +2823,7 @@ higher priority settings." ((string-match "\\.ps\\'" file) (require 'ps-print) (ps-print-buffer-with-faces file) - (message "PostScript written to %s" file)) + (message "Postscript written to %s" file)) ((string-match "\\.pdf\\'" file) (require 'ps-print) (ps-print-buffer-with-faces @@ -2824,7 +2854,8 @@ higher priority settings." (set-buffer org-agenda-buffer-name)) (when open (org-open-file file))) -(defvar org-agenda-filter-overlays nil) +(defvar org-agenda-tag-filter-overlays nil) +(defvar org-agenda-cat-filter-overlays nil) (defun org-agenda-mark-filtered-text () "Mark all text hidden by filtering with a text property." @@ -2835,7 +2866,8 @@ higher priority settings." (put-text-property (overlay-start o) (overlay-end o) 'org-filtered t))) - org-agenda-filter-overlays))) + (append org-agenda-tag-filter-overlays + org-agenda-cat-filter-overlays)))) (defun org-agenda-unmark-filtered-text () "Remove the filtering text property." @@ -2882,7 +2914,7 @@ removed from the entry content. Currently only `planning' is allowed here." (let (txt drawer-re kwd-time-re ind) (save-excursion (with-current-buffer (marker-buffer marker) - (if (not (org-mode-p)) + (if (not (eq major-mode 'org-mode)) (setq txt "") (save-excursion (save-restriction @@ -2972,7 +3004,7 @@ removed from the entry content. Currently only `planning' is allowed here." (nreverse markers))) (defun org-create-marker-find-array (marker-list) - "Create an alist of files names with all marker positions in that file." + "Create a alist of files names with all marker positions in that file." (let (f tbl m a p) (while (setq m (pop marker-list)) (setq p (marker-position m) @@ -2997,8 +3029,8 @@ removed from the entry content. Currently only `planning' is allowed here." (member (point) (cdr a))))))) (defun org-check-for-org-mode () - "Make sure current buffer is in Org-mode. Error if not." - (or (org-mode-p) + "Make sure current buffer is in org-mode. Error if not." + (or (eq major-mode 'org-mode) (error "Cannot execute org-mode agenda command on buffer in %s" major-mode))) @@ -3018,9 +3050,10 @@ removed from the entry content. Currently only `planning' is allowed here." (defvar org-pre-agenda-window-conf nil) (defvar org-agenda-columns-active nil) (defvar org-agenda-name nil) -(defvar org-agenda-filter nil) -(defvar org-agenda-filter-while-redo nil) -(defvar org-agenda-filter-preset nil +(defvar org-agenda-tag-filter nil) +(defvar org-agenda-category-filter nil) +(defvar org-agenda-tag-filter-while-redo nil) +(defvar org-agenda-tag-filter-preset nil "A preset of the tags filter used for secondary agenda filtering. This must be a list of strings, each string must be a single tag preceded by \"+\" or \"-\". @@ -3030,13 +3063,25 @@ the entire agenda view. In a block agenda, it will not work reliably to define a filter for one of the individual blocks. You need to set it in the global options and expect it to be applied to the entire view.") +(defvar org-agenda-category-filter-preset nil + "A preset of the categeory filter used for secondary agenda filtering. +This must be a list of strings, each string must be a single category +preceded by \"+\" or \"-\". +This variable should not be set directly, but agenda custom commands can +bind it in the options section. The preset filter is a global property of +the entire agenda view. In a block agenda, it will not work reliably to +define a filter for one of the individual blocks. You need to set it in +the global options and expect it to be applied to the entire view.") + (defun org-prepare-agenda (&optional name) (setq org-todo-keywords-for-agenda nil) (setq org-done-keywords-for-agenda nil) (setq org-drawers-for-agenda nil) (unless org-agenda-persistent-filter - (setq org-agenda-filter nil)) - (put 'org-agenda-filter :preset-filter org-agenda-filter-preset) + (setq org-agenda-tag-filter nil + org-agenda-category-filter nil)) + (put 'org-agenda-tag-filter :preset-filter org-agenda-tag-filter-preset) + (put 'org-agenda-category-filter :preset-filter org-agenda-category-filter-preset) (if org-agenda-multi (progn (setq buffer-read-only nil) @@ -3065,7 +3110,7 @@ the global options and expect it to be applied to the entire view.") (awin (select-window awin)) ((not (setq org-pre-agenda-window-conf (current-window-configuration)))) ((equal org-agenda-window-setup 'current-window) - (switch-to-buffer abuf)) + (org-pop-to-buffer-same-window abuf)) ((equal org-agenda-window-setup 'other-window) (org-switch-to-buffer-other-window abuf)) ((equal org-agenda-window-setup 'other-frame) @@ -3076,7 +3121,7 @@ the global options and expect it to be applied to the entire view.") ;; additional test in case agenda is invoked from within agenda ;; buffer via elisp link (unless (equal (current-buffer) abuf) - (switch-to-buffer abuf))) + (org-pop-to-buffer-same-window abuf))) (setq buffer-read-only nil) (let ((inhibit-read-only t)) (erase-buffer)) (org-agenda-mode) @@ -3115,8 +3160,10 @@ the global options and expect it to be applied to the entire view.") (org-habit-insert-consistency-graphs)) (run-hooks 'org-finalize-agenda-hook) (setq org-agenda-type (org-get-at-bol 'org-agenda-type)) - (when (or org-agenda-filter (get 'org-agenda-filter :preset-filter)) - (org-agenda-filter-apply org-agenda-filter)) + (when (or org-agenda-tag-filter (get 'org-agenda-tag-filter :preset-filter)) + (org-agenda-filter-apply org-agenda-tag-filter 'tag)) + (when (or org-agenda-category-filter (get 'org-agenda-category-filter :preset-filter)) + (org-agenda-filter-apply org-agenda-category-filter 'category)) ))) (defun org-agenda-mark-clocking-task () @@ -3190,17 +3237,9 @@ the global options and expect it to be applied to the entire view.") (setq org-blocked-by-checkboxes nil invis1 invis) (let ((marker (org-get-at-bol 'org-hd-marker))) (when (and marker - (not (with-current-buffer (marker-buffer marker) - (save-excursion - (goto-char marker) - (if (org-entry-get nil "NOBLOCKING") - t ;; Never block this entry - (run-hook-with-args-until-failure - 'org-blocker-hook - (list :type 'todo-state-change - :position marker - :from 'todo - :to 'done))))))) + (with-current-buffer (marker-buffer marker) + (save-excursion (goto-char marker) + (org-entry-blocked-p)))) (if org-blocked-by-checkboxes (setq invis1 nil)) (setq b (if invis1 (max (point-min) (1- (point-at-bol))) @@ -3334,7 +3373,7 @@ no longer in use." (defvar org-agenda-only-exact-dates nil) ; dynamically scoped -(defun org-timeline (&optional include-all) +(defun org-timeline (&optional dotodo) "Show a time-sorted view of the entries in the current org file. Only entries with a time stamp of today or later will be listed. With \\[universal-argument] prefix, all unfinished TODO items will also be shown, @@ -3345,7 +3384,6 @@ dates." (org-compile-prefix-format 'timeline) (org-set-sorting-strategy 'timeline) (let* ((dopast t) - (dotodo include-all) (doclosed org-agenda-show-log) (entry (buffer-file-name (or (buffer-base-buffer (current-buffer)) (current-buffer)))) @@ -3364,7 +3402,7 @@ dates." (setq org-agenda-redo-command (list 'progn (list 'org-switch-to-buffer-other-window (current-buffer)) - (list 'org-timeline (list 'quote include-all)))) + (list 'org-timeline (list 'quote dotodo)))) (if (not dopast) ;; Remove past dates from the list of dates. (setq day-numbers (delq nil (mapcar (lambda(x) @@ -3432,22 +3470,26 @@ When EMPTY is non-nil, also include days without any entries." (let ((re (concat (if pre-re pre-re "") (if inactive org-ts-regexp-both org-ts-regexp))) - dates dates1 date day day1 day2 ts1 ts2) + dates dates1 date day day1 day2 ts1 ts2 pos) (if force-today (setq dates (list (org-today)))) (save-excursion (goto-char beg) (while (re-search-forward re end t) (setq day (time-to-days (org-time-string-to-time - (substring (match-string 1) 0 10)))) + (substring (match-string 1) 0 10) + (current-buffer) (match-beginning 0)))) (or (memq day dates) (push day dates))) (unless no-ranges (goto-char beg) (while (re-search-forward org-tr-regexp end t) + (setq pos (match-beginning 0)) (setq ts1 (substring (match-string 1) 0 10) ts2 (substring (match-string 2) 0 10) - day1 (time-to-days (org-time-string-to-time ts1)) - day2 (time-to-days (org-time-string-to-time ts2))) + day1 (time-to-days (org-time-string-to-time + ts1 (current-buffer) pos)) + day2 (time-to-days (org-time-string-to-time + ts2 (current-buffer) pos))) (while (< (setq day1 (1+ day1)) day2) (or (memq day1 dates) (push day1 dates))))) (setq dates (sort dates '<)) @@ -3472,7 +3514,7 @@ Custom commands can set this variable in the options section.") (defvar org-starting-day nil) ; local variable in the agenda buffer (defvar org-agenda-current-span nil "The current span used in the agenda view.") ; local variable in the agenda buffer -(defvar org-include-all-loc nil) ; local variable +(defvar org-arg-loc nil) ; local variable (defvar org-agenda-entry-types '(:deadline :scheduled :timestamp :sexp) "List of types searched for when creating the daily/weekly agenda. @@ -3508,29 +3550,29 @@ somewhat less efficient) way of determining what is included in the daily/weekly agenda, see `org-agenda-skip-function'.") ;;;###autoload -(defun org-agenda-list (&optional include-all start-day span) +(defun org-agenda-list (&optional arg start-day span) "Produce a daily/weekly view from all files in variable `org-agenda-files'. The view will be for the current day or week, but from the overview buffer you will be able to go to other days/weeks. With a numeric prefix argument in an interactive call, the agenda will -span INCLUDE-ALL days. Lisp programs should instead specify SPAN to change +span ARG days. Lisp programs should instead specify SPAN to change the number of days. SPAN defaults to `org-agenda-span'. START-DAY defaults to TODAY, or to the most recent match for the weekday given in `org-agenda-start-on-weekday'." (interactive "P") - (if (and (integerp include-all) (> include-all 0)) - (setq span include-all include-all nil)) + (if (and (integerp arg) (> arg 0)) + (setq span arg arg nil)) (setq start-day (or start-day org-agenda-start-day)) (if org-agenda-overriding-arguments - (setq include-all (car org-agenda-overriding-arguments) + (setq arg (car org-agenda-overriding-arguments) start-day (nth 1 org-agenda-overriding-arguments) span (nth 2 org-agenda-overriding-arguments))) (if (stringp start-day) ;; Convert to an absolute day number (setq start-day (time-to-days (org-read-date nil t start-day)))) - (setq org-agenda-last-arguments (list include-all start-day span)) + (setq org-agenda-last-arguments (list arg start-day span)) (org-compile-prefix-format 'agenda) (org-set-sorting-strategy 'agenda) (let* ((span (org-agenda-ndays-to-span @@ -3557,7 +3599,7 @@ given in `org-agenda-start-on-weekday'." s e rtn rtnall file date d start-pos end-pos todayp clocktable-start clocktable-end filter) (setq org-agenda-redo-command - (list 'org-agenda-list (list 'quote include-all) start-day (list 'quote span))) + (list 'org-agenda-list (list 'quote arg) start-day (list 'quote span))) (dotimes (n (1- ndays)) (push (1+ (car day-numbers)) day-numbers)) (setq day-numbers (nreverse day-numbers)) @@ -3565,7 +3607,7 @@ given in `org-agenda-start-on-weekday'." clocktable-end (1+ (or (org-last day-numbers) 0))) (org-prepare-agenda "Day/Week") (org-set-local 'org-starting-day (car day-numbers)) - (org-set-local 'org-include-all-loc include-all) + (org-set-local 'org-arg-loc arg) (org-set-local 'org-agenda-current-span (org-agenda-ndays-to-span span)) (unless org-agenda-compact-blocks (let* ((d1 (car day-numbers)) @@ -3616,7 +3658,7 @@ given in `org-agenda-start-on-weekday'." (setq rtn (apply 'org-agenda-get-day-entries file date org-agenda-entry-types))))) - (setq rtnall (append rtnall rtn)))) + (setq rtnall (append rtnall rtn)))) ;; all entries (if org-agenda-include-diary (let ((org-agenda-search-headline-for-time t)) (require 'diary-lib) @@ -3638,7 +3680,7 @@ given in `org-agenda-start-on-weekday'." (put-text-property s (1- (point)) 'org-day-cnt day-cnt) (when todayp (put-text-property s (1- (point)) 'org-today t)) - (if rtnall (insert + (if rtnall (insert ;; all entries (org-finalize-agenda-entries (org-agenda-add-time-grid-maybe rtnall ndays todayp)) @@ -3655,8 +3697,8 @@ given in `org-agenda-start-on-weekday'." (setq p (plist-put p :tend clocktable-end)) (setq p (plist-put p :scope 'agenda)) (when (and (eq org-agenda-clockreport-mode 'with-filter) - (setq filter (or org-agenda-filter-while-redo - (get 'org-agenda-filter :preset-filter)))) + (setq filter (or org-agenda-tag-filter-while-redo + (get 'org-agenda-tag-filter :preset-filter)))) (setq p (plist-put p :tags (mapconcat (lambda (x) (if (string-match "[<>=]" x) "" @@ -3715,9 +3757,9 @@ given in `org-agenda-start-on-weekday'." (defvar org-todo-only nil) (defvar org-search-syntax-table nil - "Special syntax table for Org-mode search. -In this table, we have single quotes not as word constituents, so -that when \"+Ameli\" is searched as a word, it will also match \"Ameli's\"") + "Special syntax table for org-mode search. +In this table, we have single quotes not as word constituents, to +that when \"+Ameli\" is searched as a work, it will also match \"Ameli's\"") (defun org-search-syntax-table () (unless org-search-syntax-table @@ -3786,7 +3828,7 @@ in `org-agenda-text-search-extra-files'." (full-words org-agenda-search-view-force-full-words) (org-agenda-text-search-extra-files org-agenda-text-search-extra-files) regexp rtn rtnall files file pos - marker category tags c neg re boolean + marker category org-category-pos tags c neg re boolean ee txt beg end words regexps+ regexps- hdl-only buffer beg1 str) (unless (and (not edit-at) (stringp string) @@ -3869,7 +3911,7 @@ in `org-agenda-text-search-extra-files'." (if (not regexps+) (setq regexp org-outline-regexp-bol) (setq regexp (pop regexps+)) - (if hdl-only (setq regexp (concat "^" org-outline-regexp ".*?" + (if hdl-only (setq regexp (concat org-outline-regexp-bol ".*?" regexp)))) (setq files (org-agenda-files nil 'ifmode)) (when (eq (car org-agenda-text-search-extra-files) 'agenda-archives) @@ -3890,7 +3932,7 @@ in `org-agenda-text-search-extra-files'." file)))) (with-current-buffer buffer (with-syntax-table (org-search-syntax-table) - (unless (org-mode-p) + (unless (eq major-mode 'org-mode) (error "Agenda file %s is not in `org-mode'" file)) (let ((case-fold-search t)) (save-excursion @@ -3900,7 +3942,7 @@ in `org-agenda-text-search-extra-files'." org-agenda-restrict-end) (widen)) (goto-char (point-min)) - (unless (or (org-on-heading-p) + (unless (or (org-at-heading-p) (outline-next-heading)) (throw 'nextfile t)) (goto-char (max (point-min) (1- (point)))) @@ -3930,8 +3972,9 @@ in `org-agenda-text-search-extra-files'." (goto-char beg) (setq marker (org-agenda-new-marker (point)) category (org-get-category) + org-category-pos (get-text-property (point) 'org-category-position) tags (org-get-tags-at (point)) - txt (org-format-agenda-item + txt (org-agenda-format-item "" (buffer-substring-no-properties beg1 (point-at-eol)) @@ -3941,6 +3984,7 @@ in `org-agenda-text-search-extra-files'." 'org-todo-regexp org-todo-regexp 'org-complex-heading-regexp org-complex-heading-regexp 'priority 1000 'org-category category + 'org-category-position org-category-pos 'type "search") (push txt ee) (goto-char (1- end)))))))))) @@ -4081,7 +4125,7 @@ The prefix arg TODO-ONLY limits the search to TODO entries." (format "ORG-AGENDA-ERROR: No such org-file %s" file)) rtnall (append rtnall rtn)) (with-current-buffer buffer - (unless (org-mode-p) + (unless (eq major-mode 'org-mode) (error "Agenda file %s is not in `org-mode'" file)) (save-excursion (save-restriction @@ -4305,8 +4349,8 @@ of what a project is and how to check if it stuck, customize the variable "\\)\\>")) (tags (nth 2 org-stuck-projects)) (tags-re (if (member "*" tags) - (org-re (concat org-outline-regexp-bol - ".*:[[:alnum:]_@#%]+:[ \t]*$")) + (concat org-outline-regexp-bol + (org-re ".*:[[:alnum:]_@#%]+:[ \t]*$")) (if tags (concat org-outline-regexp-bol ".*:\\(" @@ -4333,7 +4377,7 @@ of what a project is and how to check if it stuck, customize the variable ;;; Diary integration (defvar org-disable-agenda-to-diary nil) ;Dynamically-scoped param. -(defvar list-diary-entries-hook) +(defvar diary-list-entries-hook) (defvar diary-time-regexp) (defun org-get-entries-from-diary (date) "Get the (Emacs Calendar) diary entries for DATE." @@ -4342,8 +4386,8 @@ of what a project is and how to check if it stuck, customize the variable (diary-display-hook '(fancy-diary-display)) (diary-display-function 'fancy-diary-display) (pop-up-frames nil) - (list-diary-entries-hook - (cons 'org-diary-default-entry list-diary-entries-hook)) + (diary-list-entries-hook + (cons 'org-diary-default-entry diary-list-entries-hook)) (diary-file-name-prefix-function nil) ; turn this feature off (diary-modify-entry-list-string-function 'org-modify-diary-entry-string) entries @@ -4380,7 +4424,7 @@ of what a project is and how to check if it stuck, customize the variable (setq entries (mapcar (lambda (x) - (setq x (org-format-agenda-item "" x "Diary" nil 'time)) + (setq x (org-agenda-format-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) 'type "diary" 'date date 'face 'org-agenda-diary)) @@ -4425,7 +4469,7 @@ date. It also removes lines that contain only whitespace." (setq string (org-modify-diary-entry-string string)))))) (defun org-modify-diary-entry-string (string) - "Add text properties to string, allowing Org-mode to act on it." + "Add text properties to string, allowing org-mode to act on it." (org-add-props string nil 'mouse-face 'highlight 'help-echo (if buffer-file-name @@ -4525,7 +4569,7 @@ the documentation of `org-diary'." ;; If file does not exist, make sure an error message ends up in diary (list (format "ORG-AGENDA-ERROR: No such org-file %s" file)) (with-current-buffer buffer - (unless (org-mode-p) + (unless (eq major-mode 'org-mode) (error "Agenda file %s is not in `org-mode'" file)) (let ((case-fold-search nil)) (save-excursion @@ -4562,6 +4606,7 @@ the documentation of `org-diary'." (setq results (append results rtn)))))))) results)))) +(defvar org-heading-keyword-regexp-format) ; defined in org.el (defun org-agenda-get-todos () "Return the TODO information for agenda display." (let* ((props (list 'face nil @@ -4573,16 +4618,20 @@ the documentation of `org-diary'." 'help-echo (format "mouse-2 or RET jump to org file %s" (abbreviate-file-name buffer-file-name)))) - (regexp (concat "^\\*+[ \t]+\\(" - (if 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 todo-state + (regexp (format org-heading-keyword-regexp-format + (cond + ((and org-select-this-todo-keyword + (equal org-select-this-todo-keyword "*")) + org-todo-regexp) + (org-select-this-todo-keyword + (concat "\\(" + (mapconcat 'identity + (org-split-string + org-select-this-todo-keyword + "|") + "\\|") "\\)")) + (t org-not-done-regexp)))) + marker priority category org-category-pos tags todo-state ee txt beg end) (goto-char (point-min)) (while (re-search-forward regexp nil t) @@ -4595,21 +4644,24 @@ the documentation of `org-diary'." (goto-char (1+ beg)) (or org-agenda-todo-list-sublevels (org-end-of-subtree 'invisible)) (throw :skip nil))) - (goto-char (match-beginning 1)) + (goto-char (match-beginning 2)) (setq marker (org-agenda-new-marker (match-beginning 0)) category (org-get-category) - txt (match-string 1) + org-category-pos (get-text-property (point) 'org-category-position) + txt (org-trim + (buffer-substring (match-beginning 2) (match-end 0))) tags (org-get-tags-at (point)) - txt (org-format-agenda-item "" txt category tags) + txt (org-agenda-format-item "" txt category tags) priority (1+ (org-get-priority txt)) todo-state (org-get-todo-state)) (org-add-props txt props 'org-marker marker 'org-hd-marker marker 'priority priority 'org-category category + 'org-category-position org-category-pos 'type "todo" 'todo-state todo-state) (push txt ee) (if org-agenda-todo-list-sublevels - (goto-char (match-end 1)) + (goto-char (match-end 2)) (org-end-of-subtree 'invisible)))) (nreverse ee))) @@ -4691,7 +4743,7 @@ This function is invoked if `org-agenda-todo-ignore-deadlines', (defun org-agenda-get-timestamps () "Return the date stamp information for agenda display." - (let* ((props (list 'face nil + (let* ((props (list 'face 'org-agenda-calendar-event 'org-not-done-regexp org-not-done-regexp 'org-todo-regexp org-todo-regexp 'org-complex-heading-regexp org-complex-heading-regexp @@ -4720,8 +4772,8 @@ This function is invoked if `org-agenda-todo-ignore-deadlines', "\\|\\(<[0-9]+-[0-9]+-[0-9]+[^>\n]+?\\+[0-9]+[dwmy]>\\)" "\\|\\(<%%\\(([^>\n]+)\\)>\\)")) marker hdmarker deadlinep scheduledp clockp closedp inactivep - donep tmp priority category ee txt timestr tags b0 b3 e3 head - todo-state end-of-match show-all) + donep tmp priority category org-category-pos ee txt timestr tags + b0 b3 e3 head todo-state end-of-match show-all) (goto-char (point-min)) (while (setq end-of-match (re-search-forward regexp nil t)) (setq b0 (match-beginning 0) @@ -4735,7 +4787,8 @@ This function is invoked if `org-agenda-todo-ignore-deadlines', (org-agenda-skip) (if (and (match-end 1) (not (= d1 (org-time-string-to-absolute - (match-string 1) d1 nil show-all)))) + (match-string 1) d1 nil show-all + (current-buffer) b0)))) (throw :skip nil)) (if (and e3 (not (org-diary-sexp-entry (buffer-substring b3 e3) "" date))) @@ -4760,7 +4813,8 @@ This function is invoked if `org-agenda-todo-ignore-deadlines', ;; substring should only run to end of time stamp (setq timestr (substring timestr 0 (match-end 0)))) (setq marker (org-agenda-new-marker b0) - category (org-get-category b0)) + category (org-get-category b0) + org-category-pos (get-text-property b0 'org-category-position)) (save-excursion (if (not (re-search-backward org-outline-regexp-bol nil t)) (setq txt org-agenda-no-heading-message) @@ -4769,7 +4823,7 @@ This function is invoked if `org-agenda-todo-ignore-deadlines', tags (org-get-tags-at)) (looking-at "\\*+[ \t]+\\([^\r\n]+\\)") (setq head (or (match-string 1) "")) - (setq txt (org-format-agenda-item + (setq txt (org-agenda-format-item (if inactivep org-agenda-inactive-leader nil) head category tags timestr remove-re))) @@ -4778,6 +4832,7 @@ This function is invoked if `org-agenda-todo-ignore-deadlines', 'org-marker marker 'org-hd-marker hdmarker) (org-add-props txt nil 'priority priority 'org-category category 'date date + 'org-category-position org-category-pos 'todo-state todo-state 'type "timestamp") (push txt ee)) @@ -4789,13 +4844,14 @@ This function is invoked if `org-agenda-todo-ignore-deadlines', (defun org-agenda-get-sexps () "Return the sexp information for agenda display." (require 'diary-lib) - (let* ((props (list 'mouse-face 'highlight + (let* ((props (list 'face 'org-agenda-calendar-sexp + 'mouse-face 'highlight '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 - todo-state) + marker category org-category-pos ee txt tags entry + result beg b sexp sexp-entry todo-state) (goto-char (point-min)) (while (re-search-forward regexp nil t) (catch :skip @@ -4812,6 +4868,7 @@ This function is invoked if `org-agenda-todo-ignore-deadlines', (when result (setq marker (org-agenda-new-marker beg) category (org-get-category beg) + org-category-pos (get-text-property beg 'org-category-position) todo-state (org-get-todo-state)) (dolist (r (if (stringp result) @@ -4821,11 +4878,12 @@ This function is invoked if `org-agenda-todo-ignore-deadlines', (setq txt r) (setq txt "SEXP entry returned empty string")) - (setq txt (org-format-agenda-item + (setq txt (org-agenda-format-item "" txt category tags 'time)) (org-add-props txt props 'org-marker marker) (org-add-props txt nil 'org-category category 'date date 'todo-state todo-state + 'org-category-position org-category-pos 'type "sexp") (push txt ee))))) (nreverse ee))) @@ -4860,9 +4918,11 @@ This function is invoked if `org-agenda-todo-ignore-deadlines', ;; Define the` org-class' function (defun org-class (y1 m1 d1 y2 m2 d2 dayname &rest skip-weeks) "Entry applies if date is between dates on DAYNAME, but skips SKIP-WEEKS. -DAYNAME is a number between 0 (Sunday) and 6 (Saturday). SKIP-WEEKS -is any number of ISO weeks in the block period for which the item should -be skipped." +DAYNAME is a number between 0 (Sunday) and 6 (Saturday). +SKIP-WEEKS is any number of ISO weeks in the block period for which the +item should be skipped. If any of the SKIP-WEEKS arguments is the symbol +`holidays', then any date that is known by the Emacs calendar to be a +holidy will also be skipped." (let* ((date1 (calendar-absolute-from-gregorian (list m1 d1 y1))) (date2 (calendar-absolute-from-gregorian (list m2 d2 y2))) (d (calendar-absolute-from-gregorian date))) @@ -4874,6 +4934,8 @@ be skipped." (progn (require 'cal-iso) (not (member (car (calendar-iso-from-absolute d)) skip-weeks)))) + (not (and (memq 'holidays skip-weeks) + (calendar-check-holidays date))) entry))) (defun org-diary-class (m1 d1 y1 m2 d2 y2 dayname &rest skip-weeks) @@ -4894,6 +4956,7 @@ please use `org-class' instead." (nth 2 date1) (car date1) (nth 1 date1) (nth 2 date2) (car date2) (nth 1 date2) dayname skip-weeks))) +(make-obsolete 'org-diary-class 'org-class "") (defalias 'org-get-closed 'org-agenda-get-progress) (defun org-agenda-get-progress () @@ -4929,8 +4992,8 @@ please use `org-class' instead." (list 0 0 0 (nth 1 date) (car date) (nth 2 date)))) 1 11)))) (org-agenda-search-headline-for-time nil) - marker hdmarker priority category tags closedp statep clockp state - ee txt extra timestr rest clocked) + marker hdmarker priority category org-category-pos tags closedp + statep clockp state ee txt extra timestr rest clocked) (goto-char (point-min)) (while (re-search-forward regexp nil t) (catch :skip @@ -4941,14 +5004,15 @@ please use `org-class' instead." clockp (not (or closedp statep)) state (and statep (match-string 2)) category (org-get-category (match-beginning 0)) - timestr (buffer-substring (match-beginning 0) (point-at-eol)) - ) + org-category-pos (get-text-property (match-beginning 0) 'org-category-position) + timestr (buffer-substring (match-beginning 0) (point-at-eol))) (when (string-match "\\]" timestr) ;; substring should only run to end of time stamp (setq rest (substring timestr (match-end 0)) timestr (substring timestr 0 (match-end 0))) (if (and (not closedp) (not statep) - (string-match "\\([0-9]\\{1,2\\}:[0-9]\\{2\\}\\)\\].*?\\([0-9]\\{1,2\\}:[0-9]\\{2\\}\\)" rest)) + (string-match "\\([0-9]\\{1,2\\}:[0-9]\\{2\\}\\)\\].*?\\([0-9]\\{1,2\\}:[0-9]\\{2\\}\\)" + rest)) (progn (setq timestr (concat (substring timestr 0 -1) "-" (match-string 1 rest) "]")) (setq clocked (match-string 2 rest))) @@ -4975,7 +5039,7 @@ please use `org-class' instead." (setq txt (concat (substring txt 0 (match-beginning 1)) " - " extra " " (match-string 2 txt))) (setq txt (concat txt " - " extra)))) - (setq txt (org-format-agenda-item + (setq txt (org-agenda-format-item (cond (closedp "Closed: ") (statep (concat "State: (" state ")")) @@ -4985,6 +5049,7 @@ please use `org-class' instead." (org-add-props txt props 'org-marker marker 'org-hd-marker hdmarker 'face 'org-agenda-done 'priority priority 'org-category category + 'org-category-position org-category-pos 'type "closed" 'date date 'undone-face 'org-warning 'done-face 'org-agenda-done) (push txt ee)) @@ -5059,7 +5124,7 @@ See also the user option `org-agenda-clock-consistency-checks'." (/ (- tlend ts) 60)) face (or (plist-get pl :overlap-face) face))) ((and (> tlend 0) (> ts (+ tlend (* 60 maxgap)))) - ;; There is a gap, let's see if we need to report it + ;; There is a gap, lets see if we need to report it (unless (org-agenda-check-clock-gap tlend ts gapok) (setq issue (format "Clocking gap: %d minutes" (/ (- ts tlend) 60)) @@ -5122,9 +5187,9 @@ See also the user option `org-agenda-clock-consistency-checks'." (regexp org-deadline-time-regexp) (todayp (org-agenda-todayp date)) ; DATE bound by calendar (d1 (calendar-absolute-from-gregorian date)) ; DATE bound by calendar - d2 diff dfrac wdays pos pos1 category tags - suppress-prewarning - ee txt head face s todo-state show-all upcomingp donep timestr) + d2 diff dfrac wdays pos pos1 category org-category-pos + tags suppress-prewarning ee txt head face s todo-state + show-all upcomingp donep timestr) (goto-char (point-min)) (while (re-search-forward regexp nil t) (setq suppress-prewarning nil) @@ -5147,13 +5212,14 @@ See also the user option `org-agenda-clock-consistency-checks'." (member todo-state org-agenda-repeating-timestamp-show-all)) d2 (org-time-string-to-absolute - (match-string 1) d1 'past show-all) + (match-string 1) d1 'past show-all + (current-buffer) pos) diff (- d2 d1) wdays (if suppress-prewarning (let ((org-deadline-warning-days suppress-prewarning)) (org-get-wdays s)) (org-get-wdays s)) - dfrac (/ (* 1.0 (- wdays diff)) (max wdays 1)) + dfrac (- 1 (/ (* 1.0 diff) (max wdays 1))) upcomingp (and todayp (> diff 0))) ;; When to show a deadline in the calendar: ;; If the expiration is within wdays warning time. @@ -5168,7 +5234,8 @@ See also the user option `org-agenda-clock-consistency-checks'." (or org-agenda-skip-deadline-if-done (not (= diff 0)))) (setq txt nil) - (setq category (org-get-category)) + (setq category (org-get-category) + org-category-pos (get-text-property (point) 'org-category-position)) (if (not (re-search-backward "^\\*+[ \t]+" nil t)) (setq txt org-agenda-no-heading-message) (goto-char (match-end 0)) @@ -5182,7 +5249,7 @@ See also the user option `org-agenda-clock-consistency-checks'." (setq timestr (concat (substring s (match-beginning 1)) " ")) (setq timestr 'time)) - (setq txt (org-format-agenda-item + (setq txt (org-agenda-format-item (if (= diff 0) (car org-agenda-deadline-leaders) (if (functionp @@ -5195,13 +5262,14 @@ See also the user option `org-agenda-clock-consistency-checks'." head category tags (if (not (= diff 0)) nil timestr))))) (when txt - (setq face (org-agenda-deadline-face dfrac wdays)) + (setq face (org-agenda-deadline-face dfrac)) (org-add-props txt props 'org-marker (org-agenda-new-marker pos) 'org-hd-marker (org-agenda-new-marker pos1) 'priority (+ (- diff) (org-get-priority txt)) 'org-category category + 'org-category-position org-category-pos 'todo-state todo-state 'type (if upcomingp "upcoming-deadline" "deadline") 'date (if upcomingp date d2) @@ -5210,10 +5278,9 @@ See also the user option `org-agenda-clock-consistency-checks'." (push txt ee)))))) (nreverse ee))) -(defun org-agenda-deadline-face (fraction &optional wdays) +(defun org-agenda-deadline-face (fraction) "Return the face to displaying a deadline item. FRACTION is what fraction of the head-warning time has passed." - (if (equal wdays 0) (setq fraction 1.)) (let ((faces org-agenda-deadline-faces) f) (catch 'exit (while (setq f (pop faces)) @@ -5238,7 +5305,7 @@ FRACTION is what fraction of the head-warning time has passed." 0 'org-hd-marker a)) (cons (marker-position mm) a))) deadline-results)) - d2 diff pos pos1 category tags donep + d2 diff pos pos1 category org-category-pos tags donep ee txt head pastschedp todo-state face timestr s habitp show-all) (goto-char (point-min)) (while (re-search-forward regexp nil t) @@ -5252,7 +5319,8 @@ FRACTION is what fraction of the head-warning time has passed." (member todo-state org-agenda-repeating-timestamp-show-all)) d2 (org-time-string-to-absolute - (match-string 1) d1 'past show-all) + (match-string 1) d1 'past show-all + (current-buffer) pos) diff (- d2 d1)) (setq pastschedp (and todayp (< diff 0))) ;; When to show a scheduled item in the calendar: @@ -5271,7 +5339,8 @@ FRACTION is what fraction of the head-warning time has passed." (setq txt nil) (setq habitp (and (functionp 'org-is-habit-p) (org-is-habit-p))) - (setq category (org-get-category)) + (setq category (org-get-category) + org-category-pos (get-text-property (point) 'org-category-position)) (if (not (re-search-backward "^\\*+[ \t]+" nil t)) (setq txt org-agenda-no-heading-message) (goto-char (match-end 0)) @@ -5295,7 +5364,7 @@ FRACTION is what fraction of the head-warning time has passed." (setq timestr (concat (substring s (match-beginning 1)) " ")) (setq timestr 'time)) - (setq txt (org-format-agenda-item + (setq txt (org-agenda-format-item (if (= diff 0) (car org-agenda-scheduled-leaders) (format (nth 1 org-agenda-scheduled-leaders) @@ -5322,6 +5391,7 @@ FRACTION is what fraction of the head-warning time has passed." (org-habit-get-priority habitp) (+ 94 (- 5 diff) (org-get-priority txt))) 'org-category category + 'org-category-position org-category-pos 'org-habit-p habitp 'todo-state todo-state) (push txt ee)))))) @@ -5339,8 +5409,8 @@ FRACTION is what fraction of the head-warning time has passed." (abbreviate-file-name buffer-file-name)))) (regexp org-tr-regexp) (d0 (calendar-absolute-from-gregorian date)) - marker hdmarker ee txt d1 d2 s1 s2 category todo-state tags pos - head donep) + marker hdmarker ee txt d1 d2 s1 s2 category org-category-pos + todo-state tags pos head donep) (goto-char (point-min)) (while (re-search-forward regexp nil t) (catch :skip @@ -5350,8 +5420,8 @@ FRACTION is what fraction of the head-warning time has passed." (end-time (match-string 2))) (setq s1 (match-string 1) s2 (match-string 2) - d1 (time-to-days (org-time-string-to-time s1)) - d2 (time-to-days (org-time-string-to-time s2))) + d1 (time-to-days (org-time-string-to-time s1 (current-buffer) pos)) + d2 (time-to-days (org-time-string-to-time s2 (current-buffer) pos))) (if (and (> (- d0 d1) -1) (> (- d2 d0) -1)) ;; Only allow days between the limits, because the normal ;; date stamps will catch the limits. @@ -5361,7 +5431,8 @@ FRACTION is what fraction of the head-warning time has passed." (if (and donep org-agenda-skip-timestamp-if-done) (throw :skip t)) (setq marker (org-agenda-new-marker (point))) - (setq category (org-get-category)) + (setq category (org-get-category) + org-category-pos (get-text-property (point) 'org-category-position)) (if (not (re-search-backward org-outline-regexp-bol nil t)) (setq txt org-agenda-no-heading-message) (goto-char (match-beginning 0)) @@ -5376,13 +5447,15 @@ FRACTION is what fraction of the head-warning time has passed." "--" "<" (regexp-quote s2) ".*?>") nil))) - (setq txt (org-format-agenda-item + (setq txt (org-agenda-format-item (format (nth (if (= d1 d2) 0 1) org-agenda-timerange-leaders) (1+ (- d0 d1)) (1+ (- d2 d1))) head category tags - (cond ((= d1 d0) + (cond ((and (= d1 d0) (= d2 d0)) + (concat "<" start-time ">--<" end-time ">")) + ((= d1 d0) (concat "<" start-time ">")) ((= d2 d0) (concat "<" end-time ">")) @@ -5392,7 +5465,8 @@ FRACTION is what fraction of the head-warning time has passed." 'org-marker marker 'org-hd-marker hdmarker 'type "block" 'date date 'todo-state todo-state - 'priority (org-get-priority txt) 'org-category category) + 'priority (org-get-priority txt) 'org-category category + 'org-category-position org-category-pos) (push txt ee)))) (goto-char pos))) ;; Sort the entries by expiration date. @@ -5422,7 +5496,7 @@ The flag is set if the currently compiled format contains a `%e'.") (return (cadr entry)) (return (apply 'create-image (cdr entry))))))) -(defun org-format-agenda-item (extra txt &optional category tags dotime +(defun org-agenda-format-item (extra txt &optional category tags dotime remove-re habitp) "Format TXT to be inserted into the agenda buffer. In particular, it adds the prefix and corresponding text properties. EXTRA @@ -5464,7 +5538,7 @@ Any match of REMOVE-RE will be removed from TXT." (time-of-day (and dotime (org-get-time-of-day ts))) stamp plain s0 s1 s2 rtn srp l duration thecategory) - (and (org-mode-p) buffer-file-name + (and (eq major-mode 'org-mode) buffer-file-name (add-to-list 'org-agenda-contributing-files buffer-file-name)) (when (and dotime time-of-day) ;; Extract starting and ending time and move them to prefix @@ -5512,7 +5586,7 @@ Any match of REMOVE-RE will be removed from TXT." (concat (make-string (max (- 50 (length txt)) 1) ?\ ) (match-string 2 txt)) t t txt)))) - (when (org-mode-p) + (when (eq major-mode 'org-mode) (setq effort (condition-case nil (org-get-effort @@ -5642,14 +5716,14 @@ The modified list may contain inherited tags, and tags matched by (while (setq time (pop gridtimes)) (unless (and remove (member time have)) (setq time (replace-regexp-in-string " " "0" (format "%04s" time))) - (push (org-format-agenda-item + (push (org-agenda-format-item nil string "" nil (concat (substring time 0 -2) ":" (substring time -2))) new) (put-text-property 2 (length (car new)) 'face 'org-time-grid (car new)))) (when (and todayp org-agenda-show-current-time-in-grid) - (push (org-format-agenda-item + (push (org-agenda-format-item nil org-agenda-current-time-string "" nil @@ -5667,7 +5741,8 @@ The modified list may contain inherited tags, and tags matched by The resulting form is returned and stored in the variable `org-prefix-format-compiled'." (setq org-prefix-has-time nil org-prefix-has-tag nil - org-prefix-category-length nil org-prefix-has-effort nil) + org-prefix-category-length nil + org-prefix-has-effort nil) (let ((s (cond ((stringp org-agenda-prefix-format) org-agenda-prefix-format) @@ -5779,7 +5854,7 @@ could bind the variable in the options section of a custom command.") (defun org-agenda-highlight-todo (x) (let ((org-done-keywords org-done-keywords-for-agenda) (case-fold-search nil) - re) + re) (if (eq x 'line) (save-excursion (beginning-of-line 1) @@ -5800,13 +5875,13 @@ could bind the variable in the options section of a custom command.") (add-text-properties (or (match-end 1) (match-end 0)) (match-end 0) (list 'face (org-get-todo-face (match-string 2 x))) - x) + x) (when (match-end 1) (setq x (concat (substring x 0 (match-end 1)) (format org-agenda-todo-keyword-format (match-string 2 x)) - (org-add-props " " (text-properties-at 0 x)) - (substring x (match-end 3))))))) + (org-add-props " " (text-properties-at 0 x)) + (substring x (match-end 3))))))) x))) (defsubst org-cmp-priority (a b) @@ -5818,7 +5893,7 @@ could bind the variable in the options section of a custom command.") (t nil)))) (defsubst org-cmp-effort (a b) - "Compare the priorities of string A and B." + "Compare the effort values of string A and B." (let* ((def (if org-sort-agenda-noeffort-is-high 32767 -1)) (ea (or (get-text-property 1 'effort-minutes a) def)) (eb (or (get-text-property 1 'effort-minutes b) def))) @@ -6081,29 +6156,46 @@ in the agenda." When this is the global TODO list, a prefix argument will be interpreted." (interactive) (let* ((org-agenda-keep-modes t) - (filter org-agenda-filter) - (preset (get 'org-agenda-filter :preset-filter)) - (org-agenda-filter-while-redo (or filter preset)) + (tag-filter org-agenda-tag-filter) + (tag-preset (get 'org-agenda-tag-filter :preset-filter)) + (cat-filter org-agenda-category-filter) + (cat-preset (get 'org-agenda-category-filter :preset-filter)) + (org-agenda-tag-filter-while-redo (or tag-filter tag-preset)) (cols org-agenda-columns-active) (line (org-current-line)) (window-line (- line (org-current-line (window-start)))) (lprops (get 'org-agenda-redo-command 'org-lprops))) - (put 'org-agenda-filter :preset-filter nil) + (put 'org-agenda-tag-filter :preset-filter nil) + (put 'org-agenda-category-filter :preset-filter nil) (and cols (org-columns-quit)) (message "Rebuilding agenda buffer...") (org-let lprops '(eval org-agenda-redo-command)) (setq org-agenda-undo-list nil org-agenda-pending-undo-list nil) (message "Rebuilding agenda buffer...done") - (put 'org-agenda-filter :preset-filter preset) - (and (or filter preset) (org-agenda-filter-apply filter)) + (put 'org-agenda-tag-filter :preset-filter tag-preset) + (put 'org-agenda-category-filter :preset-filter cat-preset) + (and (or tag-filter tag-preset) (org-agenda-filter-apply tag-filter 'tag)) + (and (or cat-filter cat-preset) (org-agenda-filter-apply cat-filter 'category)) (and cols (org-called-interactively-p 'any) (org-agenda-columns)) (org-goto-line line) (recenter window-line))) - (defvar org-global-tags-completion-table nil) +(defvar org-agenda-filtered-by-category nil) (defvar org-agenda-filter-form nil) + +(defun org-agenda-filter-by-category (strip) + "Keep only those lines in the agenda buffer that have a specific category. +The category is that of the current line." + (interactive "P") + (if org-agenda-filtered-by-category + (org-agenda-filter-show-all-cat) + (let ((cat (org-no-properties (get-text-property (point) 'org-category)))) + (if cat (org-agenda-filter-apply + (list (concat (if strip "-" "+") cat)) 'category) + (error "No category at point"))))) + (defun org-agenda-filter-by-tag (strip &optional char narrow) "Keep only those lines in the agenda buffer that have a specific tag. The tag is selected with its fast selection letter, as configured. @@ -6127,21 +6219,21 @@ to switch to narrowing." (effort-op org-agenda-filter-effort-default-operator) (effort-prompt "") (inhibit-read-only t) - (current org-agenda-filter) + (current org-agenda-tag-filter) maybe-refresh a n tag) (unless char (message "%s by tag [%s ], [TAB], %s[/]:off, [+-]:narrow, [>=<?]:effort: " (if narrow "Narrow" "Filter") tag-chars (if org-agenda-auto-exclude-function "[RET], " "")) - (setq char (read-char))) + (setq char (read-char-exclusive))) (when (member char '(?+ ?-)) ;; Narrowing down (cond ((equal char ?-) (setq strip t narrow t)) ((equal char ?+) (setq strip nil narrow t))) (message "Narrow by tag [%s ], [TAB], [/]:off, [>=<]:effort: " tag-chars) - (setq char (read-char))) + (setq char (read-char-exclusive))) (when (member char '(?< ?> ?= ??)) ;; An effort operator (setq effort-op (char-to-string char)) @@ -6154,7 +6246,7 @@ to switch to narrowing." (if (= i 9) "0" (int-to-string (1+ i))) "]" (nth i efforts)))) (message "Effort%s: %s " effort-op effort-prompt) - (setq char (read-char)) + (setq char (read-char-exclusive)) (when (or (< char ?0) (> char ?9)) (error "Need 1-9,0 to select effort" )))) (when (equal char ?\t) @@ -6166,20 +6258,26 @@ to switch to narrowing." "Tag: " org-global-tags-completion-table)))) (cond ((equal char ?\r) - (org-agenda-filter-by-tag-show-all) + (org-agenda-filter-show-all-tag) (when org-agenda-auto-exclude-function - (setq org-agenda-filter '()) + (setq org-agenda-tag-filter '()) (dolist (tag (org-agenda-get-represented-tags)) (let ((modifier (funcall org-agenda-auto-exclude-function tag))) (if modifier - (push modifier org-agenda-filter)))) - (if (not (null org-agenda-filter)) - (org-agenda-filter-apply org-agenda-filter))) + (push modifier org-agenda-tag-filter)))) + (if (not (null org-agenda-tag-filter)) + (org-agenda-filter-apply org-agenda-tag-filter 'tag))) (setq maybe-refresh t)) ((equal char ?/) - (org-agenda-filter-by-tag-show-all) - (when (get 'org-agenda-filter :preset-filter) - (org-agenda-filter-apply org-agenda-filter)) + (org-agenda-filter-show-all-tag) + (when (get 'org-agenda-tag-filter :preset-filter) + (org-agenda-filter-apply org-agenda-tag-filter 'tag)) + (setq maybe-refresh t)) + ((equal char ?. ) + (setq org-agenda-tag-filter + (mapcar (lambda(tag) (concat "+" tag)) + (org-get-at-bol 'tags))) + (org-agenda-filter-apply org-agenda-tag-filter 'tag) (setq maybe-refresh t)) ((or (equal char ?\ ) (setq a (rassoc char alist)) @@ -6191,12 +6289,12 @@ to switch to narrowing." (setq tag "?eff") a (cons tag nil)) (and tag (setq a (cons tag nil)))) - (org-agenda-filter-by-tag-show-all) + (org-agenda-filter-show-all-tag) (setq tag (car a)) - (setq org-agenda-filter + (setq org-agenda-tag-filter (cons (concat (if strip "-" "+") tag) (if narrow current nil))) - (org-agenda-filter-apply org-agenda-filter) + (org-agenda-filter-apply org-agenda-tag-filter 'tag) (setq maybe-refresh t)) (t (error "Invalid tag selection character %c" char))) (when (and maybe-refresh @@ -6215,15 +6313,17 @@ to switch to narrowing." tags)) (defun org-agenda-filter-by-tag-refine (strip &optional char) - "Refine the current filter. See `org-agenda-filter-by-tag." + "Refine the current filter. See `org-agenda-filter-by-tag'." (interactive "P") (org-agenda-filter-by-tag strip char 'refine)) (defun org-agenda-filter-make-matcher () - "Create the form that tests a line for the agenda filter." + "Create the form that tests a line for agenda filter." (let (f f1) - (dolist (x (append (get 'org-agenda-filter :preset-filter) - org-agenda-filter)) + ;; first compute the tag-filter matcher + (dolist (x (delete-dups + (append (get 'org-agenda-tag-filter + :preset-filter) org-agenda-tag-filter))) (if (member x '("-" "+")) (setq f1 (if (equal x "-") 'tags '(not tags))) (if (string-match "[<=>?]" x) @@ -6232,6 +6332,12 @@ to switch to narrowing." (if (equal (string-to-char x) ?-) (setq f1 (list 'not f1)))) (push f1 f)) + ;; then compute the category-filter matcher + (dolist (x (delete-dups + (append (get 'org-agenda-category-filter + :preset-filter) org-agenda-category-filter))) + (setq f1 (list 'equal (substring x 1) 'cat)) + (push f1 f)) (cons 'and (nreverse f)))) (defun org-agenda-filter-effort-form (e) @@ -6256,49 +6362,63 @@ If the line does not have an effort defined, return nil." (funcall op (or eff (if org-sort-agenda-noeffort-is-high 32767 0)) value)))) -(defun org-agenda-filter-apply (filter) +(defun org-agenda-filter-apply (filter type) "Set FILTER as the new agenda filter and apply it." - (let (tags) - (setq org-agenda-filter filter - org-agenda-filter-form (org-agenda-filter-make-matcher)) + (let (tags cat) + (if (eq type 'tag) + (setq org-agenda-tag-filter filter) + (setq org-agenda-category-filter filter + org-agenda-filtered-by-category t)) + (setq org-agenda-filter-form (org-agenda-filter-make-matcher)) (org-agenda-set-mode-name) (save-excursion (goto-char (point-min)) (while (not (eobp)) (if (org-get-at-bol 'org-marker) (progn - (setq tags (org-get-at-bol 'tags)) ; used in eval + (setq tags (org-get-at-bol 'tags) ; used in eval + cat (get-text-property (point) 'org-category)) (if (not (eval org-agenda-filter-form)) - (org-agenda-filter-by-tag-hide-line)) + (org-agenda-filter-hide-line type)) (beginning-of-line 2)) (beginning-of-line 2)))) (if (get-char-property (point) 'invisible) (org-agenda-previous-line)))) -(defun org-agenda-filter-by-tag-hide-line () +(defun org-agenda-filter-hide-line (type) (let (ov) (setq ov (make-overlay (max (point-min) (1- (point-at-bol))) (point-at-eol))) (overlay-put ov 'invisible t) - (overlay-put ov 'type 'tags-filter) - (push ov org-agenda-filter-overlays))) + (overlay-put ov 'type type) + (if (eq type 'tag) + (push ov org-agenda-tag-filter-overlays) + (push ov org-agenda-cat-filter-overlays)))) (defun org-agenda-fix-tags-filter-overlays-at (&optional pos) (setq pos (or pos (point))) (save-excursion (dolist (ov (overlays-at pos)) (when (and (overlay-get ov 'invisible) - (eq (overlay-get ov 'type) 'tags-filter)) + (eq (overlay-get ov 'type) 'tag)) (goto-char pos) (if (< (overlay-start ov) (point-at-eol)) (move-overlay ov (point-at-eol) (overlay-end ov))))))) -(defun org-agenda-filter-by-tag-show-all () - (mapc 'delete-overlay org-agenda-filter-overlays) - (setq org-agenda-filter-overlays nil) - (setq org-agenda-filter nil) - (setq org-agenda-filter-form nil) +(defun org-agenda-filter-show-all-tag nil + (mapc 'delete-overlay org-agenda-tag-filter-overlays) + (setq org-agenda-tag-filter-overlays nil + org-agenda-tag-filter nil + org-agenda-filter-form nil) + (org-agenda-set-mode-name)) + +(defun org-agenda-filter-show-all-cat nil + (mapc 'delete-overlay org-agenda-cat-filter-overlays) + (setq org-agenda-cat-filter-overlays nil + org-agenda-filtered-by-category nil + org-agenda-category-filter nil + org-agenda-filter-form nil) (org-agenda-set-mode-name)) (defun org-agenda-manipulate-query-add () @@ -6592,8 +6712,7 @@ so that the date SD will be in that range." (interactive) (setq org-agenda-follow-mode (not org-agenda-follow-mode)) (org-agenda-set-mode-name) - (if (and org-agenda-follow-mode (org-get-at-bol 'org-marker)) - (org-agenda-show)) + (org-agenda-do-context-action) (message "Follow mode is %s" (if org-agenda-follow-mode "on" "off"))) @@ -6714,13 +6833,33 @@ When called with a prefix argument, include all archive files as well." ((eq org-agenda-show-log 'clockcheck) " ClkCk") (org-agenda-show-log " Log") (t "")) - (if (or org-agenda-filter (get 'org-agenda-filter + (if (or org-agenda-category-filter (get 'org-agenda-category-filter + :preset-filter)) + '(:eval (org-propertize + (concat " <" + (mapconcat + 'identity + (append + (get 'org-agenda-category-filter :preset-filter) + org-agenda-category-filter) + "") + ">") + 'face 'org-agenda-filter-category + 'help-echo "Category used in filtering")) + "") + (if (or org-agenda-tag-filter (get 'org-agenda-tag-filter :preset-filter)) - (concat " {" (mapconcat - 'identity - (append (get 'org-agenda-filter - :preset-filter) - org-agenda-filter) "") "}") + '(:eval (org-propertize + (concat " {" + (mapconcat + 'identity + (append + (get 'org-agenda-tag-filter :preset-filter) + org-agenda-tag-filter) + "") + "}") + 'face 'org-agenda-filter-tags + 'help-echo "Tags used in filtering")) "") (if org-agenda-archives-mode (if (eq org-agenda-archives-mode t) @@ -6754,11 +6893,13 @@ When called with a prefix argument, include all archive files as well." (defun org-agenda-do-context-action () "Show outline path and, maybe, follow mode window." (let ((m (org-get-at-bol 'org-marker))) - (if (and org-agenda-follow-mode m) - (org-agenda-show)) - (if (and m org-agenda-show-outline-path) - (org-with-point-at m - (org-display-outline-path t))))) + (when (and (markerp m) (marker-buffer m)) + (and org-agenda-follow-mode + (if org-agenda-follow-indirect + (org-agenda-tree-to-indirect-buffer) + (org-agenda-show))) + (and org-agenda-show-outline-path + (org-with-point-at m (org-display-outline-path t)))))) (defun org-agenda-show-priority () "Show the priority of the current item. @@ -6788,7 +6929,7 @@ and by additional input from the age of a schedules or deadline entry." (widen) (push-mark) (goto-char pos) - (when (org-mode-p) + (when (eq major-mode 'org-mode) (org-show-context 'agenda) (save-excursion (and (outline-next-heading) @@ -6817,7 +6958,7 @@ Point is in the buffer where the item originated.") (with-current-buffer buffer (save-excursion (goto-char pos) - (if (and (org-mode-p) (not (member type '("sexp")))) + (if (and (eq major-mode 'org-mode) (not (member type '("sexp")))) (setq dbeg (progn (org-back-to-heading t) (point)) dend (org-end-of-subtree t t)) (setq dbeg (point-at-bol) @@ -6869,7 +7010,7 @@ Point is in the buffer where the item originated.") (pos (marker-position marker))) (org-with-remote-undo buffer (with-current-buffer buffer - (if (org-mode-p) + (if (eq major-mode 'org-mode) (if (and confirm (not (y-or-n-p "Archive this subtree or entry? "))) (error "Abort") @@ -6970,11 +7111,11 @@ at the text of the entry itself." (org-agenda-error))) (buffer (marker-buffer marker)) (pos (marker-position marker))) - (switch-to-buffer buffer) + (org-pop-to-buffer-same-window buffer) (and delete-other-windows (delete-other-windows)) (widen) (goto-char pos) - (when (org-mode-p) + (when (eq major-mode 'org-mode) (org-show-context 'agenda) (save-excursion (and (outline-next-heading) @@ -7138,6 +7279,22 @@ With numerical prefix arg ARG, go up to this level and then take that tree. With a \\[universal-argument] prefix, make a separate frame for this tree (i.e. don't use the dedicated frame)." (interactive) + (if (and current-prefix-arg (listp current-prefix-arg)) + (org-agenda-do-tree-to-indirect-buffer) + (let ((agenda-window (selected-window)) + (indirect-window (get-buffer-window org-last-indirect-buffer))) + (save-window-excursion (org-agenda-do-tree-to-indirect-buffer)) + (unwind-protect + (progn + (unless indirect-window + (setq indirect-window (split-window agenda-window))) + (select-window indirect-window) + (switch-to-buffer org-last-indirect-buffer :norecord) + (fit-window-to-buffer indirect-window)) + (select-window agenda-window))))) + +(defun org-agenda-do-tree-to-indirect-buffer () + "Same as `org-agenda-tree-to-indirect-buffer' without saving window." (org-agenda-check-no-diary) (let* ((marker (or (org-get-at-bol 'org-marker) (org-agenda-error))) @@ -7227,7 +7384,7 @@ the same tree node, and the headline of the tree node in the Org-mode file." &optional fixface just-this) "Change all lines in the agenda buffer which match HDMARKER. The new content of the line will be NEWHEAD (as modified by -`org-format-agenda-item'). HDMARKER is checked with +`org-agenda-format-item'). HDMARKER is checked with `equal' against all `org-hd-marker' text properties in the file. If FIXFACE is non-nil, the face of each item is modified according to the new TODO state. @@ -7260,7 +7417,7 @@ If FORCE-TAGS is non nil, the car of it returns the new tags." (save-excursion (save-restriction (widen) - (org-format-agenda-item (org-get-at-bol 'extra) + (org-agenda-format-item (org-get-at-bol 'extra) newhead cat tags dotime))))) pl (text-property-any (point-at-bol) (point-at-eol) 'org-heading t) undone-face (org-get-at-bol 'undone-face) @@ -7494,15 +7651,33 @@ the same tree node, and the headline of the tree node in the Org-mode file." (let* ((marker (or (org-get-at-bol 'org-marker) (org-agenda-error))) (buffer (marker-buffer marker)) - (pos (marker-position marker))) + (pos (marker-position marker)) + cdate today) (org-with-remote-undo buffer - (with-current-buffer buffer - (widen) - (goto-char pos) - (if (not (org-at-timestamp-p)) - (error "Cannot find time stamp")) - (org-timestamp-change arg (or what 'day))) - (org-agenda-show-new-time marker org-last-changed-timestamp)) + (with-current-buffer buffer + (widen) + (goto-char pos) + (if (not (org-at-timestamp-p)) + (error "Cannot find time stamp")) + (when (and org-agenda-move-date-from-past-immediately-to-today + (equal arg 1) + (or (not what) (eq what 'day)) + (not (save-match-data (org-at-date-range-p)))) + (setq cdate (org-parse-time-string (match-string 0) 'nodefault) + cdate (calendar-absolute-from-gregorian + (list (nth 4 cdate) (nth 3 cdate) (nth 5 cdate))) + today (org-today)) + (if (> today cdate) + ;; immediately shift to today + (setq arg (- today cdate)))) + (org-timestamp-change arg (or what 'day)) + (when (and (org-at-date-range-p) + (re-search-backward org-tr-regexp-both (point-at-bol))) + (let ((end org-last-changed-timestamp)) + (org-timestamp-change arg (or what 'day)) + (setq org-last-changed-timestamp + (concat org-last-changed-timestamp "--" end))))) + (org-agenda-show-new-time marker org-last-changed-timestamp)) (message "Time stamp changed to %s" org-last-changed-timestamp))) (defun org-agenda-date-earlier (arg &optional what) @@ -7827,7 +8002,7 @@ the resulting entry will not be shown. When TEXT is empty, switch to ((eq type 'anniversary) (or (re-search-forward "^*[ \t]+Anniversaries" nil t) (progn - (or (org-on-heading-p t) + (or (org-at-heading-p t) (progn (outline-next-heading) (insert "* Anniversaries\n\n") @@ -7843,10 +8018,10 @@ the resulting entry will not be shown. When TEXT is empty, switch to (org-agenda-time-leading-zero t) fmt time time2) (if org-agenda-insert-diary-extract-time - ;; Use org-format-agenda-item to parse text for a time-range and + ;; Use org-agenda-format-item to parse text for a time-range and ;; remove it. FIXME: This is a hack, we should refactor ;; that function to make time extraction available separately - (setq fmt (org-format-agenda-item nil text nil nil t) + (setq fmt (org-agenda-format-item nil text nil nil t) time (get-text-property 0 'time fmt) time2 (if (> (length time) 0) ;; split-string removes trailing ...... if @@ -8299,7 +8474,8 @@ The prefix arg is passed through to the command if possible." (progn (message "Skipping removed entry at %s" e) (setq cntskip (1+ cntskip))) (goto-char pos) - (eval cmd) + (let (org-loop-over-headlines-in-active-region) + (eval cmd)) (setq org-agenda-bulk-marked-entries (delete e org-agenda-bulk-marked-entries)) (setq cnt (1+ cnt)))) @@ -8331,7 +8507,7 @@ tag and (if present) the flagging note." (org-agenda-remove-flag hdmarker) (let ((win (get-buffer-window "*Flagging Note*"))) (and win (delete-window win))) - (message "Entry unflagged")) + (message "Entry unflaged")) (setq note (org-entry-get hdmarker "THEFLAGGINGNOTE")) (unless note (error "No flagging note")) @@ -8354,7 +8530,7 @@ tag and (if present) the flagging note." (org-entry-delete nil "THEFLAGGINGNOTE") (setq newhead (org-get-heading))) (org-agenda-change-all-lines newhead marker) - (message "Entry unflagged"))) + (message "Entry unflaged"))) (defun org-agenda-get-any-marker (&optional pos) (or (get-text-property (or pos (point-at-bol)) 'org-hd-marker) @@ -8365,7 +8541,7 @@ tag and (if present) the flagging note." (defvar appt-time-msg-list) ;;;###autoload -(defun org-agenda-to-appt (&optional refresh filter) +(defun org-agenda-to-appt (&optional refresh filter &rest args) "Activate appointments found in `org-agenda-files'. With a \\[universal-argument] prefix, refresh the list of appointments. @@ -8376,6 +8552,10 @@ expression, and filter out entries that don't match it. If FILTER is a string, use this string as a regular expression for filtering entries out. +If FILTER is a function, filter out entries against which +calling the function returns nil. This function takes one +argument: an entry from `org-agenda-get-day-entries'. + FILTER can also be an alist with the car of each cell being either 'headline or 'category. For example: @@ -8383,12 +8563,18 @@ either 'headline or 'category. For example: (category \"Work\")) will only add headlines containing IMPORTANT or headlines -belonging to the \"Work\" category." +belonging to the \"Work\" category. + +ARGS are symbols indicating what kind of entries to consider. +By default `org-agenda-to-appt' will use :deadline, :scheduled +and :timestamp entries. See the docstring of `org-diary' for +details and examples." (interactive "P") (if refresh (setq appt-time-msg-list nil)) (if (eq filter t) (setq filter (read-from-minibuffer "Regexp filter: "))) (let* ((cnt 0) ; count added events + (scope (or args '(:deadline :scheduled :timestamp))) (org-agenda-new-buffers nil) (org-deadline-warning-days 0) ;; Do not use `org-today' here because appt only takes @@ -8402,10 +8588,10 @@ belonging to the \"Work\" category." (org-prepare-agenda-buffers files) (while (setq file (pop files)) (setq entries - (append entries - (org-agenda-get-day-entries - file today :timestamp :scheduled :deadline)))) - (setq entries (delq nil entries)) + (delq nil + (append entries + (apply 'org-agenda-get-day-entries + file today scope))))) ;; Map thru entries and find if we should filter them out (mapc (lambda(x) @@ -8414,11 +8600,14 @@ belonging to the \"Work\" category." (tod (get-text-property 1 'time-of-day x)) (ok (or (null filter) (and (stringp filter) (string-match filter evt)) + (and (functionp filter) (funcall filter x)) (and (listp filter) - (or (string-match - (cadr (assoc 'category filter)) cat) - (string-match - (cadr (assoc 'headline filter)) evt)))))) + (let ((cat-filter (cadr (assoc 'category filter))) + (evt-filter (cadr (assoc 'headline filter)))) + (or (and (stringp cat-filter) + (string-match cat-filter cat)) + (and (stringp evt-filter) + (string-match evt-filter evt)))))))) ;; FIXME: Shall we remove text-properties for the appt text? ;; (setq evt (set-text-properties 0 (length evt) nil evt)) (when (and ok tod) @@ -8441,8 +8630,14 @@ belonging to the \"Work\" category." date))) (eq date today))) -(provide 'org-agenda) - +(defun org-agenda-todo-yesterday (&optional arg) + "Like `org-agenda-todo' but the time of change will be 23:59 of yesterday" + (interactive "P") + (let* ((hour (third (decode-time + (org-current-time)))) + (org-extend-today-until (1+ hour))) + (org-agenda-todo arg))) +(provide 'org-agenda) ;;; org-agenda.el ends here diff --git a/lisp/org/org-archive.el b/lisp/org/org-archive.el index 7436696433c..4137e2caf2b 100644 --- a/lisp/org/org-archive.el +++ b/lisp/org/org-archive.el @@ -1,11 +1,10 @@ ;;; org-archive.el --- Archiving for Org-mode -;; Copyright (C) 2004-2011 Free Software Foundation, Inc. +;; Copyright (C) 2004-2012 Free Software Foundation, Inc. ;; Author: Carsten Dominik <carsten at orgmode dot org> ;; Keywords: outlines, hypermedia, calendar, wp ;; Homepage: http://orgmode.org -;; Version: 7.7 ;; ;; This file is part of GNU Emacs. ;; @@ -191,158 +190,166 @@ If the cursor is not at a headline when this command is called, try all level 1 trees. If the cursor is on a headline, only try the direct children of 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-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) - (this-buffer (current-buffer)) - ;; start of variables that will be used for saving context - ;; The compiler complains about them - keep them anyway! - (file (abbreviate-file-name - (or (buffer-file-name (buffer-base-buffer)) - (error "No file associated to buffer")))) - (olpath (mapconcat 'identity (org-get-outline-path) "/")) - (time (format-time-string - (substring (cdr org-time-stamp-formats) 1 -1) - (current-time))) - category todo priority ltags itags atags - ;; end of variables that will be used for saving context - location afile heading buffer level newfile-p infile-p visiting) - - ;; Find the local archive location - (setq location (org-get-local-archive-location) - afile (org-extract-archive-file location) - heading (org-extract-archive-heading location) - infile-p (equal file (abbreviate-file-name afile))) - (unless afile - (error "Invalid `org-archive-location'")) - - (if (> (length afile) 0) - (setq newfile-p (not (file-exists-p afile)) - visiting (find-buffer-visiting afile) - buffer (or visiting (find-file-noselect afile))) - (setq buffer (current-buffer))) - (unless buffer - (error "Cannot access file \"%s\"" afile)) - (if (and (> (length heading) 0) - (string-match "^\\*+" heading)) - (setq level (match-end 0)) - (setq heading nil level 0)) - (save-excursion - (org-back-to-heading t) - ;; Get context information that will be lost by moving the tree - (setq category (org-get-category nil 'force-refresh) - todo (and (looking-at org-todo-line-regexp) - (match-string 2)) - priority (org-get-priority - (if (match-end 3) (match-string 3) "")) - ltags (org-get-tags) - itags (org-delete-all ltags (org-get-tags-at)) - atags (org-get-tags-at)) - (setq ltags (mapconcat 'identity ltags " ") - itags (mapconcat 'identity itags " ")) - ;; We first only copy, in case something goes wrong - ;; we need to protect `this-command', to avoid kill-region sets it, - ;; which would lead to duplication of subtrees - (let (this-command) (org-copy-subtree 1 nil t)) - (set-buffer buffer) - ;; 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) - (org-inhibit-startup t)) - (call-interactively 'org-mode))) - (when newfile-p - (goto-char (point-max)) - (insert (format "\nArchived entries from file %s\n\n" - (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-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 (current-buffer)) - org-odd-levels-only - tr-org-odd-levels-only))) - (goto-char (point-min)) - (show-all) - (if heading - (progn - (if (re-search-forward - (concat "^" (regexp-quote heading) - (org-re "[ \t]*\\(:[[:alnum:]_@#%:]+:\\)?[ \t]*\\($\\|\r\\)")) - nil t) - (goto-char (match-end 0)) - ;; Heading not found, just insert it at the end - (goto-char (point-max)) - (or (bolp) (insert "\n")) - (insert "\n" heading "\n") - (end-of-line 0)) - ;; Make the subtree visible - (show-subtree) - (if org-archive-reversed-order - (progn - (org-back-to-heading t) - (outline-next-heading)) - (org-end-of-subtree t)) - (skip-chars-backward " \t\r\n") - (and (looking-at "[ \t\r\n]*") - (replace-match "\n\n"))) - ;; No specific heading, just go to end of file. - (goto-char (point-max)) (insert "\n")) - ;; Paste - (org-paste-subtree (org-get-valid-level level (and heading 1))) - ;; Shall we append inherited tags? - (and itags - (or (and (eq org-archive-subtree-add-inherited-tags 'infile) - infile-p) - (eq org-archive-subtree-add-inherited-tags t)) - (org-set-tags-to atags)) - ;; Mark the entry as done - (when (and org-archive-mark-done - (looking-at org-todo-line-regexp) - (or (not (match-end 2)) - (not (member (match-string 2) org-done-keywords)))) - (let (org-log-done org-todo-log-states) - (org-todo - (car (or (member org-archive-mark-done org-done-keywords) - org-done-keywords))))) - - ;; Add the context info - (when org-archive-save-context-info - (let ((l org-archive-save-context-info) e n v) - (while (setq e (pop l)) - (when (and (setq v (symbol-value e)) - (stringp v) (string-match "\\S-" v)) - (setq n (concat "ARCHIVE_" (upcase (symbol-name e)))) - (org-entry-put (point) n v))))) - - ;; Save and kill the buffer, if it is not the same buffer. - (when (not (eq this-buffer buffer)) - (save-buffer)))) - ;; Here we are back in the original buffer. Everything seems to have - ;; worked. So now cut the tree and finish up. - (let (this-command) (org-cut-subtree)) - (when (featurep 'org-inlinetask) - (org-inlinetask-remove-END-maybe)) - (setq org-markers-to-move nil) - (message "Subtree archived %s" - (if (eq this-buffer buffer) - (concat "under heading: " heading) - (concat "in file: " (abbreviate-file-name afile)))))) - (org-reveal) - (if (looking-at "^[ \t]*$") - (outline-next-visible-heading 1))) + (if (and (org-region-active-p) org-loop-over-headlines-in-active-region) + (let ((cl (if (eq org-loop-over-headlines-in-active-region 'start-level) + 'region-start-level 'region)) + org-loop-over-headlines-in-active-region) + (org-map-entries + `(progn (setq org-map-continue-from (progn (org-back-to-heading) (point))) + (org-archive-subtree ,find-done)) + org-loop-over-headlines-in-active-region + cl (if (outline-invisible-p) (org-end-of-subtree nil t)))) + (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-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) + (this-buffer (current-buffer)) + ;; start of variables that will be used for saving context + ;; The compiler complains about them - keep them anyway! + (file (abbreviate-file-name + (or (buffer-file-name (buffer-base-buffer)) + (error "No file associated to buffer")))) + (olpath (mapconcat 'identity (org-get-outline-path) "/")) + (time (format-time-string + (substring (cdr org-time-stamp-formats) 1 -1) + (current-time))) + category todo priority ltags itags atags + ;; end of variables that will be used for saving context + location afile heading buffer level newfile-p infile-p visiting) + + ;; Find the local archive location + (setq location (org-get-local-archive-location) + afile (org-extract-archive-file location) + heading (org-extract-archive-heading location) + infile-p (equal file (abbreviate-file-name afile))) + (unless afile + (error "Invalid `org-archive-location'")) + + (if (> (length afile) 0) + (setq newfile-p (not (file-exists-p afile)) + visiting (find-buffer-visiting afile) + buffer (or visiting (find-file-noselect afile))) + (setq buffer (current-buffer))) + (unless buffer + (error "Cannot access file \"%s\"" afile)) + (if (and (> (length heading) 0) + (string-match "^\\*+" heading)) + (setq level (match-end 0)) + (setq heading nil level 0)) + (save-excursion + (org-back-to-heading t) + ;; Get context information that will be lost by moving the tree + (setq category (org-get-category nil 'force-refresh) + todo (and (looking-at org-todo-line-regexp) + (match-string 2)) + priority (org-get-priority + (if (match-end 3) (match-string 3) "")) + ltags (org-get-tags) + itags (org-delete-all ltags (org-get-tags-at)) + atags (org-get-tags-at)) + (setq ltags (mapconcat 'identity ltags " ") + itags (mapconcat 'identity itags " ")) + ;; We first only copy, in case something goes wrong + ;; we need to protect `this-command', to avoid kill-region sets it, + ;; which would lead to duplication of subtrees + (let (this-command) (org-copy-subtree 1 nil t)) + (set-buffer buffer) + ;; Enforce org-mode for the archive buffer + (if (not (eq major-mode 'org-mode)) + ;; Force the mode for future visits. + (let ((org-insert-mode-line-in-empty-file t) + (org-inhibit-startup t)) + (call-interactively 'org-mode))) + (when newfile-p + (goto-char (point-max)) + (insert (format "\nArchived entries from file %s\n\n" + (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-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 (current-buffer)) + org-odd-levels-only + tr-org-odd-levels-only))) + (goto-char (point-min)) + (show-all) + (if heading + (progn + (if (re-search-forward + (concat "^" (regexp-quote heading) + (org-re "[ \t]*\\(:[[:alnum:]_@#%:]+:\\)?[ \t]*\\($\\|\r\\)")) + nil t) + (goto-char (match-end 0)) + ;; Heading not found, just insert it at the end + (goto-char (point-max)) + (or (bolp) (insert "\n")) + (insert "\n" heading "\n") + (end-of-line 0)) + ;; Make the subtree visible + (show-subtree) + (if org-archive-reversed-order + (progn + (org-back-to-heading t) + (outline-next-heading)) + (org-end-of-subtree t)) + (skip-chars-backward " \t\r\n") + (and (looking-at "[ \t\r\n]*") + (replace-match "\n\n"))) + ;; No specific heading, just go to end of file. + (goto-char (point-max)) (insert "\n")) + ;; Paste + (org-paste-subtree (org-get-valid-level level (and heading 1))) + ;; Shall we append inherited tags? + (and itags + (or (and (eq org-archive-subtree-add-inherited-tags 'infile) + infile-p) + (eq org-archive-subtree-add-inherited-tags t)) + (org-set-tags-to atags)) + ;; Mark the entry as done + (when (and org-archive-mark-done + (looking-at org-todo-line-regexp) + (or (not (match-end 2)) + (not (member (match-string 2) org-done-keywords)))) + (let (org-log-done org-todo-log-states) + (org-todo + (car (or (member org-archive-mark-done org-done-keywords) + org-done-keywords))))) + + ;; Add the context info + (when org-archive-save-context-info + (let ((l org-archive-save-context-info) e n v) + (while (setq e (pop l)) + (when (and (setq v (symbol-value e)) + (stringp v) (string-match "\\S-" v)) + (setq n (concat "ARCHIVE_" (upcase (symbol-name e)))) + (org-entry-put (point) n v))))) + + ;; Save and kill the buffer, if it is not the same buffer. + (when (not (eq this-buffer buffer)) + (save-buffer)))) + ;; Here we are back in the original buffer. Everything seems to have + ;; worked. So now cut the tree and finish up. + (let (this-command) (org-cut-subtree)) + (when (featurep 'org-inlinetask) + (org-inlinetask-remove-END-maybe)) + (setq org-markers-to-move nil) + (message "Subtree archived %s" + (if (eq this-buffer buffer) + (concat "under heading: " heading) + (concat "in file: " (abbreviate-file-name afile)))))) + (org-reveal) + (if (looking-at "^[ \t]*$") + (outline-next-visible-heading 1)))) (defun org-archive-to-archive-sibling () "Archive the current heading by moving it under the archive sibling. @@ -350,69 +357,83 @@ The archive sibling is a sibling of the heading with the heading name `org-archive-sibling-heading' and an `org-archive-tag' tag. If this sibling does not exist, it will be created at the end of the subtree." (interactive) - (save-restriction - (widen) - (let (b e pos leader level) - (org-back-to-heading t) - (looking-at outline-regexp) - (setq leader (match-string 0) - level (funcall outline-level)) - (setq pos (point)) - (condition-case nil - (outline-up-heading 1 t) - (error (setq e (point-max)) (goto-char (point-min)))) - (setq b (point)) - (unless e + (if (and (org-region-active-p) org-loop-over-headlines-in-active-region) + (let ((cl (when (eq org-loop-over-headlines-in-active-region 'start-level) + 'region-start-level 'region)) + org-loop-over-headlines-in-active-region) + (org-map-entries + '(progn (setq org-map-continue-from + (progn (org-back-to-heading) + (if (looking-at (concat "^.*:" org-archive-tag ":.*$")) + (org-end-of-subtree t) + (point)))) + (when (org-at-heading-p) + (org-archive-to-archive-sibling))) + org-loop-over-headlines-in-active-region + cl (if (outline-invisible-p) (org-end-of-subtree nil t)))) + (save-restriction + (widen) + (let (b e pos leader level) + (org-back-to-heading t) + (looking-at org-outline-regexp) + (setq leader (match-string 0) + level (funcall outline-level)) + (setq pos (point)) (condition-case nil - (org-end-of-subtree t t) - (error (goto-char (point-max)))) - (setq e (point))) - (goto-char b) - (unless (re-search-forward - (concat "^" (regexp-quote leader) - "[ \t]*" - org-archive-sibling-heading - "[ \t]*:" - org-archive-tag ":") e t) - (goto-char e) - (or (bolp) (newline)) - (insert leader org-archive-sibling-heading "\n") - (beginning-of-line 0) - (org-toggle-tag org-archive-tag 'on)) - (beginning-of-line 1) - (if org-archive-reversed-order - (outline-next-heading) - (org-end-of-subtree t t)) - (save-excursion - (goto-char pos) - (let ((this-command this-command)) (org-cut-subtree))) - (org-paste-subtree (org-get-valid-level level 1)) - (org-set-property - "ARCHIVE_TIME" - (format-time-string - (substring (cdr org-time-stamp-formats) 1 -1) - (current-time))) - (outline-up-heading 1 t) - (hide-subtree) - (org-cycle-show-empty-lines 'folded) - (goto-char pos))) - (org-reveal) - (if (looking-at "^[ \t]*$") - (outline-next-visible-heading 1))) + (outline-up-heading 1 t) + (error (setq e (point-max)) (goto-char (point-min)))) + (setq b (point)) + (unless e + (condition-case nil + (org-end-of-subtree t t) + (error (goto-char (point-max)))) + (setq e (point))) + (goto-char b) + (unless (re-search-forward + (concat "^" (regexp-quote leader) + "[ \t]*" + org-archive-sibling-heading + "[ \t]*:" + org-archive-tag ":") e t) + (goto-char e) + (or (bolp) (newline)) + (insert leader org-archive-sibling-heading "\n") + (beginning-of-line 0) + (org-toggle-tag org-archive-tag 'on)) + (beginning-of-line 1) + (if org-archive-reversed-order + (outline-next-heading) + (org-end-of-subtree t t)) + (save-excursion + (goto-char pos) + (let ((this-command this-command)) (org-cut-subtree))) + (org-paste-subtree (org-get-valid-level level 1)) + (org-set-property + "ARCHIVE_TIME" + (format-time-string + (substring (cdr org-time-stamp-formats) 1 -1) + (current-time))) + (outline-up-heading 1 t) + (hide-subtree) + (org-cycle-show-empty-lines 'folded) + (goto-char pos))) + (org-reveal) + (if (looking-at "^[ \t]*$") + (outline-next-visible-heading 1)))) (defun org-archive-all-done (&optional tag) "Archive sublevels of the current tree without open TODO items. If the cursor is not on a headline, try all level 1 trees. If it is on a headline, try all direct children. When TAG is non-nil, don't move trees, but mark them with the ARCHIVE tag." - (let ((re (concat org-outline-regexp-bol "+" org-not-done-regexp)) re1 + (let ((re org-not-done-heading-regexp) re1 (rea (concat ".*:" org-archive-tag ":")) (begm (make-marker)) (endm (make-marker)) (question (if tag "Set ARCHIVE tag (no open TODO items)? " "Move subtree to archive (no open TODO items)? ")) beg end (cntarch 0)) - (if (org-on-heading-p) + (if (org-at-heading-p) (progn (setq re1 (concat "^" (regexp-quote (make-string @@ -449,20 +470,36 @@ When TAG is non-nil, don't move trees, but mark them with the ARCHIVE tag." With prefix ARG, check all children of current headline and offer tagging the children that do not contain any open TODO items." (interactive "P") - (if find-done - (org-archive-all-done 'tag) - (let (set) - (save-excursion - (org-back-to-heading t) - (setq set (org-toggle-tag org-archive-tag)) - (when set (hide-subtree))) - (and set (beginning-of-line 1)) - (message "Subtree %s" (if set "archived" "unarchived"))))) + (if (and (org-region-active-p) org-loop-over-headlines-in-active-region) + (let ((cl (if (eq org-loop-over-headlines-in-active-region 'start-level) + 'region-start-level 'region)) + org-loop-over-headlines-in-active-region) + (org-map-entries + `(org-toggle-archive-tag ,find-done) + org-loop-over-headlines-in-active-region + cl (if (outline-invisible-p) (org-end-of-subtree nil t)))) + (if find-done + (org-archive-all-done 'tag) + (let (set) + (save-excursion + (org-back-to-heading t) + (setq set (org-toggle-tag org-archive-tag)) + (when set (hide-subtree))) + (and set (beginning-of-line 1)) + (message "Subtree %s" (if set "archived" "unarchived")))))) (defun org-archive-set-tag () "Set the ARCHIVE tag." (interactive) - (org-toggle-tag org-archive-tag 'on)) + (if (and (org-region-active-p) org-loop-over-headlines-in-active-region) + (let ((cl (if (eq org-loop-over-headlines-in-active-region 'start-level) + 'region-start-level 'region)) + org-loop-over-headlines-in-active-region) + (org-map-entries + 'org-archive-set-tag + org-loop-over-headlines-in-active-region + cl (if (outline-invisible-p) (org-end-of-subtree nil t)))) + (org-toggle-tag org-archive-tag 'on))) ;;;###autoload (defun org-archive-subtree-default () @@ -482,6 +519,4 @@ This command is set with the variable `org-archive-default-command'." (provide 'org-archive) - - ;;; org-archive.el ends here diff --git a/lisp/org/org-ascii.el b/lisp/org/org-ascii.el index d6a4e30714b..90f39fd3d8d 100644 --- a/lisp/org/org-ascii.el +++ b/lisp/org/org-ascii.el @@ -1,11 +1,10 @@ ;;; org-ascii.el --- ASCII export for Org-mode -;; Copyright (C) 2004-2011 Free Software Foundation, Inc. +;; Copyright (C) 2004-2012 Free Software Foundation, Inc. ;; Author: Carsten Dominik <carsten at orgmode dot org> ;; Keywords: outlines, hypermedia, calendar, wp ;; Homepage: http://orgmode.org -;; Version: 7.7 ;; ;; This file is part of GNU Emacs. ;; @@ -109,7 +108,7 @@ utf8 Use all UTF-8 characters") (defun org-export-as-utf8 (&rest args) "Like `org-export-as-ascii', use encoding for special symbols." (interactive) - (org-export-as-encoding 'org-export-as-ascii + (org-export-as-encoding 'org-export-as-ascii (org-called-interactively-p 'any) 'utf8 args)) @@ -145,7 +144,7 @@ command to convert it." (interactive "r") (let (reg ascii buf pop-up-frames) (save-window-excursion - (if (org-mode-p) + (if (eq major-mode 'org-mode) (setq ascii (org-export-region-as-ascii beg end t 'string)) (setq reg (buffer-substring beg end) @@ -284,7 +283,7 @@ publishing directory." "UNTITLED")) (email (plist-get opt-plist :email)) (language (plist-get opt-plist :language)) - (quote-re0 (concat "^[ \t]*" org-quote-string "\\>")) + (quote-re0 (concat "^\\(" org-quote-string "\\)\\( +\\|[ \t]*$\\)")) (todo nil) (lang-words nil) (region @@ -407,7 +406,7 @@ publishing directory." txt)) (setq txt (replace-match "" t t txt))) (if (string-match quote-re0 txt) - (setq txt (replace-match "" t t txt))) + (setq txt (replace-match "" t t txt 1))) (if org-export-with-section-numbers (setq txt (concat (org-section-number level) @@ -725,5 +724,4 @@ publishing directory." (provide 'org-ascii) - ;;; org-ascii.el ends here diff --git a/lisp/org/org-attach.el b/lisp/org/org-attach.el index aa8c476e89b..6f7476c6ba9 100644 --- a/lisp/org/org-attach.el +++ b/lisp/org/org-attach.el @@ -1,10 +1,9 @@ ;;; org-attach.el --- Manage file attachments to org-mode tasks -;; Copyright (C) 2008-2011 Free Software Foundation, Inc. +;; Copyright (C) 2008-2012 Free Software Foundation, Inc. ;; Author: John Wiegley <johnw@newartisans.com> ;; Keywords: org data task -;; Version: 7.7 ;; This file is part of GNU Emacs. ;; @@ -437,5 +436,4 @@ prefix." (provide 'org-attach) - ;;; org-attach.el ends here diff --git a/lisp/org/org-bbdb.el b/lisp/org/org-bbdb.el index 8401196c81a..3df4c2044e9 100644 --- a/lisp/org/org-bbdb.el +++ b/lisp/org/org-bbdb.el @@ -1,12 +1,11 @@ ;;; org-bbdb.el --- Support for links to BBDB entries from within Org-mode -;; Copyright (C) 2004-2011 Free Software Foundation, Inc. +;; Copyright (C) 2004-2012 Free Software Foundation, Inc. ;; Author: Carsten Dominik <carsten at orgmode dot org>, ;; Thomas Baumann <thomas dot baumann at ch dot tum dot de> ;; Keywords: outlines, hypermedia, calendar, wp ;; Homepage: http://orgmode.org -;; Version: 7.7 ;; ;; This file is part of GNU Emacs. ;; @@ -113,11 +112,20 @@ (&optional dont-check-disk already-in-db-buffer)) (declare-function bbdb-split "ext:bbdb" (string separators)) (declare-function bbdb-string-trim "ext:bbdb" (string)) +(declare-function bbdb-record-get-field "ext:bbdb" + (fn file &optional arglist fileonly)) +;; These two functions below are part of BBDB3: +(declare-function bbdb-search-name "ext:bbdb" (regexp &optional layout)) +(declare-function bbdb-search-organization "ext:bbdb" (regexp &optional layout)) (declare-function calendar-leap-year-p "calendar" (year)) (declare-function diary-ordinal-suffix "diary-lib" (n)) (defvar date) ;; dynamically scoped from Org +(defvar name) ;; dynamically scoped from Org + +;; Support for version 2.35 +(defvar org-bbdb-old (fboundp 'bbdb-record-get-field-internal)) ;; Customization @@ -196,8 +204,11 @@ date year)." "Store a link to a BBDB database entry." (when (eq major-mode 'bbdb-mode) ;; This is BBDB, we make this link! - (let* ((name (bbdb-record-name (bbdb-current-record))) - (company (bbdb-record-getprop (bbdb-current-record) 'company)) + (let* ((rec (bbdb-current-record)) + (name (bbdb-record-name rec)) + (company (if org-bbdb-old + (bbdb-record-getprop rec 'company) + (car (bbdb-record-get-field rec 'organization)))) (link (org-make-link "bbdb:" name))) (org-store-link-props :type "bbdb" :name name :company company :link link :description name) @@ -219,24 +230,49 @@ italicized, in all other cases it is left unchanged." (require 'bbdb) (let ((inhibit-redisplay (not debug-on-error)) (bbdb-electric-p nil)) - (catch 'exit - ;; Exact match on name - (bbdb-name (concat "\\`" name "\\'") nil) - (if (< 0 (buffer-size (get-buffer "*BBDB*"))) (throw 'exit nil)) - ;; Exact match on name - (bbdb-company (concat "\\`" name "\\'") nil) - (if (< 0 (buffer-size (get-buffer "*BBDB*"))) (throw 'exit nil)) - ;; Partial match on name - (bbdb-name name nil) - (if (< 0 (buffer-size (get-buffer "*BBDB*"))) (throw 'exit nil)) - ;; Partial match on company - (bbdb-company name nil) - (if (< 0 (buffer-size (get-buffer "*BBDB*"))) (throw 'exit nil)) - ;; General match including network address and notes - (bbdb name nil) - (when (= 0 (buffer-size (get-buffer "*BBDB*"))) - (delete-window (get-buffer-window "*BBDB*")) - (error "No matching BBDB record"))))) + (if org-bbdb-old + (org-bbdb-open-old) + (org-bbdb-open-new)))) + +(defun org-bbdb-open-old () + (catch 'exit + ;; Exact match on name + (bbdb-name (concat "\\`" name "\\'") nil) + (if (< 0 (buffer-size (get-buffer "*BBDB*"))) (throw 'exit nil)) + ;; Exact match on name + (bbdb-company (concat "\\`" name "\\'") nil) + (if (< 0 (buffer-size (get-buffer "*BBDB*"))) (throw 'exit nil)) + ;; Partial match on name + (bbdb-name name nil) + (if (< 0 (buffer-size (get-buffer "*BBDB*"))) (throw 'exit nil)) + ;; Partial match on company + (bbdb-company name nil) + (if (< 0 (buffer-size (get-buffer "*BBDB*"))) (throw 'exit nil)) + ;; General match including network address and notes + (bbdb name nil) + (when (= 0 (buffer-size (get-buffer "*BBDB*"))) + (delete-window (get-buffer-window "*BBDB*")) + (error "No matching BBDB record")))) + +(defun org-bbdb-open-new () + (catch 'exit + ;; Exact match on name + (bbdb-search-name (concat "\\`" name "\\'") nil) + (if (< 0 (buffer-size (get-buffer "*BBDB*"))) (throw 'exit nil)) + ;; Exact match on name + (bbdb-search-organization (concat "\\`" name "\\'") nil) + (if (< 0 (buffer-size (get-buffer "*BBDB*"))) (throw 'exit nil)) + ;; Partial match on name + (bbdb-search-name name nil) + (if (< 0 (buffer-size (get-buffer "*BBDB*"))) (throw 'exit nil)) + ;; Partial match on company + (bbdb-search-organization name nil) + (if (< 0 (buffer-size (get-buffer "*BBDB*"))) (throw 'exit nil)) + ;; General match including network address and notes + (bbdb name nil) + (when (= 0 (buffer-size (get-buffer "*BBDB*"))) + (delete-window (get-buffer-window "*BBDB*")) + (error "No matching BBDB record")))) (defun org-bbdb-anniv-extract-date (time-str) "Convert YYYY-MM-DD to (month date year). @@ -357,7 +393,7 @@ This is used by Org to re-create the anniversary hash table." (bbdb-record-name (car (bbdb-completing-read-record "Name: "))))) (defun org-bbdb-anniv-export-ical () - "Extract anniversaries from BBDB and convert them to iCalendar format." + "Extract anniversaries from BBDB and convert them to icalendar format." (require 'bbdb) (require 'diary-lib) (unless (hash-table-p org-bbdb-anniv-hash) @@ -391,6 +427,4 @@ END:VEVENT\n" (provide 'org-bbdb) - - ;;; org-bbdb.el ends here diff --git a/lisp/org/org-beamer.el b/lisp/org/org-beamer.el index d5f9beea337..0a402ed4038 100644 --- a/lisp/org/org-beamer.el +++ b/lisp/org/org-beamer.el @@ -1,8 +1,7 @@ ;;; org-beamer.el --- Beamer-specific LaTeX export for org-mode ;; -;; Copyright (C) 2007-2011 Free Software Foundation, Inc. +;; Copyright (C) 2007-2012 Free Software Foundation, Inc. ;; -;; Version: 7.7 ;; Author: Carsten Dominik <carsten.dominik AT gmail DOT com> ;; Maintainer: Carsten Dominik <carsten.dominik AT gmail DOT com> ;; Keywords: org, wp, tex @@ -400,7 +399,7 @@ the value will be inserted right after the documentclass statement." (insert org-beamer-header-extra) (or (bolp) (insert "\n")))))) -(defcustom org-beamer-fragile-re "^[ \t]*\\\\begin{\\(verbatim\\|lstlisting\\|minted\\)}" +(defcustom org-beamer-fragile-re "\\\\\\(verb\\|lstinline\\)\\|^[ \t]*\\\\begin{\\(verbatim\\|lstlisting\\|minted\\)}" "If this regexp matches in a frame, the frame is marked as fragile." :group 'org-beamer :type 'regexp) @@ -411,7 +410,7 @@ the value will be inserted right after the documentclass statement." ;; Functions to initialize and post-process -;; These functions will be hooked into various places in the export process +;; These fuctions will be hooked into various places in the export process (defun org-beamer-initialize-open-trackers () "Reset variables that track if certain environments are open during export." @@ -451,7 +450,7 @@ The effect is that these values will be accessible during export." ((stringp org-beamer-frame-level-now) (setq org-beamer-frame-level-now (string-to-number org-beamer-frame-level-now)))) - ;; Find the header additions, most likely theme commands + ;; Find the header additons, most likely theme commands (setq org-beamer-header-extra (or (and (org-region-active-p) (save-excursion @@ -632,6 +631,4 @@ include square brackets." (provide 'org-beamer) - - ;;; org-beamer.el ends here diff --git a/lisp/org/org-bibtex.el b/lisp/org/org-bibtex.el index 3607458a410..17cdbc27f29 100644 --- a/lisp/org/org-bibtex.el +++ b/lisp/org/org-bibtex.el @@ -1,12 +1,11 @@ ;;; org-bibtex.el --- Org links to BibTeX entries ;; -;; Copyright (C) 2007-2011 Free Software Foundation, Inc. +;; Copyright (C) 2007-2012 Free Software Foundation, Inc. ;; ;; Author: Bastien Guerry <bzg at altern dot org> ;; Carsten Dominik <carsten dot dominik at gmail dot com> ;; Eric Schulte <schulte dot eric at gmail dot com> ;; Keywords: org, wp, remember -;; Version: 7.7 ;; ;; This file is part of GNU Emacs. ;; @@ -204,7 +203,7 @@ (:pages . "One or more page numbers or range of numbers, such as 42-111 or 7,41,73-97 or 43+ (the ‘+’ in this last example indicates pages following that don’t form simple range). BibTEX requires double dashes for page ranges (--).") (:publisher . "The publisher’s name.") (:school . "The name of the school where a thesis was written.") - (:series . "The name of a series or set of books. When citing an entire book, the title field gives its title and an optional series field gives the name of a series or multi-volume set in which the book is published.") + (:series . "The name of a series or set of books. When citing an entire book, the the title field gives its title and an optional series field gives the name of a series or multi-volume set in which the book is published.") (:title . "The work’s title, typed as explained in the LaTeX book.") (:type . "The type of a technical report for example, 'Research Note'.") (:volume . "The volume of a journal or multi-volume book.") @@ -221,7 +220,7 @@ (defcustom org-bibtex-prefix nil "Optional prefix for all bibtex property names. -For example setting to 'BIB_' would allow interoperability with Fireforg." +For example setting to 'BIB_' would allow interoperability with fireforg." :group 'org-bibtex :type 'string) @@ -275,12 +274,20 @@ This variable is relevant only if `org-bibtex-export-tags-as-keywords` is t." :group 'org-bibtex :type '(repeat :tag "Tag" (string))) +(defcustom org-bibtex-type-property-name "btype" + "Property in which to store bibtex entry type (e.g., article)." + :group 'org-bibtex + :type 'string) + ;;; Utility functions (defun org-bibtex-get (property) ((lambda (it) (when it (org-babel-trim it))) - (or (org-entry-get (point) (upcase property)) - (org-entry-get (point) (concat org-bibtex-prefix (upcase property)))))) + (let ((org-special-properties + (delete "FILE" (copy-sequence org-special-properties)))) + (or + (org-entry-get (point) (upcase property)) + (org-entry-get (point) (concat org-bibtex-prefix (upcase property))))))) (defun org-bibtex-put (property value) (let ((prop (upcase (if (keywordp property) @@ -303,7 +310,7 @@ This variable is relevant only if `org-bibtex-export-tags-as-keywords` is t." lsts)))) (let ((notes (buffer-string)) (id (org-bibtex-get org-bibtex-key-property)) - (type (org-bibtex-get "type")) + (type (org-bibtex-get org-bibtex-type-property-name)) (tags (when org-bibtex-tags-are-keywords (delq nil (mapcar @@ -317,16 +324,20 @@ This variable is relevant only if `org-bibtex-export-tags-as-keywords` is t." (let ((entry (format "@%s{%s,\n%s\n}\n" type id (mapconcat - (lambda (pair) (format " %s={%s}" (car pair) (cdr pair))) + (lambda (pair) + (format " %s={%s}" (car pair) (cdr pair))) (remove nil (if (and org-bibtex-export-arbitrary-fields org-bibtex-prefix) (mapcar (lambda (kv) (let ((key (car kv)) (val (cdr kv))) - (when (and (string-match org-bibtex-prefix key) - (not (string= - (downcase (concat org-bibtex-prefix "TYPE")) (downcase key)))) + (when (and + (string-match org-bibtex-prefix key) + (not (string= + (downcase (concat org-bibtex-prefix + org-bibtex-type-property-name)) + (downcase key)))) (cons (downcase (replace-regexp-in-string org-bibtex-prefix "" key)) val)))) @@ -514,9 +525,20 @@ Headlines are exported using `org-bibtex-export-headline'." "Bibtex file: " nil nil nil (file-name-nondirectory (concat (file-name-sans-extension (buffer-file-name)) ".bib"))))) - (let ((bibtex-entries (remove nil (org-map-entries #'org-bibtex-headline)))) - (with-temp-file filename - (insert (mapconcat #'identity bibtex-entries "\n"))))) + ((lambda (error-point) + (when error-point + (goto-char error-point) + (message "Bibtex error at %S" (nth 4 (org-heading-components))))) + (catch 'bib + (let ((bibtex-entries (remove nil (org-map-entries + (lambda () + (condition-case foo + (org-bibtex-headline) + (error (throw 'bib (point))))))))) + (with-temp-file filename + (insert (mapconcat #'identity bibtex-entries "\n"))) + (message "Successfully exported %d bibtex entries to %s" + (length bibtex-entries) filename) nil)))) (defun org-bibtex-check (&optional optional) "Check the current headline for required fields. @@ -525,7 +547,7 @@ With prefix argument OPTIONAL also prompt for optional fields." (save-restriction (org-narrow-to-subtree) (let ((type ((lambda (name) (when name (intern (concat ":" name)))) - (org-bibtex-get "TYPE")))) + (org-bibtex-get org-bibtex-type-property-name)))) (when type (org-bibtex-fleshout type optional))))) (defun org-bibtex-check-all (&optional optional) @@ -542,7 +564,8 @@ If nonew is t, add data to the headline of the entry at point." "Type: " (mapcar (lambda (type) (substring (symbol-name (car type)) 1)) org-bibtex-types) - nil nil (when nonew (org-bibtex-get "TYPE")))) + nil nil (when nonew + (org-bibtex-get org-bibtex-type-property-name)))) (type (if (keywordp type) type (intern (concat ":" type)))) (org-bibtex-treat-headline-as-title (if nonew nil t))) (unless (assoc type org-bibtex-types) @@ -553,7 +576,8 @@ If nonew is t, add data to the headline of the entry at point." (let ((title (org-bibtex-ask :title))) (insert title) (org-bibtex-put "TITLE" title))) - (org-bibtex-put "TYPE" (substring (symbol-name type) 1)) + (org-bibtex-put org-bibtex-type-property-name + (substring (symbol-name type) 1)) (org-bibtex-fleshout type arg) (mapc (lambda (tag) (org-toggle-tag tag 'on)) org-bibtex-tags))) @@ -598,7 +622,7 @@ This uses `bibtex-parse-entry'." (org-insert-heading) (insert (val :title)) (org-bibtex-put "TITLE" (val :title)) - (org-bibtex-put "TYPE" (downcase (val :type))) + (org-bibtex-put org-bibtex-type-property-name (downcase (val :type))) (dolist (pair entry) (case (car pair) (:title nil) @@ -637,11 +661,10 @@ This function relies `org-search-view' to locate results." (let ((org-agenda-overriding-header "Bib search results:") (org-agenda-search-view-always-boolean t)) (org-search-view nil - (format "%s +{:%sTYPE:}" - string org-bibtex-prefix)))) + (format "%s +{:%s%s:}" + string org-bibtex-prefix + org-bibtex-type-property-name)))) (provide 'org-bibtex) - - ;;; org-bibtex.el ends here diff --git a/lisp/org/org-capture.el b/lisp/org/org-capture.el index e3a87b77b5c..46202f8adea 100644 --- a/lisp/org/org-capture.el +++ b/lisp/org/org-capture.el @@ -1,11 +1,10 @@ ;;; org-capture.el --- Fast note taking in Org-mode -;; Copyright (C) 2010-2011 Free Software Foundation, Inc. +;; Copyright (C) 2010-2012 Free Software Foundation, Inc. ;; Author: Carsten Dominik <carsten at orgmode dot org> ;; Keywords: outlines, hypermedia, calendar, wp ;; Homepage: http://orgmode.org -;; Version: 7.7 ;; ;; This file is part of GNU Emacs. ;; @@ -57,6 +56,8 @@ (date &optional keep-restriction)) (declare-function org-table-get-specials "org-table" ()) (declare-function org-table-goto-line "org-table" (N)) +(declare-function org-pop-to-buffer-same-window "org-compat" + (&optional buffer-or-name norecord label)) (defvar org-remember-default-headline) (defvar org-remember-templates) @@ -332,7 +333,8 @@ calendar | %:type %:date" (defcustom org-capture-before-finalize-hook nil "Hook that is run right before a capture process is finalized. -The capture buffer is still current when this hook runs." +The capture buffer is still current when this hook runs and it is +widened to the entire buffer." :group 'org-capture :type 'hook) @@ -372,7 +374,7 @@ to avoid conflicts with other active capture processes." (plist-get (if local org-capture-current-plist org-capture-plist) prop)) (defun org-capture-member (prop &optional local) - "Is PROP a property in `org-capture-plist'. + "Is PROP a preperty in `org-capture-plist'. When LOCAL is set, use the local variable `org-capture-current-plist', this is necessary after initialization of the capture process, to avoid conflicts with other active capture processes." @@ -484,7 +486,7 @@ bypassed." (error "Capture template `%s': %s" (org-capture-get :key) (nth 1 error)))) - (if (and (org-mode-p) + (if (and (eq major-mode 'org-mode) (org-capture-get :clock-in)) (condition-case nil (progn @@ -574,7 +576,7 @@ captured item after finalizing." (org-capture-empty-lines-after (or (org-capture-get :empty-lines 'local) 0)))) ;; Postprocessing: Update Statistics cookies, do the sorting - (when (org-mode-p) + (when (eq major-mode 'org-mode) (save-excursion (when (ignore-errors (org-back-to-heading)) (org-update-parent-todo-statistics) @@ -722,7 +724,7 @@ already gone. Any prefix argument will be passed to the refile command." (widen) (let ((hd (nth 2 target))) (goto-char (point-min)) - (unless (org-mode-p) + (unless (eq major-mode 'org-mode) (error "Target buffer \"%s\" for file+headline should be in Org mode" (current-buffer))) @@ -754,7 +756,7 @@ already gone. Any prefix argument will be passed to the refile command." (goto-char (if (org-capture-get :prepend) (match-beginning 0) (match-end 0))) (org-capture-put :exact-position (point)) - (setq target-entry-p (and (org-mode-p) (org-at-heading-p)))) + (setq target-entry-p (and (eq major-mode 'org-mode) (org-at-heading-p)))) (error "No match for target regexp in file %s" (nth 1 target)))) ((memq (car target) '(file+datetree file+datetree+prompt)) @@ -776,7 +778,8 @@ already gone. Any prefix argument will be passed to the refile command." (let ((prompt-time (org-read-date nil t nil "Date for tree entry:" (current-time)))) - (org-capture-put :prompt-time prompt-time) + (org-capture-put :prompt-time prompt-time + :default-time prompt-time) (time-to-days prompt-time))) (t ;; current date, possible corrected for late night workers @@ -788,12 +791,12 @@ already gone. Any prefix argument will be passed to the refile command." (widen) (funcall (nth 2 target)) (org-capture-put :exact-position (point)) - (setq target-entry-p (and (org-mode-p) (org-at-heading-p)))) + (setq target-entry-p (and (eq major-mode 'org-mode) (org-at-heading-p)))) ((eq (car target) 'function) (funcall (nth 1 target)) (org-capture-put :exact-position (point)) - (setq target-entry-p (and (org-mode-p) (org-at-heading-p)))) + (setq target-entry-p (and (eq major-mode 'org-mode) (org-at-heading-p)))) ((eq (car target) 'clock) (if (and (markerp org-clock-hd-marker) @@ -847,6 +850,7 @@ it. When it is a variable, retrieve the value. Return whatever we get." (goto-char (org-capture-get :pos)) (org-set-local 'org-capture-target-marker (move-marker (make-marker) (point))) + (org-set-local 'outline-level 'org-outline-level) (let* ((template (org-capture-get :template)) (type (org-capture-get :type))) (case type @@ -1146,11 +1150,11 @@ Point will remain at the first line after the inserted text." (or (bolp) (newline)) (setq beg (point)) (cond - ((and (eq type 'entry) (org-mode-p)) + ((and (eq type 'entry) (eq major-mode 'org-mode)) (org-capture-verify-tree (org-capture-get :template)) (org-paste-subtree nil template t)) ((and (memq type '(item checkitem)) - (org-mode-p) + (eq major-mode 'org-mode) (save-excursion (skip-chars-backward " \t\n") (setq pp (point)) (org-in-item-p))) @@ -1199,7 +1203,7 @@ The user is queried for the template." (error "No capture template selected")) (org-capture-set-plist entry) (org-capture-set-target-location) - (switch-to-buffer (org-capture-get :buffer)) + (org-pop-to-buffer-same-window (org-capture-get :buffer)) (goto-char (org-capture-get :pos)))) (defun org-capture-get-indirect-buffer (&optional buffer prefix) @@ -1212,8 +1216,10 @@ Use PREFIX as a prefix for the name of the indirect buffer." (setq bname (concat prefix "-" (number-to-string (incf n)) "-" base))) (condition-case nil (make-indirect-buffer buffer bname 'clone) - (error (make-indirect-buffer buffer bname))))) - + (error + (let ((buf (make-indirect-buffer buffer bname))) + (with-current-buffer buf (org-mode)) + buf))))) (defun org-capture-verify-tree (tree) "Throw error if TREE is not a valid tree" @@ -1309,7 +1315,7 @@ The template may still contain \"%?\" for cursor positioning." (sit-for 1)) (save-window-excursion (delete-other-windows) - (switch-to-buffer (get-buffer-create "*Capture*")) + (org-pop-to-buffer-same-window (get-buffer-create "*Capture*")) (erase-buffer) (insert template) (goto-char (point-min)) @@ -1411,7 +1417,7 @@ The template may still contain \"%?\" for cursor positioning." (or (equal (char-before) ?:) (insert ":")) (insert ins) (or (equal (char-after) ?:) (insert ":")) - (and (org-on-heading-p) (org-set-tags nil 'align))))) + (and (org-at-heading-p) (org-set-tags nil 'align))))) ((equal char "C") (cond ((= (length clipboards) 1) (insert (car clipboards))) ((> (length clipboards) 1) @@ -1449,7 +1455,7 @@ The template may still contain \"%?\" for cursor positioning." (goto-char (point-min)) (while (looking-at "[ \t]*\n") (replace-match "")) (if (re-search-forward "[ \t\n]*\\'" nil t) (replace-match "\n")) - ;; Return the expanded template and kill the temporary buffer + ;; Return the expanded tempate and kill the temporary buffer (untabify (point-min) (point-max)) (set-buffer-modified-p nil) (prog1 (buffer-string) (kill-buffer (current-buffer)))))) @@ -1503,6 +1509,4 @@ The template may still contain \"%?\" for cursor positioning." (provide 'org-capture) - - ;;; org-capture.el ends here diff --git a/lisp/org/org-clock.el b/lisp/org/org-clock.el index 09b646d40ba..2784707e452 100644 --- a/lisp/org/org-clock.el +++ b/lisp/org/org-clock.el @@ -1,11 +1,10 @@ ;;; org-clock.el --- The time clocking code for Org-mode -;; Copyright (C) 2004-2011 Free Software Foundation, Inc. +;; Copyright (C) 2004-2012 Free Software Foundation, Inc. ;; Author: Carsten Dominik <carsten at orgmode dot org> ;; Keywords: outlines, hypermedia, calendar, wp ;; Homepage: http://orgmode.org -;; Version: 7.7 ;; ;; This file is part of GNU Emacs. ;; @@ -36,6 +35,7 @@ (declare-function calendar-absolute-from-iso "cal-iso" (&optional date)) (declare-function notifications-notify "notifications" (&rest params)) +(declare-function org-pop-to-buffer-same-window "org-compat" (&optional buffer-or-name norecord label)) (defvar org-time-stamp-formats) (defvar org-ts-what) @@ -328,7 +328,7 @@ to add an effort property.") "Hook run when stopping the current clock.") (defvar org-clock-cancel-hook nil - "Hook run when canceling the current clock.") + "Hook run when cancelling the current clock.") (defvar org-clock-goto-hook nil "Hook run when selecting the currently clocked-in entry.") (defvar org-clock-has-been-used nil @@ -346,7 +346,7 @@ to add an effort property.") (defvar org-clock-start-time "") (defvar org-clock-leftover-time nil - "If non-nil, user canceled a clock; this is when leftover time started.") + "If non-nil, user cancelled a clock; this is when leftover time started.") (defvar org-clock-effort "" "Effort estimate of the currently clocking task.") @@ -658,7 +658,7 @@ Use alsa's aplay tool if available." (defun org-program-exists (program-name) "Checks whenever we can locate program and launch it." - (if (eq system-type 'gnu/linux) + (if (member system-type '(gnu/linux darwin)) (= 0 (call-process "which" nil nil nil program-name)))) (defvar org-clock-mode-line-entry nil @@ -691,7 +691,7 @@ Use alsa's aplay tool if available." (goto-char (car ,clock)) (beginning-of-line) ,@forms)))) - +(def-edebug-spec org-with-clock-position (form body)) (put 'org-with-clock-position 'lisp-indent-function 1) (defmacro org-with-clock (clock &rest forms) @@ -707,7 +707,7 @@ This macro also protects the current active clock from being altered." (outline-back-to-heading t) (point-marker)))) ,@forms))) - +(def-edebug-spec org-with-clock (form body)) (put 'org-with-clock 'lisp-indent-function 1) (defsubst org-clock-clock-in (clock &optional resume start-time) @@ -1066,7 +1066,7 @@ the clocking selection, associated with the letter `d'." ;; Clock in at which position? (setq target-pos - (if (and (eobp) (not (org-on-heading-p))) + (if (and (eobp) (not (org-at-heading-p))) (point-at-bol 0) (point))) (run-hooks 'org-clock-in-prepare-hook) @@ -1115,9 +1115,9 @@ the clocking selection, associated with the letter `d'." (cond ((and org-clock-in-resume (looking-at - (concat "^[ \t]* " org-clock-string + (concat "^[ \t]*" org-clock-string " \\[\\([0-9]\\{4\\}-[0-9]\\{2\\}-[0-9]\\{2\\}" - " +\\sw+\.? +[012][0-9]:[0-5][0-9]\\)\\][ \t]*$"))) + " *\\sw+\.? +[012][0-9]:[0-5][0-9]\\)\\][ \t]*$"))) (message "Matched %s" (match-string 1)) (setq ts (concat "[" (match-string 1) "]")) (goto-char (match-end 1)) @@ -1247,9 +1247,9 @@ line and position cursor in that line." (goto-char beg) (when (and find-unclosed (re-search-forward - (concat "^[ \t]* " org-clock-string + (concat "^[ \t]*" org-clock-string " \\[\\([0-9]\\{4\\}-[0-9]\\{2\\}-[0-9]\\{2\\}" - " +\\sw+ +[012][0-9]:[0-5][0-9]\\)\\][ \t]*$") + " *\\sw+ +[012][0-9]:[0-5][0-9]\\)\\][ \t]*$") end t)) (beginning-of-line 1) (throw 'exit t)) @@ -1261,7 +1261,7 @@ line and position cursor in that line." (and (re-search-forward org-property-end-re nil t) (goto-char (match-beginning 0)))) (throw 'exit t)) - ;; Let's count the CLOCK lines + ;; Lets count the CLOCK lines (goto-char beg) (while (re-search-forward re end t) (setq first (or first (match-beginning 0)) @@ -1497,7 +1497,7 @@ With prefix arg SELECT, offer recently clocked tasks for selection." (setq recent t) (car org-clock-history)) (t (error "No active or recent clock task"))))) - (switch-to-buffer (marker-buffer m)) + (org-pop-to-buffer-same-window (marker-buffer m)) (if (or (< m (point-min)) (> m (point-max))) (widen)) (goto-char m) (org-show-entry) @@ -1696,7 +1696,9 @@ from the `before-change-functions' in the current buffer." "Clock out if the current entry contains the running clock. This is used to stop the clock after a TODO entry is marked DONE, and is only done if the variable `org-clock-out-when-done' is not nil." - (when (and org-clock-out-when-done + (when (and (org-clocking-p) + org-clock-out-when-done + (marker-buffer org-clock-marker) (or (and (eq t org-clock-out-when-done) (member state org-done-keywords)) (and (listp org-clock-out-when-done) @@ -1998,7 +2000,8 @@ the currently selected interval size." (encode-time 0 0 0 (+ d n) m y)))) ((and wp (string-match "w\\|W" wp) mw (> (length wp) 0)) (require 'cal-iso) - (setq date (calendar-gregorian-from-absolute (calendar-absolute-from-iso (list (+ mw n) 1 y)))) + (setq date (calendar-gregorian-from-absolute + (calendar-absolute-from-iso (list (+ mw n) 1 y)))) (setq ins (format-time-string "%G-W%V" (encode-time 0 0 0 (nth 1 date) (car date) (nth 2 date))))) @@ -2014,7 +2017,8 @@ the currently selected interval size." (setq mw 5 y (- y 1)) ()) - (setq date (calendar-gregorian-from-absolute (calendar-absolute-from-iso (org-quarter-to-date (+ mw n) y)))) + (setq date (calendar-gregorian-from-absolute + (calendar-absolute-from-iso (org-quarter-to-date (+ mw n) y)))) (setq ins (format-time-string (concatenate 'string (number-to-string y) "-Q" (number-to-string (+ mw n))) (encode-time 0 0 0 (nth 1 date) (car date) (nth 2 date))))) @@ -2050,7 +2054,6 @@ the currently selected interval size." 'org-clocktable-write-default)) cc range-text ipos pos one-file-with-archives scope-is-list tbls level) - ;; Check if we need to do steps (when block ;; Get the range text for the header @@ -2125,7 +2128,7 @@ the currently selected interval size." "Write out a clock table at position IPOS in the current buffer. TABLES is a list of tables with clocking data as produced by `org-clock-get-table-data'. PARAMS is the parameter property list obtained -from the dynamic block definition." +from the dynamic block defintion." ;; This function looks quite complicated, mainly because there are a ;; lot of options which can add or remove columns. I have massively ;; commented this function, the I hope it is understandable. If @@ -2638,6 +2641,4 @@ The details of what will be saved are regulated by the variable (provide 'org-clock) - - ;;; org-clock.el ends here diff --git a/lisp/org/org-colview.el b/lisp/org/org-colview.el index 0f6fc0bed6a..04d2b626f91 100644 --- a/lisp/org/org-colview.el +++ b/lisp/org/org-colview.el @@ -1,11 +1,10 @@ ;;; org-colview.el --- Column View in Org-mode -;; Copyright (C) 2004-2011 Free Software Foundation, Inc. +;; Copyright (C) 2004-2012 Free Software Foundation, Inc. ;; Author: Carsten Dominik <carsten at orgmode dot org> ;; Keywords: outlines, hypermedia, calendar, wp ;; Homepage: http://orgmode.org -;; Version: 7.7 ;; ;; This file is part of GNU Emacs. ;; @@ -187,7 +186,7 @@ This is the compiled version of the format.") (cons "ITEM" ;; When in a buffer, get the whole line, ;; we'll clean it later… - (if (org-mode-p) + (if (eq major-mode 'org-mode) (save-match-data (org-no-properties (org-remove-tabs @@ -209,9 +208,9 @@ This is the compiled version of the format.") (funcall org-columns-modify-value-for-display-function title val)) ((equal property "ITEM") - (if (org-mode-p) - (org-columns-cleanup-item - val org-columns-current-fmt-compiled))) + (org-columns-cleanup-item + val org-columns-current-fmt-compiled + (or org-complex-heading-regexp cphr))) ((and calc (functionp calc) (not (string= val "")) (not (get-text-property 0 'org-computed val))) @@ -341,24 +340,28 @@ for the duration of the command.") (when (local-variable-p 'org-colview-initial-truncate-line-value) (setq truncate-lines org-colview-initial-truncate-line-value))))) -(defun org-columns-cleanup-item (item fmt) - "Remove from ITEM what is a column in the format FMT." - (if (not org-complex-heading-regexp) - item - (when (string-match org-complex-heading-regexp item) - (setq item - (concat - (org-add-props (match-string 1 item) nil - 'org-whitespace (* 2 (1- (org-reduced-level (- (match-end 1) (match-beginning 1)))))) - (and (match-end 2) (not (assoc "TODO" fmt)) (concat " " (match-string 2 item))) - (and (match-end 3) (not (assoc "PRIORITY" fmt)) (concat " " (match-string 3 item))) - " " (save-match-data (org-columns-compact-links (match-string 4 item))) - (and (match-end 5) (not (assoc "TAGS" fmt)) (concat " " (match-string 5 item))))) - (add-text-properties - 0 (1+ (match-end 1)) - (list 'org-whitespace (* 2 (1- (org-reduced-level (- (match-end 1) (match-beginning 1)))))) - item) - item))) +(defun org-columns-cleanup-item (item fmt cphr) + "Remove from ITEM what is a column in the format FMT. +CPHR is the complex heading regexp to use for parsing ITEM." + (let (fixitem) + (if (not cphr) + item + (unless (string-match "^\*+ " item) + (setq item (concat "* " item) fixitem t)) + (if (string-match cphr item) + (setq item + (concat + (org-add-props (match-string 1 item) nil + 'org-whitespace (* 2 (1- (org-reduced-level (- (match-end 1) (match-beginning 1)))))) + (and (match-end 2) (not (assoc "TODO" fmt)) (concat " " (match-string 2 item))) + (and (match-end 3) (not (assoc "PRIORITY" fmt)) (concat " " (match-string 3 item))) + " " (save-match-data (org-columns-compact-links (match-string 4 item))) + (and (match-end 5) (not (assoc "TAGS" fmt)) (concat " " (match-string 5 item))))) + (add-text-properties + 0 (1+ (match-end 1)) + (list 'org-whitespace (* 2 (1- (org-reduced-level (- (match-end 1) (match-beginning 1)))))) + item)) + (if fixitem (replace-regexp-in-string "^\*+ " "" item) item)))) (defun org-columns-compact-links (s) "Replace [[link][desc]] with [desc] or [link]." @@ -494,7 +497,7 @@ Where possible, use the standard interface for changing this line." (org-columns-eval eval)) (org-columns-display-here))) (org-move-to-column col) - (if (and (org-mode-p) + (if (and (eq major-mode 'org-mode) (nth 3 (assoc key org-columns-current-fmt-compiled))) (org-columns-update key))))))) @@ -544,7 +547,7 @@ Where possible, use the standard interface for changing this line." (beginning-of-line 1) ;; `next-line' is needed here, because it skips invisible line. (condition-case nil (org-no-warnings (next-line 1)) (error nil)) - (setq hidep (org-on-heading-p 1))) + (setq hidep (org-at-heading-p 1))) (eval form) (and hidep (hide-entry)))) @@ -872,7 +875,7 @@ display, or in the #+COLUMNS line of the current buffer." (replace-match (concat "#+COLUMNS: " fmt) t t)) (unless (> cnt 0) (goto-char (point-min)) - (or (org-on-heading-p t) (outline-next-heading)) + (or (org-at-heading-p t) (outline-next-heading)) (let ((inhibit-read-only t)) (insert-before-markers "#+COLUMNS: " fmt "\n"))) (org-set-local 'org-columns-default-format fmt)))))) @@ -1000,7 +1003,7 @@ Don't set this, this is meant for dynamic scoping.") (if (marker-position org-columns-begin-marker) (goto-char org-columns-begin-marker)) (org-columns-remove-overlays) - (if (org-mode-p) + (if (eq major-mode 'org-mode) (call-interactively 'org-columns) (org-agenda-redo) (call-interactively 'org-agenda-columns))) @@ -1139,6 +1142,8 @@ calc function to get values from base elements" ;;; Dynamic block for Column view +(defvar org-heading-regexp) ; defined in org.el +(defvar org-heading-keyword-regexp-format) ; defined in org.el (defun org-columns-capture-view (&optional maxlevel skip-empty-rows) "Get the column view of the current buffer or subtree. The first optional argument MAXLEVEL sets the level limit. A @@ -1149,11 +1154,12 @@ containing the title row and all other rows. Each row is a list of fields." (save-excursion (let* ((title (mapcar 'cadr org-columns-current-fmt-compiled)) - (re-comment (concat "\\*+[ \t]+" org-comment-string "\\>")) + (re-comment (format org-heading-keyword-regexp-format + org-comment-string)) (re-archive (concat ".*:" org-archive-tag ":")) (n (length title)) row tbl) (goto-char (point-min)) - (while (re-search-forward "^\\(\\*+\\) " nil t) + (while (re-search-forward org-heading-regexp nil t) (catch 'next (when (and (or (null maxlevel) (>= maxlevel @@ -1525,6 +1531,4 @@ The string should be two numbers joined with a \"-\"." (provide 'org-colview) - - ;;; org-colview.el ends here diff --git a/lisp/org/org-compat.el b/lisp/org/org-compat.el index 5e4935caa7e..425e8d816c7 100644 --- a/lisp/org/org-compat.el +++ b/lisp/org/org-compat.el @@ -1,11 +1,10 @@ ;;; org-compat.el --- Compatibility code for Org-mode -;; Copyright (C) 2004-2011 Free Software Foundation, Inc. +;; Copyright (C) 2004-2012 Free Software Foundation, Inc. ;; Author: Carsten Dominik <carsten at orgmode dot org> ;; Keywords: outlines, hypermedia, calendar, wp ;; Homepage: http://orgmode.org -;; Version: 7.7 ;; ;; This file is part of GNU Emacs. ;; @@ -252,8 +251,12 @@ Works on both Emacs and XEmacs." (defun org-activate-mark () (when (mark t) (setq mark-active t) - (unless transient-mark-mode - (setq transient-mark-mode 'lambda))))) + (when (and (boundp 'transient-mark-mode) + (not transient-mark-mode)) + (setq transient-mark-mode 'lambda)) + (when (boundp 'zmacs-regions) + (setq zmacs-regions t))))) + ;; Invisibility compatibility @@ -272,7 +275,7 @@ Works on both Emacs and XEmacs." nil)) (defmacro org-xemacs-without-invisibility (&rest body) - "Turn off extents with invisibility while executing BODY." + "Turn off exents with invisibility while executing BODY." `(let ((ext-inv (extent-list nil (point-at-bol) (point-at-eol) 'all-extents-closed-open 'invisible)) ext-inv-specs) @@ -285,6 +288,7 @@ Works on both Emacs and XEmacs." (dolist (ext-inv-spec ext-inv-specs) (set-extent-property (car ext-inv-spec) 'invisible (cadr ext-inv-spec))))) +(def-edebug-spec org-xemacs-without-invisibility (body)) (defun org-indent-to-column (column &optional minimum buffer) "Work around a bug with extents with invisibility in XEmacs." @@ -432,8 +436,15 @@ With two arguments, return floor and remainder of their quotient." (let ((q (floor x y))) (list q (- x (if y (* y q) q))))) -(provide 'org-compat) - +;; `pop-to-buffer-same-window' has been introduced with Emacs 24.1. +(defun org-pop-to-buffer-same-window + (&optional buffer-or-name norecord label) + "Pop to buffer specified by BUFFER-OR-NAME in the selected window." + (if (fboundp 'pop-to-buffer-same-window) + (funcall + 'pop-to-buffer-same-window buffer-or-name norecord) + (funcall 'switch-to-buffer buffer-or-name norecord))) +(provide 'org-compat) ;;; org-compat.el ends here diff --git a/lisp/org/org-crypt.el b/lisp/org/org-crypt.el index b260391a0da..a128b046038 100644 --- a/lisp/org/org-crypt.el +++ b/lisp/org/org-crypt.el @@ -1,10 +1,9 @@ ;;; org-crypt.el --- Public key encryption for org-mode entries -;; Copyright (C) 2007, 2009-2011 Free Software Foundation, Inc. +;; Copyright (C) 2007, 2009-2012 Free Software Foundation, Inc. ;; Emacs Lisp Archive Entry ;; Filename: org-crypt.el -;; Version: 7.7 ;; Keywords: org-mode ;; Author: John Wiegley <johnw@gnu.org> ;; Maintainer: Peter Jones <pjones@pmade.com> @@ -77,21 +76,21 @@ (defgroup org-crypt nil "Org Crypt" - :tag "Org Crypt" + :tag "Org Crypt" :group 'org) (defcustom org-crypt-tag-matcher "crypt" "The tag matcher used to find headings whose contents should be encrypted. See the \"Match syntax\" section of the org manual for more details." - :type 'string + :type 'string :group 'org-crypt) (defcustom org-crypt-key "" "The default key to use when encrypting the contents of a heading. This setting can also be overridden in the CRYPTKEY property." - :type 'string + :type 'string :group 'org-crypt) (defcustom org-crypt-disable-auto-save 'ask @@ -117,6 +116,35 @@ nil : Leave auto-save-mode enabled. (const :tag "Ask" ask) (const :tag "Encrypt" encrypt))) +(defun org-crypt-check-auto-save () + "Check whether auto-save-mode is enabled for the current buffer. + +`auto-save-mode' may cause leakage when decrypting entries, so +check whether it's enabled, and decide what to do about it. + +See `org-crypt-disable-auto-save'." + (when buffer-auto-save-file-name + (cond + ((or + (eq org-crypt-disable-auto-save t) + (and + (eq org-crypt-disable-auto-save 'ask) + (y-or-n-p "org-decrypt: auto-save-mode may cause leakage. Disable it for current buffer? "))) + (message (concat "org-decrypt: Disabling auto-save-mode for " (or (buffer-file-name) (current-buffer)))) + ; The argument to auto-save-mode has to be "-1", since + ; giving a "nil" argument toggles instead of disabling. + (auto-save-mode -1)) + ((eq org-crypt-disable-auto-save nil) + (message "org-decrypt: Decrypting entry with auto-save-mode enabled. This may cause leakage.")) + ((eq org-crypt-disable-auto-save 'encrypt) + (message "org-decrypt: Enabling re-encryption on auto-save.") + (add-hook 'auto-save-hook + (lambda () + (message "org-crypt: Re-encrypting all decrypted entries due to auto-save.") + (org-encrypt-entries)) + nil t)) + (t nil)))) + (defun org-crypt-key-for-heading () "Return the encryption key for the current heading." (save-excursion @@ -165,30 +193,6 @@ nil : Leave auto-save-mode enabled. (defun org-decrypt-entry () "Decrypt the content of the current headline." (interactive) - - ; auto-save-mode may cause leakage, so check whether it's enabled. - (when buffer-auto-save-file-name - (cond - ((or - (eq org-crypt-disable-auto-save t) - (and - (eq org-crypt-disable-auto-save 'ask) - (y-or-n-p "org-decrypt: auto-save-mode may cause leakage. Disable it for current buffer? "))) - (message (concat "org-decrypt: Disabling auto-save-mode for " (or (buffer-file-name) (current-buffer)))) - ; The argument to auto-save-mode has to be "-1", since - ; giving a "nil" argument toggles instead of disabling. - (auto-save-mode -1)) - ((eq org-crypt-disable-auto-save nil) - (message "org-decrypt: Decrypting entry with auto-save-mode enabled. This may cause leakage.")) - ((eq org-crypt-disable-auto-save 'encrypt) - (message "org-decrypt: Enabling re-encryption on auto-save.") - (add-hook 'auto-save-hook - (lambda () - (message "org-crypt: Re-encrypting all decrypted entries due to auto-save.") - (org-encrypt-entries)) - nil t)) - (t nil))) - (require 'epg) (unless (org-before-first-heading-p) (save-excursion @@ -200,6 +204,7 @@ nil : Leave auto-save-mode enabled. (outline-invisible-p)))) (forward-line) (when (looking-at "-----BEGIN PGP MESSAGE-----") + (org-crypt-check-auto-save) (let* ((end (save-excursion (search-forward "-----END PGP MESSAGE-----") (forward-line) @@ -252,6 +257,4 @@ nil : Leave auto-save-mode enabled. (provide 'org-crypt) - - ;;; org-crypt.el ends here diff --git a/lisp/org/org-ctags.el b/lisp/org/org-ctags.el index d567b929056..7cbd299782f 100644 --- a/lisp/org/org-ctags.el +++ b/lisp/org/org-ctags.el @@ -1,12 +1,11 @@ ;;; org-ctags.el - Integrate Emacs "tags" facility with org mode. ;; -;; Copyright (C) 2007-2011 Free Software Foundation, Inc. +;; Copyright (C) 2007-2012 Free Software Foundation, Inc. ;; Author: Paul Sexton <eeeickythump@gmail.com> -;; Version: 7.7 + ;; Keywords: org, wp -;; Version: 7.7 ;; ;; This file is part of GNU Emacs. ;; @@ -36,7 +35,7 @@ ;; links to these 'tagged' destinations, allowing seamless navigation between ;; multiple org-mode files. Topics can be created in any org mode file and ;; will always be found by plain links from other files. Other file types -;; recognized by ctags (source code files, latex files, etc) will also be +;; recognised by ctags (source code files, latex files, etc) will also be ;; available as destinations for plain links, and similarly, org-mode links ;; will be available as tags from source files. Finally, the function ;; `org-ctags-find-tag-interactive' lets you choose any known tag, using @@ -64,19 +63,19 @@ ;; with the same name as the link; then, if unsuccessful, ask the user if ;; he/she wants to rebuild the 'TAGS' database and try again; then ask if ;; the user wishes to append 'tag' as a new toplevel heading at the end of -;; the buffer; and finally, defer to org's default behavior which is to +;; the buffer; and finally, defer to org's default behaviour which is to ;; search the entire text of the current buffer for 'tag'. ;; -;; This behavior can be modified by changing the value of +;; This behaviour can be modified by changing the value of ;; ORG-CTAGS-OPEN-LINK-FUNCTIONS. For example I have the following in my -;; .emacs, which describes the same behavior as the above paragraph with +;; .emacs, which describes the same behaviour as the above paragraph with ;; one difference: ;; ;; (setq org-ctags-open-link-functions ;; '(org-ctags-find-tag ;; org-ctags-ask-rebuild-tags-file-then-find-tag ;; org-ctags-ask-append-topic -;; org-ctags-fail-silently)) ; <-- prevents org default behavior +;; org-ctags-fail-silently)) ; <-- prevents org default behaviour ;; ;; ;; Usage @@ -140,6 +139,8 @@ (require 'org) +(declare-function org-pop-to-buffer-same-window "org-compat" (&optional buffer-or-name norecord label)) + (defgroup org-ctags nil "Options concerning use of ctags within org mode." :tag "Org-Ctags" @@ -305,7 +306,7 @@ The new topic will be titled NAME (or TITLE if supplied)." activate compile) "Before trying to find a tag, save our current position on org mark ring." (save-excursion - (if (and (org-mode-p) org-ctags-enabled-p) + (if (and (eq major-mode 'org-mode) org-ctags-enabled-p) (org-mark-ring-push)))) @@ -385,7 +386,7 @@ the new file." (cond ((get-buffer (concat name ".org")) ;; Buffer is already open - (switch-to-buffer (get-buffer (concat name ".org")))) + (org-pop-to-buffer-same-window (get-buffer (concat name ".org")))) ((file-exists-p filename) ;; File exists but is not open --> open it (message "Opening existing org file `%S'..." @@ -537,5 +538,4 @@ a new topic." (provide 'org-ctags) - ;;; org-ctags.el ends here diff --git a/lisp/org/org-datetree.el b/lisp/org/org-datetree.el index f02f3789823..3042be782c9 100644 --- a/lisp/org/org-datetree.el +++ b/lisp/org/org-datetree.el @@ -1,11 +1,10 @@ ;;; org-datetree.el --- Create date entries in a tree -;; Copyright (C) 2009-2011 Free Software Foundation, Inc. +;; Copyright (C) 2009-2012 Free Software Foundation, Inc. ;; Author: Carsten Dominik <carsten at orgmode dot org> ;; Keywords: outlines, hypermedia, calendar, wp ;; Homepage: http://orgmode.org -;; Version: 7.7 ;; ;; This file is part of GNU Emacs. ;; @@ -195,6 +194,4 @@ before running this command, even though the command tries to be smart." (provide 'org-datetree) - - ;;; org-datetree.el ends here diff --git a/lisp/org/org-docbook.el b/lisp/org/org-docbook.el index f964a93fa1c..499ab5da7d9 100644 --- a/lisp/org/org-docbook.el +++ b/lisp/org/org-docbook.el @@ -1,10 +1,9 @@ ;;; org-docbook.el --- DocBook exporter for org-mode ;; -;; Copyright (C) 2007-2011 Free Software Foundation, Inc. +;; Copyright (C) 2007-2012 Free Software Foundation, Inc. ;; ;; Emacs Lisp Archive Entry ;; Filename: org-docbook.el -;; Version: 7.7 ;; Author: Baoqiu Cui <cbaoqiu AT yahoo DOT com> ;; Maintainer: Baoqiu Cui <cbaoqiu AT yahoo DOT com> ;; Keywords: org, wp, docbook @@ -294,7 +293,7 @@ then use this command to convert it." (interactive "r") (let (reg docbook buf) (save-window-excursion - (if (org-mode-p) + (if (eq major-mode 'org-mode) (setq docbook (org-export-region-as-docbook beg end t 'string)) (setq reg (buffer-substring beg end) @@ -394,6 +393,8 @@ in a window. A non-interactive call will only return the buffer." (org-open-file pdffile) (error "PDF file was not produced")))) +(defvar org-heading-keyword-regexp-format) ; defined in org.el + ;;;###autoload (defun org-export-as-docbook (&optional hidden ext-plist to-buffer body-only pub-dir) @@ -475,9 +476,11 @@ publishing directory." (current-dir (if buffer-file-name (file-name-directory buffer-file-name) default-directory)) + (auto-insert nil); Avoid any auto-insert stuff for the new file (buffer (if to-buffer (cond - ((eq to-buffer 'string) (get-buffer-create "*Org DocBook Export*")) + ((eq to-buffer 'string) + (get-buffer-create "*Org DocBook Export*")) (t (get-buffer-create to-buffer))) (find-file-noselect filename))) ;; org-levels-open is a global variable @@ -499,8 +502,9 @@ publishing directory." ;; We will use HTML table formatter to export tables to DocBook ;; format, so need to set html-table-tag here. (html-table-tag (plist-get opt-plist :html-table-tag)) - (quote-re0 (concat "^[ \t]*" org-quote-string "\\>")) - (quote-re (concat "^\\(\\*+\\)\\([ \t]+" org-quote-string "\\>\\)")) + (quote-re0 (concat "^ *" org-quote-string "\\( +\\|[ \t]*$\\)")) + (quote-re (format org-heading-keyword-regexp-format + org-quote-string)) (inquote nil) (infixed nil) (inverse nil) @@ -970,7 +974,7 @@ publishing directory." (push (cons num 1) footref-seen)))))) (cond - ((string-match "^\\(\\*+\\)[ \t]+\\(.*\\)" line) + ((string-match "^\\(\\*+\\)\\(?: +\\(.*?\\)\\)?[ \t]*$" line) ;; This is a headline (setq level (org-tr-level (- (match-end 1) (match-beginning 1) level-offset)) @@ -1445,5 +1449,4 @@ the alist of previous items." (provide 'org-docbook) - ;;; org-docbook.el ends here diff --git a/lisp/org/org-docview.el b/lisp/org/org-docview.el index 201567251d7..cb490137155 100644 --- a/lisp/org/org-docview.el +++ b/lisp/org/org-docview.el @@ -1,11 +1,10 @@ ;;; org-docview.el --- support for links to doc-view-mode buffers -;; Copyright (C) 2009-2011 Free Software Foundation, Inc. +;; Copyright (C) 2009-2012 Free Software Foundation, Inc. ;; Author: Jan Böcker <jan.boecker at jboecker dot de> ;; Keywords: outlines, hypermedia, calendar, wp ;; Homepage: http://orgmode.org -;; Version: 7.7 ;; ;; This file is part of GNU Emacs. ;; @@ -88,6 +87,4 @@ and append it." (provide 'org-docview) - - ;;; org-docview.el ends here diff --git a/lisp/org/org-entities.el b/lisp/org/org-entities.el index 1e7fd627a17..fe3c52892a1 100644 --- a/lisp/org/org-entities.el +++ b/lisp/org/org-entities.el @@ -1,12 +1,11 @@ ;;; org-entities.el --- Support for special entities in Org-mode -;; Copyright (C) 2010-2011 Free Software Foundation, Inc. +;; Copyright (C) 2010-2012 Free Software Foundation, Inc. ;; Author: Carsten Dominik <carsten at orgmode dot org>, ;; Ulf Stegemann <ulf at zeitform dot de> ;; Keywords: outlines, calendar, wp ;; Homepage: http://orgmode.org -;; Version: 7.7 ;; ;; This file is part of GNU Emacs. ;; @@ -568,6 +567,4 @@ Kind can be any of `latex', `html', `ascii', `latin1', or `utf8'." ;; coding: utf-8 ;; End: - - ;;; org-entities.el ends here diff --git a/lisp/org/org-eshell.el b/lisp/org/org-eshell.el new file mode 100644 index 00000000000..16b19e26d08 --- /dev/null +++ b/lisp/org/org-eshell.el @@ -0,0 +1,66 @@ +;;; org-eshell.el - Support for links to working directories in eshell + +;; Copyright (C) 2011-2012 Free Software Foundation, Inc. + +;; Author: Konrad Hinsen <konrad.hinsen AT fastmail.net> +;; Version: 0.1 + +;; 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 3 of the License, 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. If not, see <http://www.gnu.org/licenses/>. + +;;; Commentary: + +;;; Code: + +(require 'org) +(require 'eshell) +(require 'esh-mode) + +(org-add-link-type "eshell" 'org-eshell-open) +(add-hook 'org-store-link-functions 'org-eshell-store-link) + +(defun org-eshell-open (link) + "Switch to am eshell buffer and execute a command line. + The link can be just a command line (executed in the default + eshell buffer) or a command line prefixed by a buffer name + followed by a colon." + (let* ((buffer-and-command + (if (string-match "\\([A-Za-z0-9-+*]+\\):\\(.*\\)" link) + (list (match-string 1 link) + (match-string 2 link)) + (list eshell-buffer-name link))) + (eshell-buffer-name (car buffer-and-command)) + (command (cadr buffer-and-command))) + (if (get-buffer eshell-buffer-name) + (org-pop-to-buffer-same-window eshell-buffer-name) + (eshell)) + (goto-char (point-max)) + (eshell-kill-input) + (insert command) + (eshell-send-input))) + +(defun org-eshell-store-link () + "Store a link that, when opened, switches back to the current eshell buffer + and the current working directory." + (when (eq major-mode 'eshell-mode) + (let* ((command (concat "cd " dired-directory)) + (link (concat (buffer-name) ":" command))) + (org-store-link-props + :link (org-make-link "eshell:" link) + :description command)))) + +(provide 'org-eshell) + +;;; org-eshell.el ends here diff --git a/lisp/org/org-exp-blocks.el b/lisp/org/org-exp-blocks.el index 398da3859d0..e5ff5c59eec 100644 --- a/lisp/org/org-exp-blocks.el +++ b/lisp/org/org-exp-blocks.el @@ -1,9 +1,8 @@ ;;; org-exp-blocks.el --- pre-process blocks when exporting org files -;; Copyright (C) 2009-2011 Free Software Foundation, Inc. +;; Copyright (C) 2009-2012 Free Software Foundation, Inc. ;; Author: Eric Schulte -;; Version: 7.7 ;; This file is part of GNU Emacs. ;; @@ -176,10 +175,10 @@ which defaults to the value of `org-export-blocks-witheld'." (setq start (point)) (let ((beg-re "^\\([ \t]*\\)#\\+begin_\\(\\S-+\\)[ \t]*\\(.*\\)?[\r\n]")) (while (re-search-forward beg-re nil t) - (let* ((match-start (match-beginning 0)) - (body-start (match-end 0)) + (let* ((match-start (copy-marker (match-beginning 0))) + (body-start (copy-marker (match-end 0))) (indentation (length (match-string 1))) - (inner-re (format "[\r\n]*[ \t]*#\\+\\(begin\\|end\\)_%s" + (inner-re (format "^[ \t]*#\\+\\(begin\\|end\\)_%s" (regexp-quote (downcase (match-string 2))))) (type (intern (downcase (match-string 2)))) (headers (save-match-data @@ -196,7 +195,7 @@ which defaults to the value of `org-export-blocks-witheld'." (when (not (zerop balanced)) (error "unbalanced begin/end_%s blocks with %S" type (buffer-substring match-start (point)))) - (setq match-end (match-end 0)) + (setq match-end (copy-marker (match-end 0))) (unless preserve-indent (setq body (save-match-data (org-remove-indentation (buffer-substring @@ -211,7 +210,11 @@ which defaults to the value of `org-export-blocks-witheld'." (delete-region match-start match-end) (goto-char match-start) (insert replacement) (unless preserve-indent - (indent-code-rigidly match-start (point) indentation)))))) + (indent-code-rigidly match-start (point) indentation))))) + ;; cleanup markers + (set-marker match-start nil) + (set-marker body-start nil) + (set-marker match-end nil)) (setq start (point)))) (interblock start (point-max)) (run-hooks 'org-export-blocks-postblock-hook))))) @@ -376,5 +379,4 @@ other backends, it converts the comment into an EXAMPLE segment." (provide 'org-exp-blocks) - ;;; org-exp-blocks.el ends here diff --git a/lisp/org/org-exp.el b/lisp/org/org-exp.el index 35a51649452..49da40f5f4f 100644 --- a/lisp/org/org-exp.el +++ b/lisp/org/org-exp.el @@ -1,11 +1,10 @@ ;;; org-exp.el --- ASCII, HTML, XOXO and iCalendar export for Org-mode -;; Copyright (C) 2004-2011 Free Software Foundation, Inc. +;; Copyright (C) 2004-2012 Free Software Foundation, Inc. ;; Author: Carsten Dominik <carsten at orgmode dot org> ;; Keywords: outlines, hypermedia, calendar, wp ;; Homepage: http://orgmode.org -;; Version: 7.7 ;; ;; This file is part of GNU Emacs. ;; @@ -47,13 +46,15 @@ (declare-function org-inlinetask-remove-END-maybe "org-inlinetask" ()) (declare-function org-table-cookie-line-p "org-table" (line)) (declare-function org-table-colgroup-line-p "org-table" (line)) +(declare-function org-pop-to-buffer-same-window "org-compat" + (&optional buffer-or-name norecord label)) (autoload 'org-export-generic "org-export-generic" "Export using the generic exporter" t) (autoload 'org-export-as-odt "org-odt" - "Export the outline to a OpenDocumentText file." t) + "Export the outline to a OpenDocument Text file." t) (autoload 'org-export-as-odt-and-open "org-odt" - "Export the outline to a OpenDocumentText file and open it." t) + "Export the outline to a OpenDocument Text file and open it." t) (defgroup org-export nil "Options for exporting org-listings." @@ -216,6 +217,11 @@ and in `org-clock-clocktable-language-setup'." :group 'org-export-general :type 'string) +(defcustom org-export-date-timestamp-format "%Y-%m-%d" + "Time string format for Org timestamps in the #+DATE option." + :group 'org-export-general + :type 'string) + (defvar org-export-page-description "" "The page description, for the XHTML meta tag. This is best set with the #+DESCRIPTION line in a file, it does not make @@ -725,6 +731,7 @@ must accept the property list as an argument, and must return the (possibly modified) list.") ;; FIXME: should we fold case here? + (defun org-infile-export-plist () "Return the property list with file-local settings for export." (save-excursion @@ -736,13 +743,13 @@ modified) list.") '("TITLE" "AUTHOR" "DATE" "EMAIL" "TEXT" "OPTIONS" "LANGUAGE" "MATHJAX" "LINK_UP" "LINK_HOME" "SETUPFILE" "STYLE" - "LATEX_HEADER" "LATEX_CLASS" + "LATEX_HEADER" "LATEX_CLASS" "LATEX_CLASS_OPTIONS" "EXPORT_SELECT_TAGS" "EXPORT_EXCLUDE_TAGS" "KEYWORDS" "DESCRIPTION" "MACRO" "BIND" "XSLT") (mapcar 'car org-export-inbuffer-options-extra)))) (case-fold-search t) p key val text options mathjax a pr style - latex-header latex-class macros letbind + latex-header latex-class latex-class-options macros letbind ext-setup-or-nil setup-file setup-dir setup-contents (start 0)) (while (or (and ext-setup-or-nil (string-match re ext-setup-or-nil start) @@ -758,7 +765,15 @@ modified) list.") ((string-equal key "TITLE") (setq p (plist-put p :title val))) ((string-equal key "AUTHOR")(setq p (plist-put p :author val))) ((string-equal key "EMAIL") (setq p (plist-put p :email val))) - ((string-equal key "DATE") (setq p (plist-put p :date val))) + ((string-equal key "DATE") + ;; If date is an Org timestamp, convert it to a time + ;; string using `org-export-date-timestamp-format' + (when (string-match org-ts-regexp3 val) + (setq val (format-time-string + org-export-date-timestamp-format + (apply 'encode-time (org-parse-time-string + (match-string 0 val)))))) + (setq p (plist-put p :date val))) ((string-equal key "KEYWORDS") (setq p (plist-put p :keywords val))) ((string-equal key "DESCRIPTION") (setq p (plist-put p :description val))) @@ -769,6 +784,8 @@ modified) list.") (setq latex-header (concat latex-header "\n" val))) ((string-equal key "LATEX_CLASS") (setq latex-class val)) + ((string-equal key "LATEX_CLASS_OPTIONS") + (setq latex-class-options val)) ((string-equal key "TEXT") (setq text (if text (concat text "\n" val) val))) ((string-equal key "OPTIONS") @@ -812,6 +829,8 @@ modified) list.") (setq p (plist-put p :latex-header-extra (substring latex-header 1)))) (when latex-class (setq p (plist-put p :latex-class latex-class))) + (when latex-class-options + (setq p (plist-put p :latex-class-options latex-class-options))) (when options (setq p (org-export-add-options-to-plist p options))) (when mathjax @@ -947,7 +966,7 @@ Pressing `1' will switch between these two options." \[D] export as DocBook [V] export as DocBook, process to PDF, and open -\[o] export as OpenDocumentText [O] ... and open +\[o] export as OpenDocument Text [O] ... and open \[j] export as TaskJuggler [J] ... and open @@ -1011,6 +1030,7 @@ Pressing `1' will switch between these two options." (message "Export buffer: ")) ((not subtree-p) (setq subtree-p t) + (setq bpos (point)) (message "Export subtree: ")))) (when (eq r1 ?\ ) (let ((case-fold-search t) @@ -1027,7 +1047,7 @@ Pressing `1' will switch between these two options." (setq r1 (read-char-exclusive))) (error "No enclosing node with LaTeX_CLASS or EXPORT_TITLE or EXPORT_FILE_NAME") ))))) - (redisplay) + (if (fboundp 'redisplay) (redisplay)) ;; XEmacs does not have/need (redisplay) (and bpos (goto-char bpos)) (setq r2 (if (< r1 27) (+ r1 96) r1)) (unless (setq ass (assq r2 cmds)) @@ -1277,6 +1297,9 @@ on this string to produce the exported version." ;; Remove #+TBLFM and #+TBLNAME lines (org-export-handle-table-metalines) + ;; Remove #+results and #+name lines + (org-export-res/src-name-cleanup) + ;; Run the final hook (run-hooks 'org-export-preprocess-final-hook) @@ -1407,7 +1430,7 @@ the current file." (setq found (condition-case nil (org-link-search link) (error nil))) (when (and found - (or (org-on-heading-p) + (or (org-at-heading-p) (not (eq found 'dedicated)))) (or (get-text-property (point) 'target) (get-text-property @@ -1438,7 +1461,7 @@ the current file." (defvar org-export-format-drawer-function nil "Function to be called to format the contents of a drawer. -The function must accept three parameters: +The function must accept two parameters: NAME the drawer name, like \"PROPERTIES\" CONTENT the content of the drawer. You can check the export backend through `org-export-current-backend'. @@ -1518,7 +1541,7 @@ removed as well." (setq beg (point)) (put-text-property beg (point-max) :org-delete t) (while (re-search-forward re-sel nil t) - (when (org-on-heading-p) + (when (org-at-heading-p) (org-back-to-heading) (remove-text-properties (max (1- (point)) (point-min)) @@ -1588,7 +1611,7 @@ from the buffer." (when (not (eq export-archived-trees t)) (goto-char (point-min)) (while (re-search-forward re-archive nil t) - (if (not (org-on-heading-p t)) + (if (not (org-at-heading-p t)) (goto-char (point-at-eol)) (beginning-of-line 1) (setq a (if export-archived-trees @@ -1634,9 +1657,11 @@ from the buffer." (org-if-unprotected (replace-match ""))))) +(defvar org-heading-keyword-regexp-format) ; defined in org.el (defun org-export-protect-quoted-subtrees () "Mark quoted subtrees with the protection property." - (let ((org-re-quote (concat "^\\*+[ \t]+" org-quote-string "\\>"))) + (let ((org-re-quote (format org-heading-keyword-regexp-format + org-quote-string))) (goto-char (point-min)) (while (re-search-forward org-re-quote nil t) (goto-char (match-beginning 0)) @@ -1737,8 +1762,14 @@ from the buffer." (save-excursion (save-match-data (goto-char beg-content) - (while (re-search-forward "^[ \t]*\\(,\\)" end-content t) - (replace-match "" nil nil nil 1)))) + (let ((front-line (save-excursion + (re-search-forward + "[^[:space:]]" end-content t) + (goto-char (match-beginning 0)) + (current-column)))) + (while (re-search-forward "^[ \t]*\\(,\\)" end-content t) + (when (= (current-column) front-line) + (replace-match "" nil nil nil 1)))))) (delete-region (match-beginning 0) (match-end 0)) (save-excursion (goto-char beg) @@ -1924,7 +1955,8 @@ table line. If it is a link, add it to the line containing the link." (defun org-export-remove-comment-blocks-and-subtrees () "Remove the comment environment, and also commented subtrees." - (let ((re-commented (concat "^\\*+[ \t]+" org-comment-string "\\>")) + (let ((re-commented (format org-heading-keyword-regexp-format + org-comment-string)) case-fold-search) ;; Remove comment environment (goto-char (point-min)) @@ -1977,6 +2009,18 @@ When it is nil, all comments will be removed." (replace-match "") (goto-char (max (point-min) (1- pos))))))) +(defun org-export-res/src-name-cleanup () + "Clean up #+results and #+name lines for export. +This function should only be called after all block processing +has taken place." + (interactive) + (save-excursion + (goto-char (point-min)) + (let ((case-fold-search t)) + (while (org-re-search-forward-unprotected + "#\\+\\(name\\|results\\(\\[[a-z0-9]+\\]\\)?\\):" nil t) + (delete-region (match-beginning 0) (progn (forward-line) (point))))))) + (defun org-export-mark-radio-links () "Find all matches for radio targets and turn them into internal links." (let ((re-radio (and org-target-link-regexp @@ -1994,23 +2038,28 @@ When it is nil, all comments will be removed." (defun org-store-forced-table-alignment () "Find table lines which force alignment, store the results in properties." - (let (line cnt aligns) + (let (line cnt cookies) (goto-char (point-min)) - (while (re-search-forward "|[ \t]*<[lrc][0-9]*>[ \t]*|" nil t) + (while (re-search-forward "|[ \t]*<\\([lrc]?[0-9]+\\|[lrc]\\)>[ \t]*|" + nil t) ;; OK, this looks like a table line with an alignment cookie (org-if-unprotected (setq line (buffer-substring (point-at-bol) (point-at-eol))) (when (and (org-at-table-p) (org-table-cookie-line-p line)) - (setq cnt 0 aligns nil) + (setq cnt 0 cookies nil) (mapc (lambda (x) (setq cnt (1+ cnt)) - (if (string-match "\\`<\\([lrc]\\)" x) - (push (cons cnt (downcase (match-string 1 x))) aligns))) + (when (string-match "\\`<\\([lrc]\\)?\\([0-9]+\\)?>\\'" x) + (let ((align (and (match-end 1) + (downcase (match-string 1 x)))) + (width (and (match-end 2) + (string-to-number (match-string 2 x))))) + (push (cons cnt (list align width)) cookies)))) (org-split-string line "[ \t]*|[ \t]*")) (add-text-properties (org-table-begin) (org-table-end) - (list 'org-forced-aligns aligns)))) + (list 'org-col-cookies cookies)))) (goto-char (point-at-eol))))) (defun org-export-remove-special-table-lines () @@ -2048,10 +2097,11 @@ Also, store forced alignment information found in such lines." (re-angle-link (concat "\\([^[]\\)" org-angle-link-re)) nodesc) (goto-char (point-min)) + (while (re-search-forward org-bracket-link-regexp nil t) + (put-text-property (match-beginning 0) (match-end 0) 'org-normalized-link t)) + (goto-char (point-min)) (while (re-search-forward re-plain-link nil t) - (unless (org-string-match-p - "\\[\\[\\S-+:\\S-*?\\<" - (buffer-substring (point-at-bol) (match-beginning 0))) + (unless (get-text-property (match-beginning 0) 'org-normalized-link) (goto-char (1- (match-end 0))) (org-if-unprotected-at (1+ (match-beginning 0)) (let* ((s (concat (match-string 1) @@ -2131,24 +2181,31 @@ can work correctly." (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))) + (unless (org-in-block-p org-list-forbidden-blocks) + (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-export-get-title-from-subtree () "Return subtree title and exclude it from export." (let ((rbeg (region-beginning)) (rend (region-end)) - (inhibit-read-only t) title) + (inhibit-read-only t) + (tags (plist-get (org-infile-export-plist) :tags)) + title) (save-excursion (goto-char rbeg) (when (and (org-at-heading-p) (>= (org-end-of-subtree t t) rend)) + (when (plist-member org-export-opt-plist :tags) + (setq tags (or (plist-get org-export-opt-plist :tags) tags))) ;; This is a subtree, we take the title from the first heading (goto-char rbeg) - (looking-at org-todo-line-regexp) - (setq title (match-string 3)) + (looking-at org-todo-line-tags-regexp) + (setq title (if (eq tags t) + (format "%s\t%s" (match-string 3) (match-string 4)) + (match-string 3))) (org-unmodified (add-text-properties (point) (1+ (point-at-eol)) (list :org-license-to-kill t))) @@ -2290,7 +2347,7 @@ TYPE must be a string, any of: (plist-get org-export-opt-plist (intern (concat ":" key))))) (save-match-data - ;; If arguments are provided, first retreive them properly + ;; If arguments are provided, first retrieve them properly ;; (in ARGS, as a list), then replace them in VAL. (when args (setq args (org-split-string args ",") args2 nil) @@ -2688,11 +2745,11 @@ INDENT was the original indentation of the block." (format "\\begin{%s}\n%s\\end{%s}\n" custom-environment rtn custom-environment)) (listings-p - (format "\\begin{%s}\n%s\\end{%s}\n" + (format "\\begin{%s}\n%s\\end{%s}" "lstlisting" rtn "lstlisting")) (minted-p (format - "\\begin{minted}[%s]{%s}\n%s\\end{minted}\n" + "\\begin{minted}[%s]{%s}\n%s\\end{minted}" (mapconcat #'make-option-string org-export-latex-minted-options ",") backend-lang rtn))))))) @@ -2717,13 +2774,60 @@ INDENT was the original indentation of the block." "\n#+BEGIN_" backend-name "\n" (org-add-props rtn '(org-protected t org-example t org-native-text t)) - "\n#+END_" backend-name "\n\n")) + "\n#+END_" backend-name "\n")) (org-add-props rtn nil 'original-indentation indent)))) (defun org-export-number-lines (text &optional skip1 skip2 number cont - replace-labels label-format) + replace-labels label-format preprocess) + "Apply line numbers to literal examples and handle code references. +Handle user-specified options under info node `(org)Literal +examples' and return the modified source block. + +TEXT contains the source or example block. + +SKIP1 and SKIP2 are the number of lines that are to be skipped at +the beginning and end of TEXT. Use these to skip over +backend-specific lines pre-pended or appended to the original +source block. + +NUMBER is non-nil if the literal example specifies \"+n\" or +\"-n\" switch. If NUMBER is non-nil add line numbers. + +CONT is non-nil if the literal example specifies \"+n\" switch. +If CONT is nil, start numbering this block from 1. Otherwise +continue numbering from the last numbered block. + +REPLACE-LABELS is dual-purpose. +1. It controls the retention of labels in the exported block. +2. It specifies in what manner the links (or references) to a + labelled line be formatted. + +REPLACE-LABELS is the symbol `keep' if the literal example +specifies \"-k\" option, is numeric if the literal example +specifies \"-r\" option and is nil otherwise. + +Handle REPLACE-LABELS as below: +- If nil, retain labels in the exported block and use + user-provided labels for referencing the labelled lines. +- If it is a number, remove labels in the exported block and use + one of line numbers or labels for referencing labelled lines based + on NUMBER option. +- If it is a keep, retain labels in the exported block and use + one of line numbers or labels for referencing labelled lines + based on NUMBER option. + +LABEL-FORMAT is the value of \"-l\" switch associated with +literal example. See `org-coderef-label-format'. + +PREPROCESS is intended for backend-agnostic handling of source +block numbering. When non-nil do the following: +- do not number the lines +- always strip the labels from exported block +- do not make the labelled line a target of an incoming link. + Instead mark the labelled line with `org-coderef' property and + store the label in it." (setq skip1 (or skip1 0) skip2 (or skip2 0)) - (if (not cont) (setq org-export-last-code-line-counter-value 0)) + (if (and number (not cont)) (setq org-export-last-code-line-counter-value 0)) (with-temp-buffer (insert text) (goto-char (point-max)) @@ -2760,9 +2864,10 @@ INDENT was the original indentation of the block." (org-goto-line (1+ skip1)) (while (and (re-search-forward "^" nil t) (not (eobp)) (< n nmax)) - (if number - (insert (format fm (incf n))) - (forward-char 1)) + (when number (incf n)) + (if (or preprocess (not number)) + (forward-char 1) + (insert (format fm n))) (when (looking-at lbl-re) (setq ref (match-string 3)) (cond ((numberp replace-labels) @@ -2775,7 +2880,8 @@ INDENT was the original indentation of the block." ;; lines are numbered, use labels otherwise (goto-char (match-beginning 2)) (delete-region (match-beginning 2) (match-end 2)) - (insert "(" ref ")") + (unless preprocess + (insert "(" ref ")")) (push (cons ref (if (> n 0) n (concat "(" ref ")"))) org-export-code-refs)) (t @@ -2783,15 +2889,19 @@ INDENT was the original indentation of the block." ;; references (goto-char (match-beginning 2)) (delete-region (match-beginning 2) (match-end 2)) - (insert "(" ref ")") + (unless preprocess + (insert "(" ref ")")) (push (cons ref (concat "(" ref ")")) org-export-code-refs))) - (when (eq org-export-current-backend 'html) + (when (and (eq org-export-current-backend 'html) (not preprocess)) (save-excursion (beginning-of-line 1) (insert (format "<span id=\"coderef-%s\" class=\"coderef-off\">" ref)) (end-of-line 1) - (insert "</span>"))))) + (insert "</span>"))) + (when preprocess + (add-text-properties + (point-at-bol) (point-at-eol) (list 'org-coderef ref))))) (setq org-export-last-code-line-counter-value n) (goto-char (point-max)) (newline) @@ -2893,17 +3003,6 @@ command." (switch-to-buffer-other-window buffer) (goto-char (point-min))))) -(defun org-find-visible () - (let ((s (point))) - (while (and (not (= (point-max) (setq s (next-overlay-change s)))) - (get-char-property s 'invisible))) - s)) -(defun org-find-invisible () - (let ((s (point))) - (while (and (not (= (point-max) (setq s (next-overlay-change s)))) - (not (get-char-property s 'invisible)))) - s)) - (defvar org-export-htmlized-org-css-url) ;; defined in org-html.el (defun org-export-string (string fmt &optional dir) @@ -2922,7 +3021,7 @@ to the value of `temporary-file-directory'." (org-load-modules-maybe) (unless org-local-vars (setq org-local-vars (org-get-local-variables))) - (eval ;; convert to fmt -- mimicking `org-run-like-in-org-mode' + (eval ;; convert to fmt -- mimicing `org-run-like-in-org-mode' (list 'let org-local-vars (list (intern (format "org-export-as-%s" fmt)) nil nil nil ''string t)))) @@ -2972,7 +3071,7 @@ directory." (region (buffer-string)) str-ret) (save-excursion - (switch-to-buffer buffer) + (org-pop-to-buffer-same-window buffer) (erase-buffer) (insert region) (let ((org-inhibit-startup t)) (org-mode)) @@ -3218,7 +3317,7 @@ If yes remove the column and the special lines." (defun org-export-push-to-kill-ring (format) "Push buffer content to kill ring. -The depends on the variable `org-export-copy-to-kill'." +The depends on the variable `org-export-copy-to-kill-ring'." (when org-export-copy-to-kill-ring (org-kill-new (buffer-string)) (when (fboundp 'x-set-selection) @@ -3228,6 +3327,4 @@ The depends on the variable `org-export-copy-to-kill'." (provide 'org-exp) - - ;;; org-exp.el ends here diff --git a/lisp/org/org-faces.el b/lisp/org/org-faces.el index af9632eec44..e71ce2322ae 100644 --- a/lisp/org/org-faces.el +++ b/lisp/org/org-faces.el @@ -1,11 +1,10 @@ ;;; org-faces.el --- Face definitions for Org-mode. -;; Copyright (C) 2004-2011 Free Software Foundation, Inc. +;; Copyright (C) 2004-2012 Free Software Foundation, Inc. ;; Author: Carsten Dominik <carsten at orgmode dot org> ;; Keywords: outlines, hypermedia, calendar, wp ;; Homepage: http://orgmode.org -;; Version: 7.7 ;; ;; This file is part of GNU Emacs. ;; @@ -673,6 +672,18 @@ month and 365.24 days for a year)." "Face for showing the agenda restriction lock." :group 'org-faces) +(defface org-agenda-filter-tags + (org-compatible-face 'modeline + nil) + "Face for tag(s) in the mode-line when filtering the agenda." + :group 'org-faces) + +(defface org-agenda-filter-category + (org-compatible-face 'modeline + nil) + "Face for tag(s) in the mode-line when filtering the agenda." + :group 'org-faces) + (defface org-time-grid ;; originally copied from font-lock-variable-name-face (org-compatible-face nil '((((class color) (min-colors 16) (background light)) (:foreground "DarkGoldenrod")) @@ -690,6 +701,18 @@ month and 365.24 days for a year)." "Face used for agenda entries that come from the Emacs diary." :group 'org-faces) +(defface org-agenda-calendar-event + (org-compatible-face 'default + nil) + "Face used to show events and appointments in the agenda." + :group 'org-faces) + +(defface org-agenda-calendar-sexp + (org-compatible-face 'default + nil) + "Face used to show events computed from a S-expression." + :group 'org-faces) + (defconst org-level-faces '(org-level-1 org-level-2 org-level-3 org-level-4 org-level-5 org-level-6 org-level-7 org-level-8 @@ -735,6 +758,4 @@ level org-n-level-faces" (provide 'org-faces) - - ;;; org-faces.el ends here diff --git a/lisp/org/org-feed.el b/lisp/org/org-feed.el index d1b31f11b4a..f5186aaacf3 100644 --- a/lisp/org/org-feed.el +++ b/lisp/org/org-feed.el @@ -1,11 +1,10 @@ ;;; org-feed.el --- Add RSS feed items to Org files ;; -;; Copyright (C) 2009-2011 Free Software Foundation, Inc. +;; Copyright (C) 2009-2012 Free Software Foundation, Inc. ;; ;; Author: Carsten Dominik <carsten at orgmode dot org> ;; Keywords: outlines, hypermedia, calendar, wp ;; Homepage: http://orgmode.org -;; Version: 7.7 ;; ;; This file is part of GNU Emacs. ;; @@ -436,7 +435,7 @@ it can be a list structured like an entry in `org-feed-alist'." (if (stringp feed) (setq feed (assoc feed org-feed-alist))) (unless feed (error "No such feed in `org-feed-alist")) - (switch-to-buffer + (org-pop-to-buffer-same-window (org-feed-update feed 'retrieve-only)) (goto-char (point-min))) @@ -674,5 +673,4 @@ formatted as a string, not the original XML data." (provide 'org-feed) - ;;; org-feed.el ends here diff --git a/lisp/org/org-footnote.el b/lisp/org/org-footnote.el index 0d47132d2f8..f9cf59c879c 100644 --- a/lisp/org/org-footnote.el +++ b/lisp/org/org-footnote.el @@ -1,11 +1,10 @@ ;;; org-footnote.el --- Footnote support in Org and elsewhere ;; -;; Copyright (C) 2009-2011 Free Software Foundation, Inc. +;; Copyright (C) 2009-2012 Free Software Foundation, Inc. ;; ;; Author: Carsten Dominik <carsten at orgmode dot org> ;; Keywords: outlines, hypermedia, calendar, wp ;; Homepage: http://orgmode.org -;; Version: 7.7 ;; ;; This file is part of GNU Emacs. ;; @@ -38,28 +37,33 @@ (require 'org-macs) (require 'org-compat) +(declare-function message-point-in-header-p "message" ()) +(declare-function org-back-over-empty-lines "org" ()) +(declare-function org-back-to-heading "org" (&optional invisible-ok)) (declare-function org-combine-plists "org" (&rest plists)) +(declare-function org-end-of-subtree "org" (&optional invisible-ok to-heading)) +(declare-function org-export-preprocess-string "org-exp" + (string &rest parameters)) +(declare-function org-fill-paragraph "org" (&optional justify)) +(declare-function org-icompleting-read "org" (&rest args)) +(declare-function org-id-uuid "org-id" ()) +(declare-function org-in-block-p "org" (names)) (declare-function org-in-commented-line "org" ()) (declare-function org-in-indented-comment-line "org" ()) (declare-function org-in-regexp "org" (re &optional nlines visually)) -(declare-function org-in-block-p "org" (names)) -(declare-function org-mark-ring-push "org" (&optional pos buffer)) -(declare-function outline-next-heading "outline") -(declare-function org-trim "org" (s)) -(declare-function org-show-context "org" (&optional key)) -(declare-function org-back-to-heading "org" (&optional invisible-ok)) -(declare-function org-end-of-subtree "org" (&optional invisible-ok to-heading)) (declare-function org-in-verbatim-emphasis "org" ()) +(declare-function org-inside-LaTeX-fragment-p "org" ()) (declare-function org-inside-latex-macro-p "org" ()) -(declare-function org-id-uuid "org" ()) -(declare-function org-fill-paragraph "org" (&optional justify)) -(declare-function org-export-preprocess-string "org-exp" - (string &rest parameters)) +(declare-function org-mark-ring-push "org" (&optional pos buffer)) +(declare-function org-show-context "org" (&optional key)) +(declare-function org-trim "org" (s)) +(declare-function outline-next-heading "outline") -(defvar org-outline-regexp-bol) ; defined in org.el -(defvar org-odd-levels-only) ;; defined in org.el -(defvar org-bracket-link-regexp) ; defined in org.el -(defvar message-signature-separator) ;; defined in message.el +(defvar org-outline-regexp-bol) ; defined in org.el +(defvar org-odd-levels-only) ; defined in org.el +(defvar org-bracket-link-regexp) ; defined in org.el +(defvar message-cite-prefix-regexp) ; defined in message.el +(defvar message-signature-separator) ; defined in message.el (defconst org-footnote-re ;; Only [1]-like footnotes are closed in this regexp, as footnotes @@ -67,17 +71,17 @@ ;; their definition. ;; ;; `org-re' is used for regexp compatibility with XEmacs. - (org-re (concat "\\[\\(?:" - ;; Match inline footnotes. - "fn:\\([-_[:word:]]+\\)?:\\|" - ;; Match other footnotes. - "\\(?:\\([0-9]+\\)\\]\\)\\|" - "\\(fn:[-_[:word:]]+\\)" - "\\)")) + (concat "\\[\\(?:" + ;; Match inline footnotes. + (org-re "fn:\\([-_[:word:]]+\\)?:\\|") + ;; Match other footnotes. + "\\(?:\\([0-9]+\\)\\]\\)\\|" + (org-re "\\(fn:[-_[:word:]]+\\)") + "\\)") "Regular expression for matching footnotes.") (defconst org-footnote-definition-re - (org-re "^\\(\\[\\([0-9]+\\|fn:[-_[:word:]]+\\)\\]\\)") + (org-re "^\\[\\([0-9]+\\|fn:[-_[:word:]]+\\)\\]") "Regular expression matching the definition of a footnote.") (defvar org-footnote-forbidden-blocks '("example" "verse" "src" "ascii" "beamer" @@ -106,13 +110,17 @@ heading will be removed after extracting footnote definitions." (defcustom org-footnote-tag-for-non-org-mode-files "Footnotes:" "Tag marking the beginning of footnote section. -The Org-mode footnote engine can be used in arbitrary text files as well -as in Org-mode. Outside Org-mode, new footnotes are always placed at +The Org footnote engine can be used in arbitrary text files as well +as in Org-mode. Outside Org mode, new footnotes are always placed at the end of the file. When you normalize the notes, any line containing only this tag will be removed, a new one will be inserted at the end -of the file, followed by the collected and normalized footnotes." +of the file, followed by the collected and normalized footnotes. + +If you don't want any tag in such buffers, set this variable to nil." :group 'org-footnote - :type 'string) + :type '(choice + (string :tag "Collect footnotes under tag") + (const :tag "Don't use a tag" nil))) (defcustom org-footnote-define-inline nil "Non-nil means define footnotes inline, at reference location. @@ -171,8 +179,11 @@ extracted will be filled again." (save-match-data (not (or (org-in-commented-line) (org-in-indented-comment-line) - (org-in-verbatim-emphasis) + (org-inside-LaTeX-fragment-p) + ;; Avoid protected environments (LaTeX export) + (get-text-property (point) 'org-protected) ;; Avoid literal example. + (org-in-verbatim-emphasis) (save-excursion (beginning-of-line) (looking-at "[ \t]*:[ \t]+")) @@ -194,13 +205,13 @@ positions, and the definition, when inlined." (or (looking-at org-footnote-re) (org-in-regexp org-footnote-re) (save-excursion (re-search-backward org-footnote-re nil t))) - ;; Only inline footnotes can start at bol. - (or (eq (char-before (match-end 0)) 58) - (/= (match-beginning 0) (point-at-bol)))) + (/= (match-beginning 0) (point-at-bol))) (let* ((beg (match-beginning 0)) - (label (or (match-string 2) (match-string 3) + (label (or (org-match-string-no-properties 2) + (org-match-string-no-properties 3) ;; Anonymous footnotes don't have labels - (and (match-string 1) (concat "fn:" (match-string 1))))) + (and (match-string 1) + (concat "fn:" (org-match-string-no-properties 1))))) ;; Inline footnotes don't end at (match-end 0) as ;; `org-footnote-re' stops just after the second colon. ;; Find the real ending with `scan-sexps', so Org doesn't @@ -223,12 +234,12 @@ positions, and the definition, when inlined." ;; optional argument of the command. Thus, check ;; the `org-protected' property of that command. (or (not (org-inside-latex-macro-p)) - (and (get-text-property (1- beg) 'org-protected) - (not (get-text-property beg 'org-protected))))) + (get-text-property (1- beg) 'org-protected))) (list label beg end ;; Definition: ensure this is an inline footnote first. (and (or (not label) (match-string 1)) - (org-trim (buffer-substring (match-end 0) (1- end))))))))) + (org-trim (buffer-substring-no-properties + (match-end 0) (1- end))))))))) (defun org-footnote-at-definition-p () "Is the cursor at a footnote definition? @@ -239,7 +250,7 @@ footnote text is included and defined locally. The return value will be nil if not at a footnote definition, and a list with label, start, end and definition of the footnote otherwise." - (when (org-footnote-in-valid-context-p) + (when (save-excursion (beginning-of-line) (org-footnote-in-valid-context-p)) (save-excursion (end-of-line) (let ((lim (save-excursion (re-search-backward @@ -247,7 +258,7 @@ label, start, end and definition of the footnote otherwise." "\\|^[ \t]*$") nil t)))) (when (re-search-backward org-footnote-definition-re lim t) (end-of-line) - (list (match-string 2) + (list (org-match-string-no-properties 1) (match-beginning 0) (save-match-data ;; In a message, limit search to signature. @@ -257,15 +268,14 @@ label, start, end and definition of the footnote otherwise." (re-search-backward message-signature-separator nil t))))) (or (and (re-search-forward - (org-re - (concat "^[ \t]*$" "\\|" - org-outline-regexp-bol - "\\|" - "^\\[\\([0-9]+\\|fn:[-_[:word:]]+\\)\\]")) + (concat org-outline-regexp-bol "\\|" + org-footnote-definition-re "\\|" + "^[ \t]*$") bound 'move) (progn (skip-chars-forward " \t\n") (point-at-bol))) (point)))) - (org-trim (buffer-substring (match-end 0) (point))))))))) + (org-trim (buffer-substring-no-properties + (match-end 0) (point))))))))) (defun org-footnote-get-next-reference (&optional label backward limit) "Return complete reference of the next footnote. @@ -295,10 +305,11 @@ LIMIT is the buffer position bounding the search. Return value is a list like those provided by `org-footnote-at-reference-p' or `org-footnote-at-definition-p'. If no footnote is found, return nil." - (let* (ref) + (let* (ref (origin (point))) (catch 'exit (while t (unless (re-search-forward org-footnote-re limit t) + (goto-char origin) (throw 'exit nil)) ;; Beware: with [1]-like footnotes point will be just after ;; the closing square bracket. @@ -320,19 +331,21 @@ If no footnote is found, return nil." (re (format "^\\[%s\\]\\|.\\[%s:" label label)) pos) (save-excursion - (when (or (re-search-forward re nil t) - (and (goto-char (point-min)) - (re-search-forward re nil t)) - (and (progn (widen) t) - (goto-char (point-min)) - (re-search-forward re nil t))) - (let ((refp (org-footnote-at-reference-p))) - (cond - ((and (nth 3 refp) refp)) - ((org-footnote-at-definition-p)))))))) + (save-restriction + (when (or (re-search-forward re nil t) + (and (goto-char (point-min)) + (re-search-forward re nil t)) + (and (progn (widen) t) + (goto-char (point-min)) + (re-search-forward re nil t))) + (let ((refp (org-footnote-at-reference-p))) + (cond + ((and (nth 3 refp) refp)) + ((org-footnote-at-definition-p))))))))) (defun org-footnote-goto-definition (label) - "Move point to the definition of the footnote LABEL." + "Move point to the definition of the footnote LABEL. +Return a non-nil value when a definition has been found." (interactive "sLabel: ") (org-mark-ring-push) (let ((def (org-footnote-get-definition label))) @@ -342,7 +355,9 @@ If no footnote is found, return nil." (looking-at (format "\\[%s\\]\\|\\[%s:" label label)) (goto-char (match-end 0)) (org-show-context 'link-search) - (message "Edit definition and go back with `C-c &' or, if unique, with `C-c C-c'.")))) + (when (eq major-mode 'org-mode) + (message "Edit definition and go back with `C-c &' or, if unique, with `C-c C-c'.")) + t))) (defun org-footnote-goto-previous-reference (label) "Find the first closest (to point) reference of footnote with label LABEL." @@ -406,7 +421,12 @@ and value definition." (defun org-footnote-unique-label (&optional current) "Return a new unique footnote label. -The returns the firsts fn:N labels that is currently not used." + +The function returns the first \"fn:N\" or \"N\" label that is +currently not used. + +Optional argument CURRENT is the list of labels active in the +buffer." (unless current (setq current (org-footnote-all-labels))) (let ((fmt (if (eq org-footnote-auto-label 'plain) "%d" "fn:%d")) (cnt 1)) @@ -414,21 +434,17 @@ The returns the firsts fn:N labels that is currently not used." (incf cnt)) (format fmt cnt))) -(defvar org-footnote-label-history nil - "History of footnote labels entered in current buffer.") -(make-variable-buffer-local 'org-footnote-label-history) - (defun org-footnote-new () "Insert a new footnote. This command prompts for a label. If this is a label referencing an existing label, only insert the label. If the footnote label is empty or new, let the user edit the definition of the footnote." (interactive) - (unless (and (not (bolp)) (org-footnote-in-valid-context-p)) + (unless (org-footnote-in-valid-context-p) (error "Cannot insert a footnote here")) - (let* ((labels (and (not (equal org-footnote-auto-label 'random)) - (org-footnote-all-labels))) - (propose (org-footnote-unique-label labels)) + (let* ((lbls (and (not (equal org-footnote-auto-label 'random)) + (org-footnote-all-labels))) + (propose (org-footnote-unique-label lbls)) (label (org-footnote-normalize-label (cond @@ -438,16 +454,16 @@ or new, let the user edit the definition of the footnote." (require 'org-id) (substring (org-id-uuid) 0 8)) (t - (completing-read + (org-icompleting-read "Label (leave empty for anonymous): " - (mapcar 'list labels) nil nil - (if (eq org-footnote-auto-label 'confirm) propose nil) - 'org-footnote-label-history)))))) + (mapcar 'list lbls) nil nil + (if (eq org-footnote-auto-label 'confirm) propose nil))))))) (cond + ((bolp) (error "Cannot create a footnote reference at left margin")) ((not label) (insert "[fn:: ]") (backward-char 1)) - ((member label labels) + ((member label lbls) (insert "[" label "]") (message "New reference to existing note")) (org-footnote-define-inline @@ -459,51 +475,78 @@ or new, let the user edit the definition of the footnote." (org-footnote-create-definition label) (org-footnote-auto-adjust-maybe))))) +(defvar org-blank-before-new-entry nil) ; silence byte-compiler (defun org-footnote-create-definition (label) "Start the definition of a footnote with label LABEL." (interactive "sLabel: ") (let ((label (org-footnote-normalize-label label))) (cond - ((org-mode-p) - ;; No section, put footnote into the current outline node Try to - ;; find or make the special node + ;; In an Org file. + ((eq major-mode 'org-mode) + ;; If `org-footnote-section' is defined, find it, or create it + ;; at the end of the buffer. (when org-footnote-section (goto-char (point-min)) (let ((re (concat "^\\*+[ \t]+" org-footnote-section "[ \t]*$"))) (unless (or (re-search-forward re nil t) (and (progn (widen) t) (re-search-forward re nil t))) - (goto-char (point-max)) - (insert "\n\n* " org-footnote-section "\n")))) - ;; Now go to the end of this entry and insert there. + (goto-char (point-max)) + (skip-chars-backward " \t\r\n") + (unless (bolp) (newline)) + ;; Insert new section. Separate it from the previous one + ;; with a blank line, unless `org-blank-before-new-entry' + ;; explicitly says no. + (when (and (cdr (assq 'heading org-blank-before-new-entry)) + (zerop (save-excursion (org-back-over-empty-lines)))) + (insert "\n")) + (insert "* " org-footnote-section "\n")))) + ;; Move to the end of this entry (which may be + ;; `org-footnote-section' or the current one). (org-footnote-goto-local-insertion-point) (org-show-context 'link-search)) (t ;; In a non-Org file. Search for footnote tag, or create it if - ;; necessary (at the end of buffer, or before a signature if in + ;; specified (at the end of buffer, or before signature if in ;; Message mode). Set point after any definition already there. - (let ((tag (concat "^" org-footnote-tag-for-non-org-mode-files "[ \t]*$")) - (max (save-excursion - (if (and (derived-mode-p 'message-mode) - (re-search-forward - message-signature-separator nil t)) - (copy-marker (point-at-bol) t) - (copy-marker (point-max) t))))) + (let ((tag (and org-footnote-tag-for-non-org-mode-files + (concat "^" (regexp-quote + org-footnote-tag-for-non-org-mode-files) + "[ \t]*$"))) + (max (if (and (derived-mode-p 'message-mode) + (goto-char (point-max)) + (re-search-backward + message-signature-separator nil t)) + (progn + ;; Ensure one blank line separates last + ;; footnote from signature. + (beginning-of-line) + (open-line 2) + (point-marker)) + (point-max-marker)))) + (set-marker-insertion-type max t) (goto-char max) - (unless (re-search-backward tag nil t) + ;; Check if the footnote tag is defined but missing. In this + ;; case, insert it, before any footnote or one blank line + ;; after any previous text. + (when (and tag (not (re-search-backward tag nil t))) (skip-chars-backward " \t\r\n") - (delete-region (point) max) - (insert "\n\n" org-footnote-tag-for-non-org-mode-files "\n")) - ;; Skip existing footnotes. - (while (re-search-forward org-footnote-definition-re max t)) - (let ((def (org-footnote-at-definition-p))) - (when def (goto-char (nth 2 def)))) + (while (re-search-backward org-footnote-definition-re nil t)) + (unless (bolp) (newline 2)) + (insert org-footnote-tag-for-non-org-mode-files "\n\n")) + ;; Remove superfluous white space and clear marker. + (goto-char max) + (skip-chars-backward " \t\r\n") + (delete-region (point) max) + (unless (bolp) (newline)) (set-marker max nil)))) - ;; Insert footnote label, position point and notify user. - (unless (bolp) (insert "\n")) - (insert "\n[" label "] \n") - (backward-char) - (message "Edit definition and go back with `C-c &' or, if unique, with `C-c C-c'."))) + ;; Insert footnote label. + (insert "\n[" label "] ") + ;; Only notify user about next possible action when in an Org + ;; buffer, as the bindings may have different meanings otherwise. + (when (eq major-mode 'org-mode) + (message + "Edit definition and go back with `C-c &' or, if unique, with `C-c C-c'.")))) ;;;###autoload (defun org-footnote-action (&optional special) @@ -570,11 +613,11 @@ If Org is amidst an export process, EXPORT-PROPS will hold the export properties of the buffer. When EXPORT-PROPS is non-nil, the default action is to insert -normalized footnotes towards the end of the pre-processing buffer. -Some exporters like docbook, odt, etc. expect that footnote -definitions be available before any references to them. Such -exporters can let bind `org-footnote-insert-pos-for-preprocessor' to -symbol 'point-min to achieve the desired behavior. +normalized footnotes towards the end of the pre-processing +buffer. Some exporters (docbook, odt...) expect footnote +definitions to be available before any references to them. Such +exporters can let bind `org-footnote-insert-pos-for-preprocessor' +to symbol `point-min' to achieve the desired behaviour. Additional note on `org-footnote-insert-pos-for-preprocessor': 1. This variable has not effect when FOR-PREPROCESSOR is nil. @@ -634,8 +677,8 @@ Additional note on `org-footnote-insert-pos-for-preprocessor': (and inlinep org-footnote-fill-after-inline-note-extraction (org-fill-paragraph))) - ;; Add label (REF), identifier (MARKER) and definition (DEF) - ;; to REF-TABLE if data was unknown. + ;; Add label (REF), identifier (MARKER), definition (DEF) + ;; and type (INLINEP) to REF-TABLE if data was unknown. (unless a (let ((def (or (nth 3 ref) ; inline (and export-props @@ -646,52 +689,52 @@ Additional note on `org-footnote-insert-pos-for-preprocessor': ;; through `org-export-preprocess-string' so ;; it is ready to insert in the ;; backend-specific buffer. - (if export-props + (if (and export-props def) (let ((parameters (org-combine-plists export-props '(:todo-keywords t :tags t :priority t)))) (org-export-preprocess-string def parameters)) def) - inlinep) ref-table))) - ;; Remove definition of non-inlined footnotes. - (unless inlinep (org-footnote-delete-definitions lbl)))) + inlinep) ref-table))))) ;; 2. Find and remove the footnote section, if any. Also ;; determine where footnotes shall be inserted (INS-POINT). (goto-char (point-min)) (cond - ((org-mode-p) - (if (and org-footnote-section - (re-search-forward - (concat "^\\*[ \t]+" (regexp-quote org-footnote-section) - "[ \t]*$") - nil t)) - (progn - (setq ins-point (match-beginning 0)) - (delete-region (match-beginning 0) (org-end-of-subtree t))) - (setq ins-point (point-max)))) + ((and org-footnote-section + (eq major-mode 'org-mode) + (re-search-forward + (concat "^\\*[ \t]+" (regexp-quote org-footnote-section) + "[ \t]*$") + nil t)) + (delete-region (match-beginning 0) (org-end-of-subtree t))) + ((eq major-mode 'org-mode) + (goto-char (point-max)) + (unless (bolp) (newline))) (t - (when (re-search-forward - (concat "^" - (regexp-quote org-footnote-tag-for-non-org-mode-files) - "[ \t]*$") - nil t) - (replace-match "")) - ;; In message-mode, ensure footnotes are inserted before the + ;; Remove any left-over tag in the buffer, if one is set up. + (when org-footnote-tag-for-non-org-mode-files + (let ((tag (concat "^" (regexp-quote + org-footnote-tag-for-non-org-mode-files) + "[ \t]*$"))) + (while (re-search-forward tag nil t) + (replace-match "") + (delete-region (point) (progn (forward-line) (point)))))) + ;; In Message mode, ensure footnotes are inserted before the ;; signature. - (let ((pt-max - (or (and (derived-mode-p 'message-mode) - (save-excursion - (goto-char (point-max)) - (re-search-backward - message-signature-separator nil t) - (1- (point)))) - (point-max)))) - (goto-char pt-max) - (skip-chars-backward " \t\n\r") - (forward-line) - (delete-region (point) pt-max)) - (setq ins-point (point)))) + (if (and (derived-mode-p 'message-mode) + (goto-char (point-max)) + (re-search-backward message-signature-separator nil t)) + (beginning-of-line) + (goto-char (point-max))))) + ;; During export, `org-footnote-insert-pos-for-preprocessor' has + ;; precedence over previously found position. + (setq ins-point + (copy-marker + (if (and export-props + (eq org-footnote-insert-pos-for-preprocessor 'point-min)) + (point-min) + (point)))) ;; 3. Clean-up REF-TABLE. (setq ref-table (delq nil @@ -708,34 +751,48 @@ Additional note on `org-footnote-insert-pos-for-preprocessor': (t x))) ref-table))) (setq ref-table (nreverse ref-table)) - ;; 4. Insert the footnotes again in the buffer, at the + ;; 4. Remove left-over definitions in the buffer. + (mapc (lambda (x) (unless (nth 3 x) + (org-footnote-delete-definitions (car x)))) + ref-table) + ;; 5. Insert the footnotes again in the buffer, at the ;; appropriate spot. - (goto-char (or - (and export-props - (eq org-footnote-insert-pos-for-preprocessor 'point-min) - (point-min)) - ins-point - (point-max))) + (goto-char ins-point) (cond ;; No footnote: exit. ((not ref-table)) ;; Cases when footnotes should be inserted in one place. - ((or (not (org-mode-p)) + ((or (not (eq major-mode 'org-mode)) org-footnote-section (not sort-only)) - ;; Insert again the section title. + ;; Insert again the section title, if any. Ensure that title, + ;; or the subsequent footnotes, will be separated by a blank + ;; lines from the rest of the document. In an Org buffer, + ;; separate section with a blank line, unless explicitly + ;; stated in `org-blank-before-new-entry'. (cond - ((not (org-mode-p)) - (insert "\n\n" org-footnote-tag-for-non-org-mode-files "\n")) + ((not (eq major-mode 'org-mode)) + (skip-chars-backward " \t\n\r") + (delete-region (point) ins-point) + (unless (bolp) (newline)) + ;; Keep one blank line between footnotes and signature. + (when (and (derived-mode-p 'message-mode) + (save-excursion + (re-search-forward message-signature-separator nil t))) + (open-line 1)) + (when org-footnote-tag-for-non-org-mode-files + (insert "\n" org-footnote-tag-for-non-org-mode-files "\n"))) ((and org-footnote-section (not export-props)) - (or (bolp) (insert "\n")) + (when (and (cdr (assq 'heading org-blank-before-new-entry)) + (zerop (save-excursion (org-back-over-empty-lines)))) + (insert "\n")) (insert "* " org-footnote-section "\n"))) - ;; Insert the footnotes. - (insert "\n" - (mapconcat (lambda (x) (format "[%s] %s" + (set-marker ins-point nil) + ;; Insert the footnotes, separated by a blank line. + (insert (mapconcat (lambda (x) (format "\n[%s] %s" (nth (if sort-only 0 1) x) (nth 2 x))) - ref-table "\n\n") - "\n\n") + ref-table "\n")) + (unless (eobp) (insert "\n")) ;; When exporting, add newly inserted markers along with their ;; associated definition to `org-export-footnotes-seen'. (when export-props @@ -831,20 +888,21 @@ If LABEL is non-nil, delete that footnote instead." (defun org-footnote-renumber-fn:N () "Renumber the simple footnotes like fn:17 into a sequence in the document." (interactive) - (let (map i (n 0)) - (save-excursion - (save-restriction - (widen) - (goto-char (point-min)) - (while (re-search-forward "\\[fn:\\([0-9]+\\)[]:]" nil t) - (setq i (string-to-number (match-string 1))) - (when (and (string-match "\\S-" (buffer-substring - (point-at-bol) (match-beginning 0))) - (not (assq i map))) - (push (cons i (number-to-string (incf n))) map))) - (goto-char (point-min)) - (while (re-search-forward "\\(\\[fn:\\)\\([0-9]+\\)\\([]:]\\)" nil t) - (replace-match (concat "\\1" (cdr (assq (string-to-number (match-string 2)) map)) "\\3"))))))) + (let (map (n 0)) + (org-with-wide-buffer + (goto-char (point-min)) + (while (re-search-forward "\\[fn:\\([0-9]+\\)[]:]" nil t) + (save-excursion + (goto-char (match-beginning 0)) + ;; Ensure match is a footnote reference or definition. + (when (save-match-data (if (bolp) + (org-footnote-at-definition-p) + (org-footnote-at-reference-p))) + (let ((new-val (or (cdr (assoc (match-string 1) map)) + (number-to-string (incf n))))) + (unless (assoc (match-string 1) map) + (push (cons (match-string 1) new-val) map)) + (replace-match new-val nil nil nil 1)))))))) (defun org-footnote-auto-adjust-maybe () "Renumber and/or sort footnotes according to user settings." @@ -862,6 +920,4 @@ If LABEL is non-nil, delete that footnote instead." (provide 'org-footnote) - - ;;; org-footnote.el ends here diff --git a/lisp/org/org-freemind.el b/lisp/org/org-freemind.el index b01f6d9fa6e..8b774007206 100644 --- a/lisp/org/org-freemind.el +++ b/lisp/org/org-freemind.el @@ -1,11 +1,10 @@ ;;; org-freemind.el --- Export Org files to freemind -;; Copyright (C) 2009-2011 Free Software Foundation, Inc. +;; Copyright (C) 2009-2012 Free Software Foundation, Inc. ;; Author: Lennart Borgman (lennart O borgman A gmail O com) ;; Keywords: outlines, hypermedia, calendar, wp ;; Homepage: http://orgmode.org -;; Version: 7.7 ;; ;; This file is part of GNU Emacs. ;; @@ -1220,4 +1219,5 @@ PATH should be a list of steps, where each step has the form ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;;; org-freemind.el ends here diff --git a/lisp/org/org-gnus.el b/lisp/org/org-gnus.el index 0ccb66ca497..f0c64a0d765 100644 --- a/lisp/org/org-gnus.el +++ b/lisp/org/org-gnus.el @@ -1,12 +1,11 @@ ;;; org-gnus.el --- Support for links to Gnus groups and messages from within Org-mode -;; Copyright (C) 2004-2011 Free Software Foundation, Inc. +;; Copyright (C) 2004-2012 Free Software Foundation, Inc. ;; Author: Carsten Dominik <carsten at orgmode dot org> ;; Tassilo Horn <tassilo at member dot fsf dot org> ;; Keywords: outlines, hypermedia, calendar, wp ;; Homepage: http://orgmode.org -;; Version: 7.7 ;; ;; This file is part of GNU Emacs. ;; @@ -176,7 +175,7 @@ If `org-store-link' was called with a prefix arg the meaning of (setq to (or to (gnus-fetch-original-field "To")) newsgroups (gnus-fetch-original-field "Newsgroups") x-no-archive (gnus-fetch-original-field "x-no-archive"))) - (org-store-link-props :type "gnus" :from from :subject subject + (org-store-link-props :type "gnus" :from from :subject subject :message-id message-id :group group :to to) (when date (org-add-link-props :date date :date-timestamp date-ts @@ -291,5 +290,4 @@ If `org-store-link' was called with a prefix arg the meaning of (provide 'org-gnus) - ;;; org-gnus.el ends here diff --git a/lisp/org/org-habit.el b/lisp/org/org-habit.el index c146a5bebbd..67f87797cb1 100644 --- a/lisp/org/org-habit.el +++ b/lisp/org/org-habit.el @@ -1,11 +1,10 @@ ;;; org-habit.el --- The habit tracking code for Org-mode -;; Copyright (C) 2009-2011 Free Software Foundation, Inc. +;; Copyright (C) 2009-2012 Free Software Foundation, Inc. ;; Author: John Wiegley <johnw at gnu dot org> ;; Keywords: outlines, hypermedia, calendar, wp ;; Homepage: http://orgmode.org -;; Version: 7.7 ;; ;; This file is part of GNU Emacs. ;; @@ -68,6 +67,16 @@ relative to the current effective date." :group 'org-habit :type 'boolean) +(defcustom org-habit-today-glyph ?! + "Glyph character used to identify today." + :group 'org-habit + :type 'character) + +(defcustom org-habit-completed-glyph ?* + "Glyph character used to show completed days on which a task was done." + :group 'org-habit + :type 'character) + (defface org-habit-clear-face '((((background light)) (:background "#8270f9")) (((background dark)) (:background "blue"))) @@ -297,7 +306,7 @@ current time." (days-to-time (- start (time-to-days starting)))))) - (aset graph index ?*) + (aset graph index org-habit-completed-glyph) (setq markedp t) (put-text-property index (1+ index) 'help-echo @@ -307,7 +316,7 @@ current time." (setq last-done-date (car done-dates) done-dates (cdr done-dates)))) (if todayp - (aset graph index ?!))) + (aset graph index org-habit-today-glyph))) (setq face (if (or in-the-past-p todayp) (car faces) (cdr faces))) @@ -358,6 +367,4 @@ current time." (provide 'org-habit) - - ;;; org-habit.el ends here diff --git a/lisp/org/org-html.el b/lisp/org/org-html.el index 46126ce2573..82fdd507b03 100644 --- a/lisp/org/org-html.el +++ b/lisp/org/org-html.el @@ -1,11 +1,10 @@ ;;; org-html.el --- HTML export for Org-mode -;; Copyright (C) 2004-2011 Free Software Foundation, Inc. +;; Copyright (C) 2004-2012 Free Software Foundation, Inc. ;; Author: Carsten Dominik <carsten at orgmode dot org> ;; Keywords: outlines, hypermedia, calendar, wp ;; Homepage: http://orgmode.org -;; Version: 7.7 ;; ;; This file is part of GNU Emacs. ;; @@ -34,6 +33,8 @@ (declare-function org-id-find-id-file "org-id" (id)) (declare-function htmlize-region "ext:htmlize" (beg end)) +(declare-function org-pop-to-buffer-same-window + "org-compat" (&optional buffer-or-name norecord label)) (defgroup org-export-html nil "Options specific for HTML export of Org-mode files." @@ -155,6 +156,12 @@ not be modified." dt { font-weight: bold; } div.figure { padding: 0.5em; } div.figure p { text-align: center; } + div.inlinetask { + padding:10px; + border:2px solid gray; + margin:10px; + background: #ffffcc; + } textarea { overflow-x: auto; } .linenr { font-size:smaller } .code-highlighted {background-color:#ffff00;} @@ -348,6 +355,14 @@ CSS classes, then this prefix can be very useful." :group 'org-export-html :type 'string) +(defcustom org-export-html-headline-anchor-format "<a name=\"%s\" id=\"%s\"></a>" + "Format for anchors in HTML headlines. +It requires to %s: both will be replaced by the anchor referring +to the headline (e.g. \"sec-2\"). When set to `nil', don't insert +HTML anchors in headlines." + :group 'org-export-html + :type 'string) + (defcustom org-export-html-preamble t "Non-nil means insert a preamble in HTML export. @@ -355,8 +370,8 @@ When `t', insert a string as defined by one of the formatting strings in `org-export-html-preamble-format'. When set to a string, this string overrides `org-export-html-preamble-format'. When set to a function, apply this function and insert the -returned string. The function takes the property list of export -options as its only argument. +returned string. The function takes no argument, but you can +use `opt-plist' to access the current export options. Setting :html-preamble in publishing projects will take precedence over this variable." @@ -388,8 +403,8 @@ string overrides `org-export-html-postamble-format'. When set to 'auto, discard `org-export-html-postamble-format' and honor `org-export-author/email/creator-info' variables. When set to a function, apply this function and insert the returned string. -The function takes the property list of export options as its -only argument. +The function takes no argument, but you can use `opt-plist' to +access the current export options. Setting :html-postamble in publishing projects will take precedence over this variable." @@ -619,7 +634,10 @@ This variable is obsolete since Org version 7.7. Please set `org-export-html-divs' instead.") (defcustom org-export-html-divs '("preamble" "content" "postamble") - "The name of the main divs for HTML export." + "The name of the main divs for HTML export. +This is a list of three strings, the first one for the preamble +DIV, the second one for the content DIV and the third one for the +postamble DIV." :group 'org-export-html :type '(list (string :tag " Div for the preamble:") @@ -703,7 +721,7 @@ command to convert it." (interactive "r") (let (reg html buf pop-up-frames) (save-window-excursion - (if (org-mode-p) + (if (eq major-mode 'org-mode) (setq html (org-export-region-as-html beg end t 'string)) (setq reg (buffer-substring beg end) @@ -801,11 +819,11 @@ description. See variables `org-export-html-inline-images' and may-inline-p) "Make an HTML link. OPT-PLIST is an options list. -TYPE is the device-type of the link (THIS://foo.html) -PATH is the path of the link (http://THIS#locationx) -FRAGMENT is the fragment part of the link, if any (foo.html#THIS) +TYPE is the device-type of the link (THIS://foo.html). +PATH is the path of the link (http://THIS#location). +FRAGMENT is the fragment part of the link, if any (foo.html#THIS). DESC is the link description, if any. -ATTR is a string of other attributes of the a element. +ATTR is a string of other attributes of the \"a\" element. MAY-INLINE-P allows inlining it as an image." (declare (special org-par-open)) @@ -896,7 +914,7 @@ OPT-PLIST is the export options list." (string-match "^\\.\\.?/" path))) "file") (t "internal"))) - (setq path (org-extract-attributes (org-link-unescape path))) + (setq path (org-extract-attributes path)) (setq attr (get-text-property 0 'org-attributes path)) (setq desc1 (if (match-end 5) (match-string 5 line)) desc2 (if (match-end 2) (concat type ":" path) path) @@ -909,7 +927,7 @@ OPT-PLIST is the export options list." (if (string-match "^file:" desc) (setq desc (substring desc (match-end 0))))) (setq desc (org-add-props - (concat "<img src=\"" desc "\" alt=\"" + (concat "<img src=\"" desc "\" alt=\"" (file-name-nondirectory desc) "\"/>") '(org-protected t)))) (cond @@ -1036,14 +1054,17 @@ OPT-PLIST is the export options list." (t ;; just publish the path, as default - (setq rpl (concat "@<i><" type ":" + (setq rpl (concat "<i><" type ":" (save-match-data (org-link-unescape path)) - ">@</i>")))) + "></i>")))) (setq line (replace-match rpl t t line) start (+ start (length rpl)))) line)) ;;; org-export-as-html + +(defvar org-heading-keyword-regexp-format) ; defined in org.el + ;;;###autoload (defun org-export-as-html (arg &optional hidden ext-plist to-buffer body-only pub-dir) @@ -1137,14 +1158,15 @@ PUB-DIR is set, use this as the publishing directory." (current-dir (if buffer-file-name (file-name-directory buffer-file-name) default-directory)) + (auto-insert nil); Avoid any auto-insert stuff for the new file (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 (plist-get opt-plist :date)) - (author (plist-get opt-plist :author)) + (date (org-html-expand (plist-get opt-plist :date))) + (author (org-html-expand (plist-get opt-plist :author))) (html-validation-link (or org-export-html-validation-link "")) (title (org-html-expand (or (and subtree-p (org-export-get-title-from-subtree)) @@ -1165,15 +1187,16 @@ PUB-DIR is set, use this as the publishing directory." (plist-get opt-plist :link-home))) (dummy (setq opt-plist (plist-put opt-plist :title title))) (html-table-tag (plist-get opt-plist :html-table-tag)) - (quote-re0 (concat "^[ \t]*" org-quote-string "\\>")) - (quote-re (concat "^\\(\\*+\\)\\([ \t]+" org-quote-string "\\>\\)")) + (quote-re0 (concat "^ *" org-quote-string "\\( +\\|[ \t]*$\\)")) + (quote-re (format org-heading-keyword-regexp-format + org-quote-string)) (inquote nil) (infixed nil) (inverse nil) (email (plist-get opt-plist :email)) (language (plist-get opt-plist :language)) - (keywords (plist-get opt-plist :keywords)) - (description (plist-get opt-plist :description)) + (keywords (org-html-expand (plist-get opt-plist :keywords))) + (description (org-html-expand (plist-get opt-plist :description))) (num (plist-get opt-plist :section-numbers)) (lang-words nil) (head-count 0) cnt @@ -1287,11 +1310,11 @@ PUB-DIR is set, use this as the publishing directory." "%s <!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\"> +<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"%s\" xml:lang=\"%s\"> <head> <title>%s</title> <meta http-equiv=\"Content-Type\" content=\"text/html;charset=%s\"/> +<meta name=\"title\" content=\"%s\"/> <meta name=\"generator\" content=\"Org-mode\"/> <meta name=\"generated\" content=\"%s\"/> <meta name=\"author\" content=\"%s\"/> @@ -1314,7 +1337,7 @@ lang=\"%s\" xml:lang=\"%s\"> language language title (or charset "iso-8859-1") - date author description keywords + title date author description keywords style mathjax (if (or link-up link-home) @@ -1327,28 +1350,35 @@ lang=\"%s\" xml:lang=\"%s\"> ;; insert html preamble (when (plist-get opt-plist :html-preamble) - (let ((html-pre (plist-get opt-plist :html-preamble))) - (insert "<div id=\"" (nth 0 org-export-html-divs) "\">\n") + (let ((html-pre (plist-get opt-plist :html-preamble)) + html-pre-real-contents) (cond ((stringp html-pre) - (insert - (format-spec html-pre `((?t . ,title) (?a . ,author) - (?d . ,date) (?e . ,email))))) + (setq html-pre-real-contents + (format-spec html-pre `((?t . ,title) (?a . ,author) + (?d . ,date) (?e . ,email))))) ((functionp html-pre) - (funcall html-pre)) + (insert "<div id=\"" (nth 0 org-export-html-divs) "\">\n") + (if (stringp (funcall html-pre)) (insert (funcall html-pre))) + (insert "\n</div>\n")) (t - (insert + (setq html-pre-real-contents (format-spec (or (cadr (assoc (nth 0 lang-words) org-export-html-preamble-format)) (cadr (assoc "en" org-export-html-preamble-format))) `((?t . ,title) (?a . ,author) (?d . ,date) (?e . ,email)))))) - (insert "\n</div>\n"))) + ;; don't output an empty preamble DIV + (unless (and (functionp html-pre) + (equal html-pre-real-contents "")) + (insert "<div id=\"" (nth 0 org-export-html-divs) "\">\n") + (insert html-pre-real-contents) + (insert "\n</div>\n")))) ;; begin wrap around body - (insert (format "\n<div id=\"%s\">" + (insert (format "\n<div id=\"%s\">" ;; FIXME org-export-html-content-div is obsolete since 7.7 - (or org-export-html-content-div + (or org-export-html-content-div (nth 1 org-export-html-divs))) ;; FIXME this should go in the preamble but is here so ;; that org-infojs can still find it @@ -1365,7 +1395,7 @@ lang=\"%s\" xml:lang=\"%s\"> (push "<div id=\"text-table-of-contents\">\n" thetoc) (push "<ul>\n<li>" thetoc) (setq lines - (mapcar + (mapcar #'(lambda (line) (if (and (string-match org-todo-line-regexp line) (not (get-text-property 0 'org-protected line))) @@ -1391,7 +1421,7 @@ lang=\"%s\" xml:lang=\"%s\"> line lines level)))) (if (string-match (org-re "[ \t]+:\\([[:alnum:]_@:]+\\):[ \t]*$") txt) - (setq txt (replace-match + (setq txt (replace-match " <span class=\"tag\"> \\1</span>" t nil txt))) (if (string-match quote-re0 txt) (setq txt (replace-match "" t t txt))) @@ -1419,7 +1449,7 @@ lang=\"%s\" xml:lang=\"%s\"> ;; Check for targets (while (string-match org-any-target-regexp line) (setq line (replace-match - (concat "@<span class=\"target\">" + (concat "@<span class=\"target\">" (match-string 1 line) "@</span> ") t t line))) (while (string-match "<\\(<\\)+\\|>\\(>\\)+" txt) @@ -1427,8 +1457,8 @@ lang=\"%s\" xml:lang=\"%s\"> (setq href (replace-regexp-in-string "\\." "-" (format "sec-%s" snumber))) - (setq href (org-solidify-link-text - (or (cdr (assoc href + (setq href (org-solidify-link-text + (or (cdr (assoc href org-export-preferred-target-alist)) href))) (push (format @@ -1436,7 +1466,7 @@ lang=\"%s\" xml:lang=\"%s\"> "</li>\n<li><a href=\"#%s\"><span class=\"todo\">%s</span></a>" "</li>\n<li><a href=\"#%s\">%s</a>") href txt) thetoc) - + (setq org-last-level level))))) line) lines)) @@ -1445,15 +1475,15 @@ lang=\"%s\" xml:lang=\"%s\"> (push "</li>\n</ul>\n" thetoc)) (push "</div>\n" thetoc) (setq thetoc (if have-headings (nreverse thetoc) nil)))) - + (setq head-count 0) (org-init-section-numbers) - + (org-open-par) - + (while (setq line (pop lines) origline line) (catch 'nextline - + ;; end of quote section? (when (and inquote (string-match org-outline-regexp-bol line)) (insert "</pre>\n") @@ -1588,7 +1618,8 @@ lang=\"%s\" xml:lang=\"%s\"> (setq line (org-html-handle-links line opt-plist)) ;; TODO items - (if (and (string-match org-todo-line-regexp line) + (if (and org-todo-line-regexp + (string-match org-todo-line-regexp line) (match-beginning 2)) (setq line @@ -1597,9 +1628,9 @@ lang=\"%s\" xml:lang=\"%s\"> (if (member (match-string 2 line) org-done-keywords) "done" "todo") - " " (match-string 2 line) - "\"> " (org-export-html-get-todo-kwd-class-name - (match-string 2 line)) + " " (org-export-html-get-todo-kwd-class-name + (match-string 2 line)) + "\"> " (match-string 2 line) "</span>" (substring line (match-end 2))))) ;; Does this contain a reference to a footnote? @@ -1636,7 +1667,7 @@ lang=\"%s\" xml:lang=\"%s\"> t t line)))))) (cond - ((string-match "^\\(\\*+\\)[ \t]+\\(.*\\)" line) + ((string-match "^\\(\\*+\\)\\(?: +\\(.*?\\)\\)?[ \t]*$" line) ;; This is a headline (setq level (org-tr-level (- (match-end 1) (match-beginning 1) level-offset)) @@ -1785,7 +1816,7 @@ lang=\"%s\" xml:lang=\"%s\"> (?d . ,date) (?c . ,creator-info) (?v . ,html-validation-link))))) ((functionp html-post) - (funcall html-post)) + (if (stringp (funcall html-post)) (insert (funcall html-post)))) ((eq html-post 'auto) ;; fall back on default postamble (when (plist-get opt-plist :time-stamp-file) @@ -1808,7 +1839,7 @@ lang=\"%s\" xml:lang=\"%s\"> (?d . ,date) (?c . ,creator-info) (?v . ,html-validation-link)))))) (insert "\n</div>")))) - + ;; FIXME `org-export-html-with-timestamp' has been declared ;; obsolete since Org 7.7 -- don't forget to remove this. (if org-export-html-with-timestamp @@ -1941,7 +1972,7 @@ NO-CSS is passed to the exporter." (if (string-match "^[ \t]*|" (car lines)) ;; A normal org table (org-format-org-table-html lines nil no-css) - ;; Table made by table.el + ;; Table made by table.el (or (org-format-table-table-html-using-table-generate-source olines (not org-export-prefer-native-exporter-for-tables)) ;; We are here only when table.el table has NO col or row @@ -1969,8 +2000,8 @@ for formatting. This is required for the DocBook exporter." (let* ((caption (org-find-text-property-in-string 'org-caption (car lines))) (label (org-find-text-property-in-string 'org-label (car lines))) - (forced-aligns (org-find-text-property-in-string 'org-forced-aligns - (car lines))) + (col-cookies (org-find-text-property-in-string 'org-col-cookies + (car lines))) (attributes (org-find-text-property-in-string 'org-attributes (car lines))) (html-table-tag (org-export-splice-attributes @@ -1983,9 +2014,9 @@ for formatting. This is required for the DocBook exporter." tbopen line fields html gr colgropen rowstart rowend ali align aligns n) (setq caption (and caption (org-html-do-expand caption))) - (when (and forced-aligns org-table-clean-did-remove-column) - (setq forced-aligns - (mapcar (lambda (x) (cons (1- (car x)) (cdr x))) forced-aligns))) + (when (and col-cookies org-table-clean-did-remove-column) + (setq col-cookies + (mapcar (lambda (x) (cons (1- (car x)) (cdr x))) col-cookies))) (if splice (setq head nil)) (unless splice (push (if head "<thead>" "<tbody>") html)) (setq tbopen t) @@ -2046,8 +2077,8 @@ for formatting. This is required for the DocBook exporter." (lambda (x) (setq gr (pop org-table-colgroup-info) i (1+ i) - align (if (assoc i forced-aligns) - (cdr (assoc (cdr (assoc i forced-aligns)) + align (if (nth 1 (assoc i col-cookies)) + (cdr (assoc (nth 1 (assoc i col-cookies)) '(("l" . "left") ("r" . "right") ("c" . "center")))) (if (> (/ (float x) nline) @@ -2203,19 +2234,20 @@ for further information." "Format time stamps in string S, or remove them." (catch 'exit (let (r b) - (while (string-match org-maybe-keyword-time-regexp s) - (or b (setq b (substring s 0 (match-beginning 0)))) - (setq r (concat - r (substring s 0 (match-beginning 0)) - " @<span class=\"timestamp-wrapper\">" - (if (match-end 1) - (format "@<span class=\"timestamp-kwd\">%s @</span>" - (match-string 1 s))) - (format " @<span class=\"timestamp\">%s@</span>" - (substring - (org-translate-time (match-string 3 s)) 1 -1)) - "@</span>") - s (substring s (match-end 0)))) + (when org-maybe-keyword-time-regexp + (while (string-match org-maybe-keyword-time-regexp s) + (or b (setq b (substring s 0 (match-beginning 0)))) + (setq r (concat + r (substring s 0 (match-beginning 0)) + " @<span class=\"timestamp-wrapper\">" + (if (match-end 1) + (format "@<span class=\"timestamp-kwd\">%s @</span>" + (match-string 1 s))) + (format " @<span class=\"timestamp\">%s@</span>" + (substring + (org-translate-time (match-string 3 s)) 1 -1)) + "@</span>") + s (substring s (match-end 0))))) ;; Line break if line started and ended with time stamp stuff (if (not r) s @@ -2263,7 +2295,7 @@ that uses these same face definitions." (when (and (symbolp f) (or (not i) (not (listp i)))) (insert (org-add-props (copy-sequence "1") nil 'face f)))) (htmlize-region (point-min) (point-max)))) - (switch-to-buffer "*html*") + (org-pop-to-buffer-same-window "*html*") (goto-char (point-min)) (if (re-search-forward "<style" nil t) (delete-region (point-min) (match-beginning 0))) @@ -2286,18 +2318,20 @@ Possible conversions are set in `org-export-html-protect-char-alist'." (defun org-html-expand (string) "Prepare STRING for HTML export. Apply all active conversions. -If there are links in the string, don't modify these." - (let* ((re (concat org-bracket-link-regexp "\\|" - (org-re "[ \t]+\\(:[[:alnum:]_@#%:]+:\\)[ \t]*$"))) - m s l res) - (while (setq m (string-match re string)) - (setq s (substring string 0 m) - l (match-string 0 string) - string (substring string (match-end 0))) - (push (org-html-do-expand s) res) +If there are links in the string, don't modify these. If STRING +is nil, return nil." + (when string + (let* ((re (concat org-bracket-link-regexp "\\|" + (org-re "[ \t]+\\(:[[:alnum:]_@#%:]+:\\)[ \t]*$"))) + m s l res) + (while (setq m (string-match re string)) + (setq s (substring string 0 m) + l (match-string 0 string) + string (substring string (match-end 0))) + (push (org-html-do-expand s) res) (push l res)) - (push (org-html-do-expand string) res) - (apply 'concat (nreverse res)))) + (push (org-html-do-expand string) res) + (apply 'concat (nreverse res))))) (defun org-html-do-expand (s) "Apply all active conversions to translate special ASCII to HTML." @@ -2412,8 +2446,9 @@ When TITLE is nil, just close all open levels." (mapconcat (lambda (x) (setq x (org-solidify-link-text (if (org-uuidgen-p x) (concat "ID-" x) x))) - (format "<a name=\"%s\" id=\"%s\"></a>" - x x)) + (if (stringp org-export-html-headline-anchor-format) + (format org-export-html-headline-anchor-format x x) + "")) extra-targets "")) (while (>= l level) @@ -2604,5 +2639,4 @@ the alist of previous items." (provide 'org-html) - ;;; org-html.el ends here diff --git a/lisp/org/org-icalendar.el b/lisp/org/org-icalendar.el index 8a2d66306f3..29f6c74c529 100644 --- a/lisp/org/org-icalendar.el +++ b/lisp/org/org-icalendar.el @@ -1,11 +1,10 @@ ;;; org-icalendar.el --- iCalendar export for Org-mode -;; Copyright (C) 2004-2011 Free Software Foundation, Inc. +;; Copyright (C) 2004-2012 Free Software Foundation, Inc. ;; Author: Carsten Dominik <carsten at orgmode dot org> ;; Keywords: outlines, hypermedia, calendar, wp ;; Homepage: http://orgmode.org -;; Version: 7.7 ;; ;; This file is part of GNU Emacs. ;; @@ -204,7 +203,7 @@ When nil of the empty string, use the abbreviation retrieved from Emacs." (if org-icalendar-use-UTC-date-time ":%Y%m%dT%H%M%SZ" ":%Y%m%dT%H%M%S") - "Format-string for exporting iCalendar DATE-TIME. + "Format-string for exporting icalendar DATE-TIME. See `format-time-string' for a full documentation. The only difference is that `org-icalendar-timezone' is used for %Z. @@ -418,7 +417,7 @@ When COMBINE is non nil, add the category to each line." (let ((t1 (ignore-errors (org-parse-time-string ts 'nodefault)))) (if (and (> org-icalendar-alarm-time 0) (car t1) (nth 1 t1) (nth 2 t1)) - (setq alarm (format "\nBEGIN:VALARM\nACTION:DISPLAY\nDESCRIPTION:%s\nTRIGGER:-P0D0H%dM0S\nEND:VALARM" summary org-icalendar-alarm-time)) + (setq alarm (format "\nBEGIN:VALARM\nACTION:DISPLAY\nDESCRIPTION:%s\nTRIGGER:-P0DT0H%dM0S\nEND:VALARM" summary org-icalendar-alarm-time)) (setq alarm "")) ) (if (string-match org-bracket-link-regexp summary) @@ -684,5 +683,4 @@ a time), or the day by one (if it does not contain a time)." (provide 'org-icalendar) - ;;; org-icalendar.el ends here diff --git a/lisp/org/org-id.el b/lisp/org/org-id.el index c2d5cf0f25b..55e826f3ae6 100644 --- a/lisp/org/org-id.el +++ b/lisp/org/org-id.el @@ -1,11 +1,10 @@ ;;; org-id.el --- Global identifiers for Org-mode entries ;; -;; Copyright (C) 2008-2011 Free Software Foundation, Inc. +;; Copyright (C) 2008-2012 Free Software Foundation, Inc. ;; ;; Author: Carsten Dominik <carsten at orgmode dot org> ;; Keywords: outlines, hypermedia, calendar, wp ;; Homepage: http://orgmode.org -;; Version: 7.7 ;; ;; This file is part of GNU Emacs. ;; @@ -74,6 +73,8 @@ (require 'org) (declare-function message-make-fqdn "message" ()) +(declare-function org-pop-to-buffer-same-window + "org-compat" (&optional buffer-or-name norecord label)) ;;; Customization @@ -253,7 +254,7 @@ Move the cursor to that entry in that buffer." (let ((m (org-id-find id 'marker))) (unless m (error "Cannot find entry with ID \"%s\"" id)) - (switch-to-buffer (marker-buffer m)) + (org-pop-to-buffer-same-window (marker-buffer m)) (goto-char m) (move-marker m nil) (org-show-context))) @@ -430,7 +431,7 @@ When CHECK is given, prepare detailed information about duplicate IDs." (delq nil (mapcar (lambda (b) (with-current-buffer b - (and (org-mode-p) (buffer-file-name)))) + (and (eq major-mode 'org-mode) (buffer-file-name)))) (buffer-list))) ;; All files known to have IDs org-id-files))) @@ -599,7 +600,7 @@ optional argument MARKERP, return the position as a new marker." (defun org-id-store-link () "Store a link to the current entry, using its ID." (interactive) - (when (and (buffer-file-name (buffer-base-buffer)) (org-mode-p)) + (when (and (buffer-file-name (buffer-base-buffer)) (eq major-mode 'org-mode)) (let* ((link (org-make-link "id:" (org-id-get-create))) (case-fold-search nil) (desc (save-excursion @@ -640,7 +641,3 @@ optional argument MARKERP, return the position as a new marker." (provide 'org-id) ;;; org-id.el ends here - - - - diff --git a/lisp/org/org-indent.el b/lisp/org/org-indent.el index a2099a4bde3..ae0c91eaedf 100644 --- a/lisp/org/org-indent.el +++ b/lisp/org/org-indent.el @@ -1,10 +1,9 @@ ;;; org-indent.el --- Dynamic indentation for Org-mode -;; Copyright (C) 2009-2011 Free Software Foundation, Inc. +;; Copyright (C) 2009-2012 Free Software Foundation, Inc. ;; ;; Author: Carsten Dominik <carsten at orgmode dot org> ;; Keywords: outlines, hypermedia, calendar, wp ;; Homepage: http://orgmode.org -;; Version: 7.7 ;; ;; This file is part of GNU Emacs. ;; @@ -28,7 +27,12 @@ ;; This is an implementation of dynamic virtual indentation. It works ;; by adding text properties to a buffer to make sure lines are ;; indented according to outline structure. - +;; +;; The process is synchronous, toggled at every buffer modification. +;; Though, the initialization (indentation of text already in the +;; buffer), which can take a few seconds in large buffers, happens on +;; idle time. +;; ;;; Code: (require 'org-macs) @@ -38,9 +42,9 @@ (eval-when-compile (require 'cl)) -(defvar org-inlinetask-min-level) (declare-function org-inlinetask-get-task-level "org-inlinetask" ()) (declare-function org-inlinetask-in-task-p "org-inlinetask" ()) +(declare-function org-list-item-body-column "org-list" (item)) (defgroup org-indent nil "Options concerning dynamic virtual outline indentation." @@ -49,8 +53,11 @@ (defconst org-indent-max 40 "Maximum indentation in characters.") -(defconst org-indent-max-levels 40 - "Maximum indentation in characters.") +(defconst org-indent-max-levels 20 + "Maximum added level through virtual indentation, in characters. + +It is computed by multiplying `org-indent-indentation-per-level' +minus one by actual level of the headline minus one.") (defvar org-indent-strings nil "Vector with all indentation strings. @@ -58,8 +65,31 @@ It will be set in `org-indent-initialize'.") (defvar org-indent-stars nil "Vector with all indentation star strings. It will be set in `org-indent-initialize'.") +(defvar org-indent-inlinetask-first-star (org-add-props "*" '(face org-warning)) + "First star of inline tasks, with correct face.") +(defvar org-indent-agent-timer nil + "Timer running the initialize agent.") +(defvar org-indent-agentized-buffers nil + "List of buffers watched by the initialize agent.") +(defvar org-indent-agent-resume-timer nil + "Timer to reschedule agent after switching to other idle processes.") +(defvar org-indent-agent-active-delay '(0 2 0) + "Time to run agent before switching to other idle processes. +Delay used when the buffer to initialize is current.") +(defvar org-indent-agent-passive-delay '(0 0 400000) + "Time to run agent before switching to other idle processes. +Delay used when the buffer to initialize isn't current.") +(defvar org-indent-agent-resume-delay '(0 0 100000) + "Minimal time for other idle processes before switching back to agent.") +(defvar org-indent-initial-marker nil + "Position of initialization before interrupt. +This is used locally in each buffer being initialized.") (defvar org-hide-leading-stars-before-indent-mode nil "Used locally.") +(defvar org-indent-modified-headline-flag nil + "Non-nil means the last deletion operated on an headline. +It is modified by `org-indent-notify-modified-headline'.") + (defcustom org-indent-boundary-char ?\ ; comment to protect space char "The end of the virtual indentation strings, a single-character string. @@ -90,28 +120,15 @@ turn on `org-hide-leading-stars'." :group 'org-indent :type 'integer) -(defcustom org-indent-fix-section-after-idle-time 0.2 - "Seconds of idle time before fixing virtual indentation of section. -The hooking-in of virtual indentation is not yet perfect. Occasionally, -a change does not trigger to proper change of indentation. For this we -have a timer action that fixes indentation in the current section after -a short amount idle time. If we ever get the integration to work perfectly, -this variable can be set to nil to get rid of the timer." - :group 'org-indent - :type '(choice - (const "Do not install idle timer" nil) - (number :tag "Idle time"))) +(defface org-indent + (org-compatible-face nil nil) + "Face for outline indentation. +The default is to make it look like whitespace. But you may find it +useful to make it ever so slightly different." + :group 'org-faces) (defun org-indent-initialize () - "Initialize the indentation strings and set the idle timer." - ;; We use an idle timer to "repair" the current section, because the - ;; redisplay seems to have some problems. - (unless org-indent-strings - (when org-indent-fix-section-after-idle-time - (run-with-idle-timer - org-indent-fix-section-after-idle-time - t 'org-indent-refresh-section))) - ;; Initialize the indentation and star vectors + "Initialize the indentation strings." (setq org-indent-strings (make-vector (1+ org-indent-max) nil)) (setq org-indent-stars (make-vector (1+ org-indent-max) nil)) (aset org-indent-strings 0 nil) @@ -127,14 +144,21 @@ this variable can be set to nil to get rid of the timer." (org-add-props (make-string i ?*) nil 'face 'org-hide)))) +(defsubst org-indent-remove-properties (beg end) + "Remove indentations between BEG and END." + (with-silent-modifications + (remove-text-properties beg end '(line-prefix nil wrap-prefix nil)))) + ;;;###autoload (define-minor-mode org-indent-mode "When active, indent text according to outline structure. -Internally this works by adding `line-prefix' properties to all non-headlines. -These properties are updated locally in idle time. -FIXME: How to update when broken?" - nil " Ind" nil +Internally this works by adding `line-prefix' and `wrap-prefix' +properties, after each buffer modification, on the modified zone. + +The process is synchronous. Though, initial indentation of +buffer, which can take a few seconds on large buffers, is done +during idle time." nil " Ind" nil (cond ((org-bound-and-true-p org-inhibit-startup) (setq org-indent-mode nil)) @@ -151,6 +175,7 @@ FIXME: How to update when broken?" ;; mode was turned on. (org-set-local 'indent-tabs-mode nil) (or org-indent-strings (org-indent-initialize)) + (org-set-local 'org-indent-initial-marker (copy-marker 1)) (when org-indent-mode-turns-off-org-adapt-indentation (org-set-local 'org-adapt-indentation nil)) (when org-indent-mode-turns-on-hiding-stars @@ -160,56 +185,49 @@ FIXME: How to update when broken?" (make-local-variable 'buffer-substring-filters) (add-to-list 'buffer-substring-filters 'org-indent-remove-properties-from-string) - (org-add-hook 'org-after-demote-entry-hook - 'org-indent-refresh-section nil 'local) - (org-add-hook 'org-after-promote-entry-hook - 'org-indent-refresh-section nil 'local) - (org-add-hook 'org-font-lock-hook - 'org-indent-refresh-to nil 'local) + (org-add-hook 'after-change-functions 'org-indent-refresh-maybe nil 'local) + (org-add-hook 'before-change-functions + 'org-indent-notify-modified-headline nil 'local) (and font-lock-mode (org-restart-font-lock)) - ) + (org-indent-remove-properties (point-min) (point-max)) + ;; Submit current buffer to initialize agent. If it's the first + ;; buffer submitted, also start the agent. Current buffer is + ;; pushed in both cases to avoid a race condition. + (if org-indent-agentized-buffers + (push (current-buffer) org-indent-agentized-buffers) + (push (current-buffer) org-indent-agentized-buffers) + (setq org-indent-agent-timer + (run-with-idle-timer 0.2 t #'org-indent-initialize-agent)))) (t ;; mode was turned off (or we refused to turn it on) - (save-excursion - (save-restriction - (org-indent-remove-properties (point-min) (point-max)) - (kill-local-variable 'org-adapt-indentation) - (when (boundp 'org-hide-leading-stars-before-indent-mode) - (org-set-local 'org-hide-leading-stars - org-hide-leading-stars-before-indent-mode)) - (setq buffer-substring-filters - (delq 'org-indent-remove-properties-from-string - buffer-substring-filters)) - (remove-hook 'org-after-promote-entry-hook - 'org-indent-refresh-section 'local) - (remove-hook 'org-after-demote-entry-hook - 'org-indent-refresh-section 'local) - (and font-lock-mode (org-restart-font-lock)) - (redraw-display)))))) - - -(defface org-indent - (org-compatible-face nil nil) - "Face for outline indentation. -The default is to make it look like whitespace. But you may find it -useful to make it ever so slightly different." - :group 'org-faces) + (kill-local-variable 'org-adapt-indentation) + (setq org-indent-agentized-buffers + (delq (current-buffer) org-indent-agentized-buffers)) + (when (markerp org-indent-initial-marker) + (set-marker org-indent-initial-marker nil)) + (when (boundp 'org-hide-leading-stars-before-indent-mode) + (org-set-local 'org-hide-leading-stars + org-hide-leading-stars-before-indent-mode)) + (setq buffer-substring-filters + (delq 'org-indent-remove-properties-from-string + buffer-substring-filters)) + (remove-hook 'after-change-functions 'org-indent-refresh-maybe 'local) + (remove-hook 'before-change-functions + 'org-indent-notify-modified-headline 'local) + (org-with-wide-buffer + (org-indent-remove-properties (point-min) (point-max))) + (and font-lock-mode (org-restart-font-lock)) + (redraw-display)))) (defun org-indent-indent-buffer () - "Add indentation properties for the whole buffer." + "Add indentation properties to the accessible part of the buffer." (interactive) - (when org-indent-mode - (save-excursion - (save-restriction - (widen) - (org-indent-remove-properties (point-min) (point-max)) - (org-indent-add-properties (point-min) (point-max)))))) - -(defun org-indent-remove-properties (beg end) - "Remove indentations between BEG and END." - (let ((inhibit-modification-hooks t)) - (with-silent-modifications - (remove-text-properties beg end '(line-prefix nil wrap-prefix nil))))) + (if (not (eq major-mode 'org-mode)) + (error "Not in Org mode") + (message "Setting buffer indentation. It may take a few seconds...") + (org-indent-remove-properties (point-min) (point-max)) + (org-indent-add-properties (point-min) (point-max)) + (message "Indentation of buffer set."))) (defun org-indent-remove-properties-from-string (string) "Remove indentation properties from STRING." @@ -217,110 +235,193 @@ useful to make it ever so slightly different." '(line-prefix nil wrap-prefix nil) string) string) -(defvar org-indent-outline-re org-outline-regexp-bol - "Outline heading regexp.") +(defun org-indent-initialize-agent () + "Start or resume current buffer initialization. +Only buffers in `org-indent-agentized-buffers' trigger an action. +When no more buffer is being watched, the agent suppress itself." + (when org-indent-agent-resume-timer + (cancel-timer org-indent-agent-resume-timer)) + (setq org-indent-agentized-buffers + (org-remove-if-not #'buffer-live-p org-indent-agentized-buffers)) + (cond + ;; Job done: kill agent. + ((not org-indent-agentized-buffers) (cancel-timer org-indent-agent-timer)) + ;; Current buffer is agentized: start/resume initialization + ;; somewhat aggressively. + ((memq (current-buffer) org-indent-agentized-buffers) + (org-indent-initialize-buffer (current-buffer) + org-indent-agent-active-delay)) + ;; Else, start/resume initialization of the last agentized buffer, + ;; softly. + (t (org-indent-initialize-buffer (car org-indent-agentized-buffers) + org-indent-agent-passive-delay)))) + +(defun org-indent-initialize-buffer (buffer delay) + "Set virtual indentation for the buffer BUFFER, asynchronously. +Give hand to other idle processes if it takes longer than DELAY, +a time value." + (with-current-buffer buffer + (when org-indent-mode + (org-with-wide-buffer + (let ((interruptp + ;; Always nil unless interrupted. + (catch 'interrupt + (and org-indent-initial-marker + (marker-position org-indent-initial-marker) + (org-indent-add-properties org-indent-initial-marker + (point-max) + delay) + nil)))) + (move-marker org-indent-initial-marker interruptp) + ;; Job is complete: un-agentize buffer. + (unless interruptp + (setq org-indent-agentized-buffers + (delq buffer org-indent-agentized-buffers)))))))) -(defun org-indent-add-properties (beg end) +(defsubst org-indent-set-line-properties (l w h) + "Set prefix properties on current line an move to next one. + +Prefix properties `line-prefix' and `wrap-prefix' in current line +are set to, respectively, length L and W. + +If H is non-nil, `line-prefix' will be starred. If H is +`inline', the first star will have `org-warning' face. + +Assume point is at beginning of line." + (let ((line (cond + ((eq 'inline h) + (let ((stars (aref org-indent-stars + (min l org-indent-max-levels)))) + (and stars + (concat org-indent-inlinetask-first-star + (substring stars 1))))) + (h (aref org-indent-stars + (min l org-indent-max-levels))) + (t (aref org-indent-strings + (min l org-indent-max))))) + (wrap (aref org-indent-strings (min w org-indent-max)))) + ;; Add properties down to the next line to indent empty lines. + (add-text-properties (point) (min (1+ (point-at-eol)) (point-max)) + `(line-prefix ,line wrap-prefix ,wrap))) + (forward-line 1)) + +(defun org-indent-add-properties (beg end &optional delay) "Add indentation properties between BEG and END. -Assumes that BEG is at the beginning of a line." - (let* ((inhibit-modification-hooks t) - (inlinetaskp (featurep 'org-inlinetask)) - (get-real-level (lambda (pos lvl) - (save-excursion - (goto-char pos) - (if (and inlinetaskp (org-inlinetask-in-task-p)) - (org-inlinetask-get-task-level) - lvl)))) - (b beg) - (e end) - (level 0) - (n 0) - exit nstars) - (with-silent-modifications - (save-excursion - (goto-char beg) - (while (not exit) - (setq e end) - (if (not (re-search-forward org-indent-outline-re nil t)) - (setq e (point-max) exit t) - (setq e (match-beginning 0)) - (if (>= e end) (setq exit t)) - (unless (and inlinetaskp (org-inlinetask-in-task-p)) - (setq level (- (match-end 0) (match-beginning 0) 1))) - (setq nstars (* (1- (funcall get-real-level e level)) - (1- org-indent-indentation-per-level))) - (add-text-properties - (point-at-bol) (point-at-eol) - (list 'line-prefix - (aref org-indent-stars nstars) - 'wrap-prefix - (aref org-indent-strings - (* (funcall get-real-level e level) - org-indent-indentation-per-level))))) - (when (> e b) - (add-text-properties - b e (list 'line-prefix (aref org-indent-strings n) - 'wrap-prefix (aref org-indent-strings n)))) - (setq b (1+ (point-at-eol)) - n (* (funcall get-real-level b level) - org-indent-indentation-per-level))))))) - -(defvar org-inlinetask-min-level) -(defun org-indent-refresh-section () - "Refresh indentation properties in the current outline section. -Point is assumed to be at the beginning of a headline." - (interactive) - (when org-indent-mode - (let (beg end) - (save-excursion - (when (ignore-errors (let ((org-outline-regexp (format "\\*\\{1,%s\\}[ \t]+" - (if (featurep 'org-inlinetask) - (1- org-inlinetask-min-level) - "")))) - (org-back-to-heading))) - (setq beg (point)) - (setq end (or (save-excursion (or (outline-next-heading) (point))))) - (org-indent-remove-properties beg end) - (org-indent-add-properties beg end)))))) - -(defun org-indent-refresh-to (limit) - "Refresh indentation properties in the current outline section. -Point is assumed to be at the beginning of a headline." - (interactive) - (when org-indent-mode - (let ((beg (point)) (end limit)) - (save-excursion - (and (ignore-errors (let ((org-outline-regexp (format "\\*\\{1,%s\\}[ \t]+" - (if (featurep 'org-inlinetask) - (1- org-inlinetask-min-level) - "")))) - (org-back-to-heading))) - (setq beg (point)))) - (org-indent-remove-properties beg end) - (org-indent-add-properties beg end))) - (goto-char limit)) - -(defun org-indent-refresh-subtree () - "Refresh indentation properties in the current outline subtree. -Point is assumed to be at the beginning of a headline." - (interactive) + +When DELAY is non-nil, it must be a time value. In that case, +the process is asynchronous and can be interrupted, either by +user request, or after DELAY. This is done by throwing the +`interrupt' tag along with the buffer position where the process +stopped." + (save-match-data + (org-with-wide-buffer + (goto-char beg) + (beginning-of-line) + ;; 1. Initialize prefix at BEG. This is done by storing two + ;; variables: INLINE-PF and PF, representing respectively + ;; length of current `line-prefix' when line is inside an + ;; inline task or not. + (let* ((case-fold-search t) + (limited-re (org-get-limited-outline-regexp)) + (added-ind-per-lvl (1- org-indent-indentation-per-level)) + (pf (save-excursion + (and (ignore-errors (let ((outline-regexp limited-re)) + (org-back-to-heading t))) + (+ (* org-indent-indentation-per-level + (- (match-end 0) (match-beginning 0) 2)) 2)))) + (pf-inline (and (featurep 'org-inlinetask) + (org-inlinetask-in-task-p) + (+ (* org-indent-indentation-per-level + (1- (org-inlinetask-get-task-level))) 2))) + (time-limit (and delay (time-add (current-time) delay)))) + ;; 2. For each line, set `line-prefix' and `wrap-prefix' + ;; properties depending on the type of line (headline, + ;; inline task, item or other). + (with-silent-modifications + (while (and (<= (point) end) (not (eobp))) + (cond + ;; When in asynchronous mode, check if interrupt is + ;; required. + ((and delay (input-pending-p)) (throw 'interrupt (point))) + ;; In asynchronous mode, take a break of + ;; `org-indent-agent-resume-delay' every DELAY to avoid + ;; blocking any other idle timer or process output. + ((and delay (time-less-p time-limit (current-time))) + (setq org-indent-agent-resume-timer + (run-with-idle-timer + (time-add (current-idle-time) + org-indent-agent-resume-delay) + nil #'org-indent-initialize-agent)) + (throw 'interrupt (point))) + ;; Headline or inline task. + ((looking-at org-outline-regexp) + (let* ((nstars (- (match-end 0) (match-beginning 0) 1)) + (line (* added-ind-per-lvl (1- nstars))) + (wrap (+ line (1+ nstars)))) + (cond + ;; Headline: new value for PF. + ((looking-at limited-re) + (org-indent-set-line-properties line wrap t) + (setq pf wrap)) + ;; End of inline task: PF-INLINE is now nil. + ((looking-at "\\*+ end[ \t]*$") + (org-indent-set-line-properties line wrap 'inline) + (setq pf-inline nil)) + ;; Start of inline task. Determine if it contains + ;; text, or if it is only one line long. Set + ;; PF-INLINE accordingly. + (t (org-indent-set-line-properties line wrap 'inline) + (setq pf-inline (and (org-inlinetask-in-task-p) wrap)))))) + ;; List item: `wrap-prefix' is set where body starts. + ((org-at-item-p) + (let* ((line (or pf-inline pf 0)) + (wrap (+ (org-list-item-body-column (point)) line))) + (org-indent-set-line-properties line wrap nil))) + ;; Normal line: use PF-INLINE, PF or nil as prefixes. + (t (let* ((line (or pf-inline pf 0)) + (wrap (+ line (org-get-indentation)))) + (org-indent-set-line-properties line wrap nil)))))))))) + +(defun org-indent-notify-modified-headline (beg end) + "Set `org-indent-modified-headline-flag' depending on context. + +BEG and END are the positions of the beginning and end of the +range of deleted text. + +This function is meant to be called by `before-change-functions'. +Flag will be non-nil if command is going to modify or delete an +headline." (when org-indent-mode - (save-excursion - (let (beg end) - (setq beg (point)) - (setq end (save-excursion (org-end-of-subtree t t))) - (org-indent-remove-properties beg end) - (org-indent-add-properties beg end))))) + (setq org-indent-modified-headline-flag + (save-excursion + (goto-char beg) + (save-match-data + (or (and (org-at-heading-p) (< beg (match-end 0))) + (re-search-forward org-outline-regexp-bol end t))))))) -(defun org-indent-refresh-buffer () - "Refresh indentation properties in the current outline subtree. -Point is assumed to be at the beginning of a headline." - (interactive) +(defun org-indent-refresh-maybe (beg end dummy) + "Refresh indentation properties in an adequate portion of buffer. +BEG and END are the positions of the beginning and end of the +range of inserted text. DUMMY is an unused argument. + +This function is meant to be called by `after-change-functions'." (when org-indent-mode - (org-indent-mode -1) - (org-indent-mode 1))) + (save-match-data + ;; If an headline was modified or inserted, set properties until + ;; next headline. + (if (or org-indent-modified-headline-flag + (save-excursion + (goto-char beg) + (re-search-forward org-outline-regexp-bol end t))) + (let ((end (save-excursion + (goto-char end) + (org-with-limited-levels (outline-next-heading)) + (point)))) + (setq org-indent-modified-headline-flag nil) + (org-indent-add-properties beg end)) + ;; Otherwise, only set properties on modified area. + (org-indent-add-properties beg end))))) (provide 'org-indent) - ;;; org-indent.el ends here diff --git a/lisp/org/org-info.el b/lisp/org/org-info.el index 4f44045f9bf..b4e5c2244d5 100644 --- a/lisp/org/org-info.el +++ b/lisp/org/org-info.el @@ -1,11 +1,10 @@ ;;; org-info.el --- Support for links to Info nodes from within Org-Mode -;; Copyright (C) 2004-2011 Free Software Foundation, Inc. +;; Copyright (C) 2004-2012 Free Software Foundation, Inc. ;; Author: Carsten Dominik <carsten at orgmode dot org> ;; Keywords: outlines, hypermedia, calendar, wp ;; Homepage: http://orgmode.org -;; Version: 7.7 ;; ;; This file is part of GNU Emacs. ;; @@ -77,6 +76,4 @@ (provide 'org-info) - - ;;; org-info.el ends here diff --git a/lisp/org/org-inlinetask.el b/lisp/org/org-inlinetask.el index 72c19062983..a14e4043e54 100644 --- a/lisp/org/org-inlinetask.el +++ b/lisp/org/org-inlinetask.el @@ -1,11 +1,10 @@ ;;; org-inlinetask.el --- Tasks independent of outline hierarchy -;; Copyright (C) 2009-2011 Free Software Foundation, Inc. +;; Copyright (C) 2009-2012 Free Software Foundation, Inc. ;; ;; Author: Carsten Dominik <carsten at orgmode dot org> ;; Keywords: outlines, hypermedia, calendar, wp ;; Homepage: http://orgmode.org -;; Version: 7.7 ;; This file is part of GNU Emacs. @@ -107,11 +106,14 @@ When nil, they will not be exported." :type 'boolean) (defvar org-inlinetask-export-templates - '((html "<pre class=\"inlinetask\"><b>%s%s</b><br />%s</pre>" + '((html "<div class=\"inlinetask\"><b>%s%s</b><br />%s</div>" '((unless (eq todo "") (format "<span class=\"%s %s\">%s%s</span> " class todo todo priority)) heading content)) + (odt "%s" '((org-odt-format-inlinetask heading content + todo priority tags))) + (latex "\\begin\{description\}\n\\item[%s%s]~%s\\end\{description\}" '((unless (eq todo "") (format "\\textsc\{%s%s\} " todo priority)) heading content)) @@ -132,9 +134,9 @@ When nil, they will not be exported." heading content))) "Templates for inline tasks in various exporters. -This variable is an alist in the shape of (BACKEND STRING OBJECTS). +This variable is an alist in the shape of \(BACKEND STRING OBJECTS\). -BACKEND is the name of the backend for the template (ascii, html...). +BACKEND is the name of the backend for the template \(ascii, html...\). STRING is a format control string. @@ -151,14 +153,14 @@ defined in an inline task, their value is the empty string. As an example, valid associations are: -(html \"<ul><li>%s <p>%s</p></li></ul>\" (heading content)) +\(html \"<ul><li>%s <p>%s</p></li></ul>\" \(heading content\)\) or, with the additional package \"todonotes\" for LaTeX, -(latex \"\\todo[inline]{\\textbf{\\textsf{%s %s}}\\linebreak{} %s}\" - '((unless (eq todo \"\") - (format \"\\textsc{%s%s}\" todo priority)) - heading content)))") +\(latex \"\\todo[inline]{\\textbf{\\textsf{%s %s}}\\linebreak{} %s}\" + '\(\(unless \(eq todo \"\"\) + \(format \"\\textsc{%s%s}\" todo priority\)\) + heading content\)\)\)") (defvar org-odd-levels-only) (defvar org-keyword-time-regexp) @@ -179,15 +181,22 @@ default, or nil of no state should be assigned." "Insert an inline task. If prefix arg NO-STATE is set, ignore `org-inlinetask-default-state'." (interactive "P") + ;; Error when inside an inline task, except if point was at its very + ;; beginning, in which case the new inline task will be inserted + ;; before this one. + (when (and (org-inlinetask-in-task-p) + (not (and (org-inlinetask-at-task-p) (bolp)))) + (error "Cannot nest inline tasks")) (or (bolp) (newline)) - (let ((indent org-inlinetask-min-level)) - (if org-odd-levels-only - (setq indent (- (* 2 indent) 1))) - (insert (make-string indent ?*) - (if (or no-state (not org-inlinetask-default-state)) - " \n" - (concat " " org-inlinetask-default-state " \n")) - (make-string indent ?*) " END\n")) + (let* ((indent (if org-odd-levels-only + (1- (* 2 org-inlinetask-min-level)) + org-inlinetask-min-level)) + (indent-string (concat (make-string indent ?*) " "))) + (insert indent-string + (if (or no-state (not org-inlinetask-default-state)) + "\n" + (concat org-inlinetask-default-state " \n")) + indent-string "END\n")) (end-of-line -1)) (define-key org-mode-map "\C-c\C-xt" 'org-inlinetask-insert-task) @@ -228,21 +237,26 @@ The number of levels is controlled by `org-inlinetask-min-level'." (re-search-backward inlinetask-re nil t)))) (defun org-inlinetask-goto-end () - "Go to the end of the inline task at point." - (beginning-of-line) - (let ((case-fold-search t) - (inlinetask-re (org-inlinetask-outline-regexp))) - (cond - ((org-looking-at-p (concat inlinetask-re "END[ \t]*$")) - (forward-line 1)) - ((org-looking-at-p inlinetask-re) - (forward-line 1) - (when (org-inlinetask-in-task-p) - (re-search-forward inlinetask-re nil t) - (forward-line 1))) - (t - (re-search-forward inlinetask-re nil t) - (forward-line 1))))) + "Go to the end of the inline task at point. +Return point." + (save-match-data + (beginning-of-line) + (let* ((case-fold-search t) + (inlinetask-re (org-inlinetask-outline-regexp)) + (task-end-re (concat inlinetask-re "END[ \t]*$"))) + (cond + ((looking-at task-end-re) (forward-line)) + ((looking-at inlinetask-re) + (forward-line) + (cond + ((looking-at task-end-re) (forward-line)) + ((looking-at inlinetask-re)) + ((org-inlinetask-in-task-p) + (re-search-forward inlinetask-re nil t) + (forward-line)))) + (t (re-search-forward inlinetask-re nil t) + (forward-line))) + (point)))) (defun org-inlinetask-get-task-level () "Get the level of the inline task around. @@ -333,7 +347,9 @@ Either remove headline and meta data, or do special formatting." ;; Remove the task. (goto-char beg) (delete-region beg end) - (when org-inlinetask-export + (when (and org-inlinetask-export + (assq org-export-current-backend + org-inlinetask-export-templates)) ;; Format CONTENT, if appropriate. (setq content (if (not (and content (string-match "\\S-" content))) @@ -341,12 +357,14 @@ Either remove headline and meta data, or do special formatting." ;; Ensure CONTENT has minimal indentation, a single ;; newline character at its boundaries, and isn't ;; protected. - (when (string-match "`\\([ \t]*\n\\)+" content) + (when (string-match "\\`\\([ \t]*\n\\)+" content) (setq content (substring content (match-end 0)))) (when (string-match "[ \t\n]+\\'" content) (setq content (substring content 0 (match-beginning 0)))) - (org-add-props (concat "\n" (org-remove-indentation content) "\n") - '(org-protected nil)))) + (org-add-props + (concat "\n\n" (org-remove-indentation content) "\n\n") + '(org-protected nil org-native-text nil)))) + (when (string-match org-complex-heading-regexp headline) (let* ((nil-to-str (function @@ -363,7 +381,7 @@ Either remove headline and meta data, or do special formatting." (backend-spec (assq org-export-current-backend org-inlinetask-export-templates)) (format-str (org-add-props (nth 1 backend-spec) - '(org-protected t))) + '(org-protected t org-native-text t))) (tokens (cadr (nth 2 backend-spec))) ;; Build export string. Ensure it won't break ;; surrounding lists by giving it arbitrary high @@ -372,6 +390,11 @@ Either remove headline and meta data, or do special formatting." (eval (append '(format format-str) (mapcar nil-to-str tokens))) '(original-indentation 1000)))) + ;; Ensure task starts a new paragraph. + (unless (or (bobp) + (save-excursion (forward-line -1) + (looking-at "[ \t]*$"))) + (insert "\n")) (insert export-str) (unless (bolp) (insert "\n"))))))))) @@ -386,21 +409,34 @@ Either remove headline and meta data, or do special formatting." (goto-char (match-end 0)) (current-column))) +(defvar org-indent-indentation-per-level) ; defined in org-indent.el + +(defface org-inlinetask + (org-compatible-face 'shadow '((t (:bold t)))) + "Face for inlinetask headlines." + :group 'org-faces) + (defun org-inlinetask-fontify (limit) - "Fontify the inline tasks." + "Fontify the inline tasks down to LIMIT." (let* ((nstars (if org-odd-levels-only (1- (* 2 (or org-inlinetask-min-level 200))) (or org-inlinetask-min-level 200))) (re (concat "^\\(\\*\\)\\(\\*\\{" (format "%d" (- nstars 3)) - ",\\}\\)\\(\\*\\* .*\\)"))) + ",\\}\\)\\(\\*\\* .*\\)")) + ;; Virtual indentation will add the warning face on the first + ;; star. Thus, in that case, only hide it. + (start-face (if (and (org-bound-and-true-p org-indent-mode) + (> org-indent-indentation-per-level 1)) + 'org-hide + 'org-warning))) (while (re-search-forward re limit t) (add-text-properties (match-beginning 1) (match-end 1) - '(face org-warning font-lock-fontified t)) + `(face ,start-face font-lock-fontified t)) (add-text-properties (match-beginning 2) (match-end 2) '(face org-hide font-lock-fontified t)) (add-text-properties (match-beginning 3) (match-end 3) - '(face shadow font-lock-fontified t))))) + '(face org-inlinetask font-lock-fontified t))))) (defun org-inlinetask-toggle-visibility () "Toggle visibility of inline task at point." diff --git a/lisp/org/org-install.el b/lisp/org/org-install.el index eb2d011efb9..8df78b6b68d 100644 --- a/lisp/org/org-install.el +++ b/lisp/org/org-install.el @@ -1,6 +1,6 @@ ;;; org-install.el --- Outline-based notes management and organizer ;; Carstens outline-mode for keeping track of everything. -;; Copyright (C) 2004-2011 Free Software Foundation, Inc. +;; Copyright (C) 2004-2012 Free Software Foundation, Inc. ;; ;; Author: Carsten Dominik <carsten at orgmode dot org> ;; Keywords: outlines, hypermedia, calendar, wp diff --git a/lisp/org/org-irc.el b/lisp/org/org-irc.el index 7a84d2053ad..107428366dc 100644 --- a/lisp/org/org-irc.el +++ b/lisp/org/org-irc.el @@ -1,10 +1,9 @@ ;;; org-irc.el --- Store links to IRC sessions ;; -;; Copyright (C) 2008-2011 Free Software Foundation, Inc. +;; Copyright (C) 2008-2012 Free Software Foundation, Inc. ;; ;; Author: Philip Jackson <emacs@shellarchive.co.uk> ;; Keywords: erc, irc, link, org -;; Version: 7.7 ;; ;; This file is part of GNU Emacs. ;; @@ -60,6 +59,8 @@ (declare-function erc-server-buffer "erc" ()) (declare-function erc-get-server-nickname-list "erc" ()) (declare-function erc-cmd-JOIN "erc" (channel &optional key)) +(declare-function org-pop-to-buffer-same-window + "org-compat" (&optional buffer-or-name norecord label)) (defvar org-irc-client 'erc "The IRC client to act on.") @@ -232,7 +233,7 @@ default." (throw 'found x)))))) (if chan-buf (progn - (switch-to-buffer chan-buf) + (org-pop-to-buffer-same-window chan-buf) ;; if we got a nick, and they're in the chan, ;; then start a chat with them (let ((nick (pop link))) @@ -243,14 +244,12 @@ default." (insert (concat nick ": "))) (error "%s not found in %s" nick chan-name))))) (progn - (switch-to-buffer server-buffer) + (org-pop-to-buffer-same-window server-buffer) (erc-cmd-JOIN chan-name)))) - (switch-to-buffer server-buffer))) + (org-pop-to-buffer-same-window server-buffer))) ;; no server match, make new connection (erc-select :server server :port port)))) (provide 'org-irc) - - ;;; org-irc.el ends here diff --git a/lisp/org/org-jsinfo.el b/lisp/org/org-jsinfo.el index 3ef8c4c809c..f4075d02981 100644 --- a/lisp/org/org-jsinfo.el +++ b/lisp/org/org-jsinfo.el @@ -1,11 +1,10 @@ ;;; org-jsinfo.el --- Support for org-info.js Javascript in Org HTML export -;; Copyright (C) 2004-2011 Free Software Foundation, Inc. +;; Copyright (C) 2004-2012 Free Software Foundation, Inc. ;; Author: Carsten Dominik <carsten at orgmode dot org> ;; Keywords: outlines, hypermedia, calendar, wp ;; Homepage: http://orgmode.org -;; Version: 7.7 ;; ;; This file is part of GNU Emacs. ;; @@ -204,6 +203,4 @@ Option settings will replace the %MANAGER-OPTIONS cookie." (provide 'org-infojs) (provide 'org-jsinfo) - - ;;; org-jsinfo.el ends here diff --git a/lisp/org/org-latex.el b/lisp/org/org-latex.el index 7abf85a7092..ba7f8fd6259 100644 --- a/lisp/org/org-latex.el +++ b/lisp/org/org-latex.el @@ -1,11 +1,10 @@ ;;; org-latex.el --- LaTeX exporter for org-mode ;; -;; Copyright (C) 2007-2011 Free Software Foundation, Inc. +;; Copyright (C) 2007-2012 Free Software Foundation, Inc. ;; ;; Emacs Lisp Archive Entry ;; Filename: org-latex.el -;; Version: 7.7 -;; Author: Bastien Guerry <bzg AT altern DOT org> +;; Author: Bastien Guerry <bzg AT gnu DOT org> ;; Maintainer: Carsten Dominik <carsten.dominik AT gmail DOT com> ;; Keywords: org, wp, tex ;; Description: Converts an org-mode buffer into LaTeX @@ -74,7 +73,6 @@ org-deadline-string "\\|" org-closed-string"\\)") "Regexp matching special time planning keywords plus the time after it.") - (defvar org-re-quote) ; dynamically scoped from org.el (defvar org-commentsp) ; dynamically scoped from org.el @@ -359,6 +357,12 @@ string defines the replacement string for this quote." :group 'org-export-latex :type 'boolean) +(defcustom org-export-latex-table-caption-above t + "When non-nil, the caption is set above the table. When nil, +the caption is set below the table." + :group 'org-export-latex + :type 'boolean) + (defcustom org-export-latex-tables-column-borders nil "When non-nil, grouping columns can cause outer vertical lines in tables. When nil, grouping causes only separation lines between groups." @@ -402,7 +406,7 @@ will pass them (combined with the LaTeX default list parameters) to :type 'plist) (defcustom org-export-latex-verbatim-wrap - '("\\begin{verbatim}\n" . "\\end{verbatim}\n") + '("\\begin{verbatim}\n" . "\\end{verbatim}") "Environment to be wrapped around a fixed-width section in LaTeX export. This is a cons with two strings, to be added before and after the fixed-with text. @@ -594,7 +598,7 @@ and `org-export-with-tags' instead." "Extensions of image files that can be inlined into LaTeX. Note that the image extension *actually* allowed depend on the way the LaTeX file is processed. When used with pdflatex, pdf, jpg and png images -are OK. When processing through dvi to PostScript, only ps and eps are +are OK. When processing through dvi to Postscript, only ps and eps are allowed. The default we use here encompasses both." :group 'org-export-latex :type '(repeat (string :tag "Extension"))) @@ -719,7 +723,7 @@ then use this command to convert it." (interactive "r") (let (reg latex buf) (save-window-excursion - (if (org-mode-p) + (if (eq major-mode 'org-mode) (setq latex (org-export-region-as-latex beg end t 'string)) (setq reg (buffer-substring beg end) @@ -865,6 +869,8 @@ when PUB-DIR is set, use this as the publishing directory." (file-truename (or buffer-file-name "dummy.org"))) (concat filename ".tex") filename))) + (auto-insert nil); Avoid any auto-insert stuff for the new file + (TeX-master t) ; Avoid the Query for TeX master from AUCTeX (buffer (if to-buffer (cond ((eq to-buffer 'string) (get-buffer-create @@ -1340,7 +1346,7 @@ LEVEL indicates the default depth for export." (save-restriction (widen) (goto-char (point-min)) - (and (re-search-forward "^#\\+LaTeX_CLASS:[ \t]*\\(-[a-zA-Z]+\\)" nil t) + (and (re-search-forward "^#\\+LaTeX_CLASS:[ \t]*\\([-/a-zA-Z]+\\)" nil t) (match-string 1)))) (plist-get org-export-latex-options-plist :latex-class) org-export-latex-default-class) @@ -1395,7 +1401,11 @@ OPT-PLIST is the options plist for current buffer." (email (replace-regexp-in-string "_" "\\\\_" (org-export-apply-macros-in-string - (plist-get opt-plist :email))))) + (plist-get opt-plist :email)))) + (description (org-export-apply-macros-in-string + (plist-get opt-plist :description))) + (keywords (org-export-apply-macros-in-string + (plist-get opt-plist :keywords)))) (concat (if (plist-get opt-plist :time-stamp-file) (format-time-string "%% Created %Y-%m-%d %a %H:%M\n")) @@ -1429,6 +1439,12 @@ OPT-PLIST is the options plist for current buffer." (format-time-string (or (plist-get opt-plist :date) org-export-latex-date-format))) + ;; add some hyperref options + ;; FIXME: let's have a defcustom for this? + (format "\\hypersetup{\n pdfkeywords={%s},\n pdfsubject={%s},\n pdfcreator={%s}}\n" + (org-export-latex-fontify-headline keywords) + (org-export-latex-fontify-headline description) + (concat "Emacs Org-mode version " org-version)) ;; beginning of the document "\n\\begin{document}\n\n" ;; insert the title command @@ -1837,7 +1853,7 @@ The conversion is made depending of STRING-BEFORE and STRING-AFTER." (replace-match (concat (match-string 1) (match-string 2)) t t) (forward-line)) - (insert "\\end{verbatim}\n\n")) + (insert "\\end{verbatim}\n")) (progn (goto-char (match-beginning 0)) (while (looking-at "^\\([ \t]*\\):\\(\\([ \t]\\|$\\).*\\)$") (replace-match (concat "%" (match-string 1) @@ -1966,13 +1982,13 @@ The conversion is made depending of STRING-BEFORE and STRING-AFTER." (concat "\\begin{longtable}{" align "}\n") (if floatp (format "\\begin{%s}%s\n" tblenv placement))) - (if floatp + (if (and floatp org-export-latex-table-caption-above) (format "\\caption%s{%s} %s" (if shortn (concat "[" shortn "]") "") (or caption "") (if label (format "\\label{%s}" label) ""))) - (if (and longtblp caption) "\\\\\n" "\n") + (if (and longtblp caption) "\\\\\n" "\n") (if (and org-export-latex-tables-centered (not longtblp)) "\\begin{center}\n") (if (not longtblp) @@ -1994,6 +2010,12 @@ The conversion is made depending of STRING-BEFORE and STRING-AFTER." (if (not longtblp) (format "\n\\end{%s}" tabular-env)) (if longtblp "\n" (if org-export-latex-tables-centered "\n\\end{center}\n" "\n")) + (if (and floatp (not org-export-latex-table-caption-above)) + (format + "\\caption%s{%s} %s" + (if shortn (concat "[" shortn "]") "") + (or caption "") + (if label (format "\\label{%s}" label) ""))) (if longtblp "\\end{longtable}" (if floatp (format "\\end{%s}" tblenv))))) @@ -2043,11 +2065,12 @@ The conversion is made depending of STRING-BEFORE and STRING-AFTER." (setq tbl (concat "\\begin{center}\n" tbl "\\end{center}"))) (when floatp (setq tbl (concat "\\begin{table}\n" + (if (not org-export-latex-table-caption-above) tbl) (format "\\caption%s{%s%s}\n" (if shortn (format "[%s]" shortn) "") (if label (format "\\label{%s}" label) "") (or caption "")) - tbl + (if org-export-latex-table-caption-above tbl) "\n\\end{table}\n"))) (insert (org-export-latex-protect-string tbl)))) @@ -2338,7 +2361,7 @@ The conversion is made depending of STRING-BEFORE and STRING-AFTER." (let ((next (org-footnote-get-next-reference))) (and next (= (nth 1 next) (nth 2 ref))))) org-export-latex-footnote-separator "")))) - (when (org-on-heading-p) + (when (org-at-heading-p) (setq fnote (concat (org-export-latex-protect-string "\\protect") fnote))) ;; Ensure a footnote at column 0 cannot end a list @@ -2769,6 +2792,4 @@ The conversion is made depending of STRING-BEFORE and STRING-AFTER." (provide 'org-export-latex) (provide 'org-latex) - - ;;; org-latex.el ends here diff --git a/lisp/org/org-list.el b/lisp/org/org-list.el index 72fc71854e2..b36167701b4 100644 --- a/lisp/org/org-list.el +++ b/lisp/org/org-list.el @@ -1,12 +1,11 @@ ;;; org-list.el --- Plain lists for Org-mode ;; -;; Copyright (C) 2004-2011 Free Software Foundation, Inc. +;; Copyright (C) 2004-2012 Free Software Foundation, Inc. ;; ;; Author: Carsten Dominik <carsten at orgmode dot org> -;; Bastien Guerry <bzg AT altern DOT org> +;; Bastien Guerry <bzg AT gnu DOT org> ;; Keywords: outlines, hypermedia, calendar, wp ;; Homepage: http://orgmode.org -;; Version: 7.7 ;; ;; This file is part of GNU Emacs. ;; @@ -28,30 +27,31 @@ ;; This file contains the code dealing with plain lists in Org-mode. -;; The fundamental idea behind lists work is to use structures. -;; A structure is a snapshot of the list, in the shape of data tree -;; (see `org-list-struct'). +;; The core concept behind lists is their structure. A structure is +;; a snapshot of the list, in the shape of a data tree (see +;; `org-list-struct'). ;; Once the list structure is stored, it is possible to make changes -;; directly on it or get useful information about the list, with the -;; two helper functions, namely `org-list-parents-alist' and -;; `org-list-prevs-alist', and using accessors or methods. +;; on it that will be mirrored to the real list or to get information +;; about the list, using accessors and methods provided in the +;; library. Most of them require the use of one or two helper +;; functions, namely `org-list-parents-alist' and +;; `org-list-prevs-alist'. ;; Structure is eventually applied to the buffer with ;; `org-list-write-struct'. This function repairs (bullets, -;; indentation, checkboxes) the structure before applying it. It -;; should be called near the end of any function working on -;; structures. +;; indentation, checkboxes) the list in the process. It should be +;; called near the end of any function working on structures. ;; Thus, a function applying to lists should usually follow this ;; template: ;; 1. Verify point is in a list and grab item beginning (with the same ;; function `org-in-item-p'). If the function requires the cursor -;; to be at item's bullet, `org-at-item-p' is more selective. If -;; the cursor is amidst the buffer, it is possible to find the -;; closest item with `org-list-search-backward', or -;; `org-list-search-forward', applied to `org-item-beginning-re'. +;; to be at item's bullet, `org-at-item-p' is more selective. It +;; is also possible to move point to the closest item with +;; `org-list-search-backward', or `org-list-search-forward', +;; applied to the function `org-item-beginning-re'. ;; 2. Get list structure with `org-list-struct'. @@ -62,15 +62,16 @@ ;; 4. Proceed with the modifications, using methods and accessors. ;; 5. Verify and apply structure to buffer, using -;; `org-list-write-struct'. Possibly use -;; `org-update-checkbox-count-maybe' if checkboxes might have been -;; modified. +;; `org-list-write-struct'. -;; Computing a list structure can be a costly operation on huge lists -;; (a few thousand lines long). Thus, code should follow the rule : +;; 6. If changes made to the list might have modified check-boxes, +;; call `org-update-checkbox-count-maybe'. + +;; Computing a structure can be a costly operation on huge lists (a +;; few thousand lines long). Thus, code should follow the rule: ;; "collect once, use many". As a corollary, it is usually a bad idea ;; to use directly an interactive function inside the code, as those, -;; being independent entities, read the whole list structure another +;; being independant entities, read the whole list structure another ;; time. ;;; Code: @@ -95,7 +96,6 @@ (declare-function org-at-heading-p "org" (&optional ignored)) (declare-function org-before-first-heading-p "org" ()) -(declare-function org-back-over-empty-lines "org" ()) (declare-function org-back-to-heading "org" (&optional invisible-ok)) (declare-function org-combine-plists "org" (&rest plists)) (declare-function org-count "org" (cl-item cl-seq)) @@ -113,7 +113,7 @@ (declare-function org-inlinetask-outline-regexp "org-inlinetask" ()) (declare-function org-level-increment "org" ()) (declare-function org-narrow-to-subtree "org" ()) -(declare-function org-on-heading-p "org" (&optional invisible-ok)) +(declare-function org-at-heading-p "org" (&optional invisible-ok)) (declare-function org-previous-line-empty-p "org" ()) (declare-function org-remove-if "org" (predicate seq)) (declare-function org-reduced-level "org" (L)) @@ -128,6 +128,8 @@ (declare-function outline-next-heading "outline" ()) (declare-function outline-previous-heading "outline" ()) + + ;;; Configuration variables (defgroup org-plain-lists nil @@ -271,7 +273,7 @@ By default, automatic actions are taken when using \\[org-meta-return], \\[org-metaright], \\[org-metaleft], \\[org-shiftmetaright], \\[org-shiftmetaleft], \\[org-ctrl-c-minus], \\[org-toggle-checkbox] or - \\[org-insert-todo-heading]. You can disable individually these + \\[org-insert-todo-heading]. You can disable individually these rules by setting them to nil. Valid rules are: bullet when non-nil, cycling bullet do not allow lists at @@ -376,6 +378,7 @@ specifically, type `block' is determined by the variable `org-list-forbidden-blocks'.") + ;;; Predicates and regexps (defconst org-list-end-re (if org-empty-line-terminates-plain-lists @@ -385,9 +388,9 @@ specifically, type `block' is determined by the variable It depends on `org-empty-line-terminates-plain-lists'.") (defconst org-list-full-item-re - (concat "^[ \t]*\\(\\(?:[-+*]\\|\\(?:[0-9]+\\|[A-Za-z]\\)[.)]\\)[ \t]+\\)" + (concat "^[ \t]*\\(\\(?:[-+*]\\|\\(?:[0-9]+\\|[A-Za-z]\\)[.)]\\)\\(?:[ \t]+\\|$\\)\\)" "\\(?:\\[@\\(?:start:\\)?\\([0-9]+\\|[A-Za-z]\\)\\][ \t]*\\)?" - "\\(?:\\(\\[[ X-]\\]\\)[ \t]+\\)?" + "\\(?:\\(\\[[ X-]\\]\\)\\(?:[ \t]+\\|$\\)\\)?" "\\(?:\\(.*\\)[ \t]+::\\(?:[ \t]+\\|$\\)\\)?") "Matches a list item and puts everything into groups: group 1: bullet @@ -535,6 +538,7 @@ This checks `org-list-ending-method'." (match-string 2))) + ;;; Structures and helper functions (defun org-list-context () @@ -681,7 +685,7 @@ Assume point is at an item." (cond ((<= (point) lim-up) ;; At upward limit: if we ended at an item, store it, - ;; else dismiss useless data recorded above BEG-CELL. + ;; else dimiss useless data recorded above BEG-CELL. ;; Jump to part 2. (throw 'exit (setq itm-lst @@ -803,21 +807,9 @@ Assume point is at an item." (forward-line 1)))))) (setq struct (append itm-lst (cdr (nreverse itm-lst-2))) end-lst (append end-lst (cdr (nreverse end-lst-2)))) - ;; 3. Correct ill-formed lists by ensuring top item is the least - ;; indented. - (let ((min-ind (nth 1 (car struct)))) - (mapc (lambda (item) - (let ((ind (nth 1 item)) - (bul (nth 2 item))) - (when (< ind min-ind) - (setcar (cdr item) min-ind) - ;; Trim bullet so item will be seen as different - ;; when compared with repaired version. - (setcar (nthcdr 2 item) (org-trim bul))))) - struct)) - ;; 4. Associate each item to its end pos. + ;; 3. Associate each item to its end position. (org-list-struct-assoc-end struct end-lst) - ;; 5. Return STRUCT + ;; 4. Return STRUCT struct))) (defun org-list-struct-assoc-end (struct end-list) @@ -854,8 +846,9 @@ This function modifies STRUCT." (defun org-list-parents-alist (struct) "Return alist between item and parent in STRUCT." - (let ((ind-to-ori (list (list (nth 1 (car struct))))) - (prev-pos (list (caar struct)))) + (let* ((ind-to-ori (list (list (nth 1 (car struct))))) + (top-item (org-list-get-top-point struct)) + (prev-pos (list top-item))) (cons prev-pos (mapcar (lambda (item) (let ((pos (car item)) @@ -864,17 +857,34 @@ This function modifies STRUCT." (push pos prev-pos) (cond ((> prev-ind ind) + ;; A sub-list is over. Find the associated + ;; origin in IND-TO-ORI. If it cannot be + ;; found (ill-formed list), set its parent as + ;; the first item less indented. If there is + ;; none, make it a top-level item. (setq ind-to-ori - (member (assq ind ind-to-ori) ind-to-ori)) + (or (member (assq ind ind-to-ori) ind-to-ori) + (catch 'exit + (mapc + (lambda (e) + (when (< (car e) ind) + (throw 'exit (member e ind-to-ori)))) + ind-to-ori) + (list (list ind))))) (cons pos (cdar ind-to-ori))) + ;; A sub-list starts. Every item at IND will + ;; have previous item as its parent. ((< prev-ind ind) (let ((origin (nth 1 prev-pos))) (push (cons ind origin) ind-to-ori) (cons pos origin))) + ;; Another item in the same sub-list: it shares + ;; the same parent as the previous item. (t (cons pos (cdar ind-to-ori)))))) (cdr struct))))) + ;;; Accessors (defsubst org-list-get-nth (n key struct) @@ -992,8 +1002,8 @@ items, as returned by `org-list-prevs-alist'." (defun org-list-get-children (item struct parents) "List all children of ITEM, or nil. -STRUCT is the list structure. PARENTS is the alist of parents, as -returned by `org-list-parents-alist'." +STRUCT is the list structure. PARENTS is the alist of parents, +as returned by `org-list-parents-alist'." (let (all child) (while (setq child (car (rassq item parents))) (setq parents (cdr (member (assq child parents) parents))) @@ -1052,6 +1062,7 @@ type is determined by the first item of the list." (t 'unordered)))) + ;;; Searching (defun org-list-search-generic (search re bound noerr) @@ -1084,6 +1095,7 @@ Arguments REGEXP, BOUND and NOERROR are similar to those used in regexp (or bound (point-max)) noerror)) + ;;; Methods on structures (defsubst org-list-bullet-string (bullet) @@ -1168,7 +1180,16 @@ some heuristics to guess the result." (let ((item (point)) (insert-blank-p (cdr (assq 'plain-list-item org-blank-before-new-entry))) - usr-blank) + usr-blank + (count-blanks + (function + (lambda () + ;; Count blank lines above beginning of line. + (save-excursion + (count-lines (goto-char (point-at-bol)) + (progn (skip-chars-backward " \r\t\n") + (forward-line) + (point)))))))) (cond ;; Trivial cases where there should be none. ((or (and (not (eq org-list-ending-method 'indent)) @@ -1177,21 +1198,20 @@ some heuristics to guess the result." ;; When `org-blank-before-new-entry' says so, it is 1. ((eq insert-blank-p t) 1) ;; `plain-list-item' is 'auto. Count blank lines separating - ;; neighboring items in list. + ;; neighbours items in list. (t (let ((next-p (org-list-get-next-item item struct prevs))) (cond ;; Is there a next item? (next-p (goto-char next-p) - (org-back-over-empty-lines)) + (funcall count-blanks)) ;; Is there a previous item? ((org-list-get-prev-item item struct prevs) - (org-back-over-empty-lines)) + (funcall count-blanks)) ;; User inserted blank lines, trust him. ((and (> pos (org-list-get-item-end-before-blank item struct)) - (> (save-excursion - (goto-char pos) - (skip-chars-backward " \t") - (setq usr-blank (org-back-over-empty-lines))) 0)) + (> (save-excursion (goto-char pos) + (setq usr-blank (funcall count-blanks))) + 0)) usr-blank) ;; Are there blank lines inside the list so far? ((save-excursion @@ -1207,7 +1227,7 @@ some heuristics to guess the result." If POS is before first character after bullet of the item, the new item will be created before the current one. -STRUCT is the list structure. PREVS is the alist of previous +STRUCT is the list structure. PREVS is the the alist of previous items, as returned by `org-list-prevs-alist'. Insert a checkbox if CHECKBOX is non-nil, and string AFTER-BULLET @@ -1364,8 +1384,8 @@ If DEST is a buffer position, the function will assume it points to another item in the same list as ITEM, and will move the latter just before the former. -If DEST is `begin' \(resp. `end'\), ITEM will be moved at the -beginning \(resp. end\) of the list it belongs to. +If DEST is `begin' \(respectively `end'\), ITEM will be moved at +the beginning \(respectively end\) of the list it belongs to. If DEST is a string like \"N\", where N is an integer, ITEM will be moved at the Nth position in the list. @@ -1543,12 +1563,13 @@ bullets between START and END." (mapcar ind parents))) + ;;; Repairing structures (defun org-list-use-alpha-bul-p (first struct prevs) "Non-nil if list starting at FIRST can have alphabetical bullets. -STRUCT is list structure. PREVS is the alist of previous items, +STRUCT is list structure. PREVS is the alist of previous items, as returned by `org-list-prevs-alist'." (and org-alphabetical-lists (catch 'exit @@ -1746,15 +1767,41 @@ This function modifies STRUCT." ;; Return blocking item. (nth index all-items))))))) +(defun org-list-struct-fix-item-end (struct) + "Verify and correct each item end position in STRUCT. + +This function modifies STRUCT." + (let (end-list acc-end) + (mapc (lambda (e) + (let* ((pos (car e)) + (ind-pos (org-list-get-ind pos struct)) + (end-pos (org-list-get-item-end pos struct))) + (unless (assq end-pos struct) + ;; To determine real ind of an ending position that is + ;; not at an item, we have to find the item it belongs + ;; to: it is the last item (ITEM-UP), whose ending is + ;; further than the position we're interested in. + (let ((item-up (assoc-default end-pos acc-end '>))) + (push (cons + ;; Else part is for the bottom point. + (if item-up (+ (org-list-get-ind item-up struct) 2) 0) + end-pos) + end-list))) + (push (cons ind-pos pos) end-list) + (push (cons end-pos pos) acc-end))) + struct) + (setq end-list (sort end-list (lambda (e1 e2) (< (cdr e1) (cdr e2))))) + (org-list-struct-assoc-end struct end-list))) + (defun org-list-struct-apply-struct (struct old-struct) - "Apply set-difference between STRUCT and OLD-STRUCT to the buffer. + "Apply set difference between STRUCT and OLD-STRUCT to the buffer. OLD-STRUCT is the structure before any modifications, and STRUCT the structure to be applied. The function will only modify parts of the list which have changed. Initial position of cursor is restored after the changes." - (let* ((origin (copy-marker (point))) + (let* ((origin (point-marker)) (inlinetask-re (and (featurep 'org-inlinetask) (org-inlinetask-outline-regexp))) (item-re (org-item-re)) @@ -1804,13 +1851,11 @@ Initial position of cursor is restored after the changes." ((and (match-string 3) new-box) (replace-match new-box nil nil nil 3)) ((match-string 3) - ;; (goto-char (or (match-end 2) (match-end 1))) - ;; (skip-chars-backward " \t") (looking-at ".*?\\([ \t]*\\[[ X-]\\]\\)") (replace-match "" nil nil nil 1)) (t (let ((counterp (match-end 2))) (goto-char (if counterp (1+ counterp) (match-end 1))) - (insert (concat new-box (unless counterp " ")))))) + (insert (concat new-box (unless counterp " ")))))) ;; c. Indent item to appropriate column. (unless (= new-ind old-ind) (delete-region (goto-char (point-at-bol)) @@ -1869,53 +1914,38 @@ Initial position of cursor is restored after the changes." (goto-char origin) (move-marker origin nil))) -(defun org-list-write-struct (struct parents) +(defun org-list-write-struct (struct parents &optional old-struct) "Correct bullets, checkboxes and indentation in list at point. + STRUCT is the list structure. PARENTS is the alist of parents, -as returned by `org-list-parents-alist'." +as returned by `org-list-parents-alist'. + +When non-nil, optional argument OLD-STRUCT is the reference +structure of the list. It should be provided whenever STRUCT +doesn't correspond anymore to the real list in buffer." ;; Order of functions matters here: checkboxes and endings need ;; correct indentation to be set, and indentation needs correct ;; bullets. ;; ;; 0. Save a copy of structure before modifications - (let ((old-struct (copy-tree struct))) + (let ((old-struct (or old-struct (copy-tree struct)))) ;; 1. Set a temporary, but coherent with PARENTS, indentation in ;; order to get items endings and bullets properly (org-list-struct-fix-ind struct parents 2) - ;; 2. Get pseudo-alist of ending positions and sort it by position. - ;; Then associate them to the structure. - (let (end-list acc-end) - (mapc (lambda (e) - (let* ((pos (car e)) - (ind-pos (org-list-get-ind pos struct)) - (end-pos (org-list-get-item-end pos struct))) - (unless (assq end-pos struct) - ;; To determine real ind of an ending position that is - ;; not at an item, we have to find the item it belongs - ;; to: it is the last item (ITEM-UP), whose ending is - ;; further than the position we're interested in. - (let ((item-up (assoc-default end-pos acc-end '>))) - (push (cons - ;; Else part is for the bottom point. - (if item-up (+ (org-list-get-ind item-up struct) 2) 0) - end-pos) - end-list))) - (push (cons ind-pos pos) end-list) - (push (cons end-pos pos) acc-end))) - struct) - (setq end-list (sort end-list (lambda (e1 e2) (< (cdr e1) (cdr e2))))) - (org-list-struct-assoc-end struct end-list)) - ;; 3. Get bullets right. - (let ((prevs (org-list-prevs-alist struct))) - (org-list-struct-fix-bul struct prevs) - ;; 4. Now get real indentation. - (org-list-struct-fix-ind struct parents) - ;; 5. Eventually fix checkboxes. - (org-list-struct-fix-box struct parents prevs)) - ;; 6. Apply structure modifications to buffer. - (org-list-struct-apply-struct struct old-struct))) - - + ;; 2. Fix each item end to get correct prevs alist. + (org-list-struct-fix-item-end struct) + ;; 3. Get bullets right. + (let ((prevs (org-list-prevs-alist struct))) + (org-list-struct-fix-bul struct prevs) + ;; 4. Now get real indentation. + (org-list-struct-fix-ind struct parents) + ;; 5. Eventually fix checkboxes. + (org-list-struct-fix-box struct parents prevs)) + ;; 6. Apply structure modifications to buffer. + (org-list-struct-apply-struct struct old-struct))) + + + ;;; Misc Tools (defun org-apply-on-list (function init-value &rest args) @@ -1947,7 +1977,7 @@ beginning of the item." (defun org-list-set-item-visibility (item struct view) "Set visibility of ITEM in STRUCT to VIEW. -Possible values are: `folded', `children' or `subtree'. See +Possible values are: `folded', `children' or `subtree'. See `org-cycle' for more information." (cond ((eq view 'folded) @@ -1983,6 +2013,7 @@ Possible values are: `folded', `children' or `subtree'. See tcol)) + ;;; Interactive functions (defalias 'org-list-get-item-begin 'org-in-item-p) @@ -2257,7 +2288,7 @@ in subtree, ignoring drawers." (setq lim-up (point-at-bol)) (error "No item in region")) (setq lim-down (copy-marker limit)))) - ((org-on-heading-p) + ((org-at-heading-p) ;; On an heading, start at first item after drawers and ;; time-stamps (scheduled, etc.). (let ((limit (save-excursion (outline-next-heading) (point)))) @@ -2274,7 +2305,7 @@ in subtree, ignoring drawers." ((org-at-item-p) (setq singlep t) (setq lim-up (point-at-bol) - lim-down (point-at-eol))) + lim-down (copy-marker (point-at-eol)))) (t (error "Not at an item or heading, and no active region")))) ;; Determine the checkbox going to be applied to all items ;; within bounds. @@ -2328,9 +2359,9 @@ in subtree, ignoring drawers." "Checkboxes were removed due to unchecked box at line %d" (org-current-line block-item)))) (goto-char bottom) - (move-marker lim-down nil) (move-marker bottom nil) - (org-list-struct-apply-struct struct struct-copy))))) + (org-list-struct-apply-struct struct struct-copy))) + (move-marker lim-down nil))) (org-update-checkbox-count-maybe)) (defun org-reset-checkbox-state-subtree () @@ -2416,7 +2447,7 @@ With optional prefix argument ALL, do this for the whole buffer." (cond ; boxes count ;; Cookie is at an heading, but specifically for todo, ;; not for checkboxes: skip it. - ((and (org-on-heading-p) + ((and (org-at-heading-p) (string-match "\\<todo\\>" (downcase (or (org-entry-get nil "COOKIE_DATA") "")))) @@ -2425,14 +2456,14 @@ With optional prefix argument ALL, do this for the whole buffer." ;; heading already have been read. Use data collected ;; in STRUCTS-BAK. This should only happen when ;; heading has more than one cookie on it. - ((and (org-on-heading-p) + ((and (org-at-heading-p) (<= (save-excursion (outline-next-heading) (point)) backup-end)) (funcall count-boxes nil structs-bak recursivep)) ;; Cookie is at a fresh heading. Grab structure of ;; every list containing a checkbox between point and ;; next headline, and save them in STRUCTS-BAK. - ((org-on-heading-p) + ((org-at-heading-p) (setq backup-end (save-excursion (outline-next-heading) (point)) structs-bak nil) @@ -2491,7 +2522,8 @@ Otherwise it will be `org-todo'." 'org-checkbox-statistics-todo))) (defun org-update-checkbox-count-maybe (&optional all) - "Update checkbox statistics unless turned off by user." + "Update checkbox statistics unless turned off by user. +With an optional argument ALL, update them in the whole buffer." (when (cdr (assq 'checkbox org-list-automatic-rules)) (org-update-checkbox-count all)) (run-hooks 'org-checkbox-statistics-hook)) @@ -2642,7 +2674,7 @@ If a region is active, all items inside will be moved." (defvar org-tab-ind-state) (defun org-cycle-item-indentation () "Cycle levels of indentation of an empty item. -The first run indents the item, if applicable. Subsequent runs +The first run indents the item, if applicable. Subsequents runs outdent it at meaningful levels in the list. When done, item is put back at its original position with its original bullet. @@ -2711,7 +2743,7 @@ Capital letters will reverse the sort order. If the SORTING-TYPE is ?f or ?F, then GETKEY-FUNC specifies a function to be called with point at the beginning of the record. It must return either a string or a number that should -serve as the sorting key for that record. It will then use +serve as the sorting key for that record. It will then use COMPARE-FUNC to compare entries." (interactive "P") (let* ((case-func (if with-case 'identity 'downcase)) @@ -2786,6 +2818,7 @@ COMPARE-FUNC to compare entries." (message "Sorting items...done"))))) + ;;; Send and receive lists (defun org-list-parse-list (&optional delete) @@ -2975,6 +3008,10 @@ for this list." (insert txt "\n"))) (message "List converted and installed at receiver location")))) +(defsubst org-list-item-trim-br (item) + "Trim line breaks in a list ITEM." + (setq item (replace-regexp-in-string "\n +" " " item))) + (defun org-list-to-generic (list params) "Convert a LIST parsed through `org-list-parse-list' to other formats. Valid parameters PARAMS are: @@ -3006,9 +3043,11 @@ Valid parameters PARAMS are: :cbon String to insert for a checked check-box :cbtrans String to insert for a check-box in transitional state +:nobr Non-nil means remove line breaks in lists items. + Alternatively, each parameter can also be a form returning a string. These sexp can use keywords `counter' and `depth', -representing respectively counter associated to the current +reprensenting respectively counter associated to the current item, and depth of the current sub-list, starting at 0. Obviously, `counter' is only available for parameters applying to items." @@ -3034,6 +3073,7 @@ items." (cbon (plist-get p :cbon)) (cboff (plist-get p :cboff)) (cbtrans (plist-get p :cbtrans)) + (nobr (plist-get p :nobr)) export-sublist ; for byte-compiler (export-item (function @@ -3065,6 +3105,8 @@ items." (setq first (replace-match cboff t t first))) ((string-match "\\[CBTRANS\\]" first) (setq first (replace-match cbtrans t t first)))) + ;; Replace line breaks if required + (when nobr (setq first (org-list-item-trim-br first))) ;; Insert descriptive term if TYPE is `descriptive'. (when (eq type 'descriptive) (let* ((complete (string-match "^\\(.*\\)[ \t]+::" first)) @@ -3200,5 +3242,4 @@ with overruling parameters for `org-list-to-generic'." (provide 'org-list) - ;;; org-list.el ends here diff --git a/lisp/org/org-lparse.el b/lisp/org/org-lparse.el new file mode 100644 index 00000000000..b13dc86e5a6 --- /dev/null +++ b/lisp/org/org-lparse.el @@ -0,0 +1,2334 @@ +;;; org-lparse.el --- Line-oriented parser-exporter for Org-mode + +;; Copyright (C) 2010-2012 Free Software Foundation, Inc. + +;; Author: Jambunathan K <kjambunathan at gmail dot com> +;; Keywords: outlines, hypermedia, calendar, wp +;; Homepage: http://orgmode.org + +;; 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 3 of the License, 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. If not, see <http://www.gnu.org/licenses/>. + +;;; Commentary: + +;; `org-lparse' is the entry point for the generic line-oriented +;; exporter. `org-do-lparse' is the genericized version of the +;; original `org-export-as-html' routine. + +;; `org-lparse-native-backends' is a good starting point for +;; exploring the generic exporter. + +;; Following new interactive commands are provided by this library. +;; `org-lparse', `org-lparse-and-open', `org-lparse-to-buffer' +;; `org-replace-region-by', `org-lparse-region'. + +;; Note that the above routines correspond to the following routines +;; in the html exporter `org-export-as-html', +;; `org-export-as-html-and-open', `org-export-as-html-to-buffer', +;; `org-replace-region-by-html' and `org-export-region-as-html'. + +;; The new interactive command `org-lparse-convert' can be used to +;; convert documents between various formats. Use this to command, +;; for example, to convert odt file to doc or pdf format. + +;;; Code: +(eval-when-compile + (require 'cl)) +(require 'org-exp) +(require 'org-list) +(require 'format-spec) + +;;;###autoload +(defun org-lparse-and-open (target-backend native-backend arg + &optional file-or-buf) + "Export outline to TARGET-BACKEND via NATIVE-BACKEND and open exported 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." + (let (f (file-or-buf (or file-or-buf + (org-lparse target-backend native-backend + arg 'hidden)))) + (when file-or-buf + (setq f (cond + ((bufferp file-or-buf) buffer-file-name) + ((file-exists-p file-or-buf) file-or-buf) + (t (error "org-lparse-and-open: This shouldn't happen")))) + (message "Opening file %s" f) + (org-open-file f) + (when org-export-kill-product-buffer-when-displayed + (kill-buffer (current-buffer)))))) + +;;;###autoload +(defun org-lparse-batch (target-backend &optional native-backend) + "Call the function `org-lparse'. +This function can be used in batch processing as: +emacs --batch + --load=$HOME/lib/emacs/org.el + --eval \"(setq org-export-headline-levels 2)\" + --visit=MyFile --funcall org-lparse-batch" + (setq native-backend (or native-backend target-backend)) + (org-lparse target-backend native-backend + org-export-headline-levels 'hidden)) + +;;;###autoload +(defun org-lparse-to-buffer (backend arg) + "Call `org-lparse' with output to a temporary buffer. +No file is created. The prefix ARG is passed through to +`org-lparse'." + (let ((tempbuf (format "*Org %s Export*" (upcase backend)))) + (org-lparse backend backend arg nil nil tempbuf) + (when org-export-show-temporary-export-buffer + (switch-to-buffer-other-window tempbuf)))) + +;;;###autoload +(defun org-replace-region-by (backend 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." + (let (reg backend-string buf pop-up-frames) + (save-window-excursion + (if (eq major-mode 'org-mode) + (setq backend-string (org-lparse-region backend beg end t 'string)) + (setq reg (buffer-substring beg end) + buf (get-buffer-create "*Org tmp*")) + (with-current-buffer buf + (erase-buffer) + (insert reg) + (org-mode) + (setq backend-string (org-lparse-region backend (point-min) + (point-max) t 'string))) + (kill-buffer buf))) + (delete-region beg end) + (insert backend-string))) + +;;;###autoload +(defun org-lparse-region (backend 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-lparse-region \"html\" beg end t 'string)) + +When called interactively, the output buffer is selected, and shown +in a window. A non-interactive call will only return the buffer." + (let ((transient-mark-mode t) (zmacs-regions t) + ext-plist rtn) + (setq ext-plist (plist-put ext-plist :ignore-subtree-p t)) + (goto-char end) + (set-mark (point)) ;; to activate the region + (goto-char beg) + (setq rtn (org-lparse backend backend nil nil ext-plist buffer body-only)) + (if (fboundp 'deactivate-mark) (deactivate-mark)) + (if (and (org-called-interactively-p 'any) (bufferp rtn)) + (switch-to-buffer-other-window rtn) + rtn))) + +(defvar org-lparse-par-open nil) + +(defun org-lparse-should-inline-p (filename descp) + "Return non-nil if link FILENAME should be inlined. +The decision to inline the FILENAME link is based on the current +settings. DESCP is the boolean of whether there was a link +description. See variables `org-export-html-inline-images' and +`org-export-html-inline-image-extensions'." + (let ((inline-images (org-lparse-get 'INLINE-IMAGES)) + (inline-image-extensions + (org-lparse-get 'INLINE-IMAGE-EXTENSIONS))) + (and (or (eq t inline-images) (and inline-images (not descp))) + (org-file-image-p filename inline-image-extensions)))) + +(defun org-lparse-format-org-link (line opt-plist) + "Return LINE with markup of Org mode links. +OPT-PLIST is the export options list." + (let ((start 0) + (current-dir (if buffer-file-name + (file-name-directory buffer-file-name) + default-directory)) + (link-validate (plist-get opt-plist :link-validation-function)) + type id-file fnc + rpl path attr desc descp desc1 desc2 link + org-lparse-link-description-is-image) + (while (string-match org-bracket-link-analytic-regexp++ line start) + (setq org-lparse-link-description-is-image nil) + (setq start (match-beginning 0)) + (setq path (save-match-data (org-link-unescape + (match-string 3 line)))) + (setq type (cond + ((match-end 2) (match-string 2 line)) + ((save-match-data + (or (file-name-absolute-p path) + (string-match "^\\.\\.?/" path))) + "file") + (t "internal"))) + (setq path (org-extract-attributes path)) + (setq attr (get-text-property 0 'org-attributes path)) + (setq desc1 (if (match-end 5) (match-string 5 line)) + desc2 (if (match-end 2) (concat type ":" path) path) + descp (and desc1 (not (equal desc1 desc2))) + desc (or desc1 desc2)) + ;; Make an image out of the description if that is so wanted + (when (and descp (org-file-image-p + desc (org-lparse-get 'INLINE-IMAGE-EXTENSIONS))) + (setq org-lparse-link-description-is-image t) + (save-match-data + (if (string-match "^file:" desc) + (setq desc (substring desc (match-end 0))))) + (save-match-data + (setq desc (org-add-props + (org-lparse-format 'INLINE-IMAGE desc) + '(org-protected t))))) + (cond + ((equal type "internal") + (let + ((frag-0 + (if (= (string-to-char path) ?#) + (substring path 1) + path))) + (setq rpl + (org-lparse-format + 'ORG-LINK opt-plist "" "" (org-solidify-link-text + (save-match-data + (org-link-unescape frag-0)) + nil) desc attr descp)))) + ((and (equal type "id") + (setq id-file (org-id-find-id-file path))) + ;; This is an id: link to another file (if it was the same file, + ;; it would have become an internal link...) + (save-match-data + (setq id-file (file-relative-name + id-file + (file-name-directory org-current-export-file))) + (setq rpl + (org-lparse-format + 'ORG-LINK opt-plist type id-file + (concat (if (org-uuidgen-p path) "ID-") path) + desc attr descp)))) + ((member type '("http" "https")) + ;; standard URL, can inline as image + (setq rpl + (org-lparse-format + 'ORG-LINK opt-plist type path nil desc attr descp))) + ((member type '("ftp" "mailto" "news")) + ;; standard URL, can't inline as image + (setq rpl + (org-lparse-format + 'ORG-LINK opt-plist type path nil desc attr descp))) + + ((string= type "coderef") + (setq rpl (org-lparse-format + 'ORG-LINK opt-plist type "" path desc nil descp))) + + ((functionp (setq fnc (nth 2 (assoc type org-link-protocols)))) + ;; The link protocol has a function for format the link + (setq rpl (save-match-data + (funcall fnc (org-link-unescape path) + desc1 (and (boundp 'org-lparse-backend) + (case org-lparse-backend + (xhtml 'html) + (t org-lparse-backend))))))) + ((string= type "file") + ;; FILE link + (save-match-data + (let* + ((components + (if + (string-match "::\\(.*\\)" path) + (list + (replace-match "" t nil path) + (match-string 1 path)) + (list path nil))) + + ;;The proper path, without a fragment + (path-1 + (first components)) + + ;;The raw fragment + (fragment-0 + (second components)) + + ;;Check the fragment. If it can't be used as + ;;target fragment we'll pass nil instead. + (fragment-1 + (if + (and fragment-0 + (not (string-match "^[0-9]*$" fragment-0)) + (not (string-match "^\\*" fragment-0)) + (not (string-match "^/.*/$" fragment-0))) + (org-solidify-link-text + (org-link-unescape fragment-0)) + nil)) + (desc-2 + ;;Description minus "file:" and ".org" + (if (string-match "^file:" desc) + (let + ((desc-1 (replace-match "" t t desc))) + (if (string-match "\\.org$" desc-1) + (replace-match "" t t desc-1) + desc-1)) + desc))) + + (setq rpl + (if + (and + (functionp link-validate) + (not (funcall link-validate path-1 current-dir))) + desc + (org-lparse-format + 'ORG-LINK opt-plist "file" path-1 fragment-1 + desc-2 attr descp)))))) + + (t + ;; just publish the path, as default + (setq rpl (concat "<i><" type ":" + (save-match-data (org-link-unescape path)) + "></i>")))) + (setq line (replace-match rpl t t line) + start (+ start (length rpl)))) + line)) + +(defvar org-lparse-par-open-stashed) ; bound during `org-do-lparse' +(defun org-lparse-stash-save-paragraph-state () + (assert (zerop org-lparse-par-open-stashed)) + (setq org-lparse-par-open-stashed org-lparse-par-open) + (setq org-lparse-par-open nil)) + +(defun org-lparse-stash-pop-paragraph-state () + (setq org-lparse-par-open org-lparse-par-open-stashed) + (setq org-lparse-par-open-stashed 0)) + +(defmacro with-org-lparse-preserve-paragraph-state (&rest body) + `(let ((org-lparse-do-open-par org-lparse-par-open)) + (org-lparse-end-paragraph) + ,@body + (when org-lparse-do-open-par + (org-lparse-begin-paragraph)))) +(def-edebug-spec with-org-lparse-preserve-paragraph-state (body)) + +(defvar org-lparse-native-backends nil + "List of native backends registered with `org-lparse'. +A backend can use `org-lparse-register-backend' to add itself to +this list. + +All native backends must implement a get routine and a mandatory +set of callback routines. + +The get routine must be named as org-<backend>-get where backend +is the name of the backend. The exporter uses `org-lparse-get' +and retrieves the backend-specific callback by querying for +ENTITY-CONTROL and ENTITY-FORMAT variables. + +For the sake of illustration, the html backend implements +`org-xhtml-get'. It returns +`org-xhtml-entity-control-callbacks-alist' and +`org-xhtml-entity-format-callbacks-alist' as the values of +ENTITY-CONTROL and ENTITY-FORMAT settings.") + +(defun org-lparse-register-backend (backend) + "Make BACKEND known to `org-lparse' library. +Add BACKEND to `org-lparse-native-backends'." + (when backend + (setq backend (cond + ((symbolp backend) (symbol-name backend)) + ((stringp backend) backend) + (t (error "Error while registering backend: %S" backend)))) + (add-to-list 'org-lparse-native-backends backend))) + +(defun org-lparse-unregister-backend (backend) + (setq org-lparse-native-backends + (remove (cond + ((symbolp backend) (symbol-name backend)) + ((stringp backend) backend)) + org-lparse-native-backends)) + (message "Unregistered backend %S" backend)) + +(defun org-lparse-do-reachable-formats (in-fmt) + "Return verbose info about formats to which IN-FMT can be converted. +Return a list where each element is of the +form (CONVERTER-PROCESS . OUTPUT-FMT-ALIST). See +`org-export-odt-convert-processes' for CONVERTER-PROCESS and see +`org-export-odt-convert-capabilities' for OUTPUT-FMT-ALIST." + (let (reachable-formats) + (dolist (backend org-lparse-native-backends reachable-formats) + (let* ((converter (org-lparse-backend-get + backend 'CONVERT-METHOD)) + (capabilities (org-lparse-backend-get + backend 'CONVERT-CAPABILITIES))) + (when converter + (dolist (c capabilities) + (when (member in-fmt (nth 1 c)) + (push (cons converter (nth 2 c)) reachable-formats)))))))) + +(defun org-lparse-reachable-formats (in-fmt) + "Return list of formats to which IN-FMT can be converted. +The list of the form (OUTPUT-FMT-1 OUTPUT-FMT-2 ...)." + (let (l) + (mapc (lambda (e) (add-to-list 'l e)) + (apply 'append (mapcar + (lambda (e) (mapcar 'car (cdr e))) + (org-lparse-do-reachable-formats in-fmt)))) + l)) + +(defun org-lparse-reachable-p (in-fmt out-fmt) + "Return non-nil if IN-FMT can be converted to OUT-FMT." + (catch 'done + (let ((reachable-formats (org-lparse-do-reachable-formats in-fmt))) + (dolist (e reachable-formats) + (let ((out-fmt-spec (assoc out-fmt (cdr e)))) + (when out-fmt-spec + (throw 'done (cons (car e) out-fmt-spec)))))))) + +(defun org-lparse-backend-is-native-p (backend) + (member backend org-lparse-native-backends)) + +(defun org-lparse (target-backend native-backend arg + &optional hidden ext-plist + to-buffer body-only pub-dir) + "Export the outline to various formats. +If there is an active region, export only the region. The +outline is first exported to NATIVE-BACKEND and optionally +converted to TARGET-BACKEND. See `org-lparse-native-backends' +for list of known native backends. Each native backend can +specify a converter and list of target backends it exports to +using the CONVERT-PROCESS and OTHER-BACKENDS settings of it's get +method. See `org-xhtml-get' for an illustrative example. + +ARG is a prefix argument that specifies how many levels of +outline should become headlines. The default is 3. Lower levels +will become bulleted lists. + +HIDDEN is obsolete and does nothing. + +EXT-PLIST is a property list that controls various aspects of +export. The settings here override org-mode's default settings +and but are inferior to file-local settings. + +TO-BUFFER dumps the exported lines to a buffer or a string +instead of a file. If TO-BUFFER is the symbol `string' return the +exported lines as a string. If TO-BUFFER is non-nil, create a +buffer with that name and export to that buffer. + +BODY-ONLY controls the presence of header and footer lines in +exported text. If BODY-ONLY is non-nil, don't produce the file +header and footer, simply return the content of <body>...</body>, +without even the body tags themselves. + +PUB-DIR specifies the publishing directory." + (let* ((org-lparse-backend (intern native-backend)) + (org-lparse-other-backend (and target-backend + (intern target-backend)))) + (unless (org-lparse-backend-is-native-p native-backend) + (error "Don't know how to export natively to backend %s" native-backend)) + + (unless (or (equal native-backend target-backend) + (org-lparse-reachable-p native-backend target-backend)) + (error "Don't know how to export to backend %s %s" target-backend + (format "via %s" native-backend))) + (run-hooks 'org-export-first-hook) + (org-do-lparse arg hidden ext-plist to-buffer body-only pub-dir))) + +(defcustom org-lparse-use-flashy-warning nil + "Control flashing of messages logged with `org-lparse-warn'. +When non-nil, messages are fontified with warning face and the +exporter lingers for a while to catch user's attention." + :type 'boolean + :group 'org-lparse) + +(defun org-lparse-convert-read-params () + "Return IN-FILE and OUT-FMT params for `org-lparse-do-convert'. +This is a helper routine for interactive use." + (let* ((input (if (featurep 'ido) 'ido-completing-read 'completing-read)) + (in-file (read-file-name "File to be converted: " + nil buffer-file-name t)) + (in-fmt (file-name-extension in-file)) + (out-fmt-choices (org-lparse-reachable-formats in-fmt)) + (out-fmt + (or (and out-fmt-choices + (funcall input "Output format: " + out-fmt-choices nil nil nil)) + (error + "No known converter or no known output formats for %s files" + in-fmt)))) + (list in-file out-fmt))) + +(eval-when-compile + (require 'browse-url)) + +(defun org-lparse-do-convert (in-file out-fmt &optional prefix-arg) + "Workhorse routine for `org-export-odt-convert'." + (require 'browse-url) + (let* ((in-file (expand-file-name (or in-file buffer-file-name))) + (dummy (or (file-readable-p in-file) + (error "Cannot read %s" in-file))) + (in-fmt (file-name-extension in-file)) + (out-fmt (or out-fmt (error "Output format unspecified"))) + (how (or (org-lparse-reachable-p in-fmt out-fmt) + (error "Cannot convert from %s format to %s format?" + in-fmt out-fmt))) + (convert-process (car how)) + (program (car convert-process)) + (dummy (and (or program (error "Converter not configured")) + (or (executable-find program) + (error "Cannot find converter %s" program)))) + (out-file (concat (file-name-sans-extension in-file) "." + (nth 1 (or (cdr how) out-fmt)))) + (out-dir (file-name-directory in-file)) + (arglist (mapcar (lambda (arg) + (format-spec + arg `((?i . ,in-file) + (?I . ,(browse-url-file-url in-file)) + (?f . ,out-fmt) + (?o . ,out-file) + (?O . ,(browse-url-file-url out-file)) + (?d . ,out-dir) + (?D . ,(browse-url-file-url out-dir))))) + (cdr convert-process)))) + (when (file-exists-p out-file) + (delete-file out-file)) + + (message "Executing %s %s" program (mapconcat 'identity arglist " ")) + (apply 'call-process program nil nil nil arglist) + (cond + ((file-exists-p out-file) + (message "Exported to %s using %s" out-file program) + (when prefix-arg + (message "Opening %s..." out-file) + (org-open-file out-file)) + out-file + ;; (set-buffer (find-file-noselect out-file)) + ) + (t + (message "Export to %s failed" out-file) + nil)))) + +(defvar org-lparse-insert-tag-with-newlines 'both) + +;; Following variables are let-bound during `org-lparse' +(defvar org-lparse-dyn-first-heading-pos) +(defvar org-lparse-toc) +(defvar org-lparse-entity-control-callbacks-alist) +(defvar org-lparse-entity-format-callbacks-alist) +(defvar org-lparse-backend nil + "The native backend to which the document is currently exported. +This variable is let bound during `org-lparse'. Valid values are +one of the symbols corresponding to `org-lparse-native-backends'. + +Compare this variable with `org-export-current-backend' which is +bound only during `org-export-preprocess-string' stage of the +export process. + +See also `org-lparse-other-backend'.") + +(defvar org-lparse-other-backend nil + "The target backend to which the document is currently exported. +This variable is let bound during `org-lparse'. This variable is +set to either `org-lparse-backend' or one of the symbols +corresponding to OTHER-BACKENDS specification of the +org-lparse-backend. + +For example, if a document is exported to \"odt\" then both +org-lparse-backend and org-lparse-other-backend are bound to +'odt. On the other hand, if a document is exported to \"odt\" +and then converted to \"doc\" then org-lparse-backend is set to +'odt and org-lparse-other-backend is set to 'doc.") + +(defvar org-lparse-body-only nil + "Bind this to BODY-ONLY arg of `org-lparse'.") + +(defvar org-lparse-to-buffer nil + "Bind this to TO-BUFFER arg of `org-lparse'.") + +(defun org-lparse-get-block-params (params) + (save-match-data + (when params + (setq params (org-trim params)) + (unless (string-match "\\`(.*)\\'" params) + (setq params (format "(%s)" params))) + (ignore-errors (read params))))) + +(defvar org-heading-keyword-regexp-format) ; defined in org.el +(defvar org-lparse-special-blocks '("list-table" "annotation")) +(defun org-do-lparse (arg &optional hidden ext-plist + to-buffer body-only pub-dir) + "Export the outline to various formats. +See `org-lparse' for more information. This function is a +html-agnostic version of the `org-export-as-html' function in 7.5 +version." + ;; 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"))) + + (org-lparse-warn + (format "Exporting to %s using org-lparse..." + (upcase (symbol-name + (or org-lparse-backend org-lparse-other-backend))))) + + (setq-default org-todo-line-regexp org-todo-line-regexp) + (setq-default org-deadline-line-regexp org-deadline-line-regexp) + (setq-default org-done-keywords org-done-keywords) + (setq-default org-maybe-keyword-time-regexp org-maybe-keyword-time-regexp) + (let* (hfy-user-sheet-assoc ; let `htmlfontify' know that + ; we are interested in + ; collecting styles + org-lparse-encode-pending + org-lparse-par-open + (org-lparse-par-open-stashed 0) + + ;; list related vars + (org-lparse-list-level 0) ; list level starts at 1. A + ; value of 0 implies we are + ; outside of any list + (org-lparse-list-item-count 0) + org-lparse-list-stack + + ;; list-table related vars + org-lparse-list-table-p + org-lparse-list-table:table-cell-open + org-lparse-list-table:table-row + org-lparse-list-table:lines + + org-lparse-outline-text-open + (org-lparse-latex-fragment-fallback ; currently used only by + ; odt exporter + (or (ignore-errors (org-lparse-get 'LATEX-FRAGMENT-FALLBACK)) + (if (and (org-check-external-command "latex" "" t) + (org-check-external-command "dvipng" "" t)) + 'dvipng + 'verbatim))) + (org-lparse-insert-tag-with-newlines 'both) + (org-lparse-to-buffer to-buffer) + (org-lparse-body-only body-only) + (org-lparse-entity-control-callbacks-alist + (org-lparse-get 'ENTITY-CONTROL)) + (org-lparse-entity-format-callbacks-alist + (org-lparse-get 'ENTITY-FORMAT)) + (opt-plist + (org-export-process-option-filters + (org-combine-plists (org-default-export-plist) + ext-plist + (org-infile-export-plist)))) + (body-only (or body-only (plist-get opt-plist :body-only))) + valid org-lparse-dyn-first-heading-pos + (odd org-odd-levels-only) + (region-p (org-region-active-p)) + (rbeg (and region-p (region-beginning))) + (rend (and region-p (region-end))) + (subtree-p + (if (plist-get opt-plist :ignore-subtree-p) + nil + (when region-p + (save-excursion + (goto-char rbeg) + (and (org-at-heading-p) + (>= (org-end-of-subtree t t) rend)))))) + (level-offset (if subtree-p + (save-excursion + (goto-char rbeg) + (+ (funcall outline-level) + (if org-odd-levels-only 1 0))) + 0)) + (opt-plist (setq org-export-opt-plist + (if subtree-p + (org-export-add-subtree-options opt-plist rbeg) + opt-plist))) + ;; The following two are dynamically scoped into other + ;; routines below. + (org-current-export-dir + (or pub-dir (org-lparse-get 'EXPORT-DIR opt-plist))) + (org-current-export-file buffer-file-name) + (level 0) (line "") (origline "") txt todo + (umax nil) + (umax-toc nil) + (filename (if to-buffer nil + (expand-file-name + (concat + (file-name-sans-extension + (or (and subtree-p + (org-entry-get (region-beginning) + "EXPORT_FILE_NAME" t)) + (file-name-nondirectory buffer-file-name))) + "." (org-lparse-get 'FILE-NAME-EXTENSION opt-plist)) + (file-name-as-directory + (or pub-dir (org-lparse-get 'EXPORT-DIR opt-plist)))))) + (current-dir (if buffer-file-name + (file-name-directory buffer-file-name) + default-directory)) + (auto-insert nil) ; Avoid any auto-insert stuff for the new file + (buffer (if to-buffer + (cond + ((eq to-buffer 'string) + (get-buffer-create (org-lparse-get 'EXPORT-BUFFER-NAME))) + (t (get-buffer-create to-buffer))) + (find-file-noselect + (or (let ((f (org-lparse-get 'INIT-METHOD))) + (and f (functionp f) (funcall f filename))) + filename)))) + (org-levels-open (make-vector org-level-max nil)) + (dummy (mapc + (lambda(p) + (let* ((val (plist-get opt-plist p)) + (val (org-xml-encode-org-text-skip-links val))) + (setq opt-plist (plist-put opt-plist p val)))) + '(:date :author :keywords :description))) + (date (plist-get opt-plist :date)) + (date (cond + ((and date (string-match "%" date)) + (format-time-string date)) + (date date) + (t (format-time-string "%Y-%m-%d %T %Z")))) + (dummy (setq opt-plist (plist-put opt-plist :effective-date date))) + (title (org-xml-encode-org-text-skip-links + (or (and subtree-p (org-export-get-title-from-subtree)) + (plist-get opt-plist :title) + (and (not body-only) + (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"))) + (dummy (setq opt-plist (plist-put opt-plist :title title))) + (html-table-tag (plist-get opt-plist :html-table-tag)) + (quote-re0 (concat "^ *" org-quote-string "\\( +\\|[ \t]*$\\)")) + (quote-re (format org-heading-keyword-regexp-format + org-quote-string)) + (org-lparse-dyn-current-environment nil) + ;; Get the language-dependent settings + (lang-words (or (assoc (plist-get opt-plist :language) + org-export-language-setup) + (assoc "en" org-export-language-setup))) + (dummy (setq opt-plist (plist-put opt-plist :lang-words lang-words))) + (head-count 0) cnt + (start 0) + (coding-system-for-write + (or (ignore-errors (org-lparse-get 'CODING-SYSTEM-FOR-WRITE)) + (and (boundp 'buffer-file-coding-system) + buffer-file-coding-system))) + (save-buffer-coding-system + (or (ignore-errors (org-lparse-get 'CODING-SYSTEM-FOR-SAVE)) + (and (boundp 'buffer-file-coding-system) + buffer-file-coding-system))) + (region + (buffer-substring + (if region-p (region-beginning) (point-min)) + (if region-p (region-end) (point-max)))) + (org-export-have-math nil) + (org-export-footnotes-seen nil) + (org-export-footnotes-data (org-footnote-all-labels 'with-defs)) + (org-footnote-insert-pos-for-preprocessor 'point-min) + (org-lparse-opt-plist opt-plist) + (lines + (org-split-string + (org-export-preprocess-string + region + :emph-multiline t + :for-backend (if (equal org-lparse-backend 'xhtml) ; hack + 'html + org-lparse-backend) + :skip-before-1st-heading + (plist-get opt-plist :skip-before-1st-heading) + :drawers (plist-get opt-plist :drawers) + :todo-keywords (plist-get opt-plist :todo-keywords) + :tasks (plist-get opt-plist :tasks) + :tags (plist-get opt-plist :tags) + :priority (plist-get opt-plist :priority) + :footnotes (plist-get opt-plist :footnotes) + :timestamps (plist-get opt-plist :timestamps) + :archived-trees + (plist-get opt-plist :archived-trees) + :select-tags (plist-get opt-plist :select-tags) + :exclude-tags (plist-get opt-plist :exclude-tags) + :add-text + (plist-get opt-plist :text) + :LaTeX-fragments + (plist-get opt-plist :LaTeX-fragments)) + "[\r\n]")) + table-open + table-buffer table-orig-buffer + ind + rpl path attr desc descp desc1 desc2 link + snumber fnc + footnotes footref-seen + org-lparse-output-buffer + org-lparse-footnote-definitions + org-lparse-footnote-number + ;; collection + org-lparse-collect-buffer + (org-lparse-collect-count 0) ; things will get haywire if + ; collections are chained. Use + ; this variable to assert this + ; pre-requisite + org-lparse-toc + href + ) + + (let ((inhibit-read-only t)) + (org-unmodified + (remove-text-properties (point-min) (point-max) + '(:org-license-to-kill t)))) + + (message "Exporting...") + (org-init-section-numbers) + + ;; Switch to the output buffer + (setq org-lparse-output-buffer buffer) + (set-buffer org-lparse-output-buffer) + (let ((inhibit-read-only t)) (erase-buffer)) + (fundamental-mode) + (org-install-letbind) + + (and (fboundp 'set-buffer-file-coding-system) + (set-buffer-file-coding-system coding-system-for-write)) + + (let ((case-fold-search nil) + (org-odd-levels-only odd)) + ;; create local variables for all options, to make sure all called + ;; functions get the correct information + (mapc (lambda (x) + (set (make-local-variable (nth 2 x)) + (plist-get opt-plist (car x)))) + org-export-plist-vars) + (setq umax (if arg (prefix-numeric-value arg) + org-export-headline-levels)) + (setq umax-toc (if (integerp org-export-with-toc) + (min org-export-with-toc umax) + umax)) + + (when (and org-export-with-toc (not body-only)) + (setq lines (org-lparse-prepare-toc + lines level-offset opt-plist umax-toc))) + + (unless body-only + (org-lparse-begin 'DOCUMENT-CONTENT opt-plist) + (org-lparse-begin 'DOCUMENT-BODY opt-plist)) + + (setq head-count 0) + (org-init-section-numbers) + + (org-lparse-begin-paragraph) + + (while (setq line (pop lines) origline line) + (catch 'nextline + (when (and (org-lparse-current-environment-p 'quote) + (string-match org-outline-regexp-bol line)) + (org-lparse-end-environment 'quote)) + + (when (org-lparse-current-environment-p 'quote) + (org-lparse-insert 'LINE line) + (throw 'nextline nil)) + + ;; Fixed-width, verbatim lines (examples) + (when (and org-export-with-fixed-width + (string-match "^[ \t]*:\\(\\([ \t]\\|$\\)\\(.*\\)\\)" line)) + (when (not (org-lparse-current-environment-p 'fixedwidth)) + (org-lparse-begin-environment 'fixedwidth)) + (org-lparse-insert 'LINE (match-string 3 line)) + (when (or (not lines) + (not (string-match "^[ \t]*:\\(\\([ \t]\\|$\\)\\(.*\\)\\)" + (car lines)))) + (org-lparse-end-environment 'fixedwidth)) + (throw 'nextline nil)) + + ;; Notes: The baseline version of org-html.el (git commit + ;; 3d802e), while encoutering a *line-long* protected text, + ;; does one of the following two things based on the state + ;; of the export buffer. + + ;; 1. If a paragraph element has just been opened and + ;; contains only whitespace as content, insert the + ;; protected text as part of the previous paragraph. + + ;; 2. If the paragraph element has already been opened and + ;; contains some valid content insert the protected text + ;; as part of the current paragraph. + + ;; I think ---> + + ;; Scenario 1 mentioned above kicks in when a block of + ;; protected text has to be inserted enbloc. For example, + ;; this happens, when inserting an source or example block + ;; or preformatted content enclosed in #+backend, + ;; #+begin_bakend ... #+end_backend) + + ;; Scenario 2 mentioned above kicks in when the protected + ;; text is part of a running sentence. For example this + ;; happens in the case of an *multiline* LaTeX equation that + ;; needs to be inserted verbatim. + + ;; org-html.el in the master branch seems to do some + ;; jugglery by moving paragraphs around. Inorder to make + ;; these changes backend-agnostic introduce a new text + ;; property org-native-text and impose the added semantics + ;; that these protected blocks appear outside of a + ;; conventional paragraph element. + ;; + ;; Extra Note: Check whether org-example and org-native-text + ;; are entirely equivalent. + + ;; Fixes bug reported by Christian Moe concerning verbatim + ;; LaTeX fragments. + ;; on git commit 533ba3f90250a1f25f494c390d639ea6274f235c + ;; http://repo.or.cz/w/org-mode/org-jambu.git/shortlog/refs/heads/staging + ;; See http://lists.gnu.org/archive/html/emacs-orgmode/2011-03/msg01379.html + + ;; Native Text + (when (and (get-text-property 0 'org-native-text line) + ;; Make sure it is the entire line that is protected + (not (< (or (next-single-property-change + 0 'org-native-text line) 10000) + (length line)))) + (let ((ind (get-text-property 0 'original-indentation line))) + (org-lparse-begin-environment 'native) + (org-lparse-insert 'LINE line) + (while (and lines + (or (= (length (car lines)) 0) + (not ind) + (equal ind (get-text-property + 0 'original-indentation (car lines)))) + (or (= (length (car lines)) 0) + (get-text-property 0 'org-native-text (car lines)))) + (org-lparse-insert 'LINE (pop lines))) + (org-lparse-end-environment 'native)) + (throw 'nextline nil)) + + ;; Protected HTML + (when (and (get-text-property 0 'org-protected line) + ;; Make sure it is the entire line that is protected + (not (< (or (next-single-property-change + 0 'org-protected line) 10000) + (length line)))) + (let ((ind (get-text-property 0 'original-indentation line))) + (org-lparse-insert 'LINE line) + (while (and lines + (or (= (length (car lines)) 0) + (not ind) + (equal ind (get-text-property + 0 'original-indentation (car lines)))) + (or (= (length (car lines)) 0) + (get-text-property 0 'org-protected (car lines)))) + (org-lparse-insert 'LINE (pop lines)))) + (throw 'nextline nil)) + + ;; Blockquotes, verse, and center + (when (string-match + "^ORG-\\(.+\\)-\\(START\\|END\\)\\([ \t]+.*\\)?$" line) + (let* ((style (intern (downcase (match-string 1 line)))) + (env-options-plist (org-lparse-get-block-params + (match-string 3 line))) + (f (cdr (assoc (match-string 2 line) + '(("START" . org-lparse-begin-environment) + ("END" . org-lparse-end-environment)))))) + (when (memq style + (append + '(blockquote verse center) + (mapcar 'intern org-lparse-special-blocks))) + (funcall f style env-options-plist) + (throw 'nextline nil)))) + + (run-hooks 'org-export-html-after-blockquotes-hook) + (when (org-lparse-current-environment-p 'verse) + (let ((i (org-get-string-indentation line))) + (if (> i 0) + (setq line (concat + (let ((org-lparse-encode-pending t)) + (org-lparse-format 'SPACES (* 2 i))) + " " (org-trim line)))) + (unless (string-match "\\\\\\\\[ \t]*$" line) + (setq line (concat line "\\\\"))))) + + ;; make targets to anchors + (setq start 0) + (while (string-match + "<<<?\\([^<>]*\\)>>>?\\((INVISIBLE)\\)?[ \t]*\n?" line start) + (cond + ((get-text-property (match-beginning 1) 'org-protected line) + (setq start (match-end 1))) + ((match-end 2) + (setq line (replace-match + (let ((org-lparse-encode-pending t)) + (org-lparse-format + 'ANCHOR "" (org-solidify-link-text + (match-string 1 line)))) + t t line))) + ((and org-export-with-toc (equal (string-to-char line) ?*)) + ;; FIXME: NOT DEPENDENT on TOC????????????????????? + (setq line (replace-match + (let ((org-lparse-encode-pending t)) + (org-lparse-format + 'FONTIFY (match-string 1 line) "target")) + ;; (concat "@<i>" (match-string 1 line) "@</i> ") + t t line))) + (t + (setq line (replace-match + (concat + (let ((org-lparse-encode-pending t)) + (org-lparse-format + 'ANCHOR (match-string 1 line) + (org-solidify-link-text (match-string 1 line)) + "target")) " ") + t t line))))) + + (let ((org-lparse-encode-pending t)) + (setq line (org-lparse-handle-time-stamps line))) + + ;; replace "&" by "&", "<" and ">" by "<" and ">" + ;; handle @<..> HTML tags (replace "@>..<" by "<..>") + ;; Also handle sub_superscripts and checkboxes + (or (string-match org-table-hline-regexp line) + (string-match "^[ \t]*\\([+]-\\||[ ]\\)[-+ |]*[+|][ \t]*$" line) + (setq line (org-xml-encode-org-text-skip-links line))) + + (setq line (org-lparse-format-org-link line opt-plist)) + + ;; TODO items + (if (and org-todo-line-regexp + (string-match org-todo-line-regexp line) + (match-beginning 2)) + (setq line (concat + (substring line 0 (match-beginning 2)) + (org-lparse-format 'TODO (match-string 2 line)) + (substring line (match-end 2))))) + + ;; Does this contain a reference to a footnote? + (when org-export-with-footnotes + (setq start 0) + (while (string-match "\\([^* \t].*?\\)[ \t]*\\[\\([0-9]+\\)\\]" line start) + ;; Discard protected matches not clearly identified as + ;; footnote markers. + (if (or (get-text-property (match-beginning 2) 'org-protected line) + (not (get-text-property (match-beginning 2) 'org-footnote line))) + (setq start (match-end 2)) + (let ((n (match-string 2 line)) refcnt a) + (if (setq a (assoc n footref-seen)) + (progn + (setcdr a (1+ (cdr a))) + (setq refcnt (cdr a))) + (setq refcnt 1) + (push (cons n 1) footref-seen)) + (setq line + (replace-match + (concat + (or (match-string 1 line) "") + (org-lparse-format + 'FOOTNOTE-REFERENCE + n (cdr (assoc n org-lparse-footnote-definitions)) + refcnt) + ;; If another footnote is following the + ;; current one, add a separator. + (if (save-match-data + (string-match "\\`\\[[0-9]+\\]" + (substring line (match-end 0)))) + (ignore-errors + (org-lparse-get 'FOOTNOTE-SEPARATOR)) + "")) + t t line)))))) + + (cond + ((string-match "^\\(\\*+\\)\\(?: +\\(.*?\\)\\)?[ \t]*$" line) + ;; This is a headline + (setq level (org-tr-level (- (match-end 1) (match-beginning 1) + level-offset)) + txt (match-string 2 line)) + (if (string-match quote-re0 txt) + (setq txt (replace-match "" t t txt))) + (if (<= level (max umax umax-toc)) + (setq head-count (+ head-count 1))) + (unless org-lparse-dyn-first-heading-pos + (setq org-lparse-dyn-first-heading-pos (point))) + (org-lparse-begin-level level txt umax head-count) + + ;; QUOTES + (when (string-match quote-re line) + (org-lparse-begin-environment 'quote))) + + ((and org-export-with-tables + (string-match "^\\([ \t]*\\)\\(|\\|\\+-+\\+\\)" line)) + (when (not table-open) + ;; New table starts + (setq table-open t table-buffer nil table-orig-buffer nil)) + + ;; Accumulate lines + (setq table-buffer (cons line table-buffer) + table-orig-buffer (cons origline table-orig-buffer)) + (when (or (not lines) + (not (string-match "^\\([ \t]*\\)\\(|\\|\\+-+\\+\\)" + (car lines)))) + (setq table-open nil + table-buffer (nreverse table-buffer) + table-orig-buffer (nreverse table-orig-buffer)) + (org-lparse-end-paragraph) + (org-lparse-insert 'TABLE table-buffer table-orig-buffer))) + + ;; Normal lines + + (t + ;; This line either is list item or end a list. + (when (get-text-property 0 'list-item line) + (setq line (org-lparse-export-list-line + line + (get-text-property 0 'list-item line) + (get-text-property 0 'list-struct line) + (get-text-property 0 'list-prevs line)))) + + ;; Horizontal line + (when (string-match "^[ \t]*-\\{5,\\}[ \t]*$" line) + (with-org-lparse-preserve-paragraph-state + (org-lparse-insert 'HORIZONTAL-LINE)) + (throw 'nextline nil)) + + ;; Empty lines start a new paragraph. If hand-formatted lists + ;; are not fully interpreted, lines starting with "-", "+", "*" + ;; also start a new paragraph. + (when (string-match "^ [-+*]-\\|^[ \t]*$" line) + (when org-lparse-footnote-number + (org-lparse-end-footnote-definition org-lparse-footnote-number) + (setq org-lparse-footnote-number nil)) + (org-lparse-begin-paragraph)) + + ;; Is this the start of a footnote? + (when org-export-with-footnotes + (when (and (boundp 'footnote-section-tag-regexp) + (string-match (concat "^" footnote-section-tag-regexp) + line)) + ;; ignore this line + (throw 'nextline nil)) + (when (string-match "^[ \t]*\\[\\([0-9]+\\)\\]" line) + (org-lparse-end-paragraph) + (setq org-lparse-footnote-number (match-string 1 line)) + (setq line (replace-match "" t t line)) + (org-lparse-begin-footnote-definition org-lparse-footnote-number))) + ;; Check if the line break needs to be conserved + (cond + ((string-match "\\\\\\\\[ \t]*$" line) + (setq line (replace-match + (org-lparse-format 'LINE-BREAK) + t t line))) + (org-export-preserve-breaks + (setq line (concat line (org-lparse-format 'LINE-BREAK))))) + + ;; Check if a paragraph should be started + (let ((start 0)) + (while (and org-lparse-par-open + (string-match "\\\\par\\>" line start)) + (error "FIXME") + ;; Leave a space in the </p> so that the footnote matcher + ;; does not see this. + (if (not (get-text-property (match-beginning 0) + 'org-protected line)) + (setq line (replace-match "</p ><p >" t t line))) + (setq start (match-end 0)))) + + (org-lparse-insert 'LINE line))))) + + ;; Properly close all local lists and other lists + (when (org-lparse-current-environment-p 'quote) + (org-lparse-end-environment 'quote)) + + (org-lparse-end-level 1 umax) + + ;; the </div> to close the last text-... div. + (when (and (> umax 0) org-lparse-dyn-first-heading-pos) + (org-lparse-end-outline-text-or-outline)) + + (org-lparse-end 'DOCUMENT-BODY opt-plist) + (unless body-only + (org-lparse-end 'DOCUMENT-CONTENT)) + + (unless (plist-get opt-plist :buffer-will-be-killed) + (set-auto-mode t)) + + (org-lparse-end 'EXPORT) + + ;; kill collection buffer + (when org-lparse-collect-buffer + (kill-buffer org-lparse-collect-buffer)) + + (goto-char (point-min)) + (or (org-export-push-to-kill-ring + (upcase (symbol-name org-lparse-backend))) + (message "Exporting... done")) + + (cond + ((not to-buffer) + (let ((f (org-lparse-get 'SAVE-METHOD))) + (or (and f (functionp f) (funcall f filename opt-plist)) + (save-buffer))) + (or (and (boundp 'org-lparse-other-backend) + org-lparse-other-backend + (not (equal org-lparse-backend org-lparse-other-backend)) + (org-lparse-do-convert + buffer-file-name (symbol-name org-lparse-other-backend))) + (current-buffer))) + ((eq to-buffer 'string) + (prog1 (buffer-substring (point-min) (point-max)) + (kill-buffer (current-buffer)))) + (t (current-buffer)))))) + +(defun org-lparse-format-table (lines olines) + "Retuns backend-specific code for org-type and table-type tables." + (if (stringp lines) + (setq lines (org-split-string lines "\n"))) + (if (string-match "^[ \t]*|" (car lines)) + ;; A normal org table + (org-lparse-format-org-table lines nil) + ;; Table made by table.el + (or (org-lparse-format-table-table-using-table-generate-source + ;; FIXME: Need to take care of this during merge + (if (eq org-lparse-backend 'xhtml) 'html org-lparse-backend) + olines + (not org-export-prefer-native-exporter-for-tables)) + ;; We are here only when table.el table has NO col or row + ;; spanning and the user prefers using org's own converter for + ;; exporting of such simple table.el tables. + (org-lparse-format-table-table lines)))) + +(defun org-lparse-table-get-colalign-info (lines) + (let ((col-cookies (org-find-text-property-in-string + 'org-col-cookies (car lines)))) + (when (and col-cookies org-table-clean-did-remove-column) + (setq col-cookies + (mapcar (lambda (x) (cons (1- (car x)) (cdr x))) col-cookies))) + col-cookies)) + +(defvar org-lparse-table-style) +(defvar org-lparse-table-ncols) +(defvar org-lparse-table-rownum) +(defvar org-lparse-table-is-styled) +(defvar org-lparse-table-begin-marker) +(defvar org-lparse-table-num-numeric-items-per-column) +(defvar org-lparse-table-colalign-info) +(defvar org-lparse-table-colalign-vector) + +;; Following variables are defined in org-table.el +(defvar org-table-number-fraction) +(defvar org-table-number-regexp) +(defun org-lparse-org-table-to-list-table (lines &optional splice) + "Convert org-table to list-table. +LINES is a list of the form (ROW1 ROW2 ROW3 ...) where each +element is a `string' representing a single row of org-table. +Thus each ROW has vertical separators \"|\" separating the table +fields. A ROW could also be a row-group separator of the form +\"|---...|\". Return a list of the form (ROW1 ROW2 ROW3 +...). ROW could either be symbol `:hrule' or a list of the +form (FIELD1 FIELD2 FIELD3 ...) as appropriate." + (let (line lines-1) + (cond + (splice + (while (setq line (pop lines)) + (unless (string-match "^[ \t]*|-" line) + (push (org-split-string line "[ \t]*|[ \t]*") lines-1)))) + (t + (while (setq line (pop lines)) + (cond + ((string-match "^[ \t]*|-" line) + (when lines + (push :hrule lines-1))) + (t + (push (org-split-string line "[ \t]*|[ \t]*") lines-1)))))) + (nreverse lines-1))) + +(defun org-lparse-insert-org-table (lines &optional splice) + "Format a org-type table into backend-specific code. +LINES is a list of lines. Optional argument SPLICE means, do not +insert header and surrounding <table> tags, just format the lines. +Optional argument NO-CSS means use XHTML attributes instead of CSS +for formatting. This is required for the DocBook exporter." + (require '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))) + (let* ((caption (org-find-text-property-in-string 'org-caption (car lines))) + (caption (and caption (org-xml-encode-org-text caption))) + (label (org-find-text-property-in-string 'org-label (car lines))) + (org-lparse-table-colalign-info (org-lparse-table-get-colalign-info lines)) + (attributes (org-find-text-property-in-string 'org-attributes + (car lines))) + (head (and org-export-highlight-first-table-line + (delq nil (mapcar + (lambda (x) (string-match "^[ \t]*|-" x)) + (cdr lines)))))) + (setq lines (org-lparse-org-table-to-list-table lines splice)) + (org-lparse-insert-list-table + lines splice caption label attributes head org-lparse-table-colalign-info))) + +(defun org-lparse-insert-list-table (lines &optional splice + caption label attributes head + org-lparse-table-colalign-info) + (or (featurep 'org-table) ; required for + (require 'org-table)) ; `org-table-number-regexp' + (let* ((org-lparse-table-rownum -1) org-lparse-table-ncols i (cnt 0) + tbopen fields line + org-lparse-table-cur-rowgrp-is-hdr + org-lparse-table-rowgrp-open + org-lparse-table-num-numeric-items-per-column + org-lparse-table-colalign-vector n + org-lparse-table-rowgrp-info + org-lparse-table-begin-marker + (org-lparse-table-style 'org-table) + org-lparse-table-is-styled) + (cond + (splice + (setq org-lparse-table-is-styled nil) + (while (setq line (pop lines)) + (insert (org-lparse-format-table-row line) "\n"))) + (t + (setq org-lparse-table-is-styled t) + (org-lparse-begin 'TABLE caption label attributes) + (setq org-lparse-table-begin-marker (point)) + (org-lparse-begin-table-rowgroup head) + (while (setq line (pop lines)) + (cond + ((equal line :hrule) + (org-lparse-begin-table-rowgroup)) + (t + (insert (org-lparse-format-table-row line) "\n")))) + (org-lparse-end 'TABLE-ROWGROUP) + (org-lparse-end-table))))) + +(defun org-lparse-format-org-table (lines &optional splice) + (with-temp-buffer + (org-lparse-insert-org-table lines splice) + (buffer-substring-no-properties (point-min) (point-max)))) + +(defun org-lparse-format-list-table (lines &optional splice) + (with-temp-buffer + (org-lparse-insert-list-table lines splice) + (buffer-substring-no-properties (point-min) (point-max)))) + +(defun org-lparse-insert-table-table (lines) + "Format a table generated by table.el into backend-specific code. +This conversion does *not* use `table-generate-source' from table.el. +This has the advantage that Org-mode's HTML conversions can be used. +But it has the disadvantage, that no cell- or row-spanning is allowed." + (let (line field-buffer + (org-lparse-table-cur-rowgrp-is-hdr + org-export-highlight-first-table-line) + (caption nil) + (attributes nil) + (label nil) + (org-lparse-table-style 'table-table) + (org-lparse-table-is-styled nil) + fields org-lparse-table-ncols i (org-lparse-table-rownum -1) + (empty (org-lparse-format 'SPACES 1))) + (org-lparse-begin 'TABLE caption label attributes) + (while (setq line (pop lines)) + (cond + ((string-match "^[ \t]*\\+-" line) + (when field-buffer + (let ((org-export-table-row-tags '("<tr>" . "</tr>")) + ;; (org-export-html-table-use-header-tags-for-first-column nil) + ) + (insert (org-lparse-format-table-row field-buffer empty))) + (setq org-lparse-table-cur-rowgrp-is-hdr nil) + (setq field-buffer nil))) + (t + ;; Break the line into fields and store the fields + (setq fields (org-split-string line "[ \t]*|[ \t]*")) + (if field-buffer + (setq field-buffer (mapcar + (lambda (x) + (concat x (org-lparse-format 'LINE-BREAK) + (pop fields))) + field-buffer)) + (setq field-buffer fields))))) + (org-lparse-end-table))) + +(defun org-lparse-format-table-table (lines) + (with-temp-buffer + (org-lparse-insert-table-table lines) + (buffer-substring-no-properties (point-min) (point-max)))) + +(defvar table-source-languages) ; defined in table.el +(defun org-lparse-format-table-table-using-table-generate-source (backend + lines + &optional + spanned-only) + "Format a table into BACKEND, using `table-generate-source' from table.el. +Use SPANNED-ONLY to suppress exporting of simple table.el tables. + +When SPANNED-ONLY is nil, all table.el tables are exported. When +SPANNED-ONLY is non-nil, only tables with either row or column +spans are exported. + +This routine returns the generated source or nil as appropriate. + +Refer docstring of `org-export-prefer-native-exporter-for-tables' +for further information." + (require 'table) + (with-current-buffer (get-buffer-create " org-tmp1 ") + (erase-buffer) + (insert (mapconcat 'identity lines "\n")) + (goto-char (point-min)) + (if (not (re-search-forward "|[^+]" nil t)) + (error "Error processing table")) + (table-recognize-table) + (when (or (not spanned-only) + (let* ((dim (table-query-dimension)) + (c (nth 4 dim)) (r (nth 5 dim)) (cells (nth 6 dim))) + (not (= (* c r) cells)))) + (with-current-buffer (get-buffer-create " org-tmp2 ") (erase-buffer)) + (cond + ((member backend table-source-languages) + (table-generate-source backend " org-tmp2 ") + (set-buffer " org-tmp2 ") + (buffer-substring (point-min) (point-max))) + (t + ;; table.el doesn't support the given backend. Currently this + ;; happens in case of odt export. Strip the table from the + ;; generated document. A better alternative would be to embed + ;; the table as ascii text in the output document. + (org-lparse-warn + (concat + "Found table.el-type table in the source org file. " + (format "table.el doesn't support %s backend. " + (upcase (symbol-name backend))) + "Skipping ahead ...")) + ""))))) + +(defun org-lparse-handle-time-stamps (s) + "Format time stamps in string S, or remove them." + (catch 'exit + (let (r b) + (when org-maybe-keyword-time-regexp + (while (string-match org-maybe-keyword-time-regexp s) + (or b (setq b (substring s 0 (match-beginning 0)))) + (setq r (concat + r (substring s 0 (match-beginning 0)) " " + (org-lparse-format + 'FONTIFY + (concat + (if (match-end 1) + (org-lparse-format + 'FONTIFY + (match-string 1 s) "timestamp-kwd")) + " " + (org-lparse-format + 'FONTIFY + (substring (org-translate-time (match-string 3 s)) 1 -1) + "timestamp")) + "timestamp-wrapper")) + s (substring s (match-end 0))))) + + ;; Line break if line started and ended with time stamp stuff + (if (not r) + s + (setq r (concat r s)) + (unless (string-match "\\S-" (concat b s)) + (setq r (concat r (org-lparse-format 'LINE-BREAK)))) + r)))) + +(defun org-xml-encode-plain-text (s) + "Convert plain text characters to HTML equivalent. +Possible conversions are set in `org-export-html-protect-char-alist'." + (let ((cl (org-lparse-get 'PLAIN-TEXT-MAP)) c) + (while (setq c (pop cl)) + (let ((start 0)) + (while (string-match (car c) s start) + (setq s (replace-match (cdr c) t t s) + start (1+ (match-beginning 0)))))) + s)) + +(defun org-xml-encode-org-text-skip-links (string) + "Prepare STRING for HTML export. Apply all active conversions. +If there are links in the string, don't modify these. If STRING +is nil, return nil." + (when string + (let* ((re (concat org-bracket-link-regexp "\\|" + (org-re "[ \t]+\\(:[[:alnum:]_@#%:]+:\\)[ \t]*$"))) + m s l res) + (while (setq m (string-match re string)) + (setq s (substring string 0 m) + l (match-string 0 string) + string (substring string (match-end 0))) + (push (org-xml-encode-org-text s) res) + (push l res)) + (push (org-xml-encode-org-text string) res) + (apply 'concat (nreverse res))))) + +(defun org-xml-encode-org-text (s) + "Apply all active conversions to translate special ASCII to HTML." + (setq s (org-xml-encode-plain-text s)) + (if org-export-html-expand + (while (string-match "@<\\([^&]*\\)>" s) + (setq s (replace-match "<\\1>" t nil s)))) + (if org-export-with-emphasize + (setq s (org-lparse-apply-char-styles s))) + (if org-export-with-special-strings + (setq s (org-lparse-convert-special-strings s))) + (if org-export-with-sub-superscripts + (setq s (org-lparse-apply-sub-superscript-styles s))) + (if org-export-with-TeX-macros + (let ((start 0) wd rep) + (while (setq start (string-match "\\\\\\([a-zA-Z]+[0-9]*\\)\\({}\\)?" + s start)) + (if (get-text-property (match-beginning 0) 'org-protected s) + (setq start (match-end 0)) + (setq wd (match-string 1 s)) + (if (setq rep (org-lparse-format 'ORG-ENTITY wd)) + (setq s (replace-match rep t t s)) + (setq start (+ start (length wd)))))))) + s) + +(defun org-lparse-convert-special-strings (string) + "Convert special characters in STRING to HTML." + (let ((all (org-lparse-get 'SPECIAL-STRING-REGEXPS)) + e a re rpl start) + (while (setq a (pop all)) + (setq re (car a) rpl (cdr a) start 0) + (while (string-match re string start) + (if (get-text-property (match-beginning 0) 'org-protected string) + (setq start (match-end 0)) + (setq string (replace-match rpl t nil string))))) + string)) + +(defun org-lparse-apply-sub-superscript-styles (string) + "Apply subscript and superscript styles to STRING. +Use `org-export-with-sub-superscripts' to control application of +sub and superscript styles." + (let (key c (s 0) (requireb (eq org-export-with-sub-superscripts '{}))) + (while (string-match org-match-substring-regexp string s) + (cond + ((and requireb (match-end 8)) (setq s (match-end 2))) + ((get-text-property (match-beginning 2) 'org-protected string) + (setq s (match-end 2))) + (t + (setq s (match-end 1) + key (if (string= (match-string 2 string) "_") + 'subscript 'superscript) + c (or (match-string 8 string) + (match-string 6 string) + (match-string 5 string)) + string (replace-match + (concat (match-string 1 string) + (org-lparse-format 'FONTIFY c key)) + t t string))))) + (while (string-match "\\\\\\([_^]\\)" string) + (setq string (replace-match (match-string 1 string) t t string))) + string)) + +(defvar org-lparse-char-styles + `(("*" bold) + ("/" emphasis) + ("_" underline) + ("=" code) + ("~" verbatim) + ("+" strike)) + "Map Org emphasis markers to char styles. +This is an alist where each element is of the +form (ORG-EMPHASIS-CHAR . CHAR-STYLE).") + +(defun org-lparse-apply-char-styles (string) + "Apply char styles to STRING. +The variable `org-lparse-char-styles' controls how the Org +emphasis markers are interpreted." + (let ((s 0) rpl) + (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 s (match-beginning 0) + rpl + (concat + (match-string 1 string) + (org-lparse-format + 'FONTIFY (match-string 4 string) + (nth 1 (assoc (match-string 3 string) + org-lparse-char-styles))) + (match-string 5 string)) + string (replace-match rpl t t string) + s (+ s (- (length rpl) 2))) + (setq s (1+ s)))) + string)) + +(defun org-lparse-export-list-line (line pos struct prevs) + "Insert list syntax in export buffer. Return LINE, maybe modified. + +POS is the item position or line position the line had before +modifications to buffer. STRUCT is the list structure. PREVS is +the alist of previous items." + (let* ((get-type + (function + ;; Translate type of list containing POS to "d", "o" or + ;; "u". + (lambda (pos struct prevs) + (let ((type (org-list-get-list-type pos struct prevs))) + (cond + ((eq 'ordered type) "o") + ((eq 'descriptive type) "d") + (t "u")))))) + (get-closings + (function + ;; Return list of all items and sublists ending at POS, in + ;; reverse order. + (lambda (pos) + (let (out) + (catch 'exit + (mapc (lambda (e) + (let ((end (nth 6 e)) + (item (car e))) + (cond + ((= end pos) (push item out)) + ((>= item pos) (throw 'exit nil))))) + struct)) + out))))) + ;; First close any previous item, or list, ending at POS. + (mapc (lambda (e) + (let* ((lastp (= (org-list-get-last-item e struct prevs) e)) + (first-item (org-list-get-list-begin e struct prevs)) + (type (funcall get-type first-item struct prevs))) + (org-lparse-end-paragraph) + ;; Ending for every item + (org-lparse-end-list-item-1 type) + ;; We're ending last item of the list: end list. + (when lastp + (org-lparse-end-list type) + (org-lparse-begin-paragraph)))) + (funcall get-closings pos)) + (cond + ;; At an item: insert appropriate tags in export buffer. + ((assq pos struct) + (string-match + (concat "[ \t]*\\(\\S-+[ \t]*\\)" + "\\(?:\\[@\\(?:start:\\)?\\([0-9]+\\|[A-Za-z]\\)\\][ \t]*\\)?" + "\\(?:\\(\\[[ X-]\\]\\)[ \t]+\\)?" + "\\(?:\\(.*\\)[ \t]+::\\(?:[ \t]+\\|$\\)\\)?" + "\\(.*\\)") line) + (let* ((checkbox (match-string 3 line)) + (desc-tag (or (match-string 4 line) "???")) + (body (or (match-string 5 line) "")) + (list-beg (org-list-get-list-begin pos struct prevs)) + (firstp (= list-beg pos)) + ;; Always refer to first item to determine list type, in + ;; case list is ill-formed. + (type (funcall get-type list-beg struct prevs)) + (counter (let ((count-tmp (org-list-get-counter pos struct))) + (cond + ((not count-tmp) nil) + ((string-match "[A-Za-z]" count-tmp) + (- (string-to-char (upcase count-tmp)) 64)) + ((string-match "[0-9]+" count-tmp) + count-tmp))))) + (when firstp + (org-lparse-end-paragraph) + (org-lparse-begin-list type)) + + (let ((arg (cond ((equal type "d") desc-tag) + ((equal type "o") counter)))) + (org-lparse-begin-list-item type arg)) + + ;; If line had a checkbox, some additional modification is required. + (when checkbox + (setq body + (concat + (org-lparse-format + 'FONTIFY (concat + "[" + (cond + ((string-match "X" checkbox) "X") + ((string-match " " checkbox) + (org-lparse-format 'SPACES 1)) + (t "-")) + "]") + 'code) + " " + body))) + ;; Return modified line + body)) + ;; At a list ender: go to next line (side-effects only). + ((equal "ORG-LIST-END-MARKER" line) (throw 'nextline nil)) + ;; Not at an item: return line unchanged (side-effects only). + (t line)))) + +(defun org-lparse-bind-local-variables (opt-plist) + (mapc (lambda (x) + (set (make-local-variable (nth 2 x)) + (plist-get opt-plist (car x)))) + org-export-plist-vars)) + +(defvar org-lparse-table-rowgrp-open) +(defvar org-lparse-table-cur-rowgrp-is-hdr) +(defvar org-lparse-footnote-number) +(defvar org-lparse-footnote-definitions) +(defvar org-lparse-output-buffer nil + "Buffer to which `org-do-lparse' writes to. +This buffer contains the contents of the to-be-created exported +document.") + +(defcustom org-lparse-debug nil + "Enable or Disable logging of `org-lparse' callbacks. +The parameters passed to the backend-registered ENTITY-CONTROL +and ENTITY-FORMAT callbacks are logged as comment strings in the +exported buffer. (org-lparse-format 'COMMENT fmt args) is used +for logging. Customize this variable only if you are an expert +user. Valid values of this variable are: +nil : Disable logging +control : Log all invocations of `org-lparse-begin' and + `org-lparse-end' callbacks. +format : Log invocations of `org-lparse-format' callbacks. +t : Log all invocations of `org-lparse-begin', `org-lparse-end' + and `org-lparse-format' callbacks," + :group 'org-lparse + :type '(choice + (const :tag "Disable" nil) + (const :tag "Format callbacks" format) + (const :tag "Control callbacks" control) + (const :tag "Format and Control callbacks" t))) + +(defun org-lparse-begin (entity &rest args) + "Begin ENTITY in current buffer. ARGS is entity specific. +ENTITY can be one of PARAGRAPH, LIST, LIST-ITEM etc. + +Use (org-lparse-begin 'LIST \"o\") to begin a list in current +buffer. + +See `org-xhtml-entity-control-callbacks-alist' for more +information." + (when (and (member org-lparse-debug '(t control)) + (not (eq entity 'DOCUMENT-CONTENT))) + (insert (org-lparse-format 'COMMENT "%s BEGIN %S" entity args))) + + (let ((f (cadr (assoc entity org-lparse-entity-control-callbacks-alist)))) + (unless f (error "Unknown entity: %s" entity)) + (apply f args))) + +(defun org-lparse-end (entity &rest args) + "Close ENTITY in current buffer. ARGS is entity specific. +ENTITY can be one of PARAGRAPH, LIST, LIST-ITEM +etc. + +Use (org-lparse-end 'LIST \"o\") to close a list in current +buffer. + +See `org-xhtml-entity-control-callbacks-alist' for more +information." + (when (and (member org-lparse-debug '(t control)) + (not (eq entity 'DOCUMENT-CONTENT))) + (insert (org-lparse-format 'COMMENT "%s END %S" entity args))) + + (let ((f (caddr (assoc entity org-lparse-entity-control-callbacks-alist)))) + (unless f (error "Unknown entity: %s" entity)) + (apply f args))) + +(defun org-lparse-begin-paragraph (&optional style) + "Insert <p>, but first close previous paragraph if any." + (org-lparse-end-paragraph) + (org-lparse-begin 'PARAGRAPH style) + (setq org-lparse-par-open t)) + +(defun org-lparse-end-paragraph () + "Close paragraph if there is one open." + (when org-lparse-par-open + (org-lparse-end 'PARAGRAPH) + (setq org-lparse-par-open nil))) + +(defun org-lparse-end-list-item-1 (&optional type) + "Close <li> if necessary." + (org-lparse-end-paragraph) + (org-lparse-end-list-item (or type "u"))) + +(defun org-lparse-preprocess-after-blockquote-hook () + "Treat `org-lparse-special-blocks' specially." + (goto-char (point-min)) + (while (re-search-forward + "^[ \t]*#\\+\\(begin\\|end\\)_\\(\\S-+\\)[ \t]*\\(.*\\)$" nil t) + (when (member (downcase (match-string 2)) org-lparse-special-blocks) + (replace-match + (if (equal (downcase (match-string 1)) "begin") + (format "ORG-%s-START %s" (upcase (match-string 2)) + (match-string 3)) + (format "ORG-%s-END %s" (upcase (match-string 2)) + (match-string 3))) t t)))) + +(add-hook 'org-export-preprocess-after-blockquote-hook + 'org-lparse-preprocess-after-blockquote-hook) + +(defun org-lparse-strip-experimental-blocks-maybe-hook () + "Strip \"list-table\" and \"annotation\" blocks. +Stripping happens only when the exported backend is not one of +\"odt\" or \"xhtml\"." + (when (not org-lparse-backend) + (message "Stripping following blocks - %S" org-lparse-special-blocks) + (goto-char (point-min)) + (let ((case-fold-search t)) + (while + (re-search-forward + "^[ \t]*#\\+begin_\\(\\S-+\\)\\([ \t]+.*\\)?\n\\([^\000]*?\\)\n[ \t]*#\\+end_\\1\\>.*" + nil t) + (when (member (match-string 1) org-lparse-special-blocks) + (replace-match "" t t)))))) + +(add-hook 'org-export-preprocess-hook + 'org-lparse-strip-experimental-blocks-maybe-hook) + +(defvar org-lparse-list-table-p nil + "Non-nil if `org-do-lparse' is within a list-table.") + +(defvar org-lparse-dyn-current-environment nil) +(defun org-lparse-begin-environment (style &optional env-options-plist) + (case style + (list-table + (setq org-lparse-list-table-p t)) + (t (setq org-lparse-dyn-current-environment style) + (org-lparse-begin 'ENVIRONMENT style env-options-plist)))) + +(defun org-lparse-end-environment (style &optional env-options-plist) + (case style + (list-table + (setq org-lparse-list-table-p nil)) + (t (org-lparse-end 'ENVIRONMENT style env-options-plist) + (setq org-lparse-dyn-current-environment nil)))) + +(defun org-lparse-current-environment-p (style) + (eq org-lparse-dyn-current-environment style)) + +(defun org-lparse-begin-footnote-definition (n) + (org-lparse-begin-collect) + (setq org-lparse-insert-tag-with-newlines nil) + (org-lparse-begin 'FOOTNOTE-DEFINITION n)) + +(defun org-lparse-end-footnote-definition (n) + (org-lparse-end 'FOOTNOTE-DEFINITION n) + (setq org-lparse-insert-tag-with-newlines 'both) + (let ((footnote-def (org-lparse-end-collect))) + (push (cons n footnote-def) org-lparse-footnote-definitions))) + +(defvar org-lparse-collect-buffer nil + "An auxiliary buffer named \"*Org Lparse Collect*\". +`org-do-lparse' uses this as output buffer while collecting +footnote definitions and table-cell contents of list-tables. See +`org-lparse-begin-collect' and `org-lparse-end-collect'.") + +(defvar org-lparse-collect-count nil + "Count number of calls to `org-lparse-begin-collect'. +Use this counter to catch chained collections if they ever +happen.") + +(defun org-lparse-begin-collect () + "Temporarily switch to `org-lparse-collect-buffer'. +Also erase it's contents." + (unless (zerop org-lparse-collect-count) + (error "FIXME (org-lparse.el): Encountered chained collections")) + (incf org-lparse-collect-count) + (unless org-lparse-collect-buffer + (setq org-lparse-collect-buffer + (get-buffer-create "*Org Lparse Collect*"))) + (set-buffer org-lparse-collect-buffer) + (erase-buffer)) + +(defun org-lparse-end-collect () + "Switch to `org-lparse-output-buffer'. +Return contents of `org-lparse-collect-buffer' as a `string'." + (assert (> org-lparse-collect-count 0)) + (decf org-lparse-collect-count) + (prog1 (buffer-string) + (erase-buffer) + (set-buffer org-lparse-output-buffer))) + +(defun org-lparse-format (entity &rest args) + "Format ENTITY in backend-specific way and return it. +ARGS is specific to entity being formatted. + +Use (org-lparse-format 'HEADING \"text\" 1) to format text as +level 1 heading. + +See `org-xhtml-entity-format-callbacks-alist' for more information." + (when (and (member org-lparse-debug '(t format)) + (not (equal entity 'COMMENT))) + (insert (org-lparse-format 'COMMENT "%s: %S" entity args))) + (cond + ((consp entity) + (let ((text (pop args))) + (apply 'org-lparse-format 'TAGS entity text args))) + (t + (let ((f (cdr (assoc entity org-lparse-entity-format-callbacks-alist)))) + (unless f (error "Unknown entity: %s" entity)) + (apply f args))))) + +(defun org-lparse-insert (entity &rest args) + (insert (apply 'org-lparse-format entity args))) + +(defun org-lparse-prepare-toc (lines level-offset opt-plist umax-toc) + (let* ((quote-re0 (concat "^[ \t]*" org-quote-string "\\>")) + (org-min-level (org-get-min-level lines level-offset)) + (org-last-level org-min-level) + level) + (with-temp-buffer + (org-lparse-bind-local-variables opt-plist) + (erase-buffer) + (org-lparse-begin 'TOC (nth 3 (plist-get opt-plist :lang-words)) umax-toc) + (setq + lines + (mapcar + #'(lambda (line) + (when (and (string-match org-todo-line-regexp line) + (not (get-text-property 0 'org-protected line)) + (<= (setq level (org-tr-level + (- (match-end 1) (match-beginning 1) + level-offset))) + umax-toc)) + (let ((txt (save-match-data + (org-xml-encode-org-text-skip-links + (org-export-cleanup-toc-line + (match-string 3 line))))) + (todo (and + org-export-mark-todo-in-toc + (or (and (match-beginning 2) + (not (member (match-string 2 line) + org-done-keywords))) + (and (= level umax-toc) + (org-search-todo-below + line lines level))))) + tags) + ;; Check for targets + (while (string-match org-any-target-regexp line) + (setq line + (replace-match + (let ((org-lparse-encode-pending t)) + (org-lparse-format 'FONTIFY + (match-string 1 line) "target")) + t t line))) + (when (string-match + (org-re "[ \t]+:\\([[:alnum:]_@:]+\\):[ \t]*$") txt) + (setq tags (match-string 1 txt) + txt (replace-match "" t nil txt))) + (when (string-match quote-re0 txt) + (setq txt (replace-match "" t t txt))) + (while (string-match "<\\(<\\)+\\|>\\(>\\)+" txt) + (setq txt (replace-match "" t t txt))) + (org-lparse-format + 'TOC-ITEM + (let* ((snumber (org-section-number level)) + (href (replace-regexp-in-string + "\\." "-" (format "sec-%s" snumber))) + (href + (or + (cdr (assoc + href org-export-preferred-target-alist)) + href)) + (href (org-solidify-link-text href))) + (org-lparse-format 'TOC-ENTRY snumber todo txt tags href)) + level org-last-level) + (setq org-last-level level))) + line) + lines)) + (org-lparse-end 'TOC) + (setq org-lparse-toc (buffer-string)))) + lines) + +(defun org-lparse-format-table-row (fields &optional text-for-empty-fields) + (if org-lparse-table-ncols + ;; second and subsequent rows of the table + (when (and org-lparse-list-table-p + (> (length fields) org-lparse-table-ncols)) + (error "Table row has %d columns but header row claims %d columns" + (length fields) org-lparse-table-ncols)) + ;; first row of the table + (setq org-lparse-table-ncols (length fields)) + (when org-lparse-table-is-styled + (setq org-lparse-table-num-numeric-items-per-column + (make-vector org-lparse-table-ncols 0)) + (setq org-lparse-table-colalign-vector + (make-vector org-lparse-table-ncols nil)) + (let ((c -1)) + (while (< (incf c) org-lparse-table-ncols) + (let* ((col-cookie (cdr (assoc (1+ c) org-lparse-table-colalign-info))) + (align (nth 0 col-cookie))) + (setf (aref org-lparse-table-colalign-vector c) + (cond + ((string= align "l") "left") + ((string= align "r") "right") + ((string= align "c") "center") + (t nil)))))))) + (incf org-lparse-table-rownum) + (let ((i -1)) + (org-lparse-format + 'TABLE-ROW + (mapconcat + (lambda (x) + (when (and (string= x "") text-for-empty-fields) + (setq x text-for-empty-fields)) + (incf i) + (let (col-cookie horiz-span) + (when org-lparse-table-is-styled + (when (and (< i org-lparse-table-ncols) + (string-match org-table-number-regexp x)) + (incf (aref org-lparse-table-num-numeric-items-per-column i))) + (setq col-cookie (cdr (assoc (1+ i) org-lparse-table-colalign-info)) + horiz-span (nth 1 col-cookie))) + (org-lparse-format + 'TABLE-CELL x org-lparse-table-rownum i (or horiz-span 0)))) + fields "\n")))) + +(defun org-lparse-get (what &optional opt-plist) + "Query for value of WHAT for the current backend `org-lparse-backend'. +See also `org-lparse-backend-get'." + (if (boundp 'org-lparse-backend) + (org-lparse-backend-get (symbol-name org-lparse-backend) what opt-plist) + (error "org-lparse-backend is not bound yet"))) + +(defun org-lparse-backend-get (backend what &optional opt-plist) + "Query BACKEND for value of WHAT. +Dispatch the call to `org-<backend>-user-get'. If that throws an +error, dispatch the call to `org-<backend>-get'. See +`org-xhtml-get' for all known settings queried for by +`org-lparse' during the course of export." + (assert (stringp backend) t) + (unless (org-lparse-backend-is-native-p backend) + (error "Unknown native backend %s" backend)) + (let ((backend-get-method (intern (format "org-%s-get" backend))) + (backend-user-get-method (intern (format "org-%s-user-get" backend)))) + (cond + ((functionp backend-get-method) + (condition-case nil + (funcall backend-user-get-method what opt-plist) + (error (funcall backend-get-method what opt-plist)))) + (t + (error "Native backend %s doesn't define %s" backend backend-get-method))))) + +(defun org-lparse-insert-tag (tag &rest args) + (when (member org-lparse-insert-tag-with-newlines '(lead both)) + (insert "\n")) + (insert (apply 'format tag args)) + (when (member org-lparse-insert-tag-with-newlines '(trail both)) + (insert "\n"))) + +(defun org-lparse-get-targets-from-title (title) + (let* ((target (org-get-text-property-any 0 'target title)) + (extra-targets (assoc target org-export-target-aliases)) + (target (or (cdr (assoc target org-export-preferred-target-alist)) + target))) + (cons target (remove target extra-targets)))) + +(defun org-lparse-suffix-from-snumber (snumber) + (let* ((snu (replace-regexp-in-string "\\." "-" snumber)) + (href (cdr (assoc (concat "sec-" snu) + org-export-preferred-target-alist)))) + (org-solidify-link-text (or href snu)))) + +(defun org-lparse-begin-level (level title umax head-count) + "Insert a new LEVEL in HTML export. +When TITLE is nil, just close all open levels." + (org-lparse-end-level level umax) + (unless title (error "Why is heading nil")) + (let* ((targets (org-lparse-get-targets-from-title title)) + (target (car targets)) (extra-targets (cdr targets)) + (target (and target (org-solidify-link-text target))) + (extra-class (org-get-text-property-any 0 'html-container-class title)) + snumber tags level1 class) + (when (string-match (org-re "\\(:[[:alnum:]_@#%:]+:\\)[ \t]*$") title) + (setq tags (and org-export-with-tags (match-string 1 title))) + (setq title (replace-match "" t t title))) + (if (> level umax) + (progn + (if (aref org-levels-open (1- level)) + (org-lparse-end-list-item-1) + (aset org-levels-open (1- level) t) + (org-lparse-end-paragraph) + (org-lparse-begin-list 'unordered)) + (org-lparse-begin-list-item + 'unordered target (org-lparse-format + 'HEADLINE title extra-targets tags))) + (aset org-levels-open (1- level) t) + (setq snumber (org-section-number level)) + (setq level1 (+ level (or (org-lparse-get 'TOPLEVEL-HLEVEL) 1) -1)) + (unless (= head-count 1) + (org-lparse-end-outline-text-or-outline)) + (org-lparse-begin-outline-and-outline-text + level1 snumber title tags target extra-targets extra-class) + (org-lparse-begin-paragraph)))) + +(defun org-lparse-end-level (level umax) + (org-lparse-end-paragraph) + (loop for l from org-level-max downto level + do (when (aref org-levels-open (1- l)) + ;; Terminate one level in HTML export + (if (<= l umax) + (org-lparse-end-outline-text-or-outline) + (org-lparse-end-list-item-1) + (org-lparse-end-list 'unordered)) + (aset org-levels-open (1- l) nil)))) + +(defvar org-lparse-outline-text-open) +(defun org-lparse-begin-outline-and-outline-text (level1 snumber title tags + target extra-targets + extra-class) + (org-lparse-begin + 'OUTLINE level1 snumber title tags target extra-targets extra-class) + (org-lparse-begin-outline-text level1 snumber extra-class)) + +(defun org-lparse-end-outline-text-or-outline () + (cond + (org-lparse-outline-text-open + (org-lparse-end 'OUTLINE-TEXT) + (setq org-lparse-outline-text-open nil)) + (t (org-lparse-end 'OUTLINE)))) + +(defun org-lparse-begin-outline-text (level1 snumber extra-class) + (assert (not org-lparse-outline-text-open) t) + (setq org-lparse-outline-text-open t) + (org-lparse-begin 'OUTLINE-TEXT level1 snumber extra-class)) + +(defun org-lparse-html-list-type-to-canonical-list-type (ltype) + (cdr (assoc ltype '(("o" . ordered) + ("u" . unordered) + ("d" . description))))) + +;; following vars are bound during `org-do-lparse' +(defvar org-lparse-list-level) +(defvar org-lparse-list-item-count) +(defvar org-lparse-list-stack) +(defvar org-lparse-list-table:table-row) +(defvar org-lparse-list-table:lines) + +;; Notes on LIST-TABLES +;; ==================== +;; Lists withing "list-table" blocks (as shown below) +;; +;; #+begin_list-table +;; - Row 1 +;; - 1.1 +;; - 1.2 +;; - 1.3 +;; - Row 2 +;; - 2.1 +;; - 2.2 +;; - 2.3 +;; #+end_list-table +;; +;; will be exported as though it were a table as shown below. +;; +;; | Row 1 | 1.1 | 1.2 | 1.3 | +;; | Row 2 | 2.1 | 2.2 | 2.3 | +;; +;; Note that org-tables are NOT multi-line and each line is mapped to +;; a unique row in the exported document. So if an exported table +;; needs to contain a single paragraph (with copious text) it needs to +;; be typed up in a single line. Editing such long lines using the +;; table editor will be a cumbersome task. Furthermore inclusion of +;; multi-paragraph text in a table cell is well-nigh impossible. +;; +;; LIST-TABLEs are meant to circumvent the above problems with +;; org-tables. +;; +;; Note that in the example above the list items could be paragraphs +;; themselves and the list can be arbitrarily deep. +;; +;; Inspired by following thread: +;; https://lists.gnu.org/archive/html/emacs-orgmode/2011-03/msg01101.html + +(defun org-lparse-begin-list (ltype) + (incf org-lparse-list-level) + (push org-lparse-list-item-count org-lparse-list-stack) + (setq org-lparse-list-item-count 0) + (cond + ((not org-lparse-list-table-p) + (org-lparse-begin 'LIST ltype)) + ;; process LIST-TABLE + ((= 1 org-lparse-list-level) + ;; begin LIST-TABLE + (setq org-lparse-list-table:lines nil) + (setq org-lparse-list-table:table-row nil)) + ((= 2 org-lparse-list-level) + (ignore)) + (t + (org-lparse-begin 'LIST ltype)))) + +(defun org-lparse-end-list (ltype) + (setq org-lparse-list-item-count (pop org-lparse-list-stack)) + (decf org-lparse-list-level) + (cond + ((not org-lparse-list-table-p) + (org-lparse-end 'LIST ltype)) + ;; process LIST-TABLE + ((= 0 org-lparse-list-level) + ;; end LIST-TABLE + (insert (org-lparse-format-list-table + (nreverse org-lparse-list-table:lines)))) + ((= 1 org-lparse-list-level) + (ignore)) + (t + (org-lparse-end 'LIST ltype)))) + +(defun org-lparse-begin-list-item (ltype &optional arg headline) + (incf org-lparse-list-item-count) + (cond + ((not org-lparse-list-table-p) + (org-lparse-begin 'LIST-ITEM ltype arg headline)) + ;; process LIST-TABLE + ((and (= 1 org-lparse-list-level) + (= 1 org-lparse-list-item-count)) + ;; begin TABLE-ROW for LIST-TABLE + (setq org-lparse-list-table:table-row nil) + (org-lparse-begin-list-table:table-cell)) + ((and (= 2 org-lparse-list-level) + (= 1 org-lparse-list-item-count)) + ;; begin TABLE-CELL for LIST-TABLE + (org-lparse-begin-list-table:table-cell)) + (t + (org-lparse-begin 'LIST-ITEM ltype arg headline)))) + +(defun org-lparse-end-list-item (ltype) + (decf org-lparse-list-item-count) + (cond + ((not org-lparse-list-table-p) + (org-lparse-end 'LIST-ITEM ltype)) + ;; process LIST-TABLE + ((and (= 1 org-lparse-list-level) + (= 0 org-lparse-list-item-count)) + ;; end TABLE-ROW for LIST-TABLE + (org-lparse-end-list-table:table-cell) + (push (nreverse org-lparse-list-table:table-row) + org-lparse-list-table:lines)) + ((= 2 org-lparse-list-level) + ;; end TABLE-CELL for LIST-TABLE + (org-lparse-end-list-table:table-cell)) + (t + (org-lparse-end 'LIST-ITEM ltype)))) + +(defvar org-lparse-list-table:table-cell-open) +(defun org-lparse-begin-list-table:table-cell () + (org-lparse-end-list-table:table-cell) + (setq org-lparse-list-table:table-cell-open t) + (org-lparse-begin-collect) + (org-lparse-begin-paragraph)) + +(defun org-lparse-end-list-table:table-cell () + (when org-lparse-list-table:table-cell-open + (setq org-lparse-list-table:table-cell-open nil) + (org-lparse-end-paragraph) + (push (org-lparse-end-collect) + org-lparse-list-table:table-row))) + +(defvar org-lparse-table-rowgrp-info) +(defun org-lparse-begin-table-rowgroup (&optional is-header-row) + (push (cons (1+ org-lparse-table-rownum) :start) org-lparse-table-rowgrp-info) + (org-lparse-begin 'TABLE-ROWGROUP is-header-row)) + +(defun org-lparse-end-table () + (when org-lparse-table-is-styled + ;; column groups + (unless (car org-table-colgroup-info) + (setq org-table-colgroup-info + (cons :start (cdr org-table-colgroup-info)))) + + ;; column alignment + (let ((c -1)) + (mapc + (lambda (x) + (incf c) + (setf (aref org-lparse-table-colalign-vector c) + (or (aref org-lparse-table-colalign-vector c) + (if (> (/ (float x) (1+ org-lparse-table-rownum)) + org-table-number-fraction) + "right" "left")))) + org-lparse-table-num-numeric-items-per-column))) + (org-lparse-end 'TABLE)) + +(defvar org-lparse-encode-pending nil) + +(defun org-lparse-format-tags (tag text prefix suffix &rest args) + (cond + ((consp tag) + (concat prefix (apply 'format (car tag) args) text suffix + (format (cdr tag)))) + ((stringp tag) ; singleton tag + (concat prefix (apply 'format tag args) text)))) + +(defun org-xml-fix-class-name (kwd) ; audit callers of this function + "Turn todo keyword into a valid class name. +Replaces invalid characters with \"_\"." + (save-match-data + (while (string-match "[^a-zA-Z0-9_]" kwd) + (setq kwd (replace-match "_" t t kwd)))) + kwd) + +(defun org-lparse-format-todo (todo) + (org-lparse-format 'FONTIFY + (concat + (ignore-errors (org-lparse-get 'TODO-KWD-CLASS-PREFIX)) + (org-xml-fix-class-name todo)) + (list (if (member todo org-done-keywords) "done" "todo") + todo))) + +(defun org-lparse-format-extra-targets (extra-targets) + (if (not extra-targets) "" + (mapconcat (lambda (x) + (setq x (org-solidify-link-text + (if (org-uuidgen-p x) (concat "ID-" x) x))) + (org-lparse-format 'ANCHOR "" x)) + extra-targets ""))) + +(defun org-lparse-format-org-tags (tags) + (if (not tags) "" + (org-lparse-format + 'FONTIFY (mapconcat + (lambda (x) + (org-lparse-format + 'FONTIFY x + (concat + (ignore-errors (org-lparse-get 'TAG-CLASS-PREFIX)) + (org-xml-fix-class-name x)))) + (org-split-string tags ":") + (org-lparse-format 'SPACES 1)) "tag"))) + +(defun org-lparse-format-section-number (&optional snumber level) + (and org-export-with-section-numbers + (not org-lparse-body-only) snumber level + (org-lparse-format 'FONTIFY snumber (format "section-number-%d" level)))) + +(defun org-lparse-warn (msg) + (if (not org-lparse-use-flashy-warning) + (message msg) + (put-text-property 0 (length msg) 'face 'font-lock-warning-face msg) + (message msg) + (sleep-for 3))) + +(defun org-xml-format-href (s) + "Make sure the S is valid as a href reference in an XHTML document." + (save-match-data + (let ((start 0)) + (while (string-match "&" s start) + (setq start (+ (match-beginning 0) 3) + s (replace-match "&" t t s))))) + s) + +(defun org-xml-format-desc (s) + "Make sure the S is valid as a description in a link." + (if (and s (not (get-text-property 1 'org-protected s))) + (save-match-data + (org-xml-encode-org-text s)) + s)) + +(provide 'org-lparse) + +;;; org-lparse.el ends here diff --git a/lisp/org/org-mac-message.el b/lisp/org/org-mac-message.el index fc52b92a21d..b87d91f4cc2 100644 --- a/lisp/org/org-mac-message.el +++ b/lisp/org/org-mac-message.el @@ -1,11 +1,10 @@ ;;; org-mac-message.el --- Links to Apple Mail.app messages from within Org-mode -;; Copyright (C) 2008-2011 Free Software Foundation, Inc. +;; Copyright (C) 2008-2012 Free Software Foundation, Inc. ;; Author: John Wiegley <johnw@gnu.org> ;; Christopher Suckling <suckling at gmail dot com> -;; Version: 7.7 ;; Keywords: outlines, hypermedia, calendar, wp ;; This file is part of GNU Emacs. @@ -214,6 +213,4 @@ list of message:// links to flagged mail after heading." (provide 'org-mac-message) - - ;;; org-mac-message.el ends here diff --git a/lisp/org/org-macs.el b/lisp/org/org-macs.el index dc413f4d993..daeea715789 100644 --- a/lisp/org/org-macs.el +++ b/lisp/org/org-macs.el @@ -1,11 +1,10 @@ ;;; org-macs.el --- Top-level definitions for Org-mode -;; Copyright (C) 2004-2011 Free Software Foundation, Inc. +;; Copyright (C) 2004-2012 Free Software Foundation, Inc. ;; Author: Carsten Dominik <carsten at orgmode dot org> ;; Keywords: outlines, hypermedia, calendar, wp ;; Homepage: http://orgmode.org -;; Version: 7.7 ;; ;; This file is part of GNU Emacs. ;; @@ -46,6 +45,13 @@ (declare-function org-add-props "org-compat" (string plist &rest props)) (declare-function org-string-match-p "org-compat" (&rest args)) +(defmacro org-with-gensyms (symbols &rest body) + `(let ,(mapcar (lambda (s) + `(,s (make-symbol (concat "--" (symbol-name ',s))))) symbols) + ,@body)) +(def-edebug-spec org-with-gensyms (sexp body)) +(put 'org-with-gensyms 'lisp-indent-function 1) + (defmacro org-called-interactively-p (&optional kind) (if (featurep 'xemacs) `(interactive-p) @@ -54,17 +60,20 @@ (>= emacs-minor-version 2))) `(with-no-warnings (called-interactively-p ,kind)) ;; defined with no argument in <=23.1 `(interactive-p)))) +(def-edebug-spec org-called-interactively-p (&optional ("quote" symbolp))) -(if (and (not (fboundp 'with-silent-modifications)) +(when (and (not (fboundp 'with-silent-modifications)) (or (< emacs-major-version 23) (and (= emacs-major-version 23) (< emacs-minor-version 2)))) (defmacro with-silent-modifications (&rest body) - `(org-unmodified ,@body))) + `(org-unmodified ,@body)) + (def-edebug-spec with-silent-modifications (body))) (defmacro org-bound-and-true-p (var) "Return the value of symbol VAR if it is bound, else nil." `(and (boundp (quote ,var)) ,var)) +(def-edebug-spec org-bound-and-true-p (symbolp)) (defun org-string-nw-p (s) "Is S a string with a non-white character?" @@ -85,30 +94,36 @@ Also, do not record undo information." (let ((buffer-undo-list t) before-change-functions after-change-functions) ,@body)))) +(def-edebug-spec org-unmodified (body)) + +(defun org-substitute-posix-classes (re) + "Substitute posix classes in regular expression RE." + (let ((ss re)) + (save-match-data + (while (string-match "\\[:alnum:\\]" ss) + (setq ss (replace-match "a-zA-Z0-9" t t ss))) + (while (string-match "\\[:word:\\]" ss) + (setq ss (replace-match "a-zA-Z0-9" t t ss))) + (while (string-match "\\[:alpha:\\]" ss) + (setq ss (replace-match "a-zA-Z" t t ss))) + (while (string-match "\\[:punct:\\]" ss) + (setq ss (replace-match "\001-@[-`{-~" t t ss))) + ss))) (defmacro org-re (s) "Replace posix classes in regular expression." - (if (featurep 'xemacs) - (let ((ss s)) - (save-match-data - (while (string-match "\\[:alnum:\\]" ss) - (setq ss (replace-match "a-zA-Z0-9" t t ss))) - (while (string-match "\\[:word:\\]" ss) - (setq ss (replace-match "a-zA-Z0-9" t t ss))) - (while (string-match "\\[:alpha:\\]" ss) - (setq ss (replace-match "a-zA-Z" t t ss))) - (while (string-match "\\[:punct:\\]" ss) - (setq ss (replace-match "\001-@[-`{-~" t t ss))) - ss)) - s)) + (if (featurep 'xemacs) `(org-substitute-posix-classes ,s) s)) +(def-edebug-spec org-re (form)) (defmacro org-preserve-lc (&rest body) - `(let ((_line (org-current-line)) - (_col (current-column))) - (unwind-protect - (progn ,@body) - (org-goto-line _line) - (org-move-to-column _col)))) + (org-with-gensyms (line col) + `(let ((,line (org-current-line)) + (,col (current-column))) + (unwind-protect + (progn ,@body) + (org-goto-line ,line) + (org-move-to-column ,col))))) +(def-edebug-spec org-preserve-lc (body)) (defmacro org-without-partial-completion (&rest body) `(if (and (boundp 'partial-completion-mode) @@ -120,7 +135,9 @@ Also, do not record undo information." ,@body) (partial-completion-mode 1)) ,@body)) +(def-edebug-spec org-without-partial-completion (body)) +;; FIXME: Slated for removal. Current Org mode does not support Emacs < 22 (defmacro org-maybe-intangible (props) "Add '(intangible t) to PROPS if Emacs version is earlier than Emacs 22. In Emacs 21, invisible text is not avoided by the command loop, so the @@ -135,31 +152,37 @@ We use a macro so that the test can happen at compilation time." (defmacro org-with-point-at (pom &rest body) "Move to buffer and point of point-or-marker POM for the duration of BODY." - `(let ((pom ,pom)) - (save-excursion - (if (markerp pom) (set-buffer (marker-buffer pom))) + (org-with-gensyms (mpom) + `(let ((,mpom ,pom)) (save-excursion - (goto-char (or pom (point))) - ,@body)))) + (if (markerp ,mpom) (set-buffer (marker-buffer ,mpom))) + (save-excursion + (goto-char (or ,mpom (point))) + ,@body))))) +(def-edebug-spec org-with-point-at (form body)) (put 'org-with-point-at 'lisp-indent-function 1) (defmacro org-no-warnings (&rest body) (cons (if (fboundp 'with-no-warnings) 'with-no-warnings 'progn) body)) +(def-edebug-spec org-no-warnings (body)) (defmacro org-if-unprotected (&rest body) "Execute BODY if there is no `org-protected' text property at point." `(unless (get-text-property (point) 'org-protected) ,@body)) +(def-edebug-spec org-if-unprotected (body)) (defmacro org-if-unprotected-1 (&rest body) "Execute BODY if there is no `org-protected' text property at point-1." `(unless (get-text-property (1- (point)) 'org-protected) ,@body)) +(def-edebug-spec org-if-unprotected-1 (body)) (defmacro org-if-unprotected-at (pos &rest body) "Execute BODY if there is no `org-protected' text property at POS." `(unless (get-text-property ,pos 'org-protected) ,@body)) +(def-edebug-spec org-if-unprotected-at (form body)) (put 'org-if-unprotected-at 'lisp-indent-function 1) (defun org-re-search-forward-unprotected (&rest args) @@ -171,33 +194,37 @@ We use a macro so that the test can happen at compilation time." (unless (get-text-property (match-beginning 0) 'org-protected) (throw 'exit (point)))))) +;; FIXME: Normalize argument names (defmacro org-with-remote-undo (_buffer &rest _body) "Execute BODY while recording undo information in two buffers." - `(let ((_cline (org-current-line)) - (_cmd this-command) - (_buf1 (current-buffer)) - (_buf2 ,_buffer) - (_undo1 buffer-undo-list) - (_undo2 (with-current-buffer ,_buffer buffer-undo-list)) - _c1 _c2) - ,@_body - (when org-agenda-allow-remote-undo - (setq _c1 (org-verify-change-for-undo - _undo1 (with-current-buffer _buf1 buffer-undo-list)) - _c2 (org-verify-change-for-undo - _undo2 (with-current-buffer _buf2 buffer-undo-list))) - (when (or _c1 _c2) - ;; make sure there are undo boundaries - (and _c1 (with-current-buffer _buf1 (undo-boundary))) - (and _c2 (with-current-buffer _buf2 (undo-boundary))) - ;; remember which buffer to undo - (push (list _cmd _cline _buf1 _c1 _buf2 _c2) - org-agenda-undo-list))))) + (org-with-gensyms (cline cmd buf1 buf2 undo1 undo2 c1 c2) + `(let ((,cline (org-current-line)) + (,cmd this-command) + (,buf1 (current-buffer)) + (,buf2 ,_buffer) + (,undo1 buffer-undo-list) + (,undo2 (with-current-buffer ,_buffer buffer-undo-list)) + ,c1 ,c2) + ,@_body + (when org-agenda-allow-remote-undo + (setq ,c1 (org-verify-change-for-undo + ,undo1 (with-current-buffer ,buf1 buffer-undo-list)) + ,c2 (org-verify-change-for-undo + ,undo2 (with-current-buffer ,buf2 buffer-undo-list))) + (when (or ,c1 ,c2) + ;; make sure there are undo boundaries + (and ,c1 (with-current-buffer ,buf1 (undo-boundary))) + (and ,c2 (with-current-buffer ,buf2 (undo-boundary))) + ;; remember which buffer to undo + (push (list ,cmd ,cline ,buf1 ,c1 ,buf2 ,c2) + org-agenda-undo-list)))))) +(def-edebug-spec org-with-remote-undo (form body)) (put 'org-with-remote-undo 'lisp-indent-function 1) (defmacro org-no-read-only (&rest body) "Inhibit read-only for BODY." `(let ((inhibit-read-only t)) ,@body)) +(def-edebug-spec org-no-read-only (body)) (defconst org-rm-props '(invisible t face t keymap t intangible t mouse-face t rear-nonsticky t mouse-map t fontified t @@ -245,10 +272,6 @@ we turn off invisibility temporarily. Use this in a `let' form." "Make VAR local in current buffer and set it to VALUE." (set (make-local-variable var) value)) -(defsubst org-mode-p () - "Check if the current buffer is in Org-mode." - (eq major-mode 'org-mode)) - (defsubst org-last (list) "Return the last element of LIST." (car (last list))) @@ -324,18 +347,20 @@ but it also means that the buffer should stay alive during the operation, because otherwise all these markers will point nowhere." (declare (indent 1)) - `(let ((data (org-outline-overlay-data ,use-markers)) - rtn) - (unwind-protect - (progn - (setq rtn (progn ,@body)) - (org-set-outline-overlay-data data)) - (when ,use-markers - (mapc (lambda (c) - (and (markerp (car c)) (move-marker (car c) nil)) - (and (markerp (cdr c)) (move-marker (cdr c) nil))) - data))) - rtn)) + (org-with-gensyms (data rtn) + `(let ((,data (org-outline-overlay-data ,use-markers)) + ,rtn) + (unwind-protect + (progn + (setq ,rtn (progn ,@body)) + (org-set-outline-overlay-data ,data)) + (when ,use-markers + (mapc (lambda (c) + (and (markerp (car c)) (move-marker (car c) nil)) + (and (markerp (cdr c)) (move-marker (cdr c) nil))) + ,data))) + ,rtn))) +(def-edebug-spec org-save-outline-visibility (form body)) (defmacro org-with-wide-buffer (&rest body) "Execute body while temporarily widening the buffer." @@ -343,6 +368,7 @@ point nowhere." (save-restriction (widen) ,@body))) +(def-edebug-spec org-with-wide-buffer (body)) (defmacro org-with-limited-levels (&rest body) "Execute BODY with limited number of outline levels." @@ -350,6 +376,7 @@ point nowhere." (outline-regexp org-outline-regexp) (org-outline-regexp-at-bol (concat "^" org-outline-regexp))) ,@body)) +(def-edebug-spec org-with-limited-levels (body)) (defvar org-outline-regexp) ; defined in org.el (defvar org-odd-levels-only) ; defined in org.el @@ -357,7 +384,7 @@ point nowhere." (defun org-get-limited-outline-regexp () "Return outline-regexp with limited number of levels. The number of levels is controlled by `org-inlinetask-min-level'" - (if (or (not (org-mode-p)) (not (featurep 'org-inlinetask))) + (if (or (not (eq major-mode 'org-mode)) (not (featurep 'org-inlinetask))) org-outline-regexp (let* ((limit-level (1- org-inlinetask-min-level)) (nstars (if org-odd-levels-only (1- (* limit-level 2)) limit-level))) @@ -369,8 +396,20 @@ The number of levels is controlled by `org-inlinetask-min-level'" (format-seconds string seconds) (format-time-string string (seconds-to-time seconds)))) -(provide 'org-macs) +(defmacro org-eval-in-environment (environment form) + `(eval (list 'let ,environment ',form))) +(def-edebug-spec org-eval-in-environment (form form)) +(put 'org-eval-in-environment 'lisp-indent-function 1) +(defun org-make-parameter-alist (flat) + "Return alist based on FLAT. +FLAT is a list with alternating symbol names and values. The +returned alist is a list of lists with the symbol name in car and +the value in cdr." + (when flat + (cons (list (car flat) (cadr flat)) + (org-make-parameter-alist (cddr flat))))) +(provide 'org-macs) ;;; org-macs.el ends here diff --git a/lisp/org/org-mew.el b/lisp/org/org-mew.el index 97cad1ae316..9cc767eaec4 100644 --- a/lisp/org/org-mew.el +++ b/lisp/org/org-mew.el @@ -1,11 +1,10 @@ ;;; org-mew.el --- Support for links to Mew messages from within Org-mode -;; Copyright (C) 2008-2011 Free Software Foundation, Inc. +;; Copyright (C) 2008-2012 Free Software Foundation, Inc. ;; Author: Tokuya Kameshima <kames at fa2 dot so-net dot ne dot jp> ;; Keywords: outlines, hypermedia, calendar, wp ;; Homepage: http://orgmode.org -;; Version: 7.7 ;; This file is part of GNU Emacs. @@ -135,6 +134,4 @@ (provide 'org-mew) - - ;;; org-mew.el ends here diff --git a/lisp/org/org-mhe.el b/lisp/org/org-mhe.el index 7075018894f..0c59d500735 100644 --- a/lisp/org/org-mhe.el +++ b/lisp/org/org-mhe.el @@ -1,11 +1,10 @@ ;;; org-mhe.el --- Support for links to MH-E messages from within Org-mode -;; Copyright (C) 2004-2011 Free Software Foundation, Inc. +;; Copyright (C) 2004-2012 Free Software Foundation, Inc. ;; Author: Thomas Baumann <thomas dot baumann at ch dot tum dot de> ;; Keywords: outlines, hypermedia, calendar, wp ;; Homepage: http://orgmode.org -;; Version: 7.7 ;; ;; This file is part of GNU Emacs. ;; @@ -225,6 +224,4 @@ folders." (provide 'org-mhe) - - ;;; org-mhe.el ends here diff --git a/lisp/org/org-mks.el b/lisp/org/org-mks.el index 5f3ebbb6c81..95223ef848e 100644 --- a/lisp/org/org-mks.el +++ b/lisp/org/org-mks.el @@ -1,11 +1,10 @@ ;;; org-mks.el --- Multi-key-selection for Org-mode -;; Copyright (C) 2010-2011 Free Software Foundation, Inc. +;; Copyright (C) 2010-2012 Free Software Foundation, Inc. ;; Author: Carsten Dominik <carsten at orgmode dot org> ;; Keywords: outlines, hypermedia, calendar, wp ;; Homepage: http://orgmode.org -;; Version: 7.7 ;; ;; This file is part of GNU Emacs. ;; @@ -25,7 +24,7 @@ ;;; Commentary: -;; +;; ;;; Code: @@ -132,6 +131,4 @@ only the bare key is returned." (provide 'org-mks) - - ;;; org-mks.el ends here diff --git a/lisp/org/org-mobile.el b/lisp/org/org-mobile.el index f270419877e..bcc1c90932a 100644 --- a/lisp/org/org-mobile.el +++ b/lisp/org/org-mobile.el @@ -1,10 +1,9 @@ ;;; org-mobile.el --- Code for asymmetric sync with a mobile device -;; Copyright (C) 2009-2011 Free Software Foundation, Inc. +;; Copyright (C) 2009-2012 Free Software Foundation, Inc. ;; ;; Author: Carsten Dominik <carsten at orgmode dot org> ;; Keywords: outlines, hypermedia, calendar, wp ;; Homepage: http://orgmode.org -;; Version: 7.7 ;; ;; This file is part of GNU Emacs. ;; @@ -38,6 +37,9 @@ (eval-when-compile (require 'cl)) +(declare-function org-pop-to-buffer-same-window + "org-compat" (&optional buffer-or-name norecord label)) + (defgroup org-mobile nil "Options concerning support for a viewer/editor on a mobile device." :tag "Org Mobile" @@ -270,7 +272,7 @@ Also exclude files matching `org-mobile-files-exclude-regexp'." (t nil))) org-mobile-files))) (files (delete - nil + nil (mapcar (lambda (f) (unless (and (not (string= org-mobile-files-exclude-regexp "")) (string-match org-mobile-files-exclude-regexp f)) @@ -301,7 +303,7 @@ create all custom agenda views, for upload to the mobile phone." (interactive) (let ((a-buffer (get-buffer org-agenda-buffer-name))) (let ((org-agenda-buffer-name "*SUMO*") - (org-agenda-filter org-agenda-filter) + (org-agenda-tag-filter org-agenda-tag-filter) (org-agenda-redo-command org-agenda-redo-command)) (save-excursion (save-window-excursion @@ -497,7 +499,7 @@ agenda view showing the flagged items." org-mobile-directory)) (save-excursion (setq buf (find-file file)) - (when (and (= (point-min) (point-max))) + (when (and (= (point-min) (point-max))) (insert "\n") (save-buffer) (when org-mobile-use-encryption @@ -909,7 +911,7 @@ If BEG and END are given, only do this in that region." (buffer-file-name (current-buffer)))))) (error (setq org-mobile-error msg)))) (when org-mobile-error - (switch-to-buffer (marker-buffer marker)) + (org-pop-to-buffer-same-window (marker-buffer marker)) (goto-char marker) (incf cnt-error) (insert (if (stringp (nth 1 org-mobile-error)) @@ -1096,7 +1098,4 @@ A and B must be strings or nil." (provide 'org-mobile) - - ;;; org-mobile.el ends here - diff --git a/lisp/org/org-mouse.el b/lisp/org/org-mouse.el index 8f1e7735693..b1d9f22a4e0 100644 --- a/lisp/org/org-mouse.el +++ b/lisp/org/org-mouse.el @@ -1,13 +1,12 @@ ;;; org-mouse.el --- Better mouse support for org-mode -;; Copyright (C) 2006-2011 Free Software Foundation -;; +;; Copyright (C) 2006-2012 Free Software Foundation, Inc. + ;; Author: Piotr Zielinski <piotr dot zielinski at gmail dot com> ;; Maintainer: Carsten Dominik <carsten at orgmode dot org> -;; Version: 7.7 -;; + ;; 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 3 of the License, or @@ -20,8 +19,7 @@ ;; You should have received a copy of the GNU General Public License ;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; + ;;; Commentary: ;; ;; Org-mouse provides mouse support for org-mode. @@ -70,8 +68,7 @@ ;; ;; Since version 5.10: Changes are listed in the general org-mode docs. ;; -;; Version 5.09 -;; + Version number synchronization with Org-mode. +;; Version 5.09;; + Version number synchronization with Org-mode. ;; ;; Version 0.25 ;; + made compatible with org-mode 4.70 (thanks to Carsten for the patch) @@ -329,7 +326,6 @@ nor a function, elements of KEYWORDS are used directly." (goto-char (match-end (or subexp 0))) (just-one-space))) - (defun org-mouse-keyword-replace-menu (keywords &optional group itemformat nosurround) "A helper function. @@ -395,15 +391,6 @@ DEFAULT is returned if no priority is given in the headline." (match-string 1) (when default (char-to-string org-default-priority))))) -;; (defun org-mouse-at-link () -;; (and (eq (get-text-property (point) 'face) 'org-link) -;; (save-excursion -;; (goto-char (previous-single-property-change (point) 'face)) -;; (or (looking-at org-bracket-link-regexp) -;; (looking-at org-angle-link-re) -;; (looking-at org-plain-link-re))))) - - (defun org-mouse-delete-timestamp () "Deletes the current timestamp as well as the preceding keyword. SCHEDULED: or DEADLINE: or ANYTHINGLIKETHIS:" @@ -454,7 +441,6 @@ SCHEDULED: or DEADLINE: or ANYTHINGLIKETHIS:" ["Align Tags in Buffer" (org-set-tags t t) t] ["Set Tags ..." (org-set-tags) t]))) - (defun org-mouse-set-tags (tags) (save-excursion ;; remove existing tags first @@ -485,7 +471,6 @@ SCHEDULED: or DEADLINE: or ANYTHINGLIKETHIS:" ('occur-tree "Occur tree: ") (t "Agenda command ???"))) - (defun org-mouse-list-options-menu (alloptions &optional function) (let ((options (save-match-data (split-string (match-string-no-properties 1))))) @@ -571,7 +556,6 @@ SCHEDULED: or DEADLINE: or ANYTHINGLIKETHIS:" ["Plain List to Outline" org-mouse-transform-to-outline :visible (org-at-item-p)]))) - (defun org-mouse-get-context (contextlist context) (let ((contextdata (assq context contextlist))) (when contextdata @@ -599,29 +583,26 @@ This means, between the beginning of line and the point." (open-line 1) (org-indent-to-column (- (match-end 0) (match-beginning 0))) (insert "+ ")) - (:middle ; insert after (end-of-line) (newline t) (indent-relative) (insert "+ ")) - (:end ; insert text here (skip-chars-backward " \t") (kill-region (point) (point-at-eol)) (unless (org-looking-back org-mouse-punctuation) (insert (concat org-mouse-punctuation " "))))) - (insert text) (beginning-of-line)) (defadvice dnd-insert-text (around org-mouse-dnd-insert-text activate) - (if (org-mode-p) + (if (eq major-mode 'org-mode) (org-mouse-insert-item text) ad-do-it)) (defadvice dnd-open-file (around org-mouse-dnd-open-file activate) - (if (org-mode-p) + (if (eq major-mode 'org-mode) (org-mouse-insert-item uri) ad-do-it)) @@ -632,13 +613,6 @@ This means, between the beginning of line and the point." (set-match-data ',match) (apply ',function rest))))) -(defun org-mouse-match-todo-keyword () - (save-excursion - (org-back-to-heading) - (if (looking-at org-outline-regexp) (goto-char (match-end 0))) - (or (looking-at (concat " +" org-todo-regexp " *")) - (looking-at " \\( *\\)")))) - (defun org-mouse-yank-link (click) (interactive "e") ;; Give temporary modes such as isearch a chance to turn off. @@ -668,7 +642,6 @@ This means, between the beginning of line and the point." (progn (save-excursion (goto-char (region-beginning)) (insert "[[")) (save-excursion (goto-char (region-end)) (insert "]]")))] ["Insert Link Here" (org-mouse-yank-link ',event)])))) - ((save-excursion (beginning-of-line) (looking-at "#\\+STARTUP: \\(.*\\)")) (popup-menu `(nil @@ -879,18 +852,6 @@ This means, between the beginning of line and the point." (t (org-mouse-popup-global-menu)))))) -;; (defun org-mouse-at-regexp (regexp) -;; (save-excursion -;; (let ((point (point)) -;; (bol (progn (beginning-of-line) (point))) -;; (eol (progn (end-of-line) (point)))) -;; (goto-char point) -;; (re-search-backward regexp bol 1) -;; (and (not (eolp)) -;; (progn (forward-char) -;; (re-search-forward regexp eol t)) -;; (<= (match-beginning 0) point))))) - (defun org-mouse-mark-active () (and mark-active transient-mark-mode)) @@ -1146,6 +1107,4 @@ This means, between the beginning of line and the point." (provide 'org-mouse) - - ;;; org-mouse.el ends here diff --git a/lisp/org/org-odt.el b/lisp/org/org-odt.el new file mode 100644 index 00000000000..886efa014f3 --- /dev/null +++ b/lisp/org/org-odt.el @@ -0,0 +1,2624 @@ +;;; org-odt.el --- OpenDocumentText export for Org-mode + +;; Copyright (C) 2010-2012 Free Software Foundation, Inc. + +;; Author: Jambunathan K <kjambunathan at gmail dot com> +;; Keywords: outlines, hypermedia, calendar, wp +;; Homepage: http://orgmode.org + +;; 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 3 of the License, 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. If not, see <http://www.gnu.org/licenses/>. + +;;; Commentary: + +;;; Code: +(eval-when-compile + (require 'cl)) +(require 'org-lparse) + +(defgroup org-export-odt nil + "Options specific for ODT export of Org-mode files." + :tag "Org Export ODT" + :group 'org-export) + +(defun org-odt-end-export () + (org-odt-fixup-label-references) + + ;; remove empty paragraphs + (goto-char (point-min)) + (while (re-search-forward + "<text:p\\( text:style-name=\"Text_20_body\"\\)?>[ \r\n\t]*</text:p>" + nil t) + (replace-match "")) + (goto-char (point-min)) + + ;; Convert whitespace place holders + (goto-char (point-min)) + (let (beg end n) + (while (setq beg (next-single-property-change (point) 'org-whitespace)) + (setq n (get-text-property beg 'org-whitespace) + end (next-single-property-change beg 'org-whitespace)) + (goto-char beg) + (delete-region beg end) + (insert (format "<span style=\"visibility:hidden;\">%s</span>" + (make-string n ?x))))) + + ;; Remove empty lines at the beginning of the file. + (goto-char (point-min)) + (when (looking-at "\\s-+\n") (replace-match "")) + + ;; Remove display properties + (remove-text-properties (point-min) (point-max) '(display t))) + +(defvar org-odt-suppress-xref nil) +(defconst org-export-odt-special-string-regexps + '(("\\\\-" . "­\\1") ; shy + ("---\\([^-]\\)" . "—\\1") ; mdash + ("--\\([^-]\\)" . "–\\1") ; ndash + ("\\.\\.\\." . "…")) ; hellip + "Regular expressions for special string conversion.") + +(defconst org-odt-lib-dir (file-name-directory load-file-name) + "Location of ODT exporter. +Use this to infer values of `org-odt-styles-dir' and +`org-export-odt-schema-dir'.") + +(defvar org-odt-data-dir nil + "Data directory for ODT exporter. +Use this to infer values of `org-odt-styles-dir' and +`org-export-odt-schema-dir'.") + +(defconst org-odt-schema-dir-list + (list + (and org-odt-data-dir + (expand-file-name "./schema/" org-odt-data-dir)) ; bail out + (eval-when-compile + (and (boundp 'org-odt-data-dir) org-odt-data-dir ; see make install + (expand-file-name "./schema/" org-odt-data-dir))) + (expand-file-name "../contrib/odt/etc/schema/" org-odt-lib-dir) ; git + ) + "List of directories to search for OpenDocument schema files. +Use this list to set the default value of +`org-export-odt-schema-dir'. The entries in this list are +populated heuristically based on the values of `org-odt-lib-dir' +and `org-odt-data-dir'.") + +(defcustom org-export-odt-schema-dir + (let* ((schema-dir + (catch 'schema-dir + (message "Debug (org-odt): Searching for OpenDocument schema files...") + (mapc + (lambda (schema-dir) + (when schema-dir + (message "Debug (org-odt): Trying %s..." schema-dir) + (when (and (file-readable-p + (expand-file-name "od-manifest-schema-v1.2-cs01.rnc" + schema-dir)) + (file-readable-p + (expand-file-name "od-schema-v1.2-cs01.rnc" + schema-dir)) + (file-readable-p + (expand-file-name "schemas.xml" schema-dir))) + (message "Debug (org-odt): Using schema files under %s" + schema-dir) + (throw 'schema-dir schema-dir)))) + org-odt-schema-dir-list) + (message "Debug (org-odt): No OpenDocument schema files installed") + nil))) + schema-dir) + "Directory that contains OpenDocument schema files. + +This directory contains: +1. rnc files for OpenDocument schema +2. a \"schemas.xml\" file that specifies locating rules needed + for auto validation of OpenDocument XML files. + +Use the customize interface to set this variable. This ensures +that `rng-schema-locating-files' is updated and auto-validation +of OpenDocument XML takes place based on the value +`rng-nxml-auto-validate-flag'. + +The default value of this variable varies depending on the +version of org in use and is initialized from +`org-odt-schema-dir-list'. The OASIS schema files are available +only in the org's private git repository. It is *not* bundled +with GNU ELPA tar or standard Emacs distribution." + :type '(choice + (const :tag "Not set" nil) + (directory :tag "Schema directory")) + :group 'org-export-odt + :set + (lambda (var value) + "Set `org-export-odt-schema-dir'. +Also add it to `rng-schema-locating-files'." + (let ((schema-dir value)) + (set var + (if (and + (file-readable-p + (expand-file-name "od-manifest-schema-v1.2-cs01.rnc" schema-dir)) + (file-readable-p + (expand-file-name "od-schema-v1.2-cs01.rnc" schema-dir)) + (file-readable-p + (expand-file-name "schemas.xml" schema-dir))) + schema-dir + (when value + (message "Error (org-odt): %s has no OpenDocument schema files" + value)) + nil))) + (when org-export-odt-schema-dir + (eval-after-load 'rng-loc + '(add-to-list 'rng-schema-locating-files + (expand-file-name "schemas.xml" + org-export-odt-schema-dir)))))) + +(defconst org-odt-styles-dir-list + (list + (and org-odt-data-dir + (expand-file-name "./styles/" org-odt-data-dir)) ; bail out + (eval-when-compile + (and (boundp 'org-odt-data-dir) org-odt-data-dir ; see make install + (expand-file-name "./styles/" org-odt-data-dir))) + (expand-file-name "../etc/styles/" org-odt-lib-dir) ; git + (expand-file-name "./etc/styles/" org-odt-lib-dir) ; elpa + (expand-file-name "./org/" data-directory) ; system + ) + "List of directories to search for OpenDocument styles files. +See `org-odt-styles-dir'. The entries in this list are populated +heuristically based on the values of `org-odt-lib-dir' and +`org-odt-data-dir'.") + +(defconst org-odt-styles-dir + (let* ((styles-dir + (catch 'styles-dir + (message "Debug (org-odt): Searching for OpenDocument styles files...") + (mapc (lambda (styles-dir) + (when styles-dir + (message "Debug (org-odt): Trying %s..." styles-dir) + (when (and (file-readable-p + (expand-file-name + "OrgOdtContentTemplate.xml" styles-dir)) + (file-readable-p + (expand-file-name + "OrgOdtStyles.xml" styles-dir))) + (message "Debug (org-odt): Using styles under %s" + styles-dir) + (throw 'styles-dir styles-dir)))) + org-odt-styles-dir-list) + nil))) + (unless styles-dir + (error "Error (org-odt): Cannot find factory styles files. Aborting.")) + styles-dir) + "Directory that holds auxiliary XML files used by the ODT exporter. + +This directory contains the following XML files - + \"OrgOdtStyles.xml\" and \"OrgOdtContentTemplate.xml\". These + XML files are used as the default values of + `org-export-odt-styles-file' and + `org-export-odt-content-template-file'. + +The default value of this variable varies depending on the +version of org in use and is initialized from +`org-odt-styles-dir-list'. Note that the user could be using org +from one of: org's own private git repository, GNU ELPA tar or +standard Emacs.") + +(defvar org-odt-file-extensions + '(("odt" . "OpenDocument Text") + ("ott" . "OpenDocument Text Template") + ("odm" . "OpenDocument Master Document") + ("ods" . "OpenDocument Spreadsheet") + ("ots" . "OpenDocument Spreadsheet Template") + ("odg" . "OpenDocument Drawing (Graphics)") + ("otg" . "OpenDocument Drawing Template") + ("odp" . "OpenDocument Presentation") + ("otp" . "OpenDocument Presentation Template") + ("odi" . "OpenDocument Image") + ("odf" . "OpenDocument Formula") + ("odc" . "OpenDocument Chart"))) + +(mapc + (lambda (desc) + ;; Let Org open all OpenDocument files using system-registered app + (add-to-list 'org-file-apps + (cons (concat "\\." (car desc) "\\'") 'system)) + ;; Let Emacs open all OpenDocument files in archive mode + (add-to-list 'auto-mode-alist + (cons (concat "\\." (car desc) "\\'") 'archive-mode))) + org-odt-file-extensions) + +;; register the odt exporter with the pre-processor +(add-to-list 'org-export-backends 'odt) + +;; register the odt exporter with org-lparse library +(org-lparse-register-backend 'odt) + +(defun org-odt-unload-function () + (org-lparse-unregister-backend 'odt) + (remove-hook 'org-export-preprocess-after-blockquote-hook + 'org-export-odt-preprocess-latex-fragments) + nil) + +(defcustom org-export-odt-content-template-file nil + "Template file for \"content.xml\". +The exporter embeds the exported content just before +\"</office:text>\" element. + +If unspecified, the file named \"OrgOdtContentTemplate.xml\" +under `org-odt-styles-dir' is used." + :type 'file + :group 'org-export-odt) + +(defcustom org-export-odt-styles-file nil + "Default styles file for use with ODT export. +Valid values are one of: +1. nil +2. path to a styles.xml file +3. path to a *.odt or a *.ott file +4. list of the form (ODT-OR-OTT-FILE (FILE-MEMBER-1 FILE-MEMBER-2 +...)) + +In case of option 1, an in-built styles.xml is used. See +`org-odt-styles-dir' for more information. + +In case of option 3, the specified file is unzipped and the +styles.xml embedded therein is used. + +In case of option 4, the specified ODT-OR-OTT-FILE is unzipped +and FILE-MEMBER-1, FILE-MEMBER-2 etc are copied in to the +generated odt file. Use relative path for specifying the +FILE-MEMBERS. styles.xml must be specified as one of the +FILE-MEMBERS. + +Use options 1, 2 or 3 only if styles.xml alone suffices for +achieving the desired formatting. Use option 4, if the styles.xml +references additional files like header and footer images for +achieving the desired formattting. + +Use \"#+ODT_STYLES_FILE: ...\" directive to set this variable on +a per-file basis. For example, + +#+ODT_STYLES_FILE: \"/path/to/styles.xml\" or +#+ODT_STYLES_FILE: (\"/path/to/file.ott\" (\"styles.xml\" \"image/hdr.png\"))." + :group 'org-export-odt + :type + '(choice + (const :tag "Factory settings" nil) + (file :must-match t :tag "styles.xml") + (file :must-match t :tag "ODT or OTT file") + (list :tag "ODT or OTT file + Members" + (file :must-match t :tag "ODF Text or Text Template file") + (cons :tag "Members" + (file :tag " Member" "styles.xml") + (repeat (file :tag "Member")))))) + +(eval-after-load 'org-exp + '(add-to-list 'org-export-inbuffer-options-extra + '("ODT_STYLES_FILE" :odt-styles-file))) + +(defconst org-export-odt-tmpdir-prefix "%s-") +(defconst org-export-odt-bookmark-prefix "OrgXref.") + +(defvar org-export-odt-embed-images t + "Should the images be copied in to the odt file or just linked?") + +(defvar org-export-odt-inline-images 'maybe) ; counterpart of + ; `org-export-html-inline-images' + +(defcustom org-export-odt-inline-image-extensions + '("png" "jpeg" "jpg" "gif") + "Extensions of image files that can be inlined into HTML." + :type '(repeat (string :tag "Extension")) + :group 'org-export-odt) + +(defcustom org-export-odt-pixels-per-inch display-pixels-per-inch + ;; FIXME add docstring + "" + :type 'float + :group 'org-export-odt) + +(defcustom org-export-odt-create-custom-styles-for-srcblocks t + "Whether custom styles for colorized source blocks be automatically created. +When this option is turned on, the exporter creates custom styles +for source blocks based on the advice of `htmlfontify'. Creation +of custom styles happen as part of `org-odt-hfy-face-to-css'. + +When this option is turned off exporter does not create such +styles. + +Use the latter option if you do not want the custom styles to be +based on your current display settings. It is necessary that the +styles.xml already contains needed styles for colorizing to work. + +This variable is effective only if +`org-export-odt-fontify-srcblocks' is turned on." + :group 'org-export-odt + :type 'boolean) + +(defvar org-export-odt-default-org-styles-alist + '((paragraph . ((default . "Text_20_body") + (fixedwidth . "OrgFixedWidthBlock") + (verse . "OrgVerse") + (quote . "Quotations") + (blockquote . "Quotations") + (center . "OrgCenter") + (left . "OrgLeft") + (right . "OrgRight") + (title . "OrgTitle") + (subtitle . "OrgSubtitle") + (footnote . "Footnote") + (src . "OrgSrcBlock") + (illustration . "Illustration") + (table . "Table") + (definition-term . "Text_20_body_20_bold") + (horizontal-line . "Horizontal_20_Line"))) + (character . ((bold . "Bold") + (emphasis . "Emphasis") + (code . "OrgCode") + (verbatim . "OrgCode") + (strike . "Strikethrough") + (underline . "Underline") + (subscript . "OrgSubscript") + (superscript . "OrgSuperscript"))) + (list . ((ordered . "OrgNumberedList") + (unordered . "OrgBulletedList") + (description . "OrgDescriptionList")))) + "Default styles for various entities.") + +(defvar org-export-odt-org-styles-alist org-export-odt-default-org-styles-alist) +(defun org-odt-get-style-name-for-entity (category &optional entity) + (let ((entity (or entity 'default))) + (or + (cdr (assoc entity (cdr (assoc category + org-export-odt-org-styles-alist)))) + (cdr (assoc entity (cdr (assoc category + org-export-odt-default-org-styles-alist)))) + (error "Cannot determine style name for entity %s of type %s" + entity category)))) + +(defcustom org-export-odt-preferred-output-format nil + "Automatically post-process to this format after exporting to \"odt\". +Interactive commands `org-export-as-odt' and +`org-export-as-odt-and-open' export first to \"odt\" format and +then use `org-export-odt-convert-process' to convert the +resulting document to this format. During customization of this +variable, the list of valid values are populated based on +`org-export-odt-convert-capabilities'." + :group 'org-export-odt + :type '(choice :convert-widget + (lambda (w) + (apply 'widget-convert (widget-type w) + (eval (car (widget-get w :args))))) + `((const :tag "None" nil) + ,@(mapcar (lambda (c) + `(const :tag ,c ,c)) + (org-lparse-reachable-formats "odt"))))) + +;;;###autoload +(defun org-export-as-odt-and-open (arg) + "Export the outline as ODT and immediately open it with a browser. +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." + (interactive "P") + (org-lparse-and-open + (or org-export-odt-preferred-output-format "odt") "odt" arg)) + +;;;###autoload +(defun org-export-as-odt-batch () + "Call the function `org-lparse-batch'. +This function can be used in batch processing as: +emacs --batch + --load=$HOME/lib/emacs/org.el + --eval \"(setq org-export-headline-levels 2)\" + --visit=MyFile --funcall org-export-as-odt-batch" + (org-lparse-batch "odt")) + +;;;###autoload +(defun org-export-as-odt-to-buffer (arg) + "Call `org-lparse-odt` with output to a temporary buffer. +No file is created. The prefix ARG is passed through to `org-lparse-to-buffer'." + (interactive "P") + (org-lparse-to-buffer "odt" arg)) + +;;;###autoload +(defun org-replace-region-by-odt (beg end) + "Assume the current region has org-mode syntax, and convert it to ODT. +This can be used in any buffer. For example, you could write an +itemized list in org-mode syntax in an ODT buffer and then use this +command to convert it." + (interactive "r") + (org-replace-region-by "odt" beg end)) + +;;;###autoload +(defun org-export-region-as-odt (beg end &optional body-only buffer) + "Convert region from BEG to END in org-mode buffer to ODT. +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 ODT. If BUFFER is the symbol `string', return the +produced ODT as a string and leave not buffer behind. For example, +a Lisp program could call this function in the following way: + + (setq odt (org-export-region-as-odt beg end t 'string)) + +When called interactively, the output buffer is selected, and shown +in a window. A non-interactive call will only return the buffer." + (interactive "r\nP") + (org-lparse-region "odt" beg end body-only buffer)) + +;;; org-export-as-odt +;;;###autoload +(defun org-export-as-odt (arg &optional hidden ext-plist + to-buffer body-only pub-dir) + "Export the outline as a OpenDocumentText 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. HIDDEN is obsolete and does nothing. +EXT-PLIST is a property list with external parameters overriding +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 XML 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. When +PUB-DIR is set, use this as the publishing directory." + (interactive "P") + (org-lparse (or org-export-odt-preferred-output-format "odt") + "odt" arg hidden ext-plist to-buffer body-only pub-dir)) + +(defvar org-odt-entity-control-callbacks-alist + `((EXPORT + . (org-odt-begin-export org-odt-end-export)) + (DOCUMENT-CONTENT + . (org-odt-begin-document-content org-odt-end-document-content)) + (DOCUMENT-BODY + . (org-odt-begin-document-body org-odt-end-document-body)) + (TOC + . (org-odt-begin-toc org-odt-end-toc)) + (ENVIRONMENT + . (org-odt-begin-environment org-odt-end-environment)) + (FOOTNOTE-DEFINITION + . (org-odt-begin-footnote-definition org-odt-end-footnote-definition)) + (TABLE + . (org-odt-begin-table org-odt-end-table)) + (TABLE-ROWGROUP + . (org-odt-begin-table-rowgroup org-odt-end-table-rowgroup)) + (LIST + . (org-odt-begin-list org-odt-end-list)) + (LIST-ITEM + . (org-odt-begin-list-item org-odt-end-list-item)) + (OUTLINE + . (org-odt-begin-outline org-odt-end-outline)) + (OUTLINE-TEXT + . (org-odt-begin-outline-text org-odt-end-outline-text)) + (PARAGRAPH + . (org-odt-begin-paragraph org-odt-end-paragraph))) + "") + +(defvar org-odt-entity-format-callbacks-alist + `((EXTRA-TARGETS . org-lparse-format-extra-targets) + (ORG-TAGS . org-lparse-format-org-tags) + (SECTION-NUMBER . org-lparse-format-section-number) + (HEADLINE . org-odt-format-headline) + (TOC-ENTRY . org-odt-format-toc-entry) + (TOC-ITEM . org-odt-format-toc-item) + (TAGS . org-odt-format-tags) + (SPACES . org-odt-format-spaces) + (TABS . org-odt-format-tabs) + (LINE-BREAK . org-odt-format-line-break) + (FONTIFY . org-odt-format-fontify) + (TODO . org-lparse-format-todo) + (LINK . org-odt-format-link) + (INLINE-IMAGE . org-odt-format-inline-image) + (ORG-LINK . org-odt-format-org-link) + (HEADING . org-odt-format-heading) + (ANCHOR . org-odt-format-anchor) + (TABLE . org-lparse-format-table) + (TABLE-ROW . org-odt-format-table-row) + (TABLE-CELL . org-odt-format-table-cell) + (FOOTNOTES-SECTION . ignore) + (FOOTNOTE-REFERENCE . org-odt-format-footnote-reference) + (HORIZONTAL-LINE . org-odt-format-horizontal-line) + (COMMENT . org-odt-format-comment) + (LINE . org-odt-format-line) + (ORG-ENTITY . org-odt-format-org-entity)) + "") + +;;;_. callbacks +;;;_. control callbacks +;;;_ , document body +(defun org-odt-begin-office-body () + ;; automatic styles + (insert-file-contents + (or org-export-odt-content-template-file + (expand-file-name "OrgOdtContentTemplate.xml" + org-odt-styles-dir))) + (goto-char (point-min)) + (re-search-forward "</office:text>" nil nil) + (delete-region (match-beginning 0) (point-max))) + +;; Following variable is let bound when `org-do-lparse' is in +;; progress. See org-html.el. +(defvar org-lparse-toc) +(defun org-odt-format-toc () + (if (not org-lparse-toc) "" (concat "\n" org-lparse-toc "\n"))) + +(defun org-odt-format-preamble (opt-plist) + (let* ((title (plist-get opt-plist :title)) + (author (plist-get opt-plist :author)) + (date (plist-get opt-plist :date)) + (iso-date (org-odt-format-date date)) + (date (org-odt-format-date date "%d %b %Y")) + (email (plist-get opt-plist :email)) + ;; switch on or off above vars based on user settings + (author (and (plist-get opt-plist :author-info) (or author email))) + (email (and (plist-get opt-plist :email-info) email)) + (date (and (plist-get opt-plist :time-stamp-file) date))) + (concat + ;; title + (when title + (concat + (org-odt-format-stylized-paragraph + 'title (org-odt-format-tags + '("<text:title>" . "</text:title>") title)) + ;; separator + "<text:p text:style-name=\"OrgTitle\"/>")) + (cond + ((and author (not email)) + ;; author only + (concat + (org-odt-format-stylized-paragraph + 'subtitle + (org-odt-format-tags + '("<text:initial-creator>" . "</text:initial-creator>") + author)) + ;; separator + "<text:p text:style-name=\"OrgSubtitle\"/>")) + ((and author email) + ;; author and email + (concat + (org-odt-format-stylized-paragraph + 'subtitle + (org-odt-format-link + (org-odt-format-tags + '("<text:initial-creator>" . "</text:initial-creator>") + author) (concat "mailto:" email))) + ;; separator + "<text:p text:style-name=\"OrgSubtitle\"/>"))) + ;; date + (when date + (concat + (org-odt-format-stylized-paragraph + 'subtitle + (org-odt-format-tags + '("<text:date style:data-style-name=\"%s\" text:date-value=\"%s\">" + . "</text:date>") date "N75" iso-date)) + ;; separator + "<text:p text:style-name=\"OrgSubtitle\"/>")) + ;; toc + (org-odt-format-toc)))) + +(defun org-odt-begin-document-body (opt-plist) + (org-odt-begin-office-body) + (insert (org-odt-format-preamble opt-plist))) + +(defvar org-lparse-body-only) ; let bound during org-do-lparse +(defvar org-lparse-to-buffer) ; let bound during org-do-lparse +(defun org-odt-end-document-body (opt-plist) + (unless org-lparse-body-only + (org-lparse-insert-tag "</office:text>") + (org-lparse-insert-tag "</office:body>"))) + +(defun org-odt-begin-document-content (opt-plist) + (ignore)) + +(defun org-odt-end-document-content () + (org-lparse-insert-tag "</office:document-content>")) + +(defun org-odt-begin-outline (level1 snumber title tags + target extra-targets class) + (org-lparse-insert + 'HEADING (org-lparse-format + 'HEADLINE title extra-targets tags snumber level1) + level1 target)) + +(defun org-odt-end-outline () + (ignore)) + +(defun org-odt-begin-outline-text (level1 snumber class) + (ignore)) + +(defun org-odt-end-outline-text () + (ignore)) + +(defun org-odt-begin-paragraph (&optional style) + (org-lparse-insert-tag + "<text:p%s>" (org-odt-get-extra-attrs-for-paragraph-style style))) + +(defun org-odt-end-paragraph () + (org-lparse-insert-tag "</text:p>")) + +(defun org-odt-get-extra-attrs-for-paragraph-style (style) + (let (style-name) + (setq style-name + (cond + ((stringp style) style) + ((symbolp style) (org-odt-get-style-name-for-entity + 'paragraph style)))) + (unless style-name + (error "Don't know how to handle paragraph style %s" style)) + (format " text:style-name=\"%s\"" style-name))) + +(defun org-odt-format-stylized-paragraph (style text) + (org-odt-format-tags + '("<text:p%s>" . "</text:p>") text + (org-odt-get-extra-attrs-for-paragraph-style style))) + +(defvar org-lparse-opt-plist) ; bound during org-do-lparse +(defun org-odt-format-author (&optional author) + (when (setq author (or author (plist-get org-lparse-opt-plist :author))) + (org-odt-format-tags '("<dc:creator>" . "</dc:creator>") author))) + +(defun org-odt-format-date (&optional org-ts fmt) + (save-match-data + (let* ((time + (and (stringp org-ts) + (string-match org-ts-regexp0 org-ts) + (apply 'encode-time + (org-fix-decoded-time + (org-parse-time-string (match-string 0 org-ts) t))))) + date) + (cond + (fmt (format-time-string fmt time)) + (t (setq date (format-time-string "%Y-%m-%dT%H:%M:%S%z" time)) + (format "%s:%s" (substring date 0 -2) (substring date -2))))))) + +(defun org-odt-begin-annotation (&optional author date) + (org-lparse-insert-tag "<office:annotation>") + (when (setq author (org-odt-format-author author)) + (insert author)) + (insert (org-odt-format-tags + '("<dc:date>" . "</dc:date>") + (org-odt-format-date + (or date (plist-get org-lparse-opt-plist :date))))) + (org-lparse-begin-paragraph)) + +(defun org-odt-end-annotation () + (org-lparse-insert-tag "</office:annotation>")) + +(defun org-odt-begin-environment (style env-options-plist) + (case style + (annotation + (org-lparse-stash-save-paragraph-state) + (org-odt-begin-annotation (plist-get env-options-plist 'author) + (plist-get env-options-plist 'date))) + ((blockquote verse center quote) + (org-lparse-begin-paragraph style) + (list)) + ((fixedwidth native) + (org-lparse-end-paragraph) + (list)) + (t (error "Unknown environment %s" style)))) + +(defun org-odt-end-environment (style env-options-plist) + (case style + (annotation + (org-lparse-end-paragraph) + (org-odt-end-annotation) + (org-lparse-stash-pop-paragraph-state)) + ((blockquote verse center quote) + (org-lparse-end-paragraph) + (list)) + ((fixedwidth native) + (org-lparse-begin-paragraph) + (list)) + (t (error "Unknown environment %s" style)))) + +(defvar org-lparse-list-level) ; dynamically bound in org-do-lparse +(defun org-odt-begin-list (ltype) + (setq ltype (or (org-lparse-html-list-type-to-canonical-list-type ltype) + ltype)) + (let* ((style-name (org-odt-get-style-name-for-entity 'list ltype)) + (extra (concat (when (= org-lparse-list-level 1) + " text:continue-numbering=\"false\"") + (when style-name + (format " text:style-name=\"%s\"" style-name))))) + (case ltype + ((ordered unordered description) + (org-lparse-end-paragraph) + (org-lparse-insert-tag "<text:list%s>" extra)) + (t (error "Unknown list type: %s" ltype))))) + +(defun org-odt-end-list (ltype) + (setq ltype (or (org-lparse-html-list-type-to-canonical-list-type ltype) + ltype)) + (if ltype + (org-lparse-insert-tag "</text:list>") + (error "Unknown list type: %s" ltype))) + +(defun org-odt-begin-list-item (ltype &optional arg headline) + (setq ltype (or (org-lparse-html-list-type-to-canonical-list-type ltype) + ltype)) + (case ltype + (ordered + (assert (not headline) t) + (let* ((counter arg) (extra "")) + (org-lparse-insert-tag "<text:list-item>") + (org-lparse-begin-paragraph))) + (unordered + (let* ((id arg) (extra "")) + (org-lparse-insert-tag "<text:list-item>") + (org-lparse-begin-paragraph) + (insert (if headline (org-odt-format-target headline id) + (org-odt-format-bookmark "" id))))) + (description + (assert (not headline) t) + (let ((term (or arg "(no term)"))) + (insert + (org-odt-format-tags + '("<text:list-item>" . "</text:list-item>") + (org-odt-format-stylized-paragraph 'definition-term term))) + (org-lparse-begin-list-item 'unordered) + (org-lparse-begin-list 'description) + (org-lparse-begin-list-item 'unordered))) + (t (error "Unknown list type")))) + +(defun org-odt-end-list-item (ltype) + (setq ltype (or (org-lparse-html-list-type-to-canonical-list-type ltype) + ltype)) + (case ltype + ((ordered unordered) + (org-lparse-insert-tag "</text:list-item>")) + (description + (org-lparse-end-list-item-1) + (org-lparse-end-list 'description) + (org-lparse-end-list-item-1)) + (t (error "Unknown list type")))) + +;; Following variables are let bound when table emission is in +;; progress. See org-lparse.el. +(defvar org-lparse-table-begin-marker) +(defvar org-lparse-table-ncols) +(defvar org-lparse-table-rowgrp-open) +(defvar org-lparse-table-rownum) +(defvar org-lparse-table-cur-rowgrp-is-hdr) +(defvar org-lparse-table-is-styled) +(defvar org-lparse-table-rowgrp-info) +(defvar org-lparse-table-colalign-vector) + +(defvar org-odt-table-style nil + "Table style specified by \"#+ATTR_ODT: <style-name>\" line. +This is set during `org-odt-begin-table'.") + +(defvar org-odt-table-style-spec nil + "Entry for `org-odt-table-style' in `org-export-odt-table-styles'.") + +(defcustom org-export-odt-table-styles + '(("OrgEquation" "OrgEquation" + ((use-first-column-styles . t) + (use-last-column-styles . t)))) + "Specify how Table Styles should be derived from a Table Template. +This is a list where each element is of the +form (TABLE-STYLE-NAME TABLE-TEMPLATE-NAME TABLE-CELL-OPTIONS). + +TABLE-STYLE-NAME is the style associated with the table through +`org-odt-table-style'. + +TABLE-TEMPLATE-NAME is a set of - upto 9 - automatic +TABLE-CELL-STYLE-NAMEs and PARAGRAPH-STYLE-NAMEs (as defined +below) that is included in +`org-export-odt-content-template-file'. + +TABLE-CELL-STYLE-NAME := TABLE-TEMPLATE-NAME + TABLE-CELL-TYPE + + \"TableCell\" +PARAGRAPH-STYLE-NAME := TABLE-TEMPLATE-NAME + TABLE-CELL-TYPE + + \"TableParagraph\" +TABLE-CELL-TYPE := \"FirstRow\" | \"LastColumn\" | + \"FirstRow\" | \"LastRow\" | + \"EvenRow\" | \"OddRow\" | + \"EvenColumn\" | \"OddColumn\" | \"\" +where \"+\" above denotes string concatenation. + +TABLE-CELL-OPTIONS is an alist where each element is of the +form (TABLE-CELL-STYLE-SELECTOR . ON-OR-OFF). +TABLE-CELL-STYLE-SELECTOR := `use-first-row-styles' | + `use-last-row-styles' | + `use-first-column-styles' | + `use-last-column-styles' | + `use-banding-rows-styles' | + `use-banding-columns-styles' | + `use-first-row-styles' +ON-OR-OFF := `t' | `nil' + +For example, with the following configuration + +\(setq org-export-odt-table-styles + '\(\(\"TableWithHeaderRowsAndColumns\" \"Custom\" + \(\(use-first-row-styles . t\) + \(use-first-column-styles . t\)\)\) + \(\"TableWithHeaderColumns\" \"Custom\" + \(\(use-first-column-styles . t\)\)\)\)\) + +1. A table associated with \"TableWithHeaderRowsAndColumns\" + style will use the following table-cell styles - + \"CustomFirstRowTableCell\", \"CustomFirstColumnTableCell\", + \"CustomTableCell\" and the following paragraph styles + \"CustomFirstRowTableParagraph\", + \"CustomFirstColumnTableParagraph\", \"CustomTableParagraph\" + as appropriate. + +2. A table associated with \"TableWithHeaderColumns\" style will + use the following table-cell styles - + \"CustomFirstColumnTableCell\", \"CustomTableCell\" and the + following paragraph styles + \"CustomFirstColumnTableParagraph\", \"CustomTableParagraph\" + as appropriate.. + +Note that TABLE-TEMPLATE-NAME corresponds to the +\"<table:table-template>\" elements contained within +\"<office:styles>\". The entries (TABLE-STYLE-NAME +TABLE-TEMPLATE-NAME TABLE-CELL-OPTIONS) correspond to +\"table:template-name\" and \"table:use-first-row-styles\" etc +attributes of \"<table:table>\" element. Refer ODF-1.2 +specification for more information. Also consult the +implementation filed under `org-odt-get-table-cell-styles'. + +The TABLE-STYLE-NAME \"OrgEquation\" is used internally for +formatting of numbered display equations. Do not delete this +style from the list." + :group 'org-export-odt + :type '(choice + (const :tag "None" nil) + (repeat :tag "Table Styles" + (list :tag "Table Style Specification" + (string :tag "Table Style Name") + (string :tag "Table Template Name") + (alist :options (use-first-row-styles + use-last-row-styles + use-first-column-styles + use-last-column-styles + use-banding-rows-styles + use-banding-columns-styles) + :key-type symbol + :value-type (const :tag "True" t)))))) + +(defun org-odt-begin-table (caption label attributes) + (setq org-odt-table-style attributes) + (setq org-odt-table-style-spec + (assoc org-odt-table-style org-export-odt-table-styles)) + (when label + (insert + (org-odt-format-stylized-paragraph + 'table (org-odt-format-entity-caption label caption "__Table__")))) + (org-lparse-insert-tag + "<table:table table:name=\"%s\" table:style-name=\"%s\">" + (or label "") (or (nth 1 org-odt-table-style-spec) "OrgTable")) + (setq org-lparse-table-begin-marker (point))) + +(defvar org-lparse-table-colalign-info) +(defun org-odt-end-table () + (goto-char org-lparse-table-begin-marker) + (loop for level from 0 below org-lparse-table-ncols + do (let* ((col-cookie (and org-lparse-table-is-styled + (cdr (assoc (1+ level) + org-lparse-table-colalign-info)))) + (extra-columns (or (nth 1 col-cookie) 0))) + (dotimes (i (1+ extra-columns)) + (insert + (org-odt-format-tags + "<table:table-column table:style-name=\"%sColumn\"/>" + "" (or (nth 1 org-odt-table-style-spec) "OrgTable")))) + (insert "\n"))) + ;; fill style attributes for table cells + (when org-lparse-table-is-styled + (while (re-search-forward "@@\\(table-cell:p\\|table-cell:style-name\\)@@\\([0-9]+\\)@@\\([0-9]+\\)@@" nil t) + (let* ((spec (match-string 1)) + (r (string-to-number (match-string 2))) + (c (string-to-number (match-string 3))) + (cell-styles (org-odt-get-table-cell-styles + r c org-odt-table-style-spec)) + (table-cell-style (car cell-styles)) + (table-cell-paragraph-style (cdr cell-styles))) + (cond + ((equal spec "table-cell:p") + (replace-match table-cell-paragraph-style t t)) + ((equal spec "table-cell:style-name") + (replace-match table-cell-style t t)))))) + (goto-char (point-max)) + (org-lparse-insert-tag "</table:table>")) + +(defun org-odt-begin-table-rowgroup (&optional is-header-row) + (when org-lparse-table-rowgrp-open + (org-lparse-end 'TABLE-ROWGROUP)) + (org-lparse-insert-tag (if is-header-row + "<table:table-header-rows>" + "<table:table-rows>")) + (setq org-lparse-table-rowgrp-open t) + (setq org-lparse-table-cur-rowgrp-is-hdr is-header-row)) + +(defun org-odt-end-table-rowgroup () + (when org-lparse-table-rowgrp-open + (setq org-lparse-table-rowgrp-open nil) + (org-lparse-insert-tag + (if org-lparse-table-cur-rowgrp-is-hdr + "</table:table-header-rows>" "</table:table-rows>")))) + +(defun org-odt-format-table-row (row) + (org-odt-format-tags + '("<table:table-row>" . "</table:table-row>") row)) + +(defun org-odt-get-table-cell-styles (r c &optional style-spec) + "Retrieve styles applicable to a table cell. +R and C are (zero-based) row and column numbers of the table +cell. STYLE-SPEC is an entry in `org-export-odt-table-styles' +applicable to the current table. It is `nil' if the table is not +associated with any style attributes. + +Return a cons of (TABLE-CELL-STYLE-NAME . PARAGRAPH-STYLE-NAME). + +When STYLE-SPEC is nil, style the table cell the conventional way +- choose cell borders based on row and column groupings and +choose paragraph alignment based on `org-col-cookies' text +property. See also +`org-odt-get-paragraph-style-cookie-for-table-cell'. + +When STYLE-SPEC is non-nil, ignore the above cookie and return +styles congruent with the ODF-1.2 specification." + (cond + (style-spec + + ;; LibreOffice - particularly the Writer - honors neither table + ;; templates nor custom table-cell styles. Inorder to retain + ;; inter-operability with LibreOffice, only automatic styles are + ;; used for styling of table-cells. The current implementation is + ;; congruent with ODF-1.2 specification and hence is + ;; future-compatible. + + ;; Additional Note: LibreOffice's AutoFormat facility for tables - + ;; which recognizes as many as 16 different cell types - is much + ;; richer. Unfortunately it is NOT amenable to easy configuration + ;; by hand. + + (let* ((template-name (nth 1 style-spec)) + (cell-style-selectors (nth 2 style-spec)) + (cell-type + (cond + ((and (cdr (assoc 'use-first-column-styles cell-style-selectors)) + (= c 0)) "FirstColumn") + ((and (cdr (assoc 'use-last-column-styles cell-style-selectors)) + (= c (1- org-lparse-table-ncols))) "LastColumn") + ((and (cdr (assoc 'use-first-row-styles cell-style-selectors)) + (= r 0)) "FirstRow") + ((and (cdr (assoc 'use-last-row-styles cell-style-selectors)) + (= r org-lparse-table-rownum)) + "LastRow") + ((and (cdr (assoc 'use-banding-rows-styles cell-style-selectors)) + (= (% r 2) 1)) "EvenRow") + ((and (cdr (assoc 'use-banding-rows-styles cell-style-selectors)) + (= (% r 2) 0)) "OddRow") + ((and (cdr (assoc 'use-banding-columns-styles cell-style-selectors)) + (= (% c 2) 1)) "EvenColumn") + ((and (cdr (assoc 'use-banding-columns-styles cell-style-selectors)) + (= (% c 2) 0)) "OddColumn") + (t "")))) + (cons + (concat template-name cell-type "TableCell") + (concat template-name cell-type "TableParagraph")))) + (t + (cons + (concat + "OrgTblCell" + (cond + ((= r 0) "T") + ((eq (cdr (assoc r org-lparse-table-rowgrp-info)) :start) "T") + (t "")) + (when (= r org-lparse-table-rownum) "B") + (cond + ((= c 0) "") + ((or (memq (nth c org-table-colgroup-info) '(:start :startend)) + (memq (nth (1- c) org-table-colgroup-info) '(:end :startend))) "L") + (t ""))) + (capitalize (aref org-lparse-table-colalign-vector c)))))) + +(defun org-odt-get-paragraph-style-cookie-for-table-cell (r c) + (concat + (and (not org-odt-table-style-spec) + (cond + (org-lparse-table-cur-rowgrp-is-hdr "OrgTableHeading") + ((and (= c 0) (org-lparse-get 'TABLE-FIRST-COLUMN-AS-LABELS)) + "OrgTableHeading") + (t "OrgTableContents"))) + (and org-lparse-table-is-styled + (format "@@table-cell:p@@%03d@@%03d@@" r c)))) + +(defun org-odt-get-style-name-cookie-for-table-cell (r c) + (when org-lparse-table-is-styled + (format "@@table-cell:style-name@@%03d@@%03d@@" r c))) + +(defun org-odt-format-table-cell (data r c horiz-span) + (concat + (let* ((paragraph-style-cookie + (org-odt-get-paragraph-style-cookie-for-table-cell r c)) + (style-name-cookie + (org-odt-get-style-name-cookie-for-table-cell r c)) + (extra (and style-name-cookie + (format " table:style-name=\"%s\"" style-name-cookie))) + (extra (concat extra + (and (> horiz-span 0) + (format " table:number-columns-spanned=\"%d\"" + (1+ horiz-span)))))) + (org-odt-format-tags + '("<table:table-cell%s>" . "</table:table-cell>") + (if org-lparse-list-table-p data + (org-odt-format-stylized-paragraph paragraph-style-cookie data)) extra)) + (let (s) + (dotimes (i horiz-span) + (setq s (concat s "\n<table:covered-table-cell/>"))) s) + "\n")) + +(defun org-odt-begin-footnote-definition (n) + (org-lparse-begin-paragraph 'footnote)) + +(defun org-odt-end-footnote-definition (n) + (org-lparse-end-paragraph)) + +(defun org-odt-begin-toc (lang-specific-heading max-level) + (insert + (format " + <text:table-of-content text:style-name=\"Sect2\" text:protected=\"true\" text:name=\"Table of Contents1\"> + <text:table-of-content-source text:outline-level=\"%d\"> + <text:index-title-template text:style-name=\"Contents_20_Heading\">%s</text:index-title-template> +" max-level lang-specific-heading)) + (loop for level from 1 upto 10 + do (insert (format + " + <text:table-of-content-entry-template text:outline-level=\"%d\" text:style-name=\"Contents_20_%d\"> + <text:index-entry-link-start text:style-name=\"Internet_20_link\"/> + <text:index-entry-chapter/> + <text:index-entry-text/> + <text:index-entry-link-end/> + </text:table-of-content-entry-template> +" level level))) + + (insert + (format " + </text:table-of-content-source> + + <text:index-body> + <text:index-title text:style-name=\"Sect1\" text:name=\"Table of Contents1_Head\"> + <text:p text:style-name=\"Contents_20_Heading\">%s</text:p> + </text:index-title> +" lang-specific-heading))) + +(defun org-odt-end-toc () + (insert " + </text:index-body> + </text:table-of-content> +")) + +(defun org-odt-format-toc-entry (snumber todo headline tags href) + (setq headline (concat + (and org-export-with-section-numbers + (concat snumber ". ")) + headline + (and tags + (concat + (org-lparse-format 'SPACES 3) + (org-lparse-format 'FONTIFY tags "tag"))))) + (when todo + (setq headline (org-lparse-format 'FONTIFY headline "todo"))) + + (let ((org-odt-suppress-xref t)) + (org-odt-format-link headline (concat "#" href)))) + +(defun org-odt-format-toc-item (toc-entry level org-last-level) + (let ((style (format "Contents_20_%d" + (+ level (or (org-lparse-get 'TOPLEVEL-HLEVEL) 1) -1)))) + (insert "\n" (org-odt-format-stylized-paragraph style toc-entry) "\n"))) + +;; Following variable is let bound during 'ORG-LINK callback. See +;; org-html.el +(defvar org-lparse-link-description-is-image nil) +(defun org-odt-format-link (desc href &optional attr) + (cond + ((and (= (string-to-char href) ?#) (not org-odt-suppress-xref)) + (setq href (concat org-export-odt-bookmark-prefix (substring href 1))) + (let ((xref-format "text")) + (when (numberp desc) + (setq desc (format "%d" desc) xref-format "number")) + (org-odt-format-tags + '("<text:bookmark-ref text:reference-format=\"%s\" text:ref-name=\"%s\">" . + "</text:bookmark-ref>") + desc xref-format href))) + (org-lparse-link-description-is-image + (org-odt-format-tags + '("<draw:a xlink:type=\"simple\" xlink:href=\"%s\" %s>" . "</draw:a>") + desc href (or attr ""))) + (t + (org-odt-format-tags + '("<text:a xlink:type=\"simple\" xlink:href=\"%s\" %s>" . "</text:a>") + desc href (or attr ""))))) + +(defun org-odt-format-spaces (n) + (cond + ((= n 1) " ") + ((> n 1) (concat + " " (org-odt-format-tags "<text:s text:c=\"%d\"/>" "" (1- n)))) + (t ""))) + +(defun org-odt-format-tabs (&optional n) + (let ((tab "<text:tab/>") + (n (or n 1))) + (insert tab))) + +(defun org-odt-format-line-break () + (org-odt-format-tags "<text:line-break/>" "")) + +(defun org-odt-format-horizontal-line () + (org-odt-format-stylized-paragraph 'horizontal-line "")) + +(defun org-odt-encode-plain-text (line &optional no-whitespace-filling) + (setq line (org-xml-encode-plain-text line)) + (if no-whitespace-filling line + (org-odt-fill-tabs-and-spaces line))) + +(defun org-odt-format-line (line) + (case org-lparse-dyn-current-environment + (fixedwidth (concat + (org-odt-format-stylized-paragraph + 'fixedwidth (org-odt-encode-plain-text line)) "\n")) + (t (concat line "\n")))) + +(defun org-odt-format-comment (fmt &rest args) + (let ((comment (apply 'format fmt args))) + (format "\n<!-- %s -->\n" comment))) + +(defun org-odt-format-org-entity (wd) + (org-entity-get-representation wd 'utf8)) + +(defun org-odt-fill-tabs-and-spaces (line) + (replace-regexp-in-string + "\\([\t]\\|\\([ ]+\\)\\)" (lambda (s) + (cond + ((string= s "\t") (org-odt-format-tabs)) + (t (org-odt-format-spaces (length s))))) line)) + +(defcustom org-export-odt-fontify-srcblocks t + "Specify whether or not source blocks need to be fontified. +Turn this option on if you want to colorize the source code +blocks in the exported file. For colorization to work, you need +to make available an enhanced version of `htmlfontify' library." + :type 'boolean + :group 'org-export-odt) + +(defun org-odt-format-source-line-with-line-number-and-label + (line rpllbl num fontifier par-style) + + (let ((keep-label (not (numberp rpllbl))) + (ref (org-find-text-property-in-string 'org-coderef line))) + (setq line (concat line (and keep-label ref (format "(%s)" ref)))) + (setq line (funcall fontifier line)) + (when ref + (setq line (org-odt-format-target line (concat "coderef-" ref)))) + (setq line (org-odt-format-stylized-paragraph par-style line)) + (if (not num) line + (org-odt-format-tags '("<text:list-item>" . "</text:list-item>") line)))) + +(defun org-odt-format-source-code-or-example-plain + (lines lang caption textareap cols rows num cont rpllbl fmt) + "Format source or example blocks much like fixedwidth blocks. +Use this when `org-export-odt-fontify-srcblocks' option is turned +off." + (let* ((lines (org-split-string lines "[\r\n]")) + (line-count (length lines)) + (i 0)) + (mapconcat + (lambda (line) + (incf i) + (org-odt-format-source-line-with-line-number-and-label + line rpllbl num 'org-odt-encode-plain-text + (if (= i line-count) "OrgFixedWidthBlockLastLine" + "OrgFixedWidthBlock"))) + lines "\n"))) + +(defvar org-src-block-paragraph-format + "<style:style style:name=\"OrgSrcBlock\" style:family=\"paragraph\" style:parent-style-name=\"Preformatted_20_Text\"> + <style:paragraph-properties fo:background-color=\"%s\" fo:padding=\"0.049cm\" fo:border=\"0.51pt solid #000000\" style:shadow=\"none\"> + <style:background-image/> + </style:paragraph-properties> + <style:text-properties fo:color=\"%s\"/> + </style:style>" + "Custom paragraph style for colorized source and example blocks. +This style is much the same as that of \"OrgFixedWidthBlock\" +except that the foreground and background colors are set +according to the default face identified by the `htmlfontify'.") + +(defvar hfy-optimisations) +(declare-function hfy-face-to-style "htmlfontify" (fn)) +(declare-function hfy-face-or-def-to-name "htmlfontify" (fn)) + +(defun org-odt-hfy-face-to-css (fn) + "Create custom style for face FN. +When FN is the default face, use it's foreground and background +properties to create \"OrgSrcBlock\" paragraph style. Otherwise +use it's color attribute to create a character style whose name +is obtained from FN. Currently all attributes of FN other than +color are ignored. + +The style name for a face FN is derived using the following +operations on the face name in that order - de-dash, CamelCase +and prefix with \"OrgSrc\". For example, +`font-lock-function-name-face' is associated with +\"OrgSrcFontLockFunctionNameFace\"." + (let* ((css-list (hfy-face-to-style fn)) + (style-name ((lambda (fn) + (concat "OrgSrc" + (mapconcat + 'capitalize (split-string + (hfy-face-or-def-to-name fn) "-") + ""))) fn)) + (color-val (cdr (assoc "color" css-list))) + (background-color-val (cdr (assoc "background" css-list))) + (style (and org-export-odt-create-custom-styles-for-srcblocks + (cond + ((eq fn 'default) + (format org-src-block-paragraph-format + background-color-val color-val)) + (t + (format + " +<style:style style:name=\"%s\" style:family=\"text\"> + <style:text-properties fo:color=\"%s\"/> + </style:style>" style-name color-val)))))) + (cons style-name style))) + +(defun org-odt-insert-custom-styles-for-srcblocks (styles) + "Save STYLES used for colorizing of source blocks. +Update styles.xml with styles that were collected as part of +`org-odt-hfy-face-to-css' callbacks." + (when styles + (with-current-buffer + (find-file-noselect (expand-file-name "styles.xml") t) + (goto-char (point-min)) + (when (re-search-forward "</office:styles>" nil t) + (goto-char (match-beginning 0)) + (insert "\n<!-- Org Htmlfontify Styles -->\n" styles "\n"))))) + +(defun org-odt-format-source-code-or-example-colored + (lines lang caption textareap cols rows num cont rpllbl fmt) + "Format source or example blocks using `htmlfontify-string'. +Use this routine when `org-export-odt-fontify-srcblocks' option +is turned on." + (let* ((lang-m (and lang (or (cdr (assoc lang org-src-lang-modes)) lang))) + (mode (and lang-m (intern (concat (if (symbolp lang-m) + (symbol-name lang-m) + lang-m) "-mode")))) + (org-inhibit-startup t) + (org-startup-folded nil) + (lines (with-temp-buffer + (insert lines) + (if (functionp mode) (funcall mode) (fundamental-mode)) + (font-lock-fontify-buffer) + (buffer-string))) + (hfy-html-quote-regex "\\([<\"&> ]\\)") + (hfy-html-quote-map '(("\"" """) + ("<" "<") + ("&" "&") + (">" ">") + (" " "<text:s/>") + (" " "<text:tab/>"))) + (hfy-face-to-css 'org-odt-hfy-face-to-css) + (hfy-optimisations-1 (copy-seq hfy-optimisations)) + (hfy-optimisations (add-to-list 'hfy-optimisations-1 + 'body-text-only)) + (hfy-begin-span-handler + (lambda (style text-block text-id text-begins-block-p) + (insert (format "<text:span text:style-name=\"%s\">" style)))) + (hfy-end-span-handler (lambda nil (insert "</text:span>")))) + (when (fboundp 'htmlfontify-string) + (let* ((lines (org-split-string lines "[\r\n]")) + (line-count (length lines)) + (i 0)) + (mapconcat + (lambda (line) + (incf i) + (org-odt-format-source-line-with-line-number-and-label + line rpllbl num 'htmlfontify-string + (if (= i line-count) "OrgSrcBlockLastLine" "OrgSrcBlock"))) + lines "\n"))))) + +(defun org-odt-format-source-code-or-example (lines lang caption textareap + cols rows num cont + rpllbl fmt) + "Format source or example blocks for export. +Use `org-odt-format-source-code-or-example-plain' or +`org-odt-format-source-code-or-example-colored' depending on the +value of `org-export-odt-fontify-srcblocks." + (setq lines (org-export-number-lines + lines 0 0 num cont rpllbl fmt 'preprocess) + lines (funcall + (or (and org-export-odt-fontify-srcblocks + (or (featurep 'htmlfontify) + ;; htmlfontify.el was introduced in Emacs 23.2 + ;; So load it with some caution + (require 'htmlfontify nil t)) + (fboundp 'htmlfontify-string) + 'org-odt-format-source-code-or-example-colored) + 'org-odt-format-source-code-or-example-plain) + lines lang caption textareap cols rows num cont rpllbl fmt)) + (if (not num) lines + (let ((extra (format " text:continue-numbering=\"%s\"" + (if cont "true" "false")))) + (org-odt-format-tags + '("<text:list text:style-name=\"OrgSrcBlockNumberedLine\"%s>" + . "</text:list>") lines extra)))) + +(defun org-odt-remap-stylenames (style-name) + (or + (cdr (assoc style-name '(("timestamp-wrapper" . "OrgTimestampWrapper") + ("timestamp" . "OrgTimestamp") + ("timestamp-kwd" . "OrgTimestampKeyword") + ("tag" . "OrgTag") + ("todo" . "OrgTodo") + ("done" . "OrgDone") + ("target" . "OrgTarget")))) + style-name)) + +(defun org-odt-format-fontify (text style &optional id) + (let* ((style-name + (cond + ((stringp style) + (org-odt-remap-stylenames style)) + ((symbolp style) + (org-odt-get-style-name-for-entity 'character style)) + ((listp style) + (assert (< 1 (length style))) + (let ((parent-style (pop style))) + (mapconcat (lambda (s) + ;; (assert (stringp s) t) + (org-odt-remap-stylenames s)) style "") + (org-odt-remap-stylenames parent-style))) + (t (error "Don't how to handle style %s" style))))) + (org-odt-format-tags + '("<text:span text:style-name=\"%s\">" . "</text:span>") + text style-name))) + +(defun org-odt-relocate-relative-path (path dir) + (if (file-name-absolute-p path) path + (file-relative-name (expand-file-name path dir) + (expand-file-name "eyecandy" dir)))) + +(defun org-odt-format-inline-image (thefile) + (let* ((thelink (if (file-name-absolute-p thefile) thefile + (org-xml-format-href + (org-odt-relocate-relative-path + thefile org-current-export-file)))) + (href + (org-odt-format-tags + "<draw:image xlink:href=\"%s\" xlink:type=\"simple\" xlink:show=\"embed\" xlink:actuate=\"onLoad\"/>" "" + (if org-export-odt-embed-images + (org-odt-copy-image-file thefile) thelink)))) + (org-export-odt-format-image thefile href))) + +(defun org-export-odt-format-formula (src href &optional embed-as) + "Create image tag with source and attributes." + (save-match-data + (let* ((caption (org-find-text-property-in-string 'org-caption src)) + (caption (and caption (org-xml-format-desc caption))) + (label (org-find-text-property-in-string 'org-label src)) + (latex-frag (org-find-text-property-in-string 'org-latex-src src)) + (embed-as (or embed-as + (and latex-frag + (org-find-text-property-in-string + 'org-latex-src-embed-type src)) + (if (or caption label) 'paragraph 'character))) + width height) + (when latex-frag + (setq href (org-propertize href :title "LaTeX Fragment" + :description latex-frag))) + (cond + ((eq embed-as 'character) + (org-odt-format-entity "InlineFormula" href width height)) + (t + (org-lparse-end-paragraph) + (org-lparse-insert-list-table + `((,(org-odt-format-entity + (if caption "CaptionedDisplayFormula" "DisplayFormula") + href width height :caption caption :label nil) + ,(if (not label) "" + (org-odt-format-entity-caption label nil "__MathFormula__")))) + nil nil nil "OrgEquation" nil '((1 "c" 8) (2 "c" 1))) + (throw 'nextline nil)))))) + +(defvar org-odt-embedded-formulas-count 0) +(defun org-odt-copy-formula-file (path) + "Returns the internal name of the file" + (let* ((src-file (expand-file-name + path (file-name-directory org-current-export-file))) + (target-dir (format "Formula-%04d/" + (incf org-odt-embedded-formulas-count))) + (target-file (concat target-dir "content.xml"))) + (when (not org-lparse-to-buffer) + (message "Embedding %s as %s ..." + (substring-no-properties path) target-file) + + (make-directory target-dir) + (org-odt-create-manifest-file-entry + "application/vnd.oasis.opendocument.formula" target-dir "1.2") + + (case (org-odt-is-formula-link-p src-file) + (mathml + (copy-file src-file target-file 'overwrite)) + (odf + (org-odt-zip-extract-one src-file "content.xml" target-dir)) + (t + (error "%s is not a formula file" src-file))) + + (org-odt-create-manifest-file-entry "text/xml" target-file)) + target-file)) + +(defun org-odt-format-inline-formula (thefile) + (let* ((thelink (if (file-name-absolute-p thefile) thefile + (org-xml-format-href + (org-odt-relocate-relative-path + thefile org-current-export-file)))) + (href + (org-odt-format-tags + "<draw:object xlink:href=\"%s\" xlink:type=\"simple\" xlink:show=\"embed\" xlink:actuate=\"onLoad\"/>" "" + (file-name-directory (org-odt-copy-formula-file thefile))))) + (org-export-odt-format-formula thefile href))) + +(defun org-odt-is-formula-link-p (file) + (let ((case-fold-search nil)) + (cond + ((string-match "\\.\\(mathml\\|mml\\)\\'" file) + 'mathml) + ((string-match "\\.odf\\'" file) + 'odf)))) + +(defun org-odt-format-org-link (opt-plist type-1 path fragment desc attr + descp) + "Make a OpenDocument link. +OPT-PLIST is an options list. +TYPE-1 is the device-type of the link (THIS://foo.html). +PATH is the path of the link (http://THIS#location). +FRAGMENT is the fragment part of the link, if any (foo.html#THIS). +DESC is the link description, if any. +ATTR is a string of other attributes of the a element." + (declare (special org-lparse-par-open)) + (save-match-data + (let* ((may-inline-p + (and (member type-1 '("http" "https" "file")) + (org-lparse-should-inline-p path descp) + (not fragment))) + (type (if (equal type-1 "id") "file" type-1)) + (filename path) + (thefile path)) + (cond + ;; check for inlined images + ((and (member type '("file")) + (not fragment) + (org-file-image-p + filename org-export-odt-inline-image-extensions) + (or (eq t org-export-odt-inline-images) + (and org-export-odt-inline-images (not descp)))) + (org-odt-format-inline-image thefile)) + ;; check for embedded formulas + ((and (member type '("file")) + (not fragment) + (org-odt-is-formula-link-p filename) + (or (not descp))) + (org-odt-format-inline-formula thefile)) + ((string= type "coderef") + (let* ((ref fragment) + (lineno-or-ref (cdr (assoc ref org-export-code-refs))) + (desc (and descp desc)) + (org-odt-suppress-xref nil) + (href (org-xml-format-href (concat "#coderef-" ref)))) + (cond + ((and (numberp lineno-or-ref) (not desc)) + (org-odt-format-link lineno-or-ref href)) + ((and (numberp lineno-or-ref) desc + (string-match (regexp-quote (concat "(" ref ")")) desc)) + (format (replace-match "%s" t t desc) + (org-odt-format-link lineno-or-ref href))) + (t + (setq desc (format + (if (and desc (string-match + (regexp-quote (concat "(" ref ")")) + desc)) + (replace-match "%s" t t desc) + (or desc "%s")) + lineno-or-ref)) + (org-odt-format-link (org-xml-format-desc desc) href))))) + (t + (when (string= type "file") + (setq thefile + (cond + ((file-name-absolute-p path) + (concat "file://" (expand-file-name path))) + (t (org-odt-relocate-relative-path + thefile org-current-export-file))))) + + (when (and (member type '("" "http" "https" "file")) fragment) + (setq thefile (concat thefile "#" fragment))) + + (setq thefile (org-xml-format-href thefile)) + + (when (not (member type '("" "file"))) + (setq thefile (concat type ":" thefile))) + + (let ((org-odt-suppress-xref nil)) + (org-odt-format-link + (org-xml-format-desc desc) thefile attr))))))) + +(defun org-odt-format-heading (text level &optional id) + (let* ((text (if id (org-odt-format-target text id) text))) + (org-odt-format-tags + '("<text:h text:style-name=\"Heading_20_%s\" text:outline-level=\"%s\">" . + "</text:h>") text level level))) + +(defun org-odt-format-headline (title extra-targets tags + &optional snumber level) + (concat + (org-lparse-format 'EXTRA-TARGETS extra-targets) + + ;; No need to generate section numbers. They are auto-generated by + ;; the application + + ;; (concat (org-lparse-format 'SECTION-NUMBER snumber level) " ") + title + (and tags (concat (org-lparse-format 'SPACES 3) + (org-lparse-format 'ORG-TAGS tags))))) + +(defun org-odt-format-anchor (text name &optional class) + (org-odt-format-target text name)) + +(defun org-odt-format-bookmark (text id) + (if id + (org-odt-format-tags "<text:bookmark text:name=\"%s\"/>" text id) + text)) + +(defun org-odt-format-target (text id) + (let ((name (concat org-export-odt-bookmark-prefix id))) + (concat + (and id (org-odt-format-tags + "<text:bookmark-start text:name=\"%s\"/>" "" name)) + (org-odt-format-bookmark text id) + (and id (org-odt-format-tags + "<text:bookmark-end text:name=\"%s\"/>" "" name))))) + +(defun org-odt-format-footnote (n def) + (let ((id (concat "fn" n)) + (note-class "footnote") + (par-style "Footnote")) + (org-odt-format-tags + '("<text:note text:id=\"%s\" text:note-class=\"%s\">" . + "</text:note>") + (concat + (org-odt-format-tags + '("<text:note-citation>" . "</text:note-citation>") + n) + (org-odt-format-tags + '("<text:note-body>" . "</text:note-body>") + def)) + id note-class))) + +(defun org-odt-format-footnote-reference (n def refcnt) + (if (= refcnt 1) + (org-odt-format-footnote n def) + (org-odt-format-footnote-ref n))) + +(defun org-odt-format-footnote-ref (n) + (let ((note-class "footnote") + (ref-format "text") + (ref-name (concat "fn" n))) + (org-odt-format-tags + '("<text:span text:style-name=\"%s\">" . "</text:span>") + (org-odt-format-tags + '("<text:note-ref text:note-class=\"%s\" text:reference-format=\"%s\" text:ref-name=\"%s\">" . "</text:note-ref>") + n note-class ref-format ref-name) + "OrgSuperscript"))) + +(defun org-odt-get-image-name (file-name) + (require 'sha1) + (file-relative-name + (expand-file-name + (concat (sha1 file-name) "." (file-name-extension file-name)) "Pictures"))) + +(defun org-export-odt-format-image (src href) + "Create image tag with source and attributes." + (save-match-data + (let* ((caption (org-find-text-property-in-string 'org-caption src)) + (caption (and caption (org-xml-format-desc caption))) + (attr (org-find-text-property-in-string 'org-attributes src)) + (label (org-find-text-property-in-string 'org-label src)) + (latex-frag (org-find-text-property-in-string + 'org-latex-src src)) + (category (and latex-frag "__DvipngImage__")) + (attr-plist (org-lparse-get-block-params attr)) + (user-frame-anchor + (car (assoc-string (plist-get attr-plist :anchor) + (if (or caption label) + '(("paragraph") ("page")) + '(("character") ("paragraph") ("page"))) t))) + (user-frame-style + (and user-frame-anchor (plist-get attr-plist :style))) + (user-frame-attrs + (and user-frame-anchor (plist-get attr-plist :attributes))) + (user-frame-params + (list user-frame-style user-frame-attrs user-frame-anchor)) + (embed-as (cond + (latex-frag + (symbol-name + (or (org-find-text-property-in-string + 'org-latex-src-embed-type src) 'character))) + (user-frame-anchor) + (t "paragraph"))) + (size (org-odt-image-size-from-file + src (plist-get attr-plist :width) + (plist-get attr-plist :height) + (plist-get attr-plist :scale) nil embed-as)) + (width (car size)) (height (cdr size))) + (when latex-frag + (setq href (org-propertize href :title "LaTeX Fragment" + :description latex-frag))) + (let ((frame-style-handle (concat (and (or caption label) "Captioned") + embed-as "Image"))) + (org-odt-format-entity + frame-style-handle href width height + :caption caption :label label :category category + :user-frame-params user-frame-params))))) + +(defun org-odt-format-object-description (title description) + (concat (and title (org-odt-format-tags + '("<svg:title>" . "</svg:title>") + (org-odt-encode-plain-text title t))) + (and description (org-odt-format-tags + '("<svg:desc>" . "</svg:desc>") + (org-odt-encode-plain-text description t))))) + +(defun org-odt-format-frame (text width height style &optional + extra anchor-type) + (let ((frame-attrs + (concat + (if width (format " svg:width=\"%0.2fcm\"" width) "") + (if height (format " svg:height=\"%0.2fcm\"" height) "") + extra + (format " text:anchor-type=\"%s\"" (or anchor-type "paragraph"))))) + (org-odt-format-tags + '("<draw:frame draw:style-name=\"%s\"%s>" . "</draw:frame>") + (concat text (org-odt-format-object-description + (get-text-property 0 :title text) + (get-text-property 0 :description text))) + style frame-attrs))) + +(defun org-odt-format-textbox (text width height style &optional + extra anchor-type) + (org-odt-format-frame + (org-odt-format-tags + '("<draw:text-box %s>" . "</draw:text-box>") + text (concat (format " fo:min-height=\"%0.2fcm\"" (or height .2)) + (format " fo:min-width=\"%0.2fcm\"" (or width .2)))) + width nil style extra anchor-type)) + +(defun org-odt-format-inlinetask (heading content + &optional todo priority tags) + (org-odt-format-stylized-paragraph + nil (org-odt-format-textbox + (concat (org-odt-format-stylized-paragraph + "OrgInlineTaskHeading" + (org-lparse-format + 'HEADLINE (concat (org-lparse-format-todo todo) " " heading) + nil tags)) + content) nil nil "OrgInlineTaskFrame" " style:rel-width=\"100%\""))) + +(defvar org-odt-entity-frame-styles + '(("CharacterImage" "__Figure__" ("OrgInlineImage" nil "as-char")) + ("ParagraphImage" "__Figure__" ("OrgDisplayImage" nil "paragraph")) + ("PageImage" "__Figure__" ("OrgPageImage" nil "page")) + ("CaptionedParagraphImage" "__Figure__" + ("OrgCaptionedImage" + " style:rel-width=\"100%\" style:rel-height=\"scale\"" "paragraph") + ("OrgImageCaptionFrame" nil "paragraph")) + ("CaptionedPageImage" "__Figure__" + ("OrgCaptionedImage" + " style:rel-width=\"100%\" style:rel-height=\"scale\"" "paragraph") + ("OrgPageImageCaptionFrame" nil "page")) + ("InlineFormula" "__MathFormula__" ("OrgInlineFormula" nil "as-char")) + ("DisplayFormula" "__MathFormula__" ("OrgDisplayFormula" nil "as-char")) + ("CaptionedDisplayFormula" "__MathFormula__" + ("OrgCaptionedFormula" nil "paragraph") + ("OrgFormulaCaptionFrame" nil "as-char")))) + +(defun org-odt-merge-frame-params(default-frame-params user-frame-params) + (if (not user-frame-params) default-frame-params + (assert (= (length default-frame-params) 3)) + (assert (= (length user-frame-params) 3)) + (loop for user-frame-param in user-frame-params + for default-frame-param in default-frame-params + collect (or user-frame-param default-frame-param)))) + +(defun* org-odt-format-entity (entity href width height + &key caption label category + user-frame-params) + (let* ((entity-style (assoc-string entity org-odt-entity-frame-styles t)) + default-frame-params frame-params) + (cond + ((not (or caption label)) + (setq default-frame-params (nth 2 entity-style)) + (setq frame-params (org-odt-merge-frame-params + default-frame-params user-frame-params)) + (apply 'org-odt-format-frame href width height frame-params)) + (t + (setq default-frame-params (nth 3 entity-style)) + (setq frame-params (org-odt-merge-frame-params + default-frame-params user-frame-params)) + (apply 'org-odt-format-textbox + (org-odt-format-stylized-paragraph + 'illustration + (concat + (apply 'org-odt-format-frame href width height + (nth 2 entity-style)) + (org-odt-format-entity-caption + label caption (or category (nth 1 entity-style))))) + width height frame-params))))) + +(defvar org-odt-embedded-images-count 0) +(defun org-odt-copy-image-file (path) + "Returns the internal name of the file" + (let* ((image-type (file-name-extension path)) + (media-type (format "image/%s" image-type)) + (src-file (expand-file-name + path (file-name-directory org-current-export-file))) + (target-dir "Images/") + (target-file + (format "%s%04d.%s" target-dir + (incf org-odt-embedded-images-count) image-type))) + (when (not org-lparse-to-buffer) + (message "Embedding %s as %s ..." + (substring-no-properties path) target-file) + + (when (= 1 org-odt-embedded-images-count) + (make-directory target-dir) + (org-odt-create-manifest-file-entry "" target-dir)) + + (copy-file src-file target-file 'overwrite) + (org-odt-create-manifest-file-entry media-type target-file)) + target-file)) + +(defvar org-export-odt-image-size-probe-method + '(emacs imagemagick force) + "Ordered list of methods by for determining size of an embedded + image.") + +(defvar org-export-odt-default-image-sizes-alist + '(("character" . (5 . 0.4)) + ("paragraph" . (5 . 5))) + "Hardcoded image dimensions one for each of the anchor + methods.") + +;; A4 page size is 21.0 by 29.7 cms +;; The default page settings has 2cm margin on each of the sides. So +;; the effective text area is 17.0 by 25.7 cm +(defvar org-export-odt-max-image-size '(17.0 . 20.0) + "Limiting dimensions for an embedded image.") + +(defun org-odt-do-image-size (probe-method file &optional dpi anchor-type) + (setq dpi (or dpi org-export-odt-pixels-per-inch)) + (setq anchor-type (or anchor-type "paragraph")) + (flet ((size-in-cms (size-in-pixels) + (flet ((pixels-to-cms (pixels) + (let* ((cms-per-inch 2.54) + (inches (/ pixels dpi))) + (* cms-per-inch inches)))) + (and size-in-pixels + (cons (pixels-to-cms (car size-in-pixels)) + (pixels-to-cms (cdr size-in-pixels))))))) + (case probe-method + (emacs + (size-in-cms (ignore-errors (image-size (create-image file) 'pixels)))) + (imagemagick + (size-in-cms + (let ((dim (shell-command-to-string + (format "identify -format \"%%w:%%h\" \"%s\"" file)))) + (when (string-match "\\([0-9]+\\):\\([0-9]+\\)" dim) + (cons (string-to-number (match-string 1 dim)) + (string-to-number (match-string 2 dim))))))) + (t + (cdr (assoc-string anchor-type + org-export-odt-default-image-sizes-alist)))))) + +(defun org-odt-image-size-from-file (file &optional user-width + user-height scale dpi embed-as) + (unless (file-name-absolute-p file) + (setq file (expand-file-name + file (file-name-directory org-current-export-file)))) + (let* (size width height) + (unless (and user-height user-width) + (loop for probe-method in org-export-odt-image-size-probe-method + until size + do (setq size (org-odt-do-image-size + probe-method file dpi embed-as))) + (or size (error "Cannot determine Image size. Aborting ...")) + (setq width (car size) height (cdr size))) + (cond + (scale + (setq width (* width scale) height (* height scale))) + ((and user-height user-width) + (setq width user-width height user-height)) + (user-height + (setq width (* user-height (/ width height)) height user-height)) + (user-width + (setq height (* user-width (/ height width)) width user-width)) + (t (ignore))) + ;; ensure that an embedded image fits comfortably within a page + (let ((max-width (car org-export-odt-max-image-size)) + (max-height (cdr org-export-odt-max-image-size))) + (when (or (> width max-width) (> height max-height)) + (let* ((scale1 (/ max-width width)) + (scale2 (/ max-height height)) + (scale (min scale1 scale2))) + (setq width (* scale width) height (* scale height))))) + (cons width height))) + +(defvar org-odt-entity-labels-alist nil + "Associate Labels with the Labelled entities. +Each element of the alist is of the form (LABEL-NAME +CATEGORY-NAME SEQNO LABEL-STYLE-NAME). LABEL-NAME is same as +that specified by \"#+LABEL: ...\" line. CATEGORY-NAME is the +type of the entity that LABEL-NAME is attached to. CATEGORY-NAME +can be one of \"Table\", \"Figure\" or \"Equation\". SEQNO is +the unique number assigned to the referenced entity on a +per-CATEGORY basis. It is generated sequentially and is 1-based. +LABEL-STYLE-NAME is a key `org-odt-label-styles'. + +See `org-odt-add-label-definition' and +`org-odt-fixup-label-references'.") + +(defvar org-odt-entity-counts-plist nil + "Plist of running counters of SEQNOs for each of the CATEGORY-NAMEs. +See `org-odt-entity-labels-alist' for known CATEGORY-NAMEs.") + +(defvar org-odt-label-styles + '(("text" "(%n)" "text" "(%n)") + ("category-and-value" "%e %n%c" "category-and-value" "%e %n")) + "Specify how labels are applied and referenced. +This is an alist where each element is of the +form (LABEL-STYLE-NAME LABEL-ATTACH-FMT LABEL-REF-MODE +LABEL-REF-FMT). + +LABEL-ATTACH-FMT controls how labels and captions are attached to +an entity. It may contain following specifiers - %e, %n and %c. +%e is replaced with the CATEGORY-NAME. %n is replaced with +\"<text:sequence ...> SEQNO </text:sequence>\". %c is replaced +with CAPTION. See `org-odt-format-label-definition'. + +LABEL-REF-MODE and LABEL-REF-FMT controls how label references +are generated. The following XML is generated for a label +reference - \"<text:sequence-ref +text:reference-format=\"LABEL-REF-MODE\" ...> LABEL-REF-FMT +</text:sequence-ref>\". LABEL-REF-FMT may contain following +specifiers - %e and %n. %e is replaced with the CATEGORY-NAME. +%n is replaced with SEQNO. See +`org-odt-format-label-reference'.") + +(defvar org-odt-category-map-alist + '(("__Table__" "Table" "category-and-value") + ("__Figure__" "Figure" "category-and-value") + ("__MathFormula__" "Equation" "text") + ("__DvipngImage__" "Equation" "category-and-value")) + "Map a CATEGORY-HANDLE to CATEGORY-NAME and LABEL-STYLE. +This is an alist where each element is of the form +\\(CATEGORY-HANDLE CATEGORY-NAME LABEL-STYLE\\). CATEGORY_HANDLE +could either be one of the internal handles (as seen above) or be +derived from the \"#+LABEL:<label-name>\" specification. See +`org-export-odt-get-category-from-label'. CATEGORY-NAME and +LABEL-STYLE are used for generating ODT labels. See +`org-odt-label-styles'.") + +(defvar org-export-odt-user-categories + '("Illustration" "Table" "Text" "Drawing" "Equation" "Figure")) + +(defvar org-export-odt-get-category-from-label nil + "Should category of label be inferred from label itself. +When this option is non-nil, a label is parsed in to two +component parts delimited by a \":\" (colon) as shown here - +#+LABEL:[CATEGORY-HANDLE:]EXTRA. The CATEGORY-HANDLE is mapped +to a CATEGORY-NAME and LABEL-STYLE using +`org-odt-category-map-alist'. (If no such map is provided and +CATEGORY-NAME is set to CATEGORY-HANDLE and LABEL-STYLE is set to +\"category-and-value\"). If CATEGORY-NAME so obtained is listed +under `org-export-odt-user-categories' then the user specified +styles are used. Otherwise styles as determined by the internal +CATEGORY-HANDLE is used. See +`org-odt-get-label-category-and-style' for details.") + +(defun org-odt-get-label-category-and-style (label default-category) + "See `org-export-odt-get-category-from-label'." + (let ((default-category-map + (assoc default-category org-odt-category-map-alist)) + user-category user-category-map category) + (cond + ((not org-export-odt-get-category-from-label) + default-category-map) + ((not (setq user-category + (save-match-data + (and (string-match "\\`\\(.*\\):.+" label) + (match-string 1 label))))) + default-category-map) + (t + (setq user-category-map + (or (assoc user-category org-odt-category-map-alist) + (list nil user-category "category-and-value")) + category (nth 1 user-category-map)) + (if (member category org-export-odt-user-categories) + user-category-map + default-category-map))))) + +(defun org-odt-add-label-definition (label default-category) + "Create an entry in `org-odt-entity-labels-alist' and return it." + (setq label (substring-no-properties label)) + (let* ((label-props (org-odt-get-label-category-and-style + label default-category)) + (category (nth 1 label-props)) + (counter category) + (label-style (nth 2 label-props)) + (sequence-var (intern (mapconcat + 'downcase + (org-split-string counter) "-"))) + (seqno (1+ (or (plist-get org-odt-entity-counts-plist sequence-var) + 0))) + (label-props (list label category seqno label-style))) + (setq org-odt-entity-counts-plist + (plist-put org-odt-entity-counts-plist sequence-var seqno)) + (push label-props org-odt-entity-labels-alist) + label-props)) + +(defun org-odt-format-label-definition (caption label category seqno label-style) + (assert label) + (format-spec + (cadr (assoc-string label-style org-odt-label-styles t)) + `((?e . ,category) + (?n . ,(org-odt-format-tags + '("<text:sequence text:ref-name=\"%s\" text:name=\"%s\" text:formula=\"ooow:%s+1\" style:num-format=\"1\">" . "</text:sequence>") + (format "%d" seqno) label category category)) + (?c . ,(or (and caption (concat ": " caption)) ""))))) + +(defun org-odt-format-label-reference (label category seqno label-style) + (assert label) + (save-match-data + (let* ((fmt (cddr (assoc-string label-style org-odt-label-styles t))) + (fmt1 (car fmt)) + (fmt2 (cadr fmt))) + (org-odt-format-tags + '("<text:sequence-ref text:reference-format=\"%s\" text:ref-name=\"%s\">" + . "</text:sequence-ref>") + (format-spec fmt2 `((?e . ,category) + (?n . ,(format "%d" seqno)))) fmt1 label)))) + +(defun org-odt-fixup-label-references () + (goto-char (point-min)) + (while (re-search-forward + "<text:sequence-ref text:ref-name=\"\\([^\"]+\\)\">[ \t\n]*</text:sequence-ref>" + nil t) + (let* ((label (match-string 1)) + (label-def (assoc label org-odt-entity-labels-alist)) + (rpl (and label-def + (apply 'org-odt-format-label-reference label-def)))) + (if rpl (replace-match rpl t t) + (org-lparse-warn + (format "Unable to resolve reference to label \"%s\"" label)))))) + +(defun org-odt-format-entity-caption (label caption category) + (or (and label + (apply 'org-odt-format-label-definition + caption (org-odt-add-label-definition label category))) + caption "")) + +(defun org-odt-format-tags (tag text &rest args) + (let ((prefix (when org-lparse-encode-pending "@")) + (suffix (when org-lparse-encode-pending "@"))) + (apply 'org-lparse-format-tags tag text prefix suffix args))) + +(defvar org-odt-manifest-file-entries nil) +(defun org-odt-init-outfile (filename) + (unless (executable-find "zip") + ;; Not at all OSes ship with zip by default + (error "Executable \"zip\" needed for creating OpenDocument files")) + + (let* ((outdir (make-temp-file + (format org-export-odt-tmpdir-prefix org-lparse-backend) t)) + (content-file (expand-file-name "content.xml" outdir))) + + ;; init conten.xml + (with-current-buffer (find-file-noselect content-file t)) + + ;; reset variables + (setq org-odt-manifest-file-entries nil + org-odt-embedded-images-count 0 + org-odt-embedded-formulas-count 0 + org-odt-entity-labels-alist nil + org-odt-entity-counts-plist nil) + content-file)) + +(defcustom org-export-odt-prettify-xml nil + "Specify whether or not the xml output should be prettified. +When this option is turned on, `indent-region' is run on all +component xml buffers before they are saved. Turn this off for +regular use. Turn this on if you need to examine the xml +visually." + :group 'org-export-odt + :type 'boolean) + +(defvar hfy-user-sheet-assoc) ; bound during org-do-lparse +(defun org-odt-save-as-outfile (target opt-plist) + ;; write meta file + (org-odt-update-meta-file opt-plist) + + ;; write styles file + (when (equal org-lparse-backend 'odt) + (org-odt-update-styles-file opt-plist)) + + ;; create mimetype file + (let ((mimetype (org-odt-write-mimetype-file org-lparse-backend))) + (org-odt-create-manifest-file-entry mimetype "/" "1.2")) + + ;; create a manifest entry for content.xml + (org-odt-create-manifest-file-entry "text/xml" "content.xml") + + ;; write out the manifest entries before zipping + (org-odt-write-manifest-file) + + (let ((xml-files '("mimetype" "META-INF/manifest.xml" "content.xml" + "meta.xml")) + (zipdir default-directory)) + (when (equal org-lparse-backend 'odt) + (push "styles.xml" xml-files)) + (message "Switching to directory %s" (expand-file-name zipdir)) + + ;; save all xml files + (mapc (lambda (file) + (with-current-buffer + (find-file-noselect (expand-file-name file) t) + ;; prettify output if needed + (when org-export-odt-prettify-xml + (indent-region (point-min) (point-max))) + (save-buffer 0))) + xml-files) + + (let* ((target-name (file-name-nondirectory target)) + (target-dir (file-name-directory target)) + (cmds `(("zip" "-mX0" ,target-name "mimetype") + ("zip" "-rmTq" ,target-name ".")))) + (when (file-exists-p target) + ;; FIXME: If the file is locked this throws a cryptic error + (delete-file target)) + + (let ((coding-system-for-write 'no-conversion) exitcode err-string) + (message "Creating odt file...") + (mapc + (lambda (cmd) + (message "Running %s" (mapconcat 'identity cmd " ")) + (setq err-string + (with-output-to-string + (setq exitcode + (apply 'call-process (car cmd) + nil standard-output nil (cdr cmd))))) + (or (zerop exitcode) + (ignore (message "%s" err-string)) + (error "Unable to create odt file (%S)" exitcode))) + cmds)) + + ;; move the file from outdir to target-dir + (rename-file target-name target-dir) + + ;; kill all xml buffers + (mapc (lambda (file) + (kill-buffer + (find-file-noselect (expand-file-name file zipdir) t))) + xml-files) + + (delete-directory zipdir))) + (message "Created %s" target) + (set-buffer (find-file-noselect target t))) + +(defconst org-odt-manifest-file-entry-tag + " +<manifest:file-entry manifest:media-type=\"%s\" manifest:full-path=\"%s\"%s/>") + +(defun org-odt-create-manifest-file-entry (&rest args) + (push args org-odt-manifest-file-entries)) + +(defun org-odt-write-manifest-file () + (make-directory "META-INF") + (let ((manifest-file (expand-file-name "META-INF/manifest.xml"))) + (with-current-buffer + (find-file-noselect manifest-file t) + (insert + "<?xml version=\"1.0\" encoding=\"UTF-8\"?> + <manifest:manifest xmlns:manifest=\"urn:oasis:names:tc:opendocument:xmlns:manifest:1.0\" manifest:version=\"1.2\">\n") + (mapc + (lambda (file-entry) + (let* ((version (nth 2 file-entry)) + (extra (if version + (format " manifest:version=\"%s\"" version) + ""))) + (insert + (format org-odt-manifest-file-entry-tag + (nth 0 file-entry) (nth 1 file-entry) extra)))) + org-odt-manifest-file-entries) + (insert "\n</manifest:manifest>")))) + +(defun org-odt-update-meta-file (opt-plist) + (let ((date (org-odt-format-date (plist-get opt-plist :date))) + (author (or (plist-get opt-plist :author) "")) + (email (plist-get opt-plist :email)) + (keywords (plist-get opt-plist :keywords)) + (description (plist-get opt-plist :description)) + (title (plist-get opt-plist :title))) + (write-region + (concat + "<?xml version=\"1.0\" encoding=\"UTF-8\"?> + <office:document-meta + xmlns:office=\"urn:oasis:names:tc:opendocument:xmlns:office:1.0\" + xmlns:xlink=\"http://www.w3.org/1999/xlink\" + xmlns:dc=\"http://purl.org/dc/elements/1.1/\" + xmlns:meta=\"urn:oasis:names:tc:opendocument:xmlns:meta:1.0\" + xmlns:ooo=\"http://openoffice.org/2004/office\" + office:version=\"1.2\"> + <office:meta>" "\n" + (org-odt-format-author) + (org-odt-format-tags + '("\n<meta:initial-creator>" . "</meta:initial-creator>") author) + (org-odt-format-tags '("\n<dc:date>" . "</dc:date>") date) + (org-odt-format-tags + '("\n<meta:creation-date>" . "</meta:creation-date>") date) + (org-odt-format-tags '("\n<meta:generator>" . "</meta:generator>") + (when org-export-creator-info + (format "Org-%s/Emacs-%s" + org-version emacs-version))) + (org-odt-format-tags '("\n<meta:keyword>" . "</meta:keyword>") keywords) + (org-odt-format-tags '("\n<dc:subject>" . "</dc:subject>") description) + (org-odt-format-tags '("\n<dc:title>" . "</dc:title>") title) + "\n" + " </office:meta>" "</office:document-meta>") + nil (expand-file-name "meta.xml"))) + + ;; create a manifest entry for meta.xml + (org-odt-create-manifest-file-entry "text/xml" "meta.xml")) + +(defun org-odt-update-styles-file (opt-plist) + ;; write styles file + (let ((styles-file (plist-get opt-plist :odt-styles-file))) + (org-odt-copy-styles-file (and styles-file + (read (org-trim styles-file))))) + + ;; Update styles.xml - take care of outline numbering + (with-current-buffer + (find-file-noselect (expand-file-name "styles.xml") t) + ;; Don't make automatic backup of styles.xml file. This setting + ;; prevents the backedup styles.xml file from being zipped in to + ;; odt file. This is more of a hackish fix. Better alternative + ;; would be to fix the zip command so that the output odt file + ;; includes only the needed files and excludes any auto-generated + ;; extra files like backups and auto-saves etc etc. Note that + ;; currently the zip command zips up the entire temp directory so + ;; that any auto-generated files created under the hood ends up in + ;; the resulting odt file. + (set (make-local-variable 'backup-inhibited) t) + + ;; Import local setting of `org-export-with-section-numbers' + (org-lparse-bind-local-variables opt-plist) + (org-odt-configure-outline-numbering + (if org-export-with-section-numbers org-export-headline-levels 0))) + + ;; Write custom stlyes for source blocks + (org-odt-insert-custom-styles-for-srcblocks + (mapconcat + (lambda (style) + (format " %s\n" (cddr style))) + hfy-user-sheet-assoc ""))) + +(defun org-odt-write-mimetype-file (format) + ;; create mimetype file + (let ((mimetype + (case format + (odt "application/vnd.oasis.opendocument.text") + (odf "application/vnd.oasis.opendocument.formula") + (t (error "Unknown OpenDocument backend %S" org-lparse-backend))))) + (write-region mimetype nil (expand-file-name "mimetype")) + mimetype)) + +(defun org-odt-finalize-outfile () + (org-odt-delete-empty-paragraphs)) + +(defun org-odt-delete-empty-paragraphs () + (goto-char (point-min)) + (let ((open "<text:p[^>]*>") + (close "</text:p>")) + (while (re-search-forward (format "%s[ \r\n\t]*%s" open close) nil t) + (replace-match "")))) + +(defcustom org-export-odt-convert-processes + '(("BasicODConverter" + ("soffice" "-norestore" "-invisible" "-headless" + "\"macro:///BasicODConverter.Main.Convert(%I,%f,%O)\"")) + ("unoconv" + ("unoconv" "-f" "%f" "-o" "%d" "%i"))) + "Specify a list of document converters and their usage. +The converters in this list are offered as choices while +customizing `org-export-odt-convert-process'. + +This variable is an alist where each element is of the +form (CONVERTER-NAME CONVERTER-PROCESS). CONVERTER-NAME is name +of the converter. CONVERTER-PROCESS specifies the command-line +syntax of the converter and is of the form (CONVERTER-PROGRAM +ARG1 ARG2 ...). CONVERTER-PROGRAM is the name of the executable. +ARG1, ARG2 etc are command line options that are passed to +CONVERTER-PROGRAM. Format specifiers can be used in the ARGs and +they are interpreted as below: + +%i input file name in full +%I input file name as a URL +%f format of the output file +%o output file name in full +%O output file name as a URL +%d output dir in full +%D output dir as a URL." + :group 'org-export-odt + :type + '(choice + (const :tag "None" nil) + (alist :tag "Converters" + :key-type (string :tag "Converter Name") + :value-type (group (cons (string :tag "Executable") + (repeat (string :tag "Command line args"))))))) + +(defcustom org-export-odt-convert-process nil + "Use this converter to convert from \"odt\" format to other formats. +During customization, the list of converter names are populated +from `org-export-odt-convert-processes'." + :group 'org-export-odt + :type '(choice :convert-widget + (lambda (w) + (apply 'widget-convert (widget-type w) + (eval (car (widget-get w :args))))) + `((const :tag "None" nil) + ,@(mapcar (lambda (c) + `(const :tag ,(car c) ,(car c))) + org-export-odt-convert-processes)))) + +(defcustom org-export-odt-convert-capabilities + '(("Text" + ("odt" "ott" "doc" "rtf") + (("pdf" "pdf") ("odt" "odt") ("xhtml" "html") ("rtf" "rtf") + ("ott" "ott") ("doc" "doc") ("ooxml" "xml") ("html" "html"))) + ("Web" + ("html" "xhtml") (("pdf" "pdf") ("odt" "txt") ("html" "html"))) + ("Spreadsheet" + ("ods" "ots" "xls" "csv") + (("pdf" "pdf") ("ots" "ots") ("html" "html") ("csv" "csv") + ("ods" "ods") ("xls" "xls") ("xhtml" "xhtml") ("ooxml" "xml"))) + ("Presentation" + ("odp" "otp" "ppt") + (("pdf" "pdf") ("swf" "swf") ("odp" "odp") ("xhtml" "xml") + ("otp" "otp") ("ppt" "ppt") ("odg" "odg") ("html" "html")))) + "Specify input and output formats of `org-export-odt-convert-process'. +More correctly, specify the set of input and output formats that +the user is actually interested in. + +This variable is an alist where each element is of the +form (DOCUMENT-CLASS INPUT-FMT-LIST OUTPUT-FMT-ALIST). +INPUT-FMT-LIST is a list of INPUT-FMTs. OUTPUT-FMT-ALIST is an +alist where each element is of the form (OUTPUT-FMT +OUTPUT-FILE-EXTENSION). + +The variable is interpreted as follows: +`org-export-odt-convert-process' can take any document that is in +INPUT-FMT-LIST and produce any document that is in the +OUTPUT-FMT-LIST. A document converted to OUTPUT-FMT will have +OUTPUT-FILE-EXTENSION as the file name extension. OUTPUT-FMT +serves dual purposes: +- It is used for populating completion candidates during + `org-export-odt-convert' commands. +- It is used as the value of \"%f\" specifier in + `org-export-odt-convert-process'. + +DOCUMENT-CLASS is used to group a set of file formats in +INPUT-FMT-LIST in to a single class. + +Note that this variable inherently captures how LibreOffice based +converters work. LibreOffice maps documents of various formats +to classes like Text, Web, Spreadsheet, Presentation etc and +allow document of a given class (irrespective of it's source +format) to be converted to any of the export formats associated +with that class. + +See default setting of this variable for an typical +configuration." + :group 'org-export-odt + :type + '(choice + (const :tag "None" nil) + (alist :key-type (string :tag "Document Class") + :value-type + (group (repeat :tag "Input formats" (string :tag "Input format")) + (alist :tag "Output formats" + :key-type (string :tag "Output format") + :value-type + (group (string :tag "Output file extension"))))))) + +(declare-function org-create-math-formula "org" + (latex-frag &optional mathml-file)) + +;;;###autoload +(defun org-export-odt-convert (&optional in-file out-fmt prefix-arg) + "Convert IN-FILE to format OUT-FMT using a command line converter. +IN-FILE is the file to be converted. If unspecified, it defaults +to variable `buffer-file-name'. OUT-FMT is the desired output +format. Use `org-export-odt-convert-process' as the converter. +If PREFIX-ARG is non-nil then the newly converted file is opened +using `org-open-file'." + (interactive + (append (org-lparse-convert-read-params) current-prefix-arg)) + (org-lparse-do-convert in-file out-fmt prefix-arg)) + +(defun org-odt-get (what &optional opt-plist) + (case what + (BACKEND 'odt) + (EXPORT-DIR (org-export-directory :html opt-plist)) + (FILE-NAME-EXTENSION "odt") + (EXPORT-BUFFER-NAME "*Org ODT Export*") + (ENTITY-CONTROL org-odt-entity-control-callbacks-alist) + (ENTITY-FORMAT org-odt-entity-format-callbacks-alist) + (INIT-METHOD 'org-odt-init-outfile) + (FINAL-METHOD 'org-odt-finalize-outfile) + (SAVE-METHOD 'org-odt-save-as-outfile) + (CONVERT-METHOD + (and org-export-odt-convert-process + (cadr (assoc-string org-export-odt-convert-process + org-export-odt-convert-processes t)))) + (CONVERT-CAPABILITIES + (and org-export-odt-convert-process + (cadr (assoc-string org-export-odt-convert-process + org-export-odt-convert-processes t)) + org-export-odt-convert-capabilities)) + (TOPLEVEL-HLEVEL 1) + (SPECIAL-STRING-REGEXPS org-export-odt-special-string-regexps) + (INLINE-IMAGES 'maybe) + (INLINE-IMAGE-EXTENSIONS '("png" "jpeg" "jpg" "gif" "svg")) + (PLAIN-TEXT-MAP '(("&" . "&") ("<" . "<") (">" . ">"))) + (TABLE-FIRST-COLUMN-AS-LABELS nil) + (FOOTNOTE-SEPARATOR (org-lparse-format 'FONTIFY "," 'superscript)) + (CODING-SYSTEM-FOR-WRITE 'utf-8) + (CODING-SYSTEM-FOR-SAVE 'utf-8) + (t (error "Unknown property: %s" what)))) + +(defvar org-lparse-latex-fragment-fallback) ; set by org-do-lparse +(defun org-export-odt-do-preprocess-latex-fragments () + "Convert LaTeX fragments to images." + (let* ((latex-frag-opt (plist-get org-lparse-opt-plist :LaTeX-fragments)) + (latex-frag-opt ; massage the options + (or (and (member latex-frag-opt '(mathjax t)) + (not (and (fboundp 'org-format-latex-mathml-available-p) + (org-format-latex-mathml-available-p))) + (prog1 org-lparse-latex-fragment-fallback + (org-lparse-warn + (concat + "LaTeX to MathML converter not available. " + (format "Using %S instead." + org-lparse-latex-fragment-fallback))))) + latex-frag-opt)) + cache-dir display-msg) + (cond + ((eq latex-frag-opt 'dvipng) + (setq cache-dir "ltxpng/") + (setq display-msg "Creating LaTeX image %s")) + ((member latex-frag-opt '(mathjax t)) + (setq latex-frag-opt 'mathml) + (setq cache-dir "ltxmathml/") + (setq display-msg "Creating MathML formula %s"))) + (when (and org-current-export-file) + (org-format-latex + (concat cache-dir (file-name-sans-extension + (file-name-nondirectory org-current-export-file))) + org-current-export-dir nil display-msg + nil nil latex-frag-opt)))) + +(defadvice org-format-latex-as-mathml + (after org-odt-protect-latex-fragment activate) + "Encode LaTeX fragment as XML. +Do this when translation to MathML fails." + (when (or (not (> (length ad-return-value) 0)) + (get-text-property 0 'org-protected ad-return-value)) + (setq ad-return-value + (org-propertize (org-odt-encode-plain-text (ad-get-arg 0)) + 'org-protected t)))) + +(defun org-export-odt-preprocess-latex-fragments () + (when (equal org-export-current-backend 'odt) + (org-export-odt-do-preprocess-latex-fragments))) + +(defun org-export-odt-preprocess-label-references () + (goto-char (point-min)) + (let (label label-components category value pretty-label) + (while (re-search-forward "\\\\ref{\\([^{}\n]+\\)}" nil t) + (org-if-unprotected-at (match-beginning 1) + (replace-match + (let ((org-lparse-encode-pending t) + (label (match-string 1))) + ;; markup generated below is mostly an eye-candy. At + ;; pre-processing stage, there is no information on which + ;; entity a label reference points to. The actual markup + ;; is generated as part of `org-odt-fixup-label-references' + ;; which gets called at the fag end of export. By this + ;; time we would have seen and collected all the label + ;; definitions in `org-odt-entity-labels-alist'. + (org-odt-format-tags + '("<text:sequence-ref text:ref-name=\"%s\">" . + "</text:sequence-ref>") + "" (org-add-props label '(org-protected t)))) t t))))) + +;; process latex fragments as part of +;; `org-export-preprocess-after-blockquote-hook'. Note that this hook +;; is the one that is closest and well before the call to +;; `org-export-attach-captions-and-attributes' in +;; `org-export-preprocess-stirng'. The above arrangement permits +;; captions, labels and attributes to be attached to png images +;; generated out of latex equations. +(add-hook 'org-export-preprocess-after-blockquote-hook + 'org-export-odt-preprocess-latex-fragments) + +(defun org-export-odt-preprocess (parameters) + (org-export-odt-preprocess-label-references)) + +(declare-function archive-zip-extract "arc-mode.el" (archive name)) +(defun org-odt-zip-extract-one (archive member &optional target) + (require 'arc-mode) + (let* ((target (or target default-directory)) + (archive (expand-file-name archive)) + (archive-zip-extract + (list "unzip" "-qq" "-o" "-d" target)) + exit-code command-output) + (setq command-output + (with-temp-buffer + (setq exit-code (archive-zip-extract archive member)) + (buffer-string))) + (unless (zerop exit-code) + (message command-output) + (error "Extraction failed")))) + +(defun org-odt-zip-extract (archive members &optional target) + (when (atom members) (setq members (list members))) + (mapc (lambda (member) + (org-odt-zip-extract-one archive member target)) + members)) + +(defun org-odt-copy-styles-file (&optional styles-file) + ;; Non-availability of styles.xml is not a critical error. For now + ;; throw an error purely for aesthetic reasons. + (setq styles-file (or styles-file + org-export-odt-styles-file + (expand-file-name "OrgOdtStyles.xml" + org-odt-styles-dir) + (error "org-odt: Missing styles file?"))) + (cond + ((listp styles-file) + (let ((archive (nth 0 styles-file)) + (members (nth 1 styles-file))) + (org-odt-zip-extract archive members) + (mapc + (lambda (member) + (when (org-file-image-p member) + (let* ((image-type (file-name-extension member)) + (media-type (format "image/%s" image-type))) + (org-odt-create-manifest-file-entry media-type member)))) + members))) + ((and (stringp styles-file) (file-exists-p styles-file)) + (let ((styles-file-type (file-name-extension styles-file))) + (cond + ((string= styles-file-type "xml") + (copy-file styles-file "styles.xml" t)) + ((member styles-file-type '("odt" "ott")) + (org-odt-zip-extract styles-file "styles.xml"))))) + (t + (error (format "Invalid specification of styles.xml file: %S" + org-export-odt-styles-file)))) + + ;; create a manifest entry for styles.xml + (org-odt-create-manifest-file-entry "text/xml" "styles.xml")) + +(defvar org-export-odt-factory-settings + "d4328fb9d1b6cb211d4320ff546829f26700dc5e" + "SHA1 hash of OrgOdtStyles.xml.") + +(defun org-odt-configure-outline-numbering (level) + "Outline numbering is retained only upto LEVEL. +To disable outline numbering pass a LEVEL of 0." + (goto-char (point-min)) + (let ((regex + "<text:outline-level-style\\([^>]*\\)text:level=\"\\([^\"]*\\)\"\\([^>]*\\)>") + (replacement + "<text:outline-level-style\\1text:level=\"\\2\" style:num-format=\"\">")) + (while (re-search-forward regex nil t) + (when (> (string-to-number (match-string 2)) level) + (replace-match replacement t nil)))) + (save-buffer 0)) + +;;;###autoload +(defun org-export-as-odf (latex-frag &optional odf-file) + "Export LATEX-FRAG as OpenDocument formula file ODF-FILE. +Use `org-create-math-formula' to convert LATEX-FRAG first to +MathML. When invoked as an interactive command, use +`org-latex-regexps' to infer LATEX-FRAG from currently active +region. If no LaTeX fragments are found, prompt for it. Push +MathML source to kill ring, if `org-export-copy-to-kill-ring' is +non-nil." + (interactive + `(,(let (frag) + (setq frag (and (setq frag (and (region-active-p) + (buffer-substring (region-beginning) + (region-end)))) + (loop for e in org-latex-regexps + thereis (when (string-match (nth 1 e) frag) + (match-string (nth 2 e) frag))))) + (read-string "LaTeX Fragment: " frag nil frag)) + ,(let ((odf-filename (expand-file-name + (concat + (file-name-sans-extension + (or (file-name-nondirectory buffer-file-name))) + "." "odf") + (file-name-directory buffer-file-name)))) + (message "default val is %s" odf-filename) + (read-file-name "ODF filename: " nil odf-filename nil + (file-name-nondirectory odf-filename))))) + (let* ((org-lparse-backend 'odf) + org-lparse-opt-plist + (filename (or odf-file + (expand-file-name + (concat + (file-name-sans-extension + (or (file-name-nondirectory buffer-file-name))) + "." "odf") + (file-name-directory buffer-file-name)))) + (buffer (find-file-noselect (org-odt-init-outfile filename))) + (coding-system-for-write 'utf-8) + (save-buffer-coding-system 'utf-8)) + (set-buffer buffer) + (set-buffer-file-coding-system coding-system-for-write) + (let ((mathml (org-create-math-formula latex-frag))) + (unless mathml (error "No Math formula created")) + (insert mathml) + (or (org-export-push-to-kill-ring + (upcase (symbol-name org-lparse-backend))) + (message "Exporting... done"))) + (org-odt-save-as-outfile filename nil))) + +;;;###autoload +(defun org-export-as-odf-and-open () + "Export LaTeX fragment as OpenDocument formula and immediately open it. +Use `org-export-as-odf' to read LaTeX fragment and OpenDocument +formula file." + (interactive) + (org-lparse-and-open + nil nil nil (call-interactively 'org-export-as-odf))) + +(provide 'org-odt) + +;;; org-odt.el ends here diff --git a/lisp/org/org-pcomplete.el b/lisp/org/org-pcomplete.el index cede736d929..0ca8777878c 100644 --- a/lisp/org/org-pcomplete.el +++ b/lisp/org/org-pcomplete.el @@ -1,12 +1,11 @@ ;;; org-pcomplete.el --- In-buffer completion code -;; Copyright (C) 2004-2011 Free Software Foundation, Inc. +;; Copyright (C) 2004-2012 Free Software Foundation, Inc. ;; ;; Author: Carsten Dominik <carsten at orgmode dot org> ;; John Wiegley <johnw at gnu dot org> ;; Keywords: outlines, hypermedia, calendar, wp ;; Homepage: http://orgmode.org -;; Version: 7.7 ;; ;; This file is part of GNU Emacs. ;; @@ -147,7 +146,7 @@ When completing for #+STARTUP, for example, this function returns (org-split-string (org-get-current-options) "\n")) org-additional-option-like-keywords))))) (substring pcomplete-stub 2))) - + (defvar org-startup-options) (defun pcomplete/org-mode/file-option/startup () "Complete arguments for the #+STARTUP file option." @@ -276,6 +275,4 @@ Complete a language in the first field, the header arguments and switches." (provide 'org-pcomplete) - - ;;; org-pcomplete.el ends here diff --git a/lisp/org/org-plot.el b/lisp/org/org-plot.el index 419467226c9..f44694fa781 100644 --- a/lisp/org/org-plot.el +++ b/lisp/org/org-plot.el @@ -1,11 +1,10 @@ ;;; org-plot.el --- Support for plotting from Org-mode -;; Copyright (C) 2008-2011 Free Software Foundation, Inc. +;; Copyright (C) 2008-2012 Free Software Foundation, Inc. ;; ;; Author: Eric Schulte <schulte dot eric at gmail dot com> ;; Keywords: tables, plotting ;; Homepage: http://orgmode.org -;; Version: 7.7 ;; ;; This file is part of GNU Emacs. ;; @@ -136,7 +135,7 @@ Pass PARAMS through to `orgtbl-to-generic' when exporting TABLE." "Export the data in TABLE to DATA-FILE for gnuplot. This means in a format appropriate for grid plotting by gnuplot. PARAMS specifies which columns of TABLE should be plotted as independent -and dependent variables." +and dependant variables." (interactive) (let* ((ind (- (plist-get params :ind) 1)) (deps (if (plist-member params :deps) @@ -350,5 +349,4 @@ line directly before or after the table." (provide 'org-plot) - ;;; org-plot.el ends here diff --git a/lisp/org/org-protocol.el b/lisp/org/org-protocol.el index ca7bfe2a4d0..ccdbc314a53 100644 --- a/lisp/org/org-protocol.el +++ b/lisp/org/org-protocol.el @@ -1,14 +1,14 @@ ;;; org-protocol.el --- Intercept calls from emacsclient to trigger custom actions. ;; -;; Copyright (C) 2008-2011 Free Software Foundation, Inc. +;; Copyright (C) 2008-2012 +;; Free Software Foundation, Inc. ;; -;; Author: Bastien Guerry <bzg AT altern DOT org> +;; Author: Bastien Guerry <bzg AT gnu DOT org> ;; Author: Daniel M German <dmg AT uvic DOT org> ;; Author: Sebastian Rose <sebastian_rose AT gmx DOT de> ;; Author: Ross Patterson <me AT rpatterson DOT net> ;; Maintainer: Sebastian Rose <sebastian_rose AT gmx DOT de> ;; Keywords: org, emacsclient, wp -;; Version: 7.7 ;; This file is part of GNU Emacs. ;; @@ -145,8 +145,8 @@ (defgroup org-protocol nil "Intercept calls from emacsclient to trigger custom actions. -This is done by advising `server-visit-files' to scan the list of filenames -for `org-protocol-the-protocol' and sub-protocols defined in +This is done by advising `server-visit-files' to scann the list of filenames +for `org-protocol-the-protocol' and sub-procols defined in `org-protocol-protocol-alist' and `org-protocol-protocol-alist-default'." :version "22.1" :group 'convenience @@ -546,8 +546,8 @@ as filename." (when (string-match proto fname) (let* ((func (plist-get (cdr prolist) :function)) (greedy (plist-get (cdr prolist) :greedy)) - (splitted (split-string fname proto)) - (result (if greedy restoffiles (cadr splitted)))) + (split (split-string fname proto)) + (result (if greedy restoffiles (cadr split)))) (when (plist-get (cdr prolist) :kill-client) (message "Greedy org-protocol handler. Killing client.") (server-edit)) @@ -644,5 +644,4 @@ project-plist is the CDR of an element in `org-publish-project-alist', reuse (provide 'org-protocol) - ;;; org-protocol.el ends here diff --git a/lisp/org/org-publish.el b/lisp/org/org-publish.el index 7a0d7b56e22..dc794dd92c5 100644 --- a/lisp/org/org-publish.el +++ b/lisp/org/org-publish.el @@ -1,10 +1,9 @@ ;;; org-publish.el --- publish related org-mode files as a website -;; Copyright (C) 2006-2011 Free Software Foundation, Inc. +;; Copyright (C) 2006-2012 Free Software Foundation, Inc. ;; Author: David O'Toole <dto@gnu.org> ;; Maintainer: Carsten Dominik <carsten DOT dominik AT gmail DOT com> ;; Keywords: hypermedia, outlines, wp -;; Version: 7.7 ;; This file is part of GNU Emacs. ;; @@ -191,7 +190,7 @@ sitemap of files or summary page for a given project. display folders first or last, respectively. Any other value will mix files and folders. :sitemap-sort-files The site map is normally sorted alphabetically. - You can change this behavior setting this to + You can change this behaviour setting this to `chronologically', `anti-chronologically' or nil. :sitemap-ignore-case Should sorting be case-sensitive? Default nil. @@ -278,12 +277,12 @@ in the sitemap." :type 'string) (defcustom org-publish-sitemap-file-entry-format "%t" - "How a sitemap file entry is formatted. + "How a sitemap file entry is formated. You could use brackets to delimit on what part the link will be. %t is the title. %a is the author. -%d is the date formatted using `org-publish-sitemap-date-format'." +%d is the date formated using `org-publish-sitemap-date-format'." :group 'org-publish :type 'string) @@ -369,6 +368,8 @@ This is a compatibility function for Emacsen without `delete-dups'." (declare-function org-publish-delete-dups "org-publish" (list)) (declare-function find-lisp-find-files "find-lisp" (directory regexp)) +(declare-function org-pop-to-buffer-same-window + "org-compat" (&optional buffer-or-name norecord label)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; Getting project information out of org-publish-project-alist @@ -559,7 +560,7 @@ PUB-DIR is the publishing directory." (make-directory pub-dir t)) (let ((visiting (find-buffer-visiting filename))) (save-excursion - (switch-to-buffer (or visiting (find-file filename))) + (org-pop-to-buffer-same-window (or visiting (find-file filename))) (let* ((plist (cons :buffer-will-be-killed (cons t plist))) (init-buf (current-buffer)) (init-point (point)) @@ -599,6 +600,7 @@ PUB-DIR is the publishing directory." org-export-preprocess-after-headline-targets-hook) org-export-preprocess-after-headline-targets-hook))) ,@body)) +(def-edebug-spec org-publish-with-aux-preprocess-maybe (body)) (defvar project-plist) (defun org-publish-org-to-latex (plist filename pub-dir) @@ -682,7 +684,7 @@ See `org-publish-projects'." (pub-dir (file-name-as-directory (file-truename - (or (plist-get project-plist :publishing-directory) + (or (eval (plist-get project-plist :publishing-directory)) (error "Project %s does not have :publishing-directory defined" (car project)))))) tmp-pub-dir) @@ -860,7 +862,7 @@ system's modification time. It returns time in `current-time' format." (let ((visiting (find-buffer-visiting file))) (save-excursion - (switch-to-buffer (or visiting (find-file-noselect file nil t))) + (org-pop-to-buffer-same-window (or visiting (find-file-noselect file nil t))) (let* ((plist (org-infile-export-plist)) (date (plist-get plist :date))) (unless visiting @@ -982,7 +984,9 @@ the project." main last-main letter last-letter file sub link tgext) ;; `files' contains the list of relative file names (dolist (file files) - (setq origfile (substring file 1 -1)) + (setq origfile + (concat (file-name-directory file) + (substring (file-name-nondirectory file) 1 -1))) (setq buf (find-file-noselect file)) (with-current-buffer buf (goto-char (point-min)) @@ -993,7 +997,7 @@ the project." (kill-buffer buf)) (setq index (sort index (lambda (a b) (string< (downcase (car a)) (downcase (car b)))))) - (setq ibuffer (find-file-noselect (expand-file-name "theindex.org" directory))) + (setq ibuffer (find-file-noselect (expand-file-name "theindex.inc" directory))) (with-current-buffer ibuffer (erase-buffer) (insert "* Index\n") @@ -1020,7 +1024,16 @@ the project." (insert " - " link "\n") (insert " - " link "\n"))) (save-buffer)) - (kill-buffer ibuffer))) + (kill-buffer ibuffer) + ;; Create theindex.org if it doesn't exist already + (let ((index-file (expand-file-name "theindex.org" directory))) + (unless (file-exists-p index-file) + (setq ibuffer (find-file-noselect index-file)) + (with-current-buffer ibuffer + (erase-buffer) + (insert "\n\n#+include: \"theindex.inc\"\n\n") + (save-buffer)) + (kill-buffer ibuffer))))) ;; Caching functions: @@ -1103,7 +1116,7 @@ so that the file including them will be republished as well." (setq buf (find-file (expand-file-name filename))) (with-current-buffer buf (goto-char (point-min)) - (while (re-search-forward "^#\\+INCLUDE:[ \t]+\"?\\([^ \t\"]*\\)\"?[ \t]*.*$" nil t) + (while (re-search-forward "^#\\+INCLUDE:[ \t]+\"?\\([^ \t\n\r\"]*\\)\"?[ \t]*.*$" nil t) (let* ((included-file (expand-file-name (match-string 1)))) (add-to-list 'included-files-ctime (org-publish-cache-ctime-of-src included-file) t)))) @@ -1180,6 +1193,4 @@ Returns value on success, else nil." (provide 'org-publish) - - ;;; org-publish.el ends here diff --git a/lisp/org/org-remember.el b/lisp/org/org-remember.el index 8819f416f1d..65e92bab016 100644 --- a/lisp/org/org-remember.el +++ b/lisp/org/org-remember.el @@ -1,11 +1,10 @@ ;;; org-remember.el --- Fast note taking in Org-mode -;; Copyright (C) 2004-2011 Free Software Foundation, Inc. +;; Copyright (C) 2004-2012 Free Software Foundation, Inc. ;; Author: Carsten Dominik <carsten at orgmode dot org> ;; Keywords: outlines, hypermedia, calendar, wp ;; Homepage: http://orgmode.org -;; Version: 7.7 ;; ;; This file is part of GNU Emacs. ;; @@ -40,6 +39,8 @@ (declare-function remember "remember" (&optional initial)) (declare-function remember-buffer-desc "remember" ()) (declare-function remember-finalize "remember" ()) +(declare-function org-pop-to-buffer-same-window + "org-compat" (&optional buffer-or-name norecord label)) (defvar remember-save-after-remembering) (defvar remember-register) @@ -63,7 +64,7 @@ and `org-remember-default-headline'. To force prompting anyway, use \\[universal-argument] \\[org-remember-finalize] to file the note. When this variable is nil, \\[org-remember-finalize] gives you the prompts, and -\\[universal-argument] \\[org-remember-finalize] triggers the fast track." +\\[universal-argument] \\[org-remember-finalize] triggers the fasttrack." :group 'org-remember :type 'boolean) @@ -786,7 +787,7 @@ The user is queried for the template." (setq heading org-remember-default-headline)) (setq visiting (org-find-base-buffer-visiting file)) (if (not visiting) (find-file-noselect file)) - (switch-to-buffer (or visiting (get-file-buffer file))) + (org-pop-to-buffer-same-window (or visiting (get-file-buffer file))) (widen) (goto-char (point-min)) (if (re-search-forward @@ -942,7 +943,7 @@ See also the variable `org-reverse-note-order'." (throw 'quit t)) ;; Find the file (with-current-buffer (or visiting (find-file-noselect file)) - (unless (or (org-mode-p) (member heading '(top bottom))) + (unless (or (eq major-mode 'org-mode) (member heading '(top bottom))) (error "Target files for notes must be in Org-mode if not filing to top/bottom")) (save-excursion (save-restriction @@ -952,7 +953,7 @@ See also the variable `org-reverse-note-order'." ;; Find the default location (when heading (cond - ((not (org-mode-p)) + ((not (eq major-mode 'org-mode)) (if (eq heading 'top) (goto-char (point-min)) (goto-char (point-max)) @@ -1013,7 +1014,7 @@ See also the variable `org-reverse-note-order'." ; not handle this note (and visitp (run-with-idle-timer 0.01 nil 'org-remember-visit-immediately)) (goto-char spos) - (cond ((org-on-heading-p t) + (cond ((org-at-heading-p t) (org-back-to-heading t) (setq level (funcall outline-level)) (cond @@ -1122,7 +1123,7 @@ See also the variable `org-reverse-note-order'." (condition-case nil (require 'remember) (error - ;; Let's install our own micro version of remember + ;; Lets install our own micro version of remember (defvar remember-register ?R) (defvar remember-mode-hook nil) (defvar remember-handler-functions nil) @@ -1150,6 +1151,4 @@ See also the variable `org-reverse-note-order'." (provide 'org-remember) - - ;;; org-remember.el ends here diff --git a/lisp/org/org-rmail.el b/lisp/org/org-rmail.el index 1169c206981..3146ff32758 100644 --- a/lisp/org/org-rmail.el +++ b/lisp/org/org-rmail.el @@ -1,11 +1,10 @@ ;;; org-rmail.el --- Support for links to Rmail messages from within Org-mode -;; Copyright (C) 2004-2011 Free Software Foundation, Inc. +;; Copyright (C) 2004-2012 Free Software Foundation, Inc. ;; Author: Carsten Dominik <carsten at orgmode dot org> ;; Keywords: outlines, hypermedia, calendar, wp ;; Homepage: http://orgmode.org -;; Version: 7.7 ;; ;; This file is part of GNU Emacs. ;; @@ -114,6 +113,4 @@ (provide 'org-rmail) - - ;;; org-rmail.el ends here diff --git a/lisp/org/org-special-blocks.el b/lisp/org/org-special-blocks.el index c09b27de895..fc882a33396 100644 --- a/lisp/org/org-special-blocks.el +++ b/lisp/org/org-special-blocks.el @@ -1,6 +1,4 @@ -;;; org-special-blocks.el --- Turn blocks into LaTeX envs and HTML divs - -;; Copyright (C) 2009, 2011 Free Software Foundation, Inc. +;; Copyright (C) 2009-2012 Free Software Foundation, Inc. ;; Author: Chris Gray <chrismgray@gmail.com> @@ -38,8 +36,12 @@ ;; user to add this class to his or her stylesheet if this div is to ;; mean anything. +(require 'org-html) (require 'org-compat) +(declare-function org-open-par "org-html" ()) +(declare-function org-close-par-maybe "org-html" ()) + (defvar org-special-blocks-ignore-regexp "^\\(LaTeX\\|HTML\\)$" "A regexp indicating the names of blocks that should be ignored by org-special-blocks. These blocks will presumably be @@ -49,7 +51,7 @@ interpreted by other mechanisms.") (defun org-special-blocks-make-special-cookies () "Adds special cookies when #+begin_foo and #+end_foo tokens are seen. This is run after a few special cases are taken care of." - (when (or (eq org-export-current-backend 'html) + (when (or (eq org-export-current-backend 'html) (eq org-export-current-backend 'latex)) (goto-char (point-min)) (while (re-search-forward "^[ \t]*#\\+\\(begin\\|end\\)_\\(.*\\)$" nil t) @@ -82,11 +84,15 @@ seen. This is run after a few special cases are taken care of." "Converts the special cookies into div blocks." ;; Uses the dynamically-bound variable `line'. (when (string-match "^ORG-\\(.*\\)-\\(START\\|END\\)$" line) -; (org-close-par-maybe) (message "%s" (match-string 1)) - (if (equal (match-string 2 line) "START") - (insert "<div class=\"" (match-string 1 line) "\">\n") - (insert "</div>\n")) + (when (equal (match-string 2 line) "START") + (org-close-par-maybe) + (insert "\n<div class=\"" (match-string 1 line) "\">") + (org-open-par)) + (when (equal (match-string 2 line) "END") + (org-close-par-maybe) + (insert "\n</div>") + (org-open-par)) (throw 'nextline nil))) (add-hook 'org-export-html-after-blockquotes-hook diff --git a/lisp/org/org-src.el b/lisp/org/org-src.el index 5de55fa455f..ac574ed4dd2 100644 --- a/lisp/org/org-src.el +++ b/lisp/org/org-src.el @@ -1,13 +1,12 @@ ;;; org-src.el --- Source code examples in Org ;; -;; Copyright (C) 2004-2011 Free Software Foundation, Inc. +;; Copyright (C) 2004-2012 Free Software Foundation, Inc. ;; ;; Author: Carsten Dominik <carsten at orgmode dot org> -;; Bastien Guerry <bzg AT altern DOT org> +;; Bastien Guerry <bzg AT gnu DOT org> ;; Dan Davison <davison at stats dot ox dot ac dot uk> ;; Keywords: outlines, hypermedia, calendar, wp ;; Homepage: http://orgmode.org -;; Version: 7.7 ;; ;; This file is part of GNU Emacs. ;; @@ -42,6 +41,8 @@ (declare-function org-at-table.el-p "org" ()) (declare-function org-get-indentation "org" (&optional line)) (declare-function org-switch-to-buffer-other-window "org" (&rest args)) +(declare-function org-pop-to-buffer-same-window + "org-compat" (&optional buffer-or-name norecord label)) (defcustom org-edit-src-region-extra nil "Additional regexps to identify regions for editing with `org-edit-src-code'. @@ -152,7 +153,7 @@ but which mess up the display of a snippet in Org exported files.") (defcustom org-src-lang-modes '(("ocaml" . tuareg) ("elisp" . emacs-lisp) ("ditaa" . artist) ("asymptote" . asy) ("dot" . fundamental) ("sqlite" . sql) - ("calc" . fundamental) ("C" . c)) + ("calc" . fundamental) ("C" . c) ("cpp" . c++)) "Alist mapping languages to their major mode. The key is the language name, the value is the string that should be inserted as the name of the major mode. For many languages this is @@ -214,7 +215,7 @@ buffer." (case-fold-search t) (info (org-edit-src-find-region-and-lang)) (full-info (org-babel-get-src-block-info)) - (org-mode-p (or (org-mode-p) (derived-mode-p 'org-mode))) + (org-mode-p (derived-mode-p 'org-mode)) ;; derived-mode-p is reflexive (beg (make-marker)) (end (make-marker)) (allow-write-back-p (null code)) @@ -305,7 +306,7 @@ buffer." (error "Language mode `%s' fails with: %S" lang-f (nth 1 e))))) (dolist (pair transmitted-variables) (org-set-local (car pair) (cadr pair))) - (when org-mode-p + (when (eq major-mode 'org-mode) (goto-char (point-min)) (while (re-search-forward "^," nil t) (if (eq (org-current-line) line) (setq total-nindent (1+ total-nindent))) @@ -339,7 +340,7 @@ buffer." (defun org-src-switch-to-buffer (buffer context) (case org-src-window-setup ('current-window - (switch-to-buffer buffer)) + (org-pop-to-buffer-same-window buffer)) ('other-window (switch-to-buffer-other-window buffer)) ('other-frame @@ -350,7 +351,7 @@ buffer." (delete-frame frame))) ('save (kill-buffer (current-buffer)) - (switch-to-buffer buffer)) + (org-pop-to-buffer-same-window buffer)) (t (switch-to-buffer-other-frame buffer)))) ('reorganize-frame @@ -362,7 +363,7 @@ buffer." (t (message "Invalid value %s for org-src-window-setup" (symbol-name org-src-window-setup)) - (switch-to-buffer buffer)))) + (org-pop-to-buffer-same-window buffer)))) (defun org-src-construct-edit-buffer-name (org-buffer-name lang) "Construct the buffer name for a source editing buffer." @@ -397,7 +398,7 @@ the fragment in the Org-mode buffer." (case-fold-search t) (msg (substitute-command-keys "Edit, then exit with C-c ' (C-c and single quote)")) - (org-mode-p (org-mode-p)) + (org-mode-p (eq major-mode 'org-mode)) (beg (make-marker)) (end (make-marker)) (preserve-indentation org-src-preserve-indentation) @@ -422,7 +423,7 @@ the fragment in the Org-mode buffer." begline (save-excursion (goto-char beg) (org-current-line))) (if (and (setq buffer (org-edit-src-find-buffer beg end)) (y-or-n-p "Return to existing edit buffer? [n] will revert changes: ")) - (switch-to-buffer buffer) + (org-pop-to-buffer-same-window buffer) (when buffer (with-current-buffer buffer (if (boundp 'org-edit-src-overlay) @@ -442,7 +443,7 @@ the fragment in the Org-mode buffer." (define-key map [mouse-1] 'org-edit-src-continue) map)) (overlay-put ovl :read-only "Leave me alone") - (switch-to-buffer buffer) + (org-pop-to-buffer-same-window buffer) (insert code) (remove-text-properties (point-min) (point-max) '(display nil invisible nil intangible nil)) @@ -616,7 +617,7 @@ the language, a switch telling if the content should be in a single line." (when (org-bound-and-true-p org-edit-src-from-org-mode) (goto-char (point-min)) (while (re-search-forward - (if (org-mode-p) "^\\(.\\)" "^\\([*]\\|[ \t]*#\\+\\)") nil t) + (if (eq major-mode 'org-mode) "^\\(.\\)" "^\\([*]\\|[ \t]*#\\+\\)") nil t) (if (eq (org-current-line) line) (setq delta (1+ delta))) (replace-match ",\\1"))) (when (org-bound-and-true-p org-edit-src-picture) @@ -715,6 +716,7 @@ the language, a switch telling if the content should be in a single line." (with-current-buffer (marker-buffer beg-marker) (goto-char (marker-position beg-marker)) ,@body)))) +(def-edebug-spec org-src-do-at-code-block (body)) (defun org-src-do-key-sequence-at-code-block (&optional key) "Execute key sequence at code block in the source Org buffer. @@ -811,5 +813,4 @@ LANG is a string, and the returned major mode is a symbol." (provide 'org-src) - ;;; org-src.el ends here diff --git a/lisp/org/org-table.el b/lisp/org/org-table.el index 76e4eae4b45..df93a9a7271 100644 --- a/lisp/org/org-table.el +++ b/lisp/org/org-table.el @@ -1,11 +1,10 @@ ;;; org-table.el --- The table editor for Org-mode -;; Copyright (C) 2004-2011 Free Software Foundation, Inc. +;; Copyright (C) 2004-2012 Free Software Foundation, Inc. ;; Author: Carsten Dominik <carsten at orgmode dot org> ;; Keywords: outlines, hypermedia, calendar, wp ;; Homepage: http://orgmode.org -;; Version: 7.7 ;; ;; This file is part of GNU Emacs. ;; @@ -51,7 +50,7 @@ (defvar orgtbl-after-send-table-hook nil "Hook for functions attaching to `C-c C-c', if the table is sent. This can be used to add additional functionality after the table is sent -to the receiver position, otherwise, if table is not sent, the functions +to the receiver position, othewise, if table is not sent, the functions are not run.") (defcustom orgtbl-optimized (eq org-enable-table-editor 'optimized) @@ -242,6 +241,14 @@ days." (symbol :tag "Hours " 'hours) (symbol :tag "Days " 'days))) +(defcustom org-table-formula-field-format "%s" + "Format for fields which contain the result of a formula. +For example, using \"~%s~\" will display the result within tilde +characters. Beware that modifying the display can prevent the +field from being used in another formula." + :group 'org-table-settings + :type 'string) + (defcustom org-table-formula-evaluate-inline t "Non-nil means TAB and RET evaluate a formula in current table field. If the current field starts with an equal sign, it is assumed to be a formula @@ -816,23 +823,13 @@ When nil, simply write \"#ERROR\" in corrupted fields.") (append (pop fields) emptystrings)) hfmt)) lines "")) - (if (equal (char-before) ?\n) - ;; This hack is for org-indent, to force redisplay of the - ;; line prefix of the first line. Apparently the redisplay - ;; is tied to the newline, which is, I think, a bug. - ;; To force this redisplay, we remove and re-insert the - ;; newline, so that the redisplay engine thinks it belongs - ;; to the changed text. - (progn - (backward-delete-char 1) - (insert "\n"))) (move-marker org-table-aligned-begin-marker (point)) (insert new) ;; Replace the old one (delete-region (point) end) (move-marker end nil) (move-marker org-table-aligned-end-marker (point)) - (when (and orgtbl-mode (not (org-mode-p))) + (when (and orgtbl-mode (not (eq major-mode 'org-mode))) (goto-char org-table-aligned-begin-marker) (while (org-hide-wide-columns org-table-aligned-end-marker))) ;; Try to move to the old location @@ -1302,7 +1299,7 @@ However, when FORCE is non-nil, create new columns if necessary." (defun org-table-line-to-dline (line &optional above) "Turn a buffer line number into a data line number. If there is no data line in this line, return nil. -If there is no matching dline (most likely the reference was a hline), the +If there is no matchin dline (most likely te refrence was a hline), the first dline below it is used. When ABOVE is non-nil, the one above is used." (catch 'exit (let ((ll (length org-table-dlines)) @@ -1729,6 +1726,34 @@ blindly applies a recipe that works for simple tables." (replace-match "-+")) (goto-char beg))))) +(defun org-table-transpose-table-at-point () + "Transpose orgmode table at point and eliminate hlines. +So a table like + +| 1 | 2 | 4 | 5 | +|---+---+---+---| +| a | b | c | d | +| e | f | g | h | + +will be transposed as + +| 1 | a | e | +| 2 | b | f | +| 4 | c | g | +| 5 | d | h | + +Note that horizontal lines disappeared." + (interactive) + (let ((contents + (apply #'mapcar* #'list + ;; remove 'hline from list + (delq nil (mapcar (lambda (x) (when (listp x) x)) + (org-table-to-lisp)))))) + (delete-region (org-table-begin) (org-table-end)) + (insert (mapconcat (lambda(x) (concat "| " (mapconcat 'identity x " | " ) " |\n" )) + contents "")) + (org-table-align))) + (defun org-table-wrap-region (arg) "Wrap several fields in a column like a paragraph. This is useful if you'd like to spread the contents of a field over several @@ -2147,7 +2172,10 @@ For all numbers larger than LIMIT, shift them by DELTA." (when remove (while (re-search-forward re2 (point-at-eol) t) (unless (save-match-data (org-in-regexp "remote([^)]+?)")) - (replace-match "")))) + (if (equal (char-before (match-beginning 0)) ?.) + (error "Change makes TBLFM term %s invalid. Use undo to recover." + (match-string 0)) + (replace-match ""))))) (while (re-search-forward re (point-at-eol) t) (unless (save-match-data (org-in-regexp "remote([^)]+?)")) (setq s (match-string 1) n (string-to-number s)) @@ -2177,7 +2205,7 @@ For all numbers larger than LIMIT, shift them by DELTA." cnt 1) (while (setq name (pop names)) (setq cnt (1+ cnt)) - (if (string-match "^[a-zA-Z][a-zA-Z0-9]*$" name) + (if (string-match "^[a-zA-Z][_a-zA-Z0-9]*$" name) (push (cons name (int-to-string cnt)) org-table-column-names)))) (setq org-table-column-names (nreverse org-table-column-names)) (setq org-table-column-name-regexp @@ -2201,10 +2229,10 @@ For all numbers larger than LIMIT, shift them by DELTA." (while (and fields1 (setq field (pop fields))) (setq v (pop fields1) col (1+ col)) (when (and (stringp field) (stringp v) - (string-match "^[a-zA-Z][a-zA-Z0-9]*$" field)) + (string-match "^[a-zA-Z][_a-zA-Z0-9]*$" field)) (push (cons field v) org-table-local-parameters) (push (list field line col) org-table-named-field-locations)))) - ;; Analyze the line types + ;; Analyse the line types (goto-char beg) (setq org-table-current-begin-line (org-current-line) org-table-current-begin-pos (point) @@ -2408,7 +2436,8 @@ not overwrite the stored one." (modes (copy-sequence org-calc-default-modes)) (numbers nil) ; was a variable, now fixed default (keep-empty nil) - n form form0 formrpl formrg bw fmt x ev orig c lispp literal duration) + n form form0 formrpl formrg bw fmt x ev orig c lispp literal + duration duration-output-format) ;; Parse the format string. Since we have a lot of modes, this is ;; a lot of work. However, I think calc still uses most of the time. (if (string-match ";" formula) @@ -2579,7 +2608,8 @@ $1-> %s\n" orig formula form0 form)) (message ""))) (if (listp ev) (setq fmt nil ev "#ERROR")) (org-table-justify-field-maybe - (if fmt (format fmt (string-to-number ev)) ev)) + (format org-table-formula-field-format + (if fmt (format fmt (string-to-number ev)) ev))) (if (and down (> ndown 0) (looking-at ".*\n[ \t]*|[^-]")) (call-interactively 'org-return) (setq ndown 0))) @@ -2641,7 +2671,7 @@ in the buffer and column1 and column2 are table column numbers." (prog1 (org-trim (org-table-get-field c1)) (if highlight (org-table-highlight-rectangle (point) (point))))) ;; A range, return a vector - ;; First sort the numbers to get a regular rectangle + ;; First sort the numbers to get a regular ractangle (if (< r2 r1) (setq tmp r1 r1 r2 r2 tmp)) (if (< c2 c1) (setq tmp c1 c1 c2 c2 tmp)) (if corners-only @@ -2901,7 +2931,7 @@ known that the table will be realigned a little later anyway." (defun org-table-iterate (&optional arg) "Recalculate the table until it does not change anymore. -The maximum number of iterations is 10, but you can chose a different value +The maximun number of iterations is 10, but you can chose a different value with the prefix ARG." (interactive "P") (let ((imax (if arg (prefix-numeric-value arg) 10)) @@ -2962,7 +2992,7 @@ them to individual field equations for each field." ((string-match "^@-?[-+I0-9]+\\$-?[0-9]+$" lhs) ;; This just refers to one fixed field (push e res)) - ((string-match "^[a-zA-Z][a-zA-Z0-9]*$" lhs) + ((string-match "^[a-zA-Z][_a-zA-Z0-9]*$" lhs) ;; This just refers to one fixed named field (push e res)) ((string-match "^@[0-9]+$" lhs) @@ -2989,24 +3019,28 @@ them to individual field equations for each field." So @< and $< will always be replaced with @1 and $1, respectively. The advantage of these special markers are that structure editing of the table will not change them, while @1 and $1 will be modified -when a line/row is swaped out of that privileged position. So for +when a line/row is swapped out of that privileged position. So for formulas that use a range of rows or columns, it may often be better to anchor the formula with \"I\" row markers, or to offset from the borders of the table using the @< @> $< $> makers." - (let (n nmax len char) - (while (string-match "\\([@$]\\)\\(<+\\|>+\\)" s) - (setq nmax (if (equal (match-string 1 s) "@") - (1- (length org-table-dlines)) - org-table-current-ncol) - len (- (match-end 2) (match-beginning 2)) - char (string-to-char (match-string 2 s)) - n (if (= char ?<) - len - (- nmax len -1))) - (if (or (< n 1) (> n nmax)) - (error "Reference \"%s\" in expression \"%s\" points outside table" - (match-string 0 s) s)) - (setq s (replace-match (format "%s%d" (match-string 1 s) n) t t s)))) + (let (n nmax len char (start 0)) + (while (string-match "\\([@$]\\)\\(<+\\|>+\\)\\|\\(remote([^\)]+)\\)" + s start) + (if (match-end 3) + (setq start (match-end 3)) + (setq nmax (if (equal (match-string 1 s) "@") + (1- (length org-table-dlines)) + org-table-current-ncol) + len (- (match-end 2) (match-beginning 2)) + char (string-to-char (match-string 2 s)) + n (if (= char ?<) + len + (- nmax len -1))) + (if (or (< n 1) (> n nmax)) + (error "Reference \"%s\" in expression \"%s\" points outside table" + (match-string 0 s) s)) + (setq start (match-beginning 0)) + (setq s (replace-match (format "%s%d" (match-string 1 s) n) t t s))))) s) (defun org-table-formula-substitute-names (f) @@ -3241,7 +3275,7 @@ For example: 28 -> AB." "Convert a time string into numerical duration in seconds. S can be a string matching either -?HH:MM:SS or -?HH:MM. If S is a string representing a number, keep this number." - (let (hour min sec res) + (let (hour minus min sec res) (cond ((and (string-match "\\(-?\\)\\([0-9]+\\):\\([0-9]+\\):\\([0-9]+\\)" s)) (setq minus (< 0 (length (match-string 1 s))) @@ -3806,7 +3840,7 @@ Use COMMAND to do the motion, repeat if necessary to end up in a data line." :lighter " OrgTbl" :keymap orgtbl-mode-map (org-load-modules-maybe) (cond - ((org-mode-p) + ((eq major-mode 'org-mode) ;; Exit without error, in case some hook functions calls this ;; by accident in org-mode. (message "Orgtbl-mode is not useful in org-mode, command ignored")) @@ -3901,6 +3935,7 @@ to execute outside of tables." ("\C-c\C-w" org-table-cut-region) ("\C-c\M-w" org-table-copy-region) ("\C-c\C-y" org-table-paste-rectangle) + ("\C-c\C-w" org-table-wrap-region) ("\C-c-" org-table-insert-hline) ("\C-c}" org-table-toggle-coordinate-overlays) ("\C-c{" org-table-toggle-formula-debugger) @@ -4675,6 +4710,8 @@ The return value is either a single string for a single field, or a list of the fields in the rectangle ." (save-match-data (let ((id-loc nil) + ;; Protect a bunch of variables from being overwritten + ;; by the context of the remote table org-table-column-names org-table-column-name-regexp org-table-local-parameters org-table-named-field-locations org-table-current-line-types org-table-current-begin-line @@ -4711,7 +4748,8 @@ list of the fields in the rectangle ." (error "Cannot find a table at NAME or ID %s" name-or-id)) (setq tbeg (point-at-bol)) (org-table-get-specials) - (setq form (org-table-formula-substitute-names form)) + (setq form (org-table-formula-substitute-names + (org-table-formula-handle-first/last-rc form))) (if (and (string-match org-table-range-regexp form) (> (length (match-string 0 form)) 1)) (save-match-data @@ -4720,6 +4758,4 @@ list of the fields in the rectangle ." (provide 'org-table) - - ;;; org-table.el ends here diff --git a/lisp/org/org-taskjuggler.el b/lisp/org/org-taskjuggler.el index 45b16aecf12..68f64974ff3 100644 --- a/lisp/org/org-taskjuggler.el +++ b/lisp/org/org-taskjuggler.el @@ -1,10 +1,9 @@ ;;; org-taskjuggler.el --- TaskJuggler exporter for org-mode ;; -;; Copyright (C) 2007-2011 Free Software Foundation, Inc. +;; Copyright (C) 2007-2012 Free Software Foundation, Inc. ;; ;; Emacs Lisp Archive Entry ;; Filename: org-taskjuggler.el -;; Version: 7.7 ;; Author: Christian Egli ;; Maintainer: Christian Egli ;; Keywords: org, taskjuggler, project planning @@ -70,7 +69,7 @@ ;; "taskjuggler_project" (or whatever you customized ;; `org-export-taskjuggler-project-tag' to). You are now ready to ;; export the project plan with `org-export-as-taskjuggler-and-open' -;; which will export the project plan and open a Gantt chart in +;; which will export the project plan and open a gant chart in ;; TaskJugglerUI. ;; ;; * Resources @@ -278,6 +277,7 @@ defined in `org-export-taskjuggler-default-reports'." (file-name-nondirectory buffer-file-name)) org-export-taskjuggler-extension))) (buffer (find-file-noselect filename)) + (old-buffer (current-buffer)) (org-export-taskjuggler-old-level 0) task resource) (unless tasks @@ -305,6 +305,7 @@ defined in `org-export-taskjuggler-default-reports'." (setcar tasks (push (cons "version" version) task)))) (with-current-buffer buffer (erase-buffer) + (org-clone-local-variables old-buffer "^org-") (org-taskjuggler-open-project (car tasks)) (insert org-export-taskjuggler-default-global-properties) (insert "\n") @@ -571,7 +572,7 @@ with separator \"\n\"." (and filtered-items (mapconcat 'identity filtered-items "\n")))) (defun org-taskjuggler-get-attributes (item attributes) - "Return all attributes as a single formatted string. ITEM is an + "Return all attribute as a single formated string. ITEM is an alist representing either a resource or a task. ATTRIBUTES is a list of symbols. Only entries from ITEM are considered that are listed in ATTRIBUTES." diff --git a/lisp/org/org-timer.el b/lisp/org/org-timer.el index b8fbc4ff388..44a53ad0f15 100644 --- a/lisp/org/org-timer.el +++ b/lisp/org/org-timer.el @@ -1,11 +1,10 @@ ;;; org-timer.el --- The relative timer code for Org-mode -;; Copyright (C) 2008-2011 Free Software Foundation, Inc. +;; Copyright (C) 2008-2012 Free Software Foundation, Inc. ;; Author: Carsten Dominik <carsten at orgmode dot org> ;; Keywords: outlines, hypermedia, calendar, wp ;; Homepage: http://orgmode.org -;; Version: 7.7 ;; ;; This file is part of GNU Emacs. ;; @@ -373,7 +372,7 @@ replace any running timer." (org-show-entry) (or (ignore-errors (org-get-heading)) (concat "File:" (file-name-nondirectory (buffer-file-name))))))) - ((org-mode-p) + ((eq major-mode 'org-mode) (or (ignore-errors (org-get-heading)) (concat "File:" (file-name-nondirectory (buffer-file-name))))) (t (error "Not in an Org buffer")))) @@ -403,6 +402,4 @@ replace any running timer." (provide 'org-timer) - - ;;; org-timer.el ends here diff --git a/lisp/org/org-vm.el b/lisp/org/org-vm.el index d0991b81116..b6975ff1157 100644 --- a/lisp/org/org-vm.el +++ b/lisp/org/org-vm.el @@ -1,11 +1,10 @@ ;;; org-vm.el --- Support for links to VM messages from within Org-mode -;; Copyright (C) 2004-2011 Free Software Foundation, Inc. +;; Copyright (C) 2004-2012 Free Software Foundation, Inc. ;; Author: Carsten Dominik <carsten at orgmode dot org> ;; Keywords: outlines, hypermedia, calendar, wp ;; Homepage: http://orgmode.org -;; Version: 7.7 ;; ;; This file is part of GNU Emacs. ;; @@ -139,6 +138,4 @@ (provide 'org-vm) - - ;;; org-vm.el ends here diff --git a/lisp/org/org-w3m.el b/lisp/org/org-w3m.el index bce90092e6e..bad20036b82 100644 --- a/lisp/org/org-w3m.el +++ b/lisp/org/org-w3m.el @@ -1,11 +1,10 @@ ;;; org-w3m.el --- Support from copy and paste from w3m to Org-mode -;; Copyright (C) 2008-2011 Free Software Foundation, Inc. +;; Copyright (C) 2008-2012 Free Software Foundation, Inc. ;; Author: Andy Stewart <lazycat dot manatee at gmail dot com> ;; Keywords: outlines, hypermedia, calendar, wp ;; Homepage: http://orgmode.org -;; Version: 7.7 ;; ;; This file is part of GNU Emacs. ;; @@ -168,6 +167,4 @@ Return t if there is no previous link; otherwise, return nil." (provide 'org-w3m) - - ;;; org-w3m.el ends here diff --git a/lisp/org/org-wl.el b/lisp/org/org-wl.el index 9bc49c8b91a..6d2370671bd 100644 --- a/lisp/org/org-wl.el +++ b/lisp/org/org-wl.el @@ -1,12 +1,11 @@ ;;; org-wl.el --- Support for links to Wanderlust messages from within Org-mode -;; Copyright (C) 2004-2011 Free Software Foundation, Inc. +;; Copyright (C) 2004-2012 Free Software Foundation, Inc. ;; Author: Tokuya Kameshima <kames at fa2 dot so-net dot ne dot jp> ;; David Maus <dmaus at ictsoc dot de> ;; Keywords: outlines, hypermedia, calendar, wp ;; Homepage: http://orgmode.org -;; Version: 7.7 ;; ;; This file is part of GNU Emacs. ;; @@ -309,6 +308,4 @@ for namazu index." (provide 'org-wl) - - ;;; org-wl.el ends here diff --git a/lisp/org/org-xoxo.el b/lisp/org/org-xoxo.el index 02f351fe724..fc3a9732041 100644 --- a/lisp/org/org-xoxo.el +++ b/lisp/org/org-xoxo.el @@ -1,11 +1,10 @@ ;;; org-xoxo.el --- XOXO export for Org-mode -;; Copyright (C) 2004-2011 Free Software Foundation, Inc. +;; Copyright (C) 2004-2012 Free Software Foundation, Inc. ;; Author: Carsten Dominik <carsten at orgmode dot org> ;; Keywords: outlines, hypermedia, calendar, wp ;; Homepage: http://orgmode.org -;; Version: 7.7 ;; ;; This file is part of GNU Emacs. ;; @@ -123,5 +122,4 @@ The XOXO buffer is named *xoxo-<source buffer name>*" (provide 'org-xoxo) - ;;; org-xoxo.el ends here diff --git a/lisp/org/org.el b/lisp/org/org.el index 8aca74e69cc..c5d5e545b9f 100644 --- a/lisp/org/org.el +++ b/lisp/org/org.el @@ -1,11 +1,12 @@ ;;; org.el --- Outline-based notes management and organizer ;; Carstens outline-mode for keeping track of everything. -;; Copyright (C) 2004-2011 Free Software Foundation, Inc. +;; Copyright (C) 2004-2012 Free Software Foundation, Inc. ;; ;; Author: Carsten Dominik <carsten at orgmode dot org> +;; Maintainer: Bastien Guerry <bzg at gnu dot org> ;; Keywords: outlines, hypermedia, calendar, wp ;; Homepage: http://orgmode.org -;; Version: 7.7 +;; Version: 7.8.03 ;; ;; This file is part of GNU Emacs. ;; @@ -105,6 +106,7 @@ (declare-function org-inlinetask-at-task-p "org-inlinetask" ()) (declare-function org-inlinetask-outline-regexp "org-inlinetask" ()) (declare-function org-inlinetask-toggle-visibility "org-inlinetask" ()) +(declare-function org-pop-to-buffer-same-window "org-compat" (&optional buffer-or-name norecord label)) (declare-function org-at-clock-log-p "org-clock" ()) (declare-function org-clock-timestamps-up "org-clock" ()) (declare-function org-clock-timestamps-down "org-clock" ()) @@ -162,6 +164,7 @@ requirements) is loaded." (const :tag "Ditaa" ditaa) (const :tag "Dot" dot) (const :tag "Emacs Lisp" emacs-lisp) + (const :tag "Fortran" fortran) (const :tag "Gnuplot" gnuplot) (const :tag "Haskell" haskell) (const :tag "Java" java) @@ -176,6 +179,7 @@ requirements) is loaded." (const :tag "Octave" octave) (const :tag "Org" org) (const :tag "Perl" perl) + (const :tag "Pico Lisp" picolisp) (const :tag "PlantUML" plantuml) (const :tag "Python" python) (const :tag "Ruby" ruby) @@ -183,6 +187,7 @@ requirements) is loaded." (const :tag "Scheme" scheme) (const :tag "Screen" screen) (const :tag "Shell Script" sh) + (const :tag "Shen" shen) (const :tag "Sql" sql) (const :tag "Sqlite" sqlite)) :value-type (boolean :tag "Activate" :value t))) @@ -198,7 +203,7 @@ identifier." ;;; Version -(defconst org-version "7.7" +(defconst org-version "7.8.03" "The version number of the file org.el.") (defun org-version (&optional here) @@ -249,6 +254,11 @@ With prefix arg HERE, insert it at point." :group 'org :type 'hook) +(defcustom org-log-buffer-setup-hook nil + "Hook that is run after an Org log buffer is created." + :group 'org + :type 'hook) + (defvar org-modules) ; defined below (defvar org-modules-loaded nil "Have the modules been loaded already?") @@ -338,7 +348,6 @@ to add the symbol `xyz', and the package must have a call to (const :tag "C mac-link-grabber Grab links and URLs from various Mac applications" org-mac-link-grabber) (const :tag "C man: Support for links to manpages in Org-mode" org-man) (const :tag "C mtags: Support for muse-like tags" org-mtags) - (const :tag "C odt: OpenDocumentText exporter for Org-mode" org-odt) (const :tag "C panel: Simple routines for us with bad memory" org-panel) (const :tag "C registry: A registry for Org-mode links" org-registry) (const :tag "C org2rem: Convert org appointments into reminders" org2rem) @@ -354,12 +363,12 @@ to add the symbol `xyz', and the package must have a call to (defcustom org-support-shift-select nil "Non-nil means make shift-cursor commands select text when possible. -In Emacs 23, when `shift-select-mode' is on, shifted cursor keys start -selecting a region, or enlarge regions started in this way. -In Org-mode, in special contexts, these same keys are used for other -purposes, important enough to compete with shift selection. Org tries -to balance these needs by supporting `shift-select-mode' outside these -special contexts, under control of this variable. +In Emacs 23, when `shift-select-mode' is on, shifted cursor keys +start selecting a region, or enlarge regions started in this way. +In Org-mode, in special contexts, these same keys are used for +other purposes, important enough to compete with shift selection. +Org tries to balance these needs by supporting `shift-select-mode' +outside these special contexts, under control of this variable. The default of this variable is nil, to avoid confusing behavior. Shifted cursor keys will then execute Org commands in the following contexts: @@ -370,30 +379,56 @@ cursor keys will then execute Org commands in the following contexts: - in the BEGIN line of a clock table (changing the time block). Outside these contexts, the commands will throw an error. -When this variable is t and the cursor is not in a special context, -Org-mode will support shift-selection for making and enlarging regions. -To make this more effective, the bullet cycling will no longer happen -anywhere in an item line, but only if the cursor is exactly on the bullet. +When this variable is t and the cursor is not in a special +context, Org-mode will support shift-selection for making and +enlarging regions. To make this more effective, the bullet +cycling will no longer happen anywhere in an item line, but only +if the cursor is exactly on the bullet. If you set this variable to the symbol `always', then the keys -will not be special in headlines, property lines, and item lines, to make -shift selection work there as well. If this is what you want, you can -use the following alternative commands: `C-c C-t' and `C-c ,' to -change TODO state and priority, `C-u C-u C-c C-t' can be used to switch -TODO sets, `C-c -' to cycle item bullet types, and properties can be -edited by hand or in column view. +will not be special in headlines, property lines, and item lines, +to make shift selection work there as well. If this is what you +want, you can use the following alternative commands: `C-c C-t' +and `C-c ,' to change TODO state and priority, `C-u C-u C-c C-t' +can be used to switch TODO sets, `C-c -' to cycle item bullet +types, and properties can be edited by hand or in column view. However, when the cursor is on a timestamp, shift-cursor commands will still edit the time stamp - this is just too good to give up. -XEmacs user should have this variable set to nil, because shift-select-mode -is Emacs 23 only." +XEmacs user should have this variable set to nil, because +`shift-select-mode' is in Emacs 23 or later only." :group 'org :type '(choice (const :tag "Never" nil) (const :tag "When outside special context" t) (const :tag "Everywhere except timestamps" always))) +(defcustom org-loop-over-headlines-in-active-region nil + "Shall some commands act upon headlines in the active region? + +When set to `t', some commands will be performed in all headlines +within the active region. + +When set to `start-level', some commands will be performed in all +headlines within the active region, provided that these headlines +are of the same level than the first one. + +When set to a string, those commands will be performed on the +matching headlines within the active region. Such string must be +a tags/property/todo match as it is used in the agenda tags view. + +The list of commands is: `org-schedule', `org-deadline', +`org-todo', `org-archive-subtree', `org-archive-set-tag' and +`org-archive-to-archive-sibling'. The archiving commands skip +already archived entries." + :type '(choice (const :tag "Don't loop" nil) + (const :tag "All headlines in active region" t) + (const :tag "In active region, headlines at the same level than the first one" 'start-level) + (string :tag "Tags/Property/Todo matcher")) + :group 'org-todo + :group 'org-archive) + (defgroup org-startup nil "Options concerning startup of Org-mode." :tag "Org Startup" @@ -817,7 +852,7 @@ than its value." (const :tag "No limit" nil) (integer :tag "Maximum level"))) -(defcustom org-drawers '("PROPERTIES" "CLOCK" "LOGBOOK") +(defcustom org-drawers '("PROPERTIES" "CLOCK" "LOGBOOK" "RESULTS") "Names of drawers. Drawers are not opened by cycling on the headline above. Drawers only open with a TAB on the drawer line itself. A drawer looks like this: @@ -1037,6 +1072,28 @@ OK to kill that hidden subtree. When nil, kill without remorse." (const :tag "Protect hidden subtrees with a security query" t) (const :tag "Never kill a hidden subtree with C-k" error))) +(defcustom org-catch-invisible-edits nil + "Check if in invisible region before inserting or deleting a character. +Valid values are: + +nil Do not check, so just do invisible edits. +error Throw an error and do nothing. +show Make point visible, and do the requested edit. +show-and-error Make point visible, then throw an error and abort the edit. +smart Make point visible, and do insertion/deletion if it is + adjacent to visible text and the change feels predictable. + Never delete a previously invisible character or add in the + middle or right after an invisible region. Basically, this + allows insertion and backward-delete right before ellipses. + FIXME: maybe in this case we should not even show?" + :group 'org-edit-structure + :type '(choice + (const :tag "Do not check" nil) + (const :tag "Throw error when trying to edit" error) + (const :tag "Unhide, but do not do the edit" show-and-error) + (const :tag "Show invisible part and do the edit" show) + (const :tag "Be smart and do the right thing" smart))) + (defcustom org-yank-folded-subtrees t "Non-nil means when yanking subtrees, fold them. If the kill is a single subtree, or a sequence of subtrees, i.e. if @@ -1260,10 +1317,14 @@ See the manual for examples." (function))))) (defcustom org-descriptive-links t - "Non-nil means hide link part and only show description of bracket links. -Bracket links are like [[link][description]]. This variable sets the initial -state in new org-mode buffers. The setting can then be toggled on a -per-buffer basis from the Org->Hyperlinks menu." + "Non-nil means Org will display descriptive links. +E.g. [[http://orgmode.org][Org website]] will be displayed as +\"Org Website\", hiding the link itself and just displaying its +description. When set to `nil', Org will display the full links +literally. + +You can interactively set the value of this variable by calling +`org-toggle-link-display' or from the menu Org>Hyperlinks menu." :group 'org-link :type 'boolean) @@ -1401,8 +1462,8 @@ nil Never use an ID to make a link, instead link using a text search for "Non-nil means file links from `org-store-link' contain context. A search string will be added to the file name with :: as separator and used to find the context when the link is activated by the command -`org-open-at-point'. When this option is t, the entire active region -will be placed in the search string of the file link. If set to a +`org-open-at-point'. When this option is t, the entire active region +will be placed in the search string of the file link. If set to a positive integer, only the first n lines of context will be stored. Using a prefix arg to the command \\[org-store-link] (`org-store-link') @@ -1852,7 +1913,7 @@ will temporarily be changed to `time'." (defcustom org-refile-targets nil "Targets for refiling entries with \\[org-refile]. -This is list of cons cells. Each cell contains: +This is a list of cons cells. Each cell contains: - a specification of the files to be considered, either a list of files, or a symbol whose function or variable value will be used to retrieve a file name or a list of file names. If you use `org-agenda-files' for @@ -1870,10 +1931,14 @@ This is list of cons cells. Each cell contains: - a cons cell (:level . N). Any headline of level N is considered a target. Note that, when `org-odd-levels-only' is set, level corresponds to order in hierarchy, not to the number of stars. - - a cons cell (:maxlevel . N). Any headline with level <= N is a target. + - a cons cell (:maxlevel . N). Any headline with level <= N is a target. Note that, when `org-odd-levels-only' is set, level corresponds to order in hierarchy, not to the number of stars. +Each element of this list generates a set of possible targets. +The union of these sets is presented (with completion) to +the user by `org-refile'. + You can set the variable `org-refile-target-verify-function' to a function to verify each headline found by the simple criteria above. @@ -1963,6 +2028,16 @@ heading." (const :tag "Always" t) (const :tag "Prompt for confirmation" confirm))) +(defcustom org-refile-active-region-within-subtree nil + "Non-nil means also refile active region within a subtree. + +By default `org-refile' doesn't allow refiling regions if they +don't contain a set of subtrees, but it might be convenient to +do so sometimes: in that case, the first line of the region is +converted to a headline before refiling." + :group 'org-refile + :type 'boolean) + (defgroup org-todo nil "Options concerning TODO items in Org-mode." :tag "Org TODO" @@ -2348,6 +2423,8 @@ context, and the cdr is the heading to be used. The heading may also be the empty string. %t in the heading will be replaced by a time stamp. %T will be an active time stamp instead the default inactive one +%d will be replaced by a short-format time stamp. +%D will be replaced by an active short-format time stamp. %s will be replaced by the new TODO state, in double quotes. %S will be replaced by the old TODO state, in double quotes. %u will be replaced by the user name. @@ -2444,7 +2521,7 @@ An auto-repeating task is immediately switched back to TODO when marked DONE. If you are not logging state changes (by adding \"@\" or \"!\" to the TODO keyword definition), or set `org-log-done' to record a closing note, there will be no record of the task moving -through DONE. This variable forces taking a note anyway. +through DONE. This variable forces taking a note anyway. nil Don't force a record time Record a time stamp @@ -2681,7 +2758,7 @@ When this variable is set to t, the date/time prompt will not let you specify dates outside the 1970-2037 range, so it is certain that these dates will work in whatever version of Emacs you are running, and also that you can move a file from one Emacs implementation -to another. Whenever Org is forcing the year for you, it will display +to another. WHenever Org is forcing the year for you, it will display a message and beep. When this variable is nil, Org will check if the date is @@ -2735,6 +2812,14 @@ be the favorite working time of John Wiegley :-)" :group 'org-time :type 'integer) +(defcustom org-use-effective-time nil + "If non-nil, consider `org-extend-today-until' when creating timestamps. +For example, if `org-extend-today-until' is 8, and it's 4am, then the +\"effective time\" of any timestamps between midnight and 8am will be +23:59 of the previous day." + :group 'boolean + :type 'integer) + (defcustom org-edit-timestamp-down-means-later nil "Non-nil means S-down will increase the time in a time stamp. When nil, S-up will increase." @@ -2849,7 +2934,9 @@ This is an undocumented feature, you should not rely on it.") "The column to which tags should be indented in a headline. If this number is positive, it specifies the column. If it is negative, it means that the tags should be flushright to that column. For example, --80 works well for a normal 80 character screen." +-80 works well for a normal 80 character screen. +When 0, place tags directly after headline text, with only one space in +between." :group 'org-tags :type 'integer) @@ -2924,7 +3011,7 @@ is better to limit inheritance to certain tags using the variables (const :tag "List them, indented with leading dots" indented))) (defcustom org-tags-sort-function nil - "When set, tags are sorted using this comparison function." + "When set, tags are sorted using this function as a comparator." :group 'org-tags :type '(choice (const :tag "No sorting" nil) @@ -2952,6 +3039,28 @@ lined-up with respect to each other." :group 'org-properties :type 'string) +(defcustom org-properties-postprocess-alist nil + "Alist of properties and functions to adjust inserted values. +Elements of this alist must be of the form + + ([string] [function]) + +where [string] must be a property name and [function] must be a +lambda expression: this lambda expression must take one argument, +the value to adjust, and return the new value as a string. + +For example, this element will allow the property \"Remaining\" +to be updated wrt the relation between the \"Effort\" property +and the clock summary: + + ((\"Remaining\" (lambda(value) + (let ((clocksum (org-clock-sum-current-item)) + (effort (org-duration-string-to-minutes + (org-entry-get (point) \"Effort\")))) + (org-minutes-to-hh:mm-string (- effort clocksum))))))" + :group 'org-properties + :type 'alist) + (defcustom org-use-property-inheritance nil "Non-nil means properties apply also for sublevels. @@ -3222,6 +3331,46 @@ This is a property list with the following properties: When nil, just push out a message." :group 'org-latex :type 'boolean) +(defcustom org-latex-to-mathml-jar-file nil + "Value of\"%j\" in `org-latex-to-mathml-convert-command'. +Use this to specify additional executable file say a jar file. + +When using MathToWeb as the converter, specify the full-path to +your mathtoweb.jar file." + :group 'org-latex + :type '(choice + (const :tag "None" nil) + (file :tag "JAR file" :must-match t))) + +(defcustom org-latex-to-mathml-convert-command nil + "Command to convert LaTeX fragments to MathML. +Replace format-specifiers in the command as noted below and use +`shell-command' to convert LaTeX to MathML. +%j: Executable file in fully expanded form as specified by + `org-latex-to-mathml-jar-file'. +%I: Input LaTeX file in fully expanded form +%o: Output MathML file +This command is used by `org-create-math-formula'. + +When using MathToWeb as the converter, set this to +\"java -jar %j -unicode -force -df %o %I\"." + :group 'org-latex + :type '(choice + (const :tag "None" nil) + (string :tag "\nShell command"))) + +(defun org-format-latex-mathml-available-p () + "Return t if `org-latex-to-mathml-convert-command' is usable." + (save-match-data + (when (and (boundp 'org-latex-to-mathml-convert-command) + org-latex-to-mathml-convert-command) + (let ((executable (car (split-string + org-latex-to-mathml-convert-command)))) + (when (executable-find executable) + (if (string-match + "%j" org-latex-to-mathml-convert-command) + (file-readable-p org-latex-to-mathml-jar-file) + t)))))) (defcustom org-format-latex-header "\\documentclass{article} \\usepackage[usenames]{color} @@ -3609,6 +3758,7 @@ Normal means, no org-mode-specific context." (defvar calc-embedded-close-formula) (defvar calc-embedded-open-formula) (declare-function cdlatex-tab "ext:cdlatex" ()) +(declare-function cdlatex-compute-tables "ext:cdlatex" ()) (declare-function dired-get-filename "dired" (&optional localp no-error-if-not-filep)) (defvar font-lock-unfontify-region-function) (declare-function iswitchb-read-buffer "iswitchb" @@ -3618,7 +3768,7 @@ Normal means, no org-mode-specific context." (defvar org-agenda-tags-todo-honor-ignore-options) (declare-function org-agenda-skip "org-agenda" ()) (declare-function - org-format-agenda-item "org-agenda" + org-agenda-format-item "org-agenda" (extra txt &optional category tags dotime noprefix remove-re habitp)) (declare-function org-agenda-new-marker "org-agenda" (&optional pos)) (declare-function org-agenda-change-all-lines "org-agenda" @@ -3986,7 +4136,7 @@ Here are a few examples: \"~/org/archive.org::\" Archive in file ~/org/archive.org (absolute path), as top-level trees. -\"~/org/archive.org::From %s\" +\"~/org/archive.org::* From %s\" Archive in file ~/org/archive.org (absolute path), under headlines \"From FILENAME\" where file name is the current file name. @@ -4074,7 +4224,7 @@ collapsed state." (let* ((re (concat ":" org-archive-tag ":"))) (goto-char beg) (while (re-search-forward re end t) - (when (org-on-heading-p) + (when (org-at-heading-p) (org-flag-subtree t) (org-end-of-subtree t)))))) @@ -4150,20 +4300,14 @@ group 5: Tags") (make-variable-buffer-local 'org-complex-heading-regexp) (defvar org-complex-heading-regexp-format nil "Printf format to make regexp to match an exact headline. -This regexp will match the headline of any node which hase the exact -headline text that is put into the format, but may have any TODO state, -priority and tags.") +This regexp will match the headline of any node which has the +exact headline text that is put into the format, but may have any +TODO state, priority and tags.") (make-variable-buffer-local 'org-complex-heading-regexp-format) (defvar org-todo-line-tags-regexp nil "Matches a headline and puts TODO state into group 2 if present. Also put tags into group 4 if tags are present.") (make-variable-buffer-local 'org-todo-line-tags-regexp) -(defvar org-nl-done-regexp nil - "Matches newline followed by a headline with the DONE keyword.") -(make-variable-buffer-local 'org-nl-done-regexp) -(defvar org-looking-at-done-regexp nil - "Matches the DONE keyword a point.") -(make-variable-buffer-local 'org-looking-at-done-regexp) (defvar org-ds-keyword-length 12 "Maximum length of the Deadline and SCHEDULED keywords.") (make-variable-buffer-local 'org-ds-keyword-length) @@ -4300,9 +4444,34 @@ in the #+STARTUP line, the corresponding variable, and the value to set this variable to if the option is found. An optional forth element PUSH means to push this value onto the list in the variable.") +(defun org-update-property-plist (key val props) + "Update PROPS with KEY and VAL." + (if (string= "+" (substring key (- (length key) 1))) + (let* ((key (substring key 0 (- (length key) 1))) + (previous (cdr (assoc key props)))) + (cons (cons key (concat previous " " val)) + (org-remove-if (lambda (p) (string= (car p) key)) props))) + (cons (cons key val) props))) + +(defconst org-block-regexp + "^[ \t]*#\\+begin_?\\([^ \n]+\\)\\(\\([^\n]+\\)\\)?\n\\([^\000]+?\\)#\\+end_?\\1[ \t]*$" + "Regular expression for hiding blocks.") +(defconst org-heading-keyword-regexp-format + "^\\(\\*+\\)\\(?: +%s\\)\\(?: +\\(.*?\\)\\)?[ \t]*$" + "Printf format for a regexp matching an headline with some keyword. +This regexp will match the headline of any node which has the +exact keyword that is put into the format. The keyword isn't in +any group by default, but the stars and the body are.") +(defconst org-heading-keyword-maybe-regexp-format + "^\\(\\*+\\)\\(?: +%s\\)?\\(?: +\\(.*?\\)\\)?[ \t]*$" + "Printf format for a regexp matching an headline, possibly with some keyword. +This regexp can match any headline with the specified keyword, or +without a keyword. The keyword isn't in any group by default, +but the stars and the body are.") + (defun org-set-regexps-and-options () "Precompute regular expressions for current buffer." - (when (org-mode-p) + (when (eq major-mode 'org-mode) (org-set-local 'org-todo-kwd-alist nil) (org-set-local 'org-todo-key-alist nil) (org-set-local 'org-todo-key-trigger nil) @@ -4361,8 +4530,9 @@ means to push this value onto the list in the variable.") (setq prio (org-split-string value " +"))) ((equal key "PROPERTY") (when (string-match "\\(\\S-+\\)\\s-+\\(.*\\)" value) - (push (cons (match-string 1 value) (match-string 2 value)) - props))) + (setq props (org-update-property-plist (match-string 1 value) + (match-string 2 value) + props)))) ((equal key "FILETAGS") (when (string-match "\\S-" value) (setq ftags @@ -4406,8 +4576,17 @@ means to push this value onto the list in the variable.") (setq ext-setup-or-nil (concat (substring ext-setup-or-nil 0 start) "\n" setup-contents "\n" - (substring ext-setup-or-nil start))))) - )))) + (substring ext-setup-or-nil start))))))) + ;; search for property blocks + (goto-char (point-min)) + (while (re-search-forward org-block-regexp nil t) + (when (equal "PROPERTY" (upcase (match-string 1))) + (setq value (replace-regexp-in-string + "[\n\r]" " " (match-string 4))) + (when (string-match "\\(\\S-+\\)\\s-+\\(.*\\)" value) + (setq props (org-update-property-plist (match-string 1 value) + (match-string 2 value) + props))))))) (org-set-local 'org-use-sub-superscripts scripts) (when cat (org-set-local 'org-category (intern cat)) @@ -4498,7 +4677,9 @@ means to push this value onto the list in the variable.") (assoc (car e) org-tag-alist)) (push e org-tag-alist))))) - ;; Compute the regular expressions and other local variables + ;; Compute the regular expressions and other local variables. + ;; Using `org-outline-regexp-bol' would complicate them much, + ;; because of the fixed white space at the end of that string. (if (not org-done-keywords) (setq org-done-keywords (and org-todo-keywords-1 (list (org-last org-todo-keywords-1))))) @@ -4513,47 +4694,42 @@ means to push this value onto the list in the variable.") 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-1 - "\\|") "\\)\\>") + (concat "\\(" + (mapconcat 'regexp-quote org-todo-keywords-1 "\\|") + "\\)") org-not-done-regexp - (concat "\\<\\(" + (concat "\\(" (mapconcat 'regexp-quote org-not-done-keywords "\\|") - "\\)\\>") + "\\)") org-not-done-heading-regexp - (concat "^\\(\\*+\\)[ \t]+\\(" - (mapconcat 'regexp-quote org-not-done-keywords "\\|") - "\\)\\>") + (format org-heading-keyword-regexp-format org-not-done-regexp) org-todo-line-regexp - (concat "^\\(\\*+\\)[ \t]+\\(?:\\(" - (mapconcat 'regexp-quote org-todo-keywords-1 "\\|") - "\\)\\>\\)?[ \t]*\\(.*\\)") + (format org-heading-keyword-maybe-regexp-format org-todo-regexp) org-complex-heading-regexp - (concat "^\\(\\*+\\)[ \t]+\\(?:\\(" - (mapconcat 'regexp-quote org-todo-keywords-1 "\\|") - "\\)\\>\\)?\\(?:[ \t]*\\(\\[#.\\]\\)\\)?[ \t]*\\(.*?\\)" - "\\(?:[ \t]+\\(:[[:alnum:]_@#%:]+:\\)\\)?[ \t]*$") + (concat "^\\(\\*+\\)" + "\\(?: +" org-todo-regexp "\\)?" + "\\(?: +\\(\\[#.\\]\\)\\)?" + "\\(?: +\\(.*?\\)\\)?" + (org-re "\\(?:[ \t]+\\(:[[:alnum:]_@#%:]+:\\)\\)?") + "[ \t]*$") org-complex-heading-regexp-format - (concat "^\\(\\*+\\)[ \t]+\\(?:\\(" - (mapconcat 'regexp-quote org-todo-keywords-1 "\\|") - "\\)\\>\\)?" - "\\(?:[ \t]*\\(\\[#.\\]\\)\\)?" - "\\(?:[ \t]*\\(?:\\[[0-9%%/]+\\]\\)\\)?" ;; stats cookie - "[ \t]*\\(%s\\)" - "\\(?:[ \t]*\\(?:\\[[0-9%%/]+\\]\\)\\)?" ;; stats cookie - "\\(?:[ \t]+\\(:[[:alnum:]_@#%%:]+:\\)\\)?[ \t]*$") - org-nl-done-regexp - (concat "\n\\*+[ \t]+" - "\\(?:" (mapconcat 'regexp-quote org-done-keywords "\\|") - "\\)" "\\>") + (concat "^\\(\\*+\\)" + "\\(?: +" org-todo-regexp "\\)?" + "\\(?: +\\(\\[#.\\]\\)\\)?" + "\\(?: +" + ;; Stats cookies can be sticked to body. + "\\(?:\\[[0-9%%/]+\\] *\\)?" + "\\(%s\\)" + "\\(?: *\\[[0-9%%/]+\\]\\)?" + "\\)" + (org-re "\\(?:[ \t]+\\(:[[:alnum:]_@#%%:]+:\\)\\)?") + "[ \t]*$") org-todo-line-tags-regexp - (concat "^\\(\\*+\\)[ \t]+\\(?:\\(" - (mapconcat 'regexp-quote org-todo-keywords-1 "\\|") - (org-re - "\\)\\>\\)? *\\(.*?\\([ \t]:[[:alnum:]:_@#%]+:[ \t]*\\)?$\\)")) - org-looking-at-done-regexp - (concat "^" "\\(?:" - (mapconcat 'regexp-quote org-done-keywords "\\|") "\\)" - "\\>") + (concat "^\\(\\*+\\)" + "\\(?: +" org-todo-regexp "\\)?" + "\\(?: +\\(.*?\\)\\)?" + (org-re "\\(?:[ \t]+\\(:[[:alnum:]:_@#%]+:\\)\\)?") + "[ \t]*$") org-deadline-regexp (concat "\\<" org-deadline-string) org-deadline-time-regexp (concat "\\<" org-deadline-string " *<\\([^>]+\\)>") @@ -4582,7 +4758,7 @@ 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>]*?[]>]\\|<%%([^\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 @@ -4698,10 +4874,23 @@ This variable is set by `org-before-change-function'. (defvar org-inhibit-blocking nil) ; Dynamically-scoped param. (defvar org-table-buffer-is-an nil) -;; org-outline-regexp ought to be a defconst but is let-binding -;; in some places -- e.g. see the macro org-with-limited-levels -(defvar org-outline-regexp "\\*+ ") -(defconst org-outline-regexp-bol "^\\*+ ") +;; `org-outline-regexp' ought to be a defconst but is let-binding in +;; some places -- e.g. see the macro org-with-limited-levels. +;; +;; In Org buffers, the value of `outline-regexp' is that of +;; `org-outline-regexp'. The only function still directly relying on +;; `outline-regexp' is `org-overview' so that `org-cycle' can do its +;; job when `orgstruct-mode' is active. +(defvar org-outline-regexp "\\*+ " + "Regexp to match Org headlines.") +(defconst org-outline-regexp-bol "^\\*+ " + "Regexp to match Org headlines. +This is similar to `org-outline-regexp' but additionally makes +sure that we are at the beginning of the line.") + +(defconst org-heading-regexp "^\\(\\*+\\)\\(?: +\\(.*?\\)\\)?[ \t]*$" + "Matches an headline, putting stars and text into groups. +Stars are put in group 1 and the trimmed body in group 2.") ;;;###autoload (define-derived-mode org-mode outline-mode "Org" @@ -4948,7 +5137,7 @@ stacked delimiters is N. Escaping delimiters is not possible." (defvar org-match-substring-regexp (concat - "\\([^\\]\\)\\([_^]\\)\\(" + "\\([^\\]\\|^\\)\\([_^]\\)\\(" "\\(" (org-create-multibrace-regexp "{" "}" org-match-sexp-depth) "\\)" "\\|" "\\(" (org-create-multibrace-regexp "(" ")" org-match-sexp-depth) "\\)" @@ -4958,7 +5147,7 @@ stacked delimiters is N. Escaping delimiters is not possible." (defvar org-match-substring-with-braces-regexp (concat - "\\([^\\]\\)\\([_^]\\)\\(" + "\\([^\\]\\|^\\)\\([_^]\\)\\(" "\\(" (org-create-multibrace-regexp "{" "}" org-match-sexp-depth) "\\)" "\\)") "The regular expression matching a sub- or superscript, forcing braces.") @@ -5022,15 +5211,15 @@ This should be called after the variable `org-link-types' has changed." (org-make-link-regexps) -(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-regexp0 "\\(\\([0-9]\\{4\\}\\)-\\([0-9]\\{2\\}\\)-\\([0-9]\\{2\\}\\) *\\([^]+0-9>\r\n -]*\\)\\( \\([0-9]\\{2\\}\\):\\([0-9]\\{2\\}\\)\\)?\\)" +(defconst org-ts-regexp0 "\\(\\([0-9]\\{4\\}\\)-\\([0-9]\\{2\\}\\)-\\([0-9]\\{2\\}\\) *\\([^]+0-9>\r\n -]*\\)\\( \\([0-9]\\{1,2\\}\\):\\([0-9]\\{2\\}\\)\\)?\\)" "Regular expression matching time strings for analysis. This one does not require the space after the date, so it can be used on a string that terminates immediately after the date.") -(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]\\{1,2\\}\\):\\([0-9]\\{2\\}\\)\\)?\\)" "Regular expression matching time strings for analysis.") (defconst org-ts-regexp2 (concat "<" org-ts-regexp1 "[^>\n]\\{0,16\\}>") "Regular expression matching time stamps, with groups.") @@ -5052,7 +5241,7 @@ The time stamps may be either active or inactive.") (defvar org-emph-face nil) (defun org-do-emphasis-faces (limit) - "Run through the buffer and add overlays to emphasized strings." + "Run through the buffer and add overlays to emphasised strings." (let (rtn a) (while (and (not rtn) (re-search-forward org-emph-re limit t)) (if (not (= (char-after (match-beginning 3)) @@ -5154,7 +5343,7 @@ will be prompted for." t))))) (defun org-activate-code (limit) - (if (re-search-forward "^[ \t]*\\(: .*\n?\\)" limit t) + (if (re-search-forward "^[ \t]*\\(:\\(?: .*\\|$\\)\n?\\)" limit t) (progn (org-remove-flyspell-overlays-in (match-beginning 0) (match-end 0)) (remove-text-properties (match-beginning 0) (match-end 0) @@ -5257,9 +5446,8 @@ will be prompted for." '(font-lock-fontified t face org-meta-line)) t) ((or (member dc1 '("begin:" "end:" "caption:" "label:" - "orgtbl:" "tblfm:" "tblname:" "result:" - "results:" "source:" "srcname:" "call:" - "data:" "header:" "headers:")) + "orgtbl:" "tblfm:" "tblname:" "results:" + "call:" "header:" "headers:" "name:")) (and (match-end 4) (equal dc3 "attr"))) (add-text-properties beg (match-end 0) @@ -5541,7 +5729,7 @@ Use `org-reduced-level' to remove the effect of `org-odd-levels'." (defvar org-font-lock-keywords nil) -(defconst org-property-re (org-re "^[ \t]*\\(:\\([-[:alnum:]_]+\\):\\)[ \t]*\\([^ \t\r\n].*\\)") +(defconst org-property-re (org-re "^[ \t]*\\(:\\([-[:alnum:]_]+\\+?\\):\\)[ \t]*\\([^ \t\r\n].*\\)") "Regular expression matching a property line.") (defvar org-font-lock-hook nil @@ -5549,7 +5737,7 @@ Use `org-reduced-level' to remove the effect of `org-odd-levels'." (defvar org-font-lock-set-keywords-hook nil "Functions that can manipulate `org-font-lock-extra-keywords'. -This is called after `org-font-lock-extra-keywords' is defined, but before +This is calles after `org-font-lock-extra-keywords' is defined, but before it is installed to be used by font lock. This can be useful if something needs to be inserted at a specific position in the font-lock sequence.") @@ -5595,14 +5783,17 @@ needs to be inserted at a specific position in the font-lock sequence.") (if (memq 'footnote lk) '(org-activate-footnote-links)) '("^&?%%(.*\\|<%%([^>\n]*?>" (0 'org-sexp-date t)) '(org-hide-wide-columns (0 nil append)) - ;; TODO lines - (list (concat "^\\*+[ \t]+" org-todo-regexp "\\([ \t]\\|$\\)") - '(1 (org-get-todo-face 1) t)) + ;; TODO keyword + (list (format org-heading-keyword-regexp-format + org-todo-regexp) + '(2 (org-get-todo-face 2) t)) ;; DONE (if org-fontify-done-headline - (list (concat "^[*]+ +\\<\\(" - (mapconcat 'regexp-quote org-done-keywords "\\|") - "\\)\\(.*\\)") + (list (format org-heading-keyword-regexp-format + (concat + "\\(" + (mapconcat 'regexp-quote org-done-keywords "\\|") + "\\)")) '(2 'org-headline-done t)) nil) ;; Priorities @@ -5640,9 +5831,11 @@ needs to be inserted at a specific position in the font-lock sequence.") ;; Code '(org-activate-code (1 'org-code t)) ;; COMMENT - (list (concat "^\\*+[ \t]+\\<\\(" org-comment-string - "\\|" org-quote-string "\\)\\>") - '(1 'org-special-keyword t)) + (list (format org-heading-keyword-regexp-format + (concat "\\(" + org-comment-string "\\|" org-quote-string + "\\)")) + '(2 'org-special-keyword t)) '("^#.*" (0 'font-lock-comment-face t)) ;; Blocks and meta lines '(org-fontify-meta-lines-and-blocks) @@ -5661,7 +5854,7 @@ needs to be inserted at a specific position in the font-lock sequence.") (org-set-local 'org-pretty-entities (not org-pretty-entities)) (org-restart-font-lock) (if org-pretty-entities - (message "Entities are displayed as UTF8 characters") + (message "Entities are displayed as UTF8 characers") (save-restriction (widen) (org-decompose-region (point-min) (point-max)) @@ -5673,7 +5866,7 @@ needs to be inserted at a specific position in the font-lock sequence.") (when org-pretty-entities (catch 'match (while (re-search-forward - "\\\\\\([a-zA-Z][a-zA-Z0-9]*\\)\\($\\|[^[:alnum:]\n]\\)" + "\\\\\\(frac[13][24]\\|[a-zA-Z]+\\)\\($\\|[^[:alpha:]\n]\\)" limit t) (if (and (not (org-in-indented-comment-line)) (setq ee (org-entity-get (match-string 1))) @@ -5768,17 +5961,10 @@ If KWD is a number, get the corresponding match group." (inhibit-modification-hooks t) deactivate-mark buffer-file-name buffer-file-truename) (org-decompose-region beg end) - (remove-text-properties - beg end - (if org-indent-mode - ;; also remove line-prefix and wrap-prefix properties - '(mouse-face t keymap t org-linked-text t - invisible t intangible t - line-prefix t wrap-prefix t - org-no-flyspell t org-emphasis t) - '(mouse-face t keymap t org-linked-text t - invisible t intangible t - org-no-flyspell t org-emphasis t))) + (remove-text-properties beg end + '(mouse-face t keymap t org-linked-text t + invisible t intangible t + org-no-flyspell t org-emphasis t)) (org-remove-font-lock-display-properties beg end))) (defconst org-script-display '(((raise -0.3) (height 0.7)) @@ -5915,7 +6101,7 @@ in special contexts. (and limit-level (1- (* limit-level 2))) limit-level))) (org-outline-regexp - (if (not (org-mode-p)) + (if (not (eq major-mode 'org-mode)) outline-regexp (concat "\\*" (if nstars (format "\\{1,%d\\} " nstars) "+ ")))) (bob-special (and org-cycle-global-at-bob (not arg) (bobp) @@ -5978,6 +6164,8 @@ in special contexts. (or (bolp) (not (eq org-cycle-emulate-tab 'exc-hl-bol)))) (org-inlinetask-toggle-visibility)) + ((org-try-cdlatex-tab)) + ;; At an item/headline: delegate to `org-cycle-internal-local'. ((and (or (and org-cycle-include-plain-lists (org-at-item-p)) (save-excursion (beginning-of-line 1) @@ -5993,8 +6181,6 @@ in special contexts. ((org-try-structure-completion)) - ((org-try-cdlatex-tab)) - ((run-hook-with-args-until-success 'org-tab-before-tab-emulation-hook)) @@ -6154,7 +6340,7 @@ With \\[universal-argument] prefix arg, switch to startup visibility. With a numeric prefix, show all headlines up to that level." (interactive "P") (let ((org-cycle-include-plain-lists - (if (org-mode-p) org-cycle-include-plain-lists nil))) + (if (eq major-mode 'org-mode) org-cycle-include-plain-lists nil))) (cond ((integerp arg) (show-all) @@ -6213,6 +6399,9 @@ With a numeric prefix, show all headlines up to that level." (org-cycle-hide-drawers 'all) (org-cycle-show-empty-lines 'all))))) +;; This function uses outline-regexp instead of the more fundamental +;; org-outline-regexp so that org-cycle-global works outside of Org +;; buffers, where outline-regexp is needed. (defun org-overview () "Switch to overview mode, showing only top-level headlines. Really, this shows all headlines with level equal or greater than the level @@ -6222,7 +6411,7 @@ results." (interactive) (let ((level (save-excursion (goto-char (point-min)) - (if (re-search-forward org-outline-regexp-bol nil t) + (if (re-search-forward (concat "^" outline-regexp) nil t) (progn (goto-char (match-beginning 0)) (funcall outline-level)))))) @@ -6334,7 +6523,7 @@ are at least `org-cycle-separator-lines' empty lines before the headline." (org-back-over-empty-lines) (if (save-excursion (goto-char (max (point-min) (1- (point)))) - (org-on-heading-p)) + (org-at-heading-p)) (1- (point)) (point)))) (setq b (match-beginning 1))) @@ -6361,7 +6550,7 @@ open and agenda-wise Org files." (let ((files (mapcar 'expand-file-name (org-agenda-files)))) (dolist (buf (buffer-list)) (with-current-buffer buf - (if (and (org-mode-p) (buffer-file-name)) + (if (and (eq major-mode 'org-mode) (buffer-file-name)) (let ((file (expand-file-name (buffer-file-name)))) (unless (member file files) (push file files)))))) @@ -6377,7 +6566,7 @@ open and agenda-wise Org files." (defun org-cycle-hide-drawers (state) "Re-hide all drawers after a visibility state change." - (when (and (org-mode-p) + (when (and (eq major-mode 'org-mode) (not (memq state '(overview folded contents)))) (save-excursion (let* ((globalp (memq state '(contents all))) @@ -6447,16 +6636,11 @@ DATA should have been made by `org-outline-overlay-data'." (widen) (show-all) (mapc (lambda (c) - (setq o (make-overlay (car c) (cdr c))) - (overlay-put o 'invisible 'outline)) + (outline-flag-region (car c) (cdr c) t)) data))))) ;;; Folding of blocks -(defconst org-block-regexp - "^[ \t]*#\\+begin_?\\([^ \n]+\\)\\(\\([^\n]+\\)\\)?\n\\([^\000]+?\\)#\\+end_?\\1[ \t]*$" - "Regular expression for hiding blocks.") - (defvar org-hide-block-overlays nil "Overlays hiding blocks.") (make-variable-buffer-local 'org-hide-block-overlays) @@ -6651,7 +6835,7 @@ or nil." (save-window-excursion (delete-other-windows) (and (get-buffer "*org-goto*") (kill-buffer "*org-goto*")) - (switch-to-buffer + (org-pop-to-buffer-same-window (condition-case nil (make-indirect-buffer (current-buffer) "*org-goto*") (error (make-indirect-buffer (current-buffer) "*org-goto*")))) @@ -6716,7 +6900,7 @@ or nil." (defun org-goto-left () "Finish `org-goto' by going to the new location." (interactive) - (if (org-on-heading-p) + (if (org-at-heading-p) (progn (beginning-of-line 1) (setq org-goto-selected-point (point) @@ -6727,7 +6911,7 @@ or nil." (defun org-goto-right () "Finish `org-goto' by going to the new location." (interactive) - (if (org-on-heading-p) + (if (org-at-heading-p) (progn (setq org-goto-selected-point (point) org-goto-exit-command 'right) @@ -6776,7 +6960,7 @@ frame is not changed." (setq beg (point) heading (org-get-heading)) (org-end-of-subtree t t) - (if (org-on-heading-p) (backward-char 1)) + (if (org-at-heading-p) (backward-char 1)) (setq end (point))) (if (and (buffer-live-p org-last-indirect-buffer) (not (eq org-indirect-buffer-display 'new-frame)) @@ -6789,7 +6973,7 @@ frame is not changed." (and arg (eq org-indirect-buffer-display 'dedicated-frame))) (select-frame (make-frame)) (delete-other-windows) - (switch-to-buffer ibuf) + (org-pop-to-buffer-same-window ibuf) (org-set-frame-title heading)) ((eq org-indirect-buffer-display 'dedicated-frame) (raise-frame @@ -6798,10 +6982,10 @@ frame is not changed." org-indirect-dedicated-frame) (setq org-indirect-dedicated-frame (make-frame))))) (delete-other-windows) - (switch-to-buffer ibuf) + (org-pop-to-buffer-same-window ibuf) (org-set-frame-title (concat "Indirect: " heading))) ((eq org-indirect-buffer-display 'current-window) - (switch-to-buffer ibuf)) + (org-pop-to-buffer-same-window ibuf)) ((eq org-indirect-buffer-display 'other-window) (pop-to-buffer ibuf)) (t (error "Invalid value"))) @@ -6810,6 +6994,7 @@ frame is not changed." (narrow-to-region beg end) (show-all) (goto-char pos) + (run-hook-with-args 'org-cycle-hook 'all) (and (window-live-p cwin) (select-window cwin)))) (defun org-get-indirect-buffer (&optional buffer) @@ -6853,15 +7038,15 @@ This is important for non-interactive uses of the command." (if (or (= (buffer-size) 0) (and (not (save-excursion (and (ignore-errors (org-back-to-heading invisible-ok)) - (org-on-heading-p)))) - (not (org-in-item-p)))) + (org-at-heading-p)))) + (or force-heading (not (org-in-item-p))))) (progn (insert "\n* ") (run-hooks 'org-insert-heading-hook)) (when (or force-heading (not (org-insert-item))) (let* ((empty-line-p nil) (level nil) - (on-heading (org-on-heading-p)) + (on-heading (org-at-heading-p)) (head (save-excursion (condition-case nil (progn @@ -6874,7 +7059,7 @@ This is important for non-interactive uses of the command." ;; Find a heading level before the inline task (while (and (setq level (org-up-heading-safe)) (>= level org-inlinetask-min-level))) - (if (org-on-heading-p) + (if (org-at-heading-p) (org-back-to-heading invisible-ok) (error "This should not happen"))) (setq empty-line-p (org-previous-line-empty-p)) @@ -6884,7 +7069,7 @@ This is important for non-interactive uses of the command." (blank (if (eq blank-a 'auto) empty-line-p blank-a)) pos hide-previous previous-pos) (cond - ((and (org-on-heading-p) (bolp) + ((and (org-at-heading-p) (bolp) (or (bobp) (save-excursion (backward-char 1) (not (outline-invisible-p))))) ;; insert before the current line @@ -6909,6 +7094,7 @@ This is important for non-interactive uses of the command." (let ((p (point))) (goto-char (point-at-bol)) (and (looking-at org-complex-heading-regexp) + (match-beginning 4) (> p (match-beginning 4))))))) tags pos) (cond @@ -6924,7 +7110,7 @@ This is important for non-interactive uses of the command." (or (org-previous-line-empty-p) (and blank (newline))) (open-line 1)) - ((org-on-heading-p) + ((org-at-heading-p) (when hide-previous (show-children) (org-show-entry)) @@ -6969,14 +7155,15 @@ When NO-TODO is non-nil, don't include TODO keywords." (looking-at org-complex-heading-regexp) (match-string 4)) (no-tags - (looking-at "\\*+[ \t]+\\([^\n\r]*?\\)\\([ \t]+:[[:alnum:]:_@#%]+:[ \t]*\\)?$") + (looking-at (concat org-outline-regexp + "\\(.*?\\)" + "\\(?:[ \t]+:[[:alnum:]:_@#%]+:\\)?[ \t]*$")) (match-string 1)) (no-todo - (looking-at (concat "\\*+[ \t]+" org-todo-regexp " +" - "\\([^\n\r]*?[ \t]+:[[:alnum:]:_@#%]+:[ \t]*\\)?$")) - (match-string 2)) - (t (looking-at "\\*+[ \t]+\\([^\r\n]*\\)") - (match-string 1))))) + (looking-at org-todo-line-regexp) + (match-string 3)) + (t (looking-at org-heading-regexp) + (match-string 2))))) (defun org-heading-components () "Return the components of the current heading. @@ -7058,7 +7245,7 @@ Works for outline headings and for plain lists alike." (interactive "P") (org-insert-heading arg) (cond - ((org-on-heading-p) (org-do-demote)) + ((org-at-heading-p) (org-do-demote)) ((org-at-item-p) (org-indent-item)))) (defun org-insert-todo-subheading (arg) @@ -7067,7 +7254,7 @@ Works for outline headings and for plain lists alike." (interactive "P") (org-insert-todo-heading arg) (cond - ((org-on-heading-p) (org-do-demote)) + ((org-at-heading-p) (org-do-demote)) ((org-at-item-p) (org-indent-item)))) ;;; Promotion and Demotion @@ -7137,9 +7324,8 @@ in the region." The level is the number of stars at the beginning of the headline." (save-excursion (org-with-limited-levels - (ignore-errors - (org-back-to-heading t) - (funcall outline-level))))) + (if (ignore-errors (org-back-to-heading t)) + (funcall outline-level))))) (defun org-get-previous-line-level () "Return the outline depth of the last headline before the current line. @@ -7196,7 +7382,7 @@ in the region." after-change-functions)) (up-head (concat (make-string (org-get-valid-level level -1) ?*) " ")) (diff (abs (- level (length up-head) -1)))) - (if (= level 1) (error "Cannot promote to level 0. UNDO to recover if necessary")) + (if (= level 1) (error "Cannot promote to level 0. UNDO to recover if necessary")) (replace-match up-head nil t) ;; Fixup tag positioning (and org-auto-align-tags (org-set-tags nil t)) @@ -7282,6 +7468,7 @@ After top level, it switches back to sibling level." (not (eobp))) (funcall fun))))) +(defvar org-property-end-re) ; silence byte-compiler (defun org-fixup-indentation (diff) "Change the indentation in the current entry by DIFF. However, if any line in the current entry has no indentation, or if it @@ -7517,15 +7704,15 @@ the inserted text when done." (org-with-limited-levels (let* ((visp (not (outline-invisible-p))) (txt tree) - (^re_ (concat "\\(\\*+\\)[ \t]*")) ;FIXME: Why `concat'? + (^re_ "\\(\\*+\\)[ \t]*") (old-level (if (string-match org-outline-regexp-bol txt) (- (match-end 0) (match-beginning 0) 1) -1)) (force-level (cond (level (prefix-numeric-value level)) ((and (looking-at "[ \t]*$") (string-match - ^re_ (buffer-substring - (point-at-bol) (point)))) + "^\\*+$" (buffer-substring + (point-at-bol) (point)))) (- (match-end 1) (match-beginning 1))) ((and (bolp) (looking-at org-outline-regexp)) @@ -7535,7 +7722,7 @@ the inserted text when done." (condition-case nil (progn (outline-previous-visible-heading 1) - (if (looking-at re) ;FIXME: What's `re'? + (if (looking-at ^re_) (- (match-end 0) (match-beginning 0) 1) 1)) (error 1)))) @@ -7544,7 +7731,7 @@ the inserted text when done." (progn (or (looking-at org-outline-regexp) (outline-next-visible-heading 1)) - (if (looking-at re) ;FIXME: What's `re'? + (if (looking-at ^re_) (- (match-end 0) (match-beginning 0) 1) 1)) (error 1)))) @@ -7562,7 +7749,7 @@ the inserted text when done." (if force-level (delete-region (point-at-bol) (point))) ;; Paste - (beginning-of-line 1) + (beginning-of-line (if (bolp) 1 2)) (unless for-yank (org-back-over-empty-lines)) (setq beg (point)) (and (fboundp 'org-id-paste-tracker) (org-id-paste-tracker txt)) @@ -7663,23 +7850,17 @@ If yes, remember the marker and the distance to BEG." (narrow-to-region (progn (org-back-to-heading t) (point)) (progn (org-end-of-subtree t t) - (if (and (org-on-heading-p) (not (eobp))) (backward-char 1)) + (if (and (org-at-heading-p) (not (eobp))) (backward-char 1)) (point))))))) (defun org-narrow-to-block () "Narrow buffer to the current block." (interactive) - (let ((bstart "^[ \t]*#\\+begin") - (bend "[ \t]*#\\+end") - (case-fold-search t) ;; allow #+BEGIN - b_start b_end) - (if (org-in-regexps-block-p bstart bend) - (progn - (save-excursion (re-search-backward bstart nil t) - (setq b_start (match-beginning 0))) - (save-excursion (re-search-forward bend nil t) - (setq b_end (match-end 0))) - (narrow-to-region b_start b_end)) + (let* ((case-fold-search t) + (blockp (org-between-regexps-p "^[ \t]*#\\+begin_.*" + "^[ \t]*#\\+end_.*"))) + (if blockp + (narrow-to-region (car blockp) (cdr blockp)) (error "Not in a block")))) (eval-when-compile @@ -7713,7 +7894,8 @@ I this way you can spell out a number of instances of a repeating task, and still retain the repeater to cover future instances of the task." (interactive "nNumber of clones to produce: \nsDate shift per clone (e.g. +1w, empty to copy unchanged): ") (let (beg end template task idprop - shift-n shift-what doshift nmin nmax (n-no-remove -1)) + shift-n shift-what doshift nmin nmax (n-no-remove -1) + (drawer-re org-drawer-regexp)) (if (not (and (integerp n) (> n 0))) (error "Invalid number of replications %s" n)) (if (and (setq doshift (and (stringp shift) (string-match "\\S-" shift))) @@ -7734,19 +7916,6 @@ and still retain the repeater to cover future instances of the task." (or (bolp) (insert "\n")) (setq end (point)) (setq template (buffer-substring beg end)) - ;; Remove clocks and empty drawers - (with-temp-buffer - (insert template) - (goto-char (point-min)) - (while (re-search-forward - "^[ \t]*CLOCK:.*$" (save-excursion (org-end-of-subtree t t)) t) - (replace-match "") - (kill-whole-line)) - (goto-char (point-min)) - (while (re-search-forward - (concat "^[ \t]*:" (regexp-opt org-drawers) ":[ \t]*$") nil t) - (mapc (lambda(d) (org-remove-empty-drawer-at d (point))) org-drawers)) - (setq template (buffer-substring (point-min) (point-max)))) (when (and doshift (string-match "<[^<>\n]+ \\+[0-9]+[dwmy][^<>\n]*>" template)) (delete-region beg end) @@ -7759,11 +7928,17 @@ and still retain the repeater to cover future instances of the task." (insert template) (org-mode) (goto-char (point-min)) + (org-show-subtree) (and idprop (if org-clone-delete-id (org-entry-delete nil "ID") (org-id-get-create t))) - (while (re-search-forward org-property-start-re nil t) - (org-remove-empty-drawer-at "PROPERTIES" (point))) + (unless (= n 0) + (while (re-search-forward "^[ \t]*CLOCK:.*$" nil t) + (kill-whole-line)) + (goto-char (point-min)) + (while (re-search-forward drawer-re nil t) + (mapc (lambda (d) + (org-remove-empty-drawer-at d (point))) org-drawers))) (goto-char (point-min)) (when doshift (while (re-search-forward org-ts-regexp-both nil t) @@ -7853,9 +8028,9 @@ WITH-CASE, the sorting considers case as well." (setq end (region-end) what "region") (goto-char (region-beginning)) - (if (not (org-on-heading-p)) (outline-next-heading)) + (if (not (org-at-heading-p)) (outline-next-heading)) (setq start (point))) - ((or (org-on-heading-p) + ((or (org-at-heading-p) (condition-case nil (progn (org-back-to-heading) t) (error nil))) ;; we will sort the children of the current headline (org-back-to-heading) @@ -7871,7 +8046,7 @@ WITH-CASE, the sorting considers case as well." (t ;; we will sort the top-level entries in this file (goto-char (point-min)) - (or (org-on-heading-p) (outline-next-heading)) + (or (org-at-heading-p) (outline-next-heading)) (setq start (point)) (goto-char (point-max)) (beginning-of-line 1) @@ -8335,6 +8510,7 @@ call CMD." (org-back-to-heading t) (setq beg (point) end (org-end-of-subtree t t))) (put-text-property beg end 'org-category cat) + (put-text-property beg end 'org-category-position beg) (goto-char pos))))))) @@ -8525,7 +8701,7 @@ For file links, arg negates `org-context-in-file-links'." (setq cpltxt (concat "file:" file) link (org-make-link cpltxt)))) - ((and (buffer-file-name (buffer-base-buffer)) (org-mode-p)) + ((and (buffer-file-name (buffer-base-buffer)) (eq major-mode 'org-mode)) (setq custom-id (org-entry-get nil "CUSTOM_ID")) (cond ((org-in-regexp "<<\\(.*?\\)>>") @@ -8563,7 +8739,7 @@ For file links, arg negates `org-context-in-file-links'." ;; Add a context search string (when (org-xor org-context-in-file-links arg) (setq txt (cond - ((org-on-heading-p) nil) + ((org-at-heading-p) nil) ((org-region-active-p) (buffer-substring (region-beginning) (region-end))) (t nil))) @@ -8853,7 +9029,7 @@ This command can be called in any mode to insert a link in Org-mode syntax." (org-load-modules-maybe) (org-run-like-in-org-mode 'org-insert-link)) -(defun org-insert-link (&optional complete-file link-location) +(defun org-insert-link (&optional complete-file link-location default-description) "Insert a link. At the prompt, enter the link. Completion can be used to insert any of the link protocol prefixes like @@ -8871,8 +9047,8 @@ be displayed in the buffer instead of the link. If there is already a link at point, this command will allow you to edit link and description parts. -With a \\[universal-argument] prefix, prompts for a file to link to. The file name can -be selected using completion. The path to the file will be relative to the +With a \\[universal-argument] prefix, prompts for a file to link to. The file name can +be selected using completion. The path to the file will be relative to the current directory if the file is in the current directory or a subdirectory. Otherwise, the link will be the absolute path as completed in the minibuffer \(i.e. normally ~/path/to/file). You can configure this behavior using the @@ -8889,7 +9065,10 @@ called with the link target, and the result will be the default link description. If the LINK-LOCATION parameter is non-nil, this value will be -used as the link location instead of reading one interactively." +used as the link location instead of reading one interactively. + +If the DEFAULT-DESCRIPTION parameter is non-nil, this value will +be used as the default description." (interactive "P") (let* ((wcf (current-window-configuration)) (region (if (org-region-active-p) @@ -8930,7 +9109,7 @@ Use TAB to complete link prefixes, then RET for type-specific completion support (reverse org-stored-links) "\n")))) (let ((cw (selected-window))) (select-window (get-buffer-window "*Org Links*" 'visible)) - (with-current-buffer "*Org Links*" (setq truncate-lines) t) + (with-current-buffer "*Org Links*" (setq truncate-lines t)) (unless (pos-visible-in-window-p (point-max)) (org-fit-window-to-buffer)) (and (window-live-p cw) (select-window cw))) @@ -9017,7 +9196,8 @@ Use TAB to complete link prefixes, then RET for type-specific completion support (setq desc path)))) (if org-make-link-description-function - (setq desc (funcall org-make-link-description-function link desc))) + (setq desc (funcall org-make-link-description-function link desc)) + (if default-description (setq desc default-description))) (setq desc (read-string "Description: " desc)) (unless (string-match "\\S-" desc) (setq desc nil)) @@ -9054,10 +9234,12 @@ Use TAB to complete link prefixes, then RET for type-specific completion support (defun org-completing-read (&rest args) "Completing-read with SPACE being a normal character." - (let ((minibuffer-local-completion-map + (let ((enable-recursive-minibuffers t) + (minibuffer-local-completion-map (copy-keymap minibuffer-local-completion-map))) (org-defkey minibuffer-local-completion-map " " 'self-insert-command) (org-defkey minibuffer-local-completion-map "?" 'self-insert-command) + (org-defkey minibuffer-local-completion-map (kbd "C-c !") 'org-time-stamp-inactive) (apply 'org-icompleting-read args))) (defun org-completing-read-no-i (&rest args) @@ -9228,7 +9410,8 @@ This is still an experimental function, your mileage may vary." (org-open-at-point 'in-emacs)) (defun org-open-at-mouse (ev) - "Open file link or URL at mouse." + "Open file link or URL at mouse. +See the docstring of `org-open-file' for details." (interactive "e") (mouse-set-point ev) (if (eq major-mode 'org-agenda-mode) @@ -9289,7 +9472,7 @@ application the system uses for this file type." (setq org-window-config-before-follow-link (current-window-configuration)) (org-remove-occur-highlights nil nil t) (cond - ((and (org-on-heading-p) + ((and (org-at-heading-p) (not (org-in-regexp (concat org-plain-link-re "\\|" org-bracket-link-regexp "\\|" @@ -9337,7 +9520,8 @@ application the system uses for this file type." (save-excursion (when (or (org-in-regexp org-angle-link-re) (org-in-regexp org-plain-link-re)) - (setq type (match-string 1) path (match-string 2)) + (setq type (match-string 1) + path (org-link-unescape (match-string 2))) (throw 'match t))) (save-excursion (when (org-in-regexp (org-re "\\(:[[:alnum:]_@#%:]+\\):[ \t]*$")) @@ -9391,13 +9575,16 @@ application the system uses for this file type." (apply cmd (nreverse args1)))) ((member type '("http" "https" "ftp" "news")) - (browse-url (concat type ":" (org-link-escape - path org-link-escape-chars-browser)))) + (browse-url (concat type ":" (if (org-string-match-p "[[:nonascii:] ]" path) + (org-link-escape + path org-link-escape-chars-browser) + path)))) ((string= type "doi") - (browse-url (concat "http://dx.doi.org/" - (org-link-escape - path org-link-escape-chars-browser)))) + (browse-url (concat "http://dx.doi.org/" (if (org-string-match-p "[[:nonascii:] ]" path) + (org-link-escape + path org-link-escape-chars-browser) + path)))) ((member type '("message")) (browse-url (concat type ":" path))) @@ -9463,7 +9650,8 @@ application the system uses for this file type." ((equal arg '(16)) ''org-occur) (t nil)) ,pos))) - (condition-case nil (eval cmd) + (condition-case nil (let ((org-link-search-inhibit-query t)) + (eval cmd)) (error (progn (widen) (eval cmd)))))) (t @@ -9499,7 +9687,7 @@ there is one, offer it as link number zero." ((equal (length links) 1) (setq link (list (car links)))) ((and (integerp nth) (>= (length links) (if have-zero (1+ nth) nth))) - (setq link (nth (if have-zero nth (1- nth)) links))) + (setq link (list (nth (if have-zero nth (1- nth)) links)))) (t ; we have to select a link (save-excursion (save-window-excursion @@ -9607,13 +9795,18 @@ the window configuration before `org-open-at-point' was called using: (set-window-configuration org-window-config-before-follow-link)") (defvar org-link-search-inhibit-query nil) ;; dynamically scoped -(defun org-link-search (s &optional type avoid-pos) +(defun org-link-search (s &optional type avoid-pos stealth) "Search for a link search option. If S is surrounded by forward slashes, it is interpreted as a regular expression. In org-mode files, this will create an `org-occur' sparse tree. In ordinary files, `occur' will be used to list matches. 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." +in all files. If AVOID-POS is given, ignore matches near that position. + +When optional argument STEALTH is non-nil, do not modify +visibility around point, thus ignoring +`org-show-hierarchy-above', `org-show-following-heading' and +`org-show-siblings' variables." (let ((case-fold-search t) (s0 (mapconcat 'identity (org-split-string s "[ \t\r\n]+") " ")) (markers (concat "\\(?:" (mapconcat (lambda (x) (regexp-quote (car x))) @@ -9664,12 +9857,12 @@ in all files. If AVOID-POS is given, ignore matches near that position." ((string-match "^/\\(.*\\)/$" s) ;; A regular expression (cond - ((org-mode-p) + ((eq major-mode 'org-mode) (org-occur (match-string 1 s))) ;;((eq major-mode 'dired-mode) ;; (grep (concat "grep -n -e '" (match-string 1 s) "' *"))) (t (org-do-occur (match-string 1 s))))) - ((and (org-mode-p) org-link-search-must-match-exact-headline) + ((and (eq major-mode 'org-mode) org-link-search-must-match-exact-headline) (and (equal (string-to-char s) ?*) (setq s (substring s 1))) (goto-char (point-min)) (cond @@ -9737,7 +9930,9 @@ in all files. If AVOID-POS is given, ignore matches near that position." (goto-char (match-beginning 1)) (goto-char pos) (error "No match")))))) - (and (org-mode-p) (org-show-context 'link-search)) + (and (eq major-mode 'org-mode) + (not stealth) + (org-show-context 'link-search)) type)) (defun org-search-not-self (group &rest args) @@ -9833,7 +10028,7 @@ onto the ring." (setq p org-mark-ring)) (setq org-mark-ring-last-goto p) (setq m (car p)) - (switch-to-buffer (marker-buffer m)) + (org-pop-to-buffer-same-window (marker-buffer m)) (goto-char m) (if (or (outline-invisible-p) (org-invisible-p2)) (org-show-context 'mark-goto)))) @@ -9891,6 +10086,10 @@ Optional LINE specifies a line to go to, optional SEARCH a string to search for. If LINE or SEARCH is given, the file will be opened in Emacs, unless an entry from org-file-apps that makes use of groups in a regexp matches. + +If you want to change the way frames are used when following a +link, please customize `org-link-frame-setup'. + If the file does not exist, an error is thrown." (let* ((file (if (equal path "") buffer-file-name @@ -9940,8 +10139,8 @@ If the file does not exist, an error is thrown." match) (progn (setq in-emacs (or in-emacs line search)) nil))) ; if we have no match in apps-dlink, - ; always open the file in emacs if line or search - ; is given (for backwards compatibility) + ; always open the file in emacs if line or search + ; is given (for backwards compatibility) (assoc-default dfile (org-apps-regexp-alist apps a-m-a-p) 'string-match) (cdr (assoc ext apps)) @@ -10002,7 +10201,7 @@ If the file does not exist, an error is thrown." (set-match-data link-match-data) (eval cmd)))) (t (funcall (cdr (assq 'file org-link-frame-setup)) file))) - (and (org-mode-p) (eq old-mode 'org-mode) + (and (eq major-mode 'org-mode) (eq old-mode 'org-mode) (or (not (equal old-buffer (current-buffer))) (not (equal old-pos (point)))) (org-mark-ring-push old-pos old-buffer)))) @@ -10215,7 +10414,8 @@ on the system \"/user@host:\"." (or (funcall org-refile-target-verify-function) (throw 'next t)))) (when (and (looking-at org-complex-heading-regexp) - (not (member (match-string 4) excluded-entries))) + (not (member (match-string 4) excluded-entries)) + (match-string 4)) (setq level (org-reduced-level (- (match-end 1) (match-beginning 1))) txt (org-link-display-format (match-string 4)) @@ -10325,7 +10525,7 @@ such as the file name." (interactive "P") (let* ((bfn (buffer-file-name (buffer-base-buffer))) (case-fold-search nil) - (path (and (org-mode-p) (org-get-outline-path)))) + (path (and (eq major-mode 'org-mode) (org-get-outline-path)))) (if current (setq path (append path (save-excursion (org-back-to-heading t) @@ -10391,8 +10591,10 @@ prefix argument (`C-u C-u C-u C-c C-w')." (goto-char region-start) (or (bolp) (goto-char (point-at-bol))) (setq region-start (point)) - (unless (org-kill-is-subtree-p - (buffer-substring region-start region-end)) + (unless (or (org-kill-is-subtree-p + (buffer-substring region-start region-end)) + (prog1 org-refile-active-region-within-subtree + (org-toggle-heading))) (error "The region is not a (sequence of) subtree(s)"))) (if (equal goto '(16)) (org-refile-goto-last-stored) @@ -10407,10 +10609,20 @@ prefix argument (`C-u C-u C-u C-c C-w')." (marker-position org-clock-hd-marker))) (setq goto nil))) (setq it (or rfloc - (save-excursion - (org-refile-get-location - (if goto "Goto" "Refile to") default-buffer - org-refile-allow-creating-parent-nodes))))) + (let (heading-text) + (save-excursion + (unless goto + (org-back-to-heading t) + (setq heading-text + (nth 4 (org-heading-components)))) + (org-refile-get-location + (cond (goto "Goto") + (regionp "Refile region to") + (t (concat "Refile subtree \"" + heading-text "\" to"))) + default-buffer + org-refile-allow-creating-parent-nodes + goto)))))) (setq file (nth 1 it) re (nth 2 it) pos (nth 3 it)) @@ -10429,7 +10641,7 @@ prefix argument (`C-u C-u C-u C-c C-w')." (find-file-noselect file))) (if goto (progn - (switch-to-buffer nbuf) + (org-pop-to-buffer-same-window nbuf) (goto-char pos) (org-show-context 'org-goto)) (if regionp @@ -10489,16 +10701,20 @@ prefix argument (`C-u C-u C-u C-c C-w')." (bookmark-jump "org-refile-last-stored") (message "This is the location of the last refile")) -(defun org-refile-get-location (&optional prompt default-buffer new-nodes) +(defun org-refile-get-location (&optional prompt default-buffer new-nodes + no-exclude) "Prompt the user for a refile location, using PROMPT. PROMPT should not be suffixed with a colon and a space, because this function appends the default value from -`org-refile-history' automatically, if that is not empty." +`org-refile-history' automatically, if that is not empty. +When NO-EXCLUDE is set, do not exclude headlines in the current subtree, +this is used for the GOTO interface." (let ((org-refile-targets org-refile-targets) (org-refile-use-outline-path org-refile-use-outline-path) excluded-entries) (when (and (eq major-mode 'org-mode) - (not org-refile-use-cache)) + (not org-refile-use-cache) + (not no-exclude)) (org-map-tree (lambda() (setq excluded-entries @@ -10776,7 +10992,7 @@ Error if there is no such block at point." "Update all dynamic blocks in the buffer. This function can be used in a hook." (interactive) - (when (org-mode-p) + (when (eq major-mode 'org-mode) (org-map-dblocks 'org-update-dblock))) @@ -10795,10 +11011,8 @@ This function can be used in a hook." "BEGIN_CENTER" "END_CENTER" "BEGIN_SRC" "END_SRC" "BEGIN_RESULT" "END_RESULT" - "SOURCE:" "SRCNAME:" "FUNCTION:" - "RESULTS:" "DATA:" + "NAME:" "RESULTS:" "HEADER:" "HEADERS:" - "BABEL:" "CATEGORY:" "COLUMNS:" "PROPERTY:" "CAPTION:" "LABEL:" "SETUPFILE:" @@ -10897,13 +11111,16 @@ expands them." (save-excursion (org-back-to-heading) (let (case-fold-search) - (if (looking-at (concat org-outline-regexp - "\\( *\\<" org-comment-string "\\>[ \t]*\\)")) - (replace-match "" t t nil 1) - (if (looking-at org-outline-regexp) - (progn - (goto-char (match-end 0)) - (insert org-comment-string " "))))))) + (cond + ((looking-at (format org-heading-keyword-regexp-format + org-comment-string)) + (goto-char (match-end 1)) + (looking-at (concat " +" org-comment-string)) + (replace-match "" t t) + (when (eolp) (insert " "))) + ((looking-at org-outline-regexp) + (goto-char (match-end 0)) + (insert org-comment-string " ")))))) (defvar org-last-todo-state-is-todo nil "This is non-nil when the last TODO state change led to a TODO state. @@ -10929,26 +11146,21 @@ nil or a string to be used for the todo mark." ) (let* ((ct (org-current-time)) (dct (decode-time ct)) (ct1 - (if (< (nth 2 dct) org-extend-today-until) + (if (and org-use-effective-time + (< (nth 2 dct) org-extend-today-until)) (encode-time 0 59 23 (1- (nth 3 dct)) (nth 4 dct) (nth 5 dct)) ct))) ct1)) (defun org-todo-yesterday (&optional arg) - "Like `org-todo' but the time of change will be 23:59 of yesterday" + "Like `org-todo' but the time of change will be 23:59 of yesterday." (interactive "P") - (let* ((hour (third (decode-time - (org-current-time)))) - (org-extend-today-until (1+ hour))) - (org-todo arg))) - -(defun org-agenda-todo-yesterday (&optional arg) - "Like `org-agenda-todo' but the time of change will be 23:59 of yesterday" - (interactive "P") - (let* ((hour (third (decode-time - (org-current-time)))) - (org-extend-today-until (1+ hour))) - (org-agenda-todo arg))) + (if (eq major-mode 'org-agenda-mode) + (apply 'org-agenda-todo-yesterday arg) + (let* ((hour (third (decode-time + (org-current-time)))) + (org-extend-today-until (1+ hour))) + (org-todo arg)))) (defun org-todo (&optional arg) "Change the TODO state of an item. @@ -10969,6 +11181,7 @@ With numeric prefix arg, switch to that state. With a double \\[universal-argument] prefix, switch to the next set of TODO \ keywords (nextset). With a triple \\[universal-argument] prefix, circumvent any state blocking. +With a numeric prefix arg of 0, inhibit note taking for the change. For calling through lisp, arg is also interpreted in the following way: 'none -> empty state @@ -10979,191 +11192,202 @@ For calling through lisp, arg is also interpreted in the following way: \"WAITING\" -> switch to the specified keyword, but only if it really is a member of `org-todo-keywords'." (interactive "P") - (if (equal arg '(16)) (setq arg 'nextset)) - (let ((org-blocker-hook org-blocker-hook) - (case-fold-search nil)) - (when (equal arg '(64)) - (setq arg nil org-blocker-hook nil)) - (when (and org-blocker-hook - (or org-inhibit-blocking - (org-entry-get nil "NOBLOCKING"))) - (setq org-blocker-hook nil)) - (save-excursion - (catch 'exit - (org-back-to-heading t) - (if (looking-at org-outline-regexp) (goto-char (1- (match-end 0)))) - (or (looking-at (concat " +" org-todo-regexp "\\( +\\|$\\)")) - (looking-at " *")) - (let* ((match-data (match-data)) - (startpos (point-at-bol)) - (logging (save-match-data (org-entry-get nil "LOGGING" t t))) - (org-log-done org-log-done) - (org-log-repeat org-log-repeat) - (org-todo-log-states org-todo-log-states) - (this (match-string 1)) - (hl-pos (match-beginning 0)) - (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-1)) - (tail (cdr member)) - (state (cond - ((and org-todo-key-trigger - (or (and (equal arg '(4)) - (eq org-use-fast-todo-selection 'prefix)) - (and (not arg) org-use-fast-todo-selection - (not (eq org-use-fast-todo-selection - 'prefix))))) - ;; Use fast selection - (org-fast-todo-selection)) - ((and (equal arg '(4)) - (or (not org-use-fast-todo-selection) - (not org-todo-key-trigger))) - ;; Read a state with completion - (org-icompleting-read - "State: " (mapcar (lambda(x) (list x)) - org-todo-keywords-1) - nil t)) - ((eq arg 'right) - (if this - (if tail (car tail) nil) - (car org-todo-keywords-1))) - ((eq arg 'left) - (if (equal member org-todo-keywords-1) - nil + (if (and (org-region-active-p) org-loop-over-headlines-in-active-region) + (let ((cl (if (eq org-loop-over-headlines-in-active-region 'start-level) + 'region-start-level 'region)) + org-loop-over-headlines-in-active-region) + (org-map-entries + `(org-todo ,arg) + org-loop-over-headlines-in-active-region + cl (if (outline-invisible-p) (org-end-of-subtree nil t)))) + (if (equal arg '(16)) (setq arg 'nextset)) + (let ((org-blocker-hook org-blocker-hook) + (case-fold-search nil)) + (when (equal arg '(64)) + (setq arg nil org-blocker-hook nil)) + (when (and org-blocker-hook + (or org-inhibit-blocking + (org-entry-get nil "NOBLOCKING"))) + (setq org-blocker-hook nil)) + (save-excursion + (catch 'exit + (org-back-to-heading t) + (if (looking-at org-outline-regexp) (goto-char (1- (match-end 0)))) + (or (looking-at (concat " +" org-todo-regexp "\\( +\\|[ \t]*$\\)")) + (looking-at "\\(?: *\\|[ \t]*$\\)")) + (let* ((match-data (match-data)) + (startpos (point-at-bol)) + (logging (save-match-data (org-entry-get nil "LOGGING" t t))) + (org-log-done org-log-done) + (org-log-repeat org-log-repeat) + (org-todo-log-states org-todo-log-states) + (org-inhibit-logging + (if (equal arg 0) + (progn (setq arg nil) 'note) org-inhibit-logging)) + (this (match-string 1)) + (hl-pos (match-beginning 0)) + (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-1)) + (tail (cdr member)) + (state (cond + ((and org-todo-key-trigger + (or (and (equal arg '(4)) + (eq org-use-fast-todo-selection 'prefix)) + (and (not arg) org-use-fast-todo-selection + (not (eq org-use-fast-todo-selection + 'prefix))))) + ;; Use fast selection + (org-fast-todo-selection)) + ((and (equal arg '(4)) + (or (not org-use-fast-todo-selection) + (not org-todo-key-trigger))) + ;; Read a state with completion + (org-icompleting-read + "State: " (mapcar (lambda(x) (list x)) + org-todo-keywords-1) + nil t)) + ((eq arg 'right) (if this - (nth (- (length org-todo-keywords-1) - (length tail) 2) - org-todo-keywords-1) - (org-last org-todo-keywords-1)))) - ((and (eq org-use-fast-todo-selection t) (equal arg '(4)) - (setq arg nil))) ; hack to fall back to cycling - (arg - ;; user or caller requests a specific state - (cond - ((equal arg "") nil) - ((eq arg 'none) nil) - ((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))) + (if tail (car tail) nil) + (car org-todo-keywords-1))) + ((eq arg 'left) + (if (equal member org-todo-keywords-1) + nil + (if this + (nth (- (length org-todo-keywords-1) + (length tail) 2) + org-todo-keywords-1) + (org-last org-todo-keywords-1)))) + ((and (eq org-use-fast-todo-selection t) (equal arg '(4)) + (setq arg nil))) ; hack to fall back to cycling + (arg + ;; user or caller requests a specific state + (cond + ((equal arg "") nil) + ((eq arg 'none) nil) + ((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)))) - ((car (member arg org-todo-keywords-1))) - ((stringp arg) - (error "State `%s' not valid in this file" arg)) - ((nth (1- (prefix-numeric-value arg)) - 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 - ((memq interpret '(type priority)) - (if (eq this-command last-command) - (car tail) - (if (> (length tail) 0) - (or done-word (car org-done-keywords)) - nil))) - (t - (car tail)))) - (state (or - (run-hook-with-args-until-success - 'org-todo-get-default-hook state last-state) - state)) - (next (if state (concat " " state " ") " ")) - (change-plist (list :type 'todo-state-change :from this :to state - :position startpos)) - dolog now-done-p) - (when org-blocker-hook + (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))) + ((stringp arg) + (error "State `%s' not valid in this file" arg)) + ((nth (1- (prefix-numeric-value arg)) + 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 + ((memq interpret '(type priority)) + (if (eq this-command last-command) + (car tail) + (if (> (length tail) 0) + (or done-word (car org-done-keywords)) + nil))) + (t + (car tail)))) + (state (or + (run-hook-with-args-until-success + 'org-todo-get-default-hook state last-state) + state)) + (next (if state (concat " " state " ") " ")) + (change-plist (list :type 'todo-state-change :from this :to state + :position startpos)) + dolog now-done-p) + (when org-blocker-hook + (setq org-last-todo-state-is-todo + (not (member this org-done-keywords))) + (unless (save-excursion + (save-match-data + (org-with-wide-buffer + (run-hook-with-args-until-failure + 'org-blocker-hook change-plist)))) + (if (org-called-interactively-p 'interactive) + (error "TODO state change from %s to %s blocked" this state) + ;; fail silently + (message "TODO state change from %s to %s blocked" this state) + (throw 'exit nil)))) + (store-match-data match-data) + (replace-match next t t) + (unless (pos-visible-in-window-p hl-pos) + (message "TODO state changed to %s" (org-trim next))) + (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 %d/%d: %s" + (- (length org-todo-sets) -1 + (length (memq (assoc state org-todo-sets) org-todo-sets))) + (length org-todo-sets) + (mapconcat 'identity (assoc state org-todo-sets) " "))) (setq org-last-todo-state-is-todo - (not (member this org-done-keywords))) - (unless (save-excursion - (save-match-data - (org-with-wide-buffer - (run-hook-with-args-until-failure - 'org-blocker-hook change-plist)))) - (if (org-called-interactively-p 'interactive) - (error "TODO state change from %s to %s blocked" this state) - ;; fail silently - (message "TODO state change from %s to %s blocked" this state) - (throw 'exit nil)))) - (store-match-data match-data) - (replace-match next t t) - (unless (pos-visible-in-window-p hl-pos) - (message "TODO state changed to %s" (org-trim next))) - (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 %d/%d: %s" - (- (length org-todo-sets) -1 - (length (memq (assoc state org-todo-sets) org-todo-sets))) - (length org-todo-sets) - (mapconcat 'identity (assoc state org-todo-sets) " "))) - (setq org-last-todo-state-is-todo - (not (member state org-done-keywords))) - (setq now-done-p (and (member state org-done-keywords) - (not (member this org-done-keywords)))) - (and logging (org-local-logging logging)) - (when (and (or org-todo-log-states org-log-done) - (not (eq org-inhibit-logging t)) - (not (memq arg '(nextset previousset)))) - ;; we need to look at recording a time and note - (setq dolog (or (nth 1 (assoc state org-todo-log-states)) - (nth 2 (assoc this org-todo-log-states)))) - (if (and (eq dolog 'note) (eq org-inhibit-logging 'note)) - (setq dolog 'time)) - (when (and state - (member state org-not-done-keywords) - (not (member this org-not-done-keywords))) - ;; This is now a todo state and was not one before - ;; If there was a CLOSED time stamp, get rid of it. - (org-add-planning-info nil nil 'closed)) - (when (and now-done-p org-log-done) - ;; It is now done, and it was not done before - (org-add-planning-info 'closed (org-current-effective-time)) - (if (and (not dolog) (eq 'note org-log-done)) - (org-add-log-setup 'done state this 'findpos 'note))) - (when (and state dolog) - ;; This is a non-nil state, and we need to log it - (org-add-log-setup 'state state this 'findpos dolog))) - ;; Fixup tag positioning - (org-todo-trigger-tag-changes state) - (and org-auto-align-tags (not org-setting-tags) (org-set-tags nil t)) - (when org-provide-todo-statistics - (org-update-parent-todo-statistics)) - (run-hooks 'org-after-todo-state-change-hook) - (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) - ;; Do we need to trigger a repeat? - (when now-done-p - (when (boundp 'org-agenda-headline-snapshot-before-repeat) - ;; This is for the agenda, take a snapshot of the headline. - (save-match-data - (setq org-agenda-headline-snapshot-before-repeat - (org-get-heading)))) - (org-auto-repeat-maybe state)) - ;; Fixup cursor location if close to the keyword - (if (and (outline-on-heading-p) - (not (bolp)) - (save-excursion (beginning-of-line 1) - (looking-at org-todo-line-regexp)) - (< (point) (+ 2 (or (match-end 2) (match-end 1))))) - (progn - (goto-char (or (match-end 2) (match-end 1))) - (and (looking-at " ") (just-one-space)))) - (when org-trigger-hook - (save-excursion - (run-hook-with-args 'org-trigger-hook change-plist)))))))) + (not (member state org-done-keywords))) + (setq now-done-p (and (member state org-done-keywords) + (not (member this org-done-keywords)))) + (and logging (org-local-logging logging)) + (when (and (or org-todo-log-states org-log-done) + (not (eq org-inhibit-logging t)) + (not (memq arg '(nextset previousset)))) + ;; we need to look at recording a time and note + (setq dolog (or (nth 1 (assoc state org-todo-log-states)) + (nth 2 (assoc this org-todo-log-states)))) + (if (and (eq dolog 'note) (eq org-inhibit-logging 'note)) + (setq dolog 'time)) + (when (and state + (member state org-not-done-keywords) + (not (member this org-not-done-keywords))) + ;; This is now a todo state and was not one before + ;; If there was a CLOSED time stamp, get rid of it. + (org-add-planning-info nil nil 'closed)) + (when (and now-done-p org-log-done) + ;; It is now done, and it was not done before + (org-add-planning-info 'closed (org-current-effective-time)) + (if (and (not dolog) (eq 'note org-log-done)) + (org-add-log-setup 'done state this 'findpos 'note))) + (when (and state dolog) + ;; This is a non-nil state, and we need to log it + (org-add-log-setup 'state state this 'findpos dolog))) + ;; Fixup tag positioning + (org-todo-trigger-tag-changes state) + (and org-auto-align-tags (not org-setting-tags) (org-set-tags nil t)) + (when org-provide-todo-statistics + (org-update-parent-todo-statistics)) + (run-hooks 'org-after-todo-state-change-hook) + (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) + ;; Do we need to trigger a repeat? + (when now-done-p + (when (boundp 'org-agenda-headline-snapshot-before-repeat) + ;; This is for the agenda, take a snapshot of the headline. + (save-match-data + (setq org-agenda-headline-snapshot-before-repeat + (org-get-heading)))) + (org-auto-repeat-maybe state)) + ;; Fixup cursor location if close to the keyword + (if (and (outline-on-heading-p) + (not (bolp)) + (save-excursion (beginning-of-line 1) + (looking-at org-todo-line-regexp)) + (< (point) (+ 2 (or (match-end 2) (match-end 1))))) + (progn + (goto-char (or (match-end 2) (match-end 1))) + (and (looking-at " ") (just-one-space)))) + (when org-trigger-hook + (save-excursion + (run-hook-with-args 'org-trigger-hook change-plist))))))))) (defun org-block-todo-from-children-or-siblings-or-parent (change-plist) "Block turning an entry into a TODO, using the hierarchy. @@ -11217,7 +11441,7 @@ changes. Such blocking occurs when: (forward-line 1) (re-search-forward org-not-done-heading-regexp pos t)) (throw 'dont-block nil)) ; block, there is an older sibling not done. - ;; Search further up the hierarchy, to see if an ancestor is blocked + ;; Search further up the hierarchy, to see if an anchestor is blocked (while t (goto-char parent-pos) (if (not (looking-at org-not-done-heading-regexp)) @@ -11291,8 +11515,11 @@ changes because there are unchecked boxes in this entry." (outline-next-heading) (setq end (point)) (goto-char beg) - (if (re-search-forward "^[ \t]*\\([-+*]\\|[0-9]+[.)]\\)[ \t]+\\[[- ]\\]" - end t) + (if (org-list-search-forward + (concat (org-item-beginning-re) + "\\(?:\\[@\\(?:start:\\)?\\([0-9]+\\|[A-Za-z]\\)\\][ \t]*\\)?" + "\\[[- ]\\]") + end t) (progn (if (boundp 'org-blocked-by-checkboxes) (setq org-blocked-by-checkboxes t)) @@ -11319,17 +11546,17 @@ This should be called with the cursor in a line with a statistics cookie." (progn (org-update-checkbox-count 'all) (org-map-entries 'org-update-parent-todo-statistics)) - (if (not (org-on-heading-p)) + (if (not (org-at-heading-p)) (org-update-checkbox-count) (let ((pos (move-marker (make-marker) (point))) end l1 l2) (ignore-errors (org-back-to-heading t)) - (if (not (org-on-heading-p)) + (if (not (org-at-heading-p)) (org-update-checkbox-count) (setq l1 (org-outline-level)) (setq end (save-excursion (outline-next-heading) - (if (org-on-heading-p) (setq l2 (org-outline-level))) + (if (org-at-heading-p) (setq l2 (org-outline-level))) (point))) (if (and (save-excursion (re-search-forward @@ -11724,39 +11951,47 @@ With argument REMOVE, remove any deadline from the item. With argument TIME, set the deadline at the corresponding date. TIME can either be an Org date like \"2011-07-24\" or a delta like \"+2d\"." (interactive "P") - (let* ((old-date (org-entry-get nil "DEADLINE")) - (repeater (and old-date - (string-match - "\\([.+-]+[0-9]+[dwmy]\\(?:[/ ][-+]?[0-9]+[dwmy]\\)?\\) ?" - old-date) - (match-string 1 old-date)))) - (if remove - (progn - (when (and old-date org-log-redeadline) - (org-add-log-setup 'deldeadline nil old-date 'findpos - org-log-redeadline)) - (org-remove-timestamp-with-keyword org-deadline-string) - (message "Item no longer has a deadline.")) - (org-add-planning-info 'deadline time 'closed) - (when (and old-date org-log-redeadline - (not (equal old-date - (substring org-last-inserted-timestamp 1 -1)))) - (org-add-log-setup 'redeadline nil old-date 'findpos - org-log-redeadline)) - (when repeater - (save-excursion - (org-back-to-heading t) - (when (re-search-forward (concat org-deadline-string " " - org-last-inserted-timestamp) - (save-excursion - (outline-next-heading) (point)) t) - (goto-char (1- (match-end 0))) - (insert " " repeater) - (setq org-last-inserted-timestamp - (concat (substring org-last-inserted-timestamp 0 -1) - " " repeater - (substring org-last-inserted-timestamp -1)))))) - (message "Deadline on %s" org-last-inserted-timestamp)))) + (if (and (org-region-active-p) org-loop-over-headlines-in-active-region) + (let ((cl (if (eq org-loop-over-headlines-in-active-region 'start-level) + 'region-start-level 'region)) + org-loop-over-headlines-in-active-region) + (org-map-entries + `(org-deadline ',remove ,time) + org-loop-over-headlines-in-active-region + cl (if (outline-invisible-p) (org-end-of-subtree nil t)))) + (let* ((old-date (org-entry-get nil "DEADLINE")) + (repeater (and old-date + (string-match + "\\([.+-]+[0-9]+[dwmy]\\(?:[/ ][-+]?[0-9]+[dwmy]\\)?\\) ?" + old-date) + (match-string 1 old-date)))) + (if remove + (progn + (when (and old-date org-log-redeadline) + (org-add-log-setup 'deldeadline nil old-date 'findpos + org-log-redeadline)) + (org-remove-timestamp-with-keyword org-deadline-string) + (message "Item no longer has a deadline.")) + (org-add-planning-info 'deadline time 'closed) + (when (and old-date org-log-redeadline + (not (equal old-date + (substring org-last-inserted-timestamp 1 -1)))) + (org-add-log-setup 'redeadline nil old-date 'findpos + org-log-redeadline)) + (when repeater + (save-excursion + (org-back-to-heading t) + (when (re-search-forward (concat org-deadline-string " " + org-last-inserted-timestamp) + (save-excursion + (outline-next-heading) (point)) t) + (goto-char (1- (match-end 0))) + (insert " " repeater) + (setq org-last-inserted-timestamp + (concat (substring org-last-inserted-timestamp 0 -1) + " " repeater + (substring org-last-inserted-timestamp -1)))))) + (message "Deadline on %s" org-last-inserted-timestamp))))) (defun org-schedule (&optional remove time) "Insert the SCHEDULED: string with a timestamp to schedule a TODO item. @@ -11764,39 +11999,47 @@ With argument REMOVE, remove any scheduling date from the item. With argument TIME, scheduled at the corresponding date. TIME can either be an Org date like \"2011-07-24\" or a delta like \"+2d\"." (interactive "P") - (let* ((old-date (org-entry-get nil "SCHEDULED")) - (repeater (and old-date - (string-match - "\\([.+-]+[0-9]+[dwmy]\\(?:[/ ][-+]?[0-9]+[dwmy]\\)?\\) ?" - old-date) - (match-string 1 old-date)))) - (if remove - (progn - (when (and old-date org-log-reschedule) - (org-add-log-setup 'delschedule nil old-date 'findpos - org-log-reschedule)) - (org-remove-timestamp-with-keyword org-scheduled-string) - (message "Item is no longer scheduled.")) - (org-add-planning-info 'scheduled time 'closed) - (when (and old-date org-log-reschedule - (not (equal old-date - (substring org-last-inserted-timestamp 1 -1)))) - (org-add-log-setup 'reschedule nil old-date 'findpos - org-log-reschedule)) - (when repeater - (save-excursion - (org-back-to-heading t) - (when (re-search-forward (concat org-scheduled-string " " - org-last-inserted-timestamp) - (save-excursion - (outline-next-heading) (point)) t) - (goto-char (1- (match-end 0))) - (insert " " repeater) - (setq org-last-inserted-timestamp - (concat (substring org-last-inserted-timestamp 0 -1) - " " repeater - (substring org-last-inserted-timestamp -1)))))) - (message "Scheduled to %s" org-last-inserted-timestamp)))) + (if (and (org-region-active-p) org-loop-over-headlines-in-active-region) + (let ((cl (if (eq org-loop-over-headlines-in-active-region 'start-level) + 'region-start-level 'region)) + org-loop-over-headlines-in-active-region) + (org-map-entries + `(org-schedule ',remove ,time) + org-loop-over-headlines-in-active-region + cl (if (outline-invisible-p) (org-end-of-subtree nil t)))) + (let* ((old-date (org-entry-get nil "SCHEDULED")) + (repeater (and old-date + (string-match + "\\([.+-]+[0-9]+[dwmy]\\(?:[/ ][-+]?[0-9]+[dwmy]\\)?\\) ?" + old-date) + (match-string 1 old-date)))) + (if remove + (progn + (when (and old-date org-log-reschedule) + (org-add-log-setup 'delschedule nil old-date 'findpos + org-log-reschedule)) + (org-remove-timestamp-with-keyword org-scheduled-string) + (message "Item is no longer scheduled.")) + (org-add-planning-info 'scheduled time 'closed) + (when (and old-date org-log-reschedule + (not (equal old-date + (substring org-last-inserted-timestamp 1 -1)))) + (org-add-log-setup 'reschedule nil old-date 'findpos + org-log-reschedule)) + (when repeater + (save-excursion + (org-back-to-heading t) + (when (re-search-forward (concat org-scheduled-string " " + org-last-inserted-timestamp) + (save-excursion + (outline-next-heading) (point)) t) + (goto-char (1- (match-end 0))) + (insert " " repeater) + (setq org-last-inserted-timestamp + (concat (substring org-last-inserted-timestamp 0 -1) + " " repeater + (substring org-last-inserted-timestamp -1)))))) + (message "Scheduled to %s" org-last-inserted-timestamp))))) (defun org-get-scheduled-time (pom &optional inherit) "Get the scheduled time as a time tuple, of a format suitable @@ -11861,9 +12104,8 @@ be removed." default-input (and ts (org-get-compact-tod ts)))))) (when what (setq time - (if (and (stringp time) - (string-match "^[-+]+[0-9]" time)) - ;; This is a relative time, set the proper date + (if (stringp time) + ;; This is a string (relative or absolute), set proper date (apply 'encode-time (org-read-date-analyze time default-time (decode-time default-time))) @@ -11914,7 +12156,7 @@ be removed." (re-search-forward org-closed-time-regexp nil t))) (replace-match "") (if (looking-at "--+<[^>]+>") (replace-match "")))) - (and (looking-at "^[ \t]+") (replace-match "")) + (and (looking-at "[ \t]+") (replace-match "")) (and org-adapt-indentation (bolp) (org-indent-to-column col)) (when what (insert @@ -12041,7 +12283,7 @@ EXTRA is additional text that will be inserted into the notes buffer." (setq org-log-note-window-configuration (current-window-configuration)) (delete-other-windows) (move-marker org-log-note-return-to (point)) - (switch-to-buffer (marker-buffer org-log-note-marker)) + (org-pop-to-buffer-same-window (marker-buffer org-log-note-marker)) (goto-char org-log-note-marker) (org-switch-to-buffer-other-window "*Org Note*") (erase-buffer) @@ -12071,7 +12313,8 @@ EXTRA is additional text that will be inserted into the notes buffer." "this entry") (t (error "This should not happen"))))) (if org-log-note-extra (insert org-log-note-extra)) - (org-set-local 'org-finish-function 'org-store-log-note))) + (org-set-local 'org-finish-function 'org-store-log-note) + (run-hooks 'org-log-buffer-setup-hook))) (defvar org-note-abort nil) ; dynamically scoped (defun org-store-log-note () @@ -12097,6 +12340,12 @@ EXTRA is additional text that will be inserted into the notes buffer." (cons "%T" (format-time-string (org-time-stamp-format 'long nil) org-log-note-effective-time)) + (cons "%d" (format-time-string + (org-time-stamp-format nil 'inactive) + org-log-note-effective-time)) + (cons "%D" (format-time-string + (org-time-stamp-format nil nil) + org-log-note-effective-time)) (cons "%s" (if org-log-note-state (concat "\"" org-log-note-state "\"") "")) @@ -12175,7 +12424,7 @@ b Show deadlines and scheduled items before a date. a Show deadlines and scheduled items after a date." (interactive "P") (let (ans kwd value) - (message "Sparse tree: [r]egexp [/]regexp [t]odo [T]odo-kwd [m]atch [p]roperty\n [d]eadlines [b]efore-date [a]fter-date") + (message "Sparse tree: [r]egexp [/]regexp [t]odo [T]odo-kwd [m]atch [p]roperty\n [d]eadlines [b]efore-date [a]fter-date [D]ates range") (setq ans (read-char-exclusive)) (cond ((equal ans ?d) @@ -12184,6 +12433,8 @@ a Show deadlines and scheduled items after a date." (call-interactively 'org-check-before-date)) ((equal ans ?a) (call-interactively 'org-check-after-date)) + ((equal ans ?D) + (call-interactively 'org-check-dates-range)) ((equal ans ?t) (org-show-todo-tree nil)) ((equal ans ?T) @@ -12286,9 +12537,9 @@ starting point when no match is found." (defun org-show-context (&optional key) "Make sure point and context are visible. How much context is shown depends upon the variables -`org-show-hierarchy-above', `org-show-following-heading'. and -`org-show-siblings'." - (let ((heading-p (org-on-heading-p t)) +`org-show-hierarchy-above', `org-show-following-heading', +`org-show-entry-below' and `org-show-siblings'." + (let ((heading-p (org-at-heading-p t)) (hierarchy-p (org-get-alist-option org-show-hierarchy-above key)) (following-p (org-get-alist-option org-show-following-heading key)) (entry-p (org-get-alist-option org-show-entry-below key)) @@ -12476,7 +12727,7 @@ ACTION can be `set', `up', `down', or a character." (defvar org-agenda-archives-mode) (defvar org-map-continue-from nil "Position from where mapping should continue. -Can be set by the action argument to `org-scan-tag's and `org-map-entries'.") +Can be set by the action argument to `org-scan-tags' and `org-map-entries'.") (defvar org-scanner-tags nil "The current tag list while the tags scanner is running.") @@ -12491,7 +12742,7 @@ obtain a list of properties. Building the tags list for each entry in such a file becomes an N^2 operation - but with this variable set, it scales as N.") -(defun org-scan-tags (action matcher &optional todo-only) +(defun org-scan-tags (action matcher &optional todo-only start-level) "Scan headline tags with inheritance and produce output ACTION. ACTION can be `sparse-tree' to produce a sparse tree in the current buffer, @@ -12501,9 +12752,17 @@ this case the return value is a list of all return values from these calls. MATCHER is a Lisp form to be 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." +only lines with a TODO keyword are included in the output. + +START-LEVEL can be a string with asterisks, reducing the scope to +headlines matching this string." (require 'org-agenda) - (let* ((re (concat "^" org-outline-regexp " *\\(\\<\\(" + (let* ((re (concat "^" + (if start-level + ;; Get the correct level to match + (concat "\\*\\{" (number-to-string start-level) "\\} ") + org-outline-regexp) + " *\\(\\<\\(" (mapconcat 'regexp-quote org-todo-keywords-1 "\\|") (org-re "\\>\\)\\)? *\\(.*?\\)\\(:[[:alnum:]_@#%:]+:\\)?[ \t]*$"))) @@ -12513,6 +12772,7 @@ only lines with a TODO keyword are included in the output." 'mouse-face 'highlight 'org-not-done-regexp org-not-done-regexp 'org-todo-regexp org-todo-regexp + 'org-complex-heading-regexp org-complex-heading-regexp 'help-echo (format "mouse-2 or RET jump to org file %s" (abbreviate-file-name @@ -12532,6 +12792,7 @@ only lines with a TODO keyword are included in the output." (org-overview) (org-remove-occur-highlights)) (while (re-search-forward re nil t) + (setq org-map-continue-from nil) (catch :skip (setq todo (if (match-end 1) (org-match-string-no-properties 2)) tags (if (match-end 4) (org-match-string-no-properties 4))) @@ -12603,7 +12864,7 @@ only lines with a TODO keyword are included in the output." (match-beginning 0) (match-beginning 1))) (org-show-context 'tags-tree)) ((eq action 'agenda) - (setq txt (org-format-agenda-item + (setq txt (org-agenda-format-item "" (concat (if (eq org-tags-match-list-sublevels 'indented) @@ -12996,7 +13257,7 @@ If ONOFF is `on' or `off', don't toggle but set to this state." (goto-char (match-beginning 1)) (insert " ") (delete-region (point) (1+ (match-beginning 2))) - (setq ncol (max (1+ (current-column)) + (setq ncol (max (current-column) (1+ col) (if (> to-col 0) to-col @@ -13011,7 +13272,7 @@ If ONOFF is `on' or `off', don't toggle but set to this state." (defun org-set-tags-command (&optional arg just-align) "Call the set-tags command for the current entry." (interactive "P") - (if (org-on-heading-p) + (if (org-at-heading-p) (org-set-tags arg just-align) (save-excursion (org-back-to-heading t) @@ -13055,7 +13316,7 @@ If DATA is nil or the empty string, any tags will be removed." (save-excursion (or (ignore-errors (org-back-to-heading t)) (outline-next-heading)) - (if (org-on-heading-p) + (if (org-at-heading-p) (org-set-tags t) (message "No headings")))) @@ -13159,7 +13420,7 @@ This works in the agenda, and also in an org-mode buffer." (interactive (list (region-beginning) (region-end) (let ((org-last-tags-completion-table - (if (org-mode-p) + (if (eq major-mode 'org-mode) (org-get-buffer-tags) (org-global-tags-completion-table)))) (org-icompleting-read @@ -13178,7 +13439,7 @@ This works in the agenda, and also in an org-mode buffer." (loop for l from l1 to l2 do (org-goto-line l) (setq m (get-text-property (point) 'org-hd-marker)) - (when (or (and (org-mode-p) (org-on-heading-p)) + (when (or (and (eq major-mode 'org-mode) (org-at-heading-p)) (and agendap m)) (setq buf (if agendap (marker-buffer m) (current-buffer)) pos (if agendap m (point))) @@ -13439,7 +13700,7 @@ Returns the new tags string, or nil to not change the current settings." (defun org-get-tags-string () "Get the TAGS string in the current headline." - (unless (org-on-heading-p t) + (unless (org-at-heading-p t) (error "Not on a heading")) (save-excursion (beginning-of-line 1) @@ -13496,6 +13757,9 @@ SCOPE determines the scope of this command. It can be any of: nil The current buffer, respecting the restriction if any tree The subtree started with the entry at point region The entries within the active region, if any +region-start-level + The entries within the active region, but only those at + the same level than the first one. file The current buffer, without restriction file-with-archives The current buffer, and any archives associated with it @@ -13524,61 +13788,76 @@ with `org-get-tags-at'. If your function gets properties with to t around the call to `org-entry-properties' to get the same speedup. Note that if your function moves around to retrieve tags and properties at a *different* entry, you cannot use these techniques." - (let* ((org-agenda-archives-mode nil) ; just to make sure - (org-agenda-skip-archived-trees (memq 'archive skip)) - (org-agenda-skip-comment-trees (memq 'comment skip)) - (org-agenda-skip-function - (car (org-delete-all '(comment archive) skip))) - (org-tags-match-list-sublevels t) - matcher file res - org-todo-keywords-for-agenda - org-done-keywords-for-agenda - org-todo-keyword-alist-for-agenda - org-drawers-for-agenda - org-tag-alist-for-agenda) + (unless (and (or (eq scope 'region) (eq scope 'region-start-level)) + (not (org-region-active-p))) + (let* ((org-agenda-archives-mode nil) ; just to make sure + (org-agenda-skip-archived-trees (memq 'archive skip)) + (org-agenda-skip-comment-trees (memq 'comment skip)) + (org-agenda-skip-function + (car (org-delete-all '(comment archive) skip))) + (org-tags-match-list-sublevels t) + (start-level (eq scope 'region-start-level)) + matcher file res + org-todo-keywords-for-agenda + org-done-keywords-for-agenda + org-todo-keyword-alist-for-agenda + org-drawers-for-agenda + org-tag-alist-for-agenda) - (cond - ((eq match t) (setq matcher t)) - ((eq match nil) (setq matcher t)) - (t (setq matcher (if match (cdr (org-make-tags-matcher match)) t)))) + (cond + ((eq match t) (setq matcher t)) + ((eq match nil) (setq matcher t)) + (t (setq matcher (if match (cdr (org-make-tags-matcher match)) t)))) - (save-excursion - (save-restriction - (cond ((eq scope 'tree) - (org-back-to-heading t) - (org-narrow-to-subtree) - (setq scope nil)) - ((and (eq scope 'region) (org-region-active-p)) - (narrow-to-region (region-beginning) (region-end)) - (setq scope nil))) - - (if (not scope) - (progn - (org-prepare-agenda-buffers - (list (buffer-file-name (current-buffer)))) - (setq res (org-scan-tags func matcher))) - ;; Get the right scope - (cond - ((and scope (listp scope) (symbolp (car scope))) - (setq scope (eval scope))) - ((eq scope 'agenda) - (setq scope (org-agenda-files t))) - ((eq scope 'agenda-with-archives) - (setq scope (org-agenda-files t)) - (setq scope (org-add-archive-files scope))) - ((eq scope 'file) - (setq scope (list (buffer-file-name)))) - ((eq scope 'file-with-archives) - (setq scope (org-add-archive-files (list (buffer-file-name)))))) - (org-prepare-agenda-buffers scope) - (while (setq file (pop scope)) - (with-current-buffer (org-find-base-buffer-visiting file) - (save-excursion - (save-restriction - (widen) - (goto-char (point-min)) - (setq res (append res (org-scan-tags func matcher)))))))))) - res)) + (save-excursion + (save-restriction + (cond ((eq scope 'tree) + (org-back-to-heading t) + (org-narrow-to-subtree) + (setq scope nil)) + ((and (or (eq scope 'region) (eq scope 'region-start-level)) + (org-region-active-p)) + ;; If needed, set start-level to a string like "2" + (when start-level + (save-excursion + (goto-char (region-beginning)) + (unless (org-at-heading-p) (outline-next-heading)) + (setq start-level (org-current-level)))) + (narrow-to-region (region-beginning) + (save-excursion + (goto-char (region-end)) + (unless (and (bolp) (org-at-heading-p)) + (outline-next-heading)) + (point))) + (setq scope nil))) + + (if (not scope) + (progn + (org-prepare-agenda-buffers + (list (buffer-file-name (current-buffer)))) + (setq res (org-scan-tags func matcher nil start-level))) + ;; Get the right scope + (cond + ((and scope (listp scope) (symbolp (car scope))) + (setq scope (eval scope))) + ((eq scope 'agenda) + (setq scope (org-agenda-files t))) + ((eq scope 'agenda-with-archives) + (setq scope (org-agenda-files t)) + (setq scope (org-add-archive-files scope))) + ((eq scope 'file) + (setq scope (list (buffer-file-name)))) + ((eq scope 'file-with-archives) + (setq scope (org-add-archive-files (list (buffer-file-name)))))) + (org-prepare-agenda-buffers scope) + (while (setq file (pop scope)) + (with-current-buffer (org-find-base-buffer-visiting file) + (save-excursion + (save-restriction + (widen) + (goto-char (point-min)) + (setq res (append res (org-scan-tags func matcher)))))))))) + res))) ;;;; Properties @@ -13748,7 +14027,7 @@ things up because then unnecessary parsing is avoided." beg end range props sum-props key key1 value string clocksum) (save-excursion (when (condition-case nil - (and (org-mode-p) (org-back-to-heading t)) + (and (eq major-mode 'org-mode) (org-back-to-heading t)) (error nil)) (setq beg (point)) (setq sum-props (get-text-property (point) 'org-summaries)) @@ -13859,17 +14138,23 @@ when a \"nil\" value can supersede a non-nil value higher up the hierarchy." (cdr (assoc property (org-entry-properties nil 'special property))) (let ((range (unless (org-before-first-heading-p) (org-get-property-block)))) - (if (and range - (goto-char (car range)) - (re-search-forward - (org-re-property property) - (cdr range) t)) - ;; Found the property, return it. - (if (match-end 1) - (if literal-nil - (org-match-string-no-properties 1) - (org-not-nil (org-match-string-no-properties 1))) - ""))))))) + (when (and range (goto-char (car range))) + ((lambda (val) (when val (if literal-nil val (org-not-nil val)))) + (cond + ((re-search-forward + (org-re-property property) (cdr range) t) + (if (match-end 1) (org-match-string-no-properties 1) "")) + ((re-search-forward + (org-re-property (concat property "+")) (cdr range) t) + (cdr (assoc + property + (org-update-property-plist + (concat property "+") + (if (match-end 1) (org-match-string-no-properties 1) "") + (list (or (assoc property org-file-properties) + (assoc property org-global-properties) + (assoc property org-global-properties-fixed) + )))))))))))))) (defun org-property-or-variable-value (var &optional inherit) "Check if there is a property fixing the value of VAR. @@ -14221,8 +14506,11 @@ xxx_ALL property) or on existing values in other instances of this property in the current file." (interactive (list nil nil)) (let* ((property (or property (org-read-property-name))) - (value (or value (org-read-property-value property)))) + (value (or value (org-read-property-value property))) + (fn (assoc property org-properties-postprocess-alist))) (setq org-last-set-property property) + ;; Possibly postprocess the inserted value: + (when fn (setq value (funcall (cadr fn) value))) (unless (equal (org-entry-get nil property) value) (org-entry-put nil property value)))) @@ -14387,7 +14675,7 @@ only headings." (goto-char found) (setq lmin (1+ flevel) lmax (+ lmin (if org-odd-levels-only 1 0))) (setq end (save-excursion (org-end-of-subtree t t)))) - (when (org-on-heading-p) + (when (org-at-heading-p) (move-marker (make-marker) (point)))))))) (defun org-find-exact-headline-in-buffer (heading &optional buffer pos-only) @@ -14567,7 +14855,7 @@ The prompt will suggest to enter an ISO date, but you can also enter anything which will at least partially be understood by `parse-time-string'. Unrecognized parts of the date will default to the current day, month, year, hour and minute. If this command is called to replace a timestamp at point, -of to enter the second timestamp of a range, the default time is taken +or to enter the second timestamp of a range, the default time is taken from the existing stamp. Furthermore, the command prefers the future, so if you are giving a date where the year is not given, and the day-month combination is already past in the current year, it will assume you @@ -14835,7 +15123,7 @@ user." (setq ans (replace-match (format "%04d-%02d-%02d\\5" year month day) t nil ans))) - ;; Help matching dotted european dates + ;; Help matching dottet european dates (when (string-match "^ *\\(3[01]\\|0?[1-9]\\|[12][0-9]\\)\\. ?\\(0?[1-9]\\|1[012]\\)\\. ?\\([1-9][0-9][0-9][0-9]\\)?" ans) (setq year (if (match-end 3) @@ -14996,6 +15284,7 @@ WHAT is \"d\", \"w\", \"m\", or \"y\" for day, week, month, year. N is the number of WHATs to shift. DEF-FLAG is t when a double ++ or -- indicates shift relative to the DEFAULT date rather than TODAY." + (require 'parse-time) (when (and (string-match (concat @@ -15259,6 +15548,27 @@ days. If the prefix is a raw \\[universal-argument] prefix, all deadlines are s (message "%d entries after %s" (org-occur regexp nil callback) date))) +(defun org-check-dates-range (start-date end-date) + "Check for deadlines/scheduled entries between START-DATE and END-DATE." + (interactive (list (org-read-date nil nil nil "Range starts") + (org-read-date nil nil nil "Range end"))) + (let ((case-fold-search nil) + (regexp (concat "\\<\\(" org-deadline-string + "\\|" org-scheduled-string + "\\) *<\\([^>]+\\)>")) + (callback + (lambda () + (let ((match (match-string 2))) + (and + (not (time-less-p + (org-time-string-to-time match) + (org-time-string-to-time start-date))) + (time-less-p + (org-time-string-to-time match) + (org-time-string-to-time end-date))))))) + (message "%d entries between %s and %s" + (org-occur regexp nil callback) start-date end-date))) + (defun org-evaluate-time-range (&optional to-buffer) "Evaluate a time range by computing the difference between start and end. Normally the result is just printed in the echo area, but with prefix arg @@ -15336,12 +15646,19 @@ days in order to avoid rounding problems." l (push m l))) (apply 'format fmt (nreverse l)))) -(defun org-time-string-to-time (s) - (apply 'encode-time (org-parse-time-string s))) +(defun org-time-string-to-time (s &optional buffer pos) + (condition-case errdata + (apply 'encode-time (org-parse-time-string s)) + (error (error "Bad timestamp `%s'%s\nError was: %s" + s (if (not (and buffer pos)) + "" + (format " at %d in buffer `%s'" pos buffer)) + (cdr errdata))))) + (defun org-time-string-to-seconds (s) (org-float-time (org-time-string-to-time s))) -(defun org-time-string-to-absolute (s &optional daynr prefer show-all) +(defun org-time-string-to-absolute (s &optional daynr prefer show-all buffer pos) "Convert a time stamp to an absolute day number. If there is a specifier for a cyclic time stamp, get the closest date to DAYNR. @@ -15356,7 +15673,14 @@ The variable date is bound by the calendar when this is called." (org-closest-date s (if (and (boundp 'daynr) (integerp daynr)) daynr (time-to-days (current-time))) (match-string 0 s) prefer show-all)) - (t (time-to-days (apply 'encode-time (org-parse-time-string s)))))) + (t (time-to-days + (condition-case errdata + (apply 'encode-time (org-parse-time-string s)) + (error (error "Bad timestamp `%s'%s\nError was: %s" + s (if (not (and buffer pos)) + "" + (format " at %d in buffer `%s'" pos buffer)) + (cdr errdata)))))))) (defun org-days-to-iso-week (days) "Return the iso week number." @@ -15552,7 +15876,7 @@ With prefix ARG, change by that many units." With prefix ARG, change that many days." (interactive "p") (if (and (not (org-at-timestamp-p t)) - (org-on-heading-p)) + (org-at-heading-p)) (org-todo 'up) (org-timestamp-change (prefix-numeric-value arg) 'day 'updown))) @@ -15561,7 +15885,7 @@ With prefix ARG, change that many days." With prefix ARG, change that many days." (interactive "p") (if (and (not (org-at-timestamp-p t)) - (org-on-heading-p)) + (org-at-heading-p)) (org-todo 'down) (org-timestamp-change (- (prefix-numeric-value arg)) 'day) 'updown)) @@ -15581,7 +15905,10 @@ With prefix ARG, change that many days." (setq org-ts-what (cond ((= pos (match-beginning 0)) 'bracket) - ((= pos (1- (match-end 0))) 'bracket) + ;; Point is considered to be "on the bracket" whether + ;; it's really on it or right after it. + ((or (= pos (1- (match-end 0))) + (= pos (match-end 0))) 'bracket) ((org-pos-in-match-range pos 2) 'year) ((org-pos-in-match-range pos 3) 'month) ((org-pos-in-match-range pos 7) 'hour) @@ -15857,7 +16184,7 @@ Entries containing a colon are interpreted as H:MM by "Save all Org-mode buffers without user confirmation." (interactive) (message "Saving all Org-mode buffers...") - (save-some-buffers t 'org-mode-p) + (save-some-buffers t (lambda () (eq major-mode 'org-mode))) (when (featurep 'org-id) (org-id-locations-save)) (message "Saving all Org-mode buffers... done")) @@ -15881,9 +16208,9 @@ changes from another. I believe the procedure must be like this: (save-window-excursion (mapc (lambda (b) - (when (and (with-current-buffer b (org-mode-p)) + (when (and (with-current-buffer b (eq major-mode 'org-mode)) (with-current-buffer b buffer-file-name)) - (switch-to-buffer b) + (org-pop-to-buffer-same-window b) (revert-buffer t 'no-confirm))) (buffer-list)) (when (and (featurep 'org-id) org-id-track-globally) @@ -15894,7 +16221,7 @@ changes from another. I believe the procedure must be like this: ;;;###autoload (defun org-switchb (&optional arg) "Switch between Org buffers. -With a prefix argument, restrict available to files. +With one prefix argument, restrict available buffers to files. With two prefix arguments, restrict available buffers to agenda files. Defaults to `iswitchb' for buffer name completion. @@ -15907,7 +16234,7 @@ Set `org-completion-use-ido' to make it use ido instead." (org-completion-use-ido org-completion-use-ido)) (unless (or org-completion-use-ido org-completion-use-iswitchb) (setq org-completion-use-iswitchb t)) - (switch-to-buffer + (org-pop-to-buffer-same-window (org-icompleting-read "Org buffer: " (mapcar 'list (mapcar 'buffer-name blist)) nil t)))) @@ -15933,17 +16260,17 @@ If EXCLUDE-TMP is non-nil, ignore temporary buffers." (filter (cond ((eq predicate 'files) - (lambda (b) (with-current-buffer b (org-mode-p)))) + (lambda (b) (with-current-buffer b (eq major-mode 'org-mode)))) ((eq predicate 'export) (lambda (b) (string-match "\*Org .*Export" (buffer-name b)))) ((eq predicate 'agenda) (lambda (b) (with-current-buffer b - (and (org-mode-p) + (and (eq major-mode 'org-mode) (setq bfn (buffer-file-name b)) (member (file-truename bfn) agenda-files))))) (t (lambda (b) (with-current-buffer b - (or (org-mode-p) + (or (eq major-mode 'org-mode) (string-match "\*Org .*Export" (buffer-name b))))))))) (delq nil @@ -16074,7 +16401,7 @@ If the current buffer does not, find the first agenda file." (find-file (car files)) (throw 'exit t)))) (find-file (car fs))) - (if (buffer-base-buffer) (switch-to-buffer (buffer-base-buffer))))) + (if (buffer-base-buffer) (org-pop-to-buffer-same-window (buffer-base-buffer))))) (defun org-agenda-file-to-front (&optional to-end) "Move/add the current file to the top of the agenda file list. @@ -16196,10 +16523,11 @@ When a buffer is unmodified, it is just killed. When modified, it is saved (when org-agenda-skip-archived-trees (goto-char (point-min)) (while (re-search-forward rea nil t) - (if (org-on-heading-p t) + (if (org-at-heading-p t) (add-text-properties (point-at-bol) (org-end-of-subtree t) pa)))) (goto-char (point-min)) - (setq re (concat org-outline-regexp-bol "+" org-comment-string "\\>")) + (setq re (format org-heading-keyword-regexp-format + org-comment-string)) (while (re-search-forward re nil t) (add-text-properties (match-beginning 0) (org-end-of-subtree t) pc))) @@ -16230,7 +16558,10 @@ This mode supports entering LaTeX environment and math in LaTeX fragments in Org-mode. \\{org-cdlatex-mode-map}" nil " OCDL" nil - (when org-cdlatex-mode (require 'cdlatex)) + (when org-cdlatex-mode + (require 'cdlatex) + (run-hooks 'cdlatex-mode-hook) + (cdlatex-compute-tables)) (unless org-cdlatex-texmathp-advice-is-done (setq org-cdlatex-texmathp-advice-is-done t) (defadvice texmathp (around org-math-always-on activate) @@ -16242,7 +16573,7 @@ an embedded LaTeX fragment, let texmathp do its job. (interactive) (let (p) (cond - ((not (org-mode-p)) ad-do-it) + ((not (eq major-mode 'org-mode)) ad-do-it) ((eq this-command 'cdlatex-math-symbol) (setq ad-return-value t texmathp-why '("cdlatex-math-symbol in org-mode" . 0))) @@ -16315,14 +16646,16 @@ It makes sense to do so if `org-cdlatex-mode' is active and if the cursor is insert a LaTeX environment." (when org-cdlatex-mode (cond + ;; Before any word on the line: No expansion possible. + ((save-excursion (skip-chars-backward " \t") (bolp)) nil) + ;; Just after first word on the line: Expand it. Make sure it + ;; cannot happen on headlines, though. ((save-excursion (skip-chars-backward "a-zA-Z0-9*") (skip-chars-backward " \t") - (bolp)) - (cdlatex-tab) t) - ((org-inside-LaTeX-fragment-p) + (and (bolp) (not (org-at-heading-p)))) (cdlatex-tab) t) - (t nil)))) + ((org-inside-LaTeX-fragment-p) (cdlatex-tab) t)))) (defun org-cdlatex-underscore-caret (&optional arg) "Execute `cdlatex-sub-superscript' in LaTeX fragments. @@ -16397,8 +16730,8 @@ The images can be removed again with \\[org-ctrl-c-ctrl-c]." '(("begin" "^[ \t]*\\(\\\\begin{\\([a-zA-Z0-9\\*]+\\)[^\000]+?\\\\end{\\2}\\)" 1 t) ;; ("$" "\\([ (]\\|^\\)\\(\\(\\([$]\\)\\([^ \r\n,.$].*?\\(\n.*?\\)\\{0,5\\}[^ \r\n,.$]\\)\\4\\)\\)\\([ .,?;:'\")]\\|$\\)" 2 nil) ;; \000 in the following regex is needed for org-inside-LaTeX-fragment-p - ("$1" "\\([^$]\\)\\(\\$[^ \r\n,;.$]\\$\\)\\([- .,?;:'\")\000]\\|$\\)" 2 nil) - ("$" "\\([^$]\\)\\(\\(\\$\\([^ \r\n,;.$][^$\n\r]*?\\(\n[^$\n\r]*?\\)\\{0,2\\}[^ \r\n,.$]\\)\\$\\)\\)\\([- .,?;:'\")\000]\\|$\\)" 2 nil) + ("$1" "\\([^$]\\|^\\)\\(\\$[^ \r\n,;.$]\\$\\)\\([- .,?;:'\")\000]\\|$\\)" 2 nil) + ("$" "\\([^$]\\|^\\)\\(\\(\\$\\([^ \r\n,;.$][^$\n\r]*?\\(\n[^$\n\r]*?\\)\\{0,2\\}[^ \r\n,.$]\\)\\$\\)\\)\\([- .,?;:'\")\000]\\|$\\)" 2 nil) ("\\(" "\\\\([^\000]*?\\\\)" 0 nil) ("\\[" "\\\\\\[[^\000]*?\\\\\\]" 0 nil) ("$$" "\\$\\$[^\000]*?\\$\\$" 0 nil)) @@ -16421,11 +16754,11 @@ Some of the options can be changed using the variable (plist-get (org-infile-export-plist) :latex-header-extra)) (cnt 0) txt hash link beg end re e checkdir executables-checked string - m n block linkfile movefile ov) + m n block-type block linkfile movefile ov) ;; Check the different regular expressions (while (setq e (pop re-list)) - (setq m (car e) re (nth 1 e) n (nth 2 e) - block (if (nth 3 e) "\n\n" "")) + (setq m (car e) re (nth 1 e) n (nth 2 e) block-type (nth 3 e) + block (if block-type "\n\n" "")) (when (member m matchers) (goto-char (point-min)) (while (re-search-forward re nil t) @@ -16454,7 +16787,7 @@ Some of the options can be changed using the variable '(org-protected t)))) (add-text-properties (match-beginning n) (match-end n) '(org-protected t)))) - ((or (eq processing-type 'dvipng) t) + ((eq processing-type 'dvipng) ;; Process to an image (setq txt (match-string n) beg (match-beginning n) end (match-end n) @@ -16510,7 +16843,115 @@ Some of the options can be changed using the variable (insert (org-add-props link (list 'org-latex-src (replace-regexp-in-string - "\"" "" txt))))))))))))) + "\"" "" txt) + 'org-latex-src-embed-type + (if block-type 'paragraph 'character)))))) + ((eq processing-type 'mathml) + ;; Process to MathML + (unless executables-checked + (unless (save-match-data (org-format-latex-mathml-available-p)) + (error "LaTeX to MathML converter not configured")) + (setq executables-checked t)) + (setq txt (match-string n) + beg (match-beginning n) end (match-end n) + cnt (1+ cnt)) + (if msg (message msg cnt)) + (goto-char beg) + (delete-region beg end) + (insert (org-format-latex-as-mathml + txt block-type prefix dir))) + (t + (error "Unknown conversion type %s for latex fragments" + processing-type))))))))) + +(defun org-create-math-formula (latex-frag &optional mathml-file) + "Convert LATEX-FRAG to MathML and store it in MATHML-FILE. +Use `org-latex-to-mathml-convert-command'. If the conversion is +sucessful, return the portion between \"<math...> </math>\" +elements otherwise return nil. When MATHML-FILE is specified, +write the results in to that file. When invoked as an +interactive command, prompt for LATEX-FRAG, with initial value +set to the current active region and echo the results for user +inspection." + (interactive (list (let ((frag (when (region-active-p) + (buffer-substring-no-properties + (region-beginning) (region-end))))) + (read-string "LaTeX Fragment: " frag nil frag)))) + (unless latex-frag (error "Invalid latex-frag")) + (let* ((tmp-in-file (file-relative-name + (make-temp-name (expand-file-name "ltxmathml-in")))) + (ignore (write-region latex-frag nil tmp-in-file)) + (tmp-out-file (file-relative-name + (make-temp-name (expand-file-name "ltxmathml-out")))) + (cmd (format-spec + org-latex-to-mathml-convert-command + `((?j . ,(shell-quote-argument + (expand-file-name org-latex-to-mathml-jar-file))) + (?I . ,(shell-quote-argument tmp-in-file)) + (?o . ,(shell-quote-argument tmp-out-file))))) + mathml shell-command-output) + (when (org-called-interactively-p 'any) + (unless (org-format-latex-mathml-available-p) + (error "LaTeX to MathML converter not configured"))) + (message "Running %s" cmd) + (setq shell-command-output (shell-command-to-string cmd)) + (setq mathml + (when (file-readable-p tmp-out-file) + (with-current-buffer (find-file-noselect tmp-out-file t) + (goto-char (point-min)) + (when (re-search-forward + (concat + (regexp-quote + "<math xmlns=\"http://www.w3.org/1998/Math/MathML\">") + "\\(.\\|\n\\)*" + (regexp-quote "</math>")) nil t) + (prog1 (match-string 0) (kill-buffer)))))) + (cond + (mathml + (setq mathml + (concat "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" mathml)) + (when mathml-file + (write-region mathml nil mathml-file)) + (when (org-called-interactively-p 'any) + (message mathml))) + ((message "LaTeX to MathML conversion failed") + (message shell-command-output))) + (delete-file tmp-in-file) + (when (file-exists-p tmp-out-file) + (delete-file tmp-out-file)) + mathml)) + +(defun org-format-latex-as-mathml (latex-frag latex-frag-type + prefix &optional dir) + "Use `org-create-math-formula' but check local cache first." + (let* ((absprefix (expand-file-name prefix dir)) + (print-length nil) (print-level nil) + (formula-id (concat + "formula-" + (sha1 + (prin1-to-string + (list latex-frag + org-latex-to-mathml-convert-command))))) + (formula-cache (format "%s-%s.mathml" absprefix formula-id)) + (formula-cache-dir (file-name-directory formula-cache))) + + (unless (file-directory-p formula-cache-dir) + (make-directory formula-cache-dir t)) + + (unless (file-exists-p formula-cache) + (org-create-math-formula latex-frag formula-cache)) + + (if (file-exists-p formula-cache) + ;; Successful conversion. Return the link to MathML file. + (org-add-props + (format "[[file:%s]]" (file-relative-name formula-cache dir)) + (list 'org-latex-src (replace-regexp-in-string "\"" "" latex-frag) + 'org-latex-src-embed-type (if latex-frag-type + 'paragraph 'character))) + ;; Failed conversion. Return the LaTeX fragment verbatim + (add-text-properties + 0 (1- (length latex-frag)) '(org-protected t) latex-frag) + latex-frag))) ;; This function borrows from Ganesh Swami's latex2png.el (defun org-create-formula-image (string tofile options buffer) @@ -16718,6 +17159,44 @@ BEG and END default to the buffer boundaries." ;;;; Key bindings +;; Outline functions from `outline-mode-prefix-map' +;; that can be remapped in Org: +(define-key org-mode-map [remap outline-mark-subtree] 'org-mark-subtree) +(define-key org-mode-map [remap show-subtree] 'org-show-subtree) +(define-key org-mode-map [remap outline-forward-same-level] + 'org-forward-same-level) +(define-key org-mode-map [remap outline-backward-same-level] + 'org-backward-same-level) +(define-key org-mode-map [remap show-branches] + 'org-kill-note-or-show-branches) +(define-key org-mode-map [remap outline-promote] 'org-promote-subtree) +(define-key org-mode-map [remap outline-demote] 'org-demote-subtree) +(define-key org-mode-map [remap outline-insert-heading] 'org-ctrl-c-ret) + +;; Outline functions from `outline-mode-prefix-map' +;; that can not be remapped in Org: +;; - the column "key binding" shows whether the Outline function is still +;; available in Org mode on the same key that it has been bound to in +;; Outline mode: +;; - "overridden": key used for a different functionality in Org mode +;; - else: key still bound to the same Outline function in Org mode +;; | Outline function | key binding | Org replacement | +;; |------------------------------------+-------------+-----------------------| +;; | `outline-next-visible-heading' | `C-c C-n' | still same function | +;; | `outline-previous-visible-heading' | `C-c C-p' | still same function | +;; | `show-children' | `C-c C-i' | visibility cycling | +;; | `hide-subtree' | overridden | visibility cycling | +;; | `outline-up-heading' | `C-c C-u' | still same function | +;; | `hide-body' | overridden | no replacement | +;; | `show-all' | overridden | no replacement | +;; | `hide-entry' | overridden | visibility cycling | +;; | `show-entry' | overridden | no replacement | +;; | `hide-leaves' | overridden | no replacement | +;; | `hide-sublevels' | overridden | no replacement | +;; | `hide-other' | overridden | no replacement | +;; | `outline-move-subtree-up' | `C-c C-^' | better: org-shiftup | +;; | `outline-move-subtree-down' | overridden | better: org-shiftdown | + ;; Make `C-c C-x' a prefix key (org-defkey org-mode-map "\C-c\C-x" (make-sparse-keymap)) @@ -17011,7 +17490,7 @@ If not, return to the original position and throw an error." (interactive) (let ((pos (point))) (call-interactively cmd) - (unless (and (bolp) (org-on-heading-p)) + (unless (and (bolp) (org-at-heading-p)) (goto-char pos) (error "Boundary reached while executing %s" cmd)))) @@ -17022,8 +17501,8 @@ If not, return to the original position and throw an error." (defun org-speed-command-default-hook (keys) "Hook for activating single-letter speed commands. -`org-speed-commands-default' specifies a minimal command set. Use -`org-speed-commands-user' for further customization." +`org-speed-commands-default' specifies a minimal command set. +Use `org-speed-commands-user' for further customization." (when (or (and (bolp) (looking-at org-outline-regexp)) (and (functionp org-use-speed-commands) (funcall org-use-speed-commands))) @@ -17045,11 +17524,11 @@ Each hook takes a single argument, a user-pressed command key which is also a `self-insert-command' from the global map. Within the hook, examine the cursor position and the command key -and return nil or a valid handler as appropriate. Handler could +and return nil or a valid handler as appropriate. Handler could be one of an interactive command, a function, or a form. Set `org-use-speed-commands' to non-nil value to enable this -hook. The default setting is `org-speed-command-default-hook'." +hook. The default setting is `org-speed-command-default-hook'." :group 'org-structure :type 'hook) @@ -17058,6 +17537,7 @@ hook. The default setting is `org-speed-command-default-hook'." If the cursor is in a table looking at whitespace, the whitespace is overwritten, and the table is not marked as requiring realignment." (interactive "p") + (org-check-before-invisible-edit 'insert) (cond ((and org-use-speed-commands (setq org-speed-command @@ -17109,9 +17589,56 @@ overwritten, and the table is not marked as requiring realignment." (setq org-self-insert-command-undo-counter (1+ org-self-insert-command-undo-counter)))))))) +(defun org-check-before-invisible-edit (kind) + "Check is editing if kind KIND would be dangerous with invisible text around. +The detailed reaction depends on the user option `org-catch-invisible-edits'." + ;; First, try to get out of here as quickly as possible, to reduce overhead + (if (and org-catch-invisible-edits + (or (not (boundp 'visible-mode)) (not visible-mode)) + (or (get-char-property (point) 'invisible) + (get-char-property (max (point-min) (1- (point))) 'invisible))) + ;; OK, we need to take a closer look + (let* ((invisible-at-point (get-char-property (point) 'invisible)) + (invisible-before-point (if (bobp) nil (get-char-property + (1- (point)) 'invisible))) + (border-and-ok-direction + (or + ;; Check if we are acting predictably before invisible text + (and invisible-at-point (not invisible-before-point) + (memq kind '(insert delete-backward))) + ;; Check if we are acting predictably after invisible text + ;; This works not well, and I have turned it off. It seems + ;; better to always show and stop after invisible text. + ;; (and (not invisible-at-point) invisible-before-point + ;; (memq kind '(insert delete))) + ))) + + (when (or (memq invisible-at-point '(outline org-hide-block)) + (memq invisible-before-point '(outline org-hide-block))) + (if (eq org-catch-invisible-edits 'error) + (error "Editing in invisible areas is prohibited - make visible first")) + ;; Make the area visible + (save-excursion + (if invisible-before-point + (goto-char (previous-single-char-property-change + (point) 'invisible))) + (org-cycle)) + (cond + ((eq org-catch-invisible-edits 'show) + ;; That's it, we do the edit after showing + (message + "Unfolding invisible region around point before editing") + (sit-for 1)) + ((and (eq org-catch-invisible-edits 'smart) + border-and-ok-direction) + (message "Unfolding invisible region around point before editing")) + (t + ;; Don't do the edit, make the user repeat it in full visibility + (error "Edit in invisible region aborted, repeat to confirm with text visible"))))))) + (defun org-fix-tags-on-the-fly () (when (and (equal (char-after (point-at-bol)) ?*) - (org-on-heading-p)) + (org-at-heading-p)) (org-align-tags-here org-tags-column))) (defun org-delete-backward-char (N) @@ -17121,6 +17648,7 @@ front of the next \"|\" separator, to keep the table aligned. The table will still be marked for re-alignment if the field did fill the entire column, because, in this case the deletion might narrow the column." (interactive "p") + (org-check-before-invisible-edit 'delete-backward) (if (and (org-table-p) (eq N 1) (string-match "|" (buffer-substring (point-at-bol) (point))) @@ -17147,6 +17675,7 @@ front of the next \"|\" separator, to keep the table aligned. The table will still be marked for re-alignment if the field did fill the entire column, because, in this case the deletion might narrow the column." (interactive "p") + (org-check-before-invisible-edit 'delete) (if (and (org-table-p) (not (bolp)) (not (= (char-after) ?|)) @@ -17357,7 +17886,7 @@ See the individual commands for more information." (cond ((run-hook-with-args-until-success 'org-shiftmetaleft-hook)) ((org-at-table-p) (call-interactively 'org-table-delete-column)) - ((org-on-heading-p) (call-interactively 'org-promote-subtree)) + ((org-at-heading-p) (call-interactively 'org-promote-subtree)) ((org-at-item-p) (call-interactively 'org-outdent-item-tree)) (t (org-modifier-cursor-error)))) @@ -17370,7 +17899,7 @@ See the individual commands for more information." (cond ((run-hook-with-args-until-success 'org-shiftmetaright-hook)) ((org-at-table-p) (call-interactively 'org-table-insert-column)) - ((org-on-heading-p) (call-interactively 'org-demote-subtree)) + ((org-at-heading-p) (call-interactively 'org-demote-subtree)) ((org-at-item-p) (call-interactively 'org-indent-item-tree)) (t (org-modifier-cursor-error)))) @@ -17383,7 +17912,7 @@ for more information." (cond ((run-hook-with-args-until-success 'org-shiftmetaup-hook)) ((org-at-table-p) (call-interactively 'org-table-kill-row)) - ((org-on-heading-p) (call-interactively 'org-move-subtree-up)) + ((org-at-heading-p) (call-interactively 'org-move-subtree-up)) ((org-at-item-p) (call-interactively 'org-move-item-up)) (t (org-modifier-cursor-error)))) @@ -17396,7 +17925,7 @@ commands for more information." (cond ((run-hook-with-args-until-success 'org-shiftmetadown-hook)) ((org-at-table-p) (call-interactively 'org-table-insert-row)) - ((org-on-heading-p) (call-interactively 'org-move-subtree-down)) + ((org-at-heading-p) (call-interactively 'org-move-subtree-down)) ((org-at-item-p) (call-interactively 'org-move-item-down)) (t (org-modifier-cursor-error)))) @@ -17414,15 +17943,15 @@ See the individual commands for more information." ((run-hook-with-args-until-success 'org-metaleft-hook)) ((org-at-table-p) (org-call-with-arg 'org-table-move-column 'left)) ((org-with-limited-levels - (or (org-on-heading-p) + (or (org-at-heading-p) (and (org-region-active-p) (save-excursion (goto-char (region-beginning)) - (org-on-heading-p))))) + (org-at-heading-p))))) (when (org-check-for-hidden 'headlines) (org-hidden-tree-error)) (call-interactively 'org-do-promote)) ;; At an inline task. - ((org-on-heading-p) + ((org-at-heading-p) (call-interactively 'org-inlinetask-promote)) ((or (org-at-item-p) (and (org-region-active-p) @@ -17443,15 +17972,15 @@ See the individual commands for more information." ((run-hook-with-args-until-success 'org-metaright-hook)) ((org-at-table-p) (call-interactively 'org-table-move-column)) ((org-with-limited-levels - (or (org-on-heading-p) + (or (org-at-heading-p) (and (org-region-active-p) (save-excursion (goto-char (region-beginning)) - (org-on-heading-p))))) + (org-at-heading-p))))) (when (org-check-for-hidden 'headlines) (org-hidden-tree-error)) (call-interactively 'org-do-demote)) ;; At an inline task. - ((org-on-heading-p) + ((org-at-heading-p) (call-interactively 'org-inlinetask-demote)) ((or (org-at-item-p) (and (org-region-active-p) @@ -17498,7 +18027,7 @@ for more information." (cond ((run-hook-with-args-until-success 'org-metaup-hook)) ((org-at-table-p) (org-call-with-arg 'org-table-move-row 'up)) - ((org-on-heading-p) (call-interactively 'org-move-subtree-up)) + ((org-at-heading-p) (call-interactively 'org-move-subtree-up)) ((org-at-item-p) (call-interactively 'org-move-item-up)) (t (transpose-lines 1) (beginning-of-line -1)))) @@ -17511,7 +18040,7 @@ commands for more information." (cond ((run-hook-with-args-until-success 'org-metadown-hook)) ((org-at-table-p) (call-interactively 'org-table-move-row)) - ((org-on-heading-p) (call-interactively 'org-move-subtree-down)) + ((org-at-heading-p) (call-interactively 'org-move-subtree-down)) ((org-at-item-p) (call-interactively 'org-move-item-down)) (t (beginning-of-line 2) (transpose-lines 1) (beginning-of-line 0)))) @@ -17529,7 +18058,7 @@ depending on context. See the individual commands for more information." 'org-timestamp-down 'org-timestamp-up))) ((and (not (eq org-support-shift-select 'always)) org-enable-priority-commands - (org-on-heading-p)) + (org-at-heading-p)) (call-interactively 'org-priority-up)) ((and (not org-support-shift-select) (org-at-item-p)) (call-interactively 'org-previous-item)) @@ -17553,7 +18082,7 @@ depending on context. See the individual commands for more information." 'org-timestamp-up 'org-timestamp-down))) ((and (not (eq org-support-shift-select 'always)) org-enable-priority-commands - (org-on-heading-p)) + (org-at-heading-p)) (call-interactively 'org-priority-down)) ((and (not org-support-shift-select) (org-at-item-p)) (call-interactively 'org-next-item)) @@ -17579,7 +18108,7 @@ Depending on context, this does one of the following: (org-call-for-shift-select 'forward-char)) ((org-at-timestamp-p t) (call-interactively 'org-timestamp-up-day)) ((and (not (eq org-support-shift-select 'always)) - (org-on-heading-p)) + (org-at-heading-p)) (let ((org-inhibit-logging (not org-treat-S-cursor-todo-selection-as-state-change)) (org-inhibit-blocking @@ -17615,7 +18144,7 @@ Depending on context, this does one of the following: (org-call-for-shift-select 'backward-char)) ((org-at-timestamp-p t) (call-interactively 'org-timestamp-down-day)) ((and (not (eq org-support-shift-select 'always)) - (org-on-heading-p)) + (org-at-heading-p)) (let ((org-inhibit-logging (not org-treat-S-cursor-todo-selection-as-state-change)) (org-inhibit-blocking @@ -17642,7 +18171,7 @@ Depending on context, this does one of the following: ((and org-support-shift-select (org-region-active-p)) (org-call-for-shift-select 'forward-word)) ((and (not (eq org-support-shift-select 'always)) - (org-on-heading-p)) + (org-at-heading-p)) (org-call-with-arg 'org-todo 'nextset)) (org-support-shift-select (org-call-for-shift-select 'forward-word)) @@ -17655,7 +18184,7 @@ Depending on context, this does one of the following: ((and org-support-shift-select (org-region-active-p)) (org-call-for-shift-select 'backward-word)) ((and (not (eq org-support-shift-select 'always)) - (org-on-heading-p)) + (org-at-heading-p)) (org-call-with-arg 'org-todo 'previousset)) (org-support-shift-select (org-call-for-shift-select 'backward-word)) @@ -17686,6 +18215,17 @@ Depending on context, this does one of the following: ((org-at-table-p) (call-interactively 'org-table-hline-and-move)) (t (call-interactively 'org-insert-heading)))) +(defun org-find-visible () + (let ((s (point))) + (while (and (not (= (point-max) (setq s (next-overlay-change s)))) + (get-char-property s 'invisible))) + s)) +(defun org-find-invisible () + (let ((s (point))) + (while (and (not (= (point-max) (setq s (next-overlay-change s)))) + (not (get-char-property s 'invisible)))) + s)) + (defun org-copy-visible (beg end) "Copy the visible parts of the region." (interactive "r") @@ -17757,6 +18297,7 @@ When in an #+include line, visit the include file. Otherwise call (call-interactively 'org-table-edit-formulas)) (t (call-interactively 'ffap)))) +(defvar org-table-coordinate-overlays) ; defined in org-table.el (defun org-ctrl-c-ctrl-c (&optional arg) "Set tags in headline, or update according to changed information at point. @@ -17815,14 +18356,16 @@ This command does many different things, depending on context: (fboundp org-finish-function)) (funcall org-finish-function)) ((run-hook-with-args-until-success 'org-ctrl-c-ctrl-c-hook)) + ((org-in-regexp org-ts-regexp-both) + (org-timestamp-change 0 'day)) ((or (looking-at org-property-start-re) (org-at-property-p)) (call-interactively 'org-property-action)) - ((org-on-target-p) (call-interactively 'org-update-radio-target-regexp)) + ((org-at-target-p) (call-interactively 'org-update-radio-target-regexp)) ((and (org-in-regexp "\\[\\([0-9]*%\\|[0-9]*/[0-9]*\\)\\]") - (or (org-on-heading-p) (org-at-item-p))) + (or (org-at-heading-p) (org-at-item-p))) (call-interactively 'org-update-statistics-cookies)) - ((org-on-heading-p) (call-interactively 'org-set-tags)) + ((org-at-heading-p) (call-interactively 'org-set-tags)) ((org-at-table.el-p) (message "Use C-c ' to edit table.el tables")) ((org-at-table-p) @@ -17842,44 +18385,61 @@ This command does many different things, depending on context: (struct (org-list-struct)) (old-struct (copy-tree struct)) (parents (org-list-parents-alist struct)) - (prevs (org-list-prevs-alist struct)) (orderedp (org-entry-get nil "ORDERED")) (firstp (= (org-list-get-top-point struct) (point-at-bol))) block-item) ;; Use a light version of `org-toggle-checkbox' to avoid ;; computing list structure twice. - (org-list-set-checkbox (point-at-bol) struct - (cond - ((equal arg '(16)) "[-]") - ((equal arg '(4)) nil) - ((equal "[X]" cbox) "[ ]") - (t "[X]"))) - (org-list-struct-fix-ind struct parents) - (org-list-struct-fix-bul struct prevs) - (setq block-item - (org-list-struct-fix-box struct parents prevs orderedp)) + (let ((new-box (cond + ((equal arg '(16)) "[-]") + ((equal arg '(4)) nil) + ((equal "[X]" cbox) "[ ]") + (t "[X]")))) + (if (and firstp arg) + ;; If at first item of sub-list, remove check-box from + ;; every item at the same level. + (mapc + (lambda (pos) (org-list-set-checkbox pos struct new-box)) + (org-list-get-all-items + (point-at-bol) struct (org-list-prevs-alist struct))) + (org-list-set-checkbox (point-at-bol) struct new-box))) + ;; Replicate `org-list-write-struct', while grabbing a return + ;; value from `org-list-struct-fix-box'. + (org-list-struct-fix-ind struct parents 2) + (org-list-struct-fix-item-end struct) + (let ((prevs (org-list-prevs-alist struct))) + (org-list-struct-fix-bul struct prevs) + (org-list-struct-fix-ind struct parents) + (setq block-item + (org-list-struct-fix-box struct parents prevs orderedp))) + (org-list-struct-apply-struct struct old-struct) + (org-update-checkbox-count-maybe) (when block-item (message "Checkboxes were removed due to unchecked box at line %d" (org-current-line block-item))) - (org-list-struct-apply-struct struct old-struct) - (org-update-checkbox-count-maybe) (when firstp (org-list-send-list 'maybe)))) ((org-at-item-p) - ;; Cursor at an item: repair list. Do checkbox related actions - ;; only if function was called with an argument. Send list only + ;; Cursor at an item: repair list. Do checkbox related actions + ;; only if function was called with an argument. Send list only ;; if at top item. (let* ((struct (org-list-struct)) - (old-struct (copy-tree struct)) - (parents (org-list-parents-alist struct)) - (prevs (org-list-prevs-alist struct)) + (new-struct struct) (firstp (= (org-list-get-top-point struct) (point-at-bol)))) - (org-list-struct-fix-ind struct parents) - (org-list-struct-fix-bul struct prevs) (when arg - (org-list-set-checkbox (point-at-bol) struct "[ ]") - (org-list-struct-fix-box struct parents prevs)) - (org-list-struct-apply-struct struct old-struct) + (setq new-struct (copy-tree struct)) + (if firstp + ;; If at first item of sub-list, add check-box to every + ;; item at the same level. + (mapc + (lambda (pos) + (unless (org-list-get-checkbox pos new-struct) + (org-list-set-checkbox pos new-struct "[ ]"))) + (org-list-get-all-items + (point-at-bol) new-struct (org-list-prevs-alist new-struct))) + (org-list-set-checkbox (point-at-bol) new-struct "[ ]"))) + (org-list-write-struct + new-struct (org-list-parents-alist new-struct) struct) (when arg (org-update-checkbox-count-maybe)) (when firstp (org-list-send-list 'maybe)))) ((save-excursion (beginning-of-line 1) (looking-at org-dblock-start-re)) @@ -17900,6 +18460,9 @@ This command does many different things, depending on context: (t (let ((org-inhibit-startup-visibility-stuff t) (org-startup-align-all-tables nil)) + (when (boundp 'org-table-coordinate-overlays) + (mapc 'delete-overlay org-table-coordinate-overlays) + (setq org-table-coordinate-overlays nil)) (org-save-outline-visibility 'use-markers (org-mode-restart))) (message "Local setup has been refreshed")))) ((org-clock-update-time-maybe)) @@ -17939,7 +18502,7 @@ See the individual commands for more information." ((and (org-in-item-p) indent) (if (and (org-at-item-p) (>= (point) (match-end 0))) (progn - (newline) + (save-match-data (newline)) (org-indent-line-to (length (match-string 0)))) (let ((ind (org-get-indentation))) (newline) @@ -17947,7 +18510,9 @@ See the individual commands for more information." (org-indent-line-function) (org-indent-line-to ind))))) ((and org-return-follows-link - (eq (get-text-property (point) 'face) 'org-link)) + (let ((tprop (get-text-property (point) 'face))) + (or (eq tprop 'org-link) + (and (listp tprop) (memq 'org-link tprop))))) (call-interactively 'org-open-at-point)) ((and (org-at-heading-p) (looking-at @@ -18001,7 +18566,7 @@ all headlines to items, shifting text accordingly. If it is an item, convert all items to normal lines. -If it is normal text, change region into an item. With a prefix +If it is normal text, change region into an item. With a prefix argument ARG, change each line in region into an item." (interactive "P") (let ((shift-text @@ -18055,7 +18620,7 @@ argument ARG, change each line in region into an item." (save-excursion (goto-char beg) (cond - ;; Case 1. Start at an item: de-itemize. Note that it only + ;; Case 1. Start at an item: de-itemize. Note that it only ;; happens when a region is active: `org-ctrl-c-minus' ;; would call `org-cycle-list-bullet' otherwise. ((org-at-item-p) @@ -18065,7 +18630,7 @@ argument ARG, change each line in region into an item." (delete-region (point) (match-end 0))) (forward-line))) ;; Case 2. Start at an heading: convert to items. - ((org-on-heading-p) + ((org-at-heading-p) (let* ((bul (org-list-bullet-string "-")) (bul-len (length bul)) ;; Indentation of the first heading. It should be @@ -18099,7 +18664,7 @@ argument ARG, change each line in region into an item." ;; an item. (arg (while (< (point) end) - (unless (or (org-on-heading-p) (org-at-item-p)) + (unless (or (org-at-heading-p) (org-at-item-p)) (if (looking-at "\\([ \t]*\\)\\(\\S-\\)") (replace-match (concat "\\1" (org-list-bullet-string "-") "\\2")))) @@ -18164,9 +18729,9 @@ stars to add." (goto-char beg) (cond ;; Case 1. Started at an heading: de-star headings. - ((org-on-heading-p) + ((org-at-heading-p) (while (< (point) end) - (when (org-on-heading-p t) + (when (org-at-heading-p t) (looking-at org-outline-regexp) (replace-match "")) (forward-line))) ;; Case 2. Started at an item: change items into headlines. @@ -18211,7 +18776,7 @@ stars to add." (t "*"))) ; inside heading, oddeven (rpl (concat stars add-stars " "))) (while (< (point) end) - (when (and (not (org-on-heading-p)) (not (org-at-item-p)) + (when (and (not (org-at-heading-p)) (not (org-at-item-p)) (looking-at "\\([ \t]*\\)\\(\\S-\\)")) (replace-match (concat rpl (match-string 2)))) (forward-line))))))))) @@ -18355,23 +18920,23 @@ See the individual commands for more information." ["Previous link" org-previous-link t] "--" ["Descriptive Links" - (progn (add-to-invisibility-spec '(org-link)) (org-restart-font-lock)) + org-toggle-link-display :style radio - :selected (member '(org-link) buffer-invisibility-spec)] + :selected org-descriptive-links + ] ["Literal Links" - (progn - (org-remove-from-invisibility-spec '(org-link)) (org-restart-font-lock)) + org-toggle-link-display :style radio - :selected (not (member '(org-link) buffer-invisibility-spec))]) + :selected (not org-descriptive-links)]) "--" ("TODO Lists" ["TODO/DONE/-" org-todo t] ("Select keyword" - ["Next keyword" org-shiftright (org-on-heading-p)] - ["Previous keyword" org-shiftleft (org-on-heading-p)] + ["Next keyword" org-shiftright (org-at-heading-p)] + ["Previous keyword" org-shiftleft (org-at-heading-p)] ["Complete Keyword" pcomplete (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))]) + ["Next keyword set" org-shiftcontrolright (and (> (length org-todo-sets) 1) (org-at-heading-p))] + ["Previous keyword set" org-shiftcontrolright (and (> (length org-todo-sets) 1) (org-at-heading-p))]) ["Show TODO Tree" org-show-todo-tree :active t :keys "C-c / t"] ["Global TODO list" org-todo-list :active t :keys "C-c a t"] "--" @@ -18511,7 +19076,7 @@ information about your Org-mode version and configuration." (org-version) (let (list) (save-window-excursion - (switch-to-buffer (get-buffer-create "*Warn about privacy*")) + (org-pop-to-buffer-same-window (get-buffer-create "*Warn about privacy*")) (delete-other-windows) (erase-buffer) (insert "You are about to submit a bug report to the Org-mode mailing list. @@ -18557,8 +19122,8 @@ Your bug report will be posted to the Org-mode mailing list. (save-excursion (while bl (set-buffer (pop bl)) - (if (org-mode-p) (setq bl nil))) - (when (org-mode-p) + (if (eq major-mode 'org-mode) (setq bl nil))) + (when (eq major-mode 'org-mode) (easy-menu-change '("Org") "File List for Agenda" (append @@ -18708,7 +19273,7 @@ With prefix arg UNCOMPILED, load the uncompiled versions." (if (and marker (marker-buffer marker) (buffer-live-p (marker-buffer marker))) (progn - (switch-to-buffer (marker-buffer marker)) + (org-pop-to-buffer-same-window (marker-buffer marker)) (if (or (> marker (point-max)) (< marker (point-min))) (widen)) (goto-char marker) @@ -18971,7 +19536,7 @@ and :keyword." (p (point)) clist o) ;; First the large context (cond - ((org-on-heading-p t) + ((org-at-heading-p t) (push (list :headline (point-at-bol) (point-at-eol)) clist) (when (progn (beginning-of-line 1) @@ -19014,7 +19579,7 @@ and :keyword." (push (list :keyword (previous-single-property-change p 'face) (next-single-property-change p 'face)) clist)) - ((org-on-target-p) + ((org-at-target-p) (push (org-point-in-group p 0 :target) clist) (goto-char (1- (match-beginning 0))) (if (looking-at org-radio-target-regexp) @@ -19066,37 +19631,58 @@ really on, so that the block visually is on the match." (throw 'exit t))) nil)))) -(defun org-in-regexps-block-p (start-re end-re &optional bound) - "Return t if the current point is between matches of START-RE and END-RE. -This will also return t if point is on one of the two matches or -in an unfinished block. END-RE can be a string or a form -returning a string. +(defun org-between-regexps-p (start-re end-re &optional lim-up lim-down) + "Non-nil when point is between matches of START-RE and END-RE. -An optional third argument bounds the search for START-RE. It -defaults to previous heading or `point-min'." - (let ((pos (point)) - (limit (or bound (save-excursion (outline-previous-heading))))) - (save-excursion - ;; we're on a block when point is on start-re... - (or (org-at-regexp-p start-re) - ;; ... or start-re can be found above... - (and (re-search-backward start-re limit t) - ;; ... but no end-re between start-re and point. - (not (re-search-forward (eval end-re) pos t))))))) +Also return a non-nil value when point is on one of the matches. + +Optional arguments LIM-UP and LIM-DOWN bound the search; they are +buffer positions. Default values are the positions of headlines +surrounding the point. + +The functions returns a cons cell whose car (resp. cdr) is the +position before START-RE (resp. after END-RE)." + (save-match-data + (let ((pos (point)) + (limit-up (or lim-up (save-excursion (outline-previous-heading)))) + (limit-down (or lim-down (save-excursion (outline-next-heading)))) + beg end) + (save-excursion + ;; Point is on a block when on START-RE or if START-RE can be + ;; found before it... + (and (or (org-at-regexp-p start-re) + (re-search-backward start-re limit-up t)) + (setq beg (match-beginning 0)) + ;; ... and END-RE after it... + (goto-char (match-end 0)) + (re-search-forward end-re limit-down t) + (> (setq end (match-end 0)) pos) + ;; ... without another START-RE in-between. + (goto-char (match-beginning 0)) + (not (re-search-backward start-re (1+ beg) t)) + ;; Return value. + (cons beg end)))))) (defun org-in-block-p (names) - "Is point inside any block whose name belongs to NAMES? + "Non-nil when point belongs to a block whose name belongs to NAMES. + +NAMES is a list of strings containing names of blocks. -NAMES is a list of strings containing names of blocks." +Return first block name matched, or nil. Beware that in case of +nested blocks, the returned name may not belong to the closest +block from point." (save-match-data (catch 'exit - (let ((case-fold-search t)) + (let ((case-fold-search t) + (lim-up (save-excursion (outline-previous-heading))) + (lim-down (save-excursion (outline-next-heading)))) (mapc (lambda (name) (let ((n (regexp-quote name))) - (when (org-in-regexps-block-p + (when (org-between-regexps-p (concat "^[ \t]*#\\+begin_" n) - (concat "^[ \t]*#\\+end_" n)) - (throw 'exit t)))) + (concat "^[ \t]*#\\+end_" n) + lim-up lim-down) + (throw 'exit n)))) names)) nil))) @@ -19127,18 +19713,18 @@ NAMES is a list of strings containing names of blocks." ;; Emacs 23 (add-hook 'occur-mode-find-occurrence-hook (lambda () - (when (org-mode-p) + (when (eq major-mode 'org-mode) (org-reveal)))) ;; Emacs 22 (defadvice occur-mode-goto-occurrence (after org-occur-reveal activate) - (and (org-mode-p) (org-reveal))) + (and (eq major-mode 'org-mode) (org-reveal))) (defadvice occur-mode-goto-occurrence-other-window (after org-occur-reveal activate) - (and (org-mode-p) (org-reveal))) + (and (eq major-mode 'org-mode) (org-reveal))) (defadvice occur-mode-display-occurrence (after org-occur-reveal activate) - (when (org-mode-p) + (when (eq major-mode 'org-mode) (let ((pos (occur-mode-find-occurrence))) (with-current-buffer (marker-buffer pos) (save-excursion @@ -19194,13 +19780,26 @@ Taken from `count' in cl-seq.el with all keyword arguments removed." (if (funcall predicate e) (push e res))) (nreverse res))) +(defun org-reduce (cl-func cl-seq &rest cl-keys) + "Reduce two-argument FUNCTION across SEQ. +Taken from `reduce' in cl-seq.el with all keyword arguments but +\":initial-value\" removed." + (let ((cl-accum (cond ((memq :initial-value cl-keys) + (cadr (memq :initial-value cl-keys))) + (cl-seq (pop cl-seq)) + (t (funcall cl-func))))) + (while cl-seq + (setq cl-accum (funcall cl-func cl-accum (pop cl-seq)))) + cl-accum)) + (defun org-back-over-empty-lines () "Move backwards over whitespace, to the beginning of the first empty line. Returns the number of empty lines passed." (let ((pos (point))) (if (cdr (assoc 'heading org-blank-before-new-entry)) (skip-chars-backward " \t\n\r") - (forward-line -1)) + (unless (eobp) + (forward-line -1))) (beginning-of-line 2) (goto-char (min (point) pos)) (count-lines (point) pos))) @@ -19416,7 +20015,7 @@ If point is in an inline task, mark that task instead." ;; Footnote definition ((looking-at org-footnote-definition-re) (setq column 0)) ;; Literal examples - ((looking-at "[ \t]*:[ \t]") + ((looking-at "[ \t]*:\\( \\|$\\)") (setq column (org-get-indentation))) ; do nothing ;; Lists ((ignore-errors (goto-char (org-in-item-p))) @@ -19437,14 +20036,18 @@ If point is in an inline task, mark that task instead." (concat "^[ \t]*#\\+begin_" (downcase (match-string 1))) nil t))) (setq column (org-get-indentation (match-string 0)))) ((and (not (looking-at "[ \t]*#\\+begin_")) - (org-in-regexps-block-p "^[ \t]*#\\+begin_" "[ \t]*#\\+end_")) + (org-between-regexps-p "^[ \t]*#\\+begin_" "[ \t]*#\\+end_")) (save-excursion (re-search-backward "^[ \t]*#\\+begin_\\([a-z]+\\)" nil t)) (setq column - (if (equal (downcase (match-string 1)) "src") - ;; src blocks: let `org-edit-src-exit' handle them - (org-get-indentation) - (org-get-indentation (match-string 0))))) + (cond ((equal (downcase (match-string 1)) "src") + ;; src blocks: let `org-edit-src-exit' handle them + (org-get-indentation)) + ((equal (downcase (match-string 1)) "example") + (max (org-get-indentation) + (org-get-indentation (match-string 0)))) + (t + (org-get-indentation (match-string 0)))))) ;; This line has nothing special, look at the previous relevant ;; line to compute indentation (t @@ -19543,10 +20146,11 @@ the functionality can be provided as a fall-back.") ;; through to `fill-paragraph' when appropriate. (org-set-local 'fill-paragraph-function 'org-fill-paragraph) ;; Prevent auto-fill from inserting unwanted new items. - (org-set-local 'fill-nobreak-predicate - (if (memq 'org-fill-item-nobreak-p fill-nobreak-predicate) - fill-nobreak-predicate - (cons 'org-fill-item-nobreak-p fill-nobreak-predicate))) + (if (boundp 'fill-nobreak-predicate) + (org-set-local 'fill-nobreak-predicate + (if (memq 'org-fill-item-nobreak-p fill-nobreak-predicate) + fill-nobreak-predicate + (cons 'org-fill-item-nobreak-p fill-nobreak-predicate)))) ;; Adaptive filling: To get full control, first make sure that ;; `adaptive-fill-regexp' never matches. Then install our own matcher. (unless (local-variable-p 'adaptive-fill-regexp (current-buffer)) @@ -19695,7 +20299,7 @@ this line is also exported in fixed-width font." (end (if regionp (region-end))) (nlines (or arg (if (and beg end) (count-lines beg end) 1))) (case-fold-search nil) - (re "[ \t]*\\(: \\)") + (re "[ \t]*\\(:\\(?: \\|$\\)\\)") off) (if regionp (save-excursion @@ -19717,13 +20321,16 @@ this line is also exported in fixed-width font." (forward-line 1))) (save-excursion (org-back-to-heading) - (if (looking-at (concat org-outline-regexp - "\\( *\\<" org-quote-string "\\>[ \t]*\\)")) - (replace-match "" t t nil 1) - (if (looking-at org-outline-regexp) - (progn - (goto-char (match-end 0)) - (insert org-quote-string " ")))))))) + (cond + ((looking-at (format org-heading-keyword-regexp-format + org-quote-string)) + (goto-char (match-end 1)) + (looking-at (concat " +" org-quote-string)) + (replace-match "" t t) + (when (eolp) (insert " "))) + ((looking-at org-outline-regexp) + (goto-char (match-end 0)) + (insert org-quote-string " "))))))) (defun org-reftex-citation () "Use reftex-citation to insert a citation into the buffer. @@ -19817,13 +20424,14 @@ beyond the end of the headline." (let ((special (if (consp org-special-ctrl-a/e) (cdr org-special-ctrl-a/e) org-special-ctrl-a/e))) - (if (or (not special) - (not (org-on-heading-p)) - arg) - (call-interactively - (cond ((org-bound-and-true-p line-move-visual) 'end-of-visual-line) - ((fboundp 'move-end-of-line) 'move-end-of-line) - (t 'end-of-line))) + (cond + ((or (not special) arg + (not (or (org-at-heading-p) (org-at-item-p) (org-at-drawer-p)))) + (call-interactively + (cond ((org-bound-and-true-p line-move-visual) 'end-of-visual-line) + ((fboundp 'move-end-of-line) 'move-end-of-line) + (t 'end-of-line)))) + ((org-at-heading-p) (let ((pos (point))) (beginning-of-line 1) (if (looking-at (org-re ".*?\\(?:\\([ \t]*\\)\\(:[[:alnum:]_@#%:]+:\\)?[ \t]*\\)?$")) @@ -19838,6 +20446,11 @@ beyond the end of the headline." (call-interactively (if (fboundp 'move-end-of-line) 'move-end-of-line 'end-of-line))))) + ((org-at-drawer-p) + (move-end-of-line 1) + (when (overlays-at (1- (point))) (backward-char 1))) + ;; At an item: Move before any hidden text. + (t (call-interactively 'end-of-line))) (org-no-warnings (and (featurep 'xemacs) (setq zmacs-region-stays t))))) @@ -19871,7 +20484,7 @@ depending on context." (cond ((or (not org-special-ctrl-k) (bolp) - (not (org-on-heading-p))) + (not (org-at-heading-p))) (if (and (get-char-property (min (point-max) (point-at-eol)) 'invisible) org-ctrl-k-protect-subtree) (if (or (eq org-ctrl-k-protect-subtree 'error) @@ -19917,7 +20530,7 @@ plainly yank the text as it is. "Perform some yank-like command. This function implements the behavior described in the `org-yank' -documentation. However, it has been generalized to work for any +documentation. However, it has been generalized to work for any interactive command with similar behavior." ;; pretend to be command COMMAND @@ -20026,10 +20639,16 @@ This version does not only check the character property, but also (end-of-line) (null (re-search-backward org-outline-regexp-bol nil t)))) -(defun org-on-heading-p (&optional ignored) - (outline-on-heading-p t)) (defun org-at-heading-p (&optional ignored) (outline-on-heading-p t)) +;; Compatibility alias with Org versions < 7.8.03 +(defalias 'org-on-heading-p 'org-at-heading-p) + +(defun org-at-drawer-p nil + "Whether point is at a drawer." + (save-excursion + (move-beginning-of-line 1) + (looking-at org-drawer-regexp))) (defun org-point-at-end-of-empty-headline () "If point is at the end of an empty headline, return t, else nil. @@ -20039,14 +20658,17 @@ empty." (save-excursion (beginning-of-line 1) (let ((case-fold-search nil)) - (looking-at (concat "^\\(\\*+\\)[ \t]+\\(" org-todo-regexp - "\\)?[ \t]*$")))))) + (looking-at org-todo-line-regexp))) + (string= (match-string 3) ""))) + (defun org-at-heading-or-item-p () - (or (org-on-heading-p) (org-at-item-p))) + (or (org-at-heading-p) (org-at-item-p))) -(defun org-on-target-p () +(defun org-at-target-p () (or (org-in-regexp org-radio-target-regexp) (org-in-regexp org-target-regexp))) +;; Compatibility alias with Org versions < 7.8.03 +(defalias 'org-on-target-p 'org-at-target-p) (defun org-up-heading-all (arg) "Move to the heading line of which the present line is a subheading. @@ -20117,7 +20739,7 @@ move point." (defun org-goto-first-child () "Goto the first child, even if it is invisible. -Return t when a child was found. Otherwise don't move point and +Return t when a child was found. Otherwise don't move point and return nil." (let (level (pos (point)) (re org-outline-regexp-bol)) (when (condition-case nil (org-back-to-heading t) (error nil)) @@ -20185,7 +20807,7 @@ If there is no such heading, return nil." (org-back-to-heading invisible-OK) (let ((first t) (level (funcall outline-level))) - (if (and (org-mode-p) (< level 1000)) + (if (and (eq major-mode 'org-mode) (< level 1000)) ;; A true heading (not a plain list item), in Org-mode ;; This means we can easily find the end by looking ;; only for the right number of stars. Using a regexp to do @@ -20210,7 +20832,7 @@ If there is no such heading, return nil." (defadvice outline-end-of-subtree (around prefer-org-version activate compile) "Use Org version in org-mode, for dramatic speed-up." - (if (org-mode-p) + (if (eq major-mode 'org-mode) (progn (org-end-of-subtree nil t) (unless (eobp) (backward-char 1))) @@ -20242,7 +20864,7 @@ Normally this only looks at visible headings, but when INVISIBLE-OK is non-nil it wil also look at invisible ones." (interactive "p") (org-back-to-heading invisible-ok) - (org-on-heading-p) + (org-at-heading-p) (let* ((level (- (match-end 0) (match-beginning 0) 1)) (re (format "^\\*\\{1,%d\\} " level)) l) @@ -20262,7 +20884,7 @@ it wil also look at invisible ones." Stop at the first and last subheadings of a superior heading." (interactive "p") (org-back-to-heading) - (org-on-heading-p) + (org-at-heading-p) (let* ((level (- (match-end 0) (match-beginning 0) 1)) (re (format "^\\*\\{1,%d\\} " level)) l) @@ -20382,7 +21004,7 @@ Show the heading too, if it is currently invisible." '(progn (add-hook 'imenu-after-jump-hook (lambda () - (if (org-mode-p) + (if (eq major-mode 'org-mode) (org-show-context 'org-goto)))))) (defun org-link-display-format (link) @@ -20397,6 +21019,17 @@ if no description is present" nil t link) link))) +(defun org-toggle-link-display () + "Toggle the literal or descriptive display of links." + (interactive) + (if org-descriptive-links + (progn (org-remove-from-invisibility-spec '(org-link)) + (org-restart-font-lock) + (setq org-descriptive-links nil)) + (progn (add-to-invisibility-spec '(org-link)) + (org-restart-font-lock) + (setq org-descriptive-links t)))) + ;; Speedbar support (defvar org-speedbar-restriction-lock-overlay (make-overlay 1 1) @@ -20432,7 +21065,7 @@ To get rid of the restriction, use \\[org-agenda-remove-restriction-lock]." (with-current-buffer (find-file-noselect (let ((default-directory dir)) (expand-file-name txt))) - (unless (org-mode-p) + (unless (eq major-mode 'org-mode) (error "Cannot restrict to non-Org-mode file")) (org-agenda-set-restriction-lock 'file))) (t (error "Don't know how to restrict Org-mode's agenda"))) @@ -20449,7 +21082,7 @@ To get rid of the restriction, use \\[org-agenda-remove-restriction-lock]." (define-key speedbar-file-key-map ">" 'org-agenda-remove-restriction-lock) (define-key speedbar-file-key-map "\C-c\C-x>" 'org-agenda-remove-restriction-lock) (add-hook 'speedbar-visiting-tag-hook - (lambda () (and (org-mode-p) (org-show-context 'org-goto)))))) + (lambda () (and (eq major-mode 'org-mode) (org-show-context 'org-goto)))))) ;;; Fixes and Hacks for problems with other packages @@ -20492,12 +21125,12 @@ To get rid of the restriction, use \\[org-agenda-remove-restriction-lock]." (eval-after-load "ecb" '(defadvice ecb-method-clicked (after esf/org-show-context activate) "Make hierarchy visible when jumping into location from ECB tree buffer." - (if (org-mode-p) + (if (eq major-mode 'org-mode) (org-show-context)))) (defun org-bookmark-jump-unhide () "Unhide the current position, to show the bookmark location." - (and (org-mode-p) + (and (eq major-mode 'org-mode) (or (outline-invisible-p) (save-excursion (goto-char (max (point-min) (1- (point)))) (outline-invisible-p))) @@ -20536,6 +21169,4 @@ Still experimental, may disappear in the future." (run-hooks 'org-load-hook) - - ;;; org.el ends here diff --git a/lisp/outline.el b/lisp/outline.el index b5bf8296455..15af855ff43 100644 --- a/lisp/outline.el +++ b/lisp/outline.el @@ -1,6 +1,6 @@ ;;; outline.el --- outline mode commands for Emacs -;; Copyright (C) 1986, 1993-1995, 1997, 2000-2011 +;; Copyright (C) 1986, 1993-1995, 1997, 2000-2012 ;; Free Software Foundation, Inc. ;; Maintainer: FSF diff --git a/lisp/paren.el b/lisp/paren.el index ee550228d48..49d2777fd0b 100644 --- a/lisp/paren.el +++ b/lisp/paren.el @@ -1,6 +1,6 @@ ;;; paren.el --- highlight matching paren -;; Copyright (C) 1993, 1996, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1993, 1996, 2001-2012 Free Software Foundation, Inc. ;; Author: rms@gnu.org ;; Maintainer: FSF diff --git a/lisp/password-cache.el b/lisp/password-cache.el index c425e0aa7e8..9f5c18f3415 100644 --- a/lisp/password-cache.el +++ b/lisp/password-cache.el @@ -1,6 +1,6 @@ ;;; password-cache.el --- Read passwords, possibly using a password cache. -;; Copyright (C) 1999-2000, 2003-2011 Free Software Foundation, Inc. +;; Copyright (C) 1999-2000, 2003-2012 Free Software Foundation, Inc. ;; Author: Simon Josefsson <simon@josefsson.org> ;; Created: 2003-12-21 diff --git a/lisp/paths.el b/lisp/paths.el index 161caf9cb8c..70b5ca5dbfb 100644 --- a/lisp/paths.el +++ b/lisp/paths.el @@ -1,6 +1,6 @@ ;;; paths.el --- define pathnames for use by various Emacs commands -*- no-byte-compile: t -*- -;; Copyright (C) 1986, 1988, 1994, 1999-2011 Free Software Foundation, Inc. +;; Copyright (C) 1986, 1988, 1994, 1999-2012 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: internal diff --git a/lisp/pcmpl-cvs.el b/lisp/pcmpl-cvs.el index 9c9b72ab701..7a23b5f6090 100644 --- a/lisp/pcmpl-cvs.el +++ b/lisp/pcmpl-cvs.el @@ -1,6 +1,6 @@ ;;; pcmpl-cvs.el --- functions for dealing with cvs completions -;; Copyright (C) 1999-2011 Free Software Foundation, Inc. +;; Copyright (C) 1999-2012 Free Software Foundation, Inc. ;; Author: John Wiegley <johnw@gnu.org> ;; Package: pcomplete diff --git a/lisp/pcmpl-gnu.el b/lisp/pcmpl-gnu.el index 3b2a944f5bb..6ce51d156cb 100644 --- a/lisp/pcmpl-gnu.el +++ b/lisp/pcmpl-gnu.el @@ -1,6 +1,6 @@ ;;; pcmpl-gnu.el --- completions for GNU project tools -*- lexical-binding: t -*- -;; Copyright (C) 1999-2011 Free Software Foundation, Inc. +;; Copyright (C) 1999-2012 Free Software Foundation, Inc. ;; Package: pcomplete diff --git a/lisp/pcmpl-linux.el b/lisp/pcmpl-linux.el index d75479fab3e..10e762132d8 100644 --- a/lisp/pcmpl-linux.el +++ b/lisp/pcmpl-linux.el @@ -1,6 +1,6 @@ ;;; pcmpl-linux.el --- functions for dealing with GNU/Linux completions -;; Copyright (C) 1999-2011 Free Software Foundation, Inc. +;; Copyright (C) 1999-2012 Free Software Foundation, Inc. ;; Package: pcomplete diff --git a/lisp/pcmpl-rpm.el b/lisp/pcmpl-rpm.el index 716b0a59555..8019b876562 100644 --- a/lisp/pcmpl-rpm.el +++ b/lisp/pcmpl-rpm.el @@ -1,6 +1,6 @@ ;;; pcmpl-rpm.el --- functions for dealing with rpm completions -;; Copyright (C) 1999-2011 Free Software Foundation, Inc. +;; Copyright (C) 1999-2012 Free Software Foundation, Inc. ;; Package: pcomplete diff --git a/lisp/pcmpl-unix.el b/lisp/pcmpl-unix.el index a34458506e2..2dc25d93abf 100644 --- a/lisp/pcmpl-unix.el +++ b/lisp/pcmpl-unix.el @@ -1,6 +1,6 @@ ;;; pcmpl-unix.el --- standard UNIX completions -;; Copyright (C) 1999-2011 Free Software Foundation, Inc. +;; Copyright (C) 1999-2012 Free Software Foundation, Inc. ;; Package: pcomplete diff --git a/lisp/pcomplete.el b/lisp/pcomplete.el index 8ae1e203849..2d885a2b40f 100644 --- a/lisp/pcomplete.el +++ b/lisp/pcomplete.el @@ -1,6 +1,6 @@ ;;; pcomplete.el --- programmable completion -*- lexical-binding: t -*- -;; Copyright (C) 1999-2011 Free Software Foundation, Inc. +;; Copyright (C) 1999-2012 Free Software Foundation, Inc. ;; Author: John Wiegley <johnw@gnu.org> ;; Keywords: processes abbrev diff --git a/lisp/play/5x5.el b/lisp/play/5x5.el index e111e743608..b2fffb49840 100644 --- a/lisp/play/5x5.el +++ b/lisp/play/5x5.el @@ -1,6 +1,6 @@ ;;; 5x5.el --- simple little puzzle game -*- coding: utf-8 -*- -;; Copyright (C) 1999-2011 Free Software Foundation, Inc. +;; Copyright (C) 1999-2012 Free Software Foundation, Inc. ;; Author: Dave Pearson <davep@davep.org> ;; Maintainer: Dave Pearson <davep@davep.org> diff --git a/lisp/play/animate.el b/lisp/play/animate.el index ec0cacc4a68..a1420e62f02 100644 --- a/lisp/play/animate.el +++ b/lisp/play/animate.el @@ -1,6 +1,6 @@ ;;; animate.el --- make text dance -;; Copyright (C) 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 2001-2012 Free Software Foundation, Inc. ;; Maintainer: Richard Stallman <rms@gnu.org> ;; Keywords: games diff --git a/lisp/play/blackbox.el b/lisp/play/blackbox.el index 42d1d8e09fa..eb2d784c8e5 100644 --- a/lisp/play/blackbox.el +++ b/lisp/play/blackbox.el @@ -1,6 +1,6 @@ ;;; blackbox.el --- blackbox game in Emacs Lisp -;; Copyright (C) 1985-1987, 1992, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1985-1987, 1992, 2001-2012 Free Software Foundation, Inc. ;; Author: F. Thomas May <uw-nsr!uw-warp!tom@beaver.cs.washington.edu> ;; Adapted-By: ESR diff --git a/lisp/play/bruce.el b/lisp/play/bruce.el index a41d5a3d3d1..b8b2f53097d 100644 --- a/lisp/play/bruce.el +++ b/lisp/play/bruce.el @@ -1,7 +1,7 @@ ;;; bruce.el --- bruce phrase utility for overloading the Communications -*- no-byte-compile: t -*- ;;; Decency Act snoops, if any. -;; Copyright (C) 1988, 1993, 1997, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1988, 1993, 1997, 2001-2012 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: games diff --git a/lisp/play/bubbles.el b/lisp/play/bubbles.el index 62d486ffca5..a786f687124 100644 --- a/lisp/play/bubbles.el +++ b/lisp/play/bubbles.el @@ -1,6 +1,6 @@ ;;; bubbles.el --- Puzzle game for Emacs -;; Copyright (C) 2007-2011 Free Software Foundation, Inc. +;; Copyright (C) 2007-2012 Free Software Foundation, Inc. ;; Author: Ulf Jasper <ulf.jasper@web.de> ;; URL: http://ulf.epplejasper.de/ diff --git a/lisp/play/cookie1.el b/lisp/play/cookie1.el index 837213665fc..06bd962d925 100644 --- a/lisp/play/cookie1.el +++ b/lisp/play/cookie1.el @@ -1,6 +1,6 @@ ;;; cookie1.el --- retrieve random phrases from fortune cookie files -;; Copyright (C) 1993, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1993, 2001-2012 Free Software Foundation, Inc. ;; Author: Eric S. Raymond <esr@snark.thyrsus.com> ;; Maintainer: FSF @@ -46,7 +46,7 @@ ;; In order to achieve total compatibility with strfile(1), cookie files ;; should start with two consecutive delimiters (and no comment). ;; -;; This code derives from Steve Strassman's 1987 spook.el package, but +;; This code derives from Steve Strassmann's 1987 spook.el package, but ;; has been generalized so that it supports multiple simultaneous ;; cookie databases and fortune files. It is intended to be called ;; from other packages such as yow.el and spook.el. diff --git a/lisp/play/decipher.el b/lisp/play/decipher.el index 4d4ea71cd7a..438fae4383d 100644 --- a/lisp/play/decipher.el +++ b/lisp/play/decipher.el @@ -1,6 +1,6 @@ ;;; decipher.el --- cryptanalyze monoalphabetic substitution ciphers ;; -;; Copyright (C) 1995-1996, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1995-1996, 2001-2012 Free Software Foundation, Inc. ;; ;; Author: Christopher J. Madsen <chris_madsen@geocities.com> ;; Keywords: games diff --git a/lisp/play/dissociate.el b/lisp/play/dissociate.el index 4530e586de8..8f9f8cea24f 100644 --- a/lisp/play/dissociate.el +++ b/lisp/play/dissociate.el @@ -1,6 +1,6 @@ ;;; dissociate.el --- scramble text amusingly for Emacs -;; Copyright (C) 1985, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1985, 2001-2012 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: games diff --git a/lisp/play/doctor.el b/lisp/play/doctor.el index b20f6968088..d79f9cd31bd 100644 --- a/lisp/play/doctor.el +++ b/lisp/play/doctor.el @@ -1,6 +1,6 @@ ;;; doctor.el --- psychological help for frustrated users -;; Copyright (C) 1985, 1987, 1994, 1996, 2000-2011 +;; Copyright (C) 1985, 1987, 1994, 1996, 2000-2012 ;; Free Software Foundation, Inc. ;; Maintainer: FSF @@ -1576,9 +1576,9 @@ Hack on previous word, setting global variable DOCTOR-OWNER to correct result." (equal doctor-found 'killing)) (memq 'yourself doctor-sent))) (setq doctor--suicide-flag t) - (doctor-type '(If you are really suicidal, you might + (doctor-type '(If you are really suicidal\, you might want to contact the Samaritans via - E-mail: jo@samaritans.org or, at your option, + E-mail: jo@samaritans.org or\, at your option\, anonymous E-mail: samaritans@anon.twwells.com\ \. or find a Befrienders crisis center at http://www.befrienders.org/\ \. diff --git a/lisp/play/dunnet.el b/lisp/play/dunnet.el index 696442ee8cb..22a2642f751 100644 --- a/lisp/play/dunnet.el +++ b/lisp/play/dunnet.el @@ -1,6 +1,6 @@ ;;; dunnet.el --- text adventure for Emacs -*- byte-compile-warnings: nil -*- -;; Copyright (C) 1992-1993, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1992-1993, 2001-2012 Free Software Foundation, Inc. ;; Author: Ron Schnell <ronnie@driver-aces.com> ;; Created: 25 Jul 1992 @@ -2183,7 +2183,7 @@ A hole leads north." nil nil nil nil nil (list obj-box) ;; stair-landing nil nil nil - (list obj-axe) ;; smal-crawlspace + (list obj-axe) ;; small-crawlspace nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil (list obj-special) ;; fourth-vermont-intersection diff --git a/lisp/play/fortune.el b/lisp/play/fortune.el index a46c2ba8171..61de49aadf0 100644 --- a/lisp/play/fortune.el +++ b/lisp/play/fortune.el @@ -1,6 +1,6 @@ ;;; fortune.el --- use fortune to create signatures -;; Copyright (C) 1999, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1999, 2001-2012 Free Software Foundation, Inc. ;; Author: Holger Schauer <Holger.Schauer@gmx.de> ;; Keywords: games utils mail diff --git a/lisp/play/gamegrid.el b/lisp/play/gamegrid.el index e245e70a55c..3b2e6c196f6 100644 --- a/lisp/play/gamegrid.el +++ b/lisp/play/gamegrid.el @@ -1,6 +1,6 @@ ;;; gamegrid.el --- library for implementing grid-based games on Emacs -;; Copyright (C) 1997-1998, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1997-1998, 2001-2012 Free Software Foundation, Inc. ;; Author: Glynn Clements <glynn@sensei.co.uk> ;; Version: 1.02 diff --git a/lisp/play/gametree.el b/lisp/play/gametree.el index e7ed146b4a1..60bbc7129e2 100644 --- a/lisp/play/gametree.el +++ b/lisp/play/gametree.el @@ -1,6 +1,6 @@ ;;; gametree.el --- manage game analysis trees in Emacs -;; Copyright (C) 1997, 1999, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1997, 1999, 2001-2012 Free Software Foundation, Inc. ;; Author: Ian T Zimmerman <itz@rahul.net> ;; Created: Wed Dec 10 07:41:46 PST 1997 diff --git a/lisp/play/gomoku.el b/lisp/play/gomoku.el index ee6b67e6109..a8ab13bd528 100644 --- a/lisp/play/gomoku.el +++ b/lisp/play/gomoku.el @@ -1,6 +1,6 @@ ;;; gomoku.el --- Gomoku game between you and Emacs -;; Copyright (C) 1988, 1994, 1996, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1988, 1994, 1996, 2001-2012 Free Software Foundation, Inc. ;; Author: Philippe Schnoebelen <phs@lsv.ens-cachan.fr> ;; Maintainer: FSF diff --git a/lisp/play/handwrite.el b/lisp/play/handwrite.el index 70c10da5405..e2aec709b99 100644 --- a/lisp/play/handwrite.el +++ b/lisp/play/handwrite.el @@ -1,6 +1,6 @@ ;;; handwrite.el --- turns your emacs buffer into a handwritten document -*- coding: iso-latin-1; -*- -;; Copyright (C) 1996, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1996, 2001-2012 Free Software Foundation, Inc. ;; Author: Danny Roozendaal (was: <danny@tvs.kun.nl>) ;; Created: October 21 1996 diff --git a/lisp/play/landmark.el b/lisp/play/landmark.el index 9ef03725c60..a769101ad0b 100644 --- a/lisp/play/landmark.el +++ b/lisp/play/landmark.el @@ -1,6 +1,6 @@ ;;; landmark.el --- neural-network robot that learns landmarks -;; Copyright (C) 1996-1997, 2000-2011 Free Software Foundation, Inc. +;; Copyright (C) 1996-1997, 2000-2012 Free Software Foundation, Inc. ;; Author: Terrence Brannon (was: <brannon@rana.usc.edu>) ;; Created: December 16, 1996 - first release to usenet diff --git a/lisp/play/life.el b/lisp/play/life.el index 7cdc4136194..e9133f84862 100644 --- a/lisp/play/life.el +++ b/lisp/play/life.el @@ -1,6 +1,6 @@ ;;; life.el --- John Horton Conway's `Life' game for GNU Emacs -;; Copyright (C) 1988, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1988, 2001-2012 Free Software Foundation, Inc. ;; Author: Kyle Jones <kyleuunet.uu.net> ;; Maintainer: FSF diff --git a/lisp/play/morse.el b/lisp/play/morse.el index fa0887c0ac5..6bf34ddb851 100644 --- a/lisp/play/morse.el +++ b/lisp/play/morse.el @@ -1,6 +1,6 @@ ;;; morse.el --- convert text to morse code and back -*- coding: utf-8 -*- -;; Copyright (C) 1995, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1995, 2001-2012 Free Software Foundation, Inc. ;; Author: Rick Farnbach <rick_farnbach@MENTORG.COM> ;; Keywords: games diff --git a/lisp/play/mpuz.el b/lisp/play/mpuz.el index 3e1659628f4..f086931d196 100644 --- a/lisp/play/mpuz.el +++ b/lisp/play/mpuz.el @@ -1,6 +1,6 @@ ;;; mpuz.el --- multiplication puzzle for GNU Emacs -;; Copyright (C) 1990, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1990, 2001-2012 Free Software Foundation, Inc. ;; Author: Philippe Schnoebelen <phs@lsv.ens-cachan.fr> ;; Overhauled: Daniel Pfeiffer <occitan@esperanto.org> diff --git a/lisp/play/pong.el b/lisp/play/pong.el index e993e769756..5742a5c7849 100644 --- a/lisp/play/pong.el +++ b/lisp/play/pong.el @@ -1,6 +1,6 @@ ;;; pong.el --- classical implementation of pong -;; Copyright (C) 1999-2011 Free Software Foundation, Inc. +;; Copyright (C) 1999-2012 Free Software Foundation, Inc. ;; Author: Benjamin Drieu <bdrieu@april.org> ;; Keywords: games diff --git a/lisp/play/snake.el b/lisp/play/snake.el index 418c898e825..db54039c237 100644 --- a/lisp/play/snake.el +++ b/lisp/play/snake.el @@ -1,6 +1,6 @@ ;;; snake.el --- implementation of Snake for Emacs -;; Copyright (C) 1997, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1997, 2001-2012 Free Software Foundation, Inc. ;; Author: Glynn Clements <glynn@sensei.co.uk> ;; Created: 1997-09-10 diff --git a/lisp/play/solitaire.el b/lisp/play/solitaire.el index b52ade6fdb7..f282fa68b2a 100644 --- a/lisp/play/solitaire.el +++ b/lisp/play/solitaire.el @@ -1,6 +1,6 @@ ;;; solitaire.el --- game of solitaire in Emacs Lisp -;; Copyright (C) 1994, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1994, 2001-2012 Free Software Foundation, Inc. ;; Author: Jan Schormann <Jan.Schormann@rechen-gilde.de> ;; Created: Fri afternoon, Jun 3, 1994 diff --git a/lisp/play/spook.el b/lisp/play/spook.el index 6cab994a9cc..e79df0e88c7 100644 --- a/lisp/play/spook.el +++ b/lisp/play/spook.el @@ -1,6 +1,6 @@ ;;; spook.el --- spook phrase utility for overloading the NSA line eater -;; Copyright (C) 1988, 1993, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1988, 1993, 2001-2012 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: games diff --git a/lisp/play/tetris.el b/lisp/play/tetris.el index 053b07adfc7..24d1c3f2417 100644 --- a/lisp/play/tetris.el +++ b/lisp/play/tetris.el @@ -1,6 +1,6 @@ ;;; tetris.el --- implementation of Tetris for Emacs -;; Copyright (C) 1997, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1997, 2001-2012 Free Software Foundation, Inc. ;; Author: Glynn Clements <glynn@sensei.co.uk> ;; Version: 2.01 diff --git a/lisp/play/yow.el b/lisp/play/yow.el index d75e04eb74f..fa32fdf8272 100644 --- a/lisp/play/yow.el +++ b/lisp/play/yow.el @@ -1,6 +1,6 @@ ;;; yow.el --- quote random zippyisms -;; Copyright (C) 1993-1995, 2000-2011 Free Software Foundation, Inc. +;; Copyright (C) 1993-1995, 2000-2012 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Author: Richard Mlynarik diff --git a/lisp/play/zone.el b/lisp/play/zone.el index d194a8af919..f1d42aafb9c 100644 --- a/lisp/play/zone.el +++ b/lisp/play/zone.el @@ -1,6 +1,6 @@ ;;; zone.el --- idle display hacks -;; Copyright (C) 2000-2011 Free Software Foundation, Inc. +;; Copyright (C) 2000-2012 Free Software Foundation, Inc. ;; Author: Victor Zandy <zandy@cs.wisc.edu> ;; Maintainer: Thien-Thi Nguyen <ttn@gnu.org> diff --git a/lisp/printing.el b/lisp/printing.el index dab57d16dca..bf5b8a91f01 100644 --- a/lisp/printing.el +++ b/lisp/printing.el @@ -1,6 +1,6 @@ ;;; printing.el --- printing utilities -;; Copyright (C) 2000-2001, 2003-2011 Free Software Foundation, Inc. +;; Copyright (C) 2000-2001, 2003-2012 Free Software Foundation, Inc. ;; Author: Vinicius Jose Latorre <viniciusjl@ig.com.br> ;; Maintainer: Vinicius Jose Latorre <viniciusjl@ig.com.br> @@ -4710,12 +4710,12 @@ Interactively, you have the following situations: M-x pr-ps-fast-fire RET The command prompts the user for a N-UP value and printing will - immediatelly be done using the current active printer. + immediately be done using the current active printer. C-u M-x pr-ps-fast-fire RET C-u 0 M-x pr-ps-fast-fire RET The command prompts the user for a N-UP value and also for a current - PostScript printer, then printing will immediatelly be done using the new + PostScript printer, then printing will immediately be done using the new current active printer. C-u 1 M-x pr-ps-fast-fire RET @@ -4736,7 +4736,7 @@ zero and the argument SELECT is treated as follows: If it's nil, send the image to the printer. If it's a list or an integer lesser or equal to zero, the command prompts - the user for a current PostScript printer, then printing will immediatelly + the user for a current PostScript printer, then printing will immediately be done using the new current active printer. If it's an integer equal to 1, the command prompts the user for a file name @@ -4749,7 +4749,7 @@ zero and the argument SELECT is treated as follows: instead of sending it to the printer. If it's a symbol which it's defined in `pr-ps-printer-alist', it's the new - active printer and printing will immediatelly be done using the new active + active printer and printing will immediately be done using the new active printer. Otherwise, send the image to the printer. @@ -4800,7 +4800,7 @@ Noninteractively, the argument SELECT-PRINTER is treated as follows: If it's nil, the printing is sent to the current active text printer. If it's a symbol which it's defined in `pr-txt-printer-alist', it's the new - active printer and printing will immediatelly be done using the new active + active printer and printing will immediately be done using the new active printer. If it's non-nil, the command prompts the user for a new active text printer. diff --git a/lisp/proced.el b/lisp/proced.el index baee7c0f6ee..da82186fe30 100644 --- a/lisp/proced.el +++ b/lisp/proced.el @@ -1,6 +1,6 @@ ;;; proced.el --- operate on system processes like dired -;; Copyright (C) 2008-2011 Free Software Foundation, Inc. +;; Copyright (C) 2008-2012 Free Software Foundation, Inc. ;; Author: Roland Winkler <winkler@gnu.org> ;; Keywords: Processes, Unix diff --git a/lisp/progmodes/ada-mode.el b/lisp/progmodes/ada-mode.el index 17ff4bd32a6..8ccb8f17d80 100644 --- a/lisp/progmodes/ada-mode.el +++ b/lisp/progmodes/ada-mode.el @@ -1,6 +1,6 @@ ;;; ada-mode.el --- major-mode for editing Ada sources -;; Copyright (C) 1994-1995, 1997-2011 Free Software Foundation, Inc. +;; Copyright (C) 1994-1995, 1997-2012 Free Software Foundation, Inc. ;; Author: Rolf Ebert <ebert@inf.enst.fr> ;; Markus Heritsch <Markus.Heritsch@studbox.uni-stuttgart.de> diff --git a/lisp/progmodes/ada-prj.el b/lisp/progmodes/ada-prj.el index a32e22828fc..10497acbe4b 100644 --- a/lisp/progmodes/ada-prj.el +++ b/lisp/progmodes/ada-prj.el @@ -1,6 +1,6 @@ ;;; ada-prj.el --- GUI editing of project files for the ada-mode -;; Copyright (C) 1998-2011 Free Software Foundation, Inc. +;; Copyright (C) 1998-2012 Free Software Foundation, Inc. ;; Author: Emmanuel Briot <briot@gnat.com> ;; Maintainer: Stephen Leake <stephen_leake@stephe-leake.org> diff --git a/lisp/progmodes/ada-stmt.el b/lisp/progmodes/ada-stmt.el index e48055c9f50..50c5b695dbc 100644 --- a/lisp/progmodes/ada-stmt.el +++ b/lisp/progmodes/ada-stmt.el @@ -1,6 +1,6 @@ ;;; ada-stmt.el --- an extension to Ada mode for inserting statement templates -;; Copyright (C) 1987, 1993-1994, 1996-2011 Free Software Foundation, Inc. +;; Copyright (C) 1987, 1993-1994, 1996-2012 Free Software Foundation, Inc. ;; Authors: Daniel Pfeiffer ;; Markus Heritsch @@ -56,7 +56,7 @@ ;; BUGS: ;;;> I have the following suggestions for the function template: 1) I ;;;> don't want it automatically assigning it a name for the return variable. I -;;;> never want it to be called "Result" because that is nondescriptive. If you +;;;> never want it to be called "Result" because that is nondescript. If you ;;;> must define a variable, give me the ability to specify its name. ;;;> ;;;> 2) You do not provide a type for variable 'Result'. Its type is the same diff --git a/lisp/progmodes/ada-xref.el b/lisp/progmodes/ada-xref.el index f30457992a3..d72eef27a58 100644 --- a/lisp/progmodes/ada-xref.el +++ b/lisp/progmodes/ada-xref.el @@ -1,6 +1,6 @@ ;; ada-xref.el --- for lookup and completion in Ada mode -;; Copyright (C) 1994-2011 Free Software Foundation, Inc. +;; Copyright (C) 1994-2012 Free Software Foundation, Inc. ;; Author: Markus Heritsch <Markus.Heritsch@studbox.uni-stuttgart.de> ;; Rolf Ebert <ebert@inf.enst.fr> @@ -1533,7 +1533,7 @@ the project file." ;; .ali file for a spec file. If we are, go to step 3. ;; 3- If the file is not found or step 2 failed: ;; find the name of the "other file", ie the body, and look - ;; for its associated .ali file by subtituing the extension + ;; for its associated .ali file by subtituting the extension ;; ;; We must also handle the case of separate packages and subprograms: ;; 4- If no ali file was found, we try to modify the file name by removing diff --git a/lisp/progmodes/antlr-mode.el b/lisp/progmodes/antlr-mode.el index d1ff1aead10..634570cf3e4 100644 --- a/lisp/progmodes/antlr-mode.el +++ b/lisp/progmodes/antlr-mode.el @@ -1,6 +1,6 @@ ;;; antlr-mode.el --- major mode for ANTLR grammar files -;; Copyright (C) 1999-2011 Free Software Foundation, Inc. +;; Copyright (C) 1999-2012 Free Software Foundation, Inc. ;; Author: Christoph.Wedler@sap.com ;; Keywords: languages, ANTLR, code generator diff --git a/lisp/progmodes/asm-mode.el b/lisp/progmodes/asm-mode.el index 3ac8b119fe1..cfa977d9022 100644 --- a/lisp/progmodes/asm-mode.el +++ b/lisp/progmodes/asm-mode.el @@ -1,6 +1,6 @@ ;;; asm-mode.el --- mode for editing assembler code -;; Copyright (C) 1991, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1991, 2001-2012 Free Software Foundation, Inc. ;; Author: Eric S. Raymond <esr@snark.thyrsus.com> ;; Maintainer: FSF diff --git a/lisp/progmodes/autoconf.el b/lisp/progmodes/autoconf.el index fce725c3b3c..a7242f6c232 100644 --- a/lisp/progmodes/autoconf.el +++ b/lisp/progmodes/autoconf.el @@ -1,6 +1,6 @@ ;;; autoconf.el --- mode for editing Autoconf configure.in files -;; Copyright (C) 2000-2011 Free Software Foundation, Inc. +;; Copyright (C) 2000-2012 Free Software Foundation, Inc. ;; Author: Dave Love <fx@gnu.org> ;; Keywords: languages diff --git a/lisp/progmodes/bug-reference.el b/lisp/progmodes/bug-reference.el index 12eddfef1aa..015b9a9ceaf 100644 --- a/lisp/progmodes/bug-reference.el +++ b/lisp/progmodes/bug-reference.el @@ -1,6 +1,6 @@ ;; bug-reference.el --- buttonize bug references -;; Copyright (C) 2008-2011 Free Software Foundation, Inc. +;; Copyright (C) 2008-2012 Free Software Foundation, Inc. ;; Author: Tom Tromey <tromey@redhat.com> ;; Created: 21 Mar 2007 diff --git a/lisp/progmodes/cap-words.el b/lisp/progmodes/cap-words.el index d7b7dfef1ec..6d4d9f0544d 100644 --- a/lisp/progmodes/cap-words.el +++ b/lisp/progmodes/cap-words.el @@ -1,6 +1,6 @@ ;;; cap-words.el --- minor mode for motion in CapitalizedWordIdentifiers -;; Copyright (C) 2002-2011 Free Software Foundation, Inc. +;; Copyright (C) 2002-2012 Free Software Foundation, Inc. ;; Author: Dave Love <fx@gnu.org> ;; Keywords: languages diff --git a/lisp/progmodes/cc-align.el b/lisp/progmodes/cc-align.el index 81045d63abf..b12020b26be 100644 --- a/lisp/progmodes/cc-align.el +++ b/lisp/progmodes/cc-align.el @@ -1,6 +1,6 @@ ;;; cc-align.el --- custom indentation functions for CC Mode -;; Copyright (C) 1985, 1987, 1992-2011 Free Software Foundation, Inc. +;; Copyright (C) 1985, 1987, 1992-2012 Free Software Foundation, Inc. ;; Authors: 2004- Alan Mackenzie ;; 1998- Martin Stjernholm diff --git a/lisp/progmodes/cc-awk.el b/lisp/progmodes/cc-awk.el index ef67a18d807..d7829853e3c 100644 --- a/lisp/progmodes/cc-awk.el +++ b/lisp/progmodes/cc-awk.el @@ -1,6 +1,6 @@ ;;; cc-awk.el --- AWK specific code within cc-mode. -;; Copyright (C) 1988, 1994, 1996, 2000-2011 Free Software Foundation, Inc. +;; Copyright (C) 1988, 1994, 1996, 2000-2012 Free Software Foundation, Inc. ;; Author: Alan Mackenzie <acm@muc.de> (originally based on awk-mode.el) ;; Maintainer: FSF diff --git a/lisp/progmodes/cc-bytecomp.el b/lisp/progmodes/cc-bytecomp.el index 823430f2d38..bd9805673a4 100644 --- a/lisp/progmodes/cc-bytecomp.el +++ b/lisp/progmodes/cc-bytecomp.el @@ -1,6 +1,6 @@ ;;; cc-bytecomp.el --- compile time setup for proper compilation -;; Copyright (C) 2000-2011 Free Software Foundation, Inc. +;; Copyright (C) 2000-2012 Free Software Foundation, Inc. ;; Author: Martin Stjernholm ;; Maintainer: bug-cc-mode@gnu.org diff --git a/lisp/progmodes/cc-cmds.el b/lisp/progmodes/cc-cmds.el index 686695bc838..76b9f304164 100644 --- a/lisp/progmodes/cc-cmds.el +++ b/lisp/progmodes/cc-cmds.el @@ -1,6 +1,6 @@ ;;; cc-cmds.el --- user level commands for CC Mode -;; Copyright (C) 1985, 1987, 1992-2011 Free Software Foundation, Inc. +;; Copyright (C) 1985, 1987, 1992-2012 Free Software Foundation, Inc. ;; Authors: 2003- Alan Mackenzie ;; 1998- Martin Stjernholm diff --git a/lisp/progmodes/cc-compat.el b/lisp/progmodes/cc-compat.el index 01f7379b1b0..bf0ac8c5619 100644 --- a/lisp/progmodes/cc-compat.el +++ b/lisp/progmodes/cc-compat.el @@ -1,6 +1,6 @@ ;;; cc-compat.el --- cc-mode compatibility with c-mode.el confusion -;; Copyright (C) 1985, 1987, 1992-2011 Free Software Foundation, Inc. +;; Copyright (C) 1985, 1987, 1992-2012 Free Software Foundation, Inc. ;; Authors: 1998- Martin Stjernholm ;; 1994-1999 Barry A. Warsaw diff --git a/lisp/progmodes/cc-defs.el b/lisp/progmodes/cc-defs.el index 2991b511830..93a72796561 100644 --- a/lisp/progmodes/cc-defs.el +++ b/lisp/progmodes/cc-defs.el @@ -1,6 +1,6 @@ ;;; cc-defs.el --- compile time definitions for CC Mode -;; Copyright (C) 1985, 1987, 1992-2011 Free Software Foundation, Inc. +;; Copyright (C) 1985, 1987, 1992-2012 Free Software Foundation, Inc. ;; Authors: 2003- Alan Mackenzie ;; 1998- Martin Stjernholm diff --git a/lisp/progmodes/cc-engine.el b/lisp/progmodes/cc-engine.el index 0865ddfed69..392e5d1c37c 100644 --- a/lisp/progmodes/cc-engine.el +++ b/lisp/progmodes/cc-engine.el @@ -1,6 +1,6 @@ ;;; cc-engine.el --- core syntax guessing engine for CC mode -;; Copyright (C) 1985, 1987, 1992-2011 Free Software Foundation, Inc. +;; Copyright (C) 1985, 1987, 1992-2012 Free Software Foundation, Inc. ;; Authors: 2001- Alan Mackenzie ;; 1998- Martin Stjernholm @@ -2153,14 +2153,14 @@ comment at the start of cc-engine.el for more info." (if (> pos c-state-nonlit-pos-cache-limit) (setq c-state-nonlit-pos-cache-limit pos)) pos)))) - + (defun c-state-literal-at (here) ;; If position HERE is inside a literal, return (START . END), the ;; boundaries of the literal (which may be outside the accessible bit of the ;; buffer). Otherwise, return nil. ;; ;; This function is almost the same as `c-literal-limits'. Previously, it - ;; differed in that it was a lower level function, and that it rigourously + ;; differed in that it was a lower level function, and that it rigorously ;; followed the syntax from BOB. `c-literal-limits' is now (2011-12) ;; virtually identical to this function. (save-restriction @@ -2594,7 +2594,7 @@ comment at the start of cc-engine.el for more info." mstart) ; start of a macro. (save-excursion - ;; Each time round the following loop, we enter a succesively deeper + ;; Each time round the following loop, we enter a successively deeper ;; level of brace/paren nesting. (Except sometimes we "continue at ;; the existing level".) `pa+1' is a pos inside an opening ;; brace/paren/bracket, usually just after it. diff --git a/lisp/progmodes/cc-fonts.el b/lisp/progmodes/cc-fonts.el index c6c8bd107f6..f52864df809 100644 --- a/lisp/progmodes/cc-fonts.el +++ b/lisp/progmodes/cc-fonts.el @@ -1,6 +1,6 @@ ;;; cc-fonts.el --- font lock support for CC Mode -;; Copyright (C) 2002-2011 Free Software Foundation, Inc. +;; Copyright (C) 2002-2012 Free Software Foundation, Inc. ;; Authors: 2003- Alan Mackenzie ;; 2002- Martin Stjernholm @@ -1428,6 +1428,21 @@ casts and declarations are fontified. Used on level 2 and higher." (c-fontify-recorded-types-and-refs) nil) + ((and (not c-enums-contain-decls) + ;; An optimisation quickly to eliminate scans of long enum + ;; declarations in the next cond arm. + (let ((paren-state (c-parse-state))) + (and + (numberp (car paren-state)) + (save-excursion + (goto-char (car paren-state)) + (c-backward-token-2) + (or (looking-at c-brace-list-key) + (progn + (c-backward-token-2) + (looking-at c-brace-list-key))))))) + t) + (t ;; Are we at a declarator? Try to go back to the declaration ;; to check this. If we get there, check whether a "typedef" @@ -1538,25 +1553,8 @@ casts and declarations are fontified. Used on level 2 and higher." ;; prevent a repeat invocation. See elisp/lispref page "Search-based ;; Fontification". (let* ((paren-state (c-parse-state)) - (start (point)) - (bod-lim (max (- (point) 500) (point-min))) - decl-context bo-decl in-typedef type-type ps-elt) - - ;; First, are we actually in a "local" declaration? - (setq decl-context (c-beginning-of-decl-1 bod-lim) - bo-decl (point) - in-typedef (looking-at c-typedef-key)) - (if in-typedef (c-forward-token-2)) - (when (and (eq (car decl-context) 'same) - (< bo-decl start)) - ;; Are we genuinely at a type? - (setq type-type (c-forward-type t)) - (if (and type-type - (or (not (eq type-type 'maybe)) - (looking-at c-symbol-key))) - (c-font-lock-declarators limit t in-typedef))) - - ;; Secondly, are we in any nested struct/union/class/etc. braces? + decl-context in-typedef ps-elt) + ;; Are we in any nested struct/union/class/etc. braces? (while paren-state (setq ps-elt (car paren-state) paren-state (cdr paren-state)) diff --git a/lisp/progmodes/cc-guess.el b/lisp/progmodes/cc-guess.el index 6553021e783..fcd6a443b67 100644 --- a/lisp/progmodes/cc-guess.el +++ b/lisp/progmodes/cc-guess.el @@ -1,6 +1,6 @@ ;;; cc-guess.el --- guess indentation values by scanning existing code -;; Copyright (C) 1985, 1987, 1992-2006, 2011 +;; Copyright (C) 1985, 1987, 1992-2006, 2011-2012 ;; Free Software Foundation, Inc. ;; Author: 1994-1995 Barry A. Warsaw diff --git a/lisp/progmodes/cc-langs.el b/lisp/progmodes/cc-langs.el index 96f0887eec0..fafbfb70552 100644 --- a/lisp/progmodes/cc-langs.el +++ b/lisp/progmodes/cc-langs.el @@ -1,6 +1,6 @@ ;;; cc-langs.el --- language specific settings for CC Mode -;; Copyright (C) 1985, 1987, 1992-2011 Free Software Foundation, Inc. +;; Copyright (C) 1985, 1987, 1992-2012 Free Software Foundation, Inc. ;; Authors: 2002- Alan Mackenzie ;; 1998- Martin Stjernholm @@ -485,28 +485,56 @@ The functions are called even when font locking isn't enabled. When the mode is initialized, the functions are called with parameters \(point-min) and \(point-max).") -(c-lang-defconst c-before-font-lock-function - "If non-nil, a function called just before font locking. -Typically it will extend the region about to be fontified \(see +(c-lang-defconst c-before-font-lock-functions + ;; For documentation see the following c-lang-defvar of the same name. + ;; The value here may be a list of functions or a single function. + t 'c-change-set-fl-decl-start + (c c++ objc) '(c-neutralize-syntax-in-and-mark-CPP + c-change-set-fl-decl-start) + awk 'c-awk-extend-and-syntax-tablify-region) +(c-lang-defvar c-before-font-lock-functions + (let ((fs (c-lang-const c-before-font-lock-functions))) + (if (listp fs) + fs + (list fs))) + "If non-nil, a list of functions called just before font locking. +Typically they will extend the region about to be fontified \(see below) and will set `syntax-table' text properties on the region. -It takes 3 parameters, the BEG, END, and OLD-LEN supplied to -every after-change function; point is undefined on both entry and -exit; on entry, the buffer will have been widened and match-data -will have been saved; the return value is ignored. +These functions will be run in the order given. Each of them +takes 3 parameters, the BEG, END, and OLD-LEN supplied to every +after-change function; point is undefined on both entry and exit; +on entry, the buffer will have been widened and match-data will +have been saved; the return value is ignored. -The function may extend the region to be fontified by setting the +The functions may extend the region to be fontified by setting the buffer local variables c-new-BEG and c-new-END. -The function is called even when font locking is disabled. +The functions are called even when font locking is disabled. -When the mode is initialized, this function is called with -parameters \(point-min), \(point-max) and <buffer size>." - t nil - (c c++ objc) 'c-neutralize-syntax-in-and-mark-CPP - awk 'c-awk-extend-and-syntax-tablify-region) -(c-lang-defvar c-before-font-lock-function - (c-lang-const c-before-font-lock-function)) +When the mode is initialized, these functions are called with +parameters \(point-min), \(point-max) and <buffer size>.") + +(c-lang-defconst c-before-context-fontification-functions + awk nil + t 'c-context-set-fl-decl-start) + ;; For documentation see the following c-lang-defvar of the same name. + ;; The value here may be a list of functions or a single function. +(c-lang-defvar c-before-context-fontification-functions + (let ((fs (c-lang-const c-before-context-fontification-functions))) + (if (listp fs) + fs + (list fs))) + "If non-nil, a list of functions called just before context (or +other non-change) fontification is done. Typically they will +extend the region. + +These functions will be run in the order given. Each of them +takes 2 parameters, the BEG and END of the region to be +fontified. Point is undefined on both entry and exit. On entry, +the buffer will have been widened and match-data will have been +saved; the return value is a cons of the adjusted +region, (NEW-BEG . NEW-END).") ;;; Syntactic analysis ("virtual semicolons") for line-oriented languages (AWK). @@ -2910,6 +2938,12 @@ expression is considered to be a type." (consp (c-lang-const c-<>-arglist-kwds)))) (c-lang-defvar c-recognize-<>-arglists (c-lang-const c-recognize-<>-arglists)) +(c-lang-defconst c-enums-contain-decls + "Non-nil means that an enum structure can contain declarations." + t nil + java t) +(c-lang-defvar c-enums-contain-decls (c-lang-const c-enums-contain-decls)) + (c-lang-defconst c-recognize-paren-inits "Non-nil means that parenthesis style initializers exist, i.e. constructs like diff --git a/lisp/progmodes/cc-menus.el b/lisp/progmodes/cc-menus.el index 942303b1096..f57fcbff5ca 100644 --- a/lisp/progmodes/cc-menus.el +++ b/lisp/progmodes/cc-menus.el @@ -1,6 +1,6 @@ ;;; cc-menus.el --- imenu support for CC Mode -;; Copyright (C) 1985, 1987, 1992-2011 Free Software Foundation, Inc. +;; Copyright (C) 1985, 1987, 1992-2012 Free Software Foundation, Inc. ;; Authors: 1998- Martin Stjernholm ;; 1992-1999 Barry A. Warsaw diff --git a/lisp/progmodes/cc-mode.el b/lisp/progmodes/cc-mode.el index 36b95f4b3f5..b74d878516d 100644 --- a/lisp/progmodes/cc-mode.el +++ b/lisp/progmodes/cc-mode.el @@ -1,6 +1,6 @@ ;;; cc-mode.el --- major mode for editing C and similar languages -;; Copyright (C) 1985, 1987, 1992-2011 Free Software Foundation, Inc. +;; Copyright (C) 1985, 1987, 1992-2012 Free Software Foundation, Inc. ;; Authors: 2003- Alan Mackenzie ;; 1998- Martin Stjernholm @@ -599,8 +599,8 @@ that requires a literal mode spec at compile time." ;; Buffer local variables defining the region to be fontified by a font lock ;; after-change function. They are set in c-after-change to -;; after-change-function's BEG and END, and may be modified by a -;; `c-before-font-lock-function'. +;; after-change-functions' BEG and END, and may be modified by functions in +;; `c-before-font-lock-functions'. (defvar c-new-BEG 0) (make-variable-buffer-local 'c-new-BEG) (defvar c-new-END 0) @@ -633,13 +633,13 @@ compatible with old code; callers should always specify it." (setq c-new-BEG (point-min)) (setq c-new-END (point-max)) (save-excursion - (if c-get-state-before-change-functions - (mapc (lambda (fn) - (funcall fn (point-min) (point-max))) - c-get-state-before-change-functions)) - (if c-before-font-lock-function - (funcall c-before-font-lock-function (point-min) (point-max) - (- (point-max) (point-min)))))) + (mapc (lambda (fn) + (funcall fn (point-min) (point-max))) + c-get-state-before-change-functions) + (mapc (lambda (fn) + (funcall fn (point-min) (point-max) + (- (point-max) (point-min)))) + c-before-font-lock-functions))) (set (make-local-variable 'outline-regexp) "[^#\n\^M]") (set (make-local-variable 'outline-level) 'c-outline-level) @@ -830,6 +830,35 @@ Note that the style variables are always made local to the buffer." ; with a c-cpp-delimiter category property (setq c-old-EOM (point))) +(defun c-extend-font-lock-region-for-macros (begg endd &optional old-len) + ;; Extend the region (BEGG ENDD) to cover all (possibly changed) + ;; preprocessor macros; return the cons (new-BEG . new-END). OLD-LEN should + ;; be either the old length parameter when called from an + ;; after-change-function, or nil otherwise. This defun uses the variables + ;; c-old-BOM, c-new-BOM. + ;; + ;; Point is undefined on both entry and exit to this function. The buffer + ;; will have been widened on entry. + (let (limits new-beg new-end) + (goto-char c-old-BOM) ; already set to old start of macro or begg. + (setq new-beg + (min begg + (if (setq limits (c-state-literal-at (point))) + (cdr limits) ; go forward out of any string or comment. + (point)))) + + (goto-char endd) + (if (setq limits (c-state-literal-at (point))) + (goto-char (car limits))) ; go backward out of any string or comment. + (if (c-beginning-of-macro) + (c-end-of-macro)) + (setq new-end (max endd + (if old-len + (+ (- c-old-EOM old-len) (- endd begg)) + c-old-EOM) + (point))) + (cons new-beg new-end))) + (defun c-neutralize-CPP-line (beg end) ;; BEG and END bound a region, typically a preprocessor line. Put a ;; "punctuation" syntax-table property on syntactically obtrusive @@ -881,31 +910,19 @@ Note that the style variables are always made local to the buffer." ;; Point is undefined both before and after this function call, the buffer ;; has been widened, and match-data saved. The return value is ignored. ;; - ;; This function is the C/C++/ObjC value of `c-before-font-lock-function'. + ;; This function is in the C/C++/ObjC value of `c-before-font-lock-functions'. ;; ;; Note: SPEED _MATTERS_ IN THIS FUNCTION!!! ;; ;; This function might make hidden buffer changes. - (c-save-buffer-state (limits) + (c-save-buffer-state (new-bounds) ;; First determine the region, (c-new-BEG c-new-END), which will get font ;; locked. It might need "neutralizing". This region may not start ;; inside a string, comment, or macro. - (goto-char c-old-BOM) ; already set to old start of macro or begg. - (setq c-new-BEG - (min c-new-BEG - (if (setq limits (c-state-literal-at (point))) - (cdr limits) ; go forward out of any string or comment. - (point)))) - - (goto-char endd) - (if (setq limits (c-state-literal-at (point))) - (goto-char (car limits))) ; go backward out of any string or comment. - (if (c-beginning-of-macro) - (c-end-of-macro)) - (setq c-new-END (max c-new-END - (+ (- c-old-EOM old-len) (- endd begg)) - (point))) - + (setq new-bounds (c-extend-font-lock-region-for-macros + c-new-BEG c-new-END old-len)) + (setq c-new-BEG (car new-bounds) + c-new-END (cdr new-bounds)) ;; Clear all old relevant properties. (c-clear-char-property-with-value c-new-BEG c-new-END 'syntax-table '(1)) (c-clear-char-property-with-value c-new-BEG c-new-END 'category 'c-cpp-delimiter) @@ -1015,6 +1032,11 @@ Note that the style variables are always made local to the buffer." c-get-state-before-change-functions)) )))) +(defvar c-in-after-change-fontification nil) +(make-variable-buffer-local 'c-in-after-change-fontification) +;; A flag to prevent region expanding stuff being done twice for after-change +;; fontification. + (defun c-after-change (beg end old-len) ;; Function put on `after-change-functions' to adjust various caches ;; etc. Prefer speed to finesse here, since there will be an order @@ -1026,7 +1048,7 @@ Note that the style variables are always made local to the buffer." ;; these caches from inside them, and we must thus be sure that this ;; has already been executed. ;; - ;; This calls the language variable c-before-font-lock-function, if non nil. + ;; This calls the language variable c-before-font-lock-functions, if non nil. ;; This typically sets `syntax-table' properties. (c-save-buffer-state () @@ -1066,19 +1088,113 @@ Note that the style variables are always made local to the buffer." ;; larger than (beg end). (setq c-new-BEG beg c-new-END end) - (if c-before-font-lock-function - (save-excursion - (funcall c-before-font-lock-function beg end old-len))))))) + (setq c-in-after-change-fontification t) + (save-excursion + (mapc (lambda (fn) + (funcall fn beg end old-len)) + c-before-font-lock-functions)))))) + +(defun c-set-fl-decl-start (pos) + ;; If the beginning of the line containing POS is in the middle of a "local" + ;; declaration (i.e. one which does not start outside of braces enclosing + ;; POS, such as a struct), return the beginning of that declaration. + ;; Otherwise return POS. Note that declarations, in this sense, can be + ;; nested. + ;; + ;; This function is called indirectly from font locking stuff - either from + ;; c-after-change (to prepare for after-change font-locking) or from font + ;; lock context (etc.) fontification. + (let ((lit-limits (c-literal-limits)) + (new-pos pos) + bod-lim bo-decl) + (goto-char (c-point 'bol new-pos)) + (when lit-limits ; Comment or string. + (goto-char (car lit-limits))) + (setq bod-lim (max (- (point) 500) (point-min))) + + (while + ;; Go to a less nested declaration each time round this loop. + (and + (eq (car (c-beginning-of-decl-1 bod-lim)) 'same) + (progn (setq bo-decl (point)) + ;; Are we looking at a keyword such as "template" or + ;; "typedef" which can decorate a type, or the type itself? + (when (or (looking-at c-prefix-spec-kwds-re) + (c-forward-type t)) + ;; We've found another candidate position. + (setq new-pos (min new-pos bo-decl)) + (goto-char bo-decl)) + t) + ;; Try and go out a level to search again. + (progn + (c-backward-syntactic-ws bod-lim) + (or (memq (char-before) '(?\( ?\[)) + (and (eq (char-before) ?\<) + (eq (c-get-char-property + (1- (point)) 'syntax-table) + c-<-as-paren-syntax)))) + (not (bobp))) + (backward-char)) + new-pos)) ; back over (, [, <. + +(defun c-change-set-fl-decl-start (beg end old-len) + ;; Set c-new-BEG to the beginning of a "local" declaration if it('s BOL) is + ;; inside one. This is called from an after-change-function, but the + ;; parameters BEG END and OLD-LEN are ignored. See `c-set-fl-decl-start' + ;; for the detailed functionality. + (if font-lock-mode + (setq c-new-BEG (c-set-fl-decl-start c-new-BEG)))) + +(defun c-context-set-fl-decl-start (beg end) + ;; Return a cons (NEW-BEG . END), where NEW-BEG is the beginning of a + ;; "local" declaration (BOL at) NEW is inside or BEG. See + ;; `c-set-fl-decl-start' for the detailed functionality. + (cons (c-set-fl-decl-start beg) end)) + +(defvar c-standard-font-lock-fontify-region-function nil + "Standard value of `font-lock-fontify-region-function'") + +(defun c-font-lock-fontify-region (beg end &optional verbose) + ;; Effectively advice around `font-lock-fontify-region' which extends the + ;; region (BEG END), for example, to avoid context fontification chopping + ;; off the start of the context. Do not do anything if it's already been + ;; done (i.e. from an after-change fontification. An example (C++) where + ;; this used to happen is this: + ;; + ;; template <typename T> + ;; + ;; + ;; void myfunc(T* p) {} + ;; + ;; Type a space in the first blank line, and the fontification of the next + ;; line was fouled up by context fontification. + (let ((new-beg beg) (new-end end) new-region) + (if c-in-after-change-fontification + (setq c-in-after-change-fontification nil) + (save-restriction + (widen) + (save-excursion + (mapc (lambda (fn) + (setq new-region (funcall fn new-beg new-end)) + (setq new-beg (car new-region) new-end (cdr new-region))) + c-before-context-fontification-functions)))) + (funcall c-standard-font-lock-fontify-region-function + new-beg new-end verbose))) (defun c-after-font-lock-init () - ;; Put on `font-lock-mode-hook'. + ;; Put on `font-lock-mode-hook'. This function ensures our after-change + ;; function will get executed before the font-lock one. Amongst other + ;; things. (remove-hook 'after-change-functions 'c-after-change t) - (add-hook 'after-change-functions 'c-after-change nil t)) + (add-hook 'after-change-functions 'c-after-change nil t) + (setq c-standard-font-lock-fontify-region-function + (default-value 'font-lock-fontify-region-function))) (defun c-font-lock-init () "Set up the font-lock variables for using the font-lock support in CC Mode. This does not load the font-lock package. Use after -`c-basic-common-init' and after cc-fonts has been loaded." +`c-basic-common-init' and after cc-fonts has been loaded. +This function is called from `c-common-init', once per mode initialization." (set (make-local-variable 'font-lock-defaults) `(,(if (c-major-mode-is 'awk-mode) @@ -1092,6 +1208,10 @@ This does not load the font-lock package. Use after c-beginning-of-syntax (font-lock-mark-block-function . c-mark-function))) + + (make-local-variable 'font-lock-fontify-region-function) + (setq font-lock-fontify-region-function 'c-font-lock-fontify-region) + (if (featurep 'xemacs) (make-local-hook 'font-lock-mode-hook)) (add-hook 'font-lock-mode-hook 'c-after-font-lock-init nil t)) diff --git a/lisp/progmodes/cc-styles.el b/lisp/progmodes/cc-styles.el index 96cb15f2a72..cf628e44de0 100644 --- a/lisp/progmodes/cc-styles.el +++ b/lisp/progmodes/cc-styles.el @@ -1,6 +1,6 @@ ;;; cc-styles.el --- support for styles in CC Mode -;; Copyright (C) 1985, 1987, 1992-2011 Free Software Foundation, Inc. +;; Copyright (C) 1985, 1987, 1992-2012 Free Software Foundation, Inc. ;; Authors: 2004- Alan Mackenzie ;; 1998- Martin Stjernholm diff --git a/lisp/progmodes/cc-vars.el b/lisp/progmodes/cc-vars.el index a4338a3193b..8efe3f27002 100644 --- a/lisp/progmodes/cc-vars.el +++ b/lisp/progmodes/cc-vars.el @@ -1,6 +1,6 @@ ;;; cc-vars.el --- user customization variables for CC Mode -;; Copyright (C) 1985, 1987, 1992-2011 Free Software Foundation, Inc. +;; Copyright (C) 1985, 1987, 1992-2012 Free Software Foundation, Inc. ;; Authors: 2002- Alan Mackenzie ;; 1998- Martin Stjernholm diff --git a/lisp/progmodes/cfengine.el b/lisp/progmodes/cfengine.el index 823304bd250..4e9a10e3ceb 100644 --- a/lisp/progmodes/cfengine.el +++ b/lisp/progmodes/cfengine.el @@ -1,10 +1,11 @@ ;;; cfengine.el --- mode for editing Cfengine files -;; Copyright (C) 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 2001-2012 Free Software Foundation, Inc. ;; Author: Dave Love <fx@gnu.org> ;; Maintainer: Ted Zlatanov <tzz@lifelogs.com> ;; Keywords: languages +;; Version: 1.1 ;; This file is part of GNU Emacs. @@ -29,18 +30,18 @@ ;; The CFEngine 3.x support doesn't have Imenu support but patches are ;; welcome. -;; You can set it up so either cfengine-mode (2.x and earlier) or -;; cfengine3-mode (3.x) will be picked, depending on the buffer +;; You can set it up so either `cfengine2-mode' (2.x and earlier) or +;; `cfengine3-mode' (3.x) will be picked, depending on the buffer ;; contents: -;; (add-to-list 'auto-mode-alist '("\\.cf\\'" . cfengine-auto-mode)) +;; (add-to-list 'auto-mode-alist '("\\.cf\\'" . cfengine-mode)) ;; OR you can choose to always use a specific version, if you prefer -;; it +;; it: ;; (add-to-list 'auto-mode-alist '("\\.cf\\'" . cfengine3-mode)) -;; (add-to-list 'auto-mode-alist '("^cf\\." . cfengine-mode)) -;; (add-to-list 'auto-mode-alist '("^cfagent.conf\\'" . cfengine-mode)) +;; (add-to-list 'auto-mode-alist '("^cf\\." . cfengine2-mode)) +;; (add-to-list 'auto-mode-alist '("^cfagent.conf\\'" . cfengine2-mode)) ;; This is not the same as the mode written by Rolf Ebert ;; <ebert@waporo.muc.de>, distributed with cfengine-2.0.5. It does @@ -49,31 +50,36 @@ ;;; Code: (defgroup cfengine () - "Editing Cfengine files." + "Editing CFEngine files." :group 'languages) (defcustom cfengine-indent 2 - "*Size of a Cfengine indentation step in columns." + "*Size of a CFEngine indentation step in columns." :group 'cfengine :type 'integer) +(defvar cfengine-mode-debug nil + "Whether `cfengine-mode' should print debugging info.") + (defcustom cfengine-mode-abbrevs nil - "Abbrevs for Cfengine mode." + "Abbrevs for CFEngine2 mode." :group 'cfengine :type '(repeat (list (string :tag "Name") (string :tag "Expansion") (choice :tag "Hook" (const nil) function)))) +(make-obsolete-variable 'cfengine-mode-abbrevs 'edit-abbrevs "24.1") + ;; Taken from the doc for pre-release 2.1. (eval-and-compile - (defconst cfengine-actions + (defconst cfengine2-actions '("acl" "alerts" "binservers" "broadcast" "control" "classes" "copy" "defaultroute" "disks" "directories" "disable" "editfiles" "files" "filters" "groups" "homeservers" "ignore" "import" "interfaces" "links" "mailserver" "methods" "miscmounts" "mountables" "processes" "packages" "rename" "required" "resolve" "shellcommands" "tidy" "unmount" - ;; cfservd + ;; Keywords for cfservd. "admit" "grant" "deny") "List of the action keywords supported by Cfengine. This includes those for cfservd as well as cfagent.") @@ -98,11 +104,11 @@ This includes those for cfservd as well as cfagent.") '(string int real slist ilist rlist irange rrange counter)) "List of the CFEngine 3.x variable types.")) -(defvar cfengine-font-lock-keywords +(defvar cfengine2-font-lock-keywords `(;; Actions. ;; List the allowed actions explicitly, so that errors are more obvious. (,(concat "^[ \t]*" (eval-when-compile - (regexp-opt cfengine-actions t)) + (regexp-opt cfengine2-actions t)) ":") 1 font-lock-keyword-face) ;; Classes. @@ -117,46 +123,54 @@ This includes those for cfservd as well as cfagent.") (defvar cfengine3-font-lock-keywords `( + ;; Defuns. This happens early so they don't get caught by looser + ;; patterns. + (,(concat "\\<" cfengine3-defuns-regex "\\>" + "[ \t]+\\<\\([[:alnum:]_]+\\)\\>" + "[ \t]+\\<\\([[:alnum:]_]+\\)" + ;; Optional parentheses with variable names inside. + "\\(?:(\\([^)]*\\))\\)?") + (1 font-lock-builtin-face) + (2 font-lock-constant-face) + (3 font-lock-function-name-face) + (4 font-lock-variable-name-face nil t)) + + ;; Class selectors. (,(concat "^[ \t]*" cfengine3-class-selector-regex) 1 font-lock-keyword-face) + + ;; Categories. (,(concat "^[ \t]*" cfengine3-category-regex) 1 font-lock-builtin-face) + ;; Variables, including scope, e.g. module.var ("[@$](\\([[:alnum:]_.]+\\))" 1 font-lock-variable-name-face) ("[@$]{\\([[:alnum:]_.]+\\)}" 1 font-lock-variable-name-face) + ;; Variable definitions. ("\\<\\([[:alnum:]_]+\\)[ \t]*=[ \t]*(" 1 font-lock-variable-name-face) - ;; CFEngine 3.x faces - ;; defuns - (,(concat "\\<" cfengine3-defuns-regex "\\>" - "[ \t]+\\<\\([[:alnum:]_]+\\)\\>" - "[ \t]+\\<\\([[:alnum:]_]+\\)\\((\\([^)]*\\))\\)?") - (1 font-lock-builtin-face) - (2 font-lock-constant-name-face) - (3 font-lock-function-name-face) - (5 font-lock-variable-name-face)) - ;; variable types + ;; Variable types. (,(concat "\\<" (eval-when-compile (regexp-opt cfengine3-vartypes t)) "\\>") 1 font-lock-type-face))) -(defvar cfengine-imenu-expression +(defvar cfengine2-imenu-expression `((nil ,(concat "^[ \t]*" (eval-when-compile - (regexp-opt cfengine-actions t)) + (regexp-opt cfengine2-actions t)) ":[^:]") 1) ("Variables/classes" "\\<\\([[:alnum:]_]+\\)[ \t]*=[ \t]*(" 1) ("Variables/classes" "\\<define=\\([[:alnum:]_]+\\)" 1) ("Variables/classes" "\\<DefineClass\\>[ \t]+\\([[:alnum:]_]+\\)" 1)) - "`imenu-generic-expression' for Cfengine mode.") + "`imenu-generic-expression' for CFEngine mode.") -(defun cfengine-outline-level () - "`outline-level' function for Cfengine mode." +(defun cfengine2-outline-level () + "`outline-level' function for CFEngine mode." (if (looking-at "[^:]+\\(?:[:]+\\)$") (length (match-string 1)))) -(defun cfengine-beginning-of-defun () - "`beginning-of-defun' function for Cfengine mode. +(defun cfengine2-beginning-of-defun () + "`beginning-of-defun' function for CFEngine mode. Treats actions as defuns." (unless (<= (current-column) (current-indentation)) (end-of-line)) @@ -165,8 +179,8 @@ Treats actions as defuns." (goto-char (point-min))) t) -(defun cfengine-end-of-defun () - "`end-of-defun' function for Cfengine mode. +(defun cfengine2-end-of-defun () + "`end-of-defun' function for CFEngine mode. Treats actions as defuns." (end-of-line) (if (re-search-forward "^[[:alpha:]]+: *$" nil t) @@ -176,7 +190,7 @@ Treats actions as defuns." ;; Fixme: Should get an extra indent step in editfiles BeginGroup...s. -(defun cfengine-indent-line () +(defun cfengine2-indent-line () "Indent a line in Cfengine mode. Intended as the value of `indent-line-function'." (let ((pos (- (point-max) (point)))) @@ -283,15 +297,17 @@ Intended as the value of `indent-line-function'." (narrow-to-defun) (back-to-indentation) (setq parse (parse-partial-sexp (point-min) (point))) - (message "%S" parse) + (when cfengine-mode-debug + (message "%S" parse)) + (cond - ;; body/bundle blocks start at 0 + ;; Body/bundle blocks start at 0. ((looking-at (concat cfengine3-defuns-regex "\\>")) (indent-line-to 0)) - ;; categories are indented one step + ;; Categories are indented one step. ((looking-at (concat cfengine3-category-regex "[ \t]*$")) (indent-line-to cfengine-indent)) - ;; class selectors are indented two steps + ;; Class selectors are indented two steps. ((looking-at (concat cfengine3-class-selector-regex "[ \t]*$")) (indent-line-to (* 2 cfengine-indent))) ;; Outdent leading close brackets one step. @@ -303,11 +319,17 @@ Intended as the value of `indent-line-function'." (backward-sexp) (current-column))) (error nil))) - ;; inside a string and it starts before this line + ;; Inside a string and it starts before this line. ((and (nth 3 parse) (< (nth 8 parse) (save-excursion (beginning-of-line) (point)))) (indent-line-to 0)) - ;; inside a defun, but not a nested list (depth is 1) + + ;; Inside a defun, but not a nested list (depth is 1). This is + ;; a promise, usually. + + ;; Indent to cfengine-indent times the nested depth + ;; plus 2. That way, promises indent deeper than class + ;; selectors, which in turn are one deeper than categories. ((= 1 (nth 0 parse)) (indent-line-to (* (+ 2 (nth 0 parse)) cfengine-indent))) ;; Inside brackets/parens: indent to start column of non-comment @@ -411,18 +433,18 @@ Intended as the value of `indent-line-function'." (set (make-local-variable 'parse-sexp-ignore-comments) t)) (defun cfengine-common-syntax (table) - ;; the syntax defaults seem OK to give reasonable word movement + ;; The syntax defaults seem OK to give reasonable word movement. (modify-syntax-entry ?# "<" table) (modify-syntax-entry ?\n ">#" table) (modify-syntax-entry ?\" "\"" table) - ;; variable substitution: + ;; Variable substitution. (modify-syntax-entry ?$ "." table) - ;; Doze path separators: + ;; Doze path separators. (modify-syntax-entry ?\\ "." table)) ;;;###autoload -(define-derived-mode cfengine3-mode prog-mode "CFEngine3" - "Major mode for editing cfengine input. +(define-derived-mode cfengine3-mode prog-mode "CFE3" + "Major mode for editing CFEngine3 input. There are no special keybindings by default. Action blocks are treated as defuns, i.e. \\[beginning-of-defun] moves @@ -434,46 +456,46 @@ to the action header." (setq font-lock-defaults '(cfengine3-font-lock-keywords nil nil nil beginning-of-defun)) - ;; use defuns as the essential syntax block + ;; Use defuns as the essential syntax block. (set (make-local-variable 'beginning-of-defun-function) #'cfengine3-beginning-of-defun) (set (make-local-variable 'end-of-defun-function) #'cfengine3-end-of-defun)) ;;;###autoload -(define-derived-mode cfengine-mode prog-mode "Cfengine" - "Major mode for editing cfengine input. +(define-derived-mode cfengine2-mode prog-mode "CFE2" + "Major mode for editing CFEngine2 input. There are no special keybindings by default. Action blocks are treated as defuns, i.e. \\[beginning-of-defun] moves to the action header." (cfengine-common-settings) - (cfengine-common-syntax cfengine-mode-syntax-table) + (cfengine-common-syntax cfengine2-mode-syntax-table) ;; Shell commands can be quoted by single, double or back quotes. ;; It's debatable whether we should define string syntax, but it ;; should avoid potential confusion in some cases. - (modify-syntax-entry ?\' "\"" cfengine-mode-syntax-table) - (modify-syntax-entry ?\` "\"" cfengine-mode-syntax-table) + (modify-syntax-entry ?\' "\"" cfengine2-mode-syntax-table) + (modify-syntax-entry ?\` "\"" cfengine2-mode-syntax-table) - (set (make-local-variable 'indent-line-function) #'cfengine-indent-line) + (set (make-local-variable 'indent-line-function) #'cfengine2-indent-line) (set (make-local-variable 'outline-regexp) "[ \t]*\\(\\sw\\|\\s_\\)+:+") - (set (make-local-variable 'outline-level) #'cfengine-outline-level) + (set (make-local-variable 'outline-level) #'cfengine2-outline-level) (set (make-local-variable 'fill-paragraph-function) #'cfengine-fill-paragraph) - (define-abbrev-table 'cfengine-mode-abbrev-table cfengine-mode-abbrevs) + (define-abbrev-table 'cfengine2-mode-abbrev-table cfengine-mode-abbrevs) (setq font-lock-defaults - '(cfengine-font-lock-keywords nil nil nil beginning-of-line)) + '(cfengine2-font-lock-keywords nil nil nil beginning-of-line)) ;; Fixme: set the args of functions in evaluated classes to string ;; syntax, and then obey syntax properties. - (setq imenu-generic-expression cfengine-imenu-expression) + (setq imenu-generic-expression cfengine2-imenu-expression) (set (make-local-variable 'beginning-of-defun-function) - #'cfengine-beginning-of-defun) - (set (make-local-variable 'end-of-defun-function) #'cfengine-end-of-defun)) + #'cfengine2-beginning-of-defun) + (set (make-local-variable 'end-of-defun-function) #'cfengine2-end-of-defun)) ;;;###autoload (defun cfengine-auto-mode () - "Choose between `cfengine-mode' and `cfengine3-mode' depending + "Choose between `cfengine2-mode' and `cfengine3-mode' depending on the buffer contents" (let ((v3 nil)) (save-restriction @@ -481,7 +503,9 @@ on the buffer contents" (while (not (or (eobp) v3)) (setq v3 (looking-at (concat cfengine3-defuns-regex "\\>"))) (forward-line))) - (if v3 (cfengine3-mode) (cfengine-mode)))) + (if v3 (cfengine3-mode) (cfengine2-mode)))) + +(defalias 'cfengine-mode 'cfengine-auto-mode) (provide 'cfengine3) (provide 'cfengine) diff --git a/lisp/progmodes/cmacexp.el b/lisp/progmodes/cmacexp.el index 322492c5566..88c36e8c452 100644 --- a/lisp/progmodes/cmacexp.el +++ b/lisp/progmodes/cmacexp.el @@ -1,6 +1,6 @@ ;;; cmacexp.el --- expand C macros in a region -;; Copyright (C) 1992, 1994, 1996, 2000-2011 Free Software Foundation, Inc. +;; Copyright (C) 1992, 1994, 1996, 2000-2012 Free Software Foundation, Inc. ;; Author: Francesco Potorti` <pot@gnu.org> ;; Adapted-By: ESR diff --git a/lisp/progmodes/compile.el b/lisp/progmodes/compile.el index 73e990e2755..f152209956f 100644 --- a/lisp/progmodes/compile.el +++ b/lisp/progmodes/compile.el @@ -1,6 +1,6 @@ ;;; compile.el --- run compiler as inferior of Emacs, parse error messages -;; Copyright (C) 1985-1987, 1993-1999, 2001-2011 +;; Copyright (C) 1985-1987, 1993-1999, 2001-2012 ;; Free Software Foundation, Inc. ;; Authors: Roland McGrath <roland@gnu.org>, diff --git a/lisp/progmodes/cperl-mode.el b/lisp/progmodes/cperl-mode.el index 13fa310106c..9ea42db2a8c 100644 --- a/lisp/progmodes/cperl-mode.el +++ b/lisp/progmodes/cperl-mode.el @@ -1,6 +1,6 @@ ;;; cperl-mode.el --- Perl code editing commands for Emacs -;; Copyright (C) 1985-1987, 1991-2011 Free Software Foundation, Inc. +;; Copyright (C) 1985-1987, 1991-2012 Free Software Foundation, Inc. ;; Author: Ilya Zakharevich ;; Bob Olson @@ -958,7 +958,7 @@ B) Speed of editing operations. `cperl-array-face' Array names `cperl-hash-face' Hash names `font-lock-comment-face' Comments, PODs and whatever is considered - syntaxically to be not code + syntactically to be not code `font-lock-constant-face' HERE-doc delimiters, labels, delimiters of 2-arg operators s/y/tr/ or of RExen, `font-lock-warning-face' Special-cased m// and s//foo/, @@ -970,7 +970,7 @@ B) Speed of editing operations. `cperl-nonoverridable-face' Non-overridable keywords, modifiers of RExen `font-lock-string-face' Strings, qw() constructs, RExen, POD sections, literal parts and the terminator of formats - and whatever is syntaxically considered + and whatever is syntactically considered as string literals `font-lock-type-face' Overridable keywords `font-lock-variable-name-face' Variable declarations, indirect array and @@ -1537,8 +1537,8 @@ default.) You can always quote (with \\[quoted-insert]) the left since most the time you mean \"less\". CPerl mode tries to guess whether you want to type pair <>, and inserts is if it appropriate. You can set `cperl-electric-parens-string' to the string that -contains the parenths from the above list you want to be electrical. -Electricity of parenths is controlled by `cperl-electric-parens'. +contains the parens from the above list you want to be electrical. +Electricity of parens is controlled by `cperl-electric-parens'. You may also set `cperl-electric-parens-mark' to have electric parens look for active mark and \"embrace\" a region if possible.' @@ -3517,7 +3517,7 @@ Works before syntax recognition is done." (defvar font-lock-warning-face) (defun cperl-find-sub-attrs (&optional st-l b-fname e-fname pos) - "Syntaxically mark (and fontify) attributes of a subroutine. + "Syntactically mark (and fontify) attributes of a subroutine. Should be called with the point before leading colon of an attribute." ;; Works *before* syntax recognition is done (or st-l (setq st-l (list nil))) ; Avoid overwriting '() @@ -4994,7 +4994,7 @@ conditional/loop constructs." (setq top (point)) ;; Plan A: if line has an unfinished paren-group, go to end-of-group (while (= -1 (nth 0 (parse-partial-sexp (point) tmp-end -1))) - (setq top (point))) ; Get the outermost parenths in line + (setq top (point))) ; Get the outermost parens in line (goto-char top) (while (< (point) tmp-end) (parse-partial-sexp (point) tmp-end nil t) ; To start-sexp or eol @@ -5906,7 +5906,7 @@ indentation and initial hashes. Behaves usually outside of comment." 3 font-lock-variable-name-face))) '("\\<for\\(each\\)?\\([ \t]+\\(my\\|local\\|our\\)\\)?[ \t]*\\(\\$[a-zA-Z_][a-zA-Z_0-9]*\\)[ \t]*(" 4 font-lock-variable-name-face) - ;; Avoid $!, and s!!, qq!! etc. when not fontifying syntaxically + ;; Avoid $!, and s!!, qq!! etc. when not fontifying syntactically '("\\(?:^\\|[^smywqrx$]\\)\\(!\\)" 1 font-lock-negation-char-face) '("\\[\\(\\^\\)" 1 font-lock-negation-char-face prepend))) (setq diff --git a/lisp/progmodes/cpp.el b/lisp/progmodes/cpp.el index e5bfda54728..8ecfe79de3b 100644 --- a/lisp/progmodes/cpp.el +++ b/lisp/progmodes/cpp.el @@ -1,6 +1,6 @@ ;;; cpp.el --- highlight or hide text according to cpp conditionals -;; Copyright (C) 1994-1995, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1994-1995, 2001-2012 Free Software Foundation, Inc. ;; Author: Per Abrahamsen <abraham@dina.kvl.dk> ;; Keywords: c, faces, tools diff --git a/lisp/progmodes/cwarn.el b/lisp/progmodes/cwarn.el index 0516aca8d2b..90147700d77 100644 --- a/lisp/progmodes/cwarn.el +++ b/lisp/progmodes/cwarn.el @@ -1,6 +1,6 @@ ;;; cwarn.el --- highlight suspicious C and C++ constructions -;; Copyright (C) 1999-2011 Free Software Foundation, Inc. +;; Copyright (C) 1999-2012 Free Software Foundation, Inc. ;; Author: Anders Lindgren <andersl@andersl.com> ;; Keywords: c, languages, faces diff --git a/lisp/progmodes/dcl-mode.el b/lisp/progmodes/dcl-mode.el index eeb145e2b1a..166065131b2 100644 --- a/lisp/progmodes/dcl-mode.el +++ b/lisp/progmodes/dcl-mode.el @@ -1,6 +1,6 @@ ;;; dcl-mode.el --- major mode for editing DCL command files -;; Copyright (C) 1997, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1997, 2001-2012 Free Software Foundation, Inc. ;; Author: Odd Gripenstam <gripenstamol@decus.se> ;; Maintainer: Odd Gripenstam <gripenstamol@decus.se> diff --git a/lisp/progmodes/delphi.el b/lisp/progmodes/delphi.el index e513b617022..dd8d267683c 100644 --- a/lisp/progmodes/delphi.el +++ b/lisp/progmodes/delphi.el @@ -1,6 +1,6 @@ ;;; delphi.el --- major mode for editing Delphi source (Object Pascal) in Emacs -;; Copyright (C) 1998-1999, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1998-1999, 2001-2012 Free Software Foundation, Inc. ;; Authors: Ray Blaak <blaak@infomatch.com>, ;; Simon South <ssouth@member.fsf.org> diff --git a/lisp/progmodes/ebnf-abn.el b/lisp/progmodes/ebnf-abn.el index b45a47f8a3f..009770eff60 100644 --- a/lisp/progmodes/ebnf-abn.el +++ b/lisp/progmodes/ebnf-abn.el @@ -1,6 +1,6 @@ ;;; ebnf-abn.el --- parser for ABNF (Augmented BNF) -;; Copyright (C) 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 2001-2012 Free Software Foundation, Inc. ;; Author: Vinicius Jose Latorre <viniciusjl@ig.com.br> ;; Maintainer: Vinicius Jose Latorre <viniciusjl@ig.com.br> diff --git a/lisp/progmodes/ebnf-bnf.el b/lisp/progmodes/ebnf-bnf.el index cb8ebf8aab0..7d549cb9b47 100644 --- a/lisp/progmodes/ebnf-bnf.el +++ b/lisp/progmodes/ebnf-bnf.el @@ -1,6 +1,6 @@ ;;; ebnf-bnf.el --- parser for EBNF -;; Copyright (C) 1999-2011 Free Software Foundation, Inc. +;; Copyright (C) 1999-2012 Free Software Foundation, Inc. ;; Author: Vinicius Jose Latorre <viniciusjl@ig.com.br> ;; Maintainer: Vinicius Jose Latorre <viniciusjl@ig.com.br> diff --git a/lisp/progmodes/ebnf-dtd.el b/lisp/progmodes/ebnf-dtd.el index 7b63575195e..be1de11add6 100644 --- a/lisp/progmodes/ebnf-dtd.el +++ b/lisp/progmodes/ebnf-dtd.el @@ -1,6 +1,6 @@ ;;; ebnf-dtd.el --- parser for DTD (Data Type Description for XML) -;; Copyright (C) 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 2001-2012 Free Software Foundation, Inc. ;; Author: Vinicius Jose Latorre <viniciusjl@ig.com.br> ;; Maintainer: Vinicius Jose Latorre <viniciusjl@ig.com.br> diff --git a/lisp/progmodes/ebnf-ebx.el b/lisp/progmodes/ebnf-ebx.el index 7d697e889b7..ae15e09f4ca 100644 --- a/lisp/progmodes/ebnf-ebx.el +++ b/lisp/progmodes/ebnf-ebx.el @@ -1,6 +1,6 @@ ;;; ebnf-ebx.el --- parser for EBNF used to specify XML (EBNFX) -;; Copyright (C) 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 2001-2012 Free Software Foundation, Inc. ;; Author: Vinicius Jose Latorre <viniciusjl@ig.com.br> ;; Maintainer: Vinicius Jose Latorre <viniciusjl@ig.com.br> diff --git a/lisp/progmodes/ebnf-iso.el b/lisp/progmodes/ebnf-iso.el index d33167093a3..f8e2520c29c 100644 --- a/lisp/progmodes/ebnf-iso.el +++ b/lisp/progmodes/ebnf-iso.el @@ -1,6 +1,6 @@ ;;; ebnf-iso.el --- parser for ISO EBNF -;; Copyright (C) 1999-2011 Free Software Foundation, Inc. +;; Copyright (C) 1999-2012 Free Software Foundation, Inc. ;; Author: Vinicius Jose Latorre <viniciusjl@ig.com.br> ;; Maintainer: Vinicius Jose Latorre <viniciusjl@ig.com.br> diff --git a/lisp/progmodes/ebnf-otz.el b/lisp/progmodes/ebnf-otz.el index 0392505972d..0aa2948cf19 100644 --- a/lisp/progmodes/ebnf-otz.el +++ b/lisp/progmodes/ebnf-otz.el @@ -1,6 +1,6 @@ ;;; ebnf-otz.el --- syntactic chart OpTimiZer -;; Copyright (C) 1999-2011 Free Software Foundation, Inc. +;; Copyright (C) 1999-2012 Free Software Foundation, Inc. ;; Author: Vinicius Jose Latorre <viniciusjl@ig.com.br> ;; Maintainer: Vinicius Jose Latorre <viniciusjl@ig.com.br> diff --git a/lisp/progmodes/ebnf-yac.el b/lisp/progmodes/ebnf-yac.el index 5ff239bfa21..56c8dc57e96 100644 --- a/lisp/progmodes/ebnf-yac.el +++ b/lisp/progmodes/ebnf-yac.el @@ -1,6 +1,6 @@ ;;; ebnf-yac.el --- parser for Yacc/Bison -;; Copyright (C) 1999-2011 Free Software Foundation, Inc. +;; Copyright (C) 1999-2012 Free Software Foundation, Inc. ;; Author: Vinicius Jose Latorre <viniciusjl@ig.com.br> ;; Maintainer: Vinicius Jose Latorre <viniciusjl@ig.com.br> diff --git a/lisp/progmodes/ebnf2ps.el b/lisp/progmodes/ebnf2ps.el index d9adff6c8b8..5d0bfad0366 100644 --- a/lisp/progmodes/ebnf2ps.el +++ b/lisp/progmodes/ebnf2ps.el @@ -1,6 +1,6 @@ ;;; ebnf2ps.el --- translate an EBNF to a syntactic chart on PostScript -;; Copyright (C) 1999-2011 Free Software Foundation, Inc. +;; Copyright (C) 1999-2012 Free Software Foundation, Inc. ;; Author: Vinicius Jose Latorre <viniciusjl@ig.com.br> ;; Maintainer: Vinicius Jose Latorre <viniciusjl@ig.com.br> @@ -3260,7 +3260,7 @@ See documentation for `ebnf-terminal-shape', `ebnf-non-terminal-shape' and % --- Corners -%>corner Right Descendent: height arrow corner_RD +%>corner Right Descendant: height arrow corner_RD % _ | arrow % / height > 0 | 0 - none % | | 1 - right @@ -3299,7 +3299,7 @@ See documentation for `ebnf-terminal-shape', `ebnf-non-terminal-shape' and Gstroke }def -%>corner Right Ascendent: height arrow corner_RA +%>corner Right Ascendant: height arrow corner_RA % | arrow % | height > 0 | 0 - none % / | 1 - right @@ -3338,7 +3338,7 @@ See documentation for `ebnf-terminal-shape', `ebnf-non-terminal-shape' and Gstroke }def -%>corner Left Descendent: height arrow corner_LD +%>corner Left Descendant: height arrow corner_LD % _ | arrow % \\ height > 0 | 0 - none % | | 1 - right @@ -3377,7 +3377,7 @@ See documentation for `ebnf-terminal-shape', `ebnf-non-terminal-shape' and Gstroke }def -%>corner Left Ascendent: height arrow corner_LA +%>corner Left Ascendant: height arrow corner_LA % | arrow % | height > 0 | 0 - none % \\ | 1 - right diff --git a/lisp/progmodes/ebrowse.el b/lisp/progmodes/ebrowse.el index dd7a9824af3..4a07392c309 100644 --- a/lisp/progmodes/ebrowse.el +++ b/lisp/progmodes/ebrowse.el @@ -1,6 +1,6 @@ ;;; ebrowse.el --- Emacs C++ class browser & tags facility -;; Copyright (C) 1992-2011 Free Software Foundation, Inc. +;; Copyright (C) 1992-2012 Free Software Foundation, Inc. ;; Author: Gerd Moellmann <gerd@gnu.org> ;; Maintainer: FSF diff --git a/lisp/progmodes/etags.el b/lisp/progmodes/etags.el index 2d0b18f3dae..56f04751bda 100644 --- a/lisp/progmodes/etags.el +++ b/lisp/progmodes/etags.el @@ -1,6 +1,6 @@ ;;; etags.el --- etags facility for Emacs -;; Copyright (C) 1985-1986, 1988-1989, 1992-1996, 1998, 2000-2011 +;; Copyright (C) 1985-1986, 1988-1989, 1992-1996, 1998, 2000-2012 ;; Free Software Foundation, Inc. ;; Author: Roland McGrath <roland@gnu.org> diff --git a/lisp/progmodes/executable.el b/lisp/progmodes/executable.el index 281fa3cef72..c44f1d73501 100644 --- a/lisp/progmodes/executable.el +++ b/lisp/progmodes/executable.el @@ -1,6 +1,6 @@ ;;; executable.el --- base functionality for executable interpreter scripts -*- byte-compile-dynamic: t -*- -;; Copyright (C) 1994-1996, 2000-2011 Free Software Foundation, Inc. +;; Copyright (C) 1994-1996, 2000-2012 Free Software Foundation, Inc. ;; Author: Daniel Pfeiffer <occitan@esperanto.org> ;; Keywords: languages, unix diff --git a/lisp/progmodes/f90.el b/lisp/progmodes/f90.el index 95b8d810028..25f8107340a 100644 --- a/lisp/progmodes/f90.el +++ b/lisp/progmodes/f90.el @@ -1,6 +1,6 @@ ;;; f90.el --- Fortran-90 mode (free format) -;; Copyright (C) 1995-1997, 2000-2011 Free Software Foundation, Inc. +;; Copyright (C) 1995-1997, 2000-2012 Free Software Foundation, Inc. ;; Author: Torbjörn Einarsson <Torbjorn.Einarsson@era.ericsson.se> ;; Maintainer: Glenn Morris <rgm@gnu.org> diff --git a/lisp/progmodes/flymake.el b/lisp/progmodes/flymake.el index 1c138f053d3..fee45fcb3e8 100644 --- a/lisp/progmodes/flymake.el +++ b/lisp/progmodes/flymake.el @@ -1,6 +1,6 @@ ;;; flymake.el -- a universal on-the-fly syntax checker -;; Copyright (C) 2003-2011 Free Software Foundation, Inc. +;; Copyright (C) 2003-2012 Free Software Foundation, Inc. ;; Author: Pavel Kobyakov <pk_at_work@yahoo.com> ;; Maintainer: Pavel Kobyakov <pk_at_work@yahoo.com> diff --git a/lisp/progmodes/fortran.el b/lisp/progmodes/fortran.el index 2dac46a6d5b..8d488fe9be4 100644 --- a/lisp/progmodes/fortran.el +++ b/lisp/progmodes/fortran.el @@ -1,6 +1,6 @@ ;;; fortran.el --- Fortran mode for GNU Emacs -;; Copyright (C) 1986, 1993-1995, 1997-2011 Free Software Foundation, Inc. +;; Copyright (C) 1986, 1993-1995, 1997-2012 Free Software Foundation, Inc. ;; Author: Michael D. Prange <prange@erl.mit.edu> ;; Maintainer: Glenn Morris <rgm@gnu.org> diff --git a/lisp/progmodes/gdb-mi.el b/lisp/progmodes/gdb-mi.el index 86d4a72f408..ff2a5f3f3e7 100644 --- a/lisp/progmodes/gdb-mi.el +++ b/lisp/progmodes/gdb-mi.el @@ -1,6 +1,6 @@ ;;; gdb-mi.el --- User Interface for running GDB -;; Copyright (C) 2007-2011 Free Software Foundation, Inc. +;; Copyright (C) 2007-2012 Free Software Foundation, Inc. ;; Author: Nick Roberts <nickrob@gnu.org> ;; Maintainer: FSF @@ -811,8 +811,8 @@ detailed description of this mode. (define-key gud-minor-mode-map [left-margin C-mouse-3] 'gdb-mouse-jump) - (set (make-local-variable 'comint-prompt-regexp) - "^(.*gdb[+]?) *") + (set (make-local-variable 'gud-gdb-completion-function) + 'gud-gdbmi-completions) (add-hook 'completion-at-point-functions #'gud-gdb-completion-at-point nil 'local) @@ -862,31 +862,28 @@ detailed description of this mode. (set-process-filter (get-process "gdb-inferior") 'gdb-inferior-filter) (gdb-input ;; Needs GDB 6.4 onwards - (list (concat "-inferior-tty-set " - (or - ;; The process can run on a remote host. - (process-get (get-process "gdb-inferior") 'remote-tty) - (process-tty-name (get-process "gdb-inferior")))) - 'ignore)) + (concat "-inferior-tty-set " + (or + ;; The process can run on a remote host. + (process-get (get-process "gdb-inferior") 'remote-tty) + (process-tty-name (get-process "gdb-inferior")))) + 'ignore) (if (eq window-system 'w32) - (gdb-input (list "-gdb-set new-console off" 'ignore))) - (gdb-input (list "-gdb-set height 0" 'ignore)) + (gdb-input "-gdb-set new-console off" 'ignore)) + (gdb-input "-gdb-set height 0" 'ignore) (when gdb-non-stop - (gdb-input (list "-gdb-set non-stop 1" 'gdb-non-stop-handler))) + (gdb-input "-gdb-set non-stop 1" 'gdb-non-stop-handler)) - (gdb-input (list "-enable-pretty-printing" 'ignore)) + (gdb-input "-enable-pretty-printing" 'ignore) ;; find source file and compilation directory here (if gdb-create-source-file-list - (gdb-input - ; Needs GDB 6.2 onwards. - (list "-file-list-exec-source-files" 'gdb-get-source-file-list))) - (gdb-input - ; Needs GDB 6.0 onwards. - (list "-file-list-exec-source-file" 'gdb-get-source-file)) - (gdb-input - (list "-gdb-show prompt" 'gdb-get-prompt))) + ;; Needs GDB 6.2 onwards. + (gdb-input "-file-list-exec-source-files" 'gdb-get-source-file-list)) + ;; Needs GDB 6.0 onwards. + (gdb-input "-file-list-exec-source-file" 'gdb-get-source-file) + (gdb-input "-gdb-show prompt" 'gdb-get-prompt)) (defun gdb-non-stop-handler () (goto-char (point-min)) @@ -897,8 +894,8 @@ detailed description of this mode. (setq gdb-non-stop nil) (setq gdb-supports-non-stop nil)) (setq gdb-supports-non-stop t) - (gdb-input (list "-gdb-set target-async 1" 'ignore)) - (gdb-input (list "-list-target-features" 'gdb-check-target-async)))) + (gdb-input "-gdb-set target-async 1" 'ignore) + (gdb-input "-list-target-features" 'gdb-check-target-async))) (defun gdb-check-target-async () (goto-char (point-min)) @@ -906,7 +903,7 @@ detailed description of this mode. (message "Target doesn't support non-stop mode. Turning it off.") (setq gdb-non-stop nil) - (gdb-input (list "-gdb-set non-stop 0" 'ignore)))) + (gdb-input "-gdb-set non-stop 0" 'ignore))) (defvar gdb-define-alist nil "Alist of #define directives for GUD tooltips.") @@ -951,9 +948,8 @@ detailed description of this mode. (goto-char (point-min)) (if (search-forward "expands to: " nil t) (unless (looking-at "\\S-+.*(.*).*") - (gdb-input - (list (concat "-data-evaluate-expression " expr) - `(lambda () (gdb-tooltip-print ,expr)))))))) + (gdb-input (concat "-data-evaluate-expression " expr) + `(lambda () (gdb-tooltip-print ,expr))))))) (defun gdb-init-buffer () (set (make-local-variable 'gud-minor-mode) 'gdbmi) @@ -1083,9 +1079,8 @@ With arg, enter name of variable to be watched in the minibuffer." (concat (if (derived-mode-p 'gdb-registers-mode) "$") (tooltip-identifier-from-point (point))))))) (set-text-properties 0 (length expr) nil expr) - (gdb-input - (list (concat "-var-create - * " expr "") - `(lambda () (gdb-var-create-handler ,expr))))))) + (gdb-input (concat "-var-create - * " expr "") + `(lambda () (gdb-var-create-handler ,expr)))))) (message "gud-watch is a no-op in this mode.")))) (defun gdb-var-create-handler (expr) @@ -1114,7 +1109,7 @@ With arg, enter name of variable to be watched in the minibuffer." (when (and (boundp 'speedbar-frame) (frame-live-p speedbar-frame) (not (gdb-pending-p 'gdb-speedbar-timer))) ;; Dummy command to update speedbar even when idle. - (gdb-input (list "-environment-pwd" 'gdb-speedbar-timer-fn)) + (gdb-input "-environment-pwd" 'gdb-speedbar-timer-fn) ;; Keep gdb-pending-triggers non-nil till end. (gdb-add-pending 'gdb-speedbar-timer))) @@ -1135,12 +1130,9 @@ With arg, enter name of variable to be watched in the minibuffer." ; Uses "-var-list-children --all-values". Needs GDB 6.1 onwards. (defun gdb-var-list-children (varnum) - (gdb-input - (list (concat "-var-update " varnum) 'ignore)) - (gdb-input - (list (concat "-var-list-children --all-values " - varnum) - `(lambda () (gdb-var-list-children-handler ,varnum))))) + (gdb-input (concat "-var-update " varnum) 'ignore) + (gdb-input (concat "-var-list-children --all-values " varnum) + `(lambda () (gdb-var-list-children-handler ,varnum)))) (defun gdb-var-list-children-handler (varnum) (let* ((var-list nil) @@ -1172,13 +1164,11 @@ With arg, enter name of variable to be watched in the minibuffer." "Set the output format for a variable displayed in the speedbar." (let* ((var (nth (- (count-lines (point-min) (point)) 2) gdb-var-list)) (varnum (car var))) - (gdb-input - (list (concat "-var-set-format " varnum " " format) 'ignore)) + (gdb-input (concat "-var-set-format " varnum " " format) 'ignore) (gdb-var-update))) (defun gdb-var-delete-1 (var varnum) - (gdb-input - (list (concat "-var-delete " varnum) 'ignore)) + (gdb-input (concat "-var-delete " varnum) 'ignore) (setq gdb-var-list (delq var gdb-var-list)) (dolist (varchild gdb-var-list) (if (string-match (concat (car var) "\\.") (car varchild)) @@ -1197,17 +1187,15 @@ With arg, enter name of variable to be watched in the minibuffer." (defun gdb-var-delete-children (varnum) "Delete children of variable object at point from the speedbar." - (gdb-input - (list (concat "-var-delete -c " varnum) 'ignore))) + (gdb-input (concat "-var-delete -c " varnum) 'ignore)) (defun gdb-edit-value (_text _token _indent) "Assign a value to a variable displayed in the speedbar." (let* ((var (nth (- (count-lines (point-min) (point)) 2) gdb-var-list)) (varnum (car var)) (value)) (setq value (read-string "New value: ")) - (gdb-input - (list (concat "-var-assign " varnum " " value) - `(lambda () (gdb-edit-value-handler ,value)))))) + (gdb-input (concat "-var-assign " varnum " " value) + `(lambda () (gdb-edit-value-handler ,value))))) (defconst gdb-error-regexp "\\^error,msg=\\(\".+\"\\)") @@ -1219,8 +1207,7 @@ With arg, enter name of variable to be watched in the minibuffer." ; Uses "-var-update --all-values". Needs GDB 6.4 onwards. (defun gdb-var-update () (if (not (gdb-pending-p 'gdb-var-update)) - (gdb-input - (list "-var-update --all-values *" 'gdb-var-update-handler))) + (gdb-input "-var-update --all-values *" 'gdb-var-update-handler)) (gdb-add-pending 'gdb-var-update)) (defun gdb-var-update-handler () @@ -1700,13 +1687,17 @@ static char *magick[] = { gdb-continuation string "\"\n")) (setq gdb-continuation nil)))) -(defun gdb-input (item) - (if gdb-enable-debug (push (cons 'send-item item) gdb-debug-log)) +(defun gdb-input (command handler-function) + "Send COMMAND to GDB via the MI interface. +Run the function HANDLER-FUNCTION, with no arguments, once the command is +complete." + (if gdb-enable-debug (push (list 'send-item command handler-function) + gdb-debug-log)) (setq gdb-token-number (1+ gdb-token-number)) - (setcar item (concat (number-to-string gdb-token-number) (car item))) - (push (cons gdb-token-number (car (cdr item))) gdb-handler-alist) + (setq command (concat (number-to-string gdb-token-number) command)) + (push (cons gdb-token-number handler-function) gdb-handler-alist) (process-send-string (get-buffer-process gud-comint-buffer) - (concat (car item) "\n"))) + (concat command "\n"))) ;; NOFRAME is used for gud execution control commands (defun gdb-current-context-command (command) @@ -1893,15 +1884,16 @@ is running." (let ((record-type (cadr output-record)) (arg1 (nth 2 output-record)) (arg2 (nth 3 output-record))) - (if (eq record-type 'gdb-error) - (gdb-done-or-error arg2 arg1 'error) - (if (eq record-type 'gdb-done) - (gdb-done-or-error arg2 arg1 'done) - ;; Suppress "No registers." since GDB 6.8 and earlier duplicates MI - ;; error message on internal stream. Don't print to GUD buffer. - (unless (and (eq record-type 'gdb-internals) - (string-equal (read arg1) "No registers.\n")) - (funcall record-type arg1)))))) + (cond ((eq record-type 'gdb-error) + (gdb-done-or-error arg2 arg1 'error)) + ((eq record-type 'gdb-done) + (gdb-done-or-error arg2 arg1 'done)) + ;; Suppress "No registers." GDB 6.8 and earlier + ;; duplicates MI error message on internal stream. + ;; Don't print to GUD buffer. + ((not (and (eq record-type 'gdb-internals) + (string-equal (read arg1) "No registers.\n"))) + (funcall record-type arg1))))) (setq gdb-output-sink 'user) ;; Remove padding. @@ -1994,11 +1986,10 @@ current thread and update GDB buffers." ;; -data-list-register-names needs to be issued for any stopped ;; thread (when (not gdb-register-names) - (gdb-input - (list (concat "-data-list-register-names" - (if gdb-supports-non-stop - (concat " --thread " thread-id))) - 'gdb-register-names-handler))) + (gdb-input (concat "-data-list-register-names" + (if gdb-supports-non-stop + (concat " --thread " thread-id))) + 'gdb-register-names-handler)) ;;; Don't set gud-last-frame here as it's currently done in gdb-frame-handler ;;; because synchronous GDB doesn't give these fields with CLI. @@ -2065,9 +2056,7 @@ current thread and update GDB buffers." ;; (frontend MI commands should not print to this stream) (defun gdb-console (output-field) (setq gdb-filter-output - (gdb-concat-output - gdb-filter-output - (read output-field)))) + (gdb-concat-output gdb-filter-output (read output-field)))) (defun gdb-done-or-error (output-field token-number type) (if (string-equal token-number "") @@ -2105,12 +2094,11 @@ current thread and update GDB buffers." (assq-delete-all token-number gdb-handler-alist))))) (defun gdb-concat-output (so-far new) - (let ((sink gdb-output-sink)) - (cond - ((eq sink 'user) (concat so-far new)) - ((eq sink 'emacs) - (gdb-append-to-partial-output new) - so-far)))) + (cond + ((eq gdb-output-sink 'user) (concat so-far new)) + ((eq gdb-output-sink 'emacs) + (gdb-append-to-partial-output new) + so-far))) (defun gdb-append-to-partial-output (string) (with-current-buffer (gdb-get-buffer-create 'gdb-partial-output-buffer) @@ -2320,9 +2308,8 @@ trigger argument when describing buffer types with (memq signal ,signal-list)) (when (not (gdb-pending-p (cons (current-buffer) ',trigger-name))) - (gdb-input - (list ,gdb-command - (gdb-bind-function-to-buffer ',handler-name (current-buffer)))) + (gdb-input ,gdb-command + (gdb-bind-function-to-buffer ',handler-name (current-buffer))) (gdb-add-pending (cons (current-buffer) ',trigger-name)))))) ;; Used by disassembly buffer only, the rest use @@ -2449,13 +2436,10 @@ HANDLER-NAME handler uses customization of CUSTOM-DEFUN. See ;; Only want one breakpoint icon at each location. (gdb-put-breakpoint-icon (string-equal flag "y") bptno (string-to-number line))) - (gdb-input - (list (concat "list " file ":1") - 'ignore)) - (gdb-input - (list "-file-list-exec-source-file" - `(lambda () (gdb-get-location - ,bptno ,line ,flag)))))))))) + (gdb-input (concat "list " file ":1") 'ignore) + (gdb-input "-file-list-exec-source-file" + `(lambda () (gdb-get-location + ,bptno ,line ,flag))))))))) (defvar gdb-source-file-regexp "fullname=\"\\(.*?\\)\"") @@ -2785,7 +2769,7 @@ on the current line." (def-gdb-thread-buffer-command gdb-select-thread (let ((new-id (bindat-get-field thread 'id))) (gdb-setq-thread-number new-id) - (gdb-input (list (concat "-thread-select " new-id) 'ignore)) + (gdb-input (concat "-thread-select " new-id) 'ignore) (gdb-update)) "Select the thread at current line of threads buffer.") @@ -3541,8 +3525,8 @@ member." (if (gdb-buffer-shows-main-thread-p) (let ((new-level (bindat-get-field frame 'level))) (setq gdb-frame-number new-level) - (gdb-input (list (concat "-stack-select-frame " new-level) - 'ignore)) + (gdb-input (concat "-stack-select-frame " new-level) + 'ignore) (gdb-update)) (error "Could not select frame for non-current thread")) (error "Not recognized as frame line")))) @@ -3770,14 +3754,11 @@ member." ;; Needs GDB 6.4 onwards (used to fail with no stack). (defun gdb-get-changed-registers () - (if (and (gdb-get-buffer 'gdb-registers-buffer) - (not (gdb-pending-p 'gdb-get-changed-registers))) - (progn - (gdb-input - (list - "-data-list-changed-registers" - 'gdb-changed-registers-handler)) - (gdb-add-pending 'gdb-get-changed-registers)))) + (when (and (gdb-get-buffer 'gdb-registers-buffer) + (not (gdb-pending-p 'gdb-get-changed-registers))) + (gdb-input "-data-list-changed-registers" + 'gdb-changed-registers-handler) + (gdb-add-pending 'gdb-get-changed-registers))) (defun gdb-changed-registers-handler () (gdb-delete-pending 'gdb-get-changed-registers) @@ -3806,18 +3787,15 @@ is set in them." (dolist (buffer (buffer-list)) (with-current-buffer buffer (when (member buffer-file-name gdb-source-file-list) - (gdb-init-buffer)))) - (gdb-force-mode-line-update - (propertize "ready" 'face font-lock-variable-name-face))) + (gdb-init-buffer))))) (defun gdb-get-main-selected-frame () "Trigger for `gdb-frame-handler' which uses main current thread. Called from `gdb-update'." (if (not (gdb-pending-p 'gdb-get-main-selected-frame)) (progn - (gdb-input - (list (gdb-current-context-command "-stack-info-frame") - 'gdb-frame-handler)) + (gdb-input (gdb-current-context-command "-stack-info-frame") + 'gdb-frame-handler) (gdb-add-pending 'gdb-get-main-selected-frame)))) (defun gdb-frame-handler () @@ -3865,7 +3843,7 @@ overlay arrow in source buffer." If BUF is already displayed in some window, show it, deiconifying the frame if necessary. Otherwise, find least recently used window and show BUF there, if the window is not used for GDB -already, in which case that window is splitted first." +already, in which case that window is split first." (let ((answer (get-buffer-window buf (or frame 0)))) (if answer (display-buffer buf nil (or frame 0)) ;Deiconify frame if necessary. @@ -4148,7 +4126,9 @@ buffers, if required." (gdb-get-buffer-create 'gdb-breakpoints-buffer) (if (and gdb-show-main gdb-main-file) (let ((pop-up-windows t)) - (display-buffer (gud-find-file gdb-main-file)))))) + (display-buffer (gud-find-file gdb-main-file))))) + (gdb-force-mode-line-update + (propertize "ready" 'face font-lock-variable-name-face))) ;;from put-image (defun gdb-put-string (putstring pos &optional dprop &rest sprops) @@ -4259,6 +4239,42 @@ BUFFER nil or omitted means use the current buffer." (set-window-margins window left-margin-width right-margin-width))))) + +;;; Functions for inline completion. + +(defvar gud-gdb-fetch-lines-in-progress) +(defvar gud-gdb-fetch-lines-string) +(defvar gud-gdb-fetch-lines-break) +(defvar gud-gdb-fetched-lines) + +(defun gud-gdbmi-completions (context command) + "Completion table for GDB/MI commands. +COMMAND is the prefix for which we seek completion. +CONTEXT is the text before COMMAND on the line." + (let ((gud-gdb-fetch-lines-in-progress t) + (gud-gdb-fetch-lines-string nil) + (gud-gdb-fetch-lines-break (length context)) + (gud-gdb-fetched-lines nil) + ;; This filter dumps output lines to `gud-gdb-fetched-lines'. + (gud-marker-filter #'gud-gdbmi-fetch-lines-filter) + complete-list) + (with-current-buffer (gdb-get-buffer 'gdb-partial-output-buffer) + (gdb-input (concat "complete " context command) + (lambda () (setq gud-gdb-fetch-lines-in-progress nil))) + (while gud-gdb-fetch-lines-in-progress + (accept-process-output (get-buffer-process gud-comint-buffer)))) + (gud-gdb-completions-1 gud-gdb-fetched-lines))) + +(defun gud-gdbmi-fetch-lines-filter (string) + "Custom filter function for `gud-gdbmi-completions'." + (setq string (concat gud-gdb-fetch-lines-string + (gud-gdbmi-marker-filter string))) + (while (string-match "\n" string) + (push (substring string gud-gdb-fetch-lines-break (match-beginning 0)) + gud-gdb-fetched-lines) + (setq string (substring string (match-end 0)))) + "") + (provide 'gdb-mi) ;;; gdb-mi.el ends here diff --git a/lisp/progmodes/glasses.el b/lisp/progmodes/glasses.el index 6792e861888..fb0489f185c 100644 --- a/lisp/progmodes/glasses.el +++ b/lisp/progmodes/glasses.el @@ -1,6 +1,6 @@ ;;; glasses.el --- make cantReadThis readable -;; Copyright (C) 1999-2011 Free Software Foundation, Inc. +;; Copyright (C) 1999-2012 Free Software Foundation, Inc. ;; Author: Milan Zamazal <pdm@zamazal.org> ;; Maintainer: Milan Zamazal <pdm@zamazal.org> diff --git a/lisp/progmodes/grep.el b/lisp/progmodes/grep.el index b379ce67fd7..697af76acc9 100644 --- a/lisp/progmodes/grep.el +++ b/lisp/progmodes/grep.el @@ -1,6 +1,6 @@ ;;; grep.el --- run `grep' and display the results -;; Copyright (C) 1985-1987, 1993-1999, 2001-2011 +;; Copyright (C) 1985-1987, 1993-1999, 2001-2012 ;; Free Software Foundation, Inc. ;; Author: Roland McGrath <roland@gnu.org> @@ -959,7 +959,10 @@ can use \\[next-error] (M-x next-error), or \\<grep-mode-map>\\[compile-goto-err in the grep output buffer, to go to the lines where grep found matches. -This command shares argument histories with \\[lgrep] and \\[grep-find]." +This command shares argument histories with \\[lgrep] and \\[grep-find]. + +When called programmatically and FILES is nil, REGEXP is expected +to specify a command to run." (interactive (progn (grep-compute-defaults) diff --git a/lisp/progmodes/gud.el b/lisp/progmodes/gud.el index de8da09768d..5fabe5086db 100644 --- a/lisp/progmodes/gud.el +++ b/lisp/progmodes/gud.el @@ -1,6 +1,6 @@ ;;; gud.el --- Grand Unified Debugger mode for running GDB and other debuggers -;; Copyright (C) 1992-1996, 1998, 2000-2011 Free Software Foundation, Inc. +;; Copyright (C) 1992-1996, 1998, 2000-2012 Free Software Foundation, Inc. ;; Author: Eric S. Raymond <esr@snark.thyrsus.com> ;; Maintainer: FSF @@ -756,6 +756,8 @@ directory and source-file directory for your debugger." (add-hook 'completion-at-point-functions #'gud-gdb-completion-at-point nil 'local) + (set (make-local-variable 'gud-gdb-completion-function) 'gud-gdb-completions) + (local-set-key "\C-i" 'completion-at-point) (setq comint-prompt-regexp "^(.*gdb[+]?) *") (setq paragraph-start comint-prompt-regexp) @@ -768,6 +770,12 @@ directory and source-file directory for your debugger." ;; context-sensitive command completion. We preserve that feature ;; in the GUD buffer by using a GDB command designed just for Emacs. +(defvar gud-gdb-completion-function nil + "Completion function for GDB commands. +It receives two arguments: COMMAND, the prefix for which we seek +completion; and CONTEXT, the text before COMMAND on the line. +It should return a list of completion strings.") + ;; The completion process filter indicates when it is finished. (defvar gud-gdb-fetch-lines-in-progress) @@ -806,28 +814,32 @@ CONTEXT is the text before COMMAND on the line." (and complete-list (string-match "^Undefined command: \"complete\"" (car complete-list)) (error "This version of GDB doesn't support the `complete' command")) - ;; Sort the list like readline. - (setq complete-list (sort complete-list (function string-lessp))) - ;; Remove duplicates. - (let ((first complete-list) - (second (cdr complete-list))) - (while second - (if (string-equal (car first) (car second)) - (setcdr first (setq second (cdr second))) - (setq first second - second (cdr second))))) - ;; Add a trailing single quote if there is a unique completion - ;; and it contains an odd number of unquoted single quotes. - (and (= (length complete-list) 1) - (let ((str (car complete-list)) - (pos 0) - (count 0)) - (while (string-match "\\([^'\\]\\|\\\\'\\)*'" str pos) - (setq count (1+ count) - pos (match-end 0))) - (and (= (mod count 2) 1) - (setq complete-list (list (concat str "'")))))) - complete-list)) + (gud-gdb-completions-1 complete-list))) + +;; This function is also used by `gud-gdbmi-completions'. +(defun gud-gdb-completions-1 (complete-list) + ;; Sort the list like readline. + (setq complete-list (sort complete-list (function string-lessp))) + ;; Remove duplicates. + (let ((first complete-list) + (second (cdr complete-list))) + (while second + (if (string-equal (car first) (car second)) + (setcdr first (setq second (cdr second))) + (setq first second + second (cdr second))))) + ;; Add a trailing single quote if there is a unique completion + ;; and it contains an odd number of unquoted single quotes. + (and (= (length complete-list) 1) + (let ((str (car complete-list)) + (pos 0) + (count 0)) + (while (string-match "\\([^'\\]\\|\\\\'\\)*'" str pos) + (setq count (1+ count) + pos (match-end 0))) + (and (= (mod count 2) 1) + (setq complete-list (list (concat str "'")))))) + complete-list) (defun gud-gdb-completion-at-point () "Return the data to complete the GDB command before point." @@ -838,7 +850,7 @@ CONTEXT is the text before COMMAND on the line." (point)))) (list start end (completion-table-dynamic - (apply-partially #'gud-gdb-completions + (apply-partially gud-gdb-completion-function (buffer-substring (comint-line-beginning-position) start)))))) @@ -851,11 +863,11 @@ CONTEXT is the text before COMMAND on the line." ;; The completion process filter is installed temporarily to slurp the ;; output of GDB up to the next prompt and build the completion list. -(defun gud-gdb-fetch-lines-filter (string filter) +(defun gud-gdb-fetch-lines-filter (string) "Filter used to read the list of lines output by a command. STRING is the output to filter. -It is passed through FILTER before we look at it." - (setq string (funcall filter string)) +It is passed through `gud-gdb-marker-filter' before we look at it." + (setq string (gud-gdb-marker-filter string)) (setq string (concat gud-gdb-fetch-lines-string string)) (while (string-match "\n" string) (push (substring string gud-gdb-fetch-lines-break (match-beginning 0)) @@ -880,17 +892,6 @@ It is passed through FILTER before we look at it." (defvar gud-gdb-fetched-stack-frame nil "Stack frames we are fetching from GDB.") -;(defun gud-gdb-get-scope-data (text token indent) -; ;; checkdoc-params: (indent) -; "Fetch data associated with a stack frame, and expand/contract it. -;Data to do this is retrieved from TEXT and TOKEN." -; (let ((args nil) (scope nil)) -; (gud-gdb-run-command-fetch-lines "info args") -; -; (gud-gdb-run-command-fetch-lines "info local") -; -; )) - (defun gud-gdb-get-stackframe (buffer) "Extract the current stack frame out of the GUD GDB BUFFER." (let ((newlst nil) @@ -934,21 +935,16 @@ It is passed through FILTER before we look at it." BUFFER is the current buffer which may be the GUD buffer in which to run. SKIP is the number of chars to skip on each line, it defaults to 0." (with-current-buffer gud-comint-buffer - (if (and (eq gud-comint-buffer buffer) - (save-excursion - (goto-char (point-max)) - (forward-line 0) - (not (looking-at comint-prompt-regexp)))) - nil - ;; Much of this copied from GDB complete, but I'm grabbing the stack - ;; frame instead. + (unless (and (eq gud-comint-buffer buffer) + (save-excursion + (goto-char (point-max)) + (forward-line 0) + (not (looking-at comint-prompt-regexp)))) (let ((gud-gdb-fetch-lines-in-progress t) (gud-gdb-fetched-lines nil) (gud-gdb-fetch-lines-string nil) (gud-gdb-fetch-lines-break (or skip 0)) - (gud-marker-filter - `(lambda (string) - (gud-gdb-fetch-lines-filter string ',gud-marker-filter)))) + (gud-marker-filter #'gud-gdb-fetch-lines-filter)) ;; Issue the command to GDB. (gud-basic-call command) ;; Slurp the output. @@ -3422,7 +3418,7 @@ With arg, dereference expr if ARG is positive, otherwise do not dereference." ((xdb pdb) (concat "p " expr)) (sdb (concat expr "/")))) -(declare-function gdb-input "gdb-mi" (item)) +(declare-function gdb-input "gdb-mi" (command handler)) (declare-function tooltip-expr-to-print "tooltip" (event)) (declare-function tooltip-event-buffer "tooltip" (event)) @@ -3468,12 +3464,12 @@ so they have been disabled.")) (if (eq gud-minor-mode 'gdbmi) (if gdb-macro-info (gdb-input - (list (concat - "server macro expand " expr "\n") - `(lambda () (gdb-tooltip-print-1 ,expr)))) + (concat + "server macro expand " expr "\n") + `(lambda () (gdb-tooltip-print-1 ,expr))) (gdb-input - (list (concat cmd "\n") - `(lambda () (gdb-tooltip-print ,expr))))) + (concat cmd "\n") + `(lambda () (gdb-tooltip-print ,expr)))) (setq gud-tooltip-original-filter (process-filter process)) (set-process-filter process 'gud-tooltip-process-output) (gud-basic-call cmd)) diff --git a/lisp/progmodes/hideif.el b/lisp/progmodes/hideif.el index 82961376669..3e3d7adc0b6 100644 --- a/lisp/progmodes/hideif.el +++ b/lisp/progmodes/hideif.el @@ -1,6 +1,6 @@ ;;; hideif.el --- hides selected code within ifdef -;; Copyright (C) 1988, 1994, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1988, 1994, 2001-2012 Free Software Foundation, Inc. ;; Author: Brian Marick ;; Daniel LaLiberte <liberte@holonexus.org> diff --git a/lisp/progmodes/hideshow.el b/lisp/progmodes/hideshow.el index 9cbc1dc6d32..c9ba5ef2818 100644 --- a/lisp/progmodes/hideshow.el +++ b/lisp/progmodes/hideshow.el @@ -1,6 +1,6 @@ ;;; hideshow.el --- minor mode cmds to selectively display code/comment blocks -;; Copyright (C) 1994-2011 Free Software Foundation, Inc. +;; Copyright (C) 1994-2012 Free Software Foundation, Inc. ;; Author: Thien-Thi Nguyen <ttn@gnu.org> ;; Dan Nicolaescu <dann@ics.uci.edu> diff --git a/lisp/progmodes/icon.el b/lisp/progmodes/icon.el index 5382ce1386d..35c29e10627 100644 --- a/lisp/progmodes/icon.el +++ b/lisp/progmodes/icon.el @@ -1,6 +1,6 @@ ;;; icon.el --- mode for editing Icon code -;; Copyright (C) 1989, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1989, 2001-2012 Free Software Foundation, Inc. ;; Author: Chris Smith <csmith@convex.com> ;; Created: 15 Feb 89 diff --git a/lisp/progmodes/idlw-complete-structtag.el b/lisp/progmodes/idlw-complete-structtag.el index a967fc03e40..246ba8f29cd 100644 --- a/lisp/progmodes/idlw-complete-structtag.el +++ b/lisp/progmodes/idlw-complete-structtag.el @@ -1,6 +1,6 @@ ;;; idlw-complete-structtag.el --- Completion of structure tags. -;; Copyright (C) 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 2001-2012 Free Software Foundation, Inc. ;; Author: Carsten Dominik <dominik@astro.uva.nl> ;; Maintainer: J.D. Smith <jdsmith@as.arizona.edu> diff --git a/lisp/progmodes/idlw-help.el b/lisp/progmodes/idlw-help.el index 0266fc17f9c..f2f9fd30ed4 100644 --- a/lisp/progmodes/idlw-help.el +++ b/lisp/progmodes/idlw-help.el @@ -1,6 +1,6 @@ ;;; idlw-help.el --- HTML Help code for IDLWAVE -;; Copyright (C) 2000-2011 Free Software Foundation, Inc. +;; Copyright (C) 2000-2012 Free Software Foundation, Inc. ;; ;; Authors: J.D. Smith <jdsmith@as.arizona.edu> ;; Carsten Dominik <dominik@science.uva.nl> diff --git a/lisp/progmodes/idlw-shell.el b/lisp/progmodes/idlw-shell.el index aa46b54d848..619b903e902 100644 --- a/lisp/progmodes/idlw-shell.el +++ b/lisp/progmodes/idlw-shell.el @@ -1,6 +1,6 @@ ;; idlw-shell.el --- run IDL as an inferior process of Emacs. -;; Copyright (C) 1999-2011 Free Software Foundation, Inc. +;; Copyright (C) 1999-2012 Free Software Foundation, Inc. ;; Authors: J.D. Smith <jdsmith@as.arizona.edu> ;; Carsten Dominik <dominik@astro.uva.nl> diff --git a/lisp/progmodes/idlw-toolbar.el b/lisp/progmodes/idlw-toolbar.el index d4eddee9722..1dad455d37e 100644 --- a/lisp/progmodes/idlw-toolbar.el +++ b/lisp/progmodes/idlw-toolbar.el @@ -1,6 +1,6 @@ ;;; idlw-toolbar.el --- a debugging toolbar for IDLWAVE -;; Copyright (C) 1999-2011 Free Software Foundation, Inc. +;; Copyright (C) 1999-2012 Free Software Foundation, Inc. ;; Author: Carsten Dominik <dominik@astro.uva.nl> ;; Maintainer: J.D. Smith <jdsmith@as.arizona.edu> diff --git a/lisp/progmodes/idlwave.el b/lisp/progmodes/idlwave.el index 24deb569d74..31fe20698b9 100644 --- a/lisp/progmodes/idlwave.el +++ b/lisp/progmodes/idlwave.el @@ -1,6 +1,6 @@ ;; idlwave.el --- IDL editing mode for GNU Emacs -;; Copyright (C) 1999-2011 Free Software Foundation, Inc. +;; Copyright (C) 1999-2012 Free Software Foundation, Inc. ;; Authors: J.D. Smith <jdsmith@as.arizona.edu> ;; Carsten Dominik <dominik@science.uva.nl> @@ -2464,7 +2464,7 @@ If prefix ARG < 0 then move forward to enclosing block end." (defun idlwave-down-block (&optional arg) "Go down a block. With ARG: ARG >= 0 go forwards, ARG < 0 go backwards. -Returns non-nil if successfull." +Returns non-nil if successful." (interactive "p") (let (status) (if (< arg 0) @@ -7855,7 +7855,7 @@ Restore the pre-completion window configuration if possible." If point is on a keyword, help for that keyword will be shown. If point is on a routine name or in the argument list of a routine, help for that routine will be displayed. Works for system routines and -keywords, it pulls up text help. For other routies and keywords, +keywords, it pulls up text help. For other routines and keywords, visits the source file, finding help in the header (if `idlwave-help-source-try-header' is non-nil) or the routine definition itself." diff --git a/lisp/progmodes/inf-lisp.el b/lisp/progmodes/inf-lisp.el index dd24aeea9a3..73e167d1587 100644 --- a/lisp/progmodes/inf-lisp.el +++ b/lisp/progmodes/inf-lisp.el @@ -1,6 +1,6 @@ ;;; inf-lisp.el --- an inferior-lisp mode -;; Copyright (C) 1988, 1993-1994, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1988, 1993-1994, 2001-2012 Free Software Foundation, Inc. ;; Author: Olin Shivers <shivers@cs.cmu.edu> ;; Keywords: processes, lisp diff --git a/lisp/progmodes/js.el b/lisp/progmodes/js.el index f0c86265232..69da6737520 100644 --- a/lisp/progmodes/js.el +++ b/lisp/progmodes/js.el @@ -1,6 +1,6 @@ ;;; js.el --- Major mode for editing JavaScript -;; Copyright (C) 2008-2011 Free Software Foundation, Inc. +;; Copyright (C) 2008-2012 Free Software Foundation, Inc. ;; Author: Karl Landstrom <karl.landstrom@brgeight.se> ;; Daniel Colascione <dan.colascione@gmail.com> @@ -369,7 +369,8 @@ Match group 1 is the name of the macro.") ;; must be h-end. ;; ;; js--pitem instances are never modified (with the exception -;; of the b-end field). Instead, modified copies are added at subseqnce parse points. +;; of the b-end field). Instead, modified copies are added at +;; subsequence parse points. ;; (The exception for b-end and its caveats is described below.) ;; diff --git a/lisp/progmodes/ld-script.el b/lisp/progmodes/ld-script.el index c682bfa0280..9cbed855d5e 100644 --- a/lisp/progmodes/ld-script.el +++ b/lisp/progmodes/ld-script.el @@ -1,6 +1,6 @@ ;;; ld-script.el --- GNU linker script editing mode for Emacs -;; Copyright (C) 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 2001-2012 Free Software Foundation, Inc. ;; Author: Masatake YAMATO<jet@gyve.org> ;; Keywords: languages, faces diff --git a/lisp/progmodes/m4-mode.el b/lisp/progmodes/m4-mode.el index 98df1c69468..b1884bd105b 100644 --- a/lisp/progmodes/m4-mode.el +++ b/lisp/progmodes/m4-mode.el @@ -1,6 +1,6 @@ ;;; m4-mode.el --- m4 code editing commands for Emacs -;; Copyright (C) 1996-1997, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1996-1997, 2001-2012 Free Software Foundation, Inc. ;; Author: Andrew Csillag <drew_csillag@geocities.com> ;; Maintainer: Andrew Csillag <drew_csillag@geocities.com> diff --git a/lisp/progmodes/make-mode.el b/lisp/progmodes/make-mode.el index 024744957c6..b4ca1ba665f 100644 --- a/lisp/progmodes/make-mode.el +++ b/lisp/progmodes/make-mode.el @@ -1,6 +1,6 @@ ;;; make-mode.el --- makefile editing commands for Emacs -*- lexical-binding:t -*- -;; Copyright (C) 1992, 1994, 1999-2011 Free Software Foundation, Inc. +;; Copyright (C) 1992, 1994, 1999-2012 Free Software Foundation, Inc. ;; Author: Thomas Neumann <tom@smart.bo.open.de> ;; Eric S. Raymond <esr@snark.thyrsus.com> diff --git a/lisp/progmodes/mantemp.el b/lisp/progmodes/mantemp.el index c8963d2a6dd..a2a976a6d37 100644 --- a/lisp/progmodes/mantemp.el +++ b/lisp/progmodes/mantemp.el @@ -1,6 +1,6 @@ ;;; mantemp.el --- create manual template instantiations from g++ 2.7.2 output -;; Copyright (C) 1996, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1996, 2001-2012 Free Software Foundation, Inc. ;; Author: Tom Houlder <thoulder@icor.fr> ;; Created: 10 Dec 1996 diff --git a/lisp/progmodes/meta-mode.el b/lisp/progmodes/meta-mode.el index d0a34179cc8..d0432f58d60 100644 --- a/lisp/progmodes/meta-mode.el +++ b/lisp/progmodes/meta-mode.el @@ -1,6 +1,6 @@ ;;; meta-mode.el --- major mode for editing Metafont or MetaPost sources -*- lexical-binding:t -*- -;; Copyright (C) 1997, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1997, 2001-2012 Free Software Foundation, Inc. ;; Author: Ulrik Vieth <vieth@thphy.uni-duesseldorf.de> ;; Version: 1.0 @@ -384,7 +384,7 @@ Each entry is a list with the following elements: 1. Regexp matching the preceding text. 2. A number indicating the subgroup in the regexp containing the text. 3. A function returning an alist of possible completions. -4. Text to append after a succesful completion (if any). +4. Text to append after a successful completion (if any). Or alternatively: 1. Regexp matching the preceding text. diff --git a/lisp/progmodes/mixal-mode.el b/lisp/progmodes/mixal-mode.el index 7d1f12595ab..b152f7367eb 100644 --- a/lisp/progmodes/mixal-mode.el +++ b/lisp/progmodes/mixal-mode.el @@ -1,6 +1,6 @@ ;;; mixal-mode.el --- Major mode for the mix asm language. -;; Copyright (C) 2003-2011 Free Software Foundation, Inc. +;; Copyright (C) 2003-2012 Free Software Foundation, Inc. ;; Author: Pieter E.J. Pareit <pieter.pareit@gmail.com> ;; Maintainer: Pieter E.J. Pareit <pieter.pareit@gmail.com> diff --git a/lisp/progmodes/octave-inf.el b/lisp/progmodes/octave-inf.el index 421f476016e..40469b75b9f 100644 --- a/lisp/progmodes/octave-inf.el +++ b/lisp/progmodes/octave-inf.el @@ -1,6 +1,6 @@ ;;; octave-inf.el --- running Octave as an inferior Emacs process -;; Copyright (C) 1997, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1997, 2001-2012 Free Software Foundation, Inc. ;; Author: Kurt Hornik <Kurt.Hornik@wu-wien.ac.at> ;; Author: John Eaton <jwe@bevo.che.wisc.edu> diff --git a/lisp/progmodes/octave-mod.el b/lisp/progmodes/octave-mod.el index 28e25a35c70..668c3d147c6 100644 --- a/lisp/progmodes/octave-mod.el +++ b/lisp/progmodes/octave-mod.el @@ -1,6 +1,6 @@ ;;; octave-mod.el --- editing Octave source files under Emacs -;; Copyright (C) 1997, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1997, 2001-2012 Free Software Foundation, Inc. ;; Author: Kurt Hornik <Kurt.Hornik@wu-wien.ac.at> ;; Author: John Eaton <jwe@octave.org> diff --git a/lisp/progmodes/pascal.el b/lisp/progmodes/pascal.el index 2db4309d9e0..db15e3c6f27 100644 --- a/lisp/progmodes/pascal.el +++ b/lisp/progmodes/pascal.el @@ -1,6 +1,6 @@ ;;; pascal.el --- major mode for editing pascal source in Emacs -*- lexical-binding: t -*- -;; Copyright (C) 1993-2011 Free Software Foundation, Inc. +;; Copyright (C) 1993-2012 Free Software Foundation, Inc. ;; Author: Espen Skoglund <esk@gnu.org> ;; Keywords: languages diff --git a/lisp/progmodes/perl-mode.el b/lisp/progmodes/perl-mode.el index f051b49fe2a..e7afd0e0e67 100644 --- a/lisp/progmodes/perl-mode.el +++ b/lisp/progmodes/perl-mode.el @@ -1,6 +1,6 @@ ;;; perl-mode.el --- Perl code editing commands for GNU Emacs -;; Copyright (C) 1990, 1994, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1990, 1994, 2001-2012 Free Software Foundation, Inc. ;; Author: William F. Mann ;; Maintainer: FSF diff --git a/lisp/progmodes/prolog.el b/lisp/progmodes/prolog.el index 5b229cc0c24..b531fc0dc9c 100644 --- a/lisp/progmodes/prolog.el +++ b/lisp/progmodes/prolog.el @@ -1,6 +1,6 @@ ;;; prolog.el --- major mode for editing and running Prolog (and Mercury) code -;; Copyright (C) 1986-1987, 1997-1999, 2002-2003, 2011 +;; Copyright (C) 1986-1987, 1997-1999, 2002-2003, 2011-2012 ;; Free Software Foundation, Inc. ;; Authors: Emil Åström <emil_astrom(at)hotmail(dot)com> @@ -147,9 +147,9 @@ ;; o Introduced three new customizable variables: electric colon ;; (`prolog-electric-colon-flag', default nil), electric dash ;; (`prolog-electric-dash-flag', default nil), and a possibility -;; to prevent the predicate template insertion from adding commata +;; to prevent the predicate template insertion from adding commas ;; (`prolog-electric-dot-full-predicate-template', defaults to t -;; since it seems quicker to me to just type those commata). A +;; since it seems quicker to me to just type those commas). A ;; trivial adaptation of a patch by Markus Triska. ;; o Improved the behavior of electric if-then-else to only skip ;; forward if the parenthesis/semicolon is preceded by @@ -512,7 +512,7 @@ It does not apply in strings and comments." (defcustom prolog-electric-dot-full-predicate-template nil "*If nil, electric dot inserts only the current predicate's name and `(' for recursive calls or new clause heads. Non-nil means to also -insert enough commata to cover the predicate's arity and `)', +insert enough commas to cover the predicate's arity and `)', and dot and newline for recursive calls." :group 'prolog-keyboard :type 'boolean) @@ -3262,7 +3262,7 @@ STRING should be given if the last search was by `string-match' on STRING." (defun prolog-clause-start (&optional not-allow-methods) "Return the position at the start of the head of the current clause. If NOTALLOWMETHODS is non-nil then do not match on methods in -objects (relevent only if 'prolog-system' is set to 'sicstus)." +objects (relevant only if 'prolog-system' is set to 'sicstus)." (save-excursion (let ((notdone t) (retval (point-min))) @@ -3328,7 +3328,7 @@ objects (relevent only if 'prolog-system' is set to 'sicstus)." (defun prolog-clause-end (&optional not-allow-methods) "Return the position at the end of the current clause. If NOTALLOWMETHODS is non-nil then do not match on methods in -objects (relevent only if 'prolog-system' is set to 'sicstus)." +objects (relevant only if 'prolog-system' is set to 'sicstus)." (save-excursion (beginning-of-line) ; Necessary since we use "^...." for the search. (if (re-search-forward diff --git a/lisp/progmodes/ps-mode.el b/lisp/progmodes/ps-mode.el index c2adc3b801b..e85fa0476b0 100644 --- a/lisp/progmodes/ps-mode.el +++ b/lisp/progmodes/ps-mode.el @@ -1,6 +1,6 @@ ;;; ps-mode.el --- PostScript mode for GNU Emacs -;; Copyright (C) 1999, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1999, 2001-2012 Free Software Foundation, Inc. ;; Author: Peter Kleiweg <p.c.j.kleiweg@rug.nl> ;; Maintainer: Peter Kleiweg <p.c.j.kleiweg@rug.nl> diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el index fbf7c3c42f7..0c29891cd92 100644 --- a/lisp/progmodes/python.el +++ b/lisp/progmodes/python.el @@ -1,6 +1,6 @@ ;;; python.el --- silly walks for Python -*- coding: iso-8859-1 -*- -;; Copyright (C) 2003-2011 Free Software Foundation, Inc. +;; Copyright (C) 2003-2012 Free Software Foundation, Inc. ;; Author: Dave Love <fx@gnu.org> ;; Maintainer: FSF @@ -2343,7 +2343,7 @@ Interactively, prompt for the name with completion." ;;;; Bicycle Repair Man support (autoload 'pymacs-load "pymacs" nil t) -(autoload 'brm-init "bikemacs") +(autoload 'brm-init "bikeemacs") (defvar brm-menu) ;; I'm not sure how useful BRM really is, and it's certainly dangerous diff --git a/lisp/progmodes/ruby-mode.el b/lisp/progmodes/ruby-mode.el index c8b156c5441..bf264972940 100644 --- a/lisp/progmodes/ruby-mode.el +++ b/lisp/progmodes/ruby-mode.el @@ -1,6 +1,6 @@ ;;; ruby-mode.el --- Major mode for editing Ruby files -;; Copyright (C) 1994-2011 Free Software Foundation, Inc. +;; Copyright (C) 1994-2012 Free Software Foundation, Inc. ;; Authors: Yukihiro Matsumoto ;; Nobuyoshi Nakada diff --git a/lisp/progmodes/scheme.el b/lisp/progmodes/scheme.el index 66300d97621..82a4985015f 100644 --- a/lisp/progmodes/scheme.el +++ b/lisp/progmodes/scheme.el @@ -1,6 +1,6 @@ ;;; scheme.el --- Scheme (and DSSSL) editing mode -;; Copyright (C) 1986-1988, 1997-1998, 2001-2011 +;; Copyright (C) 1986-1988, 1997-1998, 2001-2012 ;; Free Software Foundation, Inc. ;; Author: Bill Rozas <jinx@martigny.ai.mit.edu> diff --git a/lisp/progmodes/sh-script.el b/lisp/progmodes/sh-script.el index 62ca2ce085f..48b19524b8c 100644 --- a/lisp/progmodes/sh-script.el +++ b/lisp/progmodes/sh-script.el @@ -1,6 +1,6 @@ ;;; sh-script.el --- shell-script editing commands for Emacs -;; Copyright (C) 1993-1997, 1999, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1993-1997, 1999, 2001-2012 Free Software Foundation, Inc. ;; Author: Daniel Pfeiffer <occitan@esperanto.org> ;; Version: 2.0f diff --git a/lisp/progmodes/simula.el b/lisp/progmodes/simula.el index dc2773a9efe..7536126e8f1 100644 --- a/lisp/progmodes/simula.el +++ b/lisp/progmodes/simula.el @@ -1,6 +1,6 @@ ;;; simula.el --- SIMULA 87 code editing commands for Emacs -;; Copyright (C) 1992, 1994, 1996, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1992, 1994, 1996, 2001-2012 Free Software Foundation, Inc. ;; Author: Hans Henrik Eriksen <hhe@ifi.uio.no> ;; Maintainer: simula-mode@ifi.uio.no diff --git a/lisp/progmodes/sql.el b/lisp/progmodes/sql.el index 03e095b6bfc..2e59d8f8517 100644 --- a/lisp/progmodes/sql.el +++ b/lisp/progmodes/sql.el @@ -1,6 +1,6 @@ ;;; sql.el --- specialized comint.el for SQL interpreters -;; Copyright (C) 1998-2011 Free Software Foundation, Inc. +;; Copyright (C) 1998-2012 Free Software Foundation, Inc. ;; Author: Alex Schroeder <alex@gnu.org> ;; Maintainer: Michael Mauger <mmaug@yahoo.com> @@ -219,6 +219,8 @@ ;; Drew Adams <drew.adams@oracle.com> -- Emacs 20 support ;; Harald Maier <maierh@myself.com> -- sql-send-string ;; Stefan Monnier <monnier@iro.umontreal.ca> -- font-lock corrections; code polish +;; Paul Sleigh <bat@flurf.net> -- MySQL keyword enhancement +;; Andrew Schein <andrew@andrewschein.com> -- sql-port bug @@ -811,6 +813,14 @@ is changed." :type 'hook :group 'SQL) +(defcustom sql-login-hook '() + "Hook for interacting with a buffer in `sql-interactive-mode'. + +This hook is invoked in a buffer once it is ready to accept input +for the first time." + :type 'hook + :group 'SQL) + ;; Customization for ANSI (defcustom sql-ansi-statement-starters (regexp-opt '( @@ -1594,6 +1604,7 @@ to add functions and PL/SQL keywords.") "atan" "atan2" "avg" "bfilename" "bin_to_num" "bitand" "cardinality" "cast" "ceil" "chartorowid" "chr" "cluster_id" "cluster_probability" "cluster_set" "coalesce" "collect" "compose" "concat" "convert" "corr" +"connect_by_root" "connect_by_iscycle" "connect_by_isleaf" "corr_k" "corr_s" "cos" "cosh" "count" "covar_pop" "covar_samp" "cube_table" "cume_dist" "current_date" "current_timestamp" "cv" "dataobj_to_partition" "dbtimezone" "decode" "decompose" "deletexml" @@ -2279,7 +2290,7 @@ you define your own `sql-mode-solid-font-lock-keywords'.") "collation" "column" "columns" "comment" "committed" "concurrent" "constraint" "create" "cross" "data" "database" "default" "delay_key_write" "delayed" "delete" "desc" "directory" "disable" -"distinct" "distinctrow" "do" "drop" "dumpfile" "duplicate" "else" +"distinct" "distinctrow" "do" "drop" "dumpfile" "duplicate" "else" "elseif" "enable" "enclosed" "end" "escaped" "exists" "fields" "first" "for" "force" "foreign" "from" "full" "fulltext" "global" "group" "handler" "having" "heap" "high_priority" "if" "ignore" "in" "index" "infile" @@ -3423,7 +3434,7 @@ list of SQLi command strings." :prompt-regexp)) (start nil)) (with-current-buffer buf - (toggle-read-only -1) + (setq view-read-only nil) (unless save-prior (erase-buffer)) (goto-char (point-max)) @@ -3532,7 +3543,7 @@ buffer is popped into a view window. " (get-lru-window)))) (with-current-buffer outbuf (set-buffer-modified-p nil) - (toggle-read-only 1)) + (setq view-read-only t)) (view-buffer-other-window outbuf) (when one-win (shrink-window-if-larger-than-buffer))))) @@ -4097,7 +4108,8 @@ the call to \\[sql-product-interactive] with (setq new-sqli-buffer (current-buffer)) (when new-name (sql-rename-buffer new-name)) - (setq sql-buffer (buffer-name new-sqli-buffer)) + (set (make-local-variable 'sql-buffer) + (buffer-name new-sqli-buffer)) ;; Set `sql-buffer' in the start buffer (with-current-buffer start-buffer @@ -4107,6 +4119,7 @@ the call to \\[sql-product-interactive] with ;; All done. (message "Login...done") + (run-hooks 'sql-login-hook) (pop-to-buffer new-sqli-buffer))))) (message "No default SQL product defined. Set `sql-product'."))) @@ -4224,7 +4237,7 @@ The default comes from `process-coding-system-alist' and "^\\(.+\\) (hex ..)$" "SET \\1") - ;; FEDDBACK ON for 99 or more rows + ;; FEEDBACK ON for 99 or more rows ;; feedback OFF (sql-redirect-value sqlbuf diff --git a/lisp/progmodes/subword.el b/lisp/progmodes/subword.el index 9c61da89008..7d8dd4301a2 100644 --- a/lisp/progmodes/subword.el +++ b/lisp/progmodes/subword.el @@ -1,6 +1,6 @@ ;;; subword.el --- Handling capitalized subwords in a nomenclature -;; Copyright (C) 2004-2011 Free Software Foundation, Inc. +;; Copyright (C) 2004-2012 Free Software Foundation, Inc. ;; Author: Masatake YAMATO diff --git a/lisp/progmodes/tcl.el b/lisp/progmodes/tcl.el index d0e2c5abe7d..0198b32ec9f 100644 --- a/lisp/progmodes/tcl.el +++ b/lisp/progmodes/tcl.el @@ -1,6 +1,6 @@ ;;; tcl.el --- Tcl code editing commands for Emacs -;; Copyright (C) 1994, 1998-2011 Free Software Foundation, Inc. +;; Copyright (C) 1994, 1998-2012 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Author: Tom Tromey <tromey@redhat.com> diff --git a/lisp/progmodes/vera-mode.el b/lisp/progmodes/vera-mode.el index b02324871ff..7f3f99f5cfb 100644 --- a/lisp/progmodes/vera-mode.el +++ b/lisp/progmodes/vera-mode.el @@ -1,6 +1,6 @@ ;;; vera-mode.el --- major mode for editing Vera files -;; Copyright (C) 1997-2011 Free Software Foundation, Inc. +;; Copyright (C) 1997-2012 Free Software Foundation, Inc. ;; Author: Reto Zimmermann <reto@gnu.org> ;; Maintainer: Reto Zimmermann <reto@gnu.org> @@ -427,7 +427,7 @@ Key bindings: "icompare" "insert" "inst_get_at_least" "inst_get_auto_bin_max" "inst_get_collect" "inst_get_cov_weight" "inst_get_coverage_goal" "inst_getcross_bin_max" "inst_query" "inst_set_at_least" - "inst_set_auto_bin_max" "inst_set_bin_activiation" "inst_set_collect" + "inst_set_auto_bin_max" "inst_set_bin_activation" "inst_set_collect" "inst_set_cov_weight" "inst_set_coverage_goal" "inst_set_cross_bin_max" "itoa" "last" "last_index" "len" "load" @@ -438,7 +438,7 @@ Key bindings: "push_front" "putc" "query" "query_str" "rand_mode" "randomize" "reserve" "reverse" "rsort" - "search" "set_at_least" "set_auto_bin_max" "set_bin_activiation" + "search" "set_at_least" "set_auto_bin_max" "set_bin_activation" "set_cov_weight" "set_coverage_goal" "set_cross_bin_max" "set_name" "size" "sort" "substr" "sum" "thismatch" "tolower" "toupper" diff --git a/lisp/progmodes/verilog-mode.el b/lisp/progmodes/verilog-mode.el index 3ae66a477e8..f3bac41fb32 100644 --- a/lisp/progmodes/verilog-mode.el +++ b/lisp/progmodes/verilog-mode.el @@ -1,6 +1,6 @@ ;; verilog-mode.el --- major mode for editing verilog source in Emacs -;; Copyright (C) 1996-2011 Free Software Foundation, Inc. +;; Copyright (C) 1996-2012 Free Software Foundation, Inc. ;; Author: Michael McNamara (mac@verilog.com), ;; Wilson Snyder (wsnyder@wsnyder.org) @@ -981,7 +981,7 @@ of each Verilog file that requires it, rather than being set globally." "*If true, AUTORESET will reset those signals which were assigned with blocking assignments (=) even in a block with non-blocking assignments (<=). - + If nil, all blocking assigned signals are ignored when any non-blocking assignment is in the AUTORESET block. This allows blocking assignments to be used for temporary values and not have @@ -1423,7 +1423,7 @@ If set will become buffer local.") ["AUTOSENSE" (describe-function 'verilog-auto-sense) :help "Help on AUTOSENSE - sensitivity lists for always blocks"] ["AUTOTIEOFF" (describe-function 'verilog-auto-tieoff) - :help "Help on AUTOTIEOFF - tieing off unused outputs"] + :help "Help on AUTOTIEOFF - tying off unused outputs"] ["AUTOUNUSED" (describe-function 'verilog-auto-unused) :help "Help on AUTOUNUSED - terminating unused inputs"] ["AUTOWIRE" (describe-function 'verilog-auto-wire) @@ -1667,7 +1667,7 @@ This speeds up complicated regexp matches." ;; Similar to `delete-trailing-whitespace' but that's not present in XEmacs (save-excursion (goto-char (point-min)) - (while (re-search-forward "[ \t]+$" nil t) ;; Not syntatic WS as no formfeed + (while (re-search-forward "[ \t]+$" nil t) ;; Not syntactic WS as no formfeed (replace-match "" nil nil)))) (defvar compile-command) @@ -2011,7 +2011,7 @@ find the errors." "`uvm_component_utils" "`uvm_create" "`uvm_create_on" - "`uvm_create_seq" ;; Undocumented in 1.1 + "`uvm_create_seq" ;; Undocumented in 1.1 "`uvm_declare_p_sequencer" "`uvm_declare_sequence_lib" ;; Deprecated in 1.1 "`uvm_do" @@ -7505,7 +7505,7 @@ Signals must be in standard (base vector) form." (nreverse out-list))) (defun verilog-signals-combine-bus (in-list) - "Return a list of signals in IN-LIST, with busses combined. + "Return a list of signals in IN-LIST, with buses combined. Duplicate signals are also removed. For example A[2] and A[1] become A[2:1]." (let (combo buswarn out-list @@ -9907,7 +9907,7 @@ If optional WHITESPACE true, ignore whitespace." (p2 (with-current-buffer b2 (goto-char (point-min)))) (maxp1 (with-current-buffer b1 (point-max))) (maxp2 (with-current-buffer b2 (point-max))) - (op1 -1) (op2 -1) + (op1 -1) (op2 -1) progress size) (while (not (and (eq p1 op1) (eq p2 op2))) ;; If both windows have whitespace optionally skip over it. @@ -10100,7 +10100,7 @@ instantiating the resulting module. Long lines are split based on the `fill-column', see \\[set-fill-column]. Limitations: - Concatenation and outputting partial busses is not supported. + Concatenation and outputting partial buses is not supported. Typedefs must match `verilog-typedef-regexp', which is disabled by default. @@ -10932,7 +10932,7 @@ Typing \\[verilog-auto] will make this into: (defun verilog-auto-logic () "Expand AUTOLOGIC statements, as part of \\[verilog-auto]. Make wire statements using the SystemVerilog logic keyword. -This is currently equivelent to: +This is currently equivalent to: /*AUTOWIRE*/ @@ -10958,7 +10958,7 @@ the datatype of the declarations. Limitations: This ONLY detects outputs of AUTOINSTants (see `verilog-read-sub-decls'), - and all busses must have widths, such as those from AUTOINST, or using [] + and all buses must have widths, such as those from AUTOINST, or using [] in AUTO_TEMPLATEs. This does NOT work on memories or SystemVerilog .name connections, @@ -11315,7 +11315,7 @@ Limitations: If placed inside the parenthesis of a module declaration, it creates Verilog 2001 style, else uses Verilog 1995 style. - Concatenation and outputting partial busses is not supported. + Concatenation and outputting partial buses is not supported. Module names must be resolvable to filenames. See `verilog-auto-inst'. @@ -11439,7 +11439,7 @@ Limitations: If placed inside the parenthesis of a module declaration, it creates Verilog 2001 style, else uses Verilog 1995 style. - Concatenation and outputting partial busses is not supported. + Concatenation and outputting partial buses is not supported. Module names must be resolvable to filenames. See `verilog-auto-inst'. @@ -11490,7 +11490,7 @@ Limitations: If placed inside the parenthesis of a module declaration, it creates Verilog 2001 style, else uses Verilog 1995 style. - Concatenation and outputting partial busses is not supported. + Concatenation and outputting partial buses is not supported. Module names must be resolvable to filenames. See `verilog-auto-inst'. @@ -11725,7 +11725,7 @@ this is a recent change. To control this behavior, see `verilog-auto-reset-widths'. AUTORESET ties signals to deasserted, which is presumed to be zero. -Signals that match `verilog-active-low-regexp' will be deasserted by tieing +Signals that match `verilog-active-low-regexp' will be deasserted by tying them to a one. An example: @@ -11816,7 +11816,7 @@ finds all outputs in the module, and if that input is not otherwise declared as a register or wire, creates a tieoff. AUTORESET ties signals to deasserted, which is presumed to be zero. -Signals that match `verilog-active-low-regexp' will be deasserted by tieing +Signals that match `verilog-active-low-regexp' will be deasserted by tying them to a one. You can add signals you do not want included in AUTOTIEOFF with diff --git a/lisp/progmodes/vhdl-mode.el b/lisp/progmodes/vhdl-mode.el index deac85581d2..d765a960470 100644 --- a/lisp/progmodes/vhdl-mode.el +++ b/lisp/progmodes/vhdl-mode.el @@ -1,6 +1,6 @@ ;;; vhdl-mode.el --- major mode for editing VHDL code -;; Copyright (C) 1992-2011 Free Software Foundation, Inc. +;; Copyright (C) 1992-2012 Free Software Foundation, Inc. ;; Authors: Reto Zimmermann <reto@gnu.org> ;; Rodney J. Whitby <software.vhdl-mode@rwhitby.net> diff --git a/lisp/progmodes/which-func.el b/lisp/progmodes/which-func.el index e27d07854c8..721c610517a 100644 --- a/lisp/progmodes/which-func.el +++ b/lisp/progmodes/which-func.el @@ -1,6 +1,6 @@ ;;; which-func.el --- print current function in mode line -;; Copyright (C) 1994, 1997-1998, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1994, 1997-1998, 2001-2012 Free Software Foundation, Inc. ;; Author: Alex Rezinsky <alexr@msil.sps.mot.com> ;; (doesn't seem to be responsive any more) @@ -229,7 +229,9 @@ It creates the Imenu index for the buffer, if necessary." (error "Error in which-func-update: %S" info)))))) ;;;###autoload -(defalias 'which-func-mode 'which-function-mode) +(defun which-func-mode (&optional arg) + (which-function-mode arg)) +(make-obsolete 'which-func-mode 'which-function-mode "24.1") (defvar which-func-update-timer nil) diff --git a/lisp/progmodes/xscheme.el b/lisp/progmodes/xscheme.el index dfa91b3fe30..1f50910330c 100644 --- a/lisp/progmodes/xscheme.el +++ b/lisp/progmodes/xscheme.el @@ -1,6 +1,6 @@ ;;; xscheme.el --- run MIT Scheme under Emacs -;; Copyright (C) 1986-1987, 1989-1990, 2001-2011 +;; Copyright (C) 1986-1987, 1989-1990, 2001-2012 ;; Free Software Foundation, Inc. ;; Maintainer: FSF diff --git a/lisp/ps-bdf.el b/lisp/ps-bdf.el index 14aee8c3ecf..a82e03ceda7 100644 --- a/lisp/ps-bdf.el +++ b/lisp/ps-bdf.el @@ -1,6 +1,6 @@ ;;; ps-bdf.el --- BDF font file handler for ps-print -;; Copyright (C) 1998-1999, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1998-1999, 2001-2012 Free Software Foundation, Inc. ;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, ;; 2008, 2009, 2010, 2011 ;; National Institute of Advanced Industrial Science and Technology (AIST) diff --git a/lisp/ps-def.el b/lisp/ps-def.el index 639183e5ab3..279f2ea6177 100644 --- a/lisp/ps-def.el +++ b/lisp/ps-def.el @@ -1,6 +1,6 @@ ;;; ps-def.el --- XEmacs and Emacs definitions for ps-print -;; Copyright (C) 2007-2011 Free Software Foundation, Inc. +;; Copyright (C) 2007-2012 Free Software Foundation, Inc. ;; Author: Vinicius Jose Latorre <viniciusjl@ig.com.br> ;; Kenichi Handa <handa@m17n.org> (multi-byte characters) diff --git a/lisp/ps-mule.el b/lisp/ps-mule.el index db5b57f8585..7db326403f6 100644 --- a/lisp/ps-mule.el +++ b/lisp/ps-mule.el @@ -1,6 +1,6 @@ ;;; ps-mule.el --- provide multi-byte character facility to ps-print -;; Copyright (C) 1998-2011 Free Software Foundation, Inc. +;; Copyright (C) 1998-2012 Free Software Foundation, Inc. ;; Author: Vinicius Jose Latorre <viniciusjl@ig.com.br> ;; Kenichi Handa <handa@m17n.org> (multi-byte characters) @@ -1141,7 +1141,7 @@ It checks if all multi-byte characters in the region are printable or not." (aref ps-mule-font-spec-tables font-type) 0))) (ps-output-prologue (list (if (ps-mule-font-spec-src (cdr (car font-spec-alist))) - ;; We ignore a font specfied in ps-font-info-database. + ;; We ignore a font specified in ps-font-info-database. (format "/V%s VTOP%d def\n" fonttag font-type) (format "/V%s [ VTOP%d aload pop ] def\n V%s 0 /%s-latin1 /%s Latin1Encoding put\n" diff --git a/lisp/ps-print.el b/lisp/ps-print.el index da804d99ae0..addf2975c5f 100644 --- a/lisp/ps-print.el +++ b/lisp/ps-print.el @@ -1,6 +1,6 @@ ;;; ps-print.el --- print text from the buffer as PostScript -;; Copyright (C) 1993-2011 Free Software Foundation, Inc. +;; Copyright (C) 1993-2012 Free Software Foundation, Inc. ;; Author: Jim Thompson (was <thompson@wg2.waii.com>) ;; Jacques Duthen (was <duthen@cegelec-red.fr>) @@ -6658,7 +6658,7 @@ If FACE is not a valid face name, use default face." ;; But autoload them here to make the separation invisible. ;;;### (autoloads (ps-mule-end-job ps-mule-begin-job ps-mule-initialize -;;;;;; ps-multibyte-buffer) "ps-mule" "ps-mule.el" "01641c7c3af4e45e1c3afeb75a73120c") +;;;;;; ps-multibyte-buffer) "ps-mule" "ps-mule.el" "86bf8e46dac41afe73df5ab098038ab0") ;;; Generated autoloads from ps-mule.el (defvar ps-multibyte-buffer nil "\ diff --git a/lisp/ps-samp.el b/lisp/ps-samp.el index bfdcd91d26a..f719b087277 100644 --- a/lisp/ps-samp.el +++ b/lisp/ps-samp.el @@ -1,6 +1,6 @@ ;;; ps-samp.el --- ps-print sample setup code -;; Copyright (C) 2007-2011 Free Software Foundation, Inc. +;; Copyright (C) 2007-2012 Free Software Foundation, Inc. ;; Author: Jim Thompson (was <thompson@wg2.waii.com>) ;; Jacques Duthen (was <duthen@cegelec-red.fr>) diff --git a/lisp/recentf.el b/lisp/recentf.el index 2dac870afd5..8b0b36cdddc 100644 --- a/lisp/recentf.el +++ b/lisp/recentf.el @@ -1,6 +1,6 @@ ;;; recentf.el --- setup a menu of recently opened files -;; Copyright (C) 1999-2011 Free Software Foundation, Inc. +;; Copyright (C) 1999-2012 Free Software Foundation, Inc. ;; Author: David Ponce <david@dponce.com> ;; Created: July 19 1999 diff --git a/lisp/rect.el b/lisp/rect.el index 0756ec3bc0a..574d96a8c10 100644 --- a/lisp/rect.el +++ b/lisp/rect.el @@ -1,6 +1,6 @@ ;;; rect.el --- rectangle functions for GNU Emacs -;; Copyright (C) 1985, 1999-2011 Free Software Foundation, Inc. +;; Copyright (C) 1985, 1999-2012 Free Software Foundation, Inc. ;; Maintainer: Didier Verna <didier@xemacs.org> ;; Keywords: internal diff --git a/lisp/register.el b/lisp/register.el index 89a725f28c5..44f15e4a69c 100644 --- a/lisp/register.el +++ b/lisp/register.el @@ -1,6 +1,6 @@ ;;; register.el --- register commands for Emacs -;; Copyright (C) 1985, 1993-1994, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1985, 1993-1994, 2001-2012 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: internal diff --git a/lisp/repeat.el b/lisp/repeat.el index 13b6a1d2315..94efc717be5 100644 --- a/lisp/repeat.el +++ b/lisp/repeat.el @@ -1,6 +1,6 @@ ;;; repeat.el --- convenient way to repeat the previous command -;; Copyright (C) 1998, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1998, 2001-2012 Free Software Foundation, Inc. ;; Author: Will Mengarini <seldon@eskimo.com> ;; Created: Mo 02 Mar 98 diff --git a/lisp/replace.el b/lisp/replace.el index a46f62ae139..cb6d7d21e77 100644 --- a/lisp/replace.el +++ b/lisp/replace.el @@ -1,6 +1,6 @@ ;;; replace.el --- replace commands for Emacs -;; Copyright (C) 1985-1987, 1992, 1994, 1996-1997, 2000-2011 +;; Copyright (C) 1985-1987, 1992, 1994, 1996-1997, 2000-2012 ;; Free Software Foundation, Inc. ;; Maintainer: FSF diff --git a/lisp/reposition.el b/lisp/reposition.el index 51dd630a0c6..87b27855357 100644 --- a/lisp/reposition.el +++ b/lisp/reposition.el @@ -1,6 +1,6 @@ ;;; reposition.el --- center a Lisp function or comment on the screen -;; Copyright (C) 1991, 1994, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1991, 1994, 2001-2012 Free Software Foundation, Inc. ;; Author: Michael D. Ernst <mernst@theory.lcs.mit.edu> ;; Created: Jan 1991 diff --git a/lisp/reveal.el b/lisp/reveal.el index c776ab72969..6c0b4c6687d 100644 --- a/lisp/reveal.el +++ b/lisp/reveal.el @@ -1,6 +1,6 @@ ;;; reveal.el --- Automatically reveal hidden text at point -*- lexical-binding: t -*- -;; Copyright (C) 2000-2011 Free Software Foundation, Inc. +;; Copyright (C) 2000-2012 Free Software Foundation, Inc. ;; Author: Stefan Monnier <monnier@iro.umontreal.ca> ;; Keywords: outlines @@ -106,7 +106,7 @@ Each element has the form (WINDOW . OVERLAY).") (let ((inv (overlay-get ol 'invisible)) open) (when (and inv ;; There's an `invisible' property. Make sure it's - ;; actually invisible, and ellipsised. + ;; actually invisible, and ellipsized. (and (consp buffer-invisibility-spec) (cdr (assq inv buffer-invisibility-spec))) (or (setq open diff --git a/lisp/rfn-eshadow.el b/lisp/rfn-eshadow.el index ded76f9fbcb..3c4962d3e5c 100644 --- a/lisp/rfn-eshadow.el +++ b/lisp/rfn-eshadow.el @@ -1,6 +1,6 @@ ;;; rfn-eshadow.el --- Highlight `shadowed' part of read-file-name input text ;; -;; Copyright (C) 2000-2011 Free Software Foundation, Inc. +;; Copyright (C) 2000-2012 Free Software Foundation, Inc. ;; ;; Author: Miles Bader <miles@gnu.org> ;; Keywords: convenience minibuffer diff --git a/lisp/rot13.el b/lisp/rot13.el index d4885395900..44b27d26ce2 100644 --- a/lisp/rot13.el +++ b/lisp/rot13.el @@ -1,6 +1,6 @@ ;;; rot13.el --- display a buffer in ROT13 -;; Copyright (C) 1988, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1988, 2001-2012 Free Software Foundation, Inc. ;; Author: Howard Gayle ;; Maintainer: FSF diff --git a/lisp/ruler-mode.el b/lisp/ruler-mode.el index 046c29471ac..9a8bb8e82ea 100644 --- a/lisp/ruler-mode.el +++ b/lisp/ruler-mode.el @@ -1,6 +1,6 @@ ;;; ruler-mode.el --- display a ruler in the header line -;; Copyright (C) 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 2001-2012 Free Software Foundation, Inc. ;; Author: David Ponce <david@dponce.com> ;; Maintainer: David Ponce <david@dponce.com> diff --git a/lisp/savehist.el b/lisp/savehist.el index faeab324e5a..c1515fa48ce 100644 --- a/lisp/savehist.el +++ b/lisp/savehist.el @@ -1,6 +1,6 @@ ;;; savehist.el --- Save minibuffer history -;; Copyright (C) 1997, 2005-2011 Free Software Foundation, Inc. +;; Copyright (C) 1997, 2005-2012 Free Software Foundation, Inc. ;; Author: Hrvoje Niksic <hniksic@xemacs.org> ;; Maintainer: FSF diff --git a/lisp/saveplace.el b/lisp/saveplace.el index 9d776877ca6..0588bf258a7 100644 --- a/lisp/saveplace.el +++ b/lisp/saveplace.el @@ -1,6 +1,6 @@ ;;; saveplace.el --- automatically save place in files -;; Copyright (C) 1993-1994, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1993-1994, 2001-2012 Free Software Foundation, Inc. ;; Author: Karl Fogel <kfogel@red-bean.com> ;; Maintainer: FSF diff --git a/lisp/sb-image.el b/lisp/sb-image.el index 843186218a5..f2c7f09f1d1 100644 --- a/lisp/sb-image.el +++ b/lisp/sb-image.el @@ -1,6 +1,6 @@ ;;; sb-image --- Image management for speedbar -;; Copyright (C) 1999-2003, 2005-2011 Free Software Foundation, Inc. +;; Copyright (C) 1999-2003, 2005-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <zappo@gnu.org> ;; Keywords: file, tags, tools diff --git a/lisp/scroll-all.el b/lisp/scroll-all.el index 81a4d2c86e1..9ff0a61db2f 100644 --- a/lisp/scroll-all.el +++ b/lisp/scroll-all.el @@ -1,6 +1,6 @@ ;;; scroll-all.el --- scroll all buffers together minor mode -;; Copyright (C) 1997, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1997, 2001-2012 Free Software Foundation, Inc. ;; Author: Gary D. Foster <Gary.Foster@corp.sun.com> ;; Keywords: scroll crisp brief lock diff --git a/lisp/scroll-bar.el b/lisp/scroll-bar.el index 37a31460cdb..058d83a97bc 100644 --- a/lisp/scroll-bar.el +++ b/lisp/scroll-bar.el @@ -1,6 +1,6 @@ ;;; scroll-bar.el --- window system-independent scroll bar support -;; Copyright (C) 1993-1995, 1999-2011 Free Software Foundation, Inc. +;; Copyright (C) 1993-1995, 1999-2012 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: hardware diff --git a/lisp/scroll-lock.el b/lisp/scroll-lock.el index 0fe39c2ac3e..87c98420639 100644 --- a/lisp/scroll-lock.el +++ b/lisp/scroll-lock.el @@ -1,6 +1,6 @@ ;;; scroll-lock.el --- Scroll lock scrolling. -;; Copyright (C) 2005-2011 Free Software Foundation, Inc. +;; Copyright (C) 2005-2012 Free Software Foundation, Inc. ;; Author: Ralf Angeli <angeli@iwi.uni-sb.de> ;; Maintainer: FSF diff --git a/lisp/select.el b/lisp/select.el index 10c8f0b1efd..8d9d7cc386b 100644 --- a/lisp/select.el +++ b/lisp/select.el @@ -1,6 +1,6 @@ ;;; select.el --- lisp portion of standard selection support -;; Copyright (C) 1993-1994, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1993-1994, 2001-2012 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: internal @@ -106,7 +106,7 @@ in `selection-converter-alist', which see." ((eq data-type 'STRING) 'iso-8859-1) (t - (error "Unknow selection data type: %S" type)))) + (error "Unknown selection data type: %S" type)))) data (if coding (decode-coding-string data coding) (string-to-multibyte data))) (setq next-selection-coding-system nil) diff --git a/lisp/server.el b/lisp/server.el index edd8f2afa93..9dcd1f3b1d9 100644 --- a/lisp/server.el +++ b/lisp/server.el @@ -1,6 +1,6 @@ ;;; server.el --- Lisp code for GNU Emacs running as server process -*- lexical-binding: t -*- -;; Copyright (C) 1986-1987, 1992, 1994-2011 Free Software Foundation, Inc. +;; Copyright (C) 1986-1987, 1992, 1994-2012 Free Software Foundation, Inc. ;; Author: William Sommerfeld <wesommer@athena.mit.edu> ;; Maintainer: FSF diff --git a/lisp/ses.el b/lisp/ses.el index 403651695a8..43ce9da033e 100644 --- a/lisp/ses.el +++ b/lisp/ses.el @@ -1,6 +1,6 @@ ;;; ses.el -- Simple Emacs Spreadsheet -*- coding: utf-8 -*- -;; Copyright (C) 2002-2011 Free Software Foundation, Inc. +;; Copyright (C) 2002-2012 Free Software Foundation, Inc. ;; Author: Jonathan Yavner <jyavner@member.fsf.org> ;; Maintainer: Vincent Belaïche <vincentb1@users.sourceforge.net> @@ -674,13 +674,6 @@ for this spreadsheet." (put sym 'ses-cell (cons xrow xcol)) (make-local-variable sym))))) -(defun ses-create-cell-variable (sym row col) - "Create a buffer-local variable for cell with symbol -SYM at position ROW COL. Return nil in case of failure." - (unless (local-variable-p sym) - (make-local-variable sym) - (put sym 'ses-cell (cons row col)))) - ;; We do not delete the ses-cell properties for the cell-variables, in ;; case a formula that refers to this cell is in the kill-ring and is ;; later pasted back in. @@ -1406,8 +1399,7 @@ removed. Example: Sets `ses-relocate-return' to 'delete if cell-references were removed." (let (rowcol result) (if (or (atom formula) (eq (car formula) 'quote)) - (if (and (setq rowcol (ses-sym-rowcol formula)) - (string-match "\\`[A-Z]+[0-9]+\\'" (symbol-name formula))) + (if (setq rowcol (ses-sym-rowcol formula)) (ses-relocate-symbol formula rowcol startrow startcol rowincr colincr) formula) ; Pass through as-is. @@ -1515,15 +1507,14 @@ if the range was altered." the rectangle (MINROW,MINCOL)..(NUMROWS,NUMCOLS) by adding ROWINCR and COLINCR to each symbol." (let (reform) - (let (mycell newval xrow) + (let (mycell newval) (dotimes-with-progress-reporter (row ses--numrows) "Relocating formulas..." (dotimes (col ses--numcols) (setq ses-relocate-return nil mycell (ses-get-cell row col) newval (ses-relocate-formula (ses-cell-formula mycell) - minrow mincol rowincr colincr) - xrow (- row rowincr)) + minrow mincol rowincr colincr)) (ses-set-cell row col 'formula newval) (if (eq ses-relocate-return 'range) ;; This cell contains a (ses-range X Y) where a cell has been @@ -1539,22 +1530,8 @@ to each symbol." minrow mincol rowincr colincr)) (ses-set-cell row col 'references newval) (and (>= row minrow) (>= col mincol) - (let ((sym (ses-cell-symbol row col)) - (xcol (- col colincr))) - (if (and - sym - (>= xrow 0) - (>= xcol 0) - (null (eq sym - (ses-create-cell-symbol xrow xcol)))) - ;; This is a renamed cell, do not update the cell - ;; name, but just update the coordinate property. - (put sym 'ses-cell (cons row col)) - (ses-set-cell row col 'symbol - (setq sym (ses-create-cell-symbol row col))) - (unless (and (boundp sym) (local-variable-p sym)) - (set (make-local-variable sym) nil) - (put sym 'ses-cell (cons row col)))))) ))) + (ses-set-cell row col 'symbol + (ses-create-cell-symbol row col)))))) ;; Relocate the cell values. (let (oldval myrow mycol xrow xcol) (cond @@ -1567,17 +1544,11 @@ to each symbol." (setq mycol (+ col mincol) xrow (- myrow rowincr) xcol (- mycol colincr)) - (let ((sym (ses-cell-symbol myrow mycol)) - (xsym (ses-create-cell-symbol xrow xcol))) - ;; Make the value relocation only when if the cell is not - ;; a renamed cell. Otherwise this is not needed. - (and (eq sym xsym) - (ses-set-cell myrow mycol 'value - (if (and (< xrow ses--numrows) (< xcol ses--numcols)) - (ses-cell-value xrow xcol) - ;;Cell is off the end of the array - (symbol-value xsym)))))))) - + (if (and (< xrow ses--numrows) (< xcol ses--numcols)) + (setq oldval (ses-cell-value xrow xcol)) + ;; Cell is off the end of the array. + (setq oldval (symbol-value (ses-create-cell-symbol xrow xcol)))) + (ses-set-cell myrow mycol 'value oldval)))) ((and (wholenump rowincr) (wholenump colincr)) ;; Insertion of rows and/or columns. Run the loop backwards. (let ((disty (1- ses--numrows)) @@ -1687,6 +1658,7 @@ Does not execute cell formulas or print functions." (message "Upgrading from SES-1 file format"))) (or (= ses--file-format 2) (error "This file needs a newer version of the SES library code")) + (ses-create-cell-variable-range 0 (1- ses--numrows) 0 (1- ses--numcols)) ;; Initialize cell array. (setq ses--cells (make-vector ses--numrows nil)) (dotimes (row ses--numrows) @@ -1706,10 +1678,11 @@ Does not execute cell formulas or print functions." (dotimes (row ses--numrows) (dotimes (col ses--numcols) (let* ((x (read (current-buffer))) - (sym (car-safe (cdr-safe x)))) + (rowcol (ses-sym-rowcol (car-safe (cdr-safe x))))) (or (and (looking-at "\n") (eq (car-safe x) 'ses-cell) - (ses-create-cell-variable sym row col)) + (eq row (car rowcol)) + (eq col (cdr rowcol))) (error "Cell-def error")) (eval x))) (or (looking-at "\n\n") @@ -3166,60 +3139,6 @@ highlighted range in the spreadsheet." (mouse-set-point event) (ses-insert-ses-range)) -(defun ses-replace-name-in-formula (formula old-name new-name) - (let ((new-formula formula)) - (unless (and (consp formula) - (eq (car-safe formula) 'quote)) - (while formula - (let ((elt (car-safe formula))) - (cond - ((consp elt) - (setcar formula (ses-replace-name-in-formula elt old-name new-name))) - ((and (symbolp elt) - (eq (car-safe formula) old-name)) - (setcar formula new-name)))) - (setq formula (cdr formula)))) - new-formula)) - -(defun ses-rename-cell (new-name) - "Rename current cell." - (interactive "*SEnter new name: ") - (ses-check-curcell) - (or - (and (local-variable-p new-name) - (ses-sym-rowcol new-name) - (error "Already a cell name")) - (and (boundp new-name) - (null (yes-or-no-p (format "`%S' is already bound outside this buffer, continue? " - new-name))) - (error "Already a bound cell name"))) - (let* ((rowcol (ses-sym-rowcol ses--curcell)) - (cell (ses-get-cell (car rowcol) (cdr rowcol)))) - (dolist (reference (ses-cell-references (car rowcol) (cdr rowcol))) - (let* ((rowcol (ses-sym-rowcol reference)) - (cell (ses-get-cell (car rowcol) (cdr rowcol)))) - (ses-cell-set-formula (car rowcol) - (cdr rowcol) - (ses-replace-name-in-formula - (ses-cell-formula cell) - ses--curcell - new-name)))) - (put new-name 'ses-cell rowcol) - (set new-name (symbol-value ses--curcell)) - (aset cell 0 new-name) - (put ses--curcell 'ses-cell nil) - (makunbound ses--curcell) - (setq ses--curcell new-name) - (let* ((pos (point)) - (inhibit-read-only t) - (col (current-column)) - (end (save-excursion - (move-to-column (1+ col)) - (if (eolp) - (+ pos (ses-col-width col) 1) - (point))))) - (put-text-property pos end 'intangible new-name))) ) - ;;---------------------------------------------------------------------------- ;; Checking formulas for safety diff --git a/lisp/shadowfile.el b/lisp/shadowfile.el index 1a929ebb58a..6d432f6caba 100644 --- a/lisp/shadowfile.el +++ b/lisp/shadowfile.el @@ -1,6 +1,6 @@ ;;; shadowfile.el --- automatic file copying -;; Copyright (C) 1993-1994, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1993-1994, 2001-2012 Free Software Foundation, Inc. ;; Author: Boris Goldowsky <boris@gnu.org> ;; Keywords: comm files diff --git a/lisp/shell.el b/lisp/shell.el index fdfc8b3cf19..e7a8953ecbe 100644 --- a/lisp/shell.el +++ b/lisp/shell.el @@ -1,6 +1,6 @@ ;;; shell.el --- specialized comint.el for running the shell -*- lexical-binding: t -*- -;; Copyright (C) 1988, 1993-1997, 2000-2011 Free Software Foundation, Inc. +;; Copyright (C) 1988, 1993-1997, 2000-2012 Free Software Foundation, Inc. ;; Author: Olin Shivers <shivers@cs.cmu.edu> ;; Simon Marshall <simon@gnu.org> @@ -189,7 +189,6 @@ This is a fine thing to set in your `.emacs' file.") shell-c-a-p-replace-by-expanded-directory pcomplete-completions-at-point shell-filename-completion - ;; Not sure when this one would still be useful. --Stef comint-filename-completion) "List of functions called to perform completion. This variable is used to initialize `comint-dynamic-complete-functions' in the @@ -372,18 +371,6 @@ Thus, this does not include the shell's current directory.") ;;; Basic Procedures -(defcustom shell-dir-cookie-re nil - "Regexp matching your prompt, including some part of the current directory. -If your prompt includes the current directory or the last few elements of it, -set this to a pattern that matches your prompt and whose subgroup 1 matches -the directory part of it. -This is used by `shell-dir-cookie-watcher' to try and use this info -to track your current directory. It can be used instead of or in addition -to `dirtrack-mode'." - :group 'shell - :type '(choice (const nil) regexp) - :version "24.1") - (defun shell-parse-pcomplete-arguments () "Parse whitespace separated arguments in the current region." (let ((begin (save-excursion (shell-backward-command 1) (point))) @@ -418,6 +405,15 @@ to `dirtrack-mode'." (push (mapconcat #'identity (nreverse arg) "") args))) (cons (nreverse args) (nreverse begins))))) +(defun shell-command-completion-function () + "Completion function for shell command names. +This is the value of `pcomplete-command-completion-function' for +Shell buffers. It implements `shell-completion-execonly' for +`pcomplete' completion." + (pcomplete-here (pcomplete-entries nil + (if shell-completion-execonly + 'file-executable-p)))) + (defun shell-completion-vars () "Setup completion vars for `shell-mode' and `read-shell-command'." (set (make-local-variable 'comint-completion-fignore) @@ -439,6 +435,8 @@ to `dirtrack-mode'." comint-completion-addsuffix) ((not (consp comint-completion-addsuffix)) " ") (t (cdr comint-completion-addsuffix)))) + (set (make-local-variable 'pcomplete-command-completion-function) + #'shell-command-completion-function) ;; Don't use pcomplete's defaulting mechanism, rely on ;; shell-dynamic-complete-functions instead. (set (make-local-variable 'pcomplete-default-completion-function) #'ignore) @@ -546,10 +544,6 @@ buffer." (when (string-equal shell "bash") (add-hook 'comint-preoutput-filter-functions 'shell-filter-ctrl-a-ctrl-b nil t))) - (when shell-dir-cookie-re - ;; Watch for magic cookies in the output to track the current dir. - (add-hook 'comint-output-filter-functions - 'shell-dir-cookie-watcher nil t)) (comint-read-input-ring t))) (defun shell-filter-ctrl-a-ctrl-b (string) @@ -710,20 +704,6 @@ Otherwise, one argument `-i' is passed to the shell. ;; replace it with a process filter that watches for and strips out ;; these messages. -(defun shell-dir-cookie-watcher (text) - ;; This is fragile: the TEXT could be split into several chunks and we'd - ;; miss it. Oh well. It's a best effort anyway. I'd expect that it's - ;; rather unusual to have the prompt split into several packets, but - ;; I'm sure Murphy will prove me wrong. - (when (and shell-dir-cookie-re (string-match shell-dir-cookie-re text)) - (let ((dir (match-string 1 text))) - (cond - ((file-name-absolute-p dir) (shell-cd dir)) - ;; Let's try and see if it seems to be up or down from where we were. - ((string-match "\\`\\(.*\\)\\(?:/.*\\)?\n\\(.*/\\)\\1\\(?:/.*\\)?\\'" - (setq text (concat dir "\n" default-directory))) - (shell-cd (concat (match-string 2 text) dir))))))) - (defun shell-directory-tracker (str) "Tracks cd, pushd and popd commands issued to the shell. This function is called on each input passed to the shell. diff --git a/lisp/simple.el b/lisp/simple.el index c9ac32e0f9e..d9468ed5cf6 100644 --- a/lisp/simple.el +++ b/lisp/simple.el @@ -1,6 +1,6 @@ ;;; simple.el --- basic editing commands for Emacs -;; Copyright (C) 1985-1987, 1993-2011 Free Software Foundation, Inc. +;; Copyright (C) 1985-1987, 1993-2012 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: internal @@ -1225,11 +1225,11 @@ this command arranges for all errors to enter the debugger." (push (eval eval-expression-arg lexical-binding) values) (let ((old-value (make-symbol "t")) new-value) ;; Bind debug-on-error to something unique so that we can - ;; detect when evaled code changes it. + ;; detect when evalled code changes it. (let ((debug-on-error old-value)) (push (eval eval-expression-arg lexical-binding) values) (setq new-value debug-on-error)) - ;; If evaled code has changed the value of debug-on-error, + ;; If evalled code has changed the value of debug-on-error, ;; propagate that change to the global binding. (unless (eq old-value new-value) (setq debug-on-error new-value)))) @@ -4729,7 +4729,7 @@ To ignore intangibility, bind `inhibit-point-motion-hooks' to t." (let ((line-move-visual nil)) (line-move (1- arg) t))) - ;; Move to beginning-of-line, ignoring fields and invisibles. + ;; Move to beginning-of-line, ignoring fields and invisible text. (skip-chars-backward "^\n") (while (and (not (bobp)) (invisible-p (1- (point)))) (goto-char (previous-char-property-change (point))) diff --git a/lisp/skeleton.el b/lisp/skeleton.el index 946e0a4480d..0f28d32293b 100644 --- a/lisp/skeleton.el +++ b/lisp/skeleton.el @@ -1,6 +1,6 @@ ;;; skeleton.el --- Lisp language extension for writing statement skeletons -*- coding: utf-8 -*- -;; Copyright (C) 1993-1996, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1993-1996, 2001-2012 Free Software Foundation, Inc. ;; Author: Daniel Pfeiffer <occitan@esperanto.org> ;; Maintainer: FSF diff --git a/lisp/sort.el b/lisp/sort.el index 8ea3decb76f..d38e475fd39 100644 --- a/lisp/sort.el +++ b/lisp/sort.el @@ -1,6 +1,6 @@ ;;; sort.el --- commands to sort text in an Emacs buffer -;; Copyright (C) 1986-1987, 1994-1995, 2001-2011 +;; Copyright (C) 1986-1987, 1994-1995, 2001-2012 ;; Free Software Foundation, Inc. ;; Author: Howie Kaye diff --git a/lisp/soundex.el b/lisp/soundex.el index dbe92dc2670..ea73c93660c 100644 --- a/lisp/soundex.el +++ b/lisp/soundex.el @@ -1,6 +1,6 @@ ;;; soundex.el --- implement Soundex algorithm -;; Copyright (C) 1993, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1993, 2001-2012 Free Software Foundation, Inc. ;; Author: Christian Plaunt <chris@bliss.berkeley.edu> ;; Maintainer: FSF diff --git a/lisp/speedbar.el b/lisp/speedbar.el index efe7832aca6..89211b2b86e 100644 --- a/lisp/speedbar.el +++ b/lisp/speedbar.el @@ -1,6 +1,6 @@ ;;; speedbar --- quick access to files and tags in a frame -;; Copyright (C) 1996-2011 Free Software Foundation, Inc. +;; Copyright (C) 1996-2012 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <zappo@gnu.org> ;; Keywords: file, tags, tools @@ -3063,7 +3063,7 @@ a function if appropriate." (let* ((speedbar-frame (speedbar-current-frame)) (fn (get-text-property (point) 'speedbar-function)) (tok (get-text-property (point) 'speedbar-token)) - ;; The 1-,+ is safe because scaning starts AFTER the point + ;; The 1-,+ is safe because scanning starts AFTER the point ;; specified. This lets the search include the character the ;; cursor is on. (tp (previous-single-property-change diff --git a/lisp/startup.el b/lisp/startup.el index 06911e00d0d..1cbf2f74c14 100644 --- a/lisp/startup.el +++ b/lisp/startup.el @@ -1,6 +1,6 @@ ;;; startup.el --- process Emacs shell arguments -*- lexical-binding: t -*- -;; Copyright (C) 1985-1986, 1992, 1994-2011 Free Software Foundation, Inc. +;; Copyright (C) 1985-1986, 1992, 1994-2012 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: internal diff --git a/lisp/strokes.el b/lisp/strokes.el index 5ff94bb22c6..8b5aa7a76d8 100644 --- a/lisp/strokes.el +++ b/lisp/strokes.el @@ -1,6 +1,6 @@ ;;; strokes.el --- control Emacs through mouse strokes -;; Copyright (C) 1997, 2000-2011 Free Software Foundation, Inc. +;; Copyright (C) 1997, 2000-2012 Free Software Foundation, Inc. ;; Author: David Bakhash <cadet@alum.mit.edu> ;; Maintainer: FSF diff --git a/lisp/subr.el b/lisp/subr.el index 36937e8f370..14f9192405c 100644 --- a/lisp/subr.el +++ b/lisp/subr.el @@ -1,6 +1,6 @@ ;;; subr.el --- basic lisp subroutines for Emacs -*- coding: utf-8 -*- -;; Copyright (C) 1985-1986, 1992, 1994-1995, 1999-2011 +;; Copyright (C) 1985-1986, 1992, 1994-1995, 1999-2012 ;; Free Software Foundation, Inc. ;; Maintainer: FSF @@ -2983,8 +2983,9 @@ the buffer list ordering." "Execute the forms in BODY with FRAME as the selected frame. The value returned is the value of the last form in BODY. -This macro neither changes the order of recently selected windows -nor the buffer list." +This macro saves and restores the selected frame, and changes the +order of neither the recently selected windows nor the buffers in +the buffer list." (declare (indent 1) (debug t)) (let ((old-frame (make-symbol "old-frame")) (old-buffer (make-symbol "old-buffer"))) diff --git a/lisp/t-mouse.el b/lisp/t-mouse.el index 78857b04143..e0fbe8c3bdb 100644 --- a/lisp/t-mouse.el +++ b/lisp/t-mouse.el @@ -4,7 +4,7 @@ ;; Maintainer: FSF ;; Keywords: mouse gpm linux -;; Copyright (C) 1994-1995, 1998, 2006-2011 Free Software Foundation, Inc. +;; Copyright (C) 1994-1995, 1998, 2006-2012 Free Software Foundation, Inc. ;; This file is part of GNU Emacs. diff --git a/lisp/tabify.el b/lisp/tabify.el index 0b2411d0316..26762acf4b7 100644 --- a/lisp/tabify.el +++ b/lisp/tabify.el @@ -1,6 +1,6 @@ ;;; tabify.el --- tab conversion commands for Emacs -;; Copyright (C) 1985, 1994, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1985, 1994, 2001-2012 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Package: emacs diff --git a/lisp/talk.el b/lisp/talk.el index 98c7f6d31ca..70a3376d8e8 100644 --- a/lisp/talk.el +++ b/lisp/talk.el @@ -1,6 +1,6 @@ ;;; talk.el --- allow several users to talk to each other through Emacs -;; Copyright (C) 1995, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1995, 2001-2012 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: comm, frames diff --git a/lisp/tar-mode.el b/lisp/tar-mode.el index ff528fcc9df..cb41e6af627 100644 --- a/lisp/tar-mode.el +++ b/lisp/tar-mode.el @@ -1,6 +1,6 @@ ;;; tar-mode.el --- simple editing of tar files from GNU Emacs -;; Copyright (C) 1990-1991, 1993-2011 Free Software Foundation, Inc. +;; Copyright (C) 1990-1991, 1993-2012 Free Software Foundation, Inc. ;; Author: Jamie Zawinski <jwz@lucid.com> ;; Maintainer: FSF diff --git a/lisp/tempo.el b/lisp/tempo.el index 9b997f3387c..e279314540f 100644 --- a/lisp/tempo.el +++ b/lisp/tempo.el @@ -1,6 +1,6 @@ ;;; tempo.el --- Flexible template insertion -;; Copyright (C) 1994-1995, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1994-1995, 2001-2012 Free Software Foundation, Inc. ;; Author: David K}gedal <davidk@lysator.liu.se> ;; Created: 16 Feb 1994 diff --git a/lisp/term.el b/lisp/term.el index 484bc36363e..4050781fa8c 100644 --- a/lisp/term.el +++ b/lisp/term.el @@ -1,6 +1,6 @@ ;;; term.el --- general command interpreter in a window stuff -;; Copyright (C) 1988, 1990, 1992, 1994-1995, 2001-2011 +;; Copyright (C) 1988, 1990, 1992, 1994-1995, 2001-2012 ;; Free Software Foundation, Inc. ;; Author: Per Bothner <per@bothner.com> @@ -37,8 +37,8 @@ ;; -------------------------------------- ;; ;; While the message passing and the colorization surely introduce some -;; overhead this has became so small that IMHO is surely outweighted by -;; the benefits you get but, as usual, YMMV +;; overhead this has became so small that IMHO it is surely outweighed by +;; the benefits you get but, as usual, YMMV. ;; ;; Important caveat, when deciding the cursor/'gray keys' keycodes I had to ;; make a choice: on my Linux box this choice allows me to run all the diff --git a/lisp/term/AT386.el b/lisp/term/AT386.el index 4453c9e3b8c..bbd408e8fbc 100644 --- a/lisp/term/AT386.el +++ b/lisp/term/AT386.el @@ -1,6 +1,6 @@ ;;; AT386.el --- terminal support package for IBM AT keyboards -*- no-byte-compile: t -*- -;; Copyright (C) 1992, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1992, 2001-2012 Free Software Foundation, Inc. ;; Author: Eric S. Raymond <esr@snark.thyrsus.com> ;; Keywords: terminals diff --git a/lisp/term/README b/lisp/term/README index 6d2e0acbd20..188495acf53 100644 --- a/lisp/term/README +++ b/lisp/term/README @@ -1,4 +1,4 @@ -Copyright (C) 1993, 2001-2011 Free Software Foundation, Inc. +Copyright (C) 1993, 2001-2012 Free Software Foundation, Inc. See the end of the file for license conditions. diff --git a/lisp/term/common-win.el b/lisp/term/common-win.el index 63c8840621c..067b996d1ff 100644 --- a/lisp/term/common-win.el +++ b/lisp/term/common-win.el @@ -1,6 +1,6 @@ ;;; common-win.el --- common part of handling window systems -;; Copyright (C) 1993-1994, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1993-1994, 2001-2012 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: terminals diff --git a/lisp/term/internal.el b/lisp/term/internal.el index a43864e36d6..d8280b13acd 100644 --- a/lisp/term/internal.el +++ b/lisp/term/internal.el @@ -1,6 +1,6 @@ ;;; internal.el --- support for PC internal terminal -;; Copyright (C) 1993-1994, 1998-1999, 2001-2011 +;; Copyright (C) 1993-1994, 1998-1999, 2001-2012 ;; Free Software Foundation, Inc. ;; Author: Morten Welinder <terra@diku.dk> diff --git a/lisp/term/iris-ansi.el b/lisp/term/iris-ansi.el index 3e06810cce6..945fe1f5a69 100644 --- a/lisp/term/iris-ansi.el +++ b/lisp/term/iris-ansi.el @@ -1,6 +1,6 @@ ;;; iris-ansi.el --- configure Emacs for SGI xwsh and winterm apps -*- no-byte-compile: t -*- -;; Copyright (C) 1997, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1997, 2001-2012 Free Software Foundation, Inc. ;; Author: Dan Nicolaescu <dann@ics.uci.edu> diff --git a/lisp/term/news.el b/lisp/term/news.el index ba6346997c5..19d0ff3f7e6 100644 --- a/lisp/term/news.el +++ b/lisp/term/news.el @@ -1,6 +1,6 @@ ;;; news.el --- keypad and function key bindings for the Sony NEWS keyboard -*- no-byte-compile: t -*- -;; Copyright (C) 1989, 1993, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1989, 1993, 2001-2012 Free Software Foundation, Inc. ;; Author: FSF ;; Keywords: terminals diff --git a/lisp/term/ns-win.el b/lisp/term/ns-win.el index b639af7cda0..2782d63b719 100644 --- a/lisp/term/ns-win.el +++ b/lisp/term/ns-win.el @@ -1,6 +1,6 @@ ;;; ns-win.el --- lisp side of interface with NeXT/Open/GNUstep/MacOS X window system -;; Copyright (C) 1993-1994, 2005-2011 Free Software Foundation, Inc. +;; Copyright (C) 1993-1994, 2005-2012 Free Software Foundation, Inc. ;; Authors: Carl Edman ;; Christian Limpach @@ -702,19 +702,24 @@ See the documentation of `create-fontset-from-fontset-spec' for the format.") ;;;; Pasteboard support. -(declare-function ns-get-cut-buffer-internal "nsselect.m" (buffer)) +(declare-function ns-get-selection-internal "nsselect.m" (buffer)) +(declare-function ns-store-selection-internal "nsselect.m" (buffer string)) + +(define-obsolete-function-alias 'ns-get-cut-buffer-internal + 'ns-get-selection-internal "24.1") +(define-obsolete-function-alias 'ns-store-cut-buffer-internal + 'ns-store-selection-internal "24.1") + (defun ns-get-pasteboard () "Returns the value of the pasteboard." - (ns-get-cut-buffer-internal 'CLIPBOARD)) - -(declare-function ns-store-cut-buffer-internal "nsselect.m" (buffer string)) + (ns-get-selection-internal 'CLIPBOARD)) (defun ns-set-pasteboard (string) "Store STRING into the pasteboard of the Nextstep display server." ;; Check the data type of STRING. (if (not (stringp string)) (error "Nonstring given to pasteboard")) - (ns-store-cut-buffer-internal 'CLIPBOARD string)) + (ns-store-selection-internal 'CLIPBOARD string)) ;; We keep track of the last text selected here, so we can check the ;; current selection against it, and avoid passing back our own text @@ -742,11 +747,11 @@ See the documentation of `create-fontset-from-fontset-spec' for the format.") (defun ns-copy-including-secondary () (interactive) (call-interactively 'kill-ring-save) - (ns-store-cut-buffer-internal 'SECONDARY - (buffer-substring (point) (mark t)))) + (ns-store-selection-internal 'SECONDARY + (buffer-substring (point) (mark t)))) (defun ns-paste-secondary () (interactive) - (insert (ns-get-cut-buffer-internal 'SECONDARY))) + (insert (ns-get-selection-internal 'SECONDARY))) ;;;; Scrollbar handling. diff --git a/lisp/term/pc-win.el b/lisp/term/pc-win.el index 284c164150d..bfa642699af 100644 --- a/lisp/term/pc-win.el +++ b/lisp/term/pc-win.el @@ -1,6 +1,6 @@ ;;; pc-win.el --- setup support for `PC windows' (whatever that is) -;; Copyright (C) 1994, 1996-1997, 1999, 2001-2011 +;; Copyright (C) 1994, 1996-1997, 1999, 2001-2012 ;; Free Software Foundation, Inc. ;; Author: Morten Welinder <terra@diku.dk> diff --git a/lisp/term/rxvt.el b/lisp/term/rxvt.el index c64dc0e7a19..481d6b498cf 100644 --- a/lisp/term/rxvt.el +++ b/lisp/term/rxvt.el @@ -1,6 +1,6 @@ ;;; rxvt.el --- define function key sequences and standard colors for rxvt -;; Copyright (C) 2002-2011 Free Software Foundation, Inc. +;; Copyright (C) 2002-2012 Free Software Foundation, Inc. ;; Author: Eli Zaretskii ;; Keywords: terminals diff --git a/lisp/term/sun.el b/lisp/term/sun.el index ab7ca8bf5a8..4bd22c1d8da 100644 --- a/lisp/term/sun.el +++ b/lisp/term/sun.el @@ -1,6 +1,6 @@ ;;; sun.el --- keybinding for standard default sunterm keys -;; Copyright (C) 1987, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1987, 2001-2012 Free Software Foundation, Inc. ;; Author: Jeff Peck <peck@sun.com> ;; Keywords: terminals diff --git a/lisp/term/sup-mouse.el b/lisp/term/sup-mouse.el index 6d77241008c..71a4e06afe8 100644 --- a/lisp/term/sup-mouse.el +++ b/lisp/term/sup-mouse.el @@ -1,6 +1,6 @@ ;;; sup-mouse.el --- supdup mouse support for lisp machines -;; Copyright (C) 1985-1986, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1985-1986, 2001-2012 Free Software Foundation, Inc. ;; Author: Wolfgang Rupprecht ;; Maintainer: FSF diff --git a/lisp/term/tty-colors.el b/lisp/term/tty-colors.el index d62db664d21..b39869419c0 100644 --- a/lisp/term/tty-colors.el +++ b/lisp/term/tty-colors.el @@ -1,6 +1,6 @@ ;;; tty-colors.el --- color support for character terminals -;; Copyright (C) 1999-2011 Free Software Foundation, Inc. +;; Copyright (C) 1999-2012 Free Software Foundation, Inc. ;; Author: Eli Zaretskii ;; Maintainer: FSF diff --git a/lisp/term/tvi970.el b/lisp/term/tvi970.el index e154074a033..161e6222df2 100644 --- a/lisp/term/tvi970.el +++ b/lisp/term/tvi970.el @@ -1,6 +1,6 @@ ;;; tvi970.el --- terminal support for the Televideo 970 -;; Copyright (C) 1992, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1992, 2001-2012 Free Software Foundation, Inc. ;; Author: Jim Blandy <jimb@occs.cs.oberlin.edu> ;; Keywords: terminals diff --git a/lisp/term/vt100.el b/lisp/term/vt100.el index ca16f356b20..01b21a5b58e 100644 --- a/lisp/term/vt100.el +++ b/lisp/term/vt100.el @@ -1,6 +1,6 @@ ;;; vt100.el --- define VT100 function key sequences in function-key-map -;; Copyright (C) 1989, 1993, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1989, 1993, 2001-2012 Free Software Foundation, Inc. ;; Author: FSF ;; Keywords: terminals diff --git a/lisp/term/w32-win.el b/lisp/term/w32-win.el index b7f2a69e77b..abfaafd9740 100644 --- a/lisp/term/w32-win.el +++ b/lisp/term/w32-win.el @@ -1,6 +1,6 @@ ;;; w32-win.el --- parse switches controlling interface with W32 window system -;; Copyright (C) 1993-1994, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1993-1994, 2001-2012 Free Software Foundation, Inc. ;; Author: Kevin Gallo ;; Keywords: terminals @@ -210,7 +210,7 @@ See the documentation of `create-fontset-from-fontset-spec' for the format.") '(gdk-pixbuf "libgdk_pixbuf-2.0-0.dll") '(glib "libglib-2.0-0.dll") '(gobject "libgobject-2.0-0.dll") - '(gnutls "libgnutls-26.dll"))) + '(gnutls "libgnutls-28.dll" "libgnutls-26.dll"))) ;;; multi-tty support (defvar w32-initialized nil diff --git a/lisp/term/w32console.el b/lisp/term/w32console.el index cd5aed31982..d52a4e68932 100644 --- a/lisp/term/w32console.el +++ b/lisp/term/w32console.el @@ -1,6 +1,6 @@ ;;; w32console.el -- Setup w32 console keys and colors. -;; Copyright (C) 2007-2011 Free Software Foundation, Inc. +;; Copyright (C) 2007-2012 Free Software Foundation, Inc. ;; Author: FSF ;; Keywords: terminals diff --git a/lisp/term/wyse50.el b/lisp/term/wyse50.el index b818c769bab..f08ababe0df 100644 --- a/lisp/term/wyse50.el +++ b/lisp/term/wyse50.el @@ -1,6 +1,6 @@ ;;; wyse50.el --- terminal support code for Wyse 50 -*- no-byte-compile: t -*- -;; Copyright (C) 1989, 1993-1994, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1989, 1993-1994, 2001-2012 Free Software Foundation, Inc. ;; Author: Daniel Pfeiffer <occitan@esperanto.org>, ;; Jim Blandy <jimb@occs.cs.oberlin.edu> diff --git a/lisp/term/x-win.el b/lisp/term/x-win.el index ac0f833da63..394e4d4fe48 100644 --- a/lisp/term/x-win.el +++ b/lisp/term/x-win.el @@ -1,6 +1,6 @@ ;;; x-win.el --- parse relevant switches and set up for X -*-coding: iso-2022-7bit;-*- -;; Copyright (C) 1993-1994, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1993-1994, 2001-2012 Free Software Foundation, Inc. ;; Author: FSF ;; Keywords: terminals, i18n diff --git a/lisp/term/xterm.el b/lisp/term/xterm.el index f9d11cb2685..89825771233 100644 --- a/lisp/term/xterm.el +++ b/lisp/term/xterm.el @@ -1,6 +1,6 @@ ;;; xterm.el --- define function key sequences and standard colors for xterm -;; Copyright (C) 1995, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1995, 2001-2012 Free Software Foundation, Inc. ;; Author: FSF ;; Keywords: terminals diff --git a/lisp/terminal.el b/lisp/terminal.el index 99f652f7df4..7aaac26f1b0 100644 --- a/lisp/terminal.el +++ b/lisp/terminal.el @@ -1,6 +1,6 @@ ;;; terminal.el --- terminal emulator for GNU Emacs -;; Copyright (C) 1986-1989, 1993-1994, 2001-2011 +;; Copyright (C) 1986-1989, 1993-1994, 2001-2012 ;; Free Software Foundation, Inc. ;; Author: Richard Mlynarik <mly@eddie.mit.edu> diff --git a/lisp/textmodes/artist.el b/lisp/textmodes/artist.el index bd1fcc43d22..fdfb1a51ba0 100644 --- a/lisp/textmodes/artist.el +++ b/lisp/textmodes/artist.el @@ -1,6 +1,6 @@ ;;; artist.el --- draw ascii graphics with your mouse -;; Copyright (C) 2000-2011 Free Software Foundation, Inc. +;; Copyright (C) 2000-2012 Free Software Foundation, Inc. ;; Author: Tomas Abrahamsson <tab@lysator.liu.se> ;; Maintainer: Tomas Abrahamsson <tab@lysator.liu.se> @@ -4455,7 +4455,7 @@ If N is negative, move backward." "Set current fill character to be C." (interactive "cType fill char (type RET to turn off): ") (cond ((eq c ?\r) (setq artist-fill-char-set nil) - (message "Fill cancelled")) + (message "Fill canceled")) (t (setq artist-fill-char-set t) (setq artist-fill-char c) (message "Fill set to \"%c\"" c)))) diff --git a/lisp/textmodes/bib-mode.el b/lisp/textmodes/bib-mode.el index 17ddd1de954..01733f97042 100644 --- a/lisp/textmodes/bib-mode.el +++ b/lisp/textmodes/bib-mode.el @@ -1,6 +1,6 @@ ;;; bib-mode.el --- major mode for editing bib files -;; Copyright (C) 1989, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1989, 2001-2012 Free Software Foundation, Inc. ;; Author: Henry Kautz ;; (according to authors.el) diff --git a/lisp/textmodes/bibtex-style.el b/lisp/textmodes/bibtex-style.el index bc5326240a3..b0371ed0f6c 100644 --- a/lisp/textmodes/bibtex-style.el +++ b/lisp/textmodes/bibtex-style.el @@ -1,6 +1,6 @@ ;;; bibtex-style.el --- Major mode for BibTeX Style files -*- lexical-binding: t -*- -;; Copyright (C) 2005, 2007-2011 Free Software Foundation, Inc. +;; Copyright (C) 2005, 2007-2012 Free Software Foundation, Inc. ;; Author: Stefan Monnier <monnier@iro.umontreal.ca> ;; Keywords: tex diff --git a/lisp/textmodes/bibtex.el b/lisp/textmodes/bibtex.el index 8df2e81c723..955e148a2ab 100644 --- a/lisp/textmodes/bibtex.el +++ b/lisp/textmodes/bibtex.el @@ -1,6 +1,6 @@ ;;; bibtex.el --- BibTeX mode for GNU Emacs -*- lexical-binding: t -*- -;; Copyright (C) 1992, 1994-1999, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1992, 1994-1999, 2001-2012 Free Software Foundation, Inc. ;; Author: Stefan Schoef <schoef@offis.uni-oldenburg.de> ;; Bengt Martensson <bengt@mathematik.uni-Bremen.de> @@ -5140,7 +5140,7 @@ Return the URL or nil if none can be generated." (message "No URL known.")) url))) -;; We could combine multiple seach results with set operations +;; We could combine multiple search results with set operations ;; AND, OR, MINUS, and NOT. Would this be useful? ;; How complicated are searches in real life? ;; We could also have other searches such as "publication year newer than...". diff --git a/lisp/textmodes/conf-mode.el b/lisp/textmodes/conf-mode.el index 40d682c3d93..4cd36cfe7ca 100644 --- a/lisp/textmodes/conf-mode.el +++ b/lisp/textmodes/conf-mode.el @@ -1,6 +1,6 @@ ;;; conf-mode.el --- Simple major mode for editing conf/ini/properties files -;; Copyright (C) 2004-2011 Free Software Foundation, Inc. +;; Copyright (C) 2004-2012 Free Software Foundation, Inc. ;; Author: Daniel Pfeiffer <occitan@esperanto.org> ;; Keywords: conf ini windows java diff --git a/lisp/textmodes/css-mode.el b/lisp/textmodes/css-mode.el index d98aa183f21..b9e4da59e18 100644 --- a/lisp/textmodes/css-mode.el +++ b/lisp/textmodes/css-mode.el @@ -1,6 +1,6 @@ ;;; css-mode.el --- Major mode to edit CSS files -*- lexical-binding: t -*- -;; Copyright (C) 2006-2011 Free Software Foundation, Inc. +;; Copyright (C) 2006-2012 Free Software Foundation, Inc. ;; Author: Stefan Monnier <monnier@iro.umontreal.ca> ;; Keywords: hypermedia diff --git a/lisp/textmodes/dns-mode.el b/lisp/textmodes/dns-mode.el index 0d5d28f8e5d..ee293a0f243 100644 --- a/lisp/textmodes/dns-mode.el +++ b/lisp/textmodes/dns-mode.el @@ -1,6 +1,6 @@ ;;; dns-mode.el --- a mode for viewing/editing Domain Name System master files -;; Copyright (C) 2000-2001, 2004-2011 Free Software Foundation, Inc. +;; Copyright (C) 2000-2001, 2004-2012 Free Software Foundation, Inc. ;; Author: Simon Josefsson <simon@josefsson.org> ;; Keywords: DNS master zone file SOA comm diff --git a/lisp/textmodes/enriched.el b/lisp/textmodes/enriched.el index 357b9d6c94e..14e6014c274 100644 --- a/lisp/textmodes/enriched.el +++ b/lisp/textmodes/enriched.el @@ -1,6 +1,6 @@ ;;; enriched.el --- read and save files in text/enriched format -;; Copyright (C) 1994-1996, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1994-1996, 2001-2012 Free Software Foundation, Inc. ;; Author: Boris Goldowsky <boris@gnu.org> ;; Keywords: wp, faces diff --git a/lisp/textmodes/fill.el b/lisp/textmodes/fill.el index b8614b16f82..d3fa49491d4 100644 --- a/lisp/textmodes/fill.el +++ b/lisp/textmodes/fill.el @@ -1,6 +1,6 @@ ;;; fill.el --- fill commands for Emacs -*- coding: utf-8 -*- -;; Copyright (C) 1985-1986, 1992, 1994-1997, 1999, 2001-2011 +;; Copyright (C) 1985-1986, 1992, 1994-1997, 1999, 2001-2012 ;; Free Software Foundation, Inc. ;; Maintainer: FSF @@ -82,7 +82,7 @@ reinserts the fill prefix in each resulting line." (setq fill-prefix nil))) (if fill-prefix (message "fill-prefix: \"%s\"" fill-prefix) - (message "fill-prefix cancelled"))) + (message "fill-prefix canceled"))) (defcustom adaptive-fill-mode t "Non-nil means determine a paragraph's fill prefix from its text." @@ -383,7 +383,7 @@ and `fill-nobreak-invisible'." "Char-table of characters that don't use space between words.") (progn - ;; Register `kinsoku' for scripts HAN, KANA, BOPOMPFO, and CJK-MISS. + ;; Register `kinsoku' for scripts HAN, KANA, BOPOMOFO, and CJK-MISC. ;; Also tell that they don't use space between words. (map-char-table #'(lambda (key val) diff --git a/lisp/textmodes/flyspell.el b/lisp/textmodes/flyspell.el index 6b4c1a2940d..930fda0626b 100644 --- a/lisp/textmodes/flyspell.el +++ b/lisp/textmodes/flyspell.el @@ -1,6 +1,6 @@ ;;; flyspell.el --- on-the-fly spell checker -;; Copyright (C) 1998, 2000-2011 Free Software Foundation, Inc. +;; Copyright (C) 1998, 2000-2012 Free Software Foundation, Inc. ;; Author: Manuel Serrano <Manuel.Serrano@sophia.inria.fr> ;; Maintainer: FSF diff --git a/lisp/textmodes/ispell.el b/lisp/textmodes/ispell.el index ba7b84fe1dd..c1fcb6013b2 100644 --- a/lisp/textmodes/ispell.el +++ b/lisp/textmodes/ispell.el @@ -1,6 +1,6 @@ ;;; ispell.el --- interface to International Ispell Versions 3.1 and 3.2 -;; Copyright (C) 1994-1995, 1997-2011 Free Software Foundation, Inc. +;; Copyright (C) 1994-1995, 1997-2012 Free Software Foundation, Inc. ;; Author: Ken Stevens <k.stevens@ieee.org> ;; Maintainer: Ken Stevens <k.stevens@ieee.org> diff --git a/lisp/textmodes/makeinfo.el b/lisp/textmodes/makeinfo.el index 4d701a9d268..8cc2e7d2993 100644 --- a/lisp/textmodes/makeinfo.el +++ b/lisp/textmodes/makeinfo.el @@ -1,6 +1,6 @@ ;;; makeinfo.el --- run makeinfo conveniently -;; Copyright (C) 1991, 1993, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1991, 1993, 2001-2012 Free Software Foundation, Inc. ;; Author: Robert J. Chassell ;; Maintainer: FSF diff --git a/lisp/textmodes/nroff-mode.el b/lisp/textmodes/nroff-mode.el index 1be78ed293f..4bd400dcd8c 100644 --- a/lisp/textmodes/nroff-mode.el +++ b/lisp/textmodes/nroff-mode.el @@ -1,6 +1,6 @@ ;;; nroff-mode.el --- GNU Emacs major mode for editing nroff source -;; Copyright (C) 1985-1986, 1994-1995, 1997, 2001-2011 +;; Copyright (C) 1985-1986, 1994-1995, 1997, 2001-2012 ;; Free Software Foundation, Inc. ;; Maintainer: FSF diff --git a/lisp/textmodes/page-ext.el b/lisp/textmodes/page-ext.el index 91f6624e7a3..a45be0ae7f6 100644 --- a/lisp/textmodes/page-ext.el +++ b/lisp/textmodes/page-ext.el @@ -1,6 +1,6 @@ ;;; page-ext.el --- extended page handling commands -;; Copyright (C) 1990-1991, 1993-1994, 2001-2011 +;; Copyright (C) 1990-1991, 1993-1994, 2001-2012 ;; Free Software Foundation, Inc. ;; Author: Robert J. Chassell <bob@gnu.org> diff --git a/lisp/textmodes/page.el b/lisp/textmodes/page.el index 95ba7ebd86f..953c7e65490 100644 --- a/lisp/textmodes/page.el +++ b/lisp/textmodes/page.el @@ -1,6 +1,6 @@ ;;; page.el --- page motion commands for Emacs -;; Copyright (C) 1985, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1985, 2001-2012 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: wp convenience diff --git a/lisp/textmodes/paragraphs.el b/lisp/textmodes/paragraphs.el index b47924bc1f2..5a5942aa29d 100644 --- a/lisp/textmodes/paragraphs.el +++ b/lisp/textmodes/paragraphs.el @@ -1,6 +1,6 @@ ;;; paragraphs.el --- paragraph and sentence parsing -;; Copyright (C) 1985-1987, 1991, 1994-1997, 1999-2011 +;; Copyright (C) 1985-1987, 1991, 1994-1997, 1999-2012 ;; Free Software Foundation, Inc. ;; Maintainer: FSF diff --git a/lisp/textmodes/picture.el b/lisp/textmodes/picture.el index 3356ce195f2..577e12b9b40 100644 --- a/lisp/textmodes/picture.el +++ b/lisp/textmodes/picture.el @@ -1,6 +1,6 @@ ;;; picture.el --- "Picture mode" -- editing using quarter-plane screen model -;; Copyright (C) 1985, 1994, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1985, 1994, 2001-2012 Free Software Foundation, Inc. ;; Author: K. Shane Hartman ;; Maintainer: FSF diff --git a/lisp/textmodes/po.el b/lisp/textmodes/po.el index 7810cc6d57a..a47d6cfa1b1 100644 --- a/lisp/textmodes/po.el +++ b/lisp/textmodes/po.el @@ -1,6 +1,6 @@ ;;; po.el --- basic support of PO translation files -*- coding: latin-1; -*- -;; Copyright (C) 1995-1998, 2000-2011 Free Software Foundation, Inc. +;; Copyright (C) 1995-1998, 2000-2012 Free Software Foundation, Inc. ;; Authors: François Pinard <pinard@iro.umontreal.ca>, ;; Greg McGary <gkm@magilla.cichlid.com>, diff --git a/lisp/textmodes/refbib.el b/lisp/textmodes/refbib.el index 557978395c1..b473019643a 100644 --- a/lisp/textmodes/refbib.el +++ b/lisp/textmodes/refbib.el @@ -1,6 +1,6 @@ ;;; refbib.el --- convert refer-style references to ones usable by Latex bib -;; Copyright (C) 1989, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1989, 2001-2012 Free Software Foundation, Inc. ;; Author: Henry Kautz <kautz@research.att.com> ;; Maintainer: FSF diff --git a/lisp/textmodes/refer.el b/lisp/textmodes/refer.el index 7ee0fcf9da6..ad1996b005e 100644 --- a/lisp/textmodes/refer.el +++ b/lisp/textmodes/refer.el @@ -1,6 +1,6 @@ ;;; refer.el --- look up references in bibliography files -;; Copyright (C) 1992, 1996, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1992, 1996, 2001-2012 Free Software Foundation, Inc. ;; Author: Ashwin Ram <ashwin@cc.gatech.edu> ;; Maintainer: Gernot Heiser <gernot@acm.org> diff --git a/lisp/textmodes/refill.el b/lisp/textmodes/refill.el index d60b7594c07..cb7e9ff0b88 100644 --- a/lisp/textmodes/refill.el +++ b/lisp/textmodes/refill.el @@ -1,6 +1,6 @@ ;;; refill.el --- `auto-fill' by refilling paragraphs on changes -;; Copyright (C) 2000-2011 Free Software Foundation, Inc. +;; Copyright (C) 2000-2012 Free Software Foundation, Inc. ;; Author: Dave Love <fx@gnu.org> ;; Maintainer: Miles Bader <miles@gnu.org> diff --git a/lisp/textmodes/reftex-auc.el b/lisp/textmodes/reftex-auc.el index eba19c25ef6..3a875f0dfa3 100644 --- a/lisp/textmodes/reftex-auc.el +++ b/lisp/textmodes/reftex-auc.el @@ -1,6 +1,6 @@ ;;; reftex-auc.el --- RefTeX's interface to AUCTeX -;; Copyright (C) 1997-2011 Free Software Foundation, Inc. +;; Copyright (C) 1997-2012 Free Software Foundation, Inc. ;; Author: Carsten Dominik <dominik@science.uva.nl> ;; Maintainer: auctex-devel@gnu.org diff --git a/lisp/textmodes/reftex-cite.el b/lisp/textmodes/reftex-cite.el index e0fd940208a..31001c78e54 100644 --- a/lisp/textmodes/reftex-cite.el +++ b/lisp/textmodes/reftex-cite.el @@ -1,6 +1,6 @@ ;;; reftex-cite.el --- creating citations with RefTeX -;; Copyright (C) 1997-2011 Free Software Foundation, Inc. +;; Copyright (C) 1997-2012 Free Software Foundation, Inc. ;; Author: Carsten Dominik <dominik@science.uva.nl> ;; Maintainer: auctex-devel@gnu.org diff --git a/lisp/textmodes/reftex-dcr.el b/lisp/textmodes/reftex-dcr.el index 2aecc34e2b0..ebda25ea932 100644 --- a/lisp/textmodes/reftex-dcr.el +++ b/lisp/textmodes/reftex-dcr.el @@ -1,6 +1,6 @@ ;;; reftex-dcr.el --- viewing cross references and citations with RefTeX -;; Copyright (C) 1997-2011 Free Software Foundation, Inc. +;; Copyright (C) 1997-2012 Free Software Foundation, Inc. ;; Author: Carsten Dominik <dominik@science.uva.nl> ;; Maintainer: auctex-devel@gnu.org diff --git a/lisp/textmodes/reftex-global.el b/lisp/textmodes/reftex-global.el index bf46635c479..681e36b524a 100644 --- a/lisp/textmodes/reftex-global.el +++ b/lisp/textmodes/reftex-global.el @@ -1,6 +1,6 @@ ;;; reftex-global.el --- operations on entire documents with RefTeX -;; Copyright (C) 1997-2011 Free Software Foundation, Inc. +;; Copyright (C) 1997-2012 Free Software Foundation, Inc. ;; Author: Carsten Dominik <dominik@science.uva.nl> ;; Maintainer: auctex-devel@gnu.org diff --git a/lisp/textmodes/reftex-index.el b/lisp/textmodes/reftex-index.el index f0ceaa74d26..fdcbf8b0b43 100644 --- a/lisp/textmodes/reftex-index.el +++ b/lisp/textmodes/reftex-index.el @@ -1,6 +1,6 @@ ;;; reftex-index.el --- index support with RefTeX -;; Copyright (C) 1997-2011 Free Software Foundation, Inc. +;; Copyright (C) 1997-2012 Free Software Foundation, Inc. ;; Author: Carsten Dominik <dominik@science.uva.nl> ;; Maintainer: auctex-devel@gnu.org diff --git a/lisp/textmodes/reftex-parse.el b/lisp/textmodes/reftex-parse.el index 1a0f7ec5836..c6526d1b6ce 100644 --- a/lisp/textmodes/reftex-parse.el +++ b/lisp/textmodes/reftex-parse.el @@ -1,6 +1,6 @@ ;;; reftex-parse.el --- parser functions for RefTeX -;; Copyright (C) 1997-2011 Free Software Foundation, Inc. +;; Copyright (C) 1997-2012 Free Software Foundation, Inc. ;; Author: Carsten Dominik <dominik@science.uva.nl> ;; Maintainer: auctex-devel@gnu.org diff --git a/lisp/textmodes/reftex-ref.el b/lisp/textmodes/reftex-ref.el index d622603236e..03690f65281 100644 --- a/lisp/textmodes/reftex-ref.el +++ b/lisp/textmodes/reftex-ref.el @@ -1,6 +1,6 @@ ;;; reftex-ref.el --- code to create labels and references with RefTeX -;; Copyright (C) 1997-2011 Free Software Foundation, Inc. +;; Copyright (C) 1997-2012 Free Software Foundation, Inc. ;; Author: Carsten Dominik <dominik@science.uva.nl> ;; Maintainer: auctex-devel@gnu.org diff --git a/lisp/textmodes/reftex-sel.el b/lisp/textmodes/reftex-sel.el index f4f10f1d1e0..c583b67f13a 100644 --- a/lisp/textmodes/reftex-sel.el +++ b/lisp/textmodes/reftex-sel.el @@ -1,6 +1,6 @@ ;;; reftex-sel.el --- the selection modes for RefTeX -;; Copyright (C) 1997-2011 Free Software Foundation, Inc. +;; Copyright (C) 1997-2012 Free Software Foundation, Inc. ;; Author: Carsten Dominik <dominik@science.uva.nl> ;; Maintainer: auctex-devel@gnu.org diff --git a/lisp/textmodes/reftex-toc.el b/lisp/textmodes/reftex-toc.el index 25be64a3af2..5d293d404e6 100644 --- a/lisp/textmodes/reftex-toc.el +++ b/lisp/textmodes/reftex-toc.el @@ -1,6 +1,6 @@ ;;; reftex-toc.el --- RefTeX's table of contents mode -;; Copyright (C) 1997-2000, 2003-2011 Free Software Foundation, Inc. +;; Copyright (C) 1997-2000, 2003-2012 Free Software Foundation, Inc. ;; Author: Carsten Dominik <dominik@science.uva.nl> ;; Maintainer: auctex-devel@gnu.org diff --git a/lisp/textmodes/reftex-vars.el b/lisp/textmodes/reftex-vars.el index 1b503c78afd..98135b7ce24 100644 --- a/lisp/textmodes/reftex-vars.el +++ b/lisp/textmodes/reftex-vars.el @@ -1,6 +1,6 @@ ;;; reftex-vars.el --- configuration variables for RefTeX -;; Copyright (C) 1997-1999, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1997-1999, 2001-2012 Free Software Foundation, Inc. ;; Author: Carsten Dominik <dominik@science.uva.nl> ;; Maintainer: auctex-devel@gnu.org @@ -1750,7 +1750,7 @@ The option is ignored when `reftex-use-fonts' is nil." (defcustom reftex-highlight-selection 'cursor "*Non-nil mean, highlight selected text in selection and *toc* buffers. Normally, the text near the cursor is the selected text, and it is -highlighted. This is the entry most keys in the selction and *toc* +highlighted. This is the entry most keys in the selection and *toc* buffers act on. However, if you mainly use the mouse to select an item, you may find it nice to have mouse-triggered highlighting instead or as well. The variable may have one of these values: diff --git a/lisp/textmodes/reftex.el b/lisp/textmodes/reftex.el index b73056a803b..8c349a2e20a 100644 --- a/lisp/textmodes/reftex.el +++ b/lisp/textmodes/reftex.el @@ -1,5 +1,5 @@ ;;; reftex.el --- minor mode for doing \label, \ref, \cite, \index in LaTeX -;; Copyright (C) 1997-2000, 2003-2011 Free Software Foundation, Inc. +;; Copyright (C) 1997-2000, 2003-2012 Free Software Foundation, Inc. ;; Author: Carsten Dominik <dominik@science.uva.nl> ;; Maintainer: auctex-devel@gnu.org diff --git a/lisp/textmodes/remember.el b/lisp/textmodes/remember.el index 07a4fae9c30..6500160a7d3 100644 --- a/lisp/textmodes/remember.el +++ b/lisp/textmodes/remember.el @@ -1,6 +1,6 @@ ;;; remember --- a mode for quickly jotting down things to remember -;; Copyright (C) 1999-2001, 2003-2011 Free Software Foundation, Inc. +;; Copyright (C) 1999-2001, 2003-2012 Free Software Foundation, Inc. ;; Author: John Wiegley <johnw@gnu.org> ;; Created: 29 Mar 1999 @@ -474,7 +474,7 @@ If this is nil, then `diary-file' will be used instead." (replace-match (let ((style (if (boundp 'calendar-date-style) calendar-date-style - ;; Don't complain about obsoleteness. + ;; Don't complain about obsolescence. (if (with-no-warnings european-calendar-style) 'european 'american)))) diff --git a/lisp/textmodes/rst.el b/lisp/textmodes/rst.el index 64dffe78d50..1b1860c833d 100644 --- a/lisp/textmodes/rst.el +++ b/lisp/textmodes/rst.el @@ -1,6 +1,6 @@ ;;; rst.el --- Mode for viewing and editing reStructuredText-documents. -;; Copyright (C) 2003-2011 Free Software Foundation, Inc. +;; Copyright (C) 2003-2012 Free Software Foundation, Inc. ;; Authors: Martin Blais <blais@furius.ca>, ;; Stefan Merten <smerten@oekonux.de>, @@ -243,7 +243,7 @@ (define-key map [(control ?=)] 'rst-adjust) ;; (Does not work on the Mac OSX.) ;; Display the hierarchy of decorations implied by the current document contents. (define-key map [(control c) (control h)] 'rst-display-decorations-hierarchy) - ;; Homogeneize the decorations in the document. + ;; Homogenize the decorations in the document. (define-key map [(control c) (control s)] 'rst-straighten-decorations) ;; (define-key map [(control c) (control s)] 'rst-straighten-deco-spacing) @@ -2348,7 +2348,7 @@ of (COLUMN-NUMBER . LINE) pairs." )) (defun rst-shift-region-right (pfxarg) - "Indent region ridigly, by a few characters to the right. + "Indent region rigidly, by a few characters to the right. This function first computes all possible alignment columns by inspecting the lines preceding the region for bulleted or enumerated list items. If the leftmost column is beyond the diff --git a/lisp/textmodes/sgml-mode.el b/lisp/textmodes/sgml-mode.el index f9e3283b783..4e8f0a5a82c 100644 --- a/lisp/textmodes/sgml-mode.el +++ b/lisp/textmodes/sgml-mode.el @@ -1,6 +1,6 @@ ;;; sgml-mode.el --- SGML- and HTML-editing modes -*- coding: utf-8 -*- -;; Copyright (C) 1992, 1995-1996, 1998, 2001-2011 +;; Copyright (C) 1992, 1995-1996, 1998, 2001-2012 ;; Free Software Foundation, Inc. ;; Author: James Clark <jjc@jclark.com> diff --git a/lisp/textmodes/table.el b/lisp/textmodes/table.el index 6f9e592d8ed..e98d78ad439 100644 --- a/lisp/textmodes/table.el +++ b/lisp/textmodes/table.el @@ -1,6 +1,6 @@ ;;; table.el --- create and edit WYSIWYG text based embedded tables -;; Copyright (C) 2000-2011 Free Software Foundation, Inc. +;; Copyright (C) 2000-2012 Free Software Foundation, Inc. ;; Keywords: wp, convenience ;; Author: Takaaki Ota <Takaaki.Ota@am.sony.com> diff --git a/lisp/textmodes/tex-mode.el b/lisp/textmodes/tex-mode.el index 34bd24fba3a..c5cad045c3f 100644 --- a/lisp/textmodes/tex-mode.el +++ b/lisp/textmodes/tex-mode.el @@ -1,6 +1,6 @@ ;;; tex-mode.el --- TeX, LaTeX, and SliTeX mode commands -*- coding: utf-8 -*- -;; Copyright (C) 1985-1986, 1989, 1992, 1994-1999, 2001-2011 +;; Copyright (C) 1985-1986, 1989, 1992, 1994-1999, 2001-2012 ;; Free Software Foundation, Inc. ;; Maintainer: FSF diff --git a/lisp/textmodes/texinfmt.el b/lisp/textmodes/texinfmt.el index b186b02851d..3ec59ebcd3e 100644 --- a/lisp/textmodes/texinfmt.el +++ b/lisp/textmodes/texinfmt.el @@ -1,6 +1,6 @@ ;;; texinfmt.el --- format Texinfo files into Info files -;; Copyright (C) 1985-1986, 1988, 1990-1998, 2000-2011 +;; Copyright (C) 1985-1986, 1988, 1990-1998, 2000-2012 ;; Free Software Foundation, Inc. ;; Maintainer: Robert J. Chassell <bug-texinfo@gnu.org> diff --git a/lisp/textmodes/texinfo.el b/lisp/textmodes/texinfo.el index 7e9ce9aff6d..31af2e72699 100644 --- a/lisp/textmodes/texinfo.el +++ b/lisp/textmodes/texinfo.el @@ -1,6 +1,6 @@ ;;; texinfo.el --- major mode for editing Texinfo files -*- coding: utf-8 -*- -;; Copyright (C) 1985, 1988-1993, 1996-1997, 2000-2011 +;; Copyright (C) 1985, 1988-1993, 1996-1997, 2000-2012 ;; Free Software Foundation, Inc. ;; Author: Robert J. Chassell diff --git a/lisp/textmodes/texnfo-upd.el b/lisp/textmodes/texnfo-upd.el index d674b3a397e..83ef834257a 100644 --- a/lisp/textmodes/texnfo-upd.el +++ b/lisp/textmodes/texnfo-upd.el @@ -1,6 +1,6 @@ ;;; texnfo-upd.el --- utilities for updating nodes and menus in Texinfo files -;; Copyright (C) 1989-1992, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1989-1992, 2001-2012 Free Software Foundation, Inc. ;; Author: Robert J. Chassell ;; Maintainer: bug-texinfo@gnu.org @@ -41,7 +41,7 @@ ;; ;; Important note: We do NOT recommend use of these commands to update ;; the `Next', `Previous' and `Up' pointers on @node lines. Most -;; manuals, including those whose Texinfo files adhere to the strucure +;; manuals, including those whose Texinfo files adhere to the structure ;; described below, don't need these pointers, because makeinfo will ;; generate them automatically (see the node "makeinfo Pointer ;; Creation" in the Texinfo manual). By contrast, due to known bugs @@ -1165,7 +1165,7 @@ error if the node is not the top node and a section is not found." "texinfo-specific-section-type: Chapter or section not found")))))) (defun texinfo-hierarchic-level () - "Return the general hierarchal level of the next node in a texinfo file. + "Return the general hierarchical level of the next node in a texinfo file. Thus, a subheading or appendixsubsec is of type subsection." (let ((case-fold-search t)) (cadr (assoc diff --git a/lisp/textmodes/text-mode.el b/lisp/textmodes/text-mode.el index 3f6ad1faf87..098a545568c 100644 --- a/lisp/textmodes/text-mode.el +++ b/lisp/textmodes/text-mode.el @@ -1,6 +1,6 @@ ;;; text-mode.el --- text mode, and its idiosyncratic commands -;; Copyright (C) 1985, 1992, 1994, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1985, 1992, 1994, 2001-2012 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: wp diff --git a/lisp/textmodes/tildify.el b/lisp/textmodes/tildify.el index b5af00cc450..5552eff7186 100644 --- a/lisp/textmodes/tildify.el +++ b/lisp/textmodes/tildify.el @@ -1,6 +1,6 @@ ;;; tildify.el --- adding hard spaces into texts -;; Copyright (C) 1997-2011 Free Software Foundation, Inc. +;; Copyright (C) 1997-2012 Free Software Foundation, Inc. ;; Author: Milan Zamazal <pdm@zamazal.org> ;; Version: 4.5 diff --git a/lisp/textmodes/two-column.el b/lisp/textmodes/two-column.el index de9ac10d0e9..40cbbc59292 100644 --- a/lisp/textmodes/two-column.el +++ b/lisp/textmodes/two-column.el @@ -1,6 +1,6 @@ ;;; two-column.el --- minor mode for editing of two-column text -;; Copyright (C) 1992-1995, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1992-1995, 2001-2012 Free Software Foundation, Inc. ;; Author: Daniel Pfeiffer <occitan@esperanto.org> ;; Adapted-By: ESR, Daniel Pfeiffer diff --git a/lisp/textmodes/underline.el b/lisp/textmodes/underline.el index 2adac5a106a..f39ad03e037 100644 --- a/lisp/textmodes/underline.el +++ b/lisp/textmodes/underline.el @@ -1,6 +1,6 @@ ;;; underline.el --- insert/remove underlining (done by overstriking) in Emacs -;; Copyright (C) 1985, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1985, 2001-2012 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: wp diff --git a/lisp/thingatpt.el b/lisp/thingatpt.el index ff63ca34035..1600785c117 100644 --- a/lisp/thingatpt.el +++ b/lisp/thingatpt.el @@ -1,6 +1,6 @@ ;;; thingatpt.el --- get the `thing' at point -;; Copyright (C) 1991-1998, 2000-2011 Free Software Foundation, Inc. +;; Copyright (C) 1991-1998, 2000-2012 Free Software Foundation, Inc. ;; Author: Mike Williams <mikew@gopher.dosli.govt.nz> ;; Maintainer: FSF diff --git a/lisp/thumbs.el b/lisp/thumbs.el index 6ffd256d0a0..67f940c35ec 100644 --- a/lisp/thumbs.el +++ b/lisp/thumbs.el @@ -1,6 +1,6 @@ ;;; thumbs.el --- Thumbnails previewer for images files -;; Copyright (C) 2004-2011 Free Software Foundation, Inc. +;; Copyright (C) 2004-2012 Free Software Foundation, Inc. ;; Author: Jean-Philippe Theberge <jphiltheberge@videotron.ca> ;; Maintainer: FSF diff --git a/lisp/time-stamp.el b/lisp/time-stamp.el index fda8cd1438d..13963121e2b 100644 --- a/lisp/time-stamp.el +++ b/lisp/time-stamp.el @@ -1,6 +1,6 @@ ;;; time-stamp.el --- Maintain last change time stamps in files edited by Emacs -;; Copyright (C) 1989, 1993-1995, 1997, 2000-2011 +;; Copyright (C) 1989, 1993-1995, 1997, 2000-2012 ;; Free Software Foundation, Inc. ;; This file is part of GNU Emacs. diff --git a/lisp/time.el b/lisp/time.el index 4955b177545..c7fa5927e48 100644 --- a/lisp/time.el +++ b/lisp/time.el @@ -1,6 +1,6 @@ ;;; time.el --- display time, load and mail indicator in mode line of Emacs -*-coding: utf-8 -*- -;; Copyright (C) 1985-1987, 1993-1994, 1996, 2000-2011 +;; Copyright (C) 1985-1987, 1993-1994, 1996, 2000-2012 ;; Free Software Foundation, Inc. ;; Maintainer: FSF @@ -64,13 +64,14 @@ directory `display-time-mail-directory' contains nonempty files." (defcustom display-time-default-load-average 0 "Which load average value will be shown in the mode line. -Almost every system can provide values of load for past 1 minute, past 5 or -past 15 minutes. The default is to display 1 minute load average. +Almost every system can provide values of load for the past 1 minute, +past 5 or past 15 minutes. The default is to display 1-minute load average. The value can be one of: 0 => 1 minute load 1 => 5 minutes load - 2 => 15 minutes load" + 2 => 15 minutes load + nil => None (do not display the load average)" :type '(choice (const :tag "1 minute load" 0) (const :tag "5 minutes load" 1) (const :tag "15 minutes load" 2) @@ -78,7 +79,10 @@ The value can be one of: :group 'display-time) (defvar display-time-load-average nil - "Load average currently being shown in mode line.") + "Value of the system's load average currently shown on the mode line. +See `display-time-default-load-average'. + +This is an internal variable; setting it has no effect.") (defcustom display-time-load-average-threshold 0.1 "Load-average values below this value won't be shown in the mode line." @@ -349,6 +353,8 @@ would give mode line times like `94/12/30 21:07:48 (UTC)'." (timer-activate timer))))) (defun display-time-next-load-average () + "Switch between different load averages in the mode line. +Switches from the 1 to 5 to 15 minute load average, and then back to 1." (interactive) (if (= 3 (setq display-time-load-average (1+ display-time-load-average))) (setq display-time-load-average 0)) diff --git a/lisp/timezone.el b/lisp/timezone.el index 092d491a495..00e69aa39cc 100644 --- a/lisp/timezone.el +++ b/lisp/timezone.el @@ -1,6 +1,6 @@ ;;; timezone.el --- time zone package for GNU Emacs -;; Copyright (C) 1990-1993, 1996, 1999, 2001-2011 +;; Copyright (C) 1990-1993, 1996, 1999, 2001-2012 ;; Free Software Foundation, Inc. ;; Author: Masanobu Umeda diff --git a/lisp/tmm.el b/lisp/tmm.el index 5722c2c8f79..2a0d1d3d7de 100644 --- a/lisp/tmm.el +++ b/lisp/tmm.el @@ -1,6 +1,6 @@ ;;; tmm.el --- text mode access to menu-bar -;; Copyright (C) 1994-1996, 2000-2011 Free Software Foundation, Inc. +;; Copyright (C) 1994-1996, 2000-2012 Free Software Foundation, Inc. ;; Author: Ilya Zakharevich <ilya@math.mps.ohio-state.edu> ;; Maintainer: FSF diff --git a/lisp/tool-bar.el b/lisp/tool-bar.el index 8759e0f77fb..0e47338bf9f 100644 --- a/lisp/tool-bar.el +++ b/lisp/tool-bar.el @@ -1,6 +1,6 @@ ;;; tool-bar.el --- setting up the tool bar -;; Copyright (C) 2000-2011 Free Software Foundation, Inc. +;; Copyright (C) 2000-2012 Free Software Foundation, Inc. ;; Author: Dave Love <fx@gnu.org> ;; Keywords: mouse frames diff --git a/lisp/tooltip.el b/lisp/tooltip.el index 59115122c34..76ae62d88e2 100644 --- a/lisp/tooltip.el +++ b/lisp/tooltip.el @@ -1,6 +1,6 @@ ;;; tooltip.el --- show tooltip windows -;; Copyright (C) 1997, 1999-2011 Free Software Foundation, Inc. +;; Copyright (C) 1997, 1999-2012 Free Software Foundation, Inc. ;; Author: Gerd Moellmann <gerd@acm.org> ;; Keywords: help c mouse tools diff --git a/lisp/tree-widget.el b/lisp/tree-widget.el index c5aa1f330af..d1150d52f3f 100644 --- a/lisp/tree-widget.el +++ b/lisp/tree-widget.el @@ -1,6 +1,6 @@ ;;; tree-widget.el --- Tree widget -;; Copyright (C) 2004-2011 Free Software Foundation, Inc. +;; Copyright (C) 2004-2012 Free Software Foundation, Inc. ;; Author: David Ponce <david@dponce.com> ;; Maintainer: David Ponce <david@dponce.com> diff --git a/lisp/tutorial.el b/lisp/tutorial.el index 2e651484008..80d8f287cb1 100644 --- a/lisp/tutorial.el +++ b/lisp/tutorial.el @@ -1,6 +1,6 @@ ;;; tutorial.el --- tutorial for Emacs -;; Copyright (C) 2006-2011 Free Software Foundation, Inc. +;; Copyright (C) 2006-2012 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: help, internal diff --git a/lisp/type-break.el b/lisp/type-break.el index da3129ec576..ee64fde1c67 100644 --- a/lisp/type-break.el +++ b/lisp/type-break.el @@ -1,6 +1,6 @@ ;;; type-break.el --- encourage rests from typing at appropriate intervals -;; Copyright (C) 1994-1995, 1997, 2000-2011 Free Software Foundation, Inc. +;; Copyright (C) 1994-1995, 1997, 2000-2012 Free Software Foundation, Inc. ;; Author: Noah Friedman ;; Maintainer: Noah Friedman <friedman@splode.com> diff --git a/lisp/uniquify.el b/lisp/uniquify.el index 3153e143ba3..520c4b847dd 100644 --- a/lisp/uniquify.el +++ b/lisp/uniquify.el @@ -1,6 +1,6 @@ ;;; uniquify.el --- unique buffer names dependent on file name -*- lexical-binding: t -*- -;; Copyright (C) 1989, 1995-1997, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1989, 1995-1997, 2001-2012 Free Software Foundation, Inc. ;; Author: Dick King <king@reasoning.com> ;; Maintainer: FSF diff --git a/lisp/url/ChangeLog b/lisp/url/ChangeLog index db28770ad0e..4c28ae3f1a9 100644 --- a/lisp/url/ChangeLog +++ b/lisp/url/ChangeLog @@ -2500,7 +2500,7 @@ ;; coding: utf-8 ;; End: - Copyright (C) 1999, 2001-2002, 2004-2011 Free Software Foundation, Inc. + Copyright (C) 1999, 2001-2002, 2004-2012 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/lisp/url/url-about.el b/lisp/url/url-about.el index b6f54db038e..d2a750f08d7 100644 --- a/lisp/url/url-about.el +++ b/lisp/url/url-about.el @@ -1,6 +1,6 @@ ;;; url-about.el --- Show internal URLs -;; Copyright (C) 2001, 2004-2011 Free Software Foundation, Inc. +;; Copyright (C) 2001, 2004-2012 Free Software Foundation, Inc. ;; Keywords: comm, data, processes, hypermedia diff --git a/lisp/url/url-auth.el b/lisp/url/url-auth.el index 5261302a15c..be307698575 100644 --- a/lisp/url/url-auth.el +++ b/lisp/url/url-auth.el @@ -1,6 +1,6 @@ ;;; url-auth.el --- Uniform Resource Locator authorization modules -;; Copyright (C) 1996-1999, 2004-2011 Free Software Foundation, Inc. +;; Copyright (C) 1996-1999, 2004-2012 Free Software Foundation, Inc. ;; Keywords: comm, data, processes, hypermedia diff --git a/lisp/url/url-cache.el b/lisp/url/url-cache.el index 80d77020456..20602a2f8ef 100644 --- a/lisp/url/url-cache.el +++ b/lisp/url/url-cache.el @@ -1,6 +1,6 @@ ;;; url-cache.el --- Uniform Resource Locator retrieval tool -;; Copyright (C) 1996-1999, 2004-2011 Free Software Foundation, Inc. +;; Copyright (C) 1996-1999, 2004-2012 Free Software Foundation, Inc. ;; Keywords: comm, data, processes, hypermedia diff --git a/lisp/url/url-cid.el b/lisp/url/url-cid.el index a5371a423e0..4909872b386 100644 --- a/lisp/url/url-cid.el +++ b/lisp/url/url-cid.el @@ -1,6 +1,6 @@ ;;; url-cid.el --- Content-ID URL loader -;; Copyright (C) 1998-1999, 2004-2011 Free Software Foundation, Inc. +;; Copyright (C) 1998-1999, 2004-2012 Free Software Foundation, Inc. ;; Keywords: comm, data, processes diff --git a/lisp/url/url-cookie.el b/lisp/url/url-cookie.el index 746a4dc77b5..e6ff9bf7dea 100644 --- a/lisp/url/url-cookie.el +++ b/lisp/url/url-cookie.el @@ -1,6 +1,6 @@ ;;; url-cookie.el --- URL cookie support -;; Copyright (C) 1996-1999, 2004-2011 Free Software Foundation, Inc. +;; Copyright (C) 1996-1999, 2004-2012 Free Software Foundation, Inc. ;; Keywords: comm, data, processes, hypermedia diff --git a/lisp/url/url-dav.el b/lisp/url/url-dav.el index 0e3713c9fcc..03527bceee7 100644 --- a/lisp/url/url-dav.el +++ b/lisp/url/url-dav.el @@ -1,6 +1,6 @@ ;;; url-dav.el --- WebDAV support -;; Copyright (C) 2001, 2004-2011 Free Software Foundation, Inc. +;; Copyright (C) 2001, 2004-2012 Free Software Foundation, Inc. ;; Author: Bill Perry <wmperry@gnu.org> ;; Maintainer: Bill Perry <wmperry@gnu.org> diff --git a/lisp/url/url-dired.el b/lisp/url/url-dired.el index bb29fecb655..72ada795055 100644 --- a/lisp/url/url-dired.el +++ b/lisp/url/url-dired.el @@ -1,6 +1,6 @@ ;;; url-dired.el --- URL Dired minor mode -;; Copyright (C) 1996-1999, 2004-2011 Free Software Foundation, Inc. +;; Copyright (C) 1996-1999, 2004-2012 Free Software Foundation, Inc. ;; Keywords: comm, files diff --git a/lisp/url/url-expand.el b/lisp/url/url-expand.el index 1781c362959..156b06c895b 100644 --- a/lisp/url/url-expand.el +++ b/lisp/url/url-expand.el @@ -1,6 +1,6 @@ ;;; url-expand.el --- expand-file-name for URLs -;; Copyright (C) 1999, 2004-2011 Free Software Foundation, Inc. +;; Copyright (C) 1999, 2004-2012 Free Software Foundation, Inc. ;; Keywords: comm, data, processes diff --git a/lisp/url/url-file.el b/lisp/url/url-file.el index 28fb59cd112..62052fcaafb 100644 --- a/lisp/url/url-file.el +++ b/lisp/url/url-file.el @@ -1,6 +1,6 @@ ;;; url-file.el --- File retrieval code -;; Copyright (C) 1996-1999, 2004-2011 Free Software Foundation, Inc. +;; Copyright (C) 1996-1999, 2004-2012 Free Software Foundation, Inc. ;; Keywords: comm, data, processes diff --git a/lisp/url/url-ftp.el b/lisp/url/url-ftp.el index 670094d80ca..824ea14c739 100644 --- a/lisp/url/url-ftp.el +++ b/lisp/url/url-ftp.el @@ -1,6 +1,6 @@ ;;; url-ftp.el --- FTP wrapper -;; Copyright (C) 1996-1999, 2004-2011 Free Software Foundation, Inc. +;; Copyright (C) 1996-1999, 2004-2012 Free Software Foundation, Inc. ;; Keywords: comm, data, processes diff --git a/lisp/url/url-future.el b/lisp/url/url-future.el index 8a2c112715c..2798f936f21 100644 --- a/lisp/url/url-future.el +++ b/lisp/url/url-future.el @@ -1,6 +1,6 @@ ;;; url-future.el --- general futures facility for url.el -;; Copyright (C) 2011 Free Software Foundation, Inc. +;; Copyright (C) 2011-2012 Free Software Foundation, Inc. ;; Author: Teodor Zlatanov <tzz@lifelogs.com> ;; Keywords: data diff --git a/lisp/url/url-gw.el b/lisp/url/url-gw.el index a3a384b7a90..ec26ae053d8 100644 --- a/lisp/url/url-gw.el +++ b/lisp/url/url-gw.el @@ -1,6 +1,6 @@ ;;; url-gw.el --- Gateway munging for URL loading -;; Copyright (C) 1997-1998, 2004-2011 Free Software Foundation, Inc. +;; Copyright (C) 1997-1998, 2004-2012 Free Software Foundation, Inc. ;; Author: Bill Perry <wmperry@gnu.org> ;; Keywords: comm, data, processes diff --git a/lisp/url/url-handlers.el b/lisp/url/url-handlers.el index d5f7eb7dd36..4bc5bd47488 100644 --- a/lisp/url/url-handlers.el +++ b/lisp/url/url-handlers.el @@ -1,6 +1,6 @@ ;;; url-handlers.el --- file-name-handler stuff for URL loading -;; Copyright (C) 1996-1999, 2004-2011 Free Software Foundation, Inc. +;; Copyright (C) 1996-1999, 2004-2012 Free Software Foundation, Inc. ;; Keywords: comm, data, processes, hypermedia diff --git a/lisp/url/url-history.el b/lisp/url/url-history.el index 3827f9a5d41..68c7d39adef 100644 --- a/lisp/url/url-history.el +++ b/lisp/url/url-history.el @@ -1,6 +1,6 @@ ;;; url-history.el --- Global history tracking for URL package -;; Copyright (C) 1996-1999, 2004-2011 Free Software Foundation, Inc. +;; Copyright (C) 1996-1999, 2004-2012 Free Software Foundation, Inc. ;; Keywords: comm, data, processes, hypermedia diff --git a/lisp/url/url-http.el b/lisp/url/url-http.el index a9ff042d681..b43ed7617ad 100644 --- a/lisp/url/url-http.el +++ b/lisp/url/url-http.el @@ -1,6 +1,6 @@ ;;; url-http.el --- HTTP retrieval routines -;; Copyright (C) 1999, 2001, 2004-2011 Free Software Foundation, Inc. +;; Copyright (C) 1999, 2001, 2004-2012 Free Software Foundation, Inc. ;; Author: Bill Perry <wmperry@gnu.org> ;; Keywords: comm, data, processes @@ -237,12 +237,12 @@ request.") (if proxy-auth (setq proxy-auth (concat "Proxy-Authorization: " proxy-auth "\r\n"))) - ;; Protection against stupid values in the referer + ;; Protection against stupid values in the referrer (if (and ref-url (stringp ref-url) (or (string= ref-url "file:nil") (string= ref-url ""))) (setq ref-url nil)) - ;; We do not want to expose the referer if the user is paranoid. + ;; We do not want to expose the referrer if the user is paranoid. (if (or (memq url-privacy-level '(low high paranoid)) (and (listp url-privacy-level) (memq 'lastloc url-privacy-level))) diff --git a/lisp/url/url-imap.el b/lisp/url/url-imap.el index 3f7d1ec9238..26a1f4a4fa1 100644 --- a/lisp/url/url-imap.el +++ b/lisp/url/url-imap.el @@ -1,6 +1,6 @@ ;;; url-imap.el --- IMAP retrieval routines -;; Copyright (C) 1999, 2004-2011 Free Software Foundation, Inc. +;; Copyright (C) 1999, 2004-2012 Free Software Foundation, Inc. ;; Author: Simon Josefsson <jas@pdc.kth.se> ;; Keywords: comm, data, processes diff --git a/lisp/url/url-irc.el b/lisp/url/url-irc.el index d5f2a99a914..eaf3033120d 100644 --- a/lisp/url/url-irc.el +++ b/lisp/url/url-irc.el @@ -1,6 +1,6 @@ ;;; url-irc.el --- IRC URL interface -;; Copyright (C) 1996-1999, 2004-2011 Free Software Foundation, Inc. +;; Copyright (C) 1996-1999, 2004-2012 Free Software Foundation, Inc. ;; Keywords: comm, data, processes diff --git a/lisp/url/url-ldap.el b/lisp/url/url-ldap.el index 8a7bb76160b..7c988f9b119 100644 --- a/lisp/url/url-ldap.el +++ b/lisp/url/url-ldap.el @@ -1,6 +1,6 @@ ;;; url-ldap.el --- LDAP Uniform Resource Locator retrieval code -;; Copyright (C) 1998-1999, 2004-2011 Free Software Foundation, Inc. +;; Copyright (C) 1998-1999, 2004-2012 Free Software Foundation, Inc. ;; Keywords: comm, data, processes diff --git a/lisp/url/url-mailto.el b/lisp/url/url-mailto.el index c0472a92bb1..254219b2ab8 100644 --- a/lisp/url/url-mailto.el +++ b/lisp/url/url-mailto.el @@ -1,6 +1,6 @@ ;;; url-mail.el --- Mail Uniform Resource Locator retrieval code -;; Copyright (C) 1996-1999, 2004-2011 Free Software Foundation, Inc. +;; Copyright (C) 1996-1999, 2004-2012 Free Software Foundation, Inc. ;; Keywords: comm, data, processes diff --git a/lisp/url/url-methods.el b/lisp/url/url-methods.el index 3b86ed45565..b61198393b5 100644 --- a/lisp/url/url-methods.el +++ b/lisp/url/url-methods.el @@ -1,6 +1,6 @@ ;;; url-methods.el --- Load URL schemes as needed -;; Copyright (C) 1996-1999, 2004-2011 Free Software Foundation, Inc. +;; Copyright (C) 1996-1999, 2004-2012 Free Software Foundation, Inc. ;; Keywords: comm, data, processes, hypermedia @@ -62,7 +62,7 @@ (defun url-scheme-default-loader (url &optional callback cbargs) "Signal an error for an unknown URL scheme." - (error "Unkown URL scheme: %s" (url-type url))) + (error "Unknown URL scheme: %s" (url-type url))) (defvar url-scheme--registering-proxy nil) diff --git a/lisp/url/url-misc.el b/lisp/url/url-misc.el index 20e623de6cd..fa8176873a8 100644 --- a/lisp/url/url-misc.el +++ b/lisp/url/url-misc.el @@ -1,6 +1,6 @@ ;;; url-misc.el --- Misc Uniform Resource Locator retrieval code -;; Copyright (C) 1996-1999, 2002, 2004-2011 Free Software Foundation, Inc. +;; Copyright (C) 1996-1999, 2002, 2004-2012 Free Software Foundation, Inc. ;; Keywords: comm, data, processes diff --git a/lisp/url/url-news.el b/lisp/url/url-news.el index 6cd3721e498..13b4030ecf2 100644 --- a/lisp/url/url-news.el +++ b/lisp/url/url-news.el @@ -1,6 +1,6 @@ ;;; url-news.el --- News Uniform Resource Locator retrieval code -;; Copyright (C) 1996-1999, 2004-2011 Free Software Foundation, Inc. +;; Copyright (C) 1996-1999, 2004-2012 Free Software Foundation, Inc. ;; Keywords: comm, data, processes diff --git a/lisp/url/url-nfs.el b/lisp/url/url-nfs.el index 1cda75c59e7..a22d105b1a1 100644 --- a/lisp/url/url-nfs.el +++ b/lisp/url/url-nfs.el @@ -1,6 +1,6 @@ ;;; url-nfs.el --- NFS URL interface -;; Copyright (C) 1996-1999, 2004-2011 Free Software Foundation, Inc. +;; Copyright (C) 1996-1999, 2004-2012 Free Software Foundation, Inc. ;; Keywords: comm, data, processes diff --git a/lisp/url/url-ns.el b/lisp/url/url-ns.el index 2eaa662be55..484e0af4fa7 100644 --- a/lisp/url/url-ns.el +++ b/lisp/url/url-ns.el @@ -1,6 +1,6 @@ ;;; url-ns.el --- Various netscape-ish functions for proxy definitions -;; Copyright (C) 1997-1999, 2004-2011 Free Software Foundation, Inc. +;; Copyright (C) 1997-1999, 2004-2012 Free Software Foundation, Inc. ;; Keywords: comm, data, processes, hypermedia diff --git a/lisp/url/url-parse.el b/lisp/url/url-parse.el index 71c03bf1edd..ef09622b0a9 100644 --- a/lisp/url/url-parse.el +++ b/lisp/url/url-parse.el @@ -1,6 +1,6 @@ ;;; url-parse.el --- Uniform Resource Locator parser -;; Copyright (C) 1996-1999, 2004-2011 Free Software Foundation, Inc. +;; Copyright (C) 1996-1999, 2004-2012 Free Software Foundation, Inc. ;; Keywords: comm, data, processes diff --git a/lisp/url/url-privacy.el b/lisp/url/url-privacy.el index ff89b125c6d..85247857beb 100644 --- a/lisp/url/url-privacy.el +++ b/lisp/url/url-privacy.el @@ -1,6 +1,6 @@ ;;; url-privacy.el --- Global history tracking for URL package -;; Copyright (C) 1996-1999, 2004-2011 Free Software Foundation, Inc. +;; Copyright (C) 1996-1999, 2004-2012 Free Software Foundation, Inc. ;; Keywords: comm, data, processes, hypermedia diff --git a/lisp/url/url-proxy.el b/lisp/url/url-proxy.el index 3290f7c5141..eb2155633eb 100644 --- a/lisp/url/url-proxy.el +++ b/lisp/url/url-proxy.el @@ -1,6 +1,6 @@ ;;; url-proxy.el --- Proxy server support -;; Copyright (C) 1999, 2004-2011 Free Software Foundation, Inc. +;; Copyright (C) 1999, 2004-2012 Free Software Foundation, Inc. ;; Keywords: comm, data, processes, hypermedia diff --git a/lisp/url/url-queue.el b/lisp/url/url-queue.el index c5150a93561..534c94b4d52 100644 --- a/lisp/url/url-queue.el +++ b/lisp/url/url-queue.el @@ -1,6 +1,6 @@ ;;; url-queue.el --- Fetching web pages in parallel -;; Copyright (C) 2011 Free Software Foundation, Inc. +;; Copyright (C) 2011-2012 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; Keywords: comm diff --git a/lisp/url/url-util.el b/lisp/url/url-util.el index 6bf3a5831ec..848eb66e54b 100644 --- a/lisp/url/url-util.el +++ b/lisp/url/url-util.el @@ -1,6 +1,6 @@ ;;; url-util.el --- Miscellaneous helper routines for URL library -;; Copyright (C) 1996-1999, 2001, 2004-2011 Free Software Foundation, Inc. +;; Copyright (C) 1996-1999, 2001, 2004-2012 Free Software Foundation, Inc. ;; Author: Bill Perry <wmperry@gnu.org> ;; Keywords: comm, data, processes diff --git a/lisp/url/url-vars.el b/lisp/url/url-vars.el index 19e0b621d87..a56eb4cc810 100644 --- a/lisp/url/url-vars.el +++ b/lisp/url/url-vars.el @@ -1,6 +1,6 @@ ;;; url-vars.el --- Variables for Uniform Resource Locator tool -;; Copyright (C) 1996-1999, 2001, 2004-2011 Free Software Foundation, Inc. +;; Copyright (C) 1996-1999, 2001, 2004-2012 Free Software Foundation, Inc. ;; Keywords: comm, data, processes, hypermedia diff --git a/lisp/url/url.el b/lisp/url/url.el index c95b61c43fb..883e1a0c765 100644 --- a/lisp/url/url.el +++ b/lisp/url/url.el @@ -1,6 +1,6 @@ ;;; url.el --- Uniform Resource Locator retrieval tool -;; Copyright (C) 1996-1999, 2001, 2004-2011 Free Software Foundation, Inc. +;; Copyright (C) 1996-1999, 2001, 2004-2012 Free Software Foundation, Inc. ;; Author: Bill Perry <wmperry@gnu.org> ;; Keywords: comm, data, processes, hypermedia diff --git a/lisp/userlock.el b/lisp/userlock.el index 7a2f7f76b78..8a4159aafc0 100644 --- a/lisp/userlock.el +++ b/lisp/userlock.el @@ -1,6 +1,6 @@ ;;; userlock.el --- handle file access contention between multiple users -;; Copyright (C) 1985-1986, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1985-1986, 2001-2012 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: internal diff --git a/lisp/vc/add-log.el b/lisp/vc/add-log.el index 9170d7b9424..be7bba54378 100644 --- a/lisp/vc/add-log.el +++ b/lisp/vc/add-log.el @@ -1,6 +1,6 @@ ;;; add-log.el --- change log maintenance commands for Emacs -;; Copyright (C) 1985-1986, 1988, 1993-1994, 1997-1998, 2000-2011 +;; Copyright (C) 1985-1986, 1988, 1993-1994, 1997-1998, 2000-2012 ;; Free Software Foundation, Inc. ;; Maintainer: FSF diff --git a/lisp/vc/compare-w.el b/lisp/vc/compare-w.el index 4c63e48a3fc..14612c95b22 100644 --- a/lisp/vc/compare-w.el +++ b/lisp/vc/compare-w.el @@ -1,6 +1,6 @@ ;;; compare-w.el --- compare text between windows for Emacs -;; Copyright (C) 1986, 1989, 1993, 1997, 2001-2011 +;; Copyright (C) 1986, 1989, 1993, 1997, 2001-2012 ;; Free Software Foundation, Inc. ;; Maintainer: FSF diff --git a/lisp/vc/cvs-status.el b/lisp/vc/cvs-status.el index 3444b230e8d..a80197486a2 100644 --- a/lisp/vc/cvs-status.el +++ b/lisp/vc/cvs-status.el @@ -1,6 +1,6 @@ ;;; cvs-status.el --- major mode for browsing `cvs status' output -*- coding: utf-8; lexical-binding: t -*- -;; Copyright (C) 1999-2011 Free Software Foundation, Inc. +;; Copyright (C) 1999-2012 Free Software Foundation, Inc. ;; Author: Stefan Monnier <monnier@iro.umontreal.ca> ;; Keywords: pcl-cvs cvs status tree vc tools diff --git a/lisp/vc/diff-mode.el b/lisp/vc/diff-mode.el index 8f4b59f9e53..7de9d17e3f7 100644 --- a/lisp/vc/diff-mode.el +++ b/lisp/vc/diff-mode.el @@ -1,6 +1,6 @@ ;;; diff-mode.el --- a mode for viewing/editing context diffs -*- lexical-binding: t -*- -;; Copyright (C) 1998-2011 Free Software Foundation, Inc. +;; Copyright (C) 1998-2012 Free Software Foundation, Inc. ;; Author: Stefan Monnier <monnier@iro.umontreal.ca> ;; Keywords: convenience patch diff vc diff --git a/lisp/vc/diff.el b/lisp/vc/diff.el index fd24558da6a..05208894356 100644 --- a/lisp/vc/diff.el +++ b/lisp/vc/diff.el @@ -1,6 +1,6 @@ ;;; diff.el --- run `diff' -;; Copyright (C) 1992, 1994, 1996, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1992, 1994, 1996, 2001-2012 Free Software Foundation, Inc. ;; Author: Frank Bresz ;; (according to authors.el) diff --git a/lisp/vc/ediff-diff.el b/lisp/vc/ediff-diff.el index 85ec49885bd..37b7fce6f32 100644 --- a/lisp/vc/ediff-diff.el +++ b/lisp/vc/ediff-diff.el @@ -1,6 +1,6 @@ ;;; ediff-diff.el --- diff-related utilities -;; Copyright (C) 1994-2011 Free Software Foundation, Inc. +;; Copyright (C) 1994-2012 Free Software Foundation, Inc. ;; Author: Michael Kifer <kifer@cs.stonybrook.edu> ;; Package: ediff diff --git a/lisp/vc/ediff-help.el b/lisp/vc/ediff-help.el index ee7837b29a3..8d0f9dd5562 100644 --- a/lisp/vc/ediff-help.el +++ b/lisp/vc/ediff-help.el @@ -1,6 +1,6 @@ ;;; ediff-help.el --- Code related to the contents of Ediff help buffers -;; Copyright (C) 1996-2011 Free Software Foundation, Inc. +;; Copyright (C) 1996-2012 Free Software Foundation, Inc. ;; Author: Michael Kifer <kifer@cs.stonybrook.edu> ;; Package: ediff diff --git a/lisp/vc/ediff-hook.el b/lisp/vc/ediff-hook.el index 7598cfdba51..a91c53fb115 100644 --- a/lisp/vc/ediff-hook.el +++ b/lisp/vc/ediff-hook.el @@ -1,6 +1,6 @@ ;;; ediff-hook.el --- setup for Ediff's menus and autoloads -;; Copyright (C) 1995-2011 Free Software Foundation, Inc. +;; Copyright (C) 1995-2012 Free Software Foundation, Inc. ;; Author: Michael Kifer <kifer@cs.stonybrook.edu> ;; Package: ediff diff --git a/lisp/vc/ediff-init.el b/lisp/vc/ediff-init.el index d3db66a9e2a..806be855909 100644 --- a/lisp/vc/ediff-init.el +++ b/lisp/vc/ediff-init.el @@ -1,6 +1,6 @@ ;;; ediff-init.el --- Macros, variables, and defsubsts used by Ediff -;; Copyright (C) 1994-2011 Free Software Foundation, Inc. +;; Copyright (C) 1994-2012 Free Software Foundation, Inc. ;; Author: Michael Kifer <kifer@cs.stonybrook.edu> ;; Package: ediff diff --git a/lisp/vc/ediff-merg.el b/lisp/vc/ediff-merg.el index a584d0791ff..9b817b2fbc1 100644 --- a/lisp/vc/ediff-merg.el +++ b/lisp/vc/ediff-merg.el @@ -1,6 +1,6 @@ ;;; ediff-merg.el --- merging utilities -;; Copyright (C) 1994-2011 Free Software Foundation, Inc. +;; Copyright (C) 1994-2012 Free Software Foundation, Inc. ;; Author: Michael Kifer <kifer@cs.stonybrook.edu> ;; Package: ediff diff --git a/lisp/vc/ediff-mult.el b/lisp/vc/ediff-mult.el index ce7818d5ef4..9e6f5769c8f 100644 --- a/lisp/vc/ediff-mult.el +++ b/lisp/vc/ediff-mult.el @@ -1,6 +1,6 @@ ;;; ediff-mult.el --- support for multi-file/multi-buffer processing in Ediff -;; Copyright (C) 1995-2011 Free Software Foundation, Inc. +;; Copyright (C) 1995-2012 Free Software Foundation, Inc. ;; Author: Michael Kifer <kifer@cs.stonybrook.edu> ;; Package: ediff diff --git a/lisp/vc/ediff-ptch.el b/lisp/vc/ediff-ptch.el index ef273c610fe..def450373cf 100644 --- a/lisp/vc/ediff-ptch.el +++ b/lisp/vc/ediff-ptch.el @@ -1,6 +1,6 @@ ;;; ediff-ptch.el --- Ediff's patch support -;; Copyright (C) 1996-2011 Free Software Foundation, Inc. +;; Copyright (C) 1996-2012 Free Software Foundation, Inc. ;; Author: Michael Kifer <kifer@cs.stonybrook.edu> ;; Package: ediff @@ -373,7 +373,7 @@ other files, enter /dev/null (concat actual-dir (cdr proposed-file-names))))) )) ediff-patch-map) - ;; Check for the existing files in each pair and discard the nonexisting + ;; Check for the existing files in each pair and discard the nonexistent ;; ones. If both exist, ask the user. (mapcar (lambda (session-info) (let* ((file1 (car (ediff-get-session-objA-name session-info))) diff --git a/lisp/vc/ediff-util.el b/lisp/vc/ediff-util.el index b1c6e367ef7..87740cdc75a 100644 --- a/lisp/vc/ediff-util.el +++ b/lisp/vc/ediff-util.el @@ -1,6 +1,6 @@ ;;; ediff-util.el --- the core commands and utilities of ediff -;; Copyright (C) 1994-2011 Free Software Foundation, Inc. +;; Copyright (C) 1994-2012 Free Software Foundation, Inc. ;; Author: Michael Kifer <kifer@cs.stonybrook.edu> ;; Package: ediff diff --git a/lisp/vc/ediff-vers.el b/lisp/vc/ediff-vers.el index 804e62a2933..195b177bbc9 100644 --- a/lisp/vc/ediff-vers.el +++ b/lisp/vc/ediff-vers.el @@ -1,6 +1,6 @@ ;;; ediff-vers.el --- version control interface to Ediff -;; Copyright (C) 1995-1997, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1995-1997, 2001-2012 Free Software Foundation, Inc. ;; Author: Michael Kifer <kifer@cs.stonybrook.edu> ;; Package: ediff diff --git a/lisp/vc/ediff-wind.el b/lisp/vc/ediff-wind.el index 9bf75fa7f55..83098fcb0c7 100644 --- a/lisp/vc/ediff-wind.el +++ b/lisp/vc/ediff-wind.el @@ -1,6 +1,6 @@ ;;; ediff-wind.el --- window manipulation utilities -;; Copyright (C) 1994-1997, 2000-2011 Free Software Foundation, Inc. +;; Copyright (C) 1994-1997, 2000-2012 Free Software Foundation, Inc. ;; Author: Michael Kifer <kifer@cs.stonybrook.edu> ;; Package: ediff diff --git a/lisp/vc/ediff.el b/lisp/vc/ediff.el index 464fdc0a589..4d6afa96d64 100644 --- a/lisp/vc/ediff.el +++ b/lisp/vc/ediff.el @@ -1,6 +1,6 @@ ;;; ediff.el --- a comprehensive visual interface to diff & patch -;; Copyright (C) 1994-2011 Free Software Foundation, Inc. +;; Copyright (C) 1994-2012 Free Software Foundation, Inc. ;; Author: Michael Kifer <kifer@cs.stonybrook.edu> ;; Created: February 2, 1994 diff --git a/lisp/vc/emerge.el b/lisp/vc/emerge.el index 3ba5bcdb90a..bc4b0725c4e 100644 --- a/lisp/vc/emerge.el +++ b/lisp/vc/emerge.el @@ -1754,7 +1754,7 @@ to the left margin, if they are in windows." ;; If there are min-lines lines above and below the region, then don't do ;; anything. ;; If not, recenter the region to make it so. -;; If that isn't possible, remove context lines balancedly from top and bottom +;; If that isn't possible, remove context lines evenly from top and bottom ;; so the entire region shows. ;; If that isn't possible, show the top of the region. ;; BEG must be at the beginning of a line. diff --git a/lisp/vc/log-edit.el b/lisp/vc/log-edit.el index f57429c76c7..54d548c09da 100644 --- a/lisp/vc/log-edit.el +++ b/lisp/vc/log-edit.el @@ -1,6 +1,6 @@ ;;; log-edit.el --- Major mode for editing CVS commit messages -*- lexical-binding: t -*- -;; Copyright (C) 1999-2011 Free Software Foundation, Inc. +;; Copyright (C) 1999-2012 Free Software Foundation, Inc. ;; Author: Stefan Monnier <monnier@iro.umontreal.ca> ;; Keywords: pcl-cvs cvs commit log vc diff --git a/lisp/vc/log-view.el b/lisp/vc/log-view.el index d8c6384934e..849954f2cf8 100644 --- a/lisp/vc/log-view.el +++ b/lisp/vc/log-view.el @@ -1,6 +1,6 @@ ;;; log-view.el --- Major mode for browsing RCS/CVS/SCCS log output -*- lexical-binding: t -*- -;; Copyright (C) 1999-2011 Free Software Foundation, Inc. +;; Copyright (C) 1999-2012 Free Software Foundation, Inc. ;; Author: Stefan Monnier <monnier@iro.umontreal.ca> ;; Keywords: rcs, sccs, cvs, log, vc, tools diff --git a/lisp/vc/pcvs-defs.el b/lisp/vc/pcvs-defs.el index 477cd472289..80a01f58531 100644 --- a/lisp/vc/pcvs-defs.el +++ b/lisp/vc/pcvs-defs.el @@ -1,6 +1,6 @@ ;;; pcvs-defs.el --- variable definitions for PCL-CVS -;; Copyright (C) 1991-2011 Free Software Foundation, Inc. +;; Copyright (C) 1991-2012 Free Software Foundation, Inc. ;; Author: Stefan Monnier <monnier@iro.umontreal.ca> ;; Keywords: pcl-cvs diff --git a/lisp/vc/pcvs-info.el b/lisp/vc/pcvs-info.el index 3fd6cd40299..4f8c114d721 100644 --- a/lisp/vc/pcvs-info.el +++ b/lisp/vc/pcvs-info.el @@ -1,6 +1,6 @@ ;;; pcvs-info.el --- internal representation of a fileinfo entry -;; Copyright (C) 1991-2011 Free Software Foundation, Inc. +;; Copyright (C) 1991-2012 Free Software Foundation, Inc. ;; Author: Stefan Monnier <monnier@iro.umontreal.ca> ;; Keywords: pcl-cvs diff --git a/lisp/vc/pcvs-parse.el b/lisp/vc/pcvs-parse.el index 43292ed14e4..a588c735ce7 100644 --- a/lisp/vc/pcvs-parse.el +++ b/lisp/vc/pcvs-parse.el @@ -1,6 +1,6 @@ ;;; pcvs-parse.el --- the CVS output parser -;; Copyright (C) 1991-2011 Free Software Foundation, Inc. +;; Copyright (C) 1991-2012 Free Software Foundation, Inc. ;; Author: Stefan Monnier <monnier@iro.umontreal.ca> ;; Keywords: pcl-cvs @@ -423,7 +423,7 @@ The remaining KEYS are passed directly to `cvs-create-fileinfo'." (cvs-match "restoring \\(.*\\) from backup file .*$" (path 1)))) t) - ;; Is it a succesful merge? + ;; Is it a successful merge? ;; Figure out result of merging (ie, was there a conflict?) (let ((qfile (regexp-quote path))) (cvs-or diff --git a/lisp/vc/pcvs-util.el b/lisp/vc/pcvs-util.el index ea739ea726a..b300247e552 100644 --- a/lisp/vc/pcvs-util.el +++ b/lisp/vc/pcvs-util.el @@ -1,6 +1,6 @@ ;;; pcvs-util.el --- utility functions for PCL-CVS -*- byte-compile-dynamic: t -*- -;; Copyright (C) 1991-2011 Free Software Foundation, Inc. +;; Copyright (C) 1991-2012 Free Software Foundation, Inc. ;; Author: Stefan Monnier <monnier@iro.umontreal.ca> ;; Keywords: pcl-cvs diff --git a/lisp/vc/pcvs.el b/lisp/vc/pcvs.el index 9a8be04fc38..1066ebc7f81 100644 --- a/lisp/vc/pcvs.el +++ b/lisp/vc/pcvs.el @@ -1,6 +1,6 @@ ;;; pcvs.el --- a front-end to CVS -;; Copyright (C) 1991-2011 Free Software Foundation, Inc. +;; Copyright (C) 1991-2012 Free Software Foundation, Inc. ;; Author: (The PCL-CVS Trust) pcl-cvs@cyclic.com ;; (Per Cederqvist) ceder@lysator.liu.se diff --git a/lisp/vc/smerge-mode.el b/lisp/vc/smerge-mode.el index 64c4b04fb65..870246103a6 100644 --- a/lisp/vc/smerge-mode.el +++ b/lisp/vc/smerge-mode.el @@ -1,6 +1,6 @@ ;;; smerge-mode.el --- Minor mode to resolve diff3 conflicts -*- lexical-binding: t -*- -;; Copyright (C) 1999-2011 Free Software Foundation, Inc. +;; Copyright (C) 1999-2012 Free Software Foundation, Inc. ;; Author: Stefan Monnier <monnier@iro.umontreal.ca> ;; Keywords: vc, tools, revision control, merge, diff3, cvs, conflict diff --git a/lisp/vc/vc-annotate.el b/lisp/vc/vc-annotate.el index b6ecc4c1d75..a1dd807d828 100644 --- a/lisp/vc/vc-annotate.el +++ b/lisp/vc/vc-annotate.el @@ -1,6 +1,6 @@ ;;; vc-annotate.el --- VC Annotate Support -;; Copyright (C) 1997-1998, 2000-2011 Free Software Foundation, Inc. +;; Copyright (C) 1997-1998, 2000-2012 Free Software Foundation, Inc. ;; Author: Martin Lorentzson <emwson@emw.ericsson.se> ;; Maintainer: FSF diff --git a/lisp/vc/vc-arch.el b/lisp/vc/vc-arch.el index a20a49a4c39..7502bc28c5f 100644 --- a/lisp/vc/vc-arch.el +++ b/lisp/vc/vc-arch.el @@ -1,6 +1,6 @@ ;;; vc-arch.el --- VC backend for the Arch version-control system -;; Copyright (C) 2004-2011 Free Software Foundation, Inc. +;; Copyright (C) 2004-2012 Free Software Foundation, Inc. ;; Author: FSF (see vc.el for full credits) ;; Maintainer: Stefan Monnier <monnier@gnu.org> diff --git a/lisp/vc/vc-bzr.el b/lisp/vc/vc-bzr.el index c5c0ce73b3a..e64f05130a3 100644 --- a/lisp/vc/vc-bzr.el +++ b/lisp/vc/vc-bzr.el @@ -1,6 +1,6 @@ ;;; vc-bzr.el --- VC backend for the bzr revision control system -;; Copyright (C) 2006-2011 Free Software Foundation, Inc. +;; Copyright (C) 2006-2012 Free Software Foundation, Inc. ;; Author: Dave Love <fx@gnu.org> ;; Riccardo Murri <riccardo.murri@gmail.com> @@ -764,7 +764,10 @@ REV non-nil gets an error." (defun vc-bzr-rename-file (old new) "Rename file from OLD to NEW using `bzr mv'." - (vc-bzr-command "mv" nil 0 new old)) + (setq old (expand-file-name old)) + (setq new (expand-file-name new)) + (vc-bzr-command "mv" nil 0 new old) + (message "Renamed %s => %s" old new)) (defvar vc-bzr-annotation-table nil "Internal use.") diff --git a/lisp/vc/vc-cvs.el b/lisp/vc/vc-cvs.el index 7d6c3caf7ff..720df27f442 100644 --- a/lisp/vc/vc-cvs.el +++ b/lisp/vc/vc-cvs.el @@ -1,6 +1,6 @@ ;;; vc-cvs.el --- non-resident support for CVS version-control -;; Copyright (C) 1995, 1998-2011 Free Software Foundation, Inc. +;; Copyright (C) 1995, 1998-2012 Free Software Foundation, Inc. ;; Author: FSF (see vc.el for full credits) ;; Maintainer: Andre Spiegel <spiegel@gnu.org> @@ -319,7 +319,7 @@ its parents." (unless (or (not rev) (vc-cvs-valid-revision-number-p rev)) (if (not (vc-cvs-valid-symbolic-tag-name-p rev)) (error "%s is not a valid symbolic tag name" rev) - ;; If the input revison is a valid symbolic tag name, we create it + ;; If the input revision is a valid symbolic tag name, we create it ;; as a branch, commit and switch to it. (apply 'vc-cvs-command nil 0 files "tag" "-b" (list rev)) (apply 'vc-cvs-command nil 0 files "update" "-r" (list rev)) diff --git a/lisp/vc/vc-dav.el b/lisp/vc/vc-dav.el index 27db4b57dc9..6f9a6d6b7df 100644 --- a/lisp/vc/vc-dav.el +++ b/lisp/vc/vc-dav.el @@ -1,6 +1,6 @@ ;;; vc-dav.el --- vc.el support for WebDAV -;; Copyright (C) 2001, 2004-2011 Free Software Foundation, Inc. +;; Copyright (C) 2001, 2004-2012 Free Software Foundation, Inc. ;; Author: Bill Perry <wmperry@gnu.org> ;; Maintainer: Bill Perry <wmperry@gnu.org> diff --git a/lisp/vc/vc-dir.el b/lisp/vc/vc-dir.el index d4b631a1d1b..33611b4eafd 100644 --- a/lisp/vc/vc-dir.el +++ b/lisp/vc/vc-dir.el @@ -1,6 +1,6 @@ ;;; vc-dir.el --- Directory status display under VC -;; Copyright (C) 2007-2011 Free Software Foundation, Inc. +;; Copyright (C) 2007-2012 Free Software Foundation, Inc. ;; Author: Dan Nicolaescu <dann@ics.uci.edu> ;; Keywords: vc tools @@ -534,57 +534,71 @@ If a prefix argument is given, move by that many lines." (save-excursion (goto-char (region-beginning)) (while (<= (line-number-at-pos) lastl) - (funcall mark-unmark-function)))) + (condition-case nil + (funcall mark-unmark-function) + ;; `vc-dir-mark-file' signals an error if we try marking + ;; a directory containing marked files in its tree, or a + ;; file in a marked directory tree. Just continue. + (error (vc-dir-next-line 1)))))) (funcall mark-unmark-function))) (defun vc-dir-parent-marked-p (arg) - ;; Return nil if none of the parent directories of arg is marked. + ;; Non-nil iff a parent directory of arg is marked. + ;; Return value, if non-nil is the `ewoc-data' for the marked parent. (let* ((argdir (vc-dir-node-directory arg)) (arglen (length argdir)) (crt arg) - data dir) + (found nil)) ;; Go through the predecessors, checking if any directory that is ;; a parent is marked. - (while (setq crt (ewoc-prev vc-ewoc crt)) - (setq data (ewoc-data crt)) - (setq dir (vc-dir-node-directory crt)) - (when (and (vc-dir-fileinfo->directory data) - (vc-string-prefix-p dir argdir)) - (when (vc-dir-fileinfo->marked data) - (error "Cannot mark `%s', parent directory `%s' marked" - (vc-dir-fileinfo->name (ewoc-data arg)) - (vc-dir-fileinfo->name data))))) - nil)) + (while (and (null found) + (setq crt (ewoc-prev vc-ewoc crt))) + (let ((data (ewoc-data crt)) + (dir (vc-dir-node-directory crt))) + (and (vc-dir-fileinfo->directory data) + (vc-string-prefix-p dir argdir) + (vc-dir-fileinfo->marked data) + (setq found data)))) + found)) (defun vc-dir-children-marked-p (arg) - ;; Return nil if none of the children of arg is marked. + ;; Non-nil iff a child of ARG is marked. + ;; Return value, if non-nil, is the `ewoc-data' for the marked child. (let* ((argdir-re (concat "\\`" (regexp-quote (vc-dir-node-directory arg)))) (is-child t) (crt arg) - data dir) - (while (and is-child (setq crt (ewoc-next vc-ewoc crt))) - (setq data (ewoc-data crt)) - (setq dir (vc-dir-node-directory crt)) - (if (string-match argdir-re dir) - (when (vc-dir-fileinfo->marked data) - (error "Cannot mark `%s', child `%s' marked" - (vc-dir-fileinfo->name (ewoc-data arg)) - (vc-dir-fileinfo->name data))) - ;; We are done, we got to an entry that is not a child of `arg'. - (setq is-child nil))) - nil)) + (found nil)) + (while (and is-child + (null found) + (setq crt (ewoc-next vc-ewoc crt))) + (let ((data (ewoc-data crt)) + (dir (vc-dir-node-directory crt))) + (if (string-match argdir-re dir) + (if (vc-dir-fileinfo->marked data) + (setq found data)) + ;; We are done, we got to an entry that is not a child of `arg'. + (setq is-child nil)))) + found)) (defun vc-dir-mark-file (&optional arg) ;; Mark ARG or the current file and move to the next line. (let* ((crt (or arg (ewoc-locate vc-ewoc))) (file (ewoc-data crt)) - (isdir (vc-dir-fileinfo->directory file))) - (when (or (and isdir (not (vc-dir-children-marked-p crt))) - (and (not isdir) (not (vc-dir-parent-marked-p crt)))) - (setf (vc-dir-fileinfo->marked file) t) - (ewoc-invalidate vc-ewoc crt) - (unless (or arg (mouse-event-p last-command-event)) - (vc-dir-next-line 1))))) + (isdir (vc-dir-fileinfo->directory file)) + ;; Forbid marking a directory containing marked files in its + ;; tree, or a file in a marked directory tree. + (conflict (if isdir + (vc-dir-children-marked-p crt) + (vc-dir-parent-marked-p crt)))) + (when conflict + (error (if isdir + "File `%s' in this directory is already marked" + "Parent directory `%s' is already marked") + (vc-dir-fileinfo->name conflict))) + (setf (vc-dir-fileinfo->marked file) t) + (ewoc-invalidate vc-ewoc crt) + (unless (or arg (mouse-event-p last-command-event)) + (vc-dir-next-line 1)))) (defun vc-dir-mark () "Mark the current file or all files in the region. @@ -621,19 +635,19 @@ share the same state." (setf (vc-dir-fileinfo->marked filearg) t) t)) vc-ewoc)) - (let ((data (ewoc-data (ewoc-locate vc-ewoc)))) + (let* ((crt (ewoc-locate vc-ewoc)) + (data (ewoc-data crt))) (if (vc-dir-fileinfo->directory data) ;; It's a directory, mark child files. - (let ((crt (ewoc-locate vc-ewoc))) - (unless (vc-dir-children-marked-p crt) - (while (setq crt (ewoc-next vc-ewoc crt)) - (let ((crt-data (ewoc-data crt))) - (unless (vc-dir-fileinfo->directory crt-data) - (setf (vc-dir-fileinfo->marked crt-data) t) - (ewoc-invalidate vc-ewoc crt)))))) + (let (crt-data) + (while (and (setq crt (ewoc-next vc-ewoc crt)) + (setq crt-data (ewoc-data crt)) + (not (vc-dir-fileinfo->directory crt-data))) + (setf (vc-dir-fileinfo->marked crt-data) t) + (ewoc-invalidate vc-ewoc crt))) ;; It's a file - (let ((state (vc-dir-fileinfo->state data)) - (crt (ewoc-nth vc-ewoc 0))) + (let ((state (vc-dir-fileinfo->state data))) + (setq crt (ewoc-nth vc-ewoc 0)) (while crt (let ((crt-data (ewoc-data crt))) (when (and (not (vc-dir-fileinfo->marked crt-data)) diff --git a/lisp/vc/vc-dispatcher.el b/lisp/vc/vc-dispatcher.el index 7fe727bd179..ec1b127dd19 100644 --- a/lisp/vc/vc-dispatcher.el +++ b/lisp/vc/vc-dispatcher.el @@ -1,6 +1,6 @@ ;;; vc-dispatcher.el -- generic command-dispatcher facility. -;; Copyright (C) 2008-2011 Free Software Foundation, Inc. +;; Copyright (C) 2008-2012 Free Software Foundation, Inc. ;; Author: FSF (see below for full credits) ;; Maintainer: Eric S. Raymond <esr@thyrsus.com> diff --git a/lisp/vc/vc-git.el b/lisp/vc/vc-git.el index e9cbeeeb40a..2715fdd142d 100644 --- a/lisp/vc/vc-git.el +++ b/lisp/vc/vc-git.el @@ -1,6 +1,6 @@ ;;; vc-git.el --- VC backend for the git version control system -;; Copyright (C) 2006-2011 Free Software Foundation, Inc. +;; Copyright (C) 2006-2012 Free Software Foundation, Inc. ;; Author: Alexandre Julliard <julliard@winehq.org> ;; Keywords: vc tools diff --git a/lisp/vc/vc-hg.el b/lisp/vc/vc-hg.el index 0516abbf024..30c91ad3111 100644 --- a/lisp/vc/vc-hg.el +++ b/lisp/vc/vc-hg.el @@ -1,6 +1,6 @@ ;;; vc-hg.el --- VC backend for the mercurial version control system -;; Copyright (C) 2006-2011 Free Software Foundation, Inc. +;; Copyright (C) 2006-2012 Free Software Foundation, Inc. ;; Author: Ivan Kanis ;; Keywords: vc tools @@ -216,7 +216,7 @@ highlighting the Log View buffer." ((eq state ?R) 'removed) ((eq state ?!) 'missing) ((eq state ??) 'unregistered) - ((eq state ?C) 'up-to-date) ;; Older mercurials use this + ((eq state ?C) 'up-to-date) ;; Older mercurial versions use this. (t 'up-to-date))))))) (defun vc-hg-working-revision (file) diff --git a/lisp/vc/vc-hooks.el b/lisp/vc/vc-hooks.el index 148f6cde930..5e60666f56a 100644 --- a/lisp/vc/vc-hooks.el +++ b/lisp/vc/vc-hooks.el @@ -1,6 +1,6 @@ ;;; vc-hooks.el --- resident support for version-control -;; Copyright (C) 1992-1996, 1998-2011 Free Software Foundation, Inc. +;; Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. ;; Author: FSF (see vc.el for full credits) ;; Maintainer: Andre Spiegel <spiegel@gnu.org> @@ -114,9 +114,9 @@ Otherwise, not displayed." :group 'vc) (defcustom vc-keep-workfiles t - "If non-nil, don't delete working files after registering changes. -If the back-end is CVS, workfiles are always kept, regardless of the -value of this flag." + "Whether to keep work files on disk after commits, on a locking VCS. +This variable has no effect on modern merging-based version +control systems." :type 'boolean :group 'vc) diff --git a/lisp/vc/vc-mtn.el b/lisp/vc/vc-mtn.el index f49ad09b5d7..d0727d9c0dc 100644 --- a/lisp/vc/vc-mtn.el +++ b/lisp/vc/vc-mtn.el @@ -1,6 +1,6 @@ ;;; vc-mtn.el --- VC backend for Monotone -;; Copyright (C) 2007-2011 Free Software Foundation, Inc. +;; Copyright (C) 2007-2012 Free Software Foundation, Inc. ;; Author: Stefan Monnier <monnier@iro.umontreal.ca> ;; Keywords: vc @@ -193,7 +193,7 @@ If nil, use the value of `vc-diff-switches'. If t, use no switches." (unless contents-done (vc-mtn-command nil 0 file "revert"))) -;; (defun vc-mtn-roolback (files) +;; (defun vc-mtn-rollback (files) ;; ) (defun vc-mtn-print-log (files buffer &optional shortlog start-revision limit) diff --git a/lisp/vc/vc-rcs.el b/lisp/vc/vc-rcs.el index 39c583b8a0d..f9248d5a954 100644 --- a/lisp/vc/vc-rcs.el +++ b/lisp/vc/vc-rcs.el @@ -1,6 +1,6 @@ ;;; vc-rcs.el --- support for RCS version-control -;; Copyright (C) 1992-2011 Free Software Foundation, Inc. +;; Copyright (C) 1992-2012 Free Software Foundation, Inc. ;; Author: FSF (see vc.el for full credits) ;; Maintainer: Andre Spiegel <spiegel@gnu.org> diff --git a/lisp/vc/vc-sccs.el b/lisp/vc/vc-sccs.el index 0ee75e1c24a..26e7b020b46 100644 --- a/lisp/vc/vc-sccs.el +++ b/lisp/vc/vc-sccs.el @@ -1,6 +1,6 @@ ;;; vc-sccs.el --- support for SCCS version-control -;; Copyright (C) 1992-2011 Free Software Foundation, Inc. +;; Copyright (C) 1992-2012 Free Software Foundation, Inc. ;; Author: FSF (see vc.el for full credits) ;; Maintainer: Andre Spiegel <spiegel@gnu.org> diff --git a/lisp/vc/vc-svn.el b/lisp/vc/vc-svn.el index d014c4da135..b8a6a326ec1 100644 --- a/lisp/vc/vc-svn.el +++ b/lisp/vc/vc-svn.el @@ -1,6 +1,6 @@ ;;; vc-svn.el --- non-resident support for Subversion version-control -;; Copyright (C) 2003-2011 Free Software Foundation, Inc. +;; Copyright (C) 2003-2012 Free Software Foundation, Inc. ;; Author: FSF (see vc.el for full credits) ;; Maintainer: Stefan Monnier <monnier@gnu.org> diff --git a/lisp/vc/vc.el b/lisp/vc/vc.el index eea1a992094..6b15af4adf4 100644 --- a/lisp/vc/vc.el +++ b/lisp/vc/vc.el @@ -1,6 +1,6 @@ ;;; vc.el --- drive a version-control system from within Emacs -;; Copyright (C) 1992-1998, 2000-2011 Free Software Foundation, Inc. +;; Copyright (C) 1992-1998, 2000-2012 Free Software Foundation, Inc. ;; Author: FSF (see below for full credits) ;; Maintainer: Andre Spiegel <spiegel@gnu.org> @@ -951,13 +951,13 @@ Within directories, only files already under version control are noticed." (defun vc-deduce-fileset (&optional observer allow-unregistered state-model-only-files) "Deduce a set of files and a backend to which to apply an operation. - Return (BACKEND FILESET FILESET-ONLY-FILES STATE CHECKOUT-MODEL). -If we're in VC-dir mode, the fileset is the list of marked files. -Otherwise, if we're looking at a buffer visiting a version-controlled file, -the fileset is a singleton containing this file. -If none of these conditions is met, but ALLOW_UNREGISTERED is on and the -visited file is not registered, return a singleton fileset containing it. + +If we're in VC-dir mode, FILESET is the list of marked files. +Otherwise, if in a buffer visiting a version-controlled file, +FILESET is a single-file fileset containing that file. +Otherwise, if ALLOW-UNREGISTERED is non-nil and the visited file +is unregistered, FILESET is a single-file fileset containing it. Otherwise, throw an error. STATE-MODEL-ONLY-FILES if non-nil, means that the caller needs @@ -1048,34 +1048,27 @@ current buffer." ;;;###autoload (defun vc-next-action (verbose) "Do the next logical version control operation on the current fileset. -This requires that all files in the fileset be in the same state. - -For locking systems: - If every file is not already registered, this registers each for version -control. - If every file is registered and not locked by anyone, this checks out -a writable and locked file of each ready for editing. - If every file is checked out and locked by the calling user, this -first checks to see if each file has changed since checkout. If not, -it performs a revert on that file. - If every file has been changed, this pops up a buffer for entry -of a log message; when the message has been entered, it checks in the -resulting changes along with the log message as change commentary. If -the variable `vc-keep-workfiles' is non-nil (which is its default), a -read-only copy of each changed file is left in place afterwards. - If the affected file is registered and locked by someone else, you are -given the option to steal the lock(s). - -For merging systems: - If every file is not already registered, this registers each one for version -control. This does an add, but not a commit. - If every file is added but not committed, each one is committed. - If every working file is changed, but the corresponding repository file is -unchanged, this pops up a buffer for entry of a log message; when the -message has been entered, it checks in the resulting changes along -with the logmessage as change commentary. A writable file is retained. - If the repository file is changed, you are asked if you want to -merge in the changes into your working copy." +This requires that all files in the current VC fileset be in the +same state. If not, signal an error. + +For merging-based version control systems: + If every file in the VC fileset is not registered for version + control, register the fileset (but don't commit). + If every work file in the VC fileset is added or changed, pop + up a *vc-log* buffer to commit the fileset. + For a centralized version control system, if any work file in + the VC fileset is out of date, offer to update the fileset. + +For old-style locking-based version control systems, like RCS: + If every file is not registered, register the file(s). + If every file is registered and unlocked, check out (lock) + the file(s) for editing. + If every file is locked by you and has changes, pop up a + *vc-log* buffer to check in the changes. If the variable + `vc-keep-workfiles' is non-nil (the default), leave a + read-only copy of each changed file after checking in. + If every file is locked by you and unchanged, unlock them. + If every file is locked by someone else, offer to steal the lock." (interactive "P") (let* ((vc-fileset (vc-deduce-fileset nil t 'state-model-only-files)) (backend (car vc-fileset)) diff --git a/lisp/vcursor.el b/lisp/vcursor.el index b8673f2049f..e0741dcd727 100644 --- a/lisp/vcursor.el +++ b/lisp/vcursor.el @@ -1,6 +1,6 @@ ;;; vcursor.el --- manipulate an alternative ("virtual") cursor -;; Copyright (C) 1994, 1996, 1998, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1994, 1996, 1998, 2001-2012 Free Software Foundation, Inc. ;; Author: Peter Stephenson <pws@ibmth.df.unipi.it> ;; Maintainer: FSF diff --git a/lisp/version.el b/lisp/version.el index aa4e22469c5..bd30f0f81b8 100644 --- a/lisp/version.el +++ b/lisp/version.el @@ -1,6 +1,6 @@ ;;; version.el --- record version number of Emacs -;; Copyright (C) 1985, 1992, 1994-1995, 1999-2011 +;; Copyright (C) 1985, 1992, 1994-1995, 1999-2012 ;; Free Software Foundation, Inc. ;; Maintainer: FSF diff --git a/lisp/view.el b/lisp/view.el index 0d8ad3336f9..035f8c61d9f 100644 --- a/lisp/view.el +++ b/lisp/view.el @@ -1,6 +1,6 @@ ;;; view.el --- peruse file or buffer without editing -;; Copyright (C) 1985, 1989, 1994-1995, 1997, 2000-2011 +;; Copyright (C) 1985, 1989, 1994-1995, 1997, 2000-2012 ;; Free Software Foundation, Inc. ;; Author: K. Shane Hartman diff --git a/lisp/vt-control.el b/lisp/vt-control.el index 558978768bc..7a30c6b6bc9 100644 --- a/lisp/vt-control.el +++ b/lisp/vt-control.el @@ -1,6 +1,6 @@ ;;; vt-control.el --- Common VTxxx control functions -;; Copyright (C) 1993-1994, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1993-1994, 2001-2012 Free Software Foundation, Inc. ;; Author: Rob Riepel <riepel@networking.stanford.edu> ;; Maintainer: Rob Riepel <riepel@networking.stanford.edu> diff --git a/lisp/vt100-led.el b/lisp/vt100-led.el index 8a4b4ac288c..5f976984598 100644 --- a/lisp/vt100-led.el +++ b/lisp/vt100-led.el @@ -1,6 +1,6 @@ ;;; vt100-led.el --- functions for LED control on VT-100 terminals & clones -;; Copyright (C) 1988, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1988, 2001-2012 Free Software Foundation, Inc. ;; Author: Howard Gayle ;; Maintainer: FSF diff --git a/lisp/w32-fns.el b/lisp/w32-fns.el index 1f54b8577c3..aba14480fa9 100644 --- a/lisp/w32-fns.el +++ b/lisp/w32-fns.el @@ -1,6 +1,6 @@ ;;; w32-fns.el --- Lisp routines for 32-bit Windows -;; Copyright (C) 1994, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1994, 2001-2012 Free Software Foundation, Inc. ;; Author: Geoff Voelker <voelker@cs.washington.edu> ;; Keywords: internal diff --git a/lisp/w32-vars.el b/lisp/w32-vars.el index d1e8edc40be..c8716ef6c36 100644 --- a/lisp/w32-vars.el +++ b/lisp/w32-vars.el @@ -1,6 +1,6 @@ ;;; w32-vars.el --- MS-Windows specific user options -;; Copyright (C) 2002-2011 Free Software Foundation, Inc. +;; Copyright (C) 2002-2012 Free Software Foundation, Inc. ;; Author: Jason Rumney <jasonr@gnu.org> ;; Keywords: internal diff --git a/lisp/wdired.el b/lisp/wdired.el index b9c07d15ae8..fe5b4ef7b79 100644 --- a/lisp/wdired.el +++ b/lisp/wdired.el @@ -1,6 +1,6 @@ ;;; wdired.el --- Rename files editing their names in dired buffers -;; Copyright (C) 2004-2011 Free Software Foundation, Inc. +;; Copyright (C) 2004-2012 Free Software Foundation, Inc. ;; Filename: wdired.el ;; Author: Juan León Lahoz García <juanleon1@gmail.com> diff --git a/lisp/whitespace.el b/lisp/whitespace.el index 57f51e21fbb..e752dc56553 100644 --- a/lisp/whitespace.el +++ b/lisp/whitespace.el @@ -1,6 +1,6 @@ ;;; whitespace.el --- minor mode to visualize TAB, (HARD) SPACE, NEWLINE -;; Copyright (C) 2000-2011 Free Software Foundation, Inc. +;; Copyright (C) 2000-2012 Free Software Foundation, Inc. ;; Author: Vinicius Jose Latorre <viniciusjl@ig.com.br> ;; Maintainer: Vinicius Jose Latorre <viniciusjl@ig.com.br> diff --git a/lisp/wid-browse.el b/lisp/wid-browse.el index 7ca13baeb53..4650548d6e0 100644 --- a/lisp/wid-browse.el +++ b/lisp/wid-browse.el @@ -1,6 +1,6 @@ ;;; wid-browse.el --- functions for browsing widgets ;; -;; Copyright (C) 1997, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1997, 2001-2012 Free Software Foundation, Inc. ;; ;; Author: Per Abrahamsen <abraham@dina.kvl.dk> ;; Keywords: extensions diff --git a/lisp/wid-edit.el b/lisp/wid-edit.el index 07eccaff4fb..27922327f44 100644 --- a/lisp/wid-edit.el +++ b/lisp/wid-edit.el @@ -1,6 +1,6 @@ ;;; wid-edit.el --- Functions for creating and using widgets -*-byte-compile-dynamic: t; lexical-binding:t -*- ;; -;; Copyright (C) 1996-1997, 1999-2011 Free Software Foundation, Inc. +;; Copyright (C) 1996-1997, 1999-2012 Free Software Foundation, Inc. ;; ;; Author: Per Abrahamsen <abraham@dina.kvl.dk> ;; Maintainer: FSF @@ -1687,7 +1687,7 @@ The value of the :type attribute should be an unconverted widget type." (eval-minibuffer prompt)) (defun widget-docstring (widget) - "Return the documentation string specificied by WIDGET, or nil if none. + "Return the documentation string specified by WIDGET, or nil if none. If WIDGET has a `:doc' property, that specifies the documentation string. Otherwise, try the `:documentation-property' property. If this is a function, call it with the widget's value as an argument; if diff --git a/lisp/widget.el b/lisp/widget.el index 1bac2e44b3f..98085d82681 100644 --- a/lisp/widget.el +++ b/lisp/widget.el @@ -1,6 +1,6 @@ ;;; widget.el --- a library of user interface components ;; -;; Copyright (C) 1996-1997, 2001-2011 Free Software Foundation, Inc. +;; Copyright (C) 1996-1997, 2001-2012 Free Software Foundation, Inc. ;; ;; Author: Per Abrahamsen <abraham@dina.kvl.dk> ;; Keywords: help, extensions, faces, hypermedia diff --git a/lisp/windmove.el b/lisp/windmove.el index 1deaa44c7dd..10a564419fb 100644 --- a/lisp/windmove.el +++ b/lisp/windmove.el @@ -1,6 +1,6 @@ ;;; windmove.el --- directional window-selection routines ;; -;; Copyright (C) 1998-2011 Free Software Foundation, Inc. +;; Copyright (C) 1998-2012 Free Software Foundation, Inc. ;; ;; Author: Hovav Shacham (hovav@cs.stanford.edu) ;; Created: 17 October 1998 diff --git a/lisp/window.el b/lisp/window.el index dcf7394b204..8eb0ac3575b 100644 --- a/lisp/window.el +++ b/lisp/window.el @@ -1,6 +1,6 @@ ;;; window.el --- GNU Emacs window commands aside from those written in C -;; Copyright (C) 1985, 1989, 1992-1994, 2000-2011 +;; Copyright (C) 1985, 1989, 1992-1994, 2000-2012 ;; Free Software Foundation, Inc. ;; Maintainer: FSF @@ -3604,7 +3604,7 @@ specific buffers." (with-current-buffer (window-buffer window) (let ((point (window-point-1 window)) (start (window-start window)) - (mark (mark))) + (mark (mark t))) `((buffer ,(buffer-name buffer) (selected . ,selected) @@ -3713,7 +3713,7 @@ value can be also stored on disk and read back in a new session." (if (window-sizable-p window (- size) horizontal 'safe) (let* ((window-combination-limit (assq 'combination-limit item))) - ;; We must inherit the combiantion limit, otherwise + ;; We must inherit the combination limit, otherwise ;; we might mess up handling of atomic and side ;; window. (setq new (split-window window size horizontal))) @@ -4526,19 +4526,6 @@ Return WINDOW." The actual non-nil value of this variable will be copied to the `window-dedicated-p' flag.") -(defun window-normalize-buffer-to-display (buffer-or-name) - "Normalize BUFFER-OR-NAME argument for buffer display functions. -If BUFFER-OR-NAME is nil, return the current buffer. Else, if a -buffer specified by BUFFER-OR-NAME exists, return that buffer. -If no such buffer exists, create a buffer with the name -BUFFER-OR-NAME and return that buffer." - (if buffer-or-name - (or (get-buffer buffer-or-name) - (let ((buffer (get-buffer-create buffer-or-name))) - (set-buffer-major-mode buffer) - buffer)) - (current-buffer))) - (defconst display-buffer--action-function-custom-type '(choice :tag "Function" (const :tag "--" ignore) ; default for insertion @@ -4640,7 +4627,7 @@ specified, e.g. by the user options `display-buffer-alist' or "A `display-buffer' action for displaying in another frame.") (put 'display-buffer--other-frame-action 'risky-local-variable t) -(defun display-buffer (&optional buffer-or-name action frame) +(defun display-buffer (buffer-or-name &optional action frame) "Display BUFFER-OR-NAME in some window, without selecting it. BUFFER-OR-NAME must be a buffer or the name of an existing buffer. Return the window chosen for displaying BUFFER-OR-NAME, @@ -4688,7 +4675,9 @@ search for a window that is already displaying the buffer. See `display-buffer-reuse-window'." (interactive (list (read-buffer "Display buffer: " (other-buffer)) (if current-prefix-arg t))) - (let ((buffer (window-normalize-buffer-to-display buffer-or-name)) + (let ((buffer (if (bufferp buffer-or-name) + buffer-or-name + (get-buffer buffer-or-name))) ;; Handle the old form of the first argument. (inhibit-same-window (and action (not (listp action))))) (unless (listp action) (setq action nil)) @@ -4825,7 +4814,7 @@ return the window used; otherwise return nil." "Display BUFFER by popping up a new window. The new window is created on the selected frame, or in `last-nonminibuffer-frame' if no windows can be created there. -If sucessful, return the new window; otherwise return nil." +If successful, return the new window; otherwise return nil." (let ((frame (or (window--frame-usable-p (selected-frame)) (window--frame-usable-p (last-nonminibuffer-frame)))) window) diff --git a/lisp/winner.el b/lisp/winner.el index 70038362c2e..55f82647089 100644 --- a/lisp/winner.el +++ b/lisp/winner.el @@ -1,6 +1,6 @@ ;;; winner.el --- Restore old window configurations -;; Copyright (C) 1997-1998, 2001-2011 Free Software Foundation. Inc. +;; Copyright (C) 1997-1998, 2001-2012 Free Software Foundation. Inc. ;; Author: Ivar Rummelhoff <ivarru@math.uio.no> ;; Created: 27 Feb 1997 diff --git a/lisp/woman.el b/lisp/woman.el index 243196a5302..4ecf7c8891d 100644 --- a/lisp/woman.el +++ b/lisp/woman.el @@ -1,6 +1,6 @@ ;;; woman.el --- browse UN*X manual pages `wo (without) man' -;; Copyright (C) 2000-2011 Free Software Foundation, Inc. +;; Copyright (C) 2000-2012 Free Software Foundation, Inc. ;; Author: Francis J. Wright <F.J.Wright@qmul.ac.uk> ;; Maintainer: FSF diff --git a/lisp/x-dnd.el b/lisp/x-dnd.el index fbb76da1b91..65dcf845064 100644 --- a/lisp/x-dnd.el +++ b/lisp/x-dnd.el @@ -1,6 +1,6 @@ ;;; x-dnd.el --- drag and drop support for X -*- coding: utf-8 -*- -;; Copyright (C) 2004-2011 Free Software Foundation, Inc. +;; Copyright (C) 2004-2012 Free Software Foundation, Inc. ;; Author: Jan Djärv <jan.h.d@swipnet.se> ;; Maintainer: FSF diff --git a/lisp/xml.el b/lisp/xml.el index 478872dd92e..f7b54048d3a 100644 --- a/lisp/xml.el +++ b/lisp/xml.el @@ -1,6 +1,6 @@ ;;; xml.el --- XML parser -;; Copyright (C) 2000-2011 Free Software Foundation, Inc. +;; Copyright (C) 2000-2012 Free Software Foundation, Inc. ;; Author: Emmanuel Briot <briot@gnat.com> ;; Maintainer: Mark A. Hershberger <mah@everybody.org> diff --git a/lisp/xt-mouse.el b/lisp/xt-mouse.el index 09b2a7b88bd..06d82870f8c 100644 --- a/lisp/xt-mouse.el +++ b/lisp/xt-mouse.el @@ -1,6 +1,6 @@ ;;; xt-mouse.el --- support the mouse when emacs run in an xterm -;; Copyright (C) 1994, 2000-2011 Free Software Foundation, Inc. +;; Copyright (C) 1994, 2000-2012 Free Software Foundation, Inc. ;; Author: Per Abrahamsen <abraham@dina.kvl.dk> ;; Keywords: mouse, terminals |