Now on revision 113611. ------------------------------------------------------------ revno: 113611 committer: Dmitry Antipov branch nick: trunk timestamp: Wed 2013-07-31 10:52:26 +0400 message: * lisp/emacs-lisp/re-builder.el (reb-color-display-p): * lisp/files.el (save-buffers-kill-terminal): * lisp/net/browse-url.el (browse-url): * lisp/server.el (server-save-buffers-kill-terminal): * lisp/textmodes/reftex-toc.el (reftex-toc, reftex-toc-revert): Prefer nil to selected-frame for the first arg of frame-parameter. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-07-30 20:42:15 +0000 +++ lisp/ChangeLog 2013-07-31 06:52:26 +0000 @@ -1,3 +1,12 @@ +2013-07-31 Dmitry Antipov + + * emacs-lisp/re-builder.el (reb-color-display-p): + * files.el (save-buffers-kill-terminal): + * net/browse-url.el (browse-url): + * server.el (server-save-buffers-kill-terminal): + * textmodes/reftex-toc.el (reftex-toc, reftex-toc-revert): + Prefer nil to selected-frame for the first arg of frame-parameter. + 2013-07-30 Stephen Berman * minibuffer.el (completion--twq-all): Try and preserve each === modified file 'lisp/emacs-lisp/re-builder.el' --- lisp/emacs-lisp/re-builder.el 2013-01-01 09:11:05 +0000 +++ lisp/emacs-lisp/re-builder.el 2013-07-31 06:52:26 +0000 @@ -319,7 +319,7 @@ (eq 'color ;; emacs/xemacs compatibility (if (fboundp 'frame-parameter) - (frame-parameter (selected-frame) 'display-type) + (frame-parameter nil 'display-type) (if (fboundp 'frame-property) (frame-property (selected-frame) 'display-type))))) === modified file 'lisp/files.el' --- lisp/files.el 2013-07-24 04:56:12 +0000 +++ lisp/files.el 2013-07-31 06:52:26 +0000 @@ -6479,7 +6479,7 @@ If emacsclient was started with a list of filenames to edit, then only these files will be asked to be saved." (interactive "P") - (if (frame-parameter (selected-frame) 'client) + (if (frame-parameter nil 'client) (server-save-buffers-kill-terminal arg) (save-buffers-kill-emacs arg))) === modified file 'lisp/net/browse-url.el' --- lisp/net/browse-url.el 2013-06-19 07:37:45 +0000 +++ lisp/net/browse-url.el 2013-07-31 06:52:26 +0000 @@ -816,8 +816,8 @@ ;; When connected to various displays, be careful to use the display of ;; the currently selected frame, rather than the original start display, ;; which may not even exist any more. - (if (stringp (frame-parameter (selected-frame) 'display)) - (setenv "DISPLAY" (frame-parameter (selected-frame) 'display))) + (if (stringp (frame-parameter nil 'display)) + (setenv "DISPLAY" (frame-parameter nil 'display))) (if (and (consp function) (not (functionp function))) ;; The `function' can be an alist; look down it for first match === modified file 'lisp/server.el' --- lisp/server.el 2013-02-13 04:31:09 +0000 +++ lisp/server.el 2013-07-31 06:52:26 +0000 @@ -1611,7 +1611,7 @@ If emacsclient was started with a list of filenames to edit, then only these files will be asked to be saved." - (let ((proc (frame-parameter (selected-frame) 'client))) + (let ((proc (frame-parameter nil 'client))) (cond ((eq proc 'nowait) ;; Nowait frames have no client buffer list. (if (cdr (frame-list)) === modified file 'lisp/textmodes/reftex-toc.el' --- lisp/textmodes/reftex-toc.el 2013-01-02 16:13:04 +0000 +++ lisp/textmodes/reftex-toc.el 2013-07-31 06:52:26 +0000 @@ -229,7 +229,7 @@ (car (reftex-where-am-I)))) (unsplittable (if (fboundp 'frame-property) (frame-property (selected-frame) 'unsplittable) - (frame-parameter (selected-frame) 'unsplittable))) + (frame-parameter nil 'unsplittable))) offset toc-window) (if (setq toc-window (get-buffer-window @@ -587,7 +587,7 @@ (let ((unsplittable (if (fboundp 'frame-property) (frame-property (selected-frame) 'unsplittable) - (frame-parameter (selected-frame) 'unsplittable))) + (frame-parameter nil 'unsplittable))) (reftex-rebuilding-toc t)) (if unsplittable (switch-to-buffer ------------------------------------------------------------ revno: 113610 committer: Xue Fuqiao branch nick: trunk timestamp: Wed 2013-07-31 14:27:20 +0800 message: NEWS fix. diff: === modified file 'etc/NEWS' --- etc/NEWS 2013-07-30 14:29:14 +0000 +++ etc/NEWS 2013-07-31 06:27:20 +0000 @@ -233,11 +233,16 @@ *** New variable `diary-from-outlook-function', used by the command `diary-from-outlook'. -** VC Directory Mode - -*** `D' displays diffs between VC-controlled whole tree revisions. -*** `L' lists the change log for the current VC controlled tree in a window. -*** `G' ignores the file under current version control system. +** VC and related modes + +*** In VC directory mode, `D' displays diffs between VC-controlled +whole tree revisions. + +*** In VC directory mode, `L' lists the change log for the current VC +controlled tree in a window. + +*** `C-x v G' (globally) and `G' (in VC directory mode) ignores a +file under current version control system. ** cl-lib ------------------------------------------------------------ revno: 113609 committer: Dmitry Antipov branch nick: trunk timestamp: Wed 2013-07-31 10:05:05 +0400 message: * frame.c (make_frame, x_set_frame_parameters): Use bool for boolean. (x_figure_window_size): Likewise. Adjust to return long. (syms_of_frame): Do not DEFSYM Qterminal_live_p. (toplevel): Move Qterminal_live_p to... * terminal.c (toplevel): ...here, make it static, and... (syms_of_terminal): ...DEFSYM here. * frame.h (Qterminal_live_p): Remove declaration. (make_frame, x_figure_window_size): Adjust prototype. * nsfns.m (Fx_create_frame): Use long for window flags. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2013-07-30 21:44:43 +0000 +++ src/ChangeLog 2013-07-31 06:05:05 +0000 @@ -1,3 +1,15 @@ +2013-07-31 Dmitry Antipov + + * frame.c (make_frame, x_set_frame_parameters): Use bool for boolean. + (x_figure_window_size): Likewise. Adjust to return long. + (syms_of_frame): Do not DEFSYM Qterminal_live_p. + (toplevel): Move Qterminal_live_p to... + * terminal.c (toplevel): ...here, make it static, and... + (syms_of_terminal): ...DEFSYM here. + * frame.h (Qterminal_live_p): Remove declaration. + (make_frame, x_figure_window_size): Adjust prototype. + * nsfns.m (Fx_create_frame): Use long for window flags. + 2013-07-30 Paul Eggert Fix tempfile bug on platforms lacking mkostemp and mkstemp (Bug#14986). === modified file 'src/frame.c' --- src/frame.c 2013-07-30 04:35:44 +0000 +++ src/frame.c 2013-07-31 06:05:05 +0000 @@ -69,7 +69,6 @@ static Lisp_Object Qx_frame_parameter; Lisp_Object Qx_resource_name; Lisp_Object Qterminal; -Lisp_Object Qterminal_live_p; /* Frame parameters (set or reported). */ @@ -310,7 +309,7 @@ } struct frame * -make_frame (int mini_p) +make_frame (bool mini_p) { Lisp_Object frame; register struct frame *f; @@ -2633,9 +2632,9 @@ Lisp_Object *parms; Lisp_Object *values; ptrdiff_t i, p; - int left_no_change = 0, top_no_change = 0; - int icon_left_no_change = 0, icon_top_no_change = 0; - int size_changed = 0; + bool left_no_change = 0, top_no_change = 0; + bool icon_left_no_change = 0, icon_top_no_change = 0; + bool size_changed = 0; struct gcpro gcpro1, gcpro2; i = 0; @@ -3939,8 +3938,8 @@ #define DEFAULT_ROWS 35 #define DEFAULT_COLS 80 -int -x_figure_window_size (struct frame *f, Lisp_Object parms, int toolbar_p) +long +x_figure_window_size (struct frame *f, Lisp_Object parms, bool toolbar_p) { register Lisp_Object tem0, tem1, tem2; long window_prompting = 0; @@ -4291,7 +4290,6 @@ DEFSYM (Qx_frame_parameter, "x-frame-parameter"); DEFSYM (Qterminal, "terminal"); - DEFSYM (Qterminal_live_p, "terminal-live-p"); DEFSYM (Qgeometry, "geometry"); DEFSYM (Qworkarea, "workarea"); === modified file 'src/frame.h' --- src/frame.h 2013-06-03 18:29:30 +0000 +++ src/frame.h 2013-07-31 06:05:05 +0000 @@ -952,7 +952,7 @@ extern Lisp_Object Qframep, Qframe_live_p; extern Lisp_Object Qtty, Qtty_type; extern Lisp_Object Qtty_color_mode; -extern Lisp_Object Qterminal, Qterminal_live_p; +extern Lisp_Object Qterminal; extern Lisp_Object Qnoelisp; extern struct frame *last_nonminibuf_frame; @@ -962,7 +962,7 @@ extern struct frame *decode_live_frame (Lisp_Object); extern struct frame *decode_any_frame (Lisp_Object); extern struct frame *make_initial_frame (void); -extern struct frame *make_frame (int); +extern struct frame *make_frame (bool); #ifdef HAVE_WINDOW_SYSTEM extern struct frame *make_minibuffer_frame (void); extern struct frame *make_frame_without_minibuffer (Lisp_Object, @@ -1242,7 +1242,7 @@ extern Lisp_Object x_icon_type (struct frame *); -extern int x_figure_window_size (struct frame *, Lisp_Object, int); +extern long x_figure_window_size (struct frame *, Lisp_Object, bool); extern void x_set_alpha (struct frame *, Lisp_Object, Lisp_Object); === modified file 'src/nsfns.m' --- src/nsfns.m 2013-07-16 21:35:45 +0000 +++ src/nsfns.m 2013-07-31 06:05:05 +0000 @@ -1068,7 +1068,7 @@ Lisp_Object frame, tem; Lisp_Object name; int minibuffer_only = 0; - int window_prompting = 0; + long window_prompting = 0; int width, height; ptrdiff_t count = specpdl_ptr - specpdl; struct gcpro gcpro1, gcpro2, gcpro3, gcpro4; === modified file 'src/terminal.c' --- src/terminal.c 2013-07-11 02:17:47 +0000 +++ src/terminal.c 2013-07-31 06:05:05 +0000 @@ -39,6 +39,8 @@ /* The initial terminal device, created by initial_term_init. */ struct terminal *initial_terminal; +static Lisp_Object Qterminal_live_p; + static void delete_initial_terminal (struct terminal *); /* This setter is used only in this file, so it can be private. */ @@ -549,6 +551,8 @@ This may be called just before actually deleting the terminal, or some time later. */); Vdelete_terminal_functions = Qnil; + + DEFSYM (Qterminal_live_p, "terminal-live-p"); DEFSYM (Qdelete_terminal_functions, "delete-terminal-functions"); DEFSYM (Qrun_hook_with_args, "run-hook-with-args"); ------------------------------------------------------------ revno: 113608 fixes bug: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=14806 committer: Stefan Monnier branch nick: trunk timestamp: Wed 2013-07-31 00:19:09 -0400 message: * lisp/url/url-handlers.el (url-file-name-completion) (url-file-name-all-completions): Don't signal errors. diff: === modified file 'lisp/url/ChangeLog' --- lisp/url/ChangeLog 2013-07-22 04:06:21 +0000 +++ lisp/url/ChangeLog 2013-07-31 04:19:09 +0000 @@ -1,3 +1,8 @@ +2013-07-31 Stefan Monnier + + * url-handlers.el (url-file-name-completion) + (url-file-name-all-completions): Don't signal errors (bug#14806). + 2013-07-22 Stefan Monnier * url-http.el (status): Remove, unused. === modified file 'lisp/url/url-handlers.el' --- lisp/url/url-handlers.el 2013-05-22 07:30:44 +0000 +++ lisp/url/url-handlers.el 2013-07-31 04:19:09 +0000 @@ -311,11 +311,17 @@ (put 'insert-file-contents 'url-file-handlers 'url-insert-file-contents) (defun url-file-name-completion (url directory &optional predicate) - (error "Unimplemented")) + ;; Even if it's not implemented, it's not an error to ask for completion, + ;; in case it's available (bug#14806). + ;; (error "Unimplemented") + url) (put 'file-name-completion 'url-file-handlers 'url-file-name-completion) (defun url-file-name-all-completions (file directory) - (error "Unimplemented")) + ;; Even if it's not implemented, it's not an error to ask for completion, + ;; in case it's available (bug#14806). + ;; (error "Unimplemented") + nil) (put 'file-name-all-completions 'url-file-handlers 'url-file-name-all-completions) ------------------------------------------------------------ revno: 113607 committer: Xue Fuqiao branch nick: trunk timestamp: Wed 2013-07-31 06:27:47 +0800 message: Add documentation for vc-ignore and vc-dir-ignore. * doc/emacs/emacs.texi (Top): Add menu entry. * doc/emacs/maintaining.texi (VC Ignore): New node. Document vc-ignore. (VC Directory Commands): Add vc-dir-ignore. diff: === modified file 'doc/emacs/ChangeLog' --- doc/emacs/ChangeLog 2013-07-28 05:54:24 +0000 +++ doc/emacs/ChangeLog 2013-07-30 22:27:47 +0000 @@ -1,3 +1,10 @@ +2013-07-30 Xue Fuqiao + + * emacs.texi (Top): Add menu entry. + + * maintaining.texi (VC Ignore): New node. Document vc-ignore. + (VC Directory Commands): Add vc-dir-ignore. + 2013-07-28 Xue Fuqiao * glossary.texi (Glossary): Add some entries. === modified file 'doc/emacs/emacs.texi' --- doc/emacs/emacs.texi 2013-06-05 20:57:09 +0000 +++ doc/emacs/emacs.texi 2013-07-30 22:27:47 +0000 @@ -798,6 +798,7 @@ * Old Revisions:: Examining and comparing old versions. * VC Change Log:: Viewing the VC Change Log. * VC Undo:: Canceling changes before or after committing. +* VC Ignore:: Ignore files under version control system. * VC Directory Mode:: Listing files managed by version control. * Branches:: Multiple lines of development. @ifnottex === modified file 'doc/emacs/maintaining.texi' --- doc/emacs/maintaining.texi 2013-07-27 00:09:51 +0000 +++ doc/emacs/maintaining.texi 2013-07-30 22:27:47 +0000 @@ -1,4 +1,4 @@ -@c This is part of the Emacs manual. +@c This is part of the Emacs manual., Abbrevs, This is part of the Emacs manual., Top @c Copyright (C) 1985-1987, 1993-1995, 1997, 1999-2013 Free Software @c Foundation, Inc. @c See file emacs.texi for copying conditions. @@ -56,6 +56,7 @@ * Old Revisions:: Examining and comparing old versions. * VC Change Log:: Viewing the VC Change Log. * VC Undo:: Canceling changes before or after committing. +* VC Ignore:: Ignore files under version control system. * VC Directory Mode:: Listing files managed by version control. * Branches:: Multiple lines of development. @ifnottex @@ -1032,6 +1033,23 @@ @kbd{C-x v u} to unlock a file if you lock it and then decide not to change it. +@node VC Ignore +@subsection Ignore Version Control Files + +@table @kbd +@item C-x v G +Ignore a file under current version control system. (@code{vc-ignore}). +@end table + +@kindex C-x v G +@findex vc-ignore + Many source trees contain some files that do not need to be versioned, +such as editor backups, object or bytecode files, and built programs. +You can simply not add them, but then they’ll always crop up as +unknown files. You can also tell the version control system to ignore +these files by adding them to the ignore file at the top of the tree. +@kbd{C-x v G} (@code{vc-ignore}) can help you do this. + @node VC Directory Mode @subsection VC Directory Mode @@ -1222,7 +1240,7 @@ The VC Directory buffer also defines some single-key shortcuts for VC commands with the @kbd{C-x v} prefix: @kbd{=}, @kbd{+}, @kbd{l}, -@kbd{i}, @kbd{D}, @kbd{L} and @kbd{v}. +@kbd{i}, @kbd{D}, @kbd{L}, @kbd{G} and @kbd{v}. For example, you can commit a set of edited files by opening a VC Directory buffer, where the files are listed with the @samp{edited} ------------------------------------------------------------ revno: 113606 author: Gnus developers committer: Katsumi Yamaoka branch nick: trunk timestamp: Tue 2013-07-30 22:09:37 +0000 message: Merge Changes made in Gnus master 2013-07-30 Lars Magne Ingebrigtsen * gnus-start.el (gnus-read-active-for-groups): Always mark the data as dirty to ensure nnimap data being saved. 2013-07-30 Tassilo Horn * gnus-sum.el (gnus-summary-make-menu-bar): Add "Current thread score" menu entry. * gnus-score.el (gnus-summary-current-score): Use prefix arg to show the current thread's total score instead of the current article's score. diff: === modified file 'lisp/gnus/ChangeLog' --- lisp/gnus/ChangeLog 2013-07-30 08:16:20 +0000 +++ lisp/gnus/ChangeLog 2013-07-30 22:09:37 +0000 @@ -1,5 +1,17 @@ +2013-07-30 Lars Magne Ingebrigtsen + + * gnus-start.el (gnus-read-active-for-groups): Always mark the data as + dirty to ensure nnimap data being saved. + 2013-07-30 Tassilo Horn + * gnus-sum.el (gnus-summary-make-menu-bar): Add "Current thread score" + menu entry. + + * gnus-score.el (gnus-summary-current-score): Use prefix arg to show + the current thread's total score instead of the current article's + score. + * gnus-sum.el (gnus-subthread-sort-functions): New defcustom. (gnus-sort-threads-recursively): Delete defcustom. (gnus-sort-threads-recursive): Adapt accordingly. === modified file 'lisp/gnus/gnus-score.el' --- lisp/gnus/gnus-score.el 2013-01-02 16:13:04 +0000 +++ lisp/gnus/gnus-score.el 2013-07-30 22:09:37 +0000 @@ -1071,10 +1071,15 @@ (push (cons article n) gnus-newsgroup-scored))) (gnus-summary-update-line))) -(defun gnus-summary-current-score () - "Return the score of the current article." - (interactive) - (gnus-message 1 "%s" (gnus-summary-article-score))) +(defun gnus-summary-current-score (arg) + "Return the score of the current article. + With prefix ARG, return the total score of the current (sub)thread." + (interactive "P") + (gnus-message 1 "%s" (if arg + (gnus-thread-total-score + (gnus-id-to-thread + (mail-header-id (gnus-summary-article-header)))) + (gnus-summary-article-score)))) (defun gnus-score-change-score-file (file) "Change current score alist." === modified file 'lisp/gnus/gnus-start.el' --- lisp/gnus/gnus-start.el 2013-07-19 14:50:21 +0000 +++ lisp/gnus/gnus-start.el 2013-07-30 22:09:37 +0000 @@ -1807,6 +1807,9 @@ (or (not (gnus-agent-method-p method)) (gnus-online method))) (gnus-finish-retrieve-group-infos method infos early-data) + ;; We may have altered the data now, so mark the dribble buffer + ;; as dirty so that it gets saved. + (gnus-dribble-touch) (gnus-agent-save-active method)) ;; Most backends have -retrieve-groups. ((gnus-check-backend-function 'retrieve-groups (car method)) === modified file 'lisp/gnus/gnus-sum.el' --- lisp/gnus/gnus-sum.el 2013-07-30 08:16:20 +0000 +++ lisp/gnus/gnus-sum.el 2013-07-30 22:09:37 +0000 @@ -2359,7 +2359,8 @@ ["Mark above" gnus-summary-mark-above t] ["Tick above" gnus-summary-tick-above t] ["Clear above" gnus-summary-clear-above t]) - ["Current score" gnus-summary-current-score t] + ["Current article score" gnus-summary-current-score t] + ["Current thread score" (gnus-summary-current-score 'total) t] ["Set score" gnus-summary-set-score t] ["Switch current score file..." gnus-score-change-score-file t] ["Set mark below..." gnus-score-set-mark-below t] ------------------------------------------------------------ revno: 113605 fixes bug: http://debbugs.gnu.org/14986 committer: Paul Eggert branch nick: trunk timestamp: Tue 2013-07-30 23:44:43 +0200 message: Fix tempfile bug on platforms lacking mkostemp and mkstemp. * callproc.c (create_temp_file) [! (HAVE_MKOSTEMP || HAVE_MKSTEMP)]: Do not assume that emacs_close (INT_MAX) is a no-op. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2013-07-30 13:40:46 +0000 +++ src/ChangeLog 2013-07-30 21:44:43 +0000 @@ -1,3 +1,9 @@ +2013-07-30 Paul Eggert + + Fix tempfile bug on platforms lacking mkostemp and mkstemp (Bug#14986). + * callproc.c (create_temp_file) [! (HAVE_MKOSTEMP || HAVE_MKSTEMP)]: + Do not assume that emacs_close (INT_MAX) is a no-op. + 2013-07-30 Dmitry Antipov * xfaces.c (make_face_cache): For struct face_cache, prefer === modified file 'src/callproc.c' --- src/callproc.c 2013-07-23 01:11:40 +0000 +++ src/callproc.c 2013-07-30 21:44:43 +0000 @@ -1018,13 +1018,14 @@ #else errno = EEXIST; mktemp (tempfile); - /* INT_MAX denotes success, because close (INT_MAX) does nothing. */ - fd = *tempfile ? INT_MAX : -1; + fd = *tempfile ? 0 : -1; #endif if (fd < 0) report_file_error ("Failed to open temporary file using pattern", pattern); +#if defined HAVE_MKOSTEMP || defined HAVE_MKSTEMP emacs_close (fd); +#endif } record_unwind_protect (delete_temp_file, filename_string); ------------------------------------------------------------ revno: 113604 fixes bug: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=14907 author: Stephen Berman committer: Stefan Monnier branch nick: trunk timestamp: Tue 2013-07-30 16:42:15 -0400 message: * lisp/minibuffer.el (completion--twq-all): Try and preserve each completion's case choice. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-07-30 15:11:58 +0000 +++ lisp/ChangeLog 2013-07-30 20:42:15 +0000 @@ -1,3 +1,8 @@ +2013-07-30 Stephen Berman + + * minibuffer.el (completion--twq-all): Try and preserve each + completion's case choice (bug#14907). + 2013-07-30 Lars Magne Ingebrigtsen * net/network-stream.el (open-network-stream): Mention the new === modified file 'lisp/minibuffer.el' --- lisp/minibuffer.el 2013-05-30 03:18:06 +0000 +++ lisp/minibuffer.el 2013-07-30 20:42:15 +0000 @@ -568,6 +568,17 @@ (cl-assert (string-prefix-p prefix completion 'ignore-case) t) (let* ((new (substring completion (length prefix))) (qnew (funcall qfun new)) + (qprefix + (if (not completion-ignore-case) + qprefix + ;; Make qprefix inherit the case from `completion'. + (let* ((rest (substring completion + 0 (length prefix))) + (qrest (funcall qfun rest))) + (if (completion--string-equal-p qprefix qrest) + (propertize qrest 'face + 'completions-common-part) + qprefix)))) (qcompletion (concat qprefix qnew))) ;; FIXME: Similarly here, Cygwin's mapping trips this ;; assertion. ------------------------------------------------------------ revno: 113603 fixes bug: http://debbugs.gnu.org/14938 committer: Lars Magne Ingebrigtsen branch nick: trunk timestamp: Tue 2013-07-30 17:11:58 +0200 message: Allow talking to STARTTLS servers that have no greeting * net/network-stream.el (open-network-stream): Mention the new :nogreeting parameter. (network-stream-open-starttls): Use the :nogreeting parameter. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-07-30 14:58:37 +0000 +++ lisp/ChangeLog 2013-07-30 15:11:58 +0000 @@ -1,5 +1,10 @@ 2013-07-30 Lars Magne Ingebrigtsen + * net/network-stream.el (open-network-stream): Mention the new + :nogreeting parameter. + (network-stream-open-starttls): Use the :nogreeting parameter + (bug#14938). + * net/shr.el (shr-mouse-browse-url): Remove and use `shr-browse-url'. * net/eww.el (eww-setup-buffer): Switching to the buffer seems === modified file 'lisp/net/network-stream.el' --- lisp/net/network-stream.el 2013-02-16 02:45:24 +0000 +++ lisp/net/network-stream.el 2013-07-30 15:11:58 +0000 @@ -128,6 +128,9 @@ :use-starttls-if-possible is a boolean that says to do opportunistic STARTTLS upgrades even if Emacs doesn't have built-in TLS functionality. +:nogreeting is a boolean that can be used to inhibit waiting for +a greeting from the server. + :nowait is a boolean that says the connection should be made asynchronously, if possible." (unless (featurep 'make-network-process) @@ -211,7 +214,8 @@ ;; Return (STREAM GREETING CAPABILITIES RESULTING-TYPE) (stream (make-network-process :name name :buffer buffer :host host :service service)) - (greeting (network-stream-get-response stream start eoc)) + (greeting (and (not (plist-get parameters :nogreeting)) + (network-stream-get-response stream start eoc))) (capabilities (network-stream-command stream capability-command eo-capa)) (resulting-type 'plain) ------------------------------------------------------------ revno: 113602 committer: Lars Magne Ingebrigtsen branch nick: trunk timestamp: Tue 2013-07-30 16:58:37 +0200 message: * net/shr.el (shr-mouse-browse-url): Remove and use `shr-browse-url'. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-07-30 14:31:51 +0000 +++ lisp/ChangeLog 2013-07-30 14:58:37 +0000 @@ -1,5 +1,7 @@ 2013-07-30 Lars Magne Ingebrigtsen + * net/shr.el (shr-mouse-browse-url): Remove and use `shr-browse-url'. + * net/eww.el (eww-setup-buffer): Switching to the buffer seems more natural than popping. === modified file 'lisp/net/shr.el' --- lisp/net/shr.el 2013-07-30 14:27:04 +0000 +++ lisp/net/shr.el 2013-07-30 14:58:37 +0000 @@ -143,7 +143,7 @@ (define-key map [tab] 'shr-next-link) (define-key map [backtab] 'shr-previous-link) (define-key map [follow-link] 'mouse-face) - (define-key map [mouse-2] 'shr-mouse-browse-url) + (define-key map [mouse-2] 'shr-browse-url) (define-key map "I" 'shr-insert-image) (define-key map "w" 'shr-copy-url) (define-key map "u" 'shr-copy-url) @@ -664,10 +664,11 @@ (mouse-set-point ev) (shr-browse-url)) -(defun shr-browse-url (&optional external) +(defun shr-browse-url (&optional external mouse-event) "Browse the URL under point. If EXTERNAL, browse the URL using `shr-external-browser'." - (interactive "P") + (interactive (list current-prefix-arg last-nonmenu-event)) + (mouse-set-point mouse-event) (let ((url (get-text-property (point) 'shr-url))) (cond ((not url) ------------------------------------------------------------ revno: 113601 committer: Lars Magne Ingebrigtsen branch nick: trunk timestamp: Tue 2013-07-30 16:31:51 +0200 message: (eww-setup-buffer): Switching to the buffer seems more natural than popping. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-07-30 14:29:14 +0000 +++ lisp/ChangeLog 2013-07-30 14:31:51 +0000 @@ -1,5 +1,8 @@ 2013-07-30 Lars Magne Ingebrigtsen + * net/eww.el (eww-setup-buffer): Switching to the buffer seems + more natural than popping. + * net/shr.el (shr-urlify): Put `follow-link' on URLs (bug#14815). (shr-urlify): Highlight under mouse. === modified file 'lisp/net/eww.el' --- lisp/net/eww.el 2013-07-19 14:44:16 +0000 +++ lisp/net/eww.el 2013-07-30 14:31:51 +0000 @@ -309,7 +309,7 @@ (goto-char (point-min)))) (defun eww-setup-buffer () - (pop-to-buffer (get-buffer-create "*eww*")) + (switch-to-buffer (get-buffer-create "*eww*")) (let ((inhibit-read-only t)) (remove-overlays) (erase-buffer)) ------------------------------------------------------------ revno: 113600 committer: Xue Fuqiao branch nick: trunk timestamp: Tue 2013-07-30 22:29:14 +0800 message: Fix for vc-ignore. * vc/vc-hooks.el (vc-prefix-map): Add key binding for vc-ignore. * vc/vc-dir.el (vc-dir-mode-map): Change key binding for vc-dir-ignore. diff: === modified file 'etc/NEWS' --- etc/NEWS 2013-07-30 00:29:09 +0000 +++ etc/NEWS 2013-07-30 14:29:14 +0000 @@ -237,7 +237,7 @@ *** `D' displays diffs between VC-controlled whole tree revisions. *** `L' lists the change log for the current VC controlled tree in a window. -*** `I' ignores the file under current version control system. +*** `G' ignores the file under current version control system. ** cl-lib === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-07-30 14:27:04 +0000 +++ lisp/ChangeLog 2013-07-30 14:29:14 +0000 @@ -5,6 +5,10 @@ 2013-07-30 Xue Fuqiao + * vc/vc-hooks.el (vc-prefix-map): Add key binding for vc-ignore. + + * vc/vc-dir.el (vc-dir-mode-map): Change key binding for vc-dir-ignore. + * vc/vc-svn.el (vc-svn-ignore): Remove `interactive'. Use `*vc*' buffer for output. === modified file 'lisp/vc/vc-dir.el' --- lisp/vc/vc-dir.el 2013-07-30 00:29:09 +0000 +++ lisp/vc/vc-dir.el 2013-07-30 14:29:14 +0000 @@ -279,7 +279,7 @@ (define-key map "Q" 'vc-dir-query-replace-regexp) (define-key map (kbd "M-s a C-s") 'vc-dir-isearch) (define-key map (kbd "M-s a M-C-s") 'vc-dir-isearch-regexp) - (define-key map "I" 'vc-dir-ignore) + (define-key map "G" 'vc-dir-ignore) ;; Hook up the menu. (define-key map [menu-bar vc-dir-mode] === modified file 'lisp/vc/vc-hooks.el' --- lisp/vc/vc-hooks.el 2013-06-09 11:15:54 +0000 +++ lisp/vc/vc-hooks.el 2013-07-30 14:29:14 +0000 @@ -918,6 +918,7 @@ (define-key map "c" 'vc-rollback) (define-key map "d" 'vc-dir) (define-key map "g" 'vc-annotate) + (define-key map "G" 'vc-ignore) (define-key map "h" 'vc-insert-headers) (define-key map "i" 'vc-register) (define-key map "l" 'vc-print-log) ------------------------------------------------------------ revno: 113599 committer: Lars Magne Ingebrigtsen branch nick: trunk timestamp: Tue 2013-07-30 16:27:04 +0200 message: (shr-urlify): Highlight under mouse. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-07-30 14:25:11 +0000 +++ lisp/ChangeLog 2013-07-30 14:27:04 +0000 @@ -1,6 +1,7 @@ 2013-07-30 Lars Magne Ingebrigtsen * net/shr.el (shr-urlify): Put `follow-link' on URLs (bug#14815). + (shr-urlify): Highlight under mouse. 2013-07-30 Xue Fuqiao === modified file 'lisp/net/shr.el' --- lisp/net/shr.el 2013-07-30 14:25:11 +0000 +++ lisp/net/shr.el 2013-07-30 14:27:04 +0000 @@ -833,6 +833,7 @@ (list 'shr-url url 'help-echo (if title (format "%s (%s)" url title) url) 'follow-link t + 'mouse-face 'highlight 'keymap shr-map))) (defun shr-encode-url (url) ------------------------------------------------------------ revno: 113598 fixes bug: http://debbugs.gnu.org/14815 committer: Lars Magne Ingebrigtsen branch nick: trunk timestamp: Tue 2013-07-30 16:25:11 +0200 message: * net/shr.el (shr-urlify): Put `follow-link' on URLs. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-07-30 13:53:28 +0000 +++ lisp/ChangeLog 2013-07-30 14:25:11 +0000 @@ -1,3 +1,7 @@ +2013-07-30 Lars Magne Ingebrigtsen + + * net/shr.el (shr-urlify): Put `follow-link' on URLs (bug#14815). + 2013-07-30 Xue Fuqiao * vc/vc-svn.el (vc-svn-ignore): Remove `interactive'. Use `*vc*' === modified file 'lisp/net/shr.el' --- lisp/net/shr.el 2013-07-19 14:57:28 +0000 +++ lisp/net/shr.el 2013-07-30 14:25:11 +0000 @@ -832,6 +832,7 @@ start (point) (list 'shr-url url 'help-echo (if title (format "%s (%s)" url title) url) + 'follow-link t 'keymap shr-map))) (defun shr-encode-url (url) ------------------------------------------------------------ revno: 113597 committer: Xue Fuqiao branch nick: trunk timestamp: Tue 2013-07-30 21:53:28 +0800 message: Doc fix. diff: === modified file 'doc/lispref/ChangeLog' --- doc/lispref/ChangeLog 2013-07-30 12:46:13 +0000 +++ doc/lispref/ChangeLog 2013-07-30 13:53:28 +0000 @@ -1,7 +1,7 @@ 2013-07-30 Xue Fuqiao * windows.texi (Window History): Mention the default value of - switch-to-visible-buffer. + switch-to-visible-buffer. Add cross-references. 2013-07-24 Michael Albinus === modified file 'doc/lispref/windows.texi' --- doc/lispref/windows.texi 2013-07-30 12:46:13 +0000 +++ doc/lispref/windows.texi 2013-07-30 13:53:28 +0000 @@ -2244,8 +2244,9 @@ Each list element has the form @code{(@var{buffer} @var{window-start} @var{window-pos})}, where @var{buffer} is a buffer previously shown in -the window, @var{window-start} is the window start position when that -buffer was last shown, and @var{window-pos} is the point position when +the window, @var{window-start} is the window start position +(@pxref{Window Start and End}) when that buffer was last shown, and +@var{window-pos} is the point position (@pxref{Window Point}) when that buffer was last shown in @var{window}. The list is ordered so that earlier elements correspond to more @@ -2363,6 +2364,7 @@ @code{replace-buffer-in-windows} (@pxref{Buffers and Windows}) which is called when a buffer gets killed, deletes the window in case (1) and behaves like @code{delete-windows-on} otherwise. +@c FIXME: Does replace-buffer-in-windows _delete_ a window in case (1)? When @code{bury-buffer} (@pxref{The Buffer List}) operates on the selected window (which shows the buffer that shall be buried), it === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-07-30 06:08:33 +0000 +++ lisp/ChangeLog 2013-07-30 13:53:28 +0000 @@ -3,11 +3,11 @@ * vc/vc-svn.el (vc-svn-ignore): Remove `interactive'. Use `*vc*' buffer for output. - * vc/vc-hg.el (vc-hg-ignore): Remove `interactive'; do not assume - point-min==1; fix search string; fix parentheses missing. + * vc/vc-hg.el (vc-hg-ignore): Remove `interactive'. Do not assume + point-min==1. Fix search string. Fix parentheses missing. - * vc/vc-git.el (vc-git-ignore): Remove `interactive'; do not - assume point-min==1; fix search string; fix parentheses missing. + * vc/vc-git.el (vc-git-ignore): Remove `interactive'. Do not + assume point-min==1. Fix search string. Fix parentheses missing. * vc/vc-cvs.el (vc-cvs-ignore): Remove `interactive'. ------------------------------------------------------------ revno: 113596 committer: Dmitry Antipov branch nick: trunk timestamp: Tue 2013-07-30 17:40:46 +0400 message: * xfaces.c (make_face_cache): For struct face_cache, prefer xmalloc to xzalloc and so avoid redundant call to memset. (Finternal_set_lisp_face_attribute): Fix comment typo and style. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2013-07-30 05:56:18 +0000 +++ src/ChangeLog 2013-07-30 13:40:46 +0000 @@ -1,5 +1,11 @@ 2013-07-30 Dmitry Antipov + * xfaces.c (make_face_cache): For struct face_cache, prefer + xmalloc to xzalloc and so avoid redundant call to memset. + (Finternal_set_lisp_face_attribute): Fix comment typo and style. + +2013-07-30 Dmitry Antipov + * fringe.c (draw_window_fringes, update_window_fringes) (compute_fringe_widths): * w32term.c (x_draw_glyph_string): === modified file 'src/xfaces.c' --- src/xfaces.c 2013-07-30 05:56:18 +0000 +++ src/xfaces.c 2013-07-30 13:40:46 +0000 @@ -3247,10 +3247,9 @@ #endif /* HAVE_WINDOW_SYSTEM */ else if (EQ (face, Qmenu)) { - /* Indicate that we have to update the menu bar when - realizing faces on FRAME. FRAME t change the - default for new frames. We do this by setting - setting the flag in new face caches */ + /* Indicate that we have to update the menu bar when realizing + faces on FRAME. FRAME t change the default for new frames. + We do this by setting the flag in new face caches. */ if (FRAMEP (frame)) { struct frame *f = XFRAME (frame); @@ -4167,13 +4166,11 @@ static struct face_cache * make_face_cache (struct frame *f) { - struct face_cache *c; - int size; + struct face_cache *c = xmalloc (sizeof *c); - c = xzalloc (sizeof *c); - size = FACE_CACHE_BUCKETS_SIZE * sizeof *c->buckets; - c->buckets = xzalloc (size); + c->buckets = xzalloc (FACE_CACHE_BUCKETS_SIZE * sizeof *c->buckets); c->size = 50; + c->used = 0; c->faces_by_id = xmalloc (c->size * sizeof *c->faces_by_id); c->f = f; c->menu_face_changed_p = menu_face_changed_default; ------------------------------------------------------------ revno: 113595 committer: Xue Fuqiao branch nick: trunk timestamp: Tue 2013-07-30 20:46:13 +0800 message: Doc fix. * doc/lispref/windows.texi (Window History): Mention the default value of switch-to-visible-buffer. diff: === modified file 'doc/lispref/ChangeLog' --- doc/lispref/ChangeLog 2013-07-26 17:02:22 +0000 +++ doc/lispref/ChangeLog 2013-07-30 12:46:13 +0000 @@ -1,3 +1,8 @@ +2013-07-30 Xue Fuqiao + + * windows.texi (Window History): Mention the default value of + switch-to-visible-buffer. + 2013-07-24 Michael Albinus * errors.texi (Standard Errors): Fix typo. === modified file 'doc/lispref/windows.texi' --- doc/lispref/windows.texi 2013-07-19 06:31:17 +0000 +++ doc/lispref/windows.texi 2013-07-30 12:46:13 +0000 @@ -2328,10 +2328,11 @@ @defopt switch-to-visible-buffer If this variable is non-@code{nil}, @code{switch-to-prev-buffer} and @code{switch-to-next-buffer} may switch to a buffer that is already -visible on the same frame, provided the buffer was shown in the relevant -window before. If it is @code{nil}, @code{switch-to-prev-buffer} and -@code{switch-to-next-buffer} always try to avoid switching to a buffer -that is already visible in another window on the same frame. +visible on the same frame, provided the buffer was shown in the +relevant window before. If it is @code{nil}, +@code{switch-to-prev-buffer} and @code{switch-to-next-buffer} always +try to avoid switching to a buffer that is already visible in another +window on the same frame. The default is @code{t}. @end defopt ------------------------------------------------------------ revno: 113594 author: Tassilo Horn committer: Katsumi Yamaoka branch nick: trunk timestamp: Tue 2013-07-30 08:16:20 +0000 message: Gnus: Improve subthread sorting; make subthread sorting customizable and add docs for it * doc/misc/gnus.texi (Sorting the Summary Buffer): Document new defcustom `gnus-subthread-sort-functions' and remove the obsolete documentation of `gnus-sort-threads-recursively'. * lisp/gnus/gnus-sum.el (gnus-subthread-sort-functions): New defcustom. (gnus-sort-threads-recursively): Delete defcustom. (gnus-sort-threads-recursive): Adapt accordingly. * lisp/gnus/gnus-sum.el (gnus-sort-subthreads-recursive): New function. (gnus-sort-threads-recursive): Use it. (gnus-sort-threads): Unconditionally call `gnus-sort-threads-recursive' again. Now that determines how to sort subthreads. diff: === modified file 'doc/misc/ChangeLog' --- doc/misc/ChangeLog 2013-07-29 20:28:22 +0000 +++ doc/misc/ChangeLog 2013-07-30 08:16:20 +0000 @@ -1,4 +1,10 @@ -2013-07-29 David Engster +2013-07-30 Tassilo Horn + + * gnus.texi (Sorting the Summary Buffer): Document new defcustom + `gnus-subthread-sort-functions' and remove the obsolete documentation + of `gnus-sort-threads-recursively'. + +2013-07-29 David Engster * eieio.texi (top): Make clear that EIEIO is not a full CLOS implementation. === modified file 'doc/misc/gnus.texi' --- doc/misc/gnus.texi 2013-07-26 22:24:33 +0000 +++ doc/misc/gnus.texi 2013-07-30 08:16:20 +0000 @@ -7394,10 +7394,13 @@ gnus-thread-sort-by-score)) @end lisp -By default, threads are sorted recursively, that is, first the roots, -then all subthreads, and so on. If you feel more like sorting only -the roots, so that inside a thread the original chronological order is -retained, you can set @code{gnus-sort-threads-recursively} to nil. +By default, threads including their subthreads are sorted according to +the value of @code{gnus-thread-sort-functions}. By customizing +@code{gnus-subthread-sort-functions} you can define a custom sorting +order for subthreads. This allows for example to sort threads from +high score to low score in the summary buffer, but to have subthreads +still sorted chronologically from old to new without taking their +score into account. @vindex gnus-thread-score-function The function in the @code{gnus-thread-score-function} variable (default === modified file 'lisp/gnus/ChangeLog' --- lisp/gnus/ChangeLog 2013-07-26 22:24:33 +0000 +++ lisp/gnus/ChangeLog 2013-07-30 08:16:20 +0000 @@ -1,3 +1,16 @@ +2013-07-30 Tassilo Horn + + * gnus-sum.el (gnus-subthread-sort-functions): New defcustom. + (gnus-sort-threads-recursively): Delete defcustom. + (gnus-sort-threads-recursive): Adapt accordingly. + +2013-07-30 Tassilo Horn + + * gnus-sum.el (gnus-sort-subthreads-recursive): New function. + (gnus-sort-threads-recursive): Use it. + (gnus-sort-threads): Unconditionally call `gnus-sort-threads-recursive' + again. Now that determines how to sort subthreads. + 2013-07-26 Tassilo Horn * gnus-sum.el (gnus-sort-threads-recursively): New defcustom. === modified file 'lisp/gnus/gnus-sum.el' --- lisp/gnus/gnus-sum.el 2013-07-26 22:24:33 +0000 +++ lisp/gnus/gnus-sum.el 2013-07-30 08:16:20 +0000 @@ -847,14 +847,6 @@ (function :tag "other")) (boolean :tag "Reverse order")))) -(defcustom gnus-sort-threads-recursively t - "If non-nil, `gnus-thread-sort-functions' are applied recursively. -Setting this to nil allows sorting high-score, recent, -etc. threads to the top of the summary buffer while still -retaining chronological old to new sorting order inside threads." - :group 'gnus-summary-sort - :type 'boolean) - (defcustom gnus-thread-sort-functions '(gnus-thread-sort-by-number) "*List of functions used for sorting threads in the summary buffer. By default, threads are sorted by article number. @@ -880,7 +872,11 @@ `gnus-thread-score-function'). When threading is turned off, the variable -`gnus-article-sort-functions' controls how articles are sorted." +`gnus-article-sort-functions' controls how articles are sorted. + +By default, threads and their subthreads are sorted according to +the value of this variable. To use a different sorting order for +subthreads, customize `gnus-subthread-sort-functions'." :group 'gnus-summary-sort :type '(repeat (gnus-widget-reversible @@ -897,6 +893,28 @@ (function :tag "other")) (boolean :tag "Reverse order")))) +(defcustom gnus-subthread-sort-functions 'gnus-thread-sort-functions + "*List of functions used for sorting subthreads in the summary buffer. +By default, subthreads are sorted the same as threads, i.e., +according to the value of `gnus-thread-sort-functions'." + :group 'gnus-summary-sort + :type '(choice + (const :tag "Sort subthreads like threads" gnus-thread-sort-functions) + (repeat + (gnus-widget-reversible + (choice (function-item gnus-thread-sort-by-number) + (function-item gnus-thread-sort-by-author) + (function-item gnus-thread-sort-by-recipient) + (function-item gnus-thread-sort-by-subject) + (function-item gnus-thread-sort-by-date) + (function-item gnus-thread-sort-by-score) + (function-item gnus-thread-sort-by-most-recent-number) + (function-item gnus-thread-sort-by-most-recent-date) + (function-item gnus-thread-sort-by-random) + (function-item gnus-thread-sort-by-total-score) + (function :tag "other")) + (boolean :tag "Reverse order"))))) + (defcustom gnus-thread-score-function '+ "*Function used for calculating the total score of a thread. @@ -4854,10 +4872,25 @@ (gnus-delete-line))))))) (defun gnus-sort-threads-recursive (threads func) + ;; Responsible for sorting the root articles of threads. + (let ((subthread-sort-func (if (eq gnus-subthread-sort-functions + 'gnus-thread-sort-functions) + func + (gnus-make-sort-function + gnus-subthread-sort-functions)))) + (sort (mapcar (lambda (thread) + (cons (car thread) + (and (cdr thread) + (gnus-sort-subthreads-recursive + (cdr thread) subthread-sort-func)))) + threads) func))) + +(defun gnus-sort-subthreads-recursive (threads func) + ;; Responsible for sorting subthreads. (sort (mapcar (lambda (thread) (cons (car thread) (and (cdr thread) - (gnus-sort-threads-recursive (cdr thread) func)))) + (gnus-sort-subthreads-recursive (cdr thread) func)))) threads) func)) (defun gnus-sort-threads-loop (threads func) @@ -4885,9 +4918,7 @@ (condition-case nil (let ((max-lisp-eval-depth (max max-lisp-eval-depth 5000)) (sort-func (gnus-make-sort-function gnus-thread-sort-functions))) - (if gnus-sort-threads-recursively - (gnus-sort-threads-recursive threads sort-func) - (sort threads sort-func))) + (gnus-sort-threads-recursive threads sort-func)) ;; Even after binding max-lisp-eval-depth, the recursive ;; sorter might fail for very long threads. In that case, ;; try using a (less well-tested) non-recursive sorter. ------------------------------------------------------------ revno: 113593 committer: Xue Fuqiao branch nick: trunk timestamp: Tue 2013-07-30 14:08:33 +0800 message: ChangeLog fix. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-07-30 03:46:06 +0000 +++ lisp/ChangeLog 2013-07-30 06:08:33 +0000 @@ -193,7 +193,7 @@ (vc-dir-ignore): New function. * vc/vc-cvs.el (vc-cvs-ignore): New function. - (cvs-append-to-ignore): Moved from pcvs.el. + (cvs-append-to-ignore): Move here from pcvs.el. * vc/vc-bzr.el (vc-bzr-ignore): New function.