Now on revision 112729. ------------------------------------------------------------ revno: 112729 fixes bug: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=14446 committer: Stefan Monnier branch nick: trunk timestamp: Fri 2013-05-24 23:08:04 -0400 message: * lisp/emacs-lisp/lisp.el (lisp-completion-at-point): Don't burp at EOB. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-05-25 03:00:13 +0000 +++ lisp/ChangeLog 2013-05-25 03:08:04 +0000 @@ -2,6 +2,7 @@ * emacs-lisp/lisp.el (lisp-completion-at-point): Don't use error-completion on the first 2 args of condition-case (bug#14446). + Don't burp at EOB. 2013-05-25 Leo Liu === modified file 'lisp/emacs-lisp/lisp.el' --- lisp/emacs-lisp/lisp.el 2013-05-25 03:00:13 +0000 +++ lisp/emacs-lisp/lisp.el 2013-05-25 03:08:04 +0000 @@ -726,7 +726,7 @@ (let ((tail (if (null (car table-etc)) (cdr table-etc) (cons - (if (memq (char-syntax (char-after end)) + (if (memq (char-syntax (or (char-after end) ?\s)) '(?\s ?>)) (cadr table-etc) (apply-partially 'completion-table-with-terminator ------------------------------------------------------------ revno: 112728 fixes bug: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=14446 committer: Stefan Monnier branch nick: trunk timestamp: Fri 2013-05-24 23:00:13 -0400 message: * lisp/emacs-lisp/lisp.el (lisp-completion-at-point): Don't use error-completion on the first 2 args of condition-case. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-05-25 02:40:33 +0000 +++ lisp/ChangeLog 2013-05-25 03:00:13 +0000 @@ -1,3 +1,8 @@ +2013-05-25 Stefan Monnier + + * emacs-lisp/lisp.el (lisp-completion-at-point): Don't use + error-completion on the first 2 args of condition-case (bug#14446). + 2013-05-25 Leo Liu * comint.el (comint-previous-matching-input): Do not flood the === modified file 'lisp/emacs-lisp/lisp.el' --- lisp/emacs-lisp/lisp.el 2013-04-17 20:52:02 +0000 +++ lisp/emacs-lisp/lisp.el 2013-05-25 03:00:13 +0000 @@ -714,7 +714,11 @@ (append macro-declarations-alist defun-declarations-alist))))) - ((or `condition-case `condition-case-unless-debug) + ((and (or `condition-case `condition-case-unless-debug) + (guard (save-excursion + (ignore-errors + (forward-sexp 2) + (< (point) beg))))) (list t obarray :predicate (lambda (sym) (get sym 'error-conditions)))) (_ (list nil obarray #'fboundp)))))))) ------------------------------------------------------------ revno: 112727 committer: Leo Liu branch nick: trunk timestamp: Sat 2013-05-25 10:40:33 +0800 message: * comint.el (comint-previous-matching-input): Do not flood the *Messages* buffer with trivial messages. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-05-25 02:21:49 +0000 +++ lisp/ChangeLog 2013-05-25 02:40:33 +0000 @@ -1,3 +1,8 @@ +2013-05-25 Leo Liu + + * comint.el (comint-previous-matching-input): Do not flood the + *Messages* buffer with trivial messages. + 2013-05-25 Stefan Monnier * progmodes/flymake.el (flymake-nop): Don't return a string. === modified file 'lisp/comint.el' --- lisp/comint.el 2013-05-18 19:38:35 +0000 +++ lisp/comint.el 2013-05-25 02:40:33 +0000 @@ -1190,7 +1190,8 @@ (funcall comint-get-old-input))) (setq comint-input-ring-index pos) (unless isearch-mode - (message "History item: %d" (1+ pos))) + (let ((message-log-max nil)) ; Do not write to *Messages*. + (message "History item: %d" (1+ pos)))) (comint-delete-input) (insert (ring-ref comint-input-ring pos))))) ------------------------------------------------------------ revno: 112726 fixes bug: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=14465 committer: Stefan Monnier branch nick: trunk timestamp: Fri 2013-05-24 22:21:49 -0400 message: * lisp/simple.el (read--expression): New function, extracted from eval-expression. Set completion-at-point-functions. (eval-expression, eval-minibuffer): Use it. * lisp/progmodes/flymake.el (flymake-nop): Don't return a string. (flymake-set-at): Fix typo. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-05-25 01:26:12 +0000 +++ lisp/ChangeLog 2013-05-25 02:21:49 +0000 @@ -1,3 +1,12 @@ +2013-05-25 Stefan Monnier + + * progmodes/flymake.el (flymake-nop): Don't return a string. + (flymake-set-at): Fix typo. + + * simple.el (read--expression): New function, extracted from + eval-expression. Set completion-at-point-functions (bug#14465). + (eval-expression, eval-minibuffer): Use it. + 2013-05-25 Xue Fuqiao * progmodes/flymake.el (flymake-save-buffer-in-file) === modified file 'lisp/progmodes/flymake.el' --- lisp/progmodes/flymake.el 2013-05-25 01:26:12 +0000 +++ lisp/progmodes/flymake.el 2013-05-25 02:21:49 +0000 @@ -170,7 +170,8 @@ (if (featurep 'xemacs) (progn (defun flymake-nop () - "Do nothing.") + "Do nothing." + nil) (defun flymake-make-xemacs-menu (menu-data) "Return a menu specifier using MENU-DATA." @@ -251,15 +252,14 @@ (defun flymake-ins-after (list pos val) "Insert VAL into LIST after position POS. POS counts from zero." - (let ((tmp (copy-sequence list))) ; Bind `tmp' to a copy of LIST + (let ((tmp (copy-sequence list))) (setcdr (nthcdr pos tmp) (cons val (nthcdr (1+ pos) tmp))) tmp)) (defun flymake-set-at (list pos val) -) -"Set VAL at position POS in LIST. + "Set VAL at position POS in LIST. POS counts from zero." -(let ((tmp (copy-sequence list))) ; Bind `tmp' to a copy of LIST + (let ((tmp (copy-sequence list))) (setcar (nthcdr pos tmp) val) tmp)) === modified file 'lisp/simple.el' --- lisp/simple.el 2013-05-23 21:01:47 +0000 +++ lisp/simple.el 2013-05-25 02:21:49 +0000 @@ -1268,9 +1268,7 @@ \(INITIAL-CONTENTS can also be a cons of a string and an integer. Such arguments are used as in `read-from-minibuffer'.)" ;; Used for interactive spec `X'. - ;; FIXME: Share code with `eval-expression'. - (eval (read-from-minibuffer prompt initial-contents read-expression-map - t read-expression-history))) + (eval (read--expression prompt initial-contents))) (defvar minibuffer-completing-symbol nil "Non-nil means completing a Lisp symbol in the minibuffer.") @@ -1322,6 +1320,17 @@ (defvar eval-expression-minibuffer-setup-hook nil "Hook run by `eval-expression' when entering the minibuffer.") +(defun read--expression (prompt &optional initial-contents) + (let ((minibuffer-completing-symbol t)) + (minibuffer-with-setup-hook + (lambda () + (add-hook 'completion-at-point-functions + #'lisp-completion-at-point nil t) + (run-hooks 'eval-expression-minibuffer-setup-hook)) + (read-from-minibuffer prompt initial-contents + read-expression-map t + 'read-expression-history)))) + ;; We define this, rather than making `eval' interactive, ;; for the sake of completion of names like eval-region, eval-buffer. (defun eval-expression (exp &optional insert-value) @@ -1338,12 +1347,7 @@ If `eval-expression-debug-on-error' is non-nil, which is the default, this command arranges for all errors to enter the debugger." (interactive - (list (let ((minibuffer-completing-symbol t)) - (minibuffer-with-setup-hook - (lambda () (run-hooks 'eval-expression-minibuffer-setup-hook)) - (read-from-minibuffer "Eval: " - nil read-expression-map t - 'read-expression-history))) + (list (read--expression "Eval: ") current-prefix-arg)) (if (null eval-expression-debug-on-error) ------------------------------------------------------------ revno: 112725 committer: Xue Fuqiao branch nick: trunk timestamp: Sat 2013-05-25 10:17:54 +0800 message: * refcards/refcard.tex: Refine some entries. (Bug#14087) diff: === modified file 'etc/ChangeLog' --- etc/ChangeLog 2013-05-25 01:43:02 +0000 +++ etc/ChangeLog 2013-05-25 02:17:54 +0000 @@ -1,5 +1,7 @@ 2013-05-25 Xue Fuqiao + * refcards/refcard.tex: Refine some entries. (Bug#14087) + * refcards/dired-ref.tex: Refine some entries. (Bug#14072) 2013-05-24 Fabrice Niessen === modified file 'etc/refcards/refcard.tex' --- etc/refcards/refcard.tex 2013-01-01 09:11:05 +0000 +++ etc/refcards/refcard.tex 2013-05-25 02:17:54 +0000 @@ -355,6 +355,7 @@ \key{scroll current line to center, top, bottom}{C-l} \key{goto line}{M-g g} +\key{goto char}{M-g c} \key{back to indentation}{M-m} \section{Killing and Deleting} @@ -504,6 +505,7 @@ \key{check spelling of current word}{M-\$} \metax{check spelling of all words in region}{M-x ispell-region} \metax{check spelling of entire buffer}{M-x ispell-buffer} +\metax{toggle on-the-fly spell checking}{M-x flyspell-mode} \section{Tags} @@ -518,6 +520,7 @@ \section{Shells} \key{execute a shell command}{M-!} +\key{execute a shell command asynchronously}{M-\&} \key{run a shell command on the region}{M-|} \key{filter region through a shell command}{C-u M-|} \key{start a shell in window \kbd{*shell*}}{M-x shell} @@ -554,9 +557,12 @@ \key{zero or more repeats}{*} \key{one or more repeats}{+} \key{zero or one repeat}{?} +\key{quote special characters}{\\} \key{quote regular expression special character {\it c\/}}{\\{\it c}} \key{alternative (``or'')}{\\|} \key{grouping}{\\( {\rm$\ldots$} \\)} +\key{shy grouping}{\\(:? {\rm$\ldots$} \\)} +\key{explicit numbered grouping}{\\(:NUM {\rm$\ldots$} \\)} \key{same text as {\it n\/}th group}{\\{\it n}} \key{at word break}{\\b} \key{not at word break}{\\B} @@ -565,12 +571,15 @@ \threecol{{\bf entity}}{{\bf match start}}{{\bf match end}} \threecol{line}{^}{\$} \threecol{word}{\\<}{\\>} +\threecol{symbol}{\\_<}{\\_>} \threecol{buffer}{\\`}{\\'} +%% FIXME: "`" and "'" isn't displayed correctly in the output PDF file \threecol{{\bf class of characters}}{{\bf match these}}{{\bf match others}} \threecol{explicit set}{[ {\rm$\ldots$} ]}{[^ {\rm$\ldots$} ]} \threecol{word-syntax character}{\\w}{\\W} \threecol{character with syntax {\it c}}{\\s{\it c}}{\\S{\it c}} +\threecol{character with category {\it c}}{\\c{\it c}}{\\C{\it c}} } \section{International Character Sets} @@ -592,7 +601,7 @@ \key{scroll forward}{SPC} \key{scroll reverse}{DEL} -\key{beginning of node}{. {\rm (dot)}} +\key{beginning of node}{b} Moving between nodes: @@ -640,7 +649,7 @@ \key{eval current {\bf defun}}{C-M-x} \metax{eval {\bf region}}{M-x eval-region} \key{read and eval minibuffer}{M-:} -\metax{load from standard system directory}{M-x load-library} +\metax{load a Lisp library from {\bf load-path}}{M-x load-library} \section{Simple Customization} @@ -669,7 +678,7 @@ \beginexample% (defun this-line-to-top-of-window (line) "Reposition current line to top of window. -With ARG, put point on line ARG." +With prefix argument LINE, put point on LINE." (interactive "P") (recenter (if (null line) 0 @@ -677,7 +686,7 @@ \endexample The \kbd{interactive} spec says how to read arguments interactively. -Type \kbd{C-h f interactive} for more details. +Type \kbd{C-h f interactive RET} for more details. \copyrightnotice ------------------------------------------------------------ revno: 112724 committer: Leo Liu branch nick: trunk timestamp: Sat 2013-05-25 10:03:03 +0800 message: * indent/octave.m: Add tests for %!, # and ### comments diff: === modified file 'test/ChangeLog' --- test/ChangeLog 2013-05-23 11:18:43 +0000 +++ test/ChangeLog 2013-05-25 02:03:03 +0000 @@ -1,3 +1,7 @@ +2013-05-25 Leo Liu + + * indent/octave.m: Add tests for %!, # and ### comments. + 2013-05-23 Kenichi Handa * automated/decoder-tests.el: New file. === modified file 'test/indent/octave.m' --- test/indent/octave.m 2013-05-24 19:37:55 +0000 +++ test/indent/octave.m 2013-05-25 02:03:03 +0000 @@ -1,5 +1,5 @@ ## -*- mode: octave; coding: utf-8 -*- - +0; # Don't make this a function file function res = tcomp (fn) %% res = tcomp (fn) %% imports components and rearranges them. @@ -2310,7 +2310,9 @@ isglob = true; ext(end) = []; else - isglob = false; + isglob = false; # I am a test + # me too +### I shall align to column 0 endif pos = findstr (nm, ext); if (pos) @@ -2322,3 +2324,17 @@ endif endfor endfunction + +%!assert(norm(logm([1 -1;0 1]) - [0 -1; 0 0]) < 1e-5); +%!assert(norm(expm(logm([-1 2 ; 4 -1])) - [-1 2 ; 4 -1]) < 1e-5); +%!assert(logm([1 -1 -1;0 1 -1; 0 0 1]), [0 -1 -1.5; 0 0 -1; 0 0 0], 1e-5); +%!assert (logm (expm ([0 1i; -1i 0])), [0 1i; -1i 0], 10 * eps) + +%% Test input validation +%!error logm (); +%!error logm (1, 2, 3); +%!error logm([1 0;0 1; 2 2]); + +%!assert (logm (10), log (10)) +%!assert (full (logm (eye (3))), logm (full (eye (3)))) +%!assert (full (logm (10*eye (3))), logm (full (10*eye (3))), 8*eps) ------------------------------------------------------------ revno: 112723 committer: Xue Fuqiao branch nick: trunk timestamp: Sat 2013-05-25 09:55:00 +0800 message: * callproc.c (call_process): Refine the doc string. (Bug#14045) diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2013-05-23 17:25:42 +0000 +++ src/ChangeLog 2013-05-25 01:55:00 +0000 @@ -1,3 +1,7 @@ +2013-05-25 Xue Fuqiao + + * callproc.c (call_process): Refine the doc string. (Bug#14045) + 2013-05-23 Stefan Monnier * keyboard.c: Apply keyboard decoding only to events that come directly === modified file 'src/callproc.c' --- src/callproc.c 2013-03-24 12:59:45 +0000 +++ src/callproc.c 2013-05-25 01:55:00 +0000 @@ -190,11 +190,11 @@ doc: /* Call PROGRAM synchronously in separate process. The remaining arguments are optional. The program's input comes from file INFILE (nil means `/dev/null'). -Insert output in BUFFER before point; t means current buffer; nil for BUFFER +Insert output in DESTINATION before point; t means current buffer; nil for DESTINATION means discard it; 0 means discard and don't wait; and `(:file FILE)', where FILE is a file name string, means that it should be written to that file \(if the file already exists it is overwritten). -BUFFER can also have the form (REAL-BUFFER STDERR-FILE); in that case, +DESTINATION can also have the form (REAL-BUFFER STDERR-FILE); in that case, REAL-BUFFER says what to do with standard output, as above, while STDERR-FILE says what to do with standard error in the child. STDERR-FILE may be nil (discard standard error output), @@ -207,12 +207,12 @@ signals a Lisp error. `call-process' reports errors in execution of the program only through its return and output. -If BUFFER is 0, `call-process' returns immediately with value nil. +If DESTINATION is 0, `call-process' returns immediately with value nil. Otherwise it waits for PROGRAM to terminate and returns a numeric exit status or a signal description string. If you quit, the process is killed with SIGINT, or SIGKILL if you quit again. -usage: (call-process PROGRAM &optional INFILE BUFFER DISPLAY &rest ARGS) */) +usage: (call-process PROGRAM &optional INFILE DESTINATION DISPLAY &rest ARGS) */) (ptrdiff_t nargs, Lisp_Object *args) { Lisp_Object infile, buffer, current_dir, path; ------------------------------------------------------------ revno: 112722 committer: Xue Fuqiao branch nick: trunk timestamp: Sat 2013-05-25 09:43:02 +0800 message: ChangeLog fix diff: === modified file 'etc/ChangeLog' --- etc/ChangeLog 2013-05-25 01:39:03 +0000 +++ etc/ChangeLog 2013-05-25 01:43:02 +0000 @@ -1,6 +1,6 @@ 2013-05-25 Xue Fuqiao - * refcards/dired-ref.tex: Refine some entries. + * refcards/dired-ref.tex: Refine some entries. (Bug#14072) 2013-05-24 Fabrice Niessen ------------------------------------------------------------ revno: 112721 committer: Xue Fuqiao branch nick: trunk timestamp: Sat 2013-05-25 09:39:03 +0800 message: * refcards/dired-ref.tex: Refine some entries. diff: === modified file 'etc/ChangeLog' --- etc/ChangeLog 2013-05-24 13:39:53 +0000 +++ etc/ChangeLog 2013-05-25 01:39:03 +0000 @@ -1,3 +1,7 @@ +2013-05-25 Xue Fuqiao + + * refcards/dired-ref.tex: Refine some entries. + 2013-05-24 Fabrice Niessen * themes/leuven-theme.el: Update theme. === modified file 'etc/refcards/dired-ref.tex' --- etc/refcards/dired-ref.tex 2013-01-01 09:11:05 +0000 +++ etc/refcards/dired-ref.tex 2013-05-25 01:39:03 +0000 @@ -302,8 +302,7 @@ \key{move to first child subdirectory}{M-C-d} \section{Mouse Commands} -\metax{visit file}{Mouse_Button_2} -\metax{popup menu}{Control-Mouse_Button_3} +\metax{visit file or directory}{Mouse_Button_2} \section{Immediate Actions on Files} @@ -326,7 +325,7 @@ \key{mark all directories}{* /} \key{mark all symlinks}{* @} \key{mark all executables}{* *} -\key{invert marking}{* t} +\key{invert marking}{t} \key{mark all files in the current subdir}{* s} \key{mark file names matching a regular expression}{* \%} \key{change the marks to a different character}{* c} @@ -340,7 +339,7 @@ \key{re-read all directories (retains all marks)}{g} \key{toggle sorting of current subdir by name/date}{s} \key{edit ls switches}{C-u s} -\key{recover marks, hidden lines, and such}{C-_} +\key{recover marks, hidden lines, and such (undo)}{C-_} \key{hide all subdirectories}{M-\$} \key{hide or unhide subdirectory}{\$} @@ -354,7 +353,7 @@ \key{print file(s)}{P} \key{convert filename(s) to lower case}{\% l} \key{convert filename(s) to upper case}{\% u} -\key{delete marked (as opposed to flagged) files}{D} +\key{delete marked (as opposed to flagged) file(s)}{D} %% Huh? %%\key{uuencode or uudecode file(s)}{U} \key{compress or uncompress file(s)}{Z} @@ -364,9 +363,9 @@ \key{make relative symbolic link(s)}{Y} \key{make hard link(s)}{H} \key{search files for a regular expression}{A} -\key{query replace regular expression}{Q} -\key{byte-compile files}{B} -\key{load files}{L} +\key{regexp query replace on marked files}{Q} +\key{byte-compile file(s)}{B} +\key{load file(s)}{L} \key{shell command on file(s)}{!} \key{asynchronous shell command on file(s)}{\&} ------------------------------------------------------------ revno: 112720 [merge] committer: Xue Fuqiao branch nick: trunk timestamp: Sat 2013-05-25 09:28:27 +0800 message: Refine the documentation of Flymake * progmodes/flymake.el (flymake-save-buffer-in-file) (flymake-makehash, flymake-posn-at-point-as-event, flymake-nop) (flymake-selected-frame, flymake-log, flymake-ins-after) (flymake-set-at, flymake-get-buildfile-from-cache) (flymake-add-buildfile-to-cache, flymake-clear-buildfile-cache) (flymake-find-possible-master-files, flymake-save-buffer-in-file): Refine the doc string. (flymake-get-file-name-mode-and-masks): Reformat. (flymake-get-real-file-name-function): Fix a minor bug. * flymake.texi: Changing from one space between sentences to two. diff: === modified file 'doc/misc/ChangeLog' --- doc/misc/ChangeLog 2013-05-04 19:49:23 +0000 +++ doc/misc/ChangeLog 2013-05-25 01:26:12 +0000 @@ -1,3 +1,7 @@ +2013-05-25 Xue Fuqiao + + * flymake.texi: Changing from one space between sentences to two. + 2013-05-04 Stefan Monnier * cl.texi (Obsolete Macros): Describe replacements for `flet' === modified file 'doc/misc/flymake.texi' --- doc/misc/flymake.texi 2013-02-22 02:16:44 +0000 +++ doc/misc/flymake.texi 2013-05-25 01:26:12 +0000 @@ -63,13 +63,13 @@ @cindex Overview of Flymake Flymake is a universal on-the-fly syntax checker implemented as an -Emacs minor mode. Flymake runs the pre-configured syntax check tool +Emacs minor mode. Flymake runs the pre-configured syntax check tool (compiler for C++ files, @code{perl} for perl files, etc.)@: in the background, passing it a temporary copy of the current buffer, and -parses the output for known error/warning message patterns. Flymake +parses the output for known error/warning message patterns. Flymake then highlights erroneous lines (i.e., lines for which at least one error or warning has been reported by the syntax check tool), and -displays an overall buffer status in the mode line. Status information +displays an overall buffer status in the mode line. Status information displayed by Flymake contains total number of errors and warnings reported for the buffer during the last syntax check. @@ -79,14 +79,14 @@ Calling @code{flymake-display-err-menu-for-current-line} will popup a menu containing error messages reported by the syntax check tool for -the current line. Errors/warnings belonging to another file, such as a +the current line. Errors/warnings belonging to another file, such as a @code{.h} header file included by a @code{.c} file, are shown in the -current buffer as belonging to the first line. Menu items for such -messages also contain a filename and a line number. Selecting such a +current buffer as belonging to the first line. Menu items for such +messages also contain a filename and a line number. Selecting such a menu item will automatically open the file and jump to the line with error. -Syntax check is done 'on-the-fly'. It is started whenever +Syntax check is done 'on-the-fly'. It is started whenever @itemize @bullet @item buffer is loaded @@ -97,7 +97,7 @@ Flymake is a universal syntax checker in the sense that it's easily extended to support new syntax check tools and error message -patterns. @xref{Configuring Flymake}. +patterns. @xref{Configuring Flymake}. @node Installing Flymake @chapter Installing @@ -107,7 +107,7 @@ Flymake is packaged in a single file, @code{flymake.el}. To install/update Flymake, place @code{flymake.el} to a directory -somewhere on Emacs load path. You might also want to byte-compile +somewhere on Emacs load path. You might also want to byte-compile @code{flymake.el} to improve performance. Also, place the following line in the @code{.emacs} file. @@ -141,13 +141,13 @@ @section Flymake mode @cindex flymake-mode -Flymake is an Emacs minor mode. To use Flymake, you +Flymake is an Emacs minor mode. To use Flymake, you must first activate @code{flymake-mode} by using the @code{flymake-mode} function. Instead of manually activating @code{flymake-mode}, you can configure Flymake to automatically enable @code{flymake-mode} upon opening any -file for which syntax check is possible. To do so, place the following +file for which syntax check is possible. To do so, place the following line in @code{.emacs}: @lisp @@ -159,9 +159,9 @@ @cindex Manually starting the syntax check When @code{flymake-mode} is active, syntax check is started -automatically on any of the three conditions mentioned above. Syntax +automatically on any of the three conditions mentioned above. Syntax check can also be started manually by using the -@code{flymake-start-syntax-check-for-current-buffer} function. This +@code{flymake-start-syntax-check-for-current-buffer} function. This can be used, for example, when changes were made to some other buffer affecting the current buffer. @@ -171,7 +171,7 @@ After syntax check is completed, lines for which at least one error or warning has been reported are highlighted, and total number of errors -and warning is shown in the mode line. Use the following functions to +and warning is shown in the mode line. Use the following functions to navigate the highlighted lines. @multitable @columnfractions 0.25 0.75 @@ -184,7 +184,7 @@ @end multitable -These functions treat erroneous lines as a linked list. Therefore, +These functions treat erroneous lines as a linked list. Therefore, @code{flymake-goto-next-error} will go to the first erroneous line when invoked in the end of the buffer. @@ -193,7 +193,7 @@ @cindex Viewing error messages To view error messages belonging to the current line, use the -@code{flymake-display-err-menu-for-current-line} function. If there's +@code{flymake-display-err-menu-for-current-line} function. If there's at least one error or warning reported for the current line, this function will display a popup menu with error/warning texts. Selecting the menu item whose error belongs to another file brings @@ -209,12 +209,12 @@ @multitable @columnfractions 0.25 0.75 @item Flymake* or Flymake:E/W* -@tab Flymake is currently running. For the second case, E/W contains the +@tab Flymake is currently running. For the second case, E/W contains the error and warning count for the previous run. @item Flymake -@tab Syntax check is not running. Usually this means syntax check was -successfully passed (no errors, no warnings). Other possibilities are: +@tab Syntax check is not running. Usually this means syntax check was +successfully passed (no errors, no warnings). Other possibilities are: syntax check was killed as a result of executing @code{flymake-compile}, or syntax check cannot start as compilation is currently in progress. @@ -232,7 +232,7 @@ @multitable @columnfractions 0.25 0.75 @item CFGERR @tab Syntax check process returned nonzero exit code, but no -errors/warnings were reported. This indicates a possible configuration +errors/warnings were reported. This indicates a possible configuration error (for example, no suitable error message patterns for the syntax check tool). @@ -253,12 +253,12 @@ @cindex Troubleshooting Flymake uses a simple logging facility for indicating important points -in the control flow. The logging facility sends logging messages to -the @code{*Messages*} buffer. The information logged can be used for +in the control flow. The logging facility sends logging messages to +the @code{*Messages*} buffer. The information logged can be used for resolving various problems related to Flymake. Logging output is controlled by the @code{flymake-log-level} -variable. @code{3} is the most verbose level, and @code{-1} switches +variable. @code{3} is the most verbose level, and @code{-1} switches logging off. @node Configuring Flymake @@ -286,30 +286,30 @@ @item flymake-allowed-file-name-masks A list of @code{(filename-regexp, init-function, cleanup-function -getfname-function)} for configuring syntax check tools. @xref{Adding +getfname-function)} for configuring syntax check tools. @xref{Adding support for a new syntax check tool}. @ignore @item flymake-buildfile-dirs A list of directories (relative paths) for searching a -buildfile. @xref{Locating the buildfile}. +buildfile. @xref{Locating the buildfile}. @end ignore @item flymake-master-file-dirs -A list of directories for searching a master file. @xref{Locating a +A list of directories for searching a master file. @xref{Locating a master file}. @item flymake-get-project-include-dirs-function A function used for obtaining a list of project include dirs (C/C++ -specific). @xref{Getting the include directories}. +specific). @xref{Getting the include directories}. @item flymake-master-file-count-limit @itemx flymake-check-file-limit -Used when looking for a master file. @xref{Locating a master file}. +Used when looking for a master file. @xref{Locating a master file}. @item flymake-err-line-patterns Patterns for error/warning messages in the form @code{(regexp file-idx -line-idx col-idx err-text-idx)}. @xref{Parsing the output}. +line-idx col-idx err-text-idx)}. @xref{Parsing the output}. @item flymake-compilation-prevents-syntax-check A flag indicating whether compilation and syntax check of the same @@ -321,7 +321,7 @@ @item flymake-gui-warnings-enabled A boolean flag indicating whether Flymake will show message boxes for -non-recoverable errors. If @code{flymake-gui-warnings-enabled} is +non-recoverable errors. If @code{flymake-gui-warnings-enabled} is @code{nil}, these errors will only be logged to the @code{*Messages*} buffer. @@ -360,7 +360,7 @@ @end menu Syntax check tools are configured using the -@code{flymake-allowed-file-name-masks} list. Each item of this list +@code{flymake-allowed-file-name-masks} list. Each item of this list has the following format: @lisp @@ -371,14 +371,14 @@ @item filename-regexp This field is used as a key for locating init/cleanup/getfname functions for the buffer. Items in -@code{flymake-allowed-file-name-masks} are searched sequentially. The +@code{flymake-allowed-file-name-masks} are searched sequentially. The first item with @code{filename-regexp} matching buffer filename is -selected. If no match is found, @code{flymake-mode} is switched off. +selected. If no match is found, @code{flymake-mode} is switched off. @item init-function @code{init-function} is required to initialize the syntax check, -usually by creating a temporary copy of the buffer contents. The -function must return @code{(list cmd-name arg-list)}. If +usually by creating a temporary copy of the buffer contents. The +function must return @code{(list cmd-name arg-list)}. If @code{init-function} returns null, syntax check is aborted, by @code{flymake-mode} is not switched off. @@ -389,7 +389,7 @@ @item getfname-function This function is used for translating filenames reported by the syntax -check tool into ``real'' filenames. Filenames reported by the tool +check tool into ``real'' filenames. Filenames reported by the tool will be different from the real ones, as actually the tool works with the temporary copy. In most cases, the default implementation provided by Flymake, @code{flymake-get-real-file-name}, can be used as @@ -411,7 +411,7 @@ @cindex Adding support for perl In this example, we will add support for @code{perl} as a syntax check -tool. @code{perl} supports the @code{-c} option which does syntax +tool. @code{perl} supports the @code{-c} option which does syntax checking. First, we write the @code{init-function}: @@ -463,7 +463,7 @@ @command{gcc} called via @command{make}. We're not required to write any new functions, as Flymake already has -functions for @command{make}. We just add a new entry to the +functions for @command{make}. We just add a new entry to the @code{flymake-allowed-file-name-masks}: @lisp @@ -489,7 +489,7 @@ @code{base-dir} is a directory containing @code{Makefile}, see @ref{Locating the buildfile}. -Thus, @code{Makefile} must contain the @code{check-syntax} target. In +Thus, @code{Makefile} must contain the @code{check-syntax} target. In our case this target might look like this: @verbatim @@ -527,12 +527,12 @@ Syntax check is started by calling @code{flymake-start-syntax-check-for-current-buffer}. Flymake first determines whether it is able to do syntax -check. It then saves a copy of the buffer in a temporary file in the +check. It then saves a copy of the buffer in a temporary file in the buffer's directory (or in the system temp directory, for java files), creates a syntax check command and launches a process with -this command. The output is parsed using a list of error message patterns, +this command. The output is parsed using a list of error message patterns, and error information (file name, line number, type and text) is -saved. After the process has finished, Flymake highlights erroneous +saved. After the process has finished, Flymake highlights erroneous lines in the buffer using the accumulated error information. @node Determining whether syntax check is possible @@ -551,14 +551,14 @@ @item Buffer can be syntax checked in a standalone fashion, that is, the file (its temporary copy, in fact) can be passed over to the compiler to -do the syntax check. Examples are C/C++ (.c, .cpp) and Java (.java) +do the syntax check. Examples are C/C++ (.c, .cpp) and Java (.java) sources. @item Buffer can be syntax checked, but additional file, called master file, -is required to perform this operation. A master file is a file that +is required to perform this operation. A master file is a file that includes the current file, so that running a syntax check tool on it -will also check syntax in the current file. Examples are C/C++ (.h, +will also check syntax in the current file. Examples are C/C++ (.h, .hpp) headers. @end enumerate @@ -579,7 +579,7 @@ After the possibility of the syntax check has been determined, a temporary copy of the current buffer is made so that the most recent -unsaved changes could be seen by the syntax check tool. Making a copy +unsaved changes could be seen by the syntax check tool. Making a copy is quite straightforward in a standalone case (mode @code{1}), as it's just saving buffer contents to a temporary file. @@ -595,11 +595,11 @@ Locating a master file is discussed in the following section. Patching just changes all appropriate lines of the master file so that they -use the new (temporary) name of the current file. For example, suppose current +use the new (temporary) name of the current file. For example, suppose current file name is @code{file.h}, the master file is @code{file.cpp}, and -it includes current file via @code{#include "file.h"}. Current file's copy +it includes current file via @code{#include "file.h"}. Current file's copy is saved to file @code{file_flymake.h}, so the include line must be -changed to @code{#include "file_flymake.h"}. Finally, patched master file +changed to @code{#include "file_flymake.h"}. Finally, patched master file is saved to @code{file_flymake_master.cpp}, and the last one is passed to the syntax check tool. @@ -609,27 +609,27 @@ Master file is located in two steps. -First, a list of possible master files is built. A simple name -matching is used to find the files. For a C++ header @code{file.h}, +First, a list of possible master files is built. A simple name +matching is used to find the files. For a C++ header @code{file.h}, Flymake searches for all @code{.cpp} files in the directories whose relative paths are stored in a customizable variable @code{flymake-master-file-dirs}, which -usually contains something like @code{("." "./src")}. No more than +usually contains something like @code{("." "./src")}. No more than @code{flymake-master-file-count-limit} entries is added to the master file -list. The list is then sorted to move files with names @code{file.cpp} to +list. The list is then sorted to move files with names @code{file.cpp} to the top. Next, each master file in a list is checked to contain the appropriate -include directives. No more than @code{flymake-check-file-limit} of each +include directives. No more than @code{flymake-check-file-limit} of each file are parsed. For @code{file.h}, the include directives to look for are -@code{#include "file.h"}, @code{#include "../file.h"}, etc. Each +@code{#include "file.h"}, @code{#include "../file.h"}, etc. Each include is checked against a list of include directories (see @ref{Getting the include directories}) to be sure it points to the correct @code{file.h}. -First matching master file found stops the search. The master file is then -patched and saved to disk. In case no master file is found, syntax check is +First matching master file found stops the search. The master file is then +patched and saved to disk. In case no master file is found, syntax check is aborted, and corresponding status (!) is reported in the mode line. @node Getting the include directories @@ -637,19 +637,19 @@ @cindex Include directories (C/C++ specific) Two sets of include directories are distinguished: system include directories -and project include directories. The former is just the contents of the -@code{INCLUDE} environment variable. The latter is not so easy to obtain, +and project include directories. The former is just the contents of the +@code{INCLUDE} environment variable. The latter is not so easy to obtain, and the way it can be obtained can vary greatly for different projects. Therefore, a customizable variable @code{flymake-get-project-include-dirs-function} is used to provide the way to implement the desired behavior. The default implementation, @code{flymake-get-project-include-dirs-imp}, -uses a @command{make} call. This requires a correct base directory, that is, a +uses a @command{make} call. This requires a correct base directory, that is, a directory containing a correct @file{Makefile}, to be determined. As obtaining the project include directories might be a costly operation, its -return value is cached in the hash table. The cache is cleared in the beginning +return value is cached in the hash table. The cache is cleared in the beginning of every syntax check attempt. @node Locating the buildfile @@ -659,18 +659,18 @@ @cindex Makefile, locating Flymake can be configured to use different tools for performing syntax -checks. For example, it can use direct compiler call to syntax check a perl +checks. For example, it can use direct compiler call to syntax check a perl script or a call to @command{make} for a more complicated case of a -@code{C/C++} source. The general idea is that simple files, like perl +@code{C/C++} source. The general idea is that simple files, like perl scripts and html pages, can be checked by directly invoking a -corresponding tool. Files that are usually more complex and generally +corresponding tool. Files that are usually more complex and generally used as part of larger projects, might require non-trivial options to be passed to the syntax check tool, like include directories for -C++. The latter files are syntax checked using some build tool, like +C++. The latter files are syntax checked using some build tool, like Make or Ant. All Make configuration data is usually stored in a file called -@code{Makefile}. To allow for future extensions, flymake uses a notion of +@code{Makefile}. To allow for future extensions, flymake uses a notion of buildfile to reference the 'project configuration' file. Special function, @code{flymake-find-buildfile} is provided for locating buildfiles. @@ -679,7 +679,7 @@ @ignore A customizable variable @code{flymake-buildfile-dirs} holds a list of relative paths to the -buildfile. They are checked sequentially until a buildfile is found. +buildfile. They are checked sequentially until a buildfile is found. @end ignore In case there's no build file, syntax check is aborted. @@ -690,7 +690,7 @@ @cindex Syntax check process The command line (command name and the list of arguments) for launching a process is returned by the -initialization function. Flymake then just calls @code{start-process} +initialization function. Flymake then just calls @code{start-process} to start an asynchronous process and configures process filter and sentinel which is used for processing the output of the syntax check tool. @@ -701,24 +701,24 @@ The output generated by the syntax check tool is parsed in the process filter/sentinel using the error message patterns stored in the -@code{flymake-err-line-patterns} variable. This variable contains a +@code{flymake-err-line-patterns} variable. This variable contains a list of items of the form @code{(regexp file-idx line-idx err-text-idx)}, used to determine whether a particular line is an error message and extract file name, line number and error text, -respectively. Error type (error/warning) is also guessed by matching -error text with the '@code{^[wW]arning}' pattern. Anything that was not -classified as a warning is considered an error. Type is then used to +respectively. Error type (error/warning) is also guessed by matching +error text with the '@code{^[wW]arning}' pattern. Anything that was not +classified as a warning is considered an error. Type is then used to sort error menu items, which shows error messages first. Flymake is also able to interpret error message patterns missing err-text-idx -information. This is done by merely taking the rest of the matched line -(@code{(substring line (match-end 0))}) as error text. This trick allows +information. This is done by merely taking the rest of the matched line +(@code{(substring line (match-end 0))}) as error text. This trick allows to make use of a huge collection of error message line patterns from -@code{compile.el}. All these error patterns are appended to +@code{compile.el}. All these error patterns are appended to the end of @code{flymake-err-line-patterns}. The error information obtained is saved in a buffer local -variable. The buffer for which the process output belongs is +variable. The buffer for which the process output belongs is determined from the process-id@w{}->@w{}buffer mapping updated after every process launch/exit. @@ -727,7 +727,7 @@ @cindex Erroneous lines, faces Highlighting is implemented with overlays and happens in the process -sentinel, after calling the cleanup function. Two customizable faces +sentinel, after calling the cleanup function. Two customizable faces are used: @code{flymake-errline} and @code{flymake-warnline}. Errors belonging outside the current buffer are considered to belong to line 1 of the current buffer. @@ -749,12 +749,13 @@ The only mode flymake currently knows about is @code{compile}. Flymake can be configured to not start syntax check if it thinks the -compilation is in progress. The check is made by the +compilation is in progress. The check is made by the @code{flymake-compilation-is-running}, which tests the -@code{compilation-in-progress} variable. The reason why this might be +@code{compilation-in-progress} variable. The reason why this might be useful is saving CPU time in case both syntax check and compilation -are very CPU intensive. The original reason for adding this feature, -though, was working around a locking problem with MS Visual C++ compiler. +are very CPU intensive. The original reason for adding this feature, +though, was working around a locking problem with MS Visual C++ +compiler. Flymake also provides an alternative command for starting compilation, @code{flymake-compile}: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-05-24 20:54:38 +0000 +++ lisp/ChangeLog 2013-05-25 01:26:12 +0000 @@ -1,3 +1,15 @@ +2013-05-25 Xue Fuqiao + + * progmodes/flymake.el (flymake-save-buffer-in-file) + (flymake-makehash, flymake-posn-at-point-as-event, flymake-nop) + (flymake-selected-frame, flymake-log, flymake-ins-after) + (flymake-set-at, flymake-get-buildfile-from-cache) + (flymake-add-buildfile-to-cache, flymake-clear-buildfile-cache) + (flymake-find-possible-master-files, flymake-save-buffer-in-file): + Refine the doc string. + (flymake-get-file-name-mode-and-masks): Reformat. + (flymake-get-real-file-name-function): Fix a minor bug. + 2013-05-24 Juri Linkov * progmodes/grep.el (grep-mode-font-lock-keywords): === modified file 'lisp/progmodes/flymake.el' --- lisp/progmodes/flymake.el 2013-05-14 02:42:17 +0000 +++ lisp/progmodes/flymake.el 2013-05-25 01:26:12 +0000 @@ -1,4 +1,4 @@ -;;; flymake.el -- a universal on-the-fly syntax checker +;;; flymake.el --- a universal on-the-fly syntax checker ;; Copyright (C) 2003-2013 Free Software Foundation, Inc. @@ -68,6 +68,9 @@ ;;;; [[ cross-emacs compatibility routines (defsubst flymake-makehash (&optional test) + "Create and return a new hash table using TEST to compare keys. +It uses the function `make-hash-table' to make a hash-table if +you use GNU Emacs, otherwise it uses `makehash'." (if (fboundp 'make-hash-table) (if test (make-hash-table :test test) (make-hash-table)) (with-no-warnings @@ -106,10 +109,12 @@ (lambda () temporary-file-directory))) (defun flymake-posn-at-point-as-event (&optional position window dx dy) - "Return pixel position of top left corner of glyph at POSITION, -relative to top left corner of WINDOW, as a mouse-1 click -event (identical to the event that would be triggered by clicking -mouse button 1 at the top left corner of the glyph). + "Return pixel position of top left corner of glyph at POSITION. + +The position is relative to top left corner of WINDOW, as a +mouse-1 click event (identical to the event that would be +triggered by clicking mouse button 1 at the top left corner of +the glyph). POSITION and WINDOW default to the position of point in the selected window. @@ -164,7 +169,8 @@ (if (featurep 'xemacs) (progn -(defun flymake-nop ()) +(defun flymake-nop () + "Do nothing.") (defun flymake-make-xemacs-menu (menu-data) "Return a menu specifier using MENU-DATA." @@ -187,6 +193,7 @@ (count-lines (window-start) (point)))) (defun flymake-selected-frame () + "Return the frame that is now selected." (if (fboundp 'window-edges) (selected-frame) (selected-window))) @@ -217,31 +224,42 @@ :group 'flymake :type 'integer) + +;; (defcustom flymake-log-file-name "~/flymake.log" +;; "Where to put the flymake log if logging is enabled. +;; +;; See `flymake-log-level' if you want to control what is logged." +;; :group 'flymake +;; :type 'string) + (defun flymake-log (level text &rest args) "Log a message at level LEVEL. If LEVEL is higher than `flymake-log-level', the message is ignored. Otherwise, it is printed using `message'. TEXT is a format control string, and the remaining arguments ARGS -are the string substitutions (see `format')." +are the string substitutions (see the function `format')." (if (<= level flymake-log-level) (let* ((msg (apply 'format text args))) (message "%s" msg) ;;(with-temp-buffer ;; (insert msg) ;; (insert "\n") - ;; (flymake-save-buffer-in-file "d:/flymake.log" t) ; make log file name customizable + ;; (flymake-save-buffer-in-file "~/flymake.log") ; make log file name customizable ;;) ))) (defun flymake-ins-after (list pos val) - "Insert VAL into LIST after position POS." - (let ((tmp (copy-sequence list))) ; (???) + "Insert VAL into LIST after position POS. +POS counts from zero." + (let ((tmp (copy-sequence list))) ; Bind `tmp' to a copy of LIST (setcdr (nthcdr pos tmp) (cons val (nthcdr (1+ pos) tmp))) tmp)) (defun flymake-set-at (list pos val) - "Set VAL at position POS in LIST." - (let ((tmp (copy-sequence list))) ; (???) +) +"Set VAL at position POS in LIST. +POS counts from zero." +(let ((tmp (copy-sequence list))) ; Bind `tmp' to a copy of LIST (setcar (nthcdr pos tmp) val) tmp)) @@ -249,7 +267,6 @@ "List of currently active flymake processes.") (defvar flymake-output-residual nil) - (make-variable-buffer-local 'flymake-output-residual) (defgroup flymake nil @@ -310,7 +327,7 @@ (unless (stringp file-name) (error "Invalid file-name")) (let ((fnm flymake-allowed-file-name-masks) - (mode-and-masks nil)) + (mode-and-masks nil)) (while (and (not mode-and-masks) fnm) (if (string-match (car (car fnm)) file-name) (setq mode-and-masks (cdr (car fnm)))) @@ -336,18 +353,22 @@ 'flymake-simple-cleanup)) (defun flymake-get-real-file-name-function (file-name) - (or (nth 2 (flymake-get-file-name-mode-and-masks file-name)) + (or (nth 4 (flymake-get-file-name-mode-and-masks file-name)) 'flymake-get-real-file-name)) (defvar flymake-find-buildfile-cache (flymake-makehash 'equal)) (defun flymake-get-buildfile-from-cache (dir-name) + "Look up DIR-NAME in cache and return its associated value. +If DIR-NAME is not found, return nil." (gethash dir-name flymake-find-buildfile-cache)) (defun flymake-add-buildfile-to-cache (dir-name buildfile) + "Associate DIR-NAME with BUILDFILE in the buildfile cache." (puthash dir-name buildfile flymake-find-buildfile-cache)) (defun flymake-clear-buildfile-cache () + "Clear the buildfile cache." (clrhash flymake-find-buildfile-cache)) (defun flymake-find-buildfile (buildfile-name source-dir-name) @@ -394,9 +415,11 @@ (defun flymake-find-possible-master-files (file-name master-file-dirs masks) "Find (by name and location) all possible master files. -Master files include .cpp and .c for .h. Files are searched for -starting from the .h directory and max max-level parent dirs. -File contents are not checked." + +Name is specified by FILE-NAME and location is specified by +MASTER-FILE-DIRS. Master files include .cpp and .c for .h. +Files are searched for starting from the .h directory and max +max-level parent dirs. File contents are not checked." (let* ((dirs master-file-dirs) (files nil) (done nil)) @@ -593,6 +616,8 @@ nil)))) (defun flymake-save-buffer-in-file (file-name) + "Save the entire buffer contents into file FILE-NAME. +Create parent directories as needed." (make-directory (file-name-directory file-name) 1) (write-region nil nil file-name nil 566) (flymake-log 3 "saved buffer %s in file %s" (buffer-name) file-name)) ------------------------------------------------------------ revno: 112719 fixes bug: http://debbugs.gnu.org/13549 committer: Juri Linkov branch nick: trunk timestamp: Fri 2013-05-24 23:54:38 +0300 message: * lisp/progmodes/grep.el (grep-mode-font-lock-keywords): Support =linenumber= format used by git-grep for lines with function names. diff: === modified file 'etc/grep.txt' --- etc/grep.txt 2013-01-01 09:11:05 +0000 +++ etc/grep.txt 2013-05-24 20:54:38 +0000 @@ -72,6 +72,14 @@ agrep -n "INFO tree" ../info/* ../info/dir: 6: File: dir Node: Top This is the top of the INFO tree +* git-grep + with `[diff "el"] xfuncname = "^(\\(.*)$"' in .gitconfig + and `*.el diff=el' in .gitattributes + +git grep -inH -p -e "org-element-map" +lisp/org/org.el=20969=(defun org-fill-paragraph (&optional justify) +lisp/org/org.el:21047: (org-element-map + * unknown greps grep -nH -e "xyzxyz" ../info/* === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-05-24 19:37:55 +0000 +++ lisp/ChangeLog 2013-05-24 20:54:38 +0000 @@ -1,3 +1,9 @@ +2013-05-24 Juri Linkov + + * progmodes/grep.el (grep-mode-font-lock-keywords): + Support =linenumber= format used by git-grep for lines with + function names. (Bug#13549) + 2013-05-24 Stefan Monnier * progmodes/octave.el (octave-smie-rules): Return nil rather than === modified file 'lisp/progmodes/grep.el' --- lisp/progmodes/grep.el 2013-02-12 04:46:18 +0000 +++ lisp/progmodes/grep.el 2013-05-24 20:54:38 +0000 @@ -410,7 +410,9 @@ (0 '(face nil compilation-message nil help-echo nil mouse-face nil) t) (1 grep-error-face) (2 grep-error-face nil t)) - ("^.+?-[0-9]+-.*\n" (0 grep-context-face))) + ;; "filename-linenumber-" format is used for context lines in GNU grep, + ;; "filename=linenumber=" for lines with function names in "git grep -p". + ("^.+?[-=][0-9]+[-=].*\n" (0 grep-context-face))) "Additional things to highlight in grep output. This gets tacked on the end of the generated expressions.") ------------------------------------------------------------ revno: 112718 committer: Stefan Monnier branch nick: trunk timestamp: Fri 2013-05-24 15:37:55 -0400 message: * lisp/emacs-lisp/smie.el (smie-auto-fill): Rework to be more robust. (smie-setup): Use add-function to set it. * lisp/progmodes/octave.el (octave-smie-rules): Return nil rather than 0 after a semi-colon; it works better for smie-auto-fill. (octave--indent-new-comment-line): New function. (octave-indent-new-comment-line): Use it (indirectly). (octave-mode): Don't disable smie-auto-fill. Use add-function to modify comment-line-break-function. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-05-24 18:39:21 +0000 +++ lisp/ChangeLog 2013-05-24 19:37:55 +0000 @@ -1,3 +1,15 @@ +2013-05-24 Stefan Monnier + + * progmodes/octave.el (octave-smie-rules): Return nil rather than + 0 after a semi-colon; it works better for smie-auto-fill. + (octave--indent-new-comment-line): New function. + (octave-indent-new-comment-line): Use it (indirectly). + (octave-mode): Don't disable smie-auto-fill. Use add-function to + modify comment-line-break-function. + + * emacs-lisp/smie.el (smie-auto-fill): Rework to be more robust. + (smie-setup): Use add-function to set it. + 2013-05-24 Sam Steingold * sort.el (delete-duplicate-lines): Accept an optional `keep-blanks' === modified file 'lisp/emacs-lisp/smie.el' --- lisp/emacs-lisp/smie.el 2013-05-23 17:44:38 +0000 +++ lisp/emacs-lisp/smie.el 2013-05-24 19:37:55 +0000 @@ -1735,37 +1735,45 @@ (save-excursion (indent-line-to indent)) (indent-line-to indent))))) -(defun smie-auto-fill () +(defun smie-auto-fill (do-auto-fill) (let ((fc (current-fill-column))) - (while (and fc (> (current-column) fc)) - (or (unless (or (nth 8 (save-excursion - (syntax-ppss (line-beginning-position)))) - (nth 8 (syntax-ppss))) - (save-excursion - (let ((end (point)) - (bsf (progn (beginning-of-line) + (when (and fc (> (current-column) fc)) + ;; The loop below presumes BOL is outside of strings or comments. Also, + ;; sometimes we prefer to fill the comment than the code around it. + (unless (or (nth 8 (save-excursion + (syntax-ppss (line-beginning-position)))) + (nth 4 (save-excursion + (move-to-column fc) + (syntax-ppss)))) + (while + (and (with-demoted-errors + (save-excursion + (let ((end (point)) + (bsf nil) ;Best-so-far. + (gain 0)) + (beginning-of-line) + (while (progn (smie-indent-forward-token) - (point))) - (gain 0) - curcol) - (while (and (<= (point) end) - (<= (setq curcol (current-column)) fc)) - ;; FIXME? `smie-indent-calculate' can (and often will) - ;; return a result that actually depends on the - ;; presence/absence of a newline, so the gain computed here - ;; may not be accurate, but in practice it seems to works - ;; well enough. - (let* ((newcol (smie-indent-calculate)) - (newgain (- curcol newcol))) - (when (> newgain gain) - (setq gain newgain) - (setq bsf (point)))) - (smie-indent-forward-token)) - (when (> gain 0) - (goto-char bsf) - (newline-and-indent) - 'done)))) - (do-auto-fill))))) + (and (<= (point) end) + (<= (current-column) fc))) + ;; FIXME? `smie-indent-calculate' can (and often + ;; does) return a result that actually depends on the + ;; presence/absence of a newline, so the gain computed + ;; here may not be accurate, but in practice it seems + ;; to work well enough. + (skip-chars-forward " \t") + (let* ((newcol (smie-indent-calculate)) + (newgain (- (current-column) newcol))) + (when (> newgain gain) + (setq gain newgain) + (setq bsf (point))))) + (when (> gain 0) + (goto-char bsf) + (newline-and-indent) + 'done)))) + (> (current-column) fc)))) + (when (> (current-column) fc) + (funcall do-auto-fill))))) (defun smie-setup (grammar rules-function &rest keywords) @@ -1775,12 +1783,11 @@ KEYWORDS are additional arguments, which can use the following keywords: - :forward-token FUN - :backward-token FUN" - (set (make-local-variable 'smie-rules-function) rules-function) - (set (make-local-variable 'smie-grammar) grammar) - (set (make-local-variable 'indent-line-function) 'smie-indent-line) - (set (make-local-variable 'normal-auto-fill-function) 'smie-auto-fill) - (set (make-local-variable 'forward-sexp-function) - 'smie-forward-sexp-command) + (setq-local smie-rules-function rules-function) + (setq-local smie-grammar grammar) + (setq-local indent-line-function #'smie-indent-line) + (add-function :around (local 'normal-auto-fill-function) #'smie-auto-fill) + (setq-local forward-sexp-function #'smie-forward-sexp-command) (while keywords (let ((k (pop keywords)) (v (pop keywords))) @@ -1792,30 +1799,26 @@ (_ (message "smie-setup: ignoring unknown keyword %s" k))))) (let ((ca (cdr (assq :smie-closer-alist grammar)))) (when ca - (set (make-local-variable 'smie-closer-alist) ca) + (setq-local smie-closer-alist ca) ;; Only needed for interactive calls to blink-matching-open. - (set (make-local-variable 'blink-matching-check-function) - #'smie-blink-matching-check) + (setq-local blink-matching-check-function #'smie-blink-matching-check) (unless smie-highlight-matching-block-mode (add-hook 'post-self-insert-hook #'smie-blink-matching-open 'append 'local)) - (set (make-local-variable 'smie-blink-matching-triggers) - (append smie-blink-matching-triggers - ;; Rather than wait for SPC to blink, try to blink as - ;; soon as we type the last char of a block ender. - (let ((closers (sort (mapcar #'cdr smie-closer-alist) - #'string-lessp)) - (triggers ()) - closer) - (while (setq closer (pop closers)) - (unless (and closers - ;; FIXME: this eliminates prefixes of other - ;; closers, but we should probably - ;; eliminate prefixes of other keywords - ;; as well. - (string-prefix-p closer (car closers))) - (push (aref closer (1- (length closer))) triggers))) - (delete-dups triggers))))))) + ;; Setup smie-blink-matching-triggers. Rather than wait for SPC to + ;; blink, try to blink as soon as we type the last char of a block ender. + (let ((closers (sort (mapcar #'cdr smie-closer-alist) #'string-lessp)) + (triggers ()) + closer) + (while (setq closer (pop closers)) + (unless + ;; FIXME: this eliminates prefixes of other closers, but we + ;; should probably eliminate prefixes of other keywords as well. + (and closers (string-prefix-p closer (car closers))) + (push (aref closer (1- (length closer))) triggers))) + (setq-local smie-blink-matching-triggers + (append smie-blink-matching-triggers + (delete-dups triggers))))))) (provide 'smie) === modified file 'lisp/progmodes/octave.el' --- lisp/progmodes/octave.el 2013-05-22 15:28:42 +0000 +++ lisp/progmodes/octave.el 2013-05-24 19:37:55 +0000 @@ -438,7 +438,7 @@ (smie-rule-parent octave-block-offset) ;; For (invalid) code between switch and case. ;; (if (smie-parent-p "switch") 4) - 0)))) + nil)))) (defun octave-indent-comment () "A function for `smie-indent-functions' (which see)." @@ -552,11 +552,10 @@ (setq-local paragraph-ignore-fill-prefix t) (setq-local fill-paragraph-function 'octave-fill-paragraph) - ;; Use `smie-auto-fill' after fixing bug#14381. - (setq-local normal-auto-fill-function 'do-auto-fill) (setq-local fill-nobreak-predicate (lambda () (eq (octave-in-string-p) ?'))) - (setq-local comment-line-break-function #'octave-indent-new-comment-line) + (add-function :around (local 'comment-line-break-function) + #'octave--indent-new-comment-line) (setq font-lock-defaults '(octave-font-lock-keywords)) @@ -1112,11 +1111,16 @@ ;;; Indentation (defun octave-indent-new-comment-line (&optional soft) + ;; FIXME: C-M-j should probably be bound globally to a function like + ;; this one. "Break Octave line at point, continuing comment if within one. Insert `octave-continuation-string' before breaking the line unless inside a list. Signal an error if within a single-quoted string." (interactive) + (funcall comment-line-break-function soft)) + +(defun octave--indent-new-comment-line (orig &rest args) (cond ((octave-in-comment-p) nil) ((eq (octave-in-string-p) ?') @@ -1128,7 +1132,7 @@ (unless (and (cadr (syntax-ppss)) (eq (char-after (cadr (syntax-ppss))) ?\()) (insert " " octave-continuation-string)))) - (indent-new-comment-line soft) + (apply orig args) (indent-according-to-mode)) (define-obsolete-function-alias === modified file 'test/indent/octave.m' --- test/indent/octave.m 2013-03-05 08:06:54 +0000 +++ test/indent/octave.m 2013-05-24 19:37:55 +0000 @@ -1089,13 +1089,13 @@ while (! feof (fid) || line != -1) if (! any (! isspace (line)) || line(1) == "#" || any (line == "=")) - ## Comments, blank lines or comments about unimplemented - ## functions: do nothing - ## FIXME: probably comments and pointers to external functions - ## could be treated better when printing to screen? + ## Comments, blank lines or comments about unimplemented + ## functions: do nothing + ## FIXME: probably comments and pointers to external functions + ## could be treated better when printing to screen? elseif (! isempty (strfind (line, ">>"))) - ## Skip package name and description as they are in DESCRIPTION - ## already. + ## Skip package name and description as they are in DESCRIPTION + ## already. elseif (! isspace (line(1))) ## Category. if (! isempty (pkg_idx_struct{cat_num}.functions)) @@ -1658,7 +1658,7 @@ line = fgetl (fid); while (line != -1) if (line(1) == "#") - ## Comments, do nothing. + ## Comments, do nothing. elseif (isspace(line(1))) ## Continuation lines if (exist ("keyword", "var") && isfield (desc, keyword)) @@ -1752,9 +1752,9 @@ endif version = fix_version (parts{2}); - ## If no version is specified for the dependency - ## we say that the version should be greater than - ## or equal to "0.0.0". + ## If no version is specified for the dependency + ## we say that the version should be greater than + ## or equal to "0.0.0". else package = tolower (strip (dep)); operator = ">="; @@ -1859,7 +1859,7 @@ if (! compare_versions (OCTAVE_VERSION, dep.version, dep.operator)) bad_deps{end+1} = dep; endif - ## Is the current dependency not Octave? + ## Is the current dependency not Octave? else ok = false; for i = 1:length (installed_pkgs_lst) @@ -2025,7 +2025,7 @@ ## Load all. if (length (files) == 1 && strcmp (files{1}, "all")) idx = [1:length(installed_pkgs_lst)]; - ## Load auto. + ## Load auto. elseif (length (files) == 1 && strcmp (files{1}, "auto")) idx = []; for i = 1:length (installed_pkgs_lst) @@ -2033,7 +2033,7 @@ idx (end + 1) = i; endif endfor - ## Load package_name1 ... + ## Load package_name1 ... else idx = []; for i = 1:length (files) @@ -2100,8 +2100,8 @@ idx = strcmp (p, d); if (any (idx)) rmpath (d); - ## FIXME: We should also check if we need to remove items from - ## EXEC_PATH. + ## FIXME: We should also check if we need to remove items from + ## EXEC_PATH. endif endfor endfunction ------------------------------------------------------------ revno: 112717 committer: Sam Steingold branch nick: trunk timestamp: Fri 2013-05-24 14:39:21 -0400 message: * lisp/sort.el (delete-duplicate-lines): Accept an optional `keep-blanks' argument (before the `interactive' argument). diff: === modified file 'etc/NEWS' --- etc/NEWS 2013-05-24 10:43:31 +0000 +++ etc/NEWS 2013-05-24 18:39:21 +0000 @@ -264,10 +264,12 @@ name and arguments. Useful to trace the value of (current-buffer) or (point) when the function is invoked. -** New command `delete-duplicate-lines' has two types of operation: -when its arg ADJACENT is non-nil (when called interactively with C-u C-u) +** New command `delete-duplicate-lines' has new types of operation: +When its arg ADJACENT is non-nil (when called interactively with C-u C-u) it works like the utility `uniq'. Otherwise by default it deletes duplicate lines everywhere in the region without regard to adjacency. +When it arg KEEP-BLANKS is non-nil (when called interactively with C-u C-u C-u), +duplicate blank lines are preserved. ** New `cycle-spacing' command allows cycling between having just one space, no spaces, or reverting to the original spacing. Like === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-05-24 17:42:23 +0000 +++ lisp/ChangeLog 2013-05-24 18:39:21 +0000 @@ -1,3 +1,8 @@ +2013-05-24 Sam Steingold + + * sort.el (delete-duplicate-lines): Accept an optional `keep-blanks' + argument (before the `interactive' argument). + 2013-05-24 Stefan Monnier * image-mode.el (image-mode-winprops): Add winprops to === modified file 'lisp/sort.el' --- lisp/sort.el 2013-01-02 16:13:04 +0000 +++ lisp/sort.el 2013-05-24 18:39:21 +0000 @@ -568,7 +568,8 @@ (insert (car ll))))) ;;;###autoload -(defun delete-duplicate-lines (beg end &optional reverse adjacent interactive) +(defun delete-duplicate-lines (beg end &optional reverse adjacent keep-blanks + interactive) "Delete duplicate lines in the region between BEG and END. If REVERSE is nil, search and delete duplicates forward keeping the first @@ -582,6 +583,9 @@ this is more efficient in performance and memory usage than when ADJACENT is nil that uses additional memory to remember previous lines. +If KEEP-BLANKS is non-nil (when called interactively with three C-u prefixes), +duplicate blank lines are preserved. + When called from Lisp and INTERACTIVE is omitted or nil, return the number of deleted duplicate lines, do not print it; if INTERACTIVE is t, the function behaves in all respects as if it had been called interactively." @@ -591,6 +595,7 @@ (list (region-beginning) (region-end) (equal current-prefix-arg '(4)) (equal current-prefix-arg '(16)) + (equal current-prefix-arg '(64)) t))) (let ((lines (unless adjacent (make-hash-table :weakness 'key :test 'equal))) line prev-line @@ -605,14 +610,16 @@ (and (< (point) end) (not (eobp)))) (setq line (buffer-substring-no-properties (line-beginning-position) (line-end-position))) - (if (if adjacent (equal line prev-line) (gethash line lines)) - (progn - (delete-region (progn (forward-line 0) (point)) - (progn (forward-line 1) (point))) - (if reverse (forward-line -1)) - (setq count (1+ count))) - (if adjacent (setq prev-line line) (puthash line t lines)) - (forward-line (if reverse -1 1))))) + (if (and keep-blanks (string= "" line)) + (forward-line 1) + (if (if adjacent (equal line prev-line) (gethash line lines)) + (progn + (delete-region (progn (forward-line 0) (point)) + (progn (forward-line 1) (point))) + (if reverse (forward-line -1)) + (setq count (1+ count))) + (if adjacent (setq prev-line line) (puthash line t lines)) + (forward-line (if reverse -1 1)))))) (set-marker beg nil) (set-marker end nil) (when interactive ------------------------------------------------------------ revno: 112716 fixes bug: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=14435 committer: Stefan Monnier branch nick: trunk timestamp: Fri 2013-05-24 13:42:23 -0400 message: * lisp/image-mode.el (image-mode-winprops): Add winprops to image-mode-winprops-alist before running image-mode-new-window-functions. * lisp/doc-view.el (doc-view-new-window-function): Don't delay doc-view-goto-page via timers. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-05-24 10:54:20 +0000 +++ lisp/ChangeLog 2013-05-24 17:42:23 +0000 @@ -1,10 +1,18 @@ +2013-05-24 Stefan Monnier + + * image-mode.el (image-mode-winprops): Add winprops to + image-mode-winprops-alist before running + image-mode-new-window-functions. + * doc-view.el (doc-view-new-window-function): Don't delay + doc-view-goto-page via timers (bug#14435). + 2013-05-24 Tassilo Horn * doc-view.el: Integrate with desktop.el. (Bug#14435) (doc-view-desktop-save-buffer): New function. (doc-view-restore-desktop-buffer): New function. - (desktop-buffer-mode-handlers): Add - `doc-view-restore-desktop-buffer' as desktop.el buffer mode + (desktop-buffer-mode-handlers): + Add `doc-view-restore-desktop-buffer' as desktop.el buffer mode handler. (doc-view-mode): Set `doc-view-desktop-save-buffer' as custom `desktop-save-buffer' function. === modified file 'lisp/doc-view.el' --- lisp/doc-view.el 2013-05-24 10:54:20 +0000 +++ lisp/doc-view.el 2013-05-24 17:42:23 +0000 @@ -328,24 +328,15 @@ (cl-assert (eq t (car winprops))) (delete-overlay ol)) (image-mode-window-put 'overlay ol winprops) - (when (windowp (car winprops)) - (if (stringp (overlay-get ol 'display)) - ;; We're not already displaying an image, so this is the - ;; initial window showing the document. - (run-with-timer nil nil - (lambda () - ;; In case a conversion is running, the - ;; refresh will happen as defined by - ;; `doc-view-conversion-refresh-interval'. - (unless doc-view-current-converter-processes - (with-selected-window (car winprops) - (doc-view-goto-page 1))))) - ;; We've split the window showing the document. All we need - ;; to do is selecting the new window to cause a redisplay to - ;; make the image appear there, too. - (run-with-timer nil nil - (lambda () - (with-selected-window (car winprops)))))))) + (when (and (windowp (car winprops)) + (stringp (overlay-get ol 'display)) + (null doc-view-current-converter-processes)) + ;; We're not displaying an image yet, so let's do so. This happens when + ;; the buffer is displayed for the first time. + ;; Don't do it if there's a conversion is running, since in that case, it + ;; will be done later. + (with-selected-window (car winprops) + (doc-view-goto-page 1))))) (defvar doc-view-current-files nil "Only used internally.") @@ -1651,14 +1642,17 @@ ;; desktop.el integration -(defun doc-view-desktop-save-buffer (desktop-dirname) +(defun doc-view-desktop-save-buffer (_desktop-dirname) `((page . ,(doc-view-current-page)) (slice . ,(doc-view-current-slice)))) +(declare-function desktop-restore-file-buffer "desktop" + (buffer-filename buffer-name buffer-misc)) + (defun doc-view-restore-desktop-buffer (file name misc) (let ((page (cdr (assq 'page misc))) (slice (cdr (assq 'slice misc)))) - (prog1 (desktop-restore-file-buffer file name misc)) + (desktop-restore-file-buffer file name misc) (with-selected-window (or (get-buffer-window (current-buffer) 0) (selected-window)) (doc-view-goto-page page) === modified file 'lisp/image-mode.el' --- lisp/image-mode.el 2013-02-22 01:34:06 +0000 +++ lisp/image-mode.el 2013-05-24 17:42:23 +0000 @@ -69,13 +69,17 @@ image-mode-winprops-alist)))) (let ((winprops (assq window image-mode-winprops-alist))) ;; For new windows, set defaults from the latest. - (unless winprops + (if winprops + ;; Move window to front. + (setq image-mode-winprops-alist + (cons winprops (delq winprops image-mode-winprops-alist))) (setq winprops (cons window (copy-alist (cdar image-mode-winprops-alist)))) + ;; Add winprops before running the hook, to avoid inf-loops if the hook + ;; triggers window-configuration-change-hook. + (setq image-mode-winprops-alist + (cons winprops image-mode-winprops-alist)) (run-hook-with-args 'image-mode-new-window-functions winprops)) - ;; Move window to front. - (setq image-mode-winprops-alist - (cons winprops (delq winprops image-mode-winprops-alist))) winprops)) (defun image-mode-window-get (prop &optional winprops) ------------------------------------------------------------ revno: 112715 author: Julien Danjou committer: Katsumi Yamaoka branch nick: trunk timestamp: Fri 2013-05-24 14:36:12 +0000 message: lisp/gnus/sieve.el (sieve-setup-buffer): Fix default port value in sieve buffer setup diff: === modified file 'lisp/gnus/ChangeLog' --- lisp/gnus/ChangeLog 2013-05-23 07:52:19 +0000 +++ lisp/gnus/ChangeLog 2013-05-24 14:36:12 +0000 @@ -1,3 +1,8 @@ +2013-05-24 Julien Danjou + + * sieve.el (sieve-setup-buffer): Fix default port value in sieve buffer + setup. + 2013-05-23 Glenn Morris * gnus-util.el (rmail-swap-buffers-maybe) === modified file 'lisp/gnus/sieve.el' --- lisp/gnus/sieve.el 2013-01-01 09:11:05 +0000 +++ lisp/gnus/sieve.el 2013-05-24 14:36:12 +0000 @@ -257,7 +257,7 @@ (erase-buffer) (buffer-disable-undo) (insert "\ -Server : " server ":" (or port "2000") " +Server : " server ":" (or port sieve-manage-default-port) " ") (set (make-local-variable 'sieve-buffer-header-end) ------------------------------------------------------------ revno: 112714 committer: Dmitry Gutov branch nick: trunk timestamp: Fri 2013-05-24 17:39:53 +0400 message: ChangeLog for the previous commit diff: === modified file 'etc/ChangeLog' --- etc/ChangeLog 2013-05-16 12:48:54 +0000 +++ etc/ChangeLog 2013-05-24 13:39:53 +0000 @@ -1,3 +1,7 @@ +2013-05-24 Fabrice Niessen + + * themes/leuven-theme.el: Update theme. + 2013-05-16 Eli Zaretskii * NEWS: Advertise the MSYS build on MS-Windows. ------------------------------------------------------------ revno: 112713 author: Fabrice Niessen committer: Dmitry Gutov branch nick: trunk timestamp: Fri 2013-05-24 17:37:15 +0400 message: * themes/leuven-theme.el: Update theme. diff: === modified file 'etc/themes/leuven-theme.el' --- etc/themes/leuven-theme.el 2013-04-02 03:33:31 +0000 +++ etc/themes/leuven-theme.el 2013-05-24 13:37:15 +0000 @@ -1,7 +1,7 @@ ;;; leuven-theme.el --- Emacs custom theme ;; Copyright (C) 2003-2013 Free Software Foundation, Inc. -;; Time-stamp: <2013-03-14 Thu 17:04> +;; Time-stamp: <2013-05-24 Fri 10:33> ;; Author: Fabrice Niessen <(concat "fniessen" at-sign "pirilampo.org")> @@ -39,11 +39,11 @@ (diff-none '(:foreground "gray33")) (diff-removed '(:foreground "#A60000" :background "#FFDDDD")) (directory '(:weight bold :foreground "blue" :background "#FFFFD2")) - (highlight-line '(:background "#C6DBAD")) + (highlight-line '(:background "#CCDEED")) (link '(:underline t :foreground "#006DAF")) (mail-header-name '(:weight bold :foreground "black")) (marked-line '(:weight bold :foreground "white" :background "red")) - (match '(:background "#FFFF99")) + (match '(:background "#FBE448")) (ol1 '(:height 1.3 :weight bold :overline "#A7A7A7" :foreground "#3C3C3C" :background "#F0F0F0")) (ol2 '(:height 1.0 :weight bold :overline "#123555" :foreground "#123555" :background "#E5F4FB")) (ol3 '(:height 1.0 :weight bold :overline "#005522" :foreground "#005522" :background "#EFFFEF")) @@ -52,12 +52,12 @@ (ol6 '(:height 1.0 :weight bold :slant italic :foreground "#0077CC")) (ol7 '(:height 1.0 :weight bold :slant italic :foreground "#2EAE2C")) (ol8 '(:height 1.0 :weight bold :slant italic :foreground "#FD8008")) - (region '(:background "#D2D9E0")) + (region '(:background "#CCDEED")) (shadow '(:foreground "#7F7F7F")) - (string '(:foreground "#008000")) + (string '(:foreground "#FF5500")) ;; D0372D (subject '(:weight bold :foreground "#CF5D60")) (symlink '(:foreground "deep sky blue")) - (volatile-highlight '(:background "#FFFF00")) + (volatile-highlight '(:background "#FBE448")) (vc-branch '(:box (:line-width 1 :color "#00CC33") :foreground "black" :background "#AAFFAA"))) (custom-theme-set-faces @@ -69,7 +69,7 @@ `(underline ((,class (:underline t)))) `(cursor ((,class (:background "#15FF00")))) ;; Highlighting faces - `(fringe ((,class (:foreground "#808080" :background "#DDEEFF")))) + `(fringe ((,class (:foreground "#56B556" :background "#E2F9E2")))) `(highlight ((,class ,volatile-highlight))) `(region ((,class ,region))) `(secondary-selection ((,class ,match))) ;; used by Org-mode for highlighting matched entries and keywords @@ -96,21 +96,18 @@ `(warning ((,class (:foreground "orange")))) `(success ((,class (:foreground "green")))) ;; Font lock faces - `(font-lock-builtin-face ((,class (:foreground "#FF5803")))) - `(font-lock-comment-delimiter-face ((,class (:foreground "#EE0000")))) - `(font-lock-comment-face ((,class (:slant italic :foreground "#EE0000")))) - `(font-lock-constant-face ((,class (:foreground "#009944")))) - `(font-lock-doc-face ((,class (:foreground "#BA2121")))) - `(font-lock-doc-string-face ((,class (:foreground "#63639C")))) - `(font-lock-function-name-face ((,class (:foreground "#1A50B8")))) - `(font-lock-keyword-face ((,class (:bold t :foreground "#A535AE")))) - `(font-lock-preprocessor-face ((,class (:bold t :foreground "#A3A3A3")))) - `(font-lock-reference-face ((,class (:foreground "dark cyan")))) - `(font-lock-regexp-grouping-backslash ((,class (:bold t :weight bold)))) - `(font-lock-regexp-grouping-construct ((,class (:bold t :weight bold)))) + `(font-lock-builtin-face ((,class (:foreground "#006FE0")))) + `(font-lock-comment-delimiter-face ((,class (:foreground "#008200")))) + `(font-lock-comment-face ((,class (:slant italic :foreground "#008200")))) + `(font-lock-constant-face ((,class (:foreground "#6434A3")))) + `(font-lock-doc-face ((,class (:foreground "#008000")))) + `(font-lock-doc-string-face ((,class (:foreground "#008000")))) + `(font-lock-function-name-face ((,class (:foreground "#006699")))) + `(font-lock-keyword-face ((,class (:bold nil :foreground "#0000FF")))) ;; #3654DC + `(font-lock-preprocessor-face ((,class (:foreground "#808080")))) `(font-lock-string-face ((,class ,string))) - `(font-lock-type-face ((,class (:foreground "#1B781F")))) - `(font-lock-variable-name-face ((,class (:foreground "#2E91AF")))) + `(font-lock-type-face ((,class (:foreground "#6D6D6D")))) + `(font-lock-variable-name-face ((,class (:foreground "#BA36A5")))) ;; 800080 `(font-lock-warning-face ((,class (:weight bold :foreground "red")))) ;; Button and link faces `(link ((,class (:foreground "#8ac6f2" :underline t)))) @@ -138,7 +135,7 @@ `(gnus-group-mail-3 ((,class (:weight bold :foreground "black")))) `(gnus-group-mail-low-empty ((,class ,cancel))) `(gnus-group-mail-low ((,class ,cancel))) - `(gnus-header-content ((,class (:family "Sans Serif" :foreground "#786FB4")))) + `(gnus-header-content ((,class (:family "Sans Serif" :foreground "#3399CC")))) `(gnus-header-from ((,class (:family "Sans Serif" :foreground "blue")))) `(gnus-header-subject ((,class ,subject))) `(gnus-header-name ((,class ,mail-header-name))) @@ -152,7 +149,7 @@ `(message-cited-text ((,class (:foreground "#5050B0")))) `(message-separator ((,class (:family "Sans Serif" :weight bold :foreground "red")))) `(message-header-newsgroups ((,class (:family "Sans Serif" :foreground "#3399CC")))) - `(message-header-xheader ((,class (:foreground "red")))) + `(message-header-xheader ((,class (:family "Sans Serif" :foreground "#3399CC")))) `(message-mml ((,class (:foreground "forest green")))) ;; Diff `(diff-added ((,class ,diff-added))) @@ -164,9 +161,9 @@ `(diff-header ((,class (:foreground "#999999" :background "#EAF2F5")))) `(diff-hunk-header ((,class ,diff-hunk-header))) `(diff-index ((,class (:foreground "#4183C4" :background "#EAF2F5")))) ;; my foreground is NOT applied!? - `(diff-indicator-added ((,class (:background "#AAFFAA")))) - `(diff-indicator-changed ((,class (:background "#AAAAFF")))) - `(diff-indicator-removed ((,class (:background "#FFAAAA")))) + `(diff-indicator-added ((,class (:foreground "#008000" :background "#AAFFAA")))) + `(diff-indicator-changed ((,class (:foreground "black" :background "#AAAAFF")))) + `(diff-indicator-removed ((,class (:foreground "#A60000" :background "#FFAAAA")))) `(diff-refine-change ((,class (:background "#DDDDFF")))) `(diff-removed ((,class ,diff-removed))) ;; SMerge @@ -259,6 +256,7 @@ `(custom-themed ((,class (:background "blue1" :foreground "white")))) `(custom-variable-button ((,class (:weight bold :underline t)))) `(custom-variable-tag ((,class (:bold t :family "Sans Serif" :foreground "blue1" :weight bold :height 1.2)))) + `(custom-visibility ((,class ,link))) `(diary-face ((,class (:foreground "#87C9FC")))) `(dircolors-face-asm ((,class (:foreground "black")))) `(dircolors-face-backup ((,class (:foreground "black")))) @@ -300,16 +298,17 @@ `(diredp-read-priv ((,class (:background "#0A99FF")))) `(diredp-write-priv ((,class (:foreground "white" :background "#FF4040")))) `(file-name-shadow ((,class ,shadow))) - `(font-latex-bold-face ((,class (:weight bold :foreground "medium sea green")))) + `(font-latex-bold-face ((,class (:weight bold :foreground "black")))) + `(font-latex-italic-face ((,class (:slant italic :foreground "#1A1A1A")))) `(font-latex-math-face ((,class (:foreground "blue")))) `(font-latex-sectioning-1-face ((,class (:family "Sans Serif" :height 2.7 :weight bold :foreground "cornflower blue")))) `(font-latex-sectioning-2-face ((,class ,ol1))) `(font-latex-sectioning-3-face ((,class ,ol2))) `(font-latex-sectioning-4-face ((,class ,ol3))) `(font-latex-sectioning-5-face ((,class ,ol4))) - `(font-latex-sedate-face ((,class (:foreground "#FF5803")))) + `(font-latex-sedate-face ((,class (:foreground "#FF5500")))) `(font-latex-string-face ((,class (:bold t :foreground "#0066FF")))) - `(font-latex-verbatim-face ((,class (:foreground "tan1")))) + `(font-latex-verbatim-face ((,class (:foreground "#000088" :background "#FFFFE0" :inherit nil)))) `(gnus-cite-attribution-face ((,class (:foreground "#5050B0")))) `(gnus-cite-face-1 ((,class (:foreground "#5050B0")))) `(gnus-cite-face-10 ((,class (:foreground "#990000")))) @@ -359,7 +358,7 @@ `(helm-match ((,class ,match))) `(helm-selection ((,class ,highlight-line))) `(helm-selection-line ((,class ,volatile-highlight))) - `(helm-source-header ((,class (:family "Sans Serif" :height 1.3 :weight bold :foreground "white" :background "#666699")))) + `(helm-source-header ((,class (:family "Sans Serif" :height 1.3 :weight bold :foreground "white" :background "#2F69BF")))) `(helm-visible-mark ((,class ,marked-line))) `(helm-w3m-bookmarks-face ((,class (:underline t :foreground "cyan1")))) `(highlight-symbol-face ((,class (:background "#FFFFA0")))) @@ -381,7 +380,7 @@ `(info-xref ((,class (:weight bold :underline t :foreground "blue")))) ;; unvisited cross-references `(info-xref-visited ((,class (:weight bold :foreground "magenta4")))) ;; previously visited cross-references `(light-symbol-face ((,class (:background "#FFFFA0")))) - `(linum ((,class (:foreground "#AFB7BA" :background "#DDEEFF")))) + `(linum ((,class (:foreground "#AFAFAF" :background "white")))) `(log-view-file ((,class (:foreground "#0000CC" :background "#EAF2F5")))) `(lui-button-face ((,class ,link))) `(lui-highlight-face ((,class (:box '(:line-width 1 :color "#CC0000") :foreground "#CC0000" :background "#FFFF88")))) ;; my nickname @@ -438,7 +437,7 @@ `(org-block-end-line ((,class (:overline "#A7A6AA" :foreground "#555555" :background "#E2E1D5")))) `(org-checkbox ((,class (:weight bold :foreground "white" :background "#777777" :box (:line-width 1 :style pressed-button))))) `(org-clock-overlay ((,class (:foreground "white" :background "SkyBlue4")))) - `(org-code ((,class (:foreground "#0066CC")))) + `(org-code ((,class (:foreground "#007300" :background "#EBF5EB")))) `(org-column ((,class ,column))) `(org-column-title ((,class ,column))) `(org-date ((,class (:underline t :foreground "#00459E")))) @@ -480,11 +479,11 @@ `(org-special-keyword ((,class (:weight bold :foreground "#00BB00" :background "#EAFFEA")))) `(org-table ((,class (:foreground "dark green" :background "#EAFFEA")))) `(org-tag ((,class (:weight normal :slant italic :foreground "#3E6D8E" :background "#E0EAF1")))) - `(org-target ((,class (:underline t)))) + `(org-target ((,class ,link))) `(org-time-grid ((,class (:foreground "#CFCFCF")))) `(org-todo ((,class (:weight bold :box (:line-width 1 :color "#D8ABA7") :foreground "#D8ABA7" :background "#FFE6E4")))) `(org-upcoming-deadline ((,class (:foreground "#FF5555")))) - `(org-verbatim ((,class (:box (:line-width 1 :color "#DDDDDD") :foreground "#000088" :background "#E0FFE0")))) + `(org-verbatim ((,class (:foreground "#0066CC")))) `(org-verse ((,class (:slant italic :foreground "dim gray" :background "#EEEEEE")))) `(org-warning ((,class (:weight bold :foreground "black" :background "#CCE7FF")))) `(outline-1 ((,class ,ol1))) @@ -498,20 +497,21 @@ `(pabbrev-debug-display-label-face ((,class (:background "chartreuse")))) `(pabbrev-suggestions-face ((,class (:weight bold :foreground "white" :background "red")))) `(pabbrev-suggestions-label-face ((,class (:weight bold :foreground "white" :background "purple")))) - `(paren-face-match ((,class (:foreground "white" :background "#FF3F3F")))) - `(paren-face-mismatch ((,class (:weight bold :foreground "white" :background "purple")))) - `(paren-face-no-match ((,class (:weight bold :foreground "white" :background "purple")))) + `(paren-face-match ((,class (:foreground "#E2464C" :background "#FFE182")))) + `(paren-face-mismatch ((,class (:weight bold :foreground "white" :background "#FF3F3F")))) + `(paren-face-no-match ((,class (:weight bold :foreground "white" :background "#FF3F3F")))) `(pp^L-highlight ((,class (:strike-through t)))) `(recover-this-file ((,class (:background "white" :background "#FF3F3F")))) - `(sh-heredoc ((,class (:foreground "blue" :background "#FBF9EA")))) + `(sh-heredoc ((,class (:foreground "blue" :background "#EEF5FE")))) + `(sh-quoted-exec ((,class (:foreground "#FF1493")))) `(shadow ((,class ,shadow))) `(shell-option-face ((,class (:foreground "forest green")))) `(shell-output-2-face ((,class (:foreground "blue")))) `(shell-output-3-face ((,class (:foreground "purple")))) `(shell-output-face ((,class (:foreground "black")))) `(shell-prompt-face ((,class (:weight bold :foreground "yellow")))) - `(show-paren-match ((,class (:foreground "white" :background "#FF3F3F")))) - `(show-paren-mismatch ((,class (:weight bold :foreground "white" :background "purple")))) + `(show-paren-match ((,class (:foreground "#E2464C" :background "#FFE182")))) + `(show-paren-mismatch ((,class (:weight bold :foreground "white" :background "#FF3F3F")))) `(speedbar-button-face ((,class (:foreground "green4")))) `(speedbar-directory-face ((,class (:foreground "blue4")))) `(speedbar-file-face ((,class (:foreground "cyan4")))) ------------------------------------------------------------ revno: 112712 committer: Tassilo Horn branch nick: trunk timestamp: Fri 2013-05-24 12:54:20 +0200 message: * doc-view.el: Integrate with desktop.el. (Bug#14435) (doc-view-desktop-save-buffer): New function. (doc-view-restore-desktop-buffer): New function. (desktop-buffer-mode-handlers): Add `doc-view-restore-desktop-buffer' as desktop.el buffer mode handler. (doc-view-mode): Set `doc-view-desktop-save-buffer' as custom `desktop-save-buffer' function. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-05-24 10:35:56 +0000 +++ lisp/ChangeLog 2013-05-24 10:54:20 +0000 @@ -1,3 +1,14 @@ +2013-05-24 Tassilo Horn + + * doc-view.el: Integrate with desktop.el. (Bug#14435) + (doc-view-desktop-save-buffer): New function. + (doc-view-restore-desktop-buffer): New function. + (desktop-buffer-mode-handlers): Add + `doc-view-restore-desktop-buffer' as desktop.el buffer mode + handler. + (doc-view-mode): Set `doc-view-desktop-save-buffer' as custom + `desktop-save-buffer' function. + 2013-05-24 Michael Albinus * net/tramp-gvfs.el (tramp-gvfs-enabled): New defconst. === modified file 'lisp/doc-view.el' --- lisp/doc-view.el 2013-05-21 07:25:14 +0000 +++ lisp/doc-view.el 2013-05-24 10:54:20 +0000 @@ -1649,6 +1649,25 @@ (setq-local doc-view--image-type type) (setq-local doc-view--image-file-pattern (concat "page-%s." extension)))) +;; desktop.el integration + +(defun doc-view-desktop-save-buffer (desktop-dirname) + `((page . ,(doc-view-current-page)) + (slice . ,(doc-view-current-slice)))) + +(defun doc-view-restore-desktop-buffer (file name misc) + (let ((page (cdr (assq 'page misc))) + (slice (cdr (assq 'slice misc)))) + (prog1 (desktop-restore-file-buffer file name misc)) + (with-selected-window (or (get-buffer-window (current-buffer) 0) + (selected-window)) + (doc-view-goto-page page) + (when slice (apply 'doc-view-set-slice slice))))) + +(setq desktop-buffer-mode-handlers + (cons '(doc-view-mode . doc-view-restore-desktop-buffer) + desktop-buffer-mode-handlers)) + ;;;###autoload (defun doc-view-mode () "Major mode in DocView buffers. @@ -1715,6 +1734,9 @@ nil t) (add-hook 'clone-indirect-buffer-hook 'doc-view-clone-buffer-hook nil t) (add-hook 'kill-buffer-hook 'doc-view-kill-proc nil t) + (when (and (boundp 'desktop-save-mode) + desktop-save-mode) + (setq-local desktop-save-buffer 'doc-view-desktop-save-buffer)) (remove-overlays (point-min) (point-max) 'doc-view t) ;Just in case. ;; Keep track of display info ([vh]scroll, page number, overlay, ------------------------------------------------------------ revno: 112711 committer: Michael Albinus * font-lock.el (lisp-font-lock-keywords-2): Add with-coding-priority. === renamed file 'lisp/net/xesam.el' => 'lisp/obsolete/xesam.el' --- lisp/net/xesam.el 2013-05-23 08:43:18 +0000 +++ lisp/obsolete/xesam.el 2013-05-24 10:35:56 +0000 @@ -4,6 +4,7 @@ ;; Author: Michael Albinus ;; Keywords: tools, hypermedia +;; Obsolete-since: 24.4 ;; This file is part of GNU Emacs. @@ -22,6 +23,8 @@ ;;; Commentary: +;; This file is obsolete. + ;; This package provides an interface to Xesam, a D-Bus based "eXtEnsible ;; Search And Metadata specification". It has been tested with ;; ------------------------------------------------------------ revno: 112709 committer: Michael Albinus + + * net/tramp-gvfs.el (tramp-gvfs-enabled): New defconst. + (tramp-gvfs-file-name-handler): Raise a user error when + `tramp-gvfs-enabled' is nil. + (top): Register signals only when `tramp-gvfs-enabled' is non-nil. + Do not raise a user error when loading package. (Bug#14447) + 2013-05-24 Glenn Morris * font-lock.el (lisp-font-lock-keywords-2): Add with-coding-priority. === modified file 'lisp/net/tramp-gvfs.el' --- lisp/net/tramp-gvfs.el 2013-05-23 08:43:18 +0000 +++ lisp/net/tramp-gvfs.el 2013-05-24 10:03:45 +0000 @@ -147,14 +147,15 @@ (defconst tramp-gvfs-service-daemon "org.gtk.vfs.Daemon" "The well known name of the GVFS daemon.") -;; Check that GVFS is available. D-Bus integration is available since -;; Emacs 23 on some system types. We don't call `dbus-ping', because -;; this would load dbus.el. -(unless (ignore-errors - (and (tramp-compat-funcall 'dbus-get-unique-name :session) - (or (tramp-compat-process-running-p "gvfs-fuse-daemon") - (tramp-compat-process-running-p "gvfsd-fuse")))) - (tramp-compat-user-error "Package `tramp-gvfs' not supported")) +;; D-Bus integration is available since Emacs 23 on some system types. +;; We don't call `dbus-ping', because this would load dbus.el. +(defconst tramp-gvfs-enabled + (ignore-errors + (and (featurep 'dbusbind) + (tramp-compat-funcall 'dbus-get-unique-name :session) + (or (tramp-compat-process-running-p "gvfs-fuse-daemon") + (tramp-compat-process-running-p "gvfsd-fuse")))) + "Non-nil when GVFS is available.") (defconst tramp-gvfs-path-mounttracker "/org/gtk/vfs/mounttracker" "The object path of the GVFS daemon.") @@ -483,6 +484,8 @@ "Invoke the GVFS related OPERATION. First arg specifies the OPERATION, second arg is a list of arguments to pass to the OPERATION." + (unless tramp-gvfs-enabled + (tramp-compat-user-error "Package `tramp-gvfs' not supported")) (let ((fn (assoc operation tramp-gvfs-file-name-handler-alist))) (if fn (save-match-data (apply (cdr fn) args)) @@ -1308,23 +1311,24 @@ (tramp-set-file-property v "/" "default-location" default-location))))))) -(dbus-register-signal - :session nil tramp-gvfs-path-mounttracker - tramp-gvfs-interface-mounttracker "mounted" - 'tramp-gvfs-handler-mounted-unmounted) -(dbus-register-signal - :session nil tramp-gvfs-path-mounttracker - tramp-gvfs-interface-mounttracker "Mounted" - 'tramp-gvfs-handler-mounted-unmounted) +(when tramp-gvfs-enabled + (dbus-register-signal + :session nil tramp-gvfs-path-mounttracker + tramp-gvfs-interface-mounttracker "mounted" + 'tramp-gvfs-handler-mounted-unmounted) + (dbus-register-signal + :session nil tramp-gvfs-path-mounttracker + tramp-gvfs-interface-mounttracker "Mounted" + 'tramp-gvfs-handler-mounted-unmounted) -(dbus-register-signal - :session nil tramp-gvfs-path-mounttracker - tramp-gvfs-interface-mounttracker "unmounted" - 'tramp-gvfs-handler-mounted-unmounted) -(dbus-register-signal - :session nil tramp-gvfs-path-mounttracker - tramp-gvfs-interface-mounttracker "Unmounted" - 'tramp-gvfs-handler-mounted-unmounted) + (dbus-register-signal + :session nil tramp-gvfs-path-mounttracker + tramp-gvfs-interface-mounttracker "unmounted" + 'tramp-gvfs-handler-mounted-unmounted) + (dbus-register-signal + :session nil tramp-gvfs-path-mounttracker + tramp-gvfs-interface-mounttracker "Unmounted" + 'tramp-gvfs-handler-mounted-unmounted)) (defun tramp-gvfs-connection-mounted-p (vec) "Check, whether the location is already mounted." @@ -1452,7 +1456,7 @@ `(:struct ,(tramp-gvfs-dbus-string-to-byte-array mount-pref) ,mount-spec))) -;; Connection functions +;; Connection functions. (defun tramp-gvfs-maybe-open-connection (vec) "Maybe open a connection VEC. ------------------------------------------------------------ revno: 112708 committer: Glenn Morris branch nick: trunk timestamp: Fri 2013-05-24 00:01:49 -0700 message: Silence some cedet compilation warnings * cedet/semantic/bovine/c-by.el (semantic-parse-region): * cedet/semantic/wisent/javat-wy.el (semantic-parse-region): * cedet/semantic/wisent/js-wy.el (semantic-parse-region): * cedet/semantic/wisent/python-wy.el (semantic-parse-region): Declare. * cedet/semantic/bovine/grammar.el (bovine-make-parsers): Avoid free variable `copyright-end'. diff: === modified file 'lisp/cedet/ChangeLog' --- lisp/cedet/ChangeLog 2013-05-22 03:13:56 +0000 +++ lisp/cedet/ChangeLog 2013-05-24 07:01:49 +0000 @@ -1,3 +1,13 @@ +2013-05-24 Glenn Morris + + * semantic/bovine/grammar.el (bovine-make-parsers): + Avoid free variable `copyright-end'. + + * semantic/bovine/c-by.el (semantic-parse-region): + * semantic/wisent/javat-wy.el (semantic-parse-region): + * semantic/wisent/js-wy.el (semantic-parse-region): + * semantic/wisent/python-wy.el (semantic-parse-region): Declare. + 2013-05-22 Glenn Morris * ede/speedbar.el (ede-file-find, ede-tag-find): === modified file 'lisp/cedet/semantic/bovine/c-by.el' --- lisp/cedet/semantic/bovine/c-by.el 2013-01-01 09:11:05 +0000 +++ lisp/cedet/semantic/bovine/c-by.el 2013-05-24 07:01:49 +0000 @@ -28,9 +28,13 @@ ;;; Prologue ;; -(declare-function semantic-c-reconstitute-token "semantic/bovine/c") -(declare-function semantic-c-reconstitute-template "semantic/bovine/c") -(declare-function semantic-expand-c-tag "semantic/bovine/c") +(declare-function semantic-c-reconstitute-token "semantic/bovine/c" + (tokenpart declmods typedecl)) +(declare-function semantic-c-reconstitute-template "semantic/bovine/c" + (tag specifier)) +(declare-function semantic-expand-c-tag "semantic/bovine/c" (tag)) +(declare-function semantic-parse-region "semantic" + (start end &optional nonterminal depth returnonerror)) ;;; Declarations ;; === modified file 'lisp/cedet/semantic/bovine/grammar.el' --- lisp/cedet/semantic/bovine/grammar.el 2013-05-11 23:55:46 +0000 +++ lisp/cedet/semantic/bovine/grammar.el 2013-05-24 07:01:49 +0000 @@ -455,7 +455,7 @@ (with-current-buffer (find-file-noselect f) (semantic-grammar-create-package)) (error (message "%s" (error-message-string err)) nil))) - lang filename) + lang filename copyright-end) (when (and packagename (string-match "^.*/\\(.*\\)-by\\.el\\'" packagename)) (setq lang (match-string 1 packagename)) === modified file 'lisp/cedet/semantic/wisent/javat-wy.el' --- lisp/cedet/semantic/wisent/javat-wy.el 2013-03-04 07:25:17 +0000 +++ lisp/cedet/semantic/wisent/javat-wy.el 2013-05-24 07:01:49 +0000 @@ -28,6 +28,8 @@ ;;; Prologue ;; +(declare-function semantic-parse-region "semantic" + (start end &optional nonterminal depth returnonerror)) ;;; Declarations ;; === modified file 'lisp/cedet/semantic/wisent/js-wy.el' --- lisp/cedet/semantic/wisent/js-wy.el 2013-01-01 09:11:05 +0000 +++ lisp/cedet/semantic/wisent/js-wy.el 2013-05-24 07:01:49 +0000 @@ -64,6 +64,8 @@ ;;; Prologue ;; +(declare-function semantic-parse-region "semantic" + (start end &optional nonterminal depth returnonerror)) ;;; Declarations ;; === modified file 'lisp/cedet/semantic/wisent/python-wy.el' --- lisp/cedet/semantic/wisent/python-wy.el 2013-01-01 09:11:05 +0000 +++ lisp/cedet/semantic/wisent/python-wy.el 2013-05-24 07:01:49 +0000 @@ -81,8 +81,12 @@ ;;; Prologue ;; -(declare-function wisent-python-reconstitute-function-tag "semantic/wisent/python") -(declare-function wisent-python-reconstitute-class-tag "semantic/wisent/python") +(declare-function wisent-python-reconstitute-function-tag + "semantic/wisent/python" (tag suite)) +(declare-function wisent-python-reconstitute-class-tag "semantic/wisent/python" + (tag)) +(declare-function semantic-parse-region "semantic" + (start end &optional nonterminal depth returnonerror)) ;;; Declarations ;; ------------------------------------------------------------ revno: 112707 committer: Glenn Morris branch nick: trunk timestamp: Thu 2013-05-23 23:59:55 -0700 message: * font-lock.el (lisp-font-lock-keywords-2): Add with-coding-priority. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-05-24 06:59:13 +0000 +++ lisp/ChangeLog 2013-05-24 06:59:55 +0000 @@ -1,5 +1,7 @@ 2013-05-24 Glenn Morris + * font-lock.el (lisp-font-lock-keywords-2): Add with-coding-priority. + * emacs-lisp/chart.el (chart-sort): Replace obsolete `object-name'. * progmodes/cperl-mode.el (cperl-mode): Use fboundp. === modified file 'lisp/font-lock.el' --- lisp/font-lock.el 2013-05-08 16:27:53 +0000 +++ lisp/font-lock.el 2013-05-24 06:59:55 +0000 @@ -2290,7 +2290,7 @@ "condition-case" "condition-case-unless-debug" "track-mouse" "eval-after-load" "eval-and-compile" "eval-when-compile" "eval-when" "eval-next-after-load" - "with-case-table" "with-category-table" + "with-case-table" "with-category-table" "with-coding-priority" "with-current-buffer" "with-demoted-errors" "with-electric-help" "with-local-quit" "with-no-warnings" ------------------------------------------------------------ revno: 112706 committer: Glenn Morris branch nick: trunk timestamp: Thu 2013-05-23 23:59:13 -0700 message: * emacs-lisp/chart.el (chart-sort): Replace obsolete `object-name'. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-05-24 06:57:39 +0000 +++ lisp/ChangeLog 2013-05-24 06:59:13 +0000 @@ -1,5 +1,7 @@ 2013-05-24 Glenn Morris + * emacs-lisp/chart.el (chart-sort): Replace obsolete `object-name'. + * progmodes/cperl-mode.el (cperl-mode): Use fboundp. (Info-find-node, Man-getpage-in-background): Declare. === modified file 'lisp/emacs-lisp/chart.el' --- lisp/emacs-lisp/chart.el 2013-01-01 09:11:05 +0000 +++ lisp/emacs-lisp/chart.el 2013-05-24 06:59:13 +0000 @@ -470,7 +470,7 @@ (progn (chart-sort-matchlist s2 s1 pred) (setq s (oref s2 data))) - (error "Sorting of chart %s not supported" (object-name c)))) + (error "Sorting of chart %s not supported" (eieio-object-name c)))) (if (eq (oref c direction) 'horizontal) (oset (oref c y-axis) items s) (oset (oref c x-axis) items s) ------------------------------------------------------------ Use --include-merged or -n0 to see merged revisions.