Now on revision 112994. ------------------------------------------------------------ revno: 112994 committer: Glenn Morris branch nick: trunk timestamp: Fri 2013-06-14 19:50:47 -0700 message: vc-compilation-mode fixes * lisp/vc/vc-dispatcher.el (vc-compilation-mode): Avoid making compilation-error-regexp-alist void, or local while let-bound. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-06-15 02:25:00 +0000 +++ lisp/ChangeLog 2013-06-15 02:50:47 +0000 @@ -1,5 +1,8 @@ 2013-06-15 Glenn Morris + * vc/vc-dispatcher.el (vc-compilation-mode): Avoid making + compilation-error-regexp-alist void, or local while let-bound. + * progmodes/make-mode.el (makefile-mode-syntax-table): Treat "=" as punctuation. (Bug#14614) === modified file 'lisp/vc/vc-dispatcher.el' --- lisp/vc/vc-dispatcher.el 2013-04-20 16:24:04 +0000 +++ lisp/vc/vc-dispatcher.el 2013-06-15 02:50:47 +0000 @@ -385,14 +385,15 @@ (defun vc-compilation-mode (backend) "Setup `compilation-mode' after with the appropriate `compilation-error-regexp-alist'." + (require 'compile) (let* ((error-regexp-alist (vc-make-backend-sym backend 'error-regexp-alist)) - (compilation-error-regexp-alist - (and (boundp error-regexp-alist) - (symbol-value error-regexp-alist)))) - (compilation-mode) + (error-regexp-alist (and (boundp error-regexp-alist) + (symbol-value error-regexp-alist)))) + (let ((compilation-error-regexp-alist error-regexp-alist)) + (compilation-mode)) (set (make-local-variable 'compilation-error-regexp-alist) - compilation-error-regexp-alist))) + error-regexp-alist))) (defun vc-set-async-update (process-buffer) "Set a `vc-exec-after' action appropriate to the current buffer. ------------------------------------------------------------ revno: 112993 fixes bug: http://debbugs.gnu.org/14614 committer: Glenn Morris branch nick: trunk timestamp: Fri 2013-06-14 19:25:00 -0700 message: * make-mode.el (makefile-mode-syntax-table): Treat "=" as punctuation. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-06-15 01:12:05 +0000 +++ lisp/ChangeLog 2013-06-15 02:25:00 +0000 @@ -1,3 +1,8 @@ +2013-06-15 Glenn Morris + + * progmodes/make-mode.el (makefile-mode-syntax-table): + Treat "=" as punctuation. (Bug#14614) + 2013-06-15 Juanma Barranquero * help-fns.el (describe-variable): === modified file 'lisp/progmodes/make-mode.el' --- lisp/progmodes/make-mode.el 2013-05-09 01:40:20 +0000 +++ lisp/progmodes/make-mode.el 2013-06-15 02:25:00 +0000 @@ -712,7 +712,9 @@ (modify-syntax-entry ?\` "\" " st) (modify-syntax-entry ?# "< " st) (modify-syntax-entry ?\n "> " st) - st)) + (modify-syntax-entry ?= "." st) + st) + "Syntax table used in `makefile-mode'.") (defvar makefile-imake-mode-syntax-table (let ((st (make-syntax-table makefile-mode-syntax-table))) ------------------------------------------------------------ revno: 112992 committer: Juanma Barranquero branch nick: trunk timestamp: Sat 2013-06-15 03:12:05 +0200 message: lisp/help-fns.el (describe-variable): Add extra line for permanent-local vars. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-06-15 00:37:49 +0000 +++ lisp/ChangeLog 2013-06-15 01:12:05 +0000 @@ -1,3 +1,8 @@ +2013-06-15 Juanma Barranquero + + * help-fns.el (describe-variable): + Add extra line for permanent-local variables. + 2013-06-15 Simen Heggestøyl (tiny change) * progmodes/scheme.el (scheme-font-lock-keywords-2): === modified file 'lisp/help-fns.el' --- lisp/help-fns.el 2013-06-12 02:16:02 +0000 +++ lisp/help-fns.el 2013-06-15 01:12:05 +0000 @@ -875,8 +875,10 @@ (princ "buffer-local when set.\n")) ((not permanent-local)) ((bufferp locus) + (setq extra-line t) (princ " This variable's buffer-local value is permanent.\n")) (t + (setq extra-line t) (princ " This variable's value is permanent \ if it is given a local binding.\n"))) ------------------------------------------------------------ revno: 112991 fixes bug: http://debbugs.gnu.org/9164 author: Simen Heggestøyl committer: Glenn Morris branch nick: trunk timestamp: Fri 2013-06-14 17:37:49 -0700 message: Add some new scheme features (tiny change) * lisp/progmodes/scheme.el (scheme-font-lock-keywords-2): Add export, import, library. (library): Set indent function. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-06-14 18:37:38 +0000 +++ lisp/ChangeLog 2013-06-15 00:37:49 +0000 @@ -1,3 +1,9 @@ +2013-06-15 Simen Heggestøyl (tiny change) + + * progmodes/scheme.el (scheme-font-lock-keywords-2): + Add export, import, library. (Bug#9164) + (library): Set indent function. + 2013-06-14 Glenn Morris * term/xterm.el (xterm--query): === modified file 'lisp/progmodes/scheme.el' --- lisp/progmodes/scheme.el 2013-03-16 22:08:22 +0000 +++ lisp/progmodes/scheme.el 2013-06-15 00:37:49 +0000 @@ -312,6 +312,8 @@ "call-with-input-file" "call-with-output-file" "case" "cond" "do" "else" "for-each" "if" "lambda" "λ" "let" "let*" "let-syntax" "letrec" "letrec-syntax" + ;; R6RS library subforms. + "export" "import" ;; SRFI 11 usage comes up often enough. "let-values" "let*-values" ;; Hannes Haug wants: @@ -330,6 +332,10 @@ ;; ;; Scheme `:' and `#:' keywords as builtins. '("\\<#?:\\sw+\\>" . font-lock-builtin-face) + ;; R6RS library declarations. + '("(\\(\\\\)\\s-*(?\\(\\sw+\\)?" + (1 font-lock-keyword-face) + (2 font-lock-type-face)) ))) "Gaudy expressions to highlight in Scheme modes.") @@ -536,6 +542,7 @@ (put 'letrec-syntax 'scheme-indent-function 1) (put 'syntax-rules 'scheme-indent-function 1) (put 'syntax-case 'scheme-indent-function 2) ; not r5rs +(put 'library 'scheme-indent-function 1) ; R6RS (put 'call-with-input-file 'scheme-indent-function 1) (put 'with-input-from-file 'scheme-indent-function 1) ------------------------------------------------------------ revno: 112990 committer: Glenn Morris branch nick: trunk timestamp: Fri 2013-06-14 14:37:38 -0400 message: * term/xterm.el (xterm--query): Stop after first matching handler. (Bug#14615) diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-06-14 09:59:14 +0000 +++ lisp/ChangeLog 2013-06-14 18:37:38 +0000 @@ -1,3 +1,8 @@ +2013-06-14 Glenn Morris + + * term/xterm.el (xterm--query): + Stop after first matching handler. (Bug#14615) + 2013-06-14 Ivan Kanis Add support for dired in saveplace. === modified file 'lisp/term/xterm.el' --- lisp/term/xterm.el 2013-05-15 23:55:41 +0000 +++ lisp/term/xterm.el 2013-06-14 18:37:38 +0000 @@ -516,6 +516,9 @@ (terminal-init-xterm-modify-other-keys)))))) (defun xterm--query (query handlers) + "Send QUERY string to the terminal and watch for a response. +HANDLERS is an alist with elements of the form (STRING . FUNCTION). +We run the first FUNCTION whose STRING matches the input events." ;; We used to query synchronously, but the need to use `discard-input' is ;; rather annoying (bug#6758). Maybe we could always use the asynchronous ;; approach, but it's less tested. @@ -544,7 +547,8 @@ nil)))) (setq i (1+ i))) (if (= i (length (car handler))) - (funcall (cdr handler)) + (progn (setq handlers nil) + (funcall (cdr handler))) (while (> i 0) (push (aref (car handler) (setq i (1- i))) unread-command-events))))))) ------------------------------------------------------------ revno: 112989 author: Lars Magne Ingebrigtsen committer: Katsumi Yamaoka branch nick: trunk timestamp: Fri 2013-06-14 11:16:26 +0000 message: lisp/gnus/eww.el (eww-submit): Get submit button logic right when hitting RET on non-submit buttons lisp/gnus/shr.el: Remove shr-preliminary-table-render, since that can't really be used for anything in practice diff: === modified file 'lisp/gnus/ChangeLog' --- lisp/gnus/ChangeLog 2013-06-14 09:48:49 +0000 +++ lisp/gnus/ChangeLog 2013-06-14 11:16:26 +0000 @@ -1,3 +1,11 @@ +2013-06-14 Lars Magne Ingebrigtsen + + * eww.el (eww-submit): Get submit button logic right when hitting RET + on non-submit buttons. + + * shr.el: Remove shr-preliminary-table-render, since that can't really + be used for anything in practice. + 2013-06-13 Albert Krewinkel * sieve.el: Rebind q to (sieve-bury-buffer), bind Q to === modified file 'lisp/gnus/eww.el' --- lisp/gnus/eww.el 2013-06-14 03:26:34 +0000 +++ lisp/gnus/eww.el 2013-06-14 11:16:26 +0000 @@ -206,12 +206,12 @@ (widget (cond ((equal type "submit") - (list - 'push-button - :notify 'eww-submit - :name (cdr (assq :name cont)) - :eww-form eww-form - (or (cdr (assq :value cont)) "Submit"))) + (list 'push-button + :notify 'eww-submit + :name (cdr (assq :name cont)) + :value (cdr (assq :value cont)) + :eww-form eww-form + (or (cdr (assq :value cont)) "Submit"))) ((or (equal type "radio") (equal type "checkbox")) (list 'checkbox @@ -226,18 +226,17 @@ :name (cdr (assq :name cont)) :value (cdr (assq :value cont)))) (t - (list - 'editable-field - :size (string-to-number - (or (cdr (assq :size cont)) - "40")) - :value (or (cdr (assq :value cont)) "") - :secret (and (equal type "password") ?*) - :action 'eww-submit - :name (cdr (assq :name cont)) - :eww-form eww-form))))) - (if (eq (car widget) 'hidden) - (nconc eww-form (list widget)) + (list 'editable-field + :size (string-to-number + (or (cdr (assq :size cont)) + "40")) + :value (or (cdr (assq :value cont)) "") + :secret (and (equal type "password") ?*) + :action 'eww-submit + :name (cdr (assq :name cont)) + :eww-form eww-form))))) + (nconc eww-form (list widget)) + (unless (eq (car widget) 'hidden) (apply 'widget-create widget) (put-text-property start (point) 'eww-widget widget)))) @@ -282,14 +281,12 @@ (defun eww-submit (widget &rest ignore) (let ((form (plist-get (cdr widget) :eww-form)) - (first-button t) values) (dolist (overlay (sort (overlays-in (point-min) (point-max)) (lambda (o1 o2) (< (overlay-start o1) (overlay-start o2))))) (let ((field (or (plist-get (overlay-properties overlay) 'field) - (plist-get (overlay-properties overlay) 'button) - (plist-get (overlay-properties overlay) 'eww-hidden)))) + (plist-get (overlay-properties overlay) 'button)))) (when (eq (plist-get (cdr field) :eww-form) form) (let ((name (plist-get (cdr field) :name))) (when name @@ -298,19 +295,12 @@ (when (widget-value field) (push (cons name (plist-get (cdr field) :checkbox-value)) values))) - ((eq (car field) 'eww-hidden) - (push (cons name (plist-get (cdr field) :value)) - values)) ((eq (car field) 'push-button) ;; We want the values from buttons if we hit a button, - ;; or we're submitting something and this is the first - ;; button displayed. - (when (or (and (eq (car widget) 'push-button) - (eq widget field)) - (and (not (eq (car widget) 'push-button)) - (eq (car field) 'push-button) - first-button)) - (setq first-button nil) + ;; if it's the first button in the DOM after the field + ;; hit ENTER on. + (when (and (eq (car widget) 'push-button) + (eq widget field)) (push (cons name (widget-value field)) values))) (t @@ -322,6 +312,25 @@ (push (cons (plist-get (cdr elem) :name) (plist-get (cdr elem) :value)) values))) + ;; If we hit ENTER in a non-button field, include the value of the + ;; first submit button after it. + (unless (eq (car widget) 'push-button) + (let ((rest form) + (name (plist-get (cdr widget) :name))) + (when rest + (while (and rest + (or (not (consp (car rest))) + (not (equal name (plist-get (cdar rest) :name))))) + (pop rest))) + (while rest + (let ((elem (pop rest))) + (when (and (consp (car rest)) + (eq (car elem) 'push-button)) + (push (cons (plist-get (cdr elem) :name) + (plist-get (cdr elem) :value)) + values) + (setq rest nil)))))) + (debug values) (let ((shr-base eww-current-url)) (if (and (stringp (cdr (assq :method form))) (equal (downcase (cdr (assq :method form))) "post")) === modified file 'lisp/gnus/shr.el' --- lisp/gnus/shr.el 2013-06-14 03:22:26 +0000 +++ lisp/gnus/shr.el 2013-06-14 11:16:26 +0000 @@ -115,7 +115,6 @@ (defvar shr-base nil) (defvar shr-ignore-cache nil) (defvar shr-external-rendering-functions nil) -(defvar shr-preliminary-table-render nil) (defvar shr-map (let ((map (make-sparse-keymap))) @@ -158,6 +157,7 @@ (shr-state nil) (shr-start nil) (shr-base nil) + (shr-preliminary-table-render 0) (shr-width (or shr-width (window-width)))) (shr-descend (shr-transform-dom dom)) (shr-remove-trailing-whitespace start (point)))) @@ -1167,7 +1167,6 @@ (setq cont (or (cdr (assq 'tbody cont)) cont)) (let* ((shr-inhibit-images t) - (shr-preliminary-table-render t) (shr-table-depth (1+ shr-table-depth)) (shr-kinsoku-shorten t) ;; Find all suggested widths. @@ -1189,7 +1188,6 @@ (frame-width)) (setq truncate-lines t)) ;; Then render the table again with these new "hard" widths. - (setq shr-preliminary-table-render nil) (shr-insert-table (shr-make-table cont sketch-widths t) sketch-widths)) ;; Finally, insert all the images after the table. The Emacs buffer ;; model isn't strong enough to allow us to put the images actually ------------------------------------------------------------ revno: 112988 committer: Ivan Kanis branch nick: trunk timestamp: Fri 2013-06-14 11:59:14 +0200 message: Fix date in ChangeLog diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-06-14 09:32:01 +0000 +++ lisp/ChangeLog 2013-06-14 09:59:14 +0000 @@ -1,4 +1,4 @@ -2013-06-99 Ivan Kanis +2013-06-14 Ivan Kanis Add support for dired in saveplace. * dired.el (dired-initial-position-hook): New variable. ------------------------------------------------------------ revno: 112987 author: Albert Krewinkel committer: Katsumi Yamaoka branch nick: trunk timestamp: Fri 2013-06-14 09:48:49 +0000 message: lisp/gnus/sieve.el: Rebind q to (sieve-bury-buffer), bind Q to (sieve-manage-quit) doc/misc/sieve.texi: (Managing Sieve): Fix port in example, fix documentation for keys q and Q (Standards): Reference RFC5804 as the defining document of the managesieve protocol diff: === modified file 'doc/misc/ChangeLog' --- doc/misc/ChangeLog 2013-06-10 02:41:49 +0000 +++ doc/misc/ChangeLog 2013-06-14 09:48:49 +0000 @@ -1,3 +1,10 @@ +2013-06-13 Albert Krewinkel + + * sieve.texi: (Managing Sieve): Fix port in example, fix documentation + for keys q and Q. + (Standards): Reference RFC5804 as the defining document of the + managesieve protocol. + 2013-06-10 Aidan Gauland * eshell.texi (Input/Output): Expand to cover new visual-command === modified file 'doc/misc/sieve.texi' --- doc/misc/sieve.texi 2013-02-12 17:36:54 +0000 +++ doc/misc/sieve.texi 2013-06-14 09:48:49 +0000 @@ -149,7 +149,7 @@ looks something like: @example -Server : mailserver:2000 +Server : mailserver:sieve 2 scripts on server, press RET on a script name edits it, or press RET on to create a new script. @@ -214,6 +214,11 @@ @findex sieve-help Displays help in the minibuffer. +@item Q +@kindex Q +@findex sieve-manage-quit +Quit Manage Sieve and close the connection. + @end table @node Examples @@ -342,7 +347,7 @@ @item RFC3028 Sieve: A Mail Filtering Language. -@item draft-martin-managesieve-03 +@item RFC5804 A Protocol for Remotely Managing Sieve Scripts @end table === modified file 'lisp/gnus/ChangeLog' --- lisp/gnus/ChangeLog 2013-06-14 03:24:05 +0000 +++ lisp/gnus/ChangeLog 2013-06-14 09:48:49 +0000 @@ -1,3 +1,8 @@ +2013-06-13 Albert Krewinkel + + * sieve.el: Rebind q to (sieve-bury-buffer), bind Q to + (sieve-manage-quit). + 2013-06-14 David Edmondson (tiny change) * mml2015.el (mml2015-maximum-key-image-dimension): New user option to === modified file 'lisp/gnus/sieve.el' --- lisp/gnus/sieve.el 2013-06-10 11:44:53 +0000 +++ lisp/gnus/sieve.el 2013-06-14 09:48:49 +0000 @@ -125,7 +125,8 @@ (define-key map "f" 'sieve-edit-script) (define-key map "o" 'sieve-edit-script-other-window) (define-key map "r" 'sieve-remove) - (define-key map "q" 'sieve-manage-quit) + (define-key map "q" 'sieve-bury-buffer) + (define-key map "Q" 'sieve-manage-quit) (define-key map [(down-mouse-2)] 'sieve-edit-script) (define-key map [(down-mouse-3)] 'sieve-manage-mode-menu) map) @@ -149,12 +150,17 @@ ;; Commands used in sieve-manage mode: (defun sieve-manage-quit () - "Quit." + "Quit Manage Sieve and close the connection." (interactive) (sieve-manage-close sieve-manage-buffer) (kill-buffer sieve-manage-buffer) (kill-buffer (current-buffer))) +(defun sieve-bury-buffer () + "Bury the Manage Sieve buffer without closing the connection." + (interactive) + (bury-buffer)) + (defun sieve-activate (&optional pos) (interactive "d") (let ((name (sieve-script-at-point)) err) ------------------------------------------------------------ revno: 112986 committer: Ivan Kanis branch nick: trunk timestamp: Fri 2013-06-14 11:32:01 +0200 message: Add support for dired in saveplace. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-06-14 04:11:00 +0000 +++ lisp/ChangeLog 2013-06-14 09:32:01 +0000 @@ -1,3 +1,11 @@ +2013-06-99 Ivan Kanis + + Add support for dired in saveplace. + * dired.el (dired-initial-position-hook): New variable. + (dired-initial-position): Call hook to place cursor position. + * saveplace.el (save-place-to-alist): Add dired position. + (save-place-dired-hook): New function. + 2013-06-14 Stefan Monnier * subr.el (eval-after-load, set-temporary-overlay-map): Use indirection === modified file 'lisp/dired.el' --- lisp/dired.el 2013-05-27 22:42:11 +0000 +++ lisp/dired.el 2013-06-14 09:32:01 +0000 @@ -217,6 +217,13 @@ ;; Note this can't simply be run inside function `dired-ls' as the hook ;; functions probably depend on the dired-subdir-alist to be OK. +(defcustom dired-initial-point-hook nil + "This hook is used to position the point. +It is run the function `dired-initial-position'." + :group 'dired + :type 'hook + :version "24.4") + (defcustom dired-dnd-protocol-alist '(("^file:///" . dired-dnd-handle-local-file) ("^file://" . dired-dnd-handle-file) @@ -2758,11 +2765,13 @@ ;; FIXME document whatever dired-x is doing. (defun dired-initial-position (dirname) "Where point should go in a new listing of DIRNAME. -Point assumed at beginning of new subdir line." +Point assumed at beginning of new subdir line. +It runs the hook `dired-initial-position-hook'." (end-of-line) (and (featurep 'dired-x) dired-find-subdir (dired-goto-subdir dirname)) - (if dired-trivial-filenames (dired-goto-next-nontrivial-file))) + (if dired-trivial-filenames (dired-goto-next-nontrivial-file)) + (run-hooks 'dired-initial-point-hook)) ;; These are hooks which make tree dired work. ;; They are in this file because other parts of dired need to call them. === modified file 'lisp/saveplace.el' --- lisp/saveplace.el 2013-03-13 18:54:05 +0000 +++ lisp/saveplace.el 2013-06-14 09:32:01 +0000 @@ -169,22 +169,24 @@ ;; file. If not, do so, then feel free to modify the alist. It ;; will be saved again when Emacs is killed. (or save-place-loaded (load-save-place-alist-from-file)) - (when (and buffer-file-name - (or (not save-place-ignore-files-regexp) - (not (string-match save-place-ignore-files-regexp - buffer-file-name)))) - (let ((cell (assoc buffer-file-name save-place-alist)) - (position (if (not (eq major-mode 'hexl-mode)) - (point) - (with-no-warnings - (1+ (hexl-current-address)))))) - (if cell - (setq save-place-alist (delq cell save-place-alist))) - (if (and save-place - (not (= position 1))) ;; Optimize out the degenerate case. - (setq save-place-alist - (cons (cons buffer-file-name position) - save-place-alist)))))) + (let ((item (or buffer-file-name + (and dired-directory (expand-file-name dired-directory))))) + (when (and item + (or (not save-place-ignore-files-regexp) + (not (string-match save-place-ignore-files-regexp + item)))) + (let ((cell (assoc item save-place-alist)) + (position (if (not (eq major-mode 'hexl-mode)) + (point) + (with-no-warnings + (1+ (hexl-current-address)))))) + (if cell + (setq save-place-alist (delq cell save-place-alist))) + (if (and save-place + (not (= position 1))) ;; Optimize out the degenerate case. + (setq save-place-alist + (cons (cons item position) + save-place-alist))))))) (defun save-place-forget-unreadable-files () "Remove unreadable files from `save-place-alist'. @@ -300,6 +302,17 @@ ;; and make sure it will be saved again for later (setq save-place t))))) +(defun save-place-dired-hook () + "Position the point in a dired buffer." + (or save-place-loaded (load-save-place-alist-from-file)) + (let ((cell (assoc (expand-file-name dired-directory) save-place-alist))) + (if cell + (progn + (or revert-buffer-in-progress-p + (goto-char (cdr cell))) + ;; and make sure it will be saved again for later + (setq save-place t))))) + (defun save-place-kill-emacs-hook () ;; First update the alist. This loads the old save-place-file if nec. (save-places-to-alist) @@ -310,6 +323,7 @@ (add-hook 'find-file-hook 'save-place-find-file-hook t) +(add-hook 'dired-initial-point-hook 'save-place-dired-hook) (unless noninteractive (add-hook 'kill-emacs-hook 'save-place-kill-emacs-hook)) ------------------------------------------------------------ revno: 112985 committer: Glenn Morris branch nick: trunk timestamp: Thu 2013-06-13 23:51:56 -0700 message: New defcustoms need :version tags diff: === modified file 'lisp/gnus/mml2015.el' --- lisp/gnus/mml2015.el 2013-06-14 03:24:05 +0000 +++ lisp/gnus/mml2015.el 2013-06-14 06:51:56 +0000 @@ -148,6 +148,7 @@ (defcustom mml2015-maximum-key-image-dimension 64 "The maximum dimension (width or height) of any key images." + :version "24.4" :group 'mime-security :type 'integer)