Now on revision 112679. ------------------------------------------------------------ revno: 112679 committer: Glenn Morris branch nick: trunk timestamp: Wed 2013-05-22 22:05:27 -0700 message: Silence some gnus compilation warnings * gnus/mm-decode.el: No need to load term when compiling. (term-mode, term-char-mode): Declare. * gnus/mm-util.el: No need to load jka-compr when compiling. (jka-compr-acceptable-retval-list, jka-compr-make-temp-name): Declare. * gnus/nnmaildir.el: Require is automatically eval-and-compile. (nnmail): Require at run-time too. * gnus/registry.el (registry-size): Move definition before use. diff: === modified file 'lisp/gnus/ChangeLog' --- lisp/gnus/ChangeLog 2013-05-22 13:18:40 +0000 +++ lisp/gnus/ChangeLog 2013-05-23 05:05:27 +0000 @@ -1,3 +1,16 @@ +2013-05-23 Glenn Morris + + * mm-decode.el: No need to load term when compiling. + (term-mode, term-char-mode): Declare. + + * mm-util.el: No need to load jka-compr when compiling. + (jka-compr-acceptable-retval-list, jka-compr-make-temp-name): Declare. + + * nnmaildir.el: Require is automatically eval-and-compile. + (nnmail): Require at run-time too. + + * registry.el (registry-size): Move definition before use. + 2013-05-22 Daiki Ueno * mml2015.el (mml2015-epg-sign): Make sure to insert newline after the === modified file 'lisp/gnus/mm-decode.el' --- lisp/gnus/mm-decode.el 2013-03-05 17:13:01 +0000 +++ lisp/gnus/mm-decode.el 2013-05-23 05:05:27 +0000 @@ -29,8 +29,7 @@ (require 'mail-parse) (require 'mm-bodies) -(eval-when-compile (require 'cl) - (require 'term)) +(eval-when-compile (require 'cl)) (autoload 'gnus-map-function "gnus-util") (autoload 'gnus-replace-in-string "gnus-util") @@ -813,6 +812,8 @@ (declare-function gnus-configure-windows "gnus-win" (setting &optional force)) (defvar mailcap-mime-extensions) ; mailcap-mime-info autoloads +(declare-function term-mode "term" ()) +(declare-function term-char-mode "term" ()) (defun mm-display-external (handle method) "Display HANDLE using METHOD." === modified file 'lisp/gnus/mm-util.el' --- lisp/gnus/mm-util.el 2013-01-01 09:11:05 +0000 +++ lisp/gnus/mm-util.el 2013-05-23 05:05:27 +0000 @@ -1508,8 +1508,8 @@ (fboundp 'coding-system-to-mime-charset))) (coding-system-to-mime-charset coding-system))))) -(eval-when-compile - (require 'jka-compr)) +(defvar jka-compr-acceptable-retval-list) +(declare-function jka-compr-make-temp-name "jka-compr" (&optional local)) (defun mm-decompress-buffer (filename &optional inplace force) "Decompress buffer's contents, depending on jka-compr. === modified file 'lisp/gnus/nnmaildir.el' --- lisp/gnus/nnmaildir.el 2012-09-06 02:20:21 +0000 +++ lisp/gnus/nnmaildir.el 2013-05-23 05:05:27 +0000 @@ -63,17 +63,17 @@ (eval-and-compile (unless (fboundp 'declare-function) (defmacro declare-function (&rest r)))) -(eval-and-compile - (require 'nnheader) - (require 'gnus) - (require 'gnus-util) - (require 'gnus-range) - (require 'gnus-start) - (require 'gnus-int) - (require 'message)) +(require 'nnheader) +(require 'gnus) +(require 'gnus-util) +(require 'gnus-range) +(require 'gnus-start) +(require 'gnus-int) +(require 'message) +(require 'nnmail) + (eval-when-compile - (require 'cl) - (require 'nnmail)) + (require 'cl)) (defconst nnmaildir-version "Gnus") === modified file 'lisp/gnus/registry.el' --- lisp/gnus/registry.el 2013-01-01 09:11:05 +0000 +++ lisp/gnus/registry.el 2013-05-23 05:05:27 +0000 @@ -249,6 +249,11 @@ (remhash key data))) keys)) + (defmethod registry-size ((db registry-db)) + "Returns the size of the registry-db object THIS. +This is the key count of the :data slot." + (hash-table-count (oref db :data))) + (defmethod registry-full ((db registry-db)) "Checks if registry-db THIS is full." (>= (registry-size db) @@ -297,11 +302,6 @@ (registry-lookup-secondary-value db tr val value-keys)))) (oref db :data)))))) - (defmethod registry-size ((db registry-db)) - "Returns the size of the registry-db object THIS. -This is the key count of the :data slot." - (hash-table-count (oref db :data))) - (defmethod registry-prune ((db registry-db) &optional sortfun) "Prunes the registry-db object THIS. Removes only entries without the :precious keys if it can, ------------------------------------------------------------ revno: 112678 committer: Glenn Morris branch nick: trunk timestamp: Wed 2013-05-22 22:01:59 -0700 message: Silence checkdoc.el compilation * lisp/emacs-lisp/checkdoc.el: No need to load ispell when compiling. (ispell-process, ispell-buffer-local-words, lm-summary) (lm-section-start, lm-section-end): Declare. (checkdoc-ispell-init): Simplify. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-05-23 04:59:14 +0000 +++ lisp/ChangeLog 2013-05-23 05:01:59 +0000 @@ -1,5 +1,10 @@ 2013-05-23 Glenn Morris + * emacs-lisp/checkdoc.el: No need to load ispell when compiling. + (ispell-process, ispell-buffer-local-words, lm-summary) + (lm-section-start, lm-section-end): Declare. + (checkdoc-ispell-init): Simplify. + * progmodes/vera-mode.el (he-init-string, he-dabbrev-beg) (he-string-member, he-reset-string, he-substitute-string): Declare. === modified file 'lisp/emacs-lisp/checkdoc.el' --- lisp/emacs-lisp/checkdoc.el 2013-01-01 09:11:05 +0000 +++ lisp/emacs-lisp/checkdoc.el 2013-05-23 05:01:59 +0000 @@ -2066,7 +2066,8 @@ ;;; Ispell engine ;; -(eval-when-compile (require 'ispell)) +(defvar ispell-process) +(declare-function ispell-buffer-local-words "ispell" ()) (defun checkdoc-ispell-init () "Initialize Ispell process (default version) with Lisp words. @@ -2074,19 +2075,14 @@ cannot be loaded, then set `checkdoc-spellcheck-documentation-flag' to nil." (require 'ispell) - (if (not (symbol-value 'ispell-process)) ;Silence byteCompiler - (condition-case nil - (progn - (ispell-buffer-local-words) - ;; This code copied in part from ispell.el Emacs 19.34 - (let ((w checkdoc-ispell-lisp-words)) - (while w - (process-send-string - ;; Silence byte compiler - (symbol-value 'ispell-process) - (concat "@" (car w) "\n")) - (setq w (cdr w))))) - (error (setq checkdoc-spellcheck-documentation-flag nil))))) + (unless ispell-process + (condition-case nil + (progn + (ispell-buffer-local-words) + ;; This code copied in part from ispell.el Emacs 19.34 + (dolist (w checkdoc-ispell-lisp-words) + (process-send-string ispell-process (concat "@" w "\n")))) + (error (setq checkdoc-spellcheck-documentation-flag nil))))) (defun checkdoc-ispell-docstring-engine (end) "Run the Ispell tools on the doc string between point and END. @@ -2187,14 +2183,13 @@ ;;; Comment checking engine ;; -(eval-when-compile - ;; We must load this to: - ;; a) get symbols for compile and - ;; b) determine if we have lm-history symbol which doesn't always exist - (require 'lisp-mnt)) - (defvar generate-autoload-cookie) +(eval-when-compile (require 'lisp-mnt)) ; expand silly defsubsts +(declare-function lm-summary "lisp-mnt" (&optional file)) +(declare-function lm-section-start "lisp-mnt" (header &optional after)) +(declare-function lm-section-end "lisp-mnt" (header)) + (defun checkdoc-file-comments-engine () "Return a message list if this file does not match the Emacs standard. This checks for style only, such as the first line, Commentary:, ------------------------------------------------------------ revno: 112677 committer: Glenn Morris branch nick: trunk timestamp: Wed 2013-05-22 21:59:14 -0700 message: Silence vera-mode compilation * lisp/progmodes/vera-mode.el (he-init-string, he-dabbrev-beg) (he-string-member, he-reset-string, he-substitute-string): Declare. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-05-23 04:57:27 +0000 +++ lisp/ChangeLog 2013-05-23 04:59:14 +0000 @@ -1,5 +1,8 @@ 2013-05-23 Glenn Morris + * progmodes/vera-mode.el (he-init-string, he-dabbrev-beg) + (he-string-member, he-reset-string, he-substitute-string): Declare. + * eshell/em-tramp.el: Adjust requires. (eshell-parse-command): Autoload. * eshell/em-xtra.el: Adjust requires. === modified file 'lisp/progmodes/vera-mode.el' --- lisp/progmodes/vera-mode.el 2013-05-08 16:27:53 +0000 +++ lisp/progmodes/vera-mode.el 2013-05-23 04:59:14 +0000 @@ -1355,6 +1355,11 @@ (defvar vera-expand-upper-case nil) (eval-when-compile (require 'hippie-exp)) +(declare-function he-init-string "hippie-exp" (beg end)) +(declare-function he-dabbrev-beg "hippie-exp" ()) +(declare-function he-string-member "hippie-exp" (str lst &optional trans-case)) +(declare-function he-reset-string "hippie-exp" ()) +(declare-function he-substitute-string "hippie-exp" (str &optional trans-case)) (defun vera-try-expand-abbrev (old) "Try expanding abbreviations from `vera-abbrev-list'." ------------------------------------------------------------ revno: 112676 committer: Glenn Morris branch nick: trunk timestamp: Wed 2013-05-22 21:58:09 -0700 message: * lisp/url/url.el (mm-dissect-buffer, mm-display-part): Declare. diff: === modified file 'lisp/url/ChangeLog' --- lisp/url/ChangeLog 2013-05-22 07:30:44 +0000 +++ lisp/url/ChangeLog 2013-05-23 04:58:09 +0000 @@ -1,3 +1,7 @@ +2013-05-23 Glenn Morris + + * url.el (mm-dissect-buffer, mm-display-part): Declare. + 2013-05-22 Glenn Morris * url-handlers.el (mm-save-part-to-file, mm-destroy-parts) === modified file 'lisp/url/url.el' --- lisp/url/url.el 2013-01-01 09:11:05 +0000 +++ lisp/url/url.el 2013-05-23 04:58:09 +0000 @@ -290,6 +290,11 @@ (get-buffer-process asynch-buffer))))))) asynch-buffer))) +;; url-mm-callback called from url-mm, which requires mm-decode. +(declare-function mm-dissect-buffer "mm-decode" + (&optional no-strict-mime loose-mime from)) +(declare-function mm-display-part "mm-decode" (handle &optional no-default)) + (defun url-mm-callback (&rest ignored) (let ((handle (mm-dissect-buffer t))) (url-mark-buffer-as-dead (current-buffer)) ------------------------------------------------------------ revno: 112675 committer: Glenn Morris branch nick: trunk timestamp: Wed 2013-05-22 21:57:27 -0700 message: Silence many eshell compilation warnings * lisp/eshell/em-tramp.el: Adjust requires. (eshell-parse-command): Autoload. * lisp/eshell/em-xtra.el: Adjust requires. (eshell-parse-command): Autoload. * lisp/eshell/esh-ext.el: Adjust requires. (eshell-parse-command, eshell-close-handles): Autoload. * lisp/eshell/esh-io.el: Adjust requires. (eshell-output-filter): Autoload. * lisp/eshell/esh-util.el: No need to load tramp when compiling. (tramp-file-name-structure, ange-ftp-ls, ange-ftp-file-modtime): Declare. (eshell-parse-ange-ls): Require ange-ftp and tramp. * lisp/eshell/em-alias.el, lisp/eshell/em-banner.el, lisp/eshell/em-basic.el: * lisp/eshell/em-cmpl.el, lisp/eshell/em-glob.el, lisp/eshell/em-pred.el: * lisp/eshell/em-prompt.el, lisp/eshell/em-rebind.el, lisp/eshell/em-smart.el: * lisp/eshell/em-term.el, lisp/eshell/esh-arg.el, lisp/eshell/esh-mode.el: * lisp/eshell/esh-opt.el, lisp/eshell/esh-proc.el: * lisp/eshell/esh-var.el: Adjust requires. * lisp/eshell/eshell.el: Do not require esh-util twice. (eshell-add-input-to-history): Declare. (eshell-command): Check history module is active before using it. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-05-23 04:48:40 +0000 +++ lisp/ChangeLog 2013-05-23 04:57:27 +0000 @@ -1,5 +1,27 @@ 2013-05-23 Glenn Morris + * eshell/em-tramp.el: Adjust requires. + (eshell-parse-command): Autoload. + * eshell/em-xtra.el: Adjust requires. + (eshell-parse-command): Autoload. + * eshell/esh-ext.el: Adjust requires. + (eshell-parse-command, eshell-close-handles): Autoload. + * eshell/esh-io.el: Adjust requires. + (eshell-output-filter): Autoload. + * eshell/esh-util.el: No need to load tramp when compiling. + (tramp-file-name-structure, ange-ftp-ls, ange-ftp-file-modtime): + Declare. + (eshell-parse-ange-ls): Require ange-ftp and tramp. + * eshell/em-alias.el, eshell/em-banner.el, eshell/em-basic.el: + * eshell/em-cmpl.el, eshell/em-glob.el, eshell/em-pred.el: + * eshell/em-prompt.el, eshell/em-rebind.el, eshell/em-smart.el: + * eshell/em-term.el, eshell/esh-arg.el, eshell/esh-mode.el: + * eshell/esh-opt.el, eshell/esh-proc.el: + * eshell/esh-var.el: Adjust requires. + * eshell/eshell.el: Do not require esh-util twice. + (eshell-add-input-to-history): Declare. + (eshell-command): Check history module is active before using it. + * eshell/em-ls.el (eshell-ls-dir): Fix -A handling. 2013-05-22 Leo Liu === modified file 'lisp/eshell/em-alias.el' --- lisp/eshell/em-alias.el 2013-01-01 09:11:05 +0000 +++ lisp/eshell/em-alias.el 2013-05-23 04:57:27 +0000 @@ -90,8 +90,6 @@ ;;; Code: -(eval-when-compile - (require 'esh-util)) (require 'eshell) ;;;###autoload === modified file 'lisp/eshell/em-banner.el' --- lisp/eshell/em-banner.el 2013-01-01 09:11:05 +0000 +++ lisp/eshell/em-banner.el 2013-05-23 04:57:27 +0000 @@ -39,11 +39,11 @@ ;;; Code: (eval-when-compile - (require 'cl-lib) - (require 'esh-mode) - (require 'eshell)) + (require 'cl-lib)) (require 'esh-util) +(require 'esh-mode) +(require 'eshell) ;;;###autoload (progn === modified file 'lisp/eshell/em-basic.el' --- lisp/eshell/em-basic.el 2013-01-01 09:11:05 +0000 +++ lisp/eshell/em-basic.el 2013-05-23 04:57:27 +0000 @@ -59,9 +59,7 @@ ;;; Code: -(eval-when-compile - (require 'esh-util)) - +(require 'esh-util) (require 'eshell) (require 'esh-opt) === modified file 'lisp/eshell/em-cmpl.el' --- lisp/eshell/em-cmpl.el 2013-05-06 07:20:35 +0000 +++ lisp/eshell/em-cmpl.el 2013-05-23 04:57:27 +0000 @@ -70,10 +70,12 @@ ;;; Code: (require 'pcomplete) +(require 'esh-mode) +(require 'esh-util) + (eval-when-compile (require 'cl-lib) (require 'eshell)) -(require 'esh-util) ;;;###autoload (progn === modified file 'lisp/eshell/em-glob.el' --- lisp/eshell/em-glob.el 2013-05-09 01:40:20 +0000 +++ lisp/eshell/em-glob.el 2013-05-23 04:57:27 +0000 @@ -49,8 +49,8 @@ ;;; Code: +(require 'esh-util) (eval-when-compile (require 'eshell)) -(require 'esh-util) ;;;###autoload (progn === modified file 'lisp/eshell/em-pred.el' --- lisp/eshell/em-pred.el 2013-01-01 09:11:05 +0000 +++ lisp/eshell/em-pred.el 2013-05-23 04:57:27 +0000 @@ -46,6 +46,8 @@ ;;; Code: +(require 'esh-util) +(require 'esh-arg) (eval-when-compile (require 'eshell)) ;;;###autoload === modified file 'lisp/eshell/em-prompt.el' --- lisp/eshell/em-prompt.el 2013-04-20 19:11:25 +0000 +++ lisp/eshell/em-prompt.el 2013-05-23 04:57:27 +0000 @@ -26,6 +26,7 @@ ;;; Code: +(require 'esh-mode) (eval-when-compile (require 'eshell)) ;;;###autoload === modified file 'lisp/eshell/em-rebind.el' --- lisp/eshell/em-rebind.el 2013-01-01 09:11:05 +0000 +++ lisp/eshell/em-rebind.el 2013-05-23 04:57:27 +0000 @@ -23,6 +23,7 @@ ;;; Code: +(require 'esh-mode) (eval-when-compile (require 'eshell)) ;;;###autoload === modified file 'lisp/eshell/em-smart.el' --- lisp/eshell/em-smart.el 2013-01-01 09:11:05 +0000 +++ lisp/eshell/em-smart.el 2013-05-23 04:57:27 +0000 @@ -68,6 +68,7 @@ ;;; Code: +(require 'esh-mode) (eval-when-compile (require 'eshell)) ;;;###autoload === modified file 'lisp/eshell/em-term.el' --- lisp/eshell/em-term.el 2013-01-01 09:11:05 +0000 +++ lisp/eshell/em-term.el 2013-05-23 04:57:27 +0000 @@ -31,6 +31,8 @@ ;;; Code: +(require 'esh-util) +(require 'esh-ext) (eval-when-compile (require 'eshell)) (require 'term) === modified file 'lisp/eshell/em-tramp.el' --- lisp/eshell/em-tramp.el 2013-03-26 22:08:58 +0000 +++ lisp/eshell/em-tramp.el 2013-05-23 04:57:27 +0000 @@ -25,13 +25,13 @@ ;;; Code: +(require 'esh-util) + (eval-when-compile (require 'esh-mode) (require 'eshell) (require 'tramp)) -(require 'esh-util) - ;;;###autoload (progn (defgroup eshell-tramp nil @@ -53,6 +53,8 @@ (append '("su" "sudo") eshell-complex-commands))) +(autoload 'eshell-parse-command "esh-cmd") + (defun eshell/su (&rest args) "Alias \"su\" to call TRAMP. === modified file 'lisp/eshell/em-xtra.el' --- lisp/eshell/em-xtra.el 2013-01-01 09:11:05 +0000 +++ lisp/eshell/em-xtra.el 2013-05-23 04:57:27 +0000 @@ -23,6 +23,7 @@ ;;; Code: +(require 'esh-util) (eval-when-compile (require 'eshell) (require 'pcomplete)) @@ -40,6 +41,8 @@ ;;; Functions: +(autoload 'eshell-parse-command "esh-cmd") + (defun eshell/expr (&rest args) "Implementation of expr, using the calc package." (if (not (fboundp 'calc-eval)) === modified file 'lisp/eshell/esh-arg.el' --- lisp/eshell/esh-arg.el 2013-01-01 09:11:05 +0000 +++ lisp/eshell/esh-arg.el 2013-05-23 04:57:27 +0000 @@ -27,7 +27,7 @@ (provide 'esh-arg) -(eval-when-compile (require 'eshell)) +(require 'esh-mode) (defgroup eshell-arg nil "Argument parsing involves transforming the arguments passed on the === modified file 'lisp/eshell/esh-ext.el' --- lisp/eshell/esh-ext.el 2013-01-01 09:11:05 +0000 +++ lisp/eshell/esh-ext.el 2013-05-23 04:57:27 +0000 @@ -33,10 +33,12 @@ (provide 'esh-ext) +(require 'esh-util) + (eval-when-compile (require 'cl-lib) + (require 'esh-io) (require 'esh-cmd)) -(require 'esh-util) (require 'esh-opt) (defgroup eshell-ext nil @@ -103,6 +105,8 @@ :type '(choice file (const nil)) :group 'eshell-ext) +(autoload 'eshell-parse-command "esh-cmd") + (defsubst eshell-invoke-batch-file (&rest args) "Invoke a .BAT or .CMD file on DOS/Windows systems." ;; since CMD.EXE can't handle forward slashes in the initial @@ -179,6 +183,8 @@ (error "%s: external command not found" (substring command 1)))))) +(autoload 'eshell-close-handles "esh-io") + (defun eshell-remote-command (command args) "Insert output from a remote COMMAND, using ARGS. A remote command is something that executes on a different machine. === modified file 'lisp/eshell/esh-io.el' --- lisp/eshell/esh-io.el 2013-01-01 09:11:05 +0000 +++ lisp/eshell/esh-io.el 2013-05-23 04:57:27 +0000 @@ -58,9 +58,11 @@ (provide 'esh-io) +(require 'esh-arg) +(require 'esh-util) + (eval-when-compile - (require 'cl-lib) - (require 'eshell)) + (require 'cl-lib)) (defgroup eshell-io nil "Eshell's I/O management code provides a scheme for treating many @@ -465,6 +467,8 @@ (eshell-print object) (eshell-print "\n")) +(autoload 'eshell-output-filter "esh-mode") + (defun eshell-output-object-to-target (object target) "Insert OBJECT into TARGET. Returns what was actually sent, or nil if nothing was sent." === modified file 'lisp/eshell/esh-mode.el' --- lisp/eshell/esh-mode.el 2013-01-01 09:11:05 +0000 +++ lisp/eshell/esh-mode.el 2013-05-23 04:57:27 +0000 @@ -60,7 +60,7 @@ (provide 'esh-mode) -(eval-when-compile (require 'esh-util)) +(require 'esh-util) (require 'esh-module) (require 'esh-cmd) (require 'esh-io) === modified file 'lisp/eshell/esh-opt.el' --- lisp/eshell/esh-opt.el 2013-05-15 23:55:41 +0000 +++ lisp/eshell/esh-opt.el 2013-05-23 04:57:27 +0000 @@ -25,7 +25,7 @@ (provide 'esh-opt) -(eval-when-compile (require 'esh-ext)) +(require 'esh-ext) ;; Unused. ;;; (defgroup eshell-opt nil === modified file 'lisp/eshell/esh-proc.el' --- lisp/eshell/esh-proc.el 2013-02-08 15:47:07 +0000 +++ lisp/eshell/esh-proc.el 2013-05-23 04:57:27 +0000 @@ -25,9 +25,7 @@ (provide 'esh-proc) -(eval-when-compile - (require 'eshell) - (require 'esh-util)) +(require 'esh-cmd) (defgroup eshell-proc nil "When Eshell invokes external commands, it always does so === modified file 'lisp/eshell/esh-util.el' --- lisp/eshell/esh-util.el 2013-01-17 10:01:33 +0000 +++ lisp/eshell/esh-util.el 2013-05-23 04:57:27 +0000 @@ -605,10 +605,16 @@ (autoload 'parse-time-string "parse-time")) (eval-when-compile - (require 'ange-ftp nil t) - (require 'tramp nil t)) + (require 'ange-ftp nil t)) ; ange-ftp-parse-filename + +(defvar tramp-file-name-structure) +(declare-function ange-ftp-ls "ange-ftp" + (file lsargs parse &optional no-error wildcard)) +(declare-function ange-ftp-file-modtime "ange-ftp" (file)) (defun eshell-parse-ange-ls (dir) + (require 'ange-ftp) + (require 'tramp) (let ((ange-ftp-name-format (list (nth 0 tramp-file-name-structure) (nth 3 tramp-file-name-structure) === modified file 'lisp/eshell/esh-var.el' --- lisp/eshell/esh-var.el 2013-01-01 09:11:05 +0000 +++ lisp/eshell/esh-var.el 2013-05-23 04:57:27 +0000 @@ -107,11 +107,11 @@ (provide 'esh-var) -(eval-when-compile - (require 'pcomplete) - (require 'esh-util) - (require 'esh-mode)) +(require 'esh-util) +(require 'esh-cmd) (require 'esh-opt) + +(require 'pcomplete) (require 'env) (require 'ring) === modified file 'lisp/eshell/eshell.el' --- lisp/eshell/eshell.el 2013-01-01 09:11:05 +0000 +++ lisp/eshell/eshell.el 2013-05-23 04:57:27 +0000 @@ -222,8 +222,7 @@ ;; things up. (eval-when-compile - (require 'cl-lib) - (require 'esh-util)) + (require 'cl-lib)) (require 'esh-util) (require 'esh-mode) @@ -318,6 +317,8 @@ Modules should use this variable so that they don't clutter non-interactive sessions, such as when using `eshell-command'.") +(declare-function eshell-add-input-to-history "em-hist" (input)) + ;;;###autoload (defun eshell-command (&optional command arg) "Execute the Eshell command string COMMAND. @@ -333,7 +334,8 @@ (eshell-return-exits-minibuffer)) (unless command (setq command (read-from-minibuffer "Emacs shell command: ")) - (eshell-add-input-to-history command)))) + (if (eshell-using-module 'eshell-hist) + (eshell-add-input-to-history command))))) (unless command (error "No command specified!")) ;; redirection into the current buffer is achieved by adding an ------------------------------------------------------------ revno: 112674 committer: Glenn Morris branch nick: trunk timestamp: Wed 2013-05-22 21:48:40 -0700 message: * lisp/eshell/em-ls.el (eshell-ls-dir): Fix -A handling. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-05-22 15:28:42 +0000 +++ lisp/ChangeLog 2013-05-23 04:48:40 +0000 @@ -1,3 +1,7 @@ +2013-05-23 Glenn Morris + + * eshell/em-ls.el (eshell-ls-dir): Fix -A handling. + 2013-05-22 Leo Liu * progmodes/octave.el (inferior-octave-startup): Fix bug#14433. === modified file 'lisp/eshell/em-ls.el' --- lisp/eshell/em-ls.el 2013-02-08 15:47:07 +0000 +++ lisp/eshell/em-ls.el 2013-05-23 04:48:40 +0000 @@ -552,7 +552,7 @@ (expand-file-name dir))) (cdr dirinfo))) ":\n")) (let ((entries (eshell-directory-files-and-attributes - dir nil (and (not show-all) + dir nil (and (not (or show-all show-almost-all)) eshell-ls-exclude-hidden "\\`[^.]") t ;; Asking for UID and GID as @@ -565,9 +565,9 @@ (setq entries (cl-remove-if (lambda (entry) - (member (caar entry) '("." ".."))) + (member (car entry) '("." ".."))) entries))) - (when (and (not show-all) + (when (and (not (or show-all show-almost-all)) eshell-ls-exclude-regexp) (while (and entries (string-match eshell-ls-exclude-regexp (caar entries))) ------------------------------------------------------------ revno: 112673 author: Adam Sjøgren committer: Katsumi Yamaoka branch nick: trunk timestamp: Wed 2013-05-22 22:16:29 +0000 message: lisp/gnus/gnus-spec.el (gnus-parse-complex-format): Try to maximize compatibility diff: === modified file 'lisp/gnus/gnus-spec.el' --- lisp/gnus/gnus-spec.el 2013-05-20 22:37:06 +0000 +++ lisp/gnus/gnus-spec.el 2013-05-22 22:16:29 +0000 @@ -441,7 +441,7 @@ (delim (aref (match-string 2) 0))) (if (or (= delim ?\() (= delim ?\{) - (= delim ?\u00AB)) ; « + (= delim 171)) ; « (replace-match (concat "\"(" (cond ((= delim ?\() "mouse") ((= delim ?\{) "face") ------------------------------------------------------------ revno: 112672 fixes bug: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=14424 author: Barry OReilly committer: Stefan Monnier branch nick: trunk timestamp: Wed 2013-05-22 17:35:00 -0400 message: * src/casetab.c (init_casetab_once): Fix last change. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2013-05-22 15:12:59 +0000 +++ src/ChangeLog 2013-05-22 21:35:00 +0000 @@ -1,3 +1,7 @@ +2013-05-22 Barry OReilly (tiny change) + + * casetab.c (init_casetab_once): Fix last change (bug#14424). + 2013-05-22 Kenichi Handa The following changes are to fix the setting of @@ -12,8 +16,8 @@ (setup_coding_system): Do not initialize coding->head_ascii. (check_ascii): Do not set coding->eol_seen but update it. Do not call adjust_coding_eol_type here. - (detect_coding): Fix detection of BOM for utf-8 and utf-16. If - the eol-type of CODING is already specified, adjust the eol type + (detect_coding): Fix detection of BOM for utf-8 and utf-16. + If the eol-type of CODING is already specified, adjust the eol type of the found coding-system. (decode_coding_gap): Cancel previous change. Utilize the character numbers counted by detect_coding_utf_8. Fix detection === modified file 'src/casetab.c' --- src/casetab.c 2013-03-27 14:33:03 +0000 +++ src/casetab.c 2013-05-22 21:35:00 +0000 @@ -286,7 +286,7 @@ int c = ((i >= 'A' && i <= 'Z') ? i + ('a' - 'A') : ((i >= 'a' && i <= 'z') ? i + ('A' - 'a') : i)); - CHAR_TABLE_SET (up, i, make_number (c)); + CHAR_TABLE_SET (eqv, i, make_number (c)); } set_char_table_extras (down, 2, eqv); ------------------------------------------------------------ revno: 112671 fixes bug: http://debbugs.gnu.org/14433 committer: Leo Liu branch nick: trunk timestamp: Wed 2013-05-22 23:28:42 +0800 message: * progmodes/octave.el (inferior-octave-startup): Fix bug#14433. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-05-22 14:47:19 +0000 +++ lisp/ChangeLog 2013-05-22 15:28:42 +0000 @@ -1,3 +1,7 @@ +2013-05-22 Leo Liu + + * progmodes/octave.el (inferior-octave-startup): Fix bug#14433. + 2013-05-22 Michael Albinus * autorevert.el (auto-revert-notify-add-watch) === modified file 'lisp/progmodes/octave.el' --- lisp/progmodes/octave.el 2013-05-21 23:19:03 +0000 +++ lisp/progmodes/octave.el 2013-05-22 15:28:42 +0000 @@ -770,20 +770,17 @@ (when (and inferior-octave-startup-file (file-exists-p inferior-octave-startup-file)) (format "source (\"%s\");\n" inferior-octave-startup-file)))) - (insert-before-markers - (concat - (if inferior-octave-output-list - (concat (mapconcat - 'identity inferior-octave-output-list "\n") - "\n")) - inferior-octave-output-string)) + (when inferior-octave-output-list + (insert-before-markers + (mapconcat 'identity inferior-octave-output-list "\n"))) ;; And finally, everything is back to normal. (set-process-filter proc 'comint-output-filter) ;; Just in case, to be sure a cd in the startup file ;; won't have detrimental effects. (inferior-octave-resync-dirs) - ;; A trick to get the prompt highlighted. + ;; Generate a proper prompt, which is critical to + ;; `comint-history-isearch-backward-regexp'. Bug#14433. (comint-send-string proc "\n"))) (defvar inferior-octave-completion-table ------------------------------------------------------------ revno: 112670 [merge] committer: K. Handa branch nick: trunk timestamp: Thu 2013-05-23 00:14:16 +0900 message: Fix the setting of buffer-file-coding-system on, for instance, C-x RET c unix RET _FILE_OF_DOS_EOL_TYPE_ RET. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2013-05-22 02:56:22 +0000 +++ src/ChangeLog 2013-05-22 15:12:59 +0000 @@ -1,3 +1,24 @@ +2013-05-22 Kenichi Handa + + The following changes are to fix the setting of + buffer-file-coding-system on, for instance, C-x RET c unix RET + _FILE_OF_DOS_EOL_TYPE_ RET. + + * coding.h (struct coding_system): New member detected_utf8_chars. + + * coding.c (detect_coding_utf_8): Count characters and check EOL + format. Include CATEGORY_MASK_UTF_8_AUTO in detect_info->found if + BOM is there. + (setup_coding_system): Do not initialize coding->head_ascii. + (check_ascii): Do not set coding->eol_seen but update it. Do not + call adjust_coding_eol_type here. + (detect_coding): Fix detection of BOM for utf-8 and utf-16. If + the eol-type of CODING is already specified, adjust the eol type + of the found coding-system. + (decode_coding_gap): Cancel previous change. Utilize the + character numbers counted by detect_coding_utf_8. Fix detection + of BOM for utf-8. + 2013-05-21 Barry OReilly (tiny change) * search.c (looking_at_1): Only set last_thing_searched if the match === modified file 'src/coding.c' --- src/coding.c 2013-04-28 18:21:01 +0000 +++ src/coding.c 2013-05-22 14:53:21 +0000 @@ -1125,6 +1125,14 @@ *buf++ = id; \ } while (0) + +/* Bitmasks for coding->eol_seen. */ + +#define EOL_SEEN_NONE 0 +#define EOL_SEEN_LF 1 +#define EOL_SEEN_CR 2 +#define EOL_SEEN_CRLF 4 + /*** 2. Emacs' internal format (emacs-utf-8) ***/ @@ -1147,6 +1155,9 @@ #define UTF_8_BOM_2 0xBB #define UTF_8_BOM_3 0xBF +/* Unlike the other detect_coding_XXX, this function counts number of + characters and check EOL format. */ + static bool detect_coding_utf_8 (struct coding_system *coding, struct coding_detection_info *detect_info) @@ -1156,11 +1167,23 @@ bool multibytep = coding->src_multibyte; ptrdiff_t consumed_chars = 0; bool bom_found = 0; - bool found = 0; + int nchars = coding->head_ascii; + int eol_seen = coding->eol_seen; detect_info->checked |= CATEGORY_MASK_UTF_8; /* A coding system of this category is always ASCII compatible. */ - src += coding->head_ascii; + src += nchars; + + if (src == coding->source /* BOM should be at the head. */ + && src + 3 < src_end /* BOM is 3-byte long. */ + && src[0] == UTF_8_BOM_1 + && src[1] == UTF_8_BOM_2 + && src[2] == UTF_8_BOM_3) + { + bom_found = 1; + src += 3; + nchars++; + } while (1) { @@ -1169,13 +1192,29 @@ src_base = src; ONE_MORE_BYTE (c); if (c < 0 || UTF_8_1_OCTET_P (c)) - continue; + { + nchars++; + if (c == '\r') + { + if (src < src_end && *src == '\n') + { + eol_seen |= EOL_SEEN_CRLF; + src++; + nchars++; + } + else + eol_seen |= EOL_SEEN_CR; + } + else if (c == '\n') + eol_seen |= EOL_SEEN_LF; + continue; + } ONE_MORE_BYTE (c1); if (c1 < 0 || ! UTF_8_EXTRA_OCTET_P (c1)) break; if (UTF_8_2_OCTET_LEADING_P (c)) { - found = 1; + nchars++; continue; } ONE_MORE_BYTE (c2); @@ -1183,10 +1222,7 @@ break; if (UTF_8_3_OCTET_LEADING_P (c)) { - found = 1; - if (src_base == coding->source - && c == UTF_8_BOM_1 && c1 == UTF_8_BOM_2 && c2 == UTF_8_BOM_3) - bom_found = 1; + nchars++; continue; } ONE_MORE_BYTE (c3); @@ -1194,7 +1230,7 @@ break; if (UTF_8_4_OCTET_LEADING_P (c)) { - found = 1; + nchars++; continue; } ONE_MORE_BYTE (c4); @@ -1202,7 +1238,7 @@ break; if (UTF_8_5_OCTET_LEADING_P (c)) { - found = 1; + nchars++; continue; } break; @@ -1219,14 +1255,17 @@ if (bom_found) { /* The first character 0xFFFE doesn't necessarily mean a BOM. */ - detect_info->found |= CATEGORY_MASK_UTF_8_SIG | CATEGORY_MASK_UTF_8_NOSIG; + detect_info->found |= CATEGORY_MASK_UTF_8_AUTO | CATEGORY_MASK_UTF_8_SIG | CATEGORY_MASK_UTF_8_NOSIG; } else { detect_info->rejected |= CATEGORY_MASK_UTF_8_SIG; - if (found) - detect_info->found |= CATEGORY_MASK_UTF_8_NOSIG; + if (nchars < src_end - coding->source) + /* The found characters are less than source bytes, which + means that we found a valid non-ASCII characters. */ + detect_info->found |= CATEGORY_MASK_UTF_8_AUTO | CATEGORY_MASK_UTF_8_NOSIG; } + coding->detected_utf8_chars = nchars; return 1; } @@ -5622,7 +5661,6 @@ eol_type = inhibit_eol_conversion ? Qunix : CODING_ID_EOL_TYPE (coding->id); coding->mode = 0; - coding->head_ascii = -1; if (VECTORP (eol_type)) coding->common_flags = (CODING_REQUIRE_DECODING_MASK | CODING_REQUIRE_DETECTION_MASK); @@ -6074,46 +6112,35 @@ */ -#define EOL_SEEN_NONE 0 -#define EOL_SEEN_LF 1 -#define EOL_SEEN_CR 2 -#define EOL_SEEN_CRLF 4 - - static Lisp_Object adjust_coding_eol_type (struct coding_system *coding, int eol_seen); /* Return the number of ASCII characters at the head of the source. - By side effects, set coding->head_ascii and coding->eol_seen. The - value of coding->eol_seen is "logical or" of EOL_SEEN_LF, - EOL_SEEN_CR, and EOL_SEEN_CRLF, but the value is reliable only when - all the source bytes are ASCII. */ + By side effects, set coding->head_ascii and update + coding->eol_seen. The value of coding->eol_seen is "logical or" of + EOL_SEEN_LF, EOL_SEEN_CR, and EOL_SEEN_CRLF, but the value is + reliable only when all the source bytes are ASCII. */ static int check_ascii (struct coding_system *coding) { const unsigned char *src, *end; Lisp_Object eol_type = CODING_ID_EOL_TYPE (coding->id); - int eol_seen; + int eol_seen = coding->eol_seen; - eol_seen = (VECTORP (eol_type) ? EOL_SEEN_NONE - : EQ (eol_type, Qunix) ? EOL_SEEN_LF - : EQ (eol_type, Qdos) ? EOL_SEEN_CRLF - : EOL_SEEN_CR); coding_set_source (coding); src = coding->source; end = src + coding->src_bytes; if (inhibit_eol_conversion - || eol_seen != EOL_SEEN_NONE) + || SYMBOLP (eol_type)) { /* We don't have to check EOL format. */ - while (src < end && !( *src & 0x80)) src++; - if (inhibit_eol_conversion) + while (src < end && !( *src & 0x80)) { - eol_seen = EOL_SEEN_LF; - adjust_coding_eol_type (coding, eol_seen); + if (*src++ == '\n') + eol_seen |= EOL_SEEN_LF; } } else @@ -6171,7 +6198,7 @@ check_utf_8 (struct coding_system *coding) { const unsigned char *src, *end; - int eol_seen = coding->eol_seen; + int eol_seen; int nchars = coding->head_ascii; if (coding->head_ascii < 0) @@ -6181,7 +6208,7 @@ src = coding->source + coding->head_ascii; /* We look ahead one byte for CR LF. */ end = coding->source + coding->src_bytes - 1; - + eol_seen = coding->eol_seen; while (src < end) { int c = *src; @@ -6402,6 +6429,8 @@ { const unsigned char *src, *src_end; unsigned int saved_mode = coding->mode; + Lisp_Object found = Qnil; + Lisp_Object eol_type = CODING_ID_EOL_TYPE (coding->id); coding->consumed = coding->consumed_char = 0; coding->produced = coding->produced_char = 0; @@ -6409,6 +6438,7 @@ src_end = coding->source + coding->src_bytes; + coding->eol_seen = EOL_SEEN_NONE; /* If we have not yet decided the text encoding type, detect it now. */ if (EQ (CODING_ATTR_TYPE (CODING_ID_ATTRS (coding->id)), Qundecided)) @@ -6418,7 +6448,6 @@ bool null_byte_found = 0, eight_bit_found = 0; coding->head_ascii = 0; - coding->eol_seen = EOL_SEEN_NONE; detect_info.checked = detect_info.found = detect_info.rejected = 0; for (src = coding->source; src < src_end; src++) { @@ -6529,32 +6558,58 @@ } else if ((*(this->detector)) (coding, &detect_info) && detect_info.found & (1 << category)) - { - if (category == coding_category_utf_16_auto) - { - if (detect_info.found & CATEGORY_MASK_UTF_16_LE) - category = coding_category_utf_16_le; - else - category = coding_category_utf_16_be; - } - break; - } + break; } } if (i < coding_category_raw_text) - setup_coding_system (CODING_ID_NAME (this->id), coding); + { + if (category == coding_category_utf_8_auto) + { + Lisp_Object coding_systems; + + coding_systems = AREF (CODING_ID_ATTRS (this->id), + coding_attr_utf_bom); + if (CONSP (coding_systems)) + { + if (detect_info.found & CATEGORY_MASK_UTF_8_SIG) + found = XCAR (coding_systems); + else + found = XCDR (coding_systems); + } + else + found = CODING_ID_NAME (this->id); + } + else if (category == coding_category_utf_16_auto) + { + Lisp_Object coding_systems; + + coding_systems = AREF (CODING_ID_ATTRS (this->id), + coding_attr_utf_bom); + if (CONSP (coding_systems)) + { + if (detect_info.found & CATEGORY_MASK_UTF_16_LE) + found = XCAR (coding_systems); + else if (detect_info.found & CATEGORY_MASK_UTF_16_BE) + found = XCDR (coding_systems); + } + else + found = CODING_ID_NAME (this->id); + } + else + found = CODING_ID_NAME (this->id); + } else if (null_byte_found) - setup_coding_system (Qno_conversion, coding); + found = Qno_conversion; else if ((detect_info.rejected & CATEGORY_MASK_ANY) == CATEGORY_MASK_ANY) - setup_coding_system (Qraw_text, coding); + found = Qraw_text; else if (detect_info.rejected) for (i = 0; i < coding_category_raw_text; i++) if (! (detect_info.rejected & (1 << coding_priorities[i]))) { this = coding_categories + coding_priorities[i]; - setup_coding_system (CODING_ID_NAME (this->id), coding); + found = CODING_ID_NAME (this->id); break; } } @@ -6570,12 +6625,8 @@ detect_info.found = detect_info.rejected = 0; if (check_ascii (coding) == coding->src_bytes) { - int head_ascii = coding->head_ascii; - - if (coding->eol_seen != EOL_SEEN_NONE) - adjust_coding_eol_type (coding, coding->eol_seen); - setup_coding_system (XCDR (coding_systems), coding); - coding->head_ascii = head_ascii; + if (CONSP (coding_systems)) + found = XCDR (coding_systems); } else { @@ -6583,9 +6634,9 @@ && detect_coding_utf_8 (coding, &detect_info)) { if (detect_info.found & CATEGORY_MASK_UTF_8_SIG) - setup_coding_system (XCAR (coding_systems), coding); + found = XCAR (coding_systems); else - setup_coding_system (XCDR (coding_systems), coding); + found = XCDR (coding_systems); } } } @@ -6599,16 +6650,28 @@ = AREF (CODING_ID_ATTRS (coding->id), coding_attr_utf_bom); detect_info.found = detect_info.rejected = 0; coding->head_ascii = 0; - coding->eol_seen = EOL_SEEN_NONE; if (CONSP (coding_systems) && detect_coding_utf_16 (coding, &detect_info)) { if (detect_info.found & CATEGORY_MASK_UTF_16_LE) - setup_coding_system (XCAR (coding_systems), coding); + found = XCAR (coding_systems); else if (detect_info.found & CATEGORY_MASK_UTF_16_BE) - setup_coding_system (XCDR (coding_systems), coding); + found = XCDR (coding_systems); } } + + if (! NILP (found)) + { + int specified_eol = (VECTORP (eol_type) ? EOL_SEEN_NONE + : EQ (eol_type, Qdos) ? EOL_SEEN_CRLF + : EQ (eol_type, Qmac) ? EOL_SEEN_CR + : EOL_SEEN_LF); + + setup_coding_system (found, coding); + if (specified_eol != EOL_SEEN_NONE) + adjust_coding_eol_type (coding, specified_eol); + } + coding->mode = saved_mode; } @@ -7729,6 +7792,9 @@ coding->dst_pos_byte = PT_BYTE; coding->dst_multibyte = ! NILP (BVAR (current_buffer, enable_multibyte_characters)); + coding->head_ascii = -1; + coding->detected_utf8_chars = -1; + coding->eol_seen = EOL_SEEN_NONE; if (CODING_REQUIRE_DETECTION (coding)) detect_coding (coding); attrs = CODING_ID_ATTRS (coding->id); @@ -7743,17 +7809,38 @@ chars = check_ascii (coding); if (chars != bytes) { + /* There exists a non-ASCII byte. */ if (EQ (CODING_ATTR_TYPE (attrs), Qutf_8)) - chars = check_utf_8 (coding); + { + if (coding->detected_utf8_chars >= 0) + chars = coding->detected_utf8_chars; + else + chars = check_utf_8 (coding); + if (CODING_UTF_8_BOM (coding) != utf_without_bom + && coding->head_ascii == 0 + && coding->source[0] == UTF_8_BOM_1 + && coding->source[1] == UTF_8_BOM_2 + && coding->source[2] == UTF_8_BOM_3) + { + chars--; + bytes -= 3; + coding->src_bytes -= 3; + } + } else chars = -1; } if (chars >= 0) { - if (coding->eol_seen != EOL_SEEN_NONE) - adjust_coding_eol_type (coding, coding->eol_seen); + Lisp_Object eol_type; - if (coding->eol_seen == EOL_SEEN_CR) + eol_type = CODING_ID_EOL_TYPE (coding->id); + if (VECTORP (eol_type)) + { + if (coding->eol_seen != EOL_SEEN_NONE) + eol_type = adjust_coding_eol_type (coding, coding->eol_seen); + } + if (EQ (eol_type, Qmac)) { unsigned char *src_end = GAP_END_ADDR; unsigned char *src = src_end - coding->src_bytes; @@ -7764,7 +7851,7 @@ src[-1] = '\n'; } } - else if (coding->eol_seen == EOL_SEEN_CRLF) + else if (EQ (eol_type, Qdos)) { unsigned char *src = GAP_END_ADDR; unsigned char *src_beg = src - coding->src_bytes; === modified file 'src/coding.h' --- src/coding.h 2013-03-15 16:03:54 +0000 +++ src/coding.h 2013-05-22 14:53:21 +0000 @@ -444,6 +444,8 @@ the eol format. */ ptrdiff_t head_ascii; + ptrdiff_t detected_utf8_chars; + /* Used internally in coding.c. See the comment of detect_ascii. */ int eol_seen; ------------------------------------------------------------ revno: 112669 committer: Michael Albinus branch nick: trunk timestamp: Wed 2013-05-22 16:47:19 +0200 message: * autorevert.el (auto-revert-notify-add-watch) (auto-revert-notify-handler): Add `attrib' for the inotify case, it indicates changes in file modification time. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-05-22 07:50:30 +0000 +++ lisp/ChangeLog 2013-05-22 14:47:19 +0000 @@ -1,3 +1,9 @@ +2013-05-22 Michael Albinus + + * autorevert.el (auto-revert-notify-add-watch) + (auto-revert-notify-handler): Add `attrib' for the inotify case, + it indicates changes in file modification time. + 2013-05-22 Glenn Morris * emacs-lisp/bytecomp.el (byte-compile-file-form-autoload): === modified file 'lisp/autorevert.el' --- lisp/autorevert.el 2013-04-05 10:18:43 +0000 +++ lisp/autorevert.el 2013-05-22 14:47:19 +0000 @@ -521,8 +521,9 @@ (not auto-revert-notify-watch-descriptor)) (let ((func (if (fboundp 'inotify-add-watch) 'inotify-add-watch 'w32notify-add-watch)) + ;; `attrib' is needed for file modification time. (aspect (if (fboundp 'inotify-add-watch) - '(create modify moved-to) '(size last-write-time))) + '(attrib create modify moved-to) '(size last-write-time))) (file (if (fboundp 'inotify-add-watch) (directory-file-name (expand-file-name default-directory)) (buffer-file-name)))) @@ -576,7 +577,8 @@ ;; TODO: Filter events which stop watching, like `move' or `removed'. (cl-assert descriptor) (when (featurep 'inotify) - (cl-assert (or (memq 'create action) + (cl-assert (or (memq 'attrib action) + (memq 'create action) (memq 'modify action) (memq 'moved-to action)))) (when (featurep 'w32notify) (cl-assert (eq 'modified action))) ------------------------------------------------------------ revno: 112668 author: Daiki Ueno committer: Katsumi Yamaoka branch nick: trunk timestamp: Wed 2013-05-22 13:18:40 +0000 message: lisp/gnus/mml2015.el (mml2015-epg-sign): Make sure to insert newline after the signed data to conform the standard (Bug#14232) diff: === modified file 'lisp/gnus/ChangeLog' --- lisp/gnus/ChangeLog 2013-05-20 22:37:06 +0000 +++ lisp/gnus/ChangeLog 2013-05-22 13:18:40 +0000 @@ -1,3 +1,8 @@ +2013-05-22 Daiki Ueno + + * mml2015.el (mml2015-epg-sign): Make sure to insert newline after the + signed data to conform the standard. (Bug#14232) + 2013-05-20 Adam Sjøgren * gnus-spec.el (gnus-parse-complex-format): Use unicode escape for left === modified file 'lisp/gnus/mml2015.el' --- lisp/gnus/mml2015.el 2013-05-09 06:46:51 +0000 +++ lisp/gnus/mml2015.el 2013-05-22 13:18:40 +0000 @@ -1085,6 +1085,10 @@ (epg-context-set-passphrase-callback context #'mml2015-epg-passphrase-callback)) + ;; Signed data must end with a newline (RFC 3156, 5). + (goto-char (point-max)) + (unless (bolp) + (insert "\n")) (condition-case error (setq signature (epg-sign-string context (buffer-string) t) mml2015-epg-secret-key-id-list nil) ------------------------------------------------------------ revno: 112667 committer: Glenn Morris branch nick: trunk timestamp: Wed 2013-05-22 00:50:30 -0700 message: Tweak byte-compile-file-form-autoload warnings * emacs-lisp/bytecomp.el (byte-compile-file-form-autoload): Always delete the autoloaded function from the noruntime and unresolved functions lists. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-05-22 07:07:19 +0000 +++ lisp/ChangeLog 2013-05-22 07:50:30 +0000 @@ -1,5 +1,9 @@ 2013-05-22 Glenn Morris + * emacs-lisp/bytecomp.el (byte-compile-file-form-autoload): + Always delete the autoloaded function from the noruntime and + unresolved functions lists. + * allout.el: No need to load epa, epg, overlay when compiling. (epg-context-set-passphrase-callback, epg-list-keys) (epg-decrypt-string, epg-encrypt-string, epg-user-id-string) === modified file 'lisp/emacs-lisp/bytecomp.el' --- lisp/emacs-lisp/bytecomp.el 2013-05-08 15:06:28 +0000 +++ lisp/emacs-lisp/bytecomp.el 2013-05-22 07:50:30 +0000 @@ -2213,13 +2213,15 @@ (when (and (consp (nth 1 form)) (eq (car (nth 1 form)) 'quote) (consp (cdr (nth 1 form))) - (symbolp (nth 1 (nth 1 form))) - ;; Don't add it if it's already defined. Otherwise, it might - ;; hide the actual definition. - (not (fboundp (nth 1 (nth 1 form))))) - (push (cons (nth 1 (nth 1 form)) - (cons 'autoload (cdr (cdr form)))) - byte-compile-function-environment) + (symbolp (nth 1 (nth 1 form)))) + ;; Don't add it if it's already defined. Otherwise, it might + ;; hide the actual definition. However, do remove any entry from + ;; byte-compile-noruntime-functions, in case we have an autoload + ;; of foo-func following an (eval-when-compile (require 'foo)). + (unless (fboundp (nth 1 (nth 1 form))) + (push (cons (nth 1 (nth 1 form)) + (cons 'autoload (cdr (cdr form)))) + byte-compile-function-environment)) ;; If an autoload occurs _before_ the first call to a function, ;; byte-compile-callargs-warn does not add an entry to ;; byte-compile-unresolved-functions. Here we mimic the logic @@ -2227,11 +2229,14 @@ ;; autoload comes _after_ the function call. ;; Alternatively, similar logic could go in ;; byte-compile-warn-about-unresolved-functions. - (or (memq (nth 1 (nth 1 form)) byte-compile-noruntime-functions) - (setq byte-compile-unresolved-functions - (delq (assq (nth 1 (nth 1 form)) - byte-compile-unresolved-functions) - byte-compile-unresolved-functions)))) + (if (memq (nth 1 (nth 1 form)) byte-compile-noruntime-functions) + (setq byte-compile-noruntime-functions + (delq (nth 1 (nth 1 form)) byte-compile-noruntime-functions) + byte-compile-noruntime-functions) + (setq byte-compile-unresolved-functions + (delq (assq (nth 1 (nth 1 form)) + byte-compile-unresolved-functions) + byte-compile-unresolved-functions)))) (if (stringp (nth 3 form)) form ;; No doc string, so we can compile this as a normal form. ------------------------------------------------------------ revno: 112666 committer: Glenn Morris branch nick: trunk timestamp: Wed 2013-05-22 00:30:44 -0700 message: Add some declarations to url-handlers.el * lisp/url/url-handlers.el (mm-save-part-to-file, mm-destroy-parts) (mm-decode-string, mail-content-type-get): Declare. diff: === modified file 'lisp/url/ChangeLog' --- lisp/url/ChangeLog 2013-05-21 07:25:14 +0000 +++ lisp/url/ChangeLog 2013-05-22 07:30:44 +0000 @@ -1,3 +1,8 @@ +2013-05-22 Glenn Morris + + * url-handlers.el (mm-save-part-to-file, mm-destroy-parts) + (mm-decode-string, mail-content-type-get): Declare. + 2013-05-21 Glenn Morris * url-dav.el (url-http): Require it. === modified file 'lisp/url/url-handlers.el' --- lisp/url/url-handlers.el 2013-01-01 09:11:05 +0000 +++ lisp/url/url-handlers.el 2013-05-22 07:30:44 +0000 @@ -28,16 +28,20 @@ ;; (require 'url-util) (eval-when-compile (require 'mm-decode)) ;; (require 'mailcap) -;; The following functions in the byte compiler's warnings are known not -;; to cause any real problem for the following reasons: -;; - mm-save-part-to-file, mm-destroy-parts: always used -;; after mm-dissect-buffer and defined in the same file. ;; The following are autoloaded instead of `require'd to avoid eagerly ;; loading all of URL when turning on url-handler-mode in the .emacs. (autoload 'url-expand-file-name "url-expand" "Convert url to a fully specified url, and canonicalize it.") (autoload 'mm-dissect-buffer "mm-decode" "Dissect the current buffer and return a list of MIME handles.") (autoload 'url-scheme-get-property "url-methods" "Get property of a URL SCHEME.") +;; Always used after mm-dissect-buffer and defined in the same file. +(declare-function mm-save-part-to-file "mm-decode" (handle file)) +(declare-function mm-destroy-parts "mm-decode" (handles)) +;; mm-decode loads mm-bodies. +(declare-function mm-decode-string "mm-bodies" (string charset)) +;; mm-decode loads mail-parse. +(declare-function mail-content-type-get "mail-parse" (ct attribute)) + ;; Implementation status ;; --------------------- ;; Function Status ------------------------------------------------------------ revno: 112665 committer: Glenn Morris branch nick: trunk timestamp: Wed 2013-05-22 00:07:19 -0700 message: Silence allout.el compilation * lisp/allout.el: No need to load epa, epg, overlay when compiling. (epg-context-set-passphrase-callback, epg-list-keys) (epg-decrypt-string, epg-encrypt-string, epg-user-id-string) (epg-key-user-id-list): Declare. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-05-22 03:21:30 +0000 +++ lisp/ChangeLog 2013-05-22 07:07:19 +0000 @@ -1,5 +1,10 @@ 2013-05-22 Glenn Morris + * allout.el: No need to load epa, epg, overlay when compiling. + (epg-context-set-passphrase-callback, epg-list-keys) + (epg-decrypt-string, epg-encrypt-string, epg-user-id-string) + (epg-key-user-id-list): Declare. + * emulation/viper-cmd.el (viper-set-searchstyle-toggling-macros) (viper-set-parsing-style-toggling-macro) (viper-set-emacs-state-searchstyle-macros): === modified file 'lisp/allout.el' --- lisp/allout.el 2013-01-02 16:13:04 +0000 +++ lisp/allout.el 2013-05-22 07:07:19 +0000 @@ -77,11 +77,6 @@ ;;;_* Dependency loads (require 'overlay) (eval-when-compile - ;; Most of the requires here are for stuff covered by autoloads, which - ;; byte-compiling doesn't trigger. - (require 'epg) - (require 'epa) - (require 'overlay) ;; `cl' is required for `assert'. `assert' is not covered by a standard ;; autoload, but it is a macro, so that eval-when-compile is sufficient ;; to byte-compile it in, or to do the require when the buffer evalled. @@ -6046,6 +6041,16 @@ (run-hook-with-args 'allout-structure-added-functions bullet-pos subtree-end)))) + +(declare-function epg-context-set-passphrase-callback "epg" + (context passphrase-callback)) +(declare-function epg-list-keys "epg" (context &optional name mode)) +(declare-function epg-decrypt-string "epg" (context cipher)) +(declare-function epg-encrypt-string "epg" + (context plain recipients &optional sign always-trust)) +(declare-function epg-user-id-string "epg" (user-id)) +(declare-function epg-key-user-id-list "epg" (key)) + ;;;_ > allout-encrypt-string (text decrypt allout-buffer keymode-cue ;;; &optional rejected) (defun allout-encrypt-string (text decrypt allout-buffer keymode-cue ------------------------------------------------------------ revno: 112664 committer: Glenn Morris branch nick: trunk timestamp: Tue 2013-05-21 20:21:30 -0700 message: Small viper clean-up * lisp/emulation/viper-cmd.el (viper-set-searchstyle-toggling-macros) (viper-set-parsing-style-toggling-macro) (viper-set-emacs-state-searchstyle-macros): Use called-interactively-p on Emacs. (viper-looking-back): Make it an obsolete alias. Update callers. * lisp/emulation/viper-ex.el: Load viper-keym, not viper-cmd. Use looking-back rather than viper-looking-back. (viper-tmp-insert-at-eob, viper-enlarge-region) (viper-read-string-with-history, viper-register-to-point) (viper-append-to-register, viper-change-state-to-vi) (viper-backward-char-carefully, viper-forward-char-carefully) (viper-Put-back, viper-put-back, viper-add-newline-at-eob-if-necessary) (viper-change-state-to-emacs): Declare. * lisp/emulation/viper-macs.el: Load viper-mous, viper-ex, not viper-cmd. (viper-change-state-to-insert, viper-change-state-to-vi): Declare. * lisp/emulation/viper-mous.el: Do not load viper-cmd. (viper-backward-char-carefully, viper-forward-char-carefully) (viper-forward-word, viper-adjust-window): Declare. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-05-22 03:17:22 +0000 +++ lisp/ChangeLog 2013-05-22 03:21:30 +0000 @@ -1,5 +1,24 @@ 2013-05-22 Glenn Morris + * emulation/viper-cmd.el (viper-set-searchstyle-toggling-macros) + (viper-set-parsing-style-toggling-macro) + (viper-set-emacs-state-searchstyle-macros): + Use called-interactively-p on Emacs. + (viper-looking-back): Make it an obsolete alias. Update callers. + * emulation/viper-ex.el: Load viper-keym, not viper-cmd. + Use looking-back rather than viper-looking-back. + (viper-tmp-insert-at-eob, viper-enlarge-region) + (viper-read-string-with-history, viper-register-to-point) + (viper-append-to-register, viper-change-state-to-vi) + (viper-backward-char-carefully, viper-forward-char-carefully) + (viper-Put-back, viper-put-back, viper-add-newline-at-eob-if-necessary) + (viper-change-state-to-emacs): Declare. + * emulation/viper-macs.el: Load viper-mous, viper-ex, not viper-cmd. + (viper-change-state-to-insert, viper-change-state-to-vi): Declare. + * emulation/viper-mous.el: Do not load viper-cmd. + (viper-backward-char-carefully, viper-forward-char-carefully) + (viper-forward-word, viper-adjust-window): Declare. + * vc/ediff.el (ediff-version): Use called-interactively-p on Emacs. * progmodes/idlw-help.el (idlwave-help-fontify): === modified file 'lisp/emulation/viper-cmd.el' --- lisp/emulation/viper-cmd.el 2013-03-12 02:08:21 +0000 +++ lisp/emulation/viper-cmd.el 2013-05-22 03:21:30 +0000 @@ -3781,9 +3781,9 @@ "///" 'vi-state [2 (meta x) v i p e r - t o g g l e - s e a r c h - s t y l e return] scope) - ;; XEmacs has no called-interactively-p - ;; (if (called-interactively-p 'interactive) - (if (interactive-p) + (if (if (featurep 'xemacs) + (interactive-p) + (called-interactively-p 'interactive)) (message "// and /// now toggle case-sensitivity and regexp search"))) (viper-unrecord-kbd-macro "//" 'vi-state) @@ -3806,10 +3806,9 @@ "%%%" 'vi-state [(meta x) v i p e r - t o g g l e - p a r s e - s e x p - i g n o r e - c o m m e n t s return] 't) - ;; XEmacs has no called-interactively-p. And interactive-p - ;; works fine here. - ;; (if (called-interactively-p 'interactive) - (if (interactive-p) + (if (if (featurep 'xemacs) + (interactive-p) + (called-interactively-p 'interactive)) (message "%%%%%% now toggles whether comments should be parsed for matching parentheses"))) (viper-unrecord-kbd-macro "%%%" 'vi-state)))) @@ -3838,10 +3837,9 @@ "///" 'emacs-state [2 (meta x) v i p e r - t o g g l e - s e a r c h - s t y l e return] (or arg-majormode major-mode)) - ;; called-interactively-p does not work for - ;; XEmacs. interactive-p is ok here. - ;; (if (called-interactively-p 'interactive) - (if (interactive-p) + (if (if (featurep 'xemacs) + (interactive-p) + (called-interactively-p 'interactive)) (message "// and /// now toggle case-sensitivity and regexp search."))) (viper-unrecord-kbd-macro "//" 'emacs-state) @@ -4608,10 +4606,7 @@ ;; Input Mode Indentation -;; Returns t, if the string before point matches the regexp STR. -(defsubst viper-looking-back (str) - (and (save-excursion (re-search-backward str nil t)) - (= (point) (match-end 0)))) +(define-obsolete-function-alias 'viper-looking-back 'looking-back "24.4") (defun viper-forward-indent () @@ -4625,7 +4620,7 @@ (interactive) (if viper-cted (let ((p (point)) (c (current-column)) bol (indent t)) - (if (viper-looking-back "[0^]") + (if (looking-back "[0^]") (progn (if (eq ?^ (preceding-char)) (setq viper-preserve-indent t)) @@ -4637,7 +4632,7 @@ (delete-region (point) p) (if indent (indent-to (- c viper-shift-width))) - (if (or (bolp) (viper-looking-back "[^ \t]")) + (if (or (bolp) (looking-back "[^ \t]")) (setq viper-cted nil))))) ;; do smart indent === modified file 'lisp/emulation/viper-ex.el' --- lisp/emulation/viper-ex.el 2013-01-01 09:11:05 +0000 +++ lisp/emulation/viper-ex.el 2013-05-22 03:21:30 +0000 @@ -39,14 +39,7 @@ (defvar viper-case-fold-search) (defvar explicit-shell-file-name) (defvar compile-command) - -;; loading happens only in non-interactive compilation -;; in order to spare non-viperized emacs from being viperized -(if noninteractive - (eval-when-compile - (if (not (featurep 'viper-cmd)) - (require 'viper-cmd)) - )) +(require 'viper-keym) ;; end pacifier (require 'viper-util) @@ -462,7 +455,7 @@ (while (and (not (eolp)) cont) ;;(re-search-forward "[^/]*/") (re-search-forward "[^/]*\\(/\\|\n\\)") - (if (not (viper-looking-back "[^\\\\]\\(\\\\\\\\\\)*\\\\/")) + (if (not (looking-back "[^\\\\]\\(\\\\\\\\\\)*\\\\/")) (setq cont nil)))) (backward-char 1) (setq ex-token (buffer-substring (point) (mark t))) @@ -475,7 +468,7 @@ (while (and (not (eolp)) cont) ;;(re-search-forward "[^\\?]*\\?") (re-search-forward "[^\\?]*\\(\\?\\|\n\\)") - (if (not (viper-looking-back "[^\\\\]\\(\\\\\\\\\\)*\\\\\\?")) + (if (not (looking-back "[^\\\\]\\(\\\\\\\\\\)*\\\\\\?")) (setq cont nil)) (backward-char 1) (if (not (looking-at "\n")) (forward-char 1)))) @@ -553,11 +546,13 @@ (setq viper-ex-work-buf (get-buffer-create viper-ex-work-buf-name)) (set-buffer viper-ex-work-buf) (goto-char (point-max))) - (cond ((viper-looking-back quit-regex1) (exit-minibuffer)) - ((viper-looking-back stay-regex) (insert " ")) - ((viper-looking-back quit-regex2) (exit-minibuffer)) + (cond ((looking-back quit-regex1) (exit-minibuffer)) + ((looking-back stay-regex) (insert " ")) + ((looking-back quit-regex2) (exit-minibuffer)) (t (insert " "))))) +(declare-function viper-tmp-insert-at-eob "viper-cmd" (msg)) + ;; complete Ex command (defun ex-cmd-complete () (interactive) @@ -568,14 +563,14 @@ save-pos (point))) (if (or (= dist 0) - (viper-looking-back "\\([ \t]*['`][ \t]*[a-z]*\\)") - (viper-looking-back + (looking-back "\\([ \t]*['`][ \t]*[a-z]*\\)") + (looking-back "^[ \t]*[a-zA-Z!=>&~][ \t]*[/?]*[ \t]+[a-zA-Z!=>&~]+")) ;; Preceding characters are not the ones allowed in an Ex command ;; or we have typed past command name. ;; Note: we didn't do parsing, so there can be surprises. - (if (or (viper-looking-back "[a-zA-Z!=>&~][ \t]*[/?]*[ \t]*") - (viper-looking-back "\\([ \t]*['`][ \t]*[a-z]*\\)") + (if (or (looking-back "[a-zA-Z!=>&~][ \t]*[/?]*[ \t]*") + (looking-back "\\([ \t]*['`][ \t]*[a-z]*\\)") (looking-at "[^ \t\n\C-m]")) nil (with-output-to-temp-buffer "*Completions*" @@ -605,6 +600,11 @@ ))) +(declare-function viper-enlarge-region "viper-cmd" (beg end)) +(declare-function viper-read-string-with-history "viper-cmd" + (prompt &optional viper-initial history-var + default keymap init-message)) + ;; Read Ex commands ;; ARG is a prefix argument. If given, the ex command runs on the region ;;(without the user having to specify the address :a,b @@ -746,7 +746,7 @@ (if (member ex-token '("global" "vglobal")) (error "Missing closing delimiter for global regexp") (goto-char (point-max)))) - (if (not (viper-looking-back + (if (not (looking-back (format "[^\\\\]\\(\\\\\\\\\\)*\\\\%c" c))) (setq cont nil) ;; we are at an escaped delimiter: unescape it and continue @@ -826,6 +826,9 @@ (if ans (setq address ans)))))) address)) +(declare-function viper-register-to-point "viper-cmd" + (char &optional enforce-buffer)) + ;; Returns an address as a point (defun viper-get-ex-address-subr (old-address dot) (let ((address nil)) @@ -960,7 +963,7 @@ (while (re-search-forward "%\\|#" nil t) (let ((data (match-data)) (char (buffer-substring (match-beginning 0) (match-end 0)))) - (if (viper-looking-back (concat "\\\\" char)) + (if (looking-back (concat "\\\\" char)) (replace-match char) (store-match-data data) (if (string= char "%") @@ -986,7 +989,7 @@ (get-buffer-create viper-ex-work-buf-name)) (skip-chars-forward " \t") (if (looking-at "!") - (if (and (not (viper-looking-back "[ \t]")) + (if (and (not (looking-back "[ \t]")) ;; read doesn't have a corresponding :r! form, so ! is ;; immediately interpreted as a shell command. (not (string= ex-token "read"))) @@ -1063,7 +1066,7 @@ (cond ((ex-cmd-accepts-multiple-files-p ex-token) (exit-minibuffer)) ;; apparently the argument to an Ex command is ;; supposed to be a shell command - ((viper-looking-back "^[ \t]*!.*") + ((looking-back "^[ \t]*!.*") (setq ex-cmdfile t) (insert " ")) (t @@ -1202,6 +1205,8 @@ (forward-line 1)) (insert (current-kill 0)))) +(declare-function viper-append-to-register "viper-cmd" (reg start end)) + ;; Ex delete command (defun ex-delete () (viper-default-ex-addresses) @@ -1238,6 +1243,7 @@ (kill-region (point) (mark t)))))) +(declare-function viper-change-state-to-vi "viper-cmd" ()) ;; Ex edit command ;; In Viper, `e' and `e!' behave identically. In both cases, the user is @@ -1308,6 +1314,8 @@ )) +(declare-function viper-backward-char-carefully "viper-cmd" (&optional arg)) + ;; Ex global command ;; This is executed in response to: ;; :global "pattern" ex-command @@ -1416,6 +1424,8 @@ (goto-char (1- point)) (beginning-of-line))) +(declare-function viper-forward-char-carefully "viper-cmd" (&optional arg)) + (defun ex-line-subr (com beg end) (cond ((string= com "join") (goto-char (min beg end)) @@ -1566,6 +1576,9 @@ (message "Autosaving all buffers that need to be saved...") (do-auto-save t)) +(declare-function viper-Put-back "viper-cmd" (arg)) +(declare-function viper-put-back "viper-cmd" (arg)) + ;; Ex put (defun ex-put () (let ((point (if (null ex-addresses) (point) (car ex-addresses)))) @@ -1589,6 +1602,8 @@ (kill-buffer (current-buffer)))) +(declare-function viper-add-newline-at-eob-if-necessary "viper-cmd" ()) + ;; Ex read command ;; ex-read doesn't support wildcards, because file completion is a better ;; mechanism. We also don't support # and % (except in :r @@ -1975,6 +1990,8 @@ (beginning-of-line) (if opt-c (message "done")))) +(declare-function viper-change-state-to-emacs "viper-cmd" ()) + ;; Ex tag command (defun ex-tag () (let (tag) === modified file 'lisp/emulation/viper-macs.el' --- lisp/emulation/viper-macs.el 2013-01-01 09:11:05 +0000 +++ lisp/emulation/viper-macs.el 2013-05-22 03:21:30 +0000 @@ -31,13 +31,8 @@ (defvar viper-custom-file-name) (defvar viper-current-state) (defvar viper-fast-keyseq-timeout) - -;; loading happens only in non-interactive compilation -;; in order to spare non-viperized emacs from being viperized -(if noninteractive - (eval-when-compile - (require 'viper-cmd) - )) +(require 'viper-mous) +(require 'viper-ex) ;; end pacifier (require 'viper-util) @@ -83,6 +78,8 @@ ;;; Code +(declare-function viper-change-state-to-insert "viper-cmd" ()) + ;; Ex map command (defun ex-map () (let ((mod-char "") @@ -277,6 +274,8 @@ )) +(declare-function viper-change-state-to-vi "viper-cmd" ()) + ;; Terminate a Vi kbd macro. ;; optional argument IGNORE, if t, indicates that we are dealing with an ;; existing macro that needs to be registered, but there is no need to === modified file 'lisp/emulation/viper-mous.el' --- lisp/emulation/viper-mous.el 2013-01-01 09:11:05 +0000 +++ lisp/emulation/viper-mous.el 2013-05-22 03:21:30 +0000 @@ -35,16 +35,9 @@ (defvar viper-s-string) (defvar viper-re-search) -;; loading happens only in non-interactive compilation -;; in order to spare non-viperized emacs from being viperized -(if noninteractive - (eval-when-compile - (require 'viper-cmd) - )) +(require 'viper-util) ;; end pacifier -(require 'viper-util) - (defgroup viper-mouse nil "Support for Viper special mouse-bound commands." @@ -140,6 +133,10 @@ (posn-point (event-start click)))) + +(declare-function viper-backward-char-carefully "viper-cmd" (&optional arg)) +(declare-function viper-forward-char-carefully "viper-cmd" (&optional arg)) + (defun viper-surrounding-word (count click-count) "Returns word surrounding point according to a heuristic. COUNT indicates how many regions to return. @@ -335,6 +332,8 @@ viper-current-click-count 0)))) +(declare-function viper-forward-word "viper-cmd" (arg)) +(declare-function viper-adjust-window "viper-cmd" ()) (defun viper-mouse-click-search-word (click arg) "Find the word clicked or double-clicked on. Word may be in another window. ------------------------------------------------------------ Use --include-merged or -n0 to see merged revisions.