commit fa10e77790a207aeabf354c9f5667b3dbde55bb2 (HEAD, refs/remotes/origin/master) Author: Paul Eggert Date: Sun Aug 2 15:58:02 2015 -0700 Redo text-quoting-style variable Rename help-quote-translation to text-quoting-style, and use symbols rather than characters as values. This follows suggestions along these lines by Alan Mackenzie in: http://lists.gnu.org/archive/html/emacs-devel/2015-06/msg00343.html and by Drew Adams in: http://lists.gnu.org/archive/html/emacs-devel/2015-08/msg00048.html * doc/lispref/help.texi (Keys in Documentation) * etc/NEWS: * lisp/cus-start.el (standard): * src/doc.c (Fsubstitute_command_keys, syms_of_doc): Document and/or implement the new behavior instead of the old. (syms_of_doc): New symbols 'grave' and 'straight'. diff --git a/doc/lispref/help.texi b/doc/lispref/help.texi index 779a0d5..ca8ae3f 100644 --- a/doc/lispref/help.texi +++ b/doc/lispref/help.texi @@ -347,18 +347,18 @@ and @samp{\=\=} puts @samp{\=} into the output. @strong{Please note:} Each @samp{\} must be doubled when written in a string in Emacs Lisp. -@defvar help-quote-translation +@defvar text-quoting-style @cindex curved quotes @cindex curly quotes The value of this variable specifies the style @code{substitute-command-keys} uses when generating left and right -quotes. If the variable's value is @code{?‘} (U+2018 LEFT SINGLE -QUOTATION MARK), the style is @t{‘like this’} with curved single -quotes. If the value is @code{?'} (apostrophe), the style is @t{'like -this'} with apostrophes. If the value is @code{?`} (grave accent), -the style is @t{`like this'} with grave accent and apostrophe. The -default value @code{nil} means to use curved single quotes if -displayable, and grave accent and apostrophe otherwise. +quotes. If the variable's value is @code{curve}, the style is +@t{‘like this’} with curved single quotes. If the value is +@code{straight}, the style is @t{'like this'} with straight +apostrophes. If the value is @code{grave}, the style is @t{`like +this'} with grave accent and apostrophe. The default value @code{nil} +acts like @code{curve} if curved single quotes are displayable, and +like @code{grave} otherwise. @end defvar @defun substitute-command-keys string diff --git a/etc/NEWS b/etc/NEWS index 85df716..e384d17 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -889,14 +889,14 @@ in languages like German where downcasing rules depend on grammar. +++ ** substitute-command-keys now replaces quotes. That is, it converts documentation strings' quoting style as per the -value of the new custom variable ‘help-quote-translation’: ?‘ means -use curved quotes (also known as curly quotes) ‘like this’, ?' means -use apostrophes 'like this', ?` means use grave accent and apostrophe -`like this', and nil (default) means use curved quotes if displayable -and grave accent and apostrophe otherwise. Doc strings in source code -can use either curved quotes or grave accent and apostrophe. As -before, isolated apostrophes and characters preceded by \= are output -as-is. +value of the new custom variable ‘text-quoting-style’: ‘curve’ means +use curved quotes (also known as curly quotes) ‘like this’, ‘straight’ +means use straight apostrophes 'like this', ‘grave’ means use grave +accent and apostrophe `like this', and nil (default) means use curved +quotes if displayable and grave accent and apostrophe otherwise. Doc +strings in source code can use either curved quotes or grave accent +and apostrophe. As before, isolated apostrophes and characters +preceded by \= are output as-is. +++ ** The character classes [:alpha:] and [:alnum:] in regular expressions @@ -1017,8 +1017,8 @@ In the new Electric Quote mode, you can enter curved single quotes into documentation by typing ` and '. Outside Electric Quote mode, you can enter them by typing ‘C-x 8 [’ and ‘C-x 8 ]’, or (if your Alt key works) by typing ‘A-[’ and ‘A-]’. As described above under -‘help-quote-translation’, the user can specify how to display doc -string quotes. +‘text-quoting-style’, the user can specify how to display doc string +quotes. +++ ** show-help-function's arg is converted via substitute-command-keys diff --git a/lisp/cus-start.el b/lisp/cus-start.el index 69dbf0d..7a37198 100644 --- a/lisp/cus-start.el +++ b/lisp/cus-start.el @@ -221,14 +221,16 @@ Leaving \"Default\" unchecked is equivalent with specifying a default of (no-redraw-on-reenter display boolean) ;; doc.c - (help-quote-translation help - (choice - (character :tag "Quote with curved quotes" - :value ?‘) - (character :tag "Quote 'like this'" :value ?\') - (character :tag "Quote `like this'" :value ?\`) - (const :tag "Quote with curved quotes if displayable, 'like this' otherwise" nil)) - "25.1") + (text-quoting-style + help + (choice + (const :tag "Quote with curved single quotes" curve) + (const :tag "Quote with straight apostrophes 'like this'" + straight) + (const :tag "Quote with grave accent and apostrophe `like this'" + grave) + (const :tag "Use curved quotes if displayable, grave accent and apostrophe otherwise" nil)) + "25.1") ;; dosfns.c (dos-display-scancodes display boolean) (dos-hyper-key keyboard integer) diff --git a/src/doc.c b/src/doc.c index 78a7815..36619e1 100644 --- a/src/doc.c +++ b/src/doc.c @@ -715,7 +715,7 @@ as the keymap for future \\=\\[COMMAND] substrings. Each \\=‘ and \\=’ are replaced by left and right quote. Each \\=` is replaced by left quote, and each ' preceded by \\=` and without intervening ' is replaced by right quote. Left and right quote -characters are specified by ‘help-quote-translation’. +characters are specified by ‘text-quoting-style’. \\=\\= quotes the following character and is discarded; thus, \\=\\=\\=\\= puts \\=\\= into the output, \\=\\=\\=\\[ puts \\=\\[ into the output, and @@ -751,11 +751,11 @@ Otherwise, return a new string. */) GCPRO4 (string, tem, keymap, name); enum { unicode, grave_accent, apostrophe } quote_translation = unicode; - if (EQ (Vhelp_quote_translation, make_number ('`'))) + if (EQ (Vtext_quoting_style, Qgrave)) quote_translation = grave_accent; - else if (EQ (Vhelp_quote_translation, make_number ('\''))) + else if (EQ (Vtext_quoting_style, Qstraight)) quote_translation = apostrophe; - else if (NILP (Vhelp_quote_translation) + else if (NILP (Vtext_quoting_style) && DISP_TABLE_P (Vstandard_display_table)) { Lisp_Object dv = DISP_CHAR_VECTOR (XCHAR_TABLE (Vstandard_display_table), @@ -1024,6 +1024,8 @@ void syms_of_doc (void) { DEFSYM (Qfunction_documentation, "function-documentation"); + DEFSYM (Qgrave, "grave"); + DEFSYM (Qstraight, "straight"); DEFVAR_LISP ("internal-doc-file-name", Vdoc_file_name, doc: /* Name of file containing documentation strings of built-in symbols. */); @@ -1033,15 +1035,14 @@ syms_of_doc (void) doc: /* A list of files used to build this Emacs binary. */); Vbuild_files = Qnil; - DEFVAR_LISP ("help-quote-translation", Vhelp_quote_translation, - doc: /* Style to use for single quotes in help. -The value is a left single quote character of some style. -Quote \\=‘like this\\=’ if the value is ?\\=‘ (left single quotation mark). -Quote 'like this' if the value is ?' (apostrophe). -Quote \\=`like this' if the value is ?\\=` (grave accent). -The default value is nil, which means quote with left single quotation mark -if displayable, and with grave accent otherwise. */); - Vhelp_quote_translation = Qnil; + DEFVAR_LISP ("text-quoting-style", Vtext_quoting_style, + doc: /* Style to use for single quotes when generating text. +‘curve’ means quote with curved single quotes \\=‘like this\\=’. +‘straight’ means quote with straight apostrophes 'like this'. +‘grave’ means quote with grave accent and apostrophe \\=`like this'. +The default value nil acts like ‘curve’ if curved single quotes are +displayable, and like ‘grave’ otherwise. */); + Vtext_quoting_style = Qnil; defsubr (&Sdocumentation); defsubr (&Sdocumentation_property); commit fc9206b73a254a400245578b94542cfe82c68e9c Author: Nikolaus Rath Date: Sun Aug 2 22:33:38 2015 +0000 nnimap.el: Use IMAP MOVE extension if available * lisp/gnus/nnimap.el (nnimap-request-move-article) (nnimap-process-expiry-targets, nnimap-split-incoming-mail): Use MOVE extension if available. diff --git a/lisp/gnus/nnimap.el b/lisp/gnus/nnimap.el index 594d1f5..20ba0a3 100644 --- a/lisp/gnus/nnimap.el +++ b/lisp/gnus/nnimap.el @@ -930,17 +930,19 @@ textual parts.") ;; way. (let ((message-id (message-field-value "message-id"))) (if internal-move-group - (let ((result - (with-current-buffer (nnimap-buffer) - (nnimap-command "UID COPY %d %S" - article - (utf7-encode internal-move-group t))))) - (when (car result) - (nnimap-delete-article article) - (cons internal-move-group - (or (nnimap-find-uid-response "COPYUID" (cadr result)) - (nnimap-find-article-by-message-id - internal-move-group server message-id + (with-current-buffer (nnimap-buffer) + (let* ((can-move (nnimap-capability "MOVE")) + (command (if can-move + "UID MOVE %d %S" + "UID COPY %d %S")) + (result (nnimap-command command article + (utf7-encode internal-move-group t)))) + (when (and (car result) (not can-move)) + (nnimap-delete-article article)) + (cons internal-move-group + (or (nnimap-find-uid-response "COPYUID" (caddr result)) + (nnimap-find-article-by-message-id + internal-move-group server message-id nnimap-request-articles-find-limit))))) ;; Move the article to a different method. (let ((result (eval accept-form))) @@ -980,11 +982,12 @@ textual parts.") (gnus-sorted-complement articles deletable-articles)))))) (defun nnimap-process-expiry-targets (articles group server) - (let ((deleted-articles nil)) + (let ((deleted-articles nil) + (articles-to-delete nil)) (cond ;; shortcut further processing if we're going to delete the articles ((eq nnmail-expiry-target 'delete) - (setq deleted-articles articles) + (setq articles-to-delete articles) t) ;; or just move them to another folder on the same IMAP server ((and (not (functionp nnmail-expiry-target)) @@ -994,11 +997,14 @@ textual parts.") (and (nnimap-change-group group server) (with-current-buffer (nnimap-buffer) (nnheader-message 7 "Expiring articles from %s: %s" group articles) - (nnimap-command - "UID COPY %s %S" - (nnimap-article-ranges (gnus-compress-sequence articles)) - (utf7-encode (gnus-group-real-name nnmail-expiry-target) t)) - (setq deleted-articles articles))) + (let ((can-move (nnimap-capability "MOVE"))) + (nnimap-command + (if can-move + "UID MOVE %s %S" + "UID COPY %s %S") + (nnimap-article-ranges (gnus-compress-sequence articles)) + (utf7-encode (gnus-group-real-name nnmail-expiry-target) t)) + (set (if can-move 'deleted-articles 'articles-to-delete) articles)))) t) (t (dolist (article articles) @@ -1019,11 +1025,13 @@ textual parts.") (setq target nil)) (nnheader-message 7 "Expiring article %s:%d" group article)) (when target - (push article deleted-articles)))))) - (setq deleted-articles (nreverse deleted-articles)))) + (push article articles-to-delete)))))) + (setq articles-to-delete (nreverse articles-to-delete)))) ;; Change back to the current group again. (nnimap-change-group group server) - (nnimap-delete-article (gnus-compress-sequence deleted-articles)) + (when articles-to-delete + (nnimap-delete-article (gnus-compress-sequence articles-to-delete)) + (setq deleted-articles articles-to-delete)) deleted-articles)) (defun nnimap-find-expired-articles (group) @@ -2060,6 +2068,7 @@ Return the server's response to the SELECT or EXAMINE command." nnmail-split-fancy)) (nnmail-inhibit-default-split-group t) (groups (nnimap-get-groups)) + (can-move (nnimap-capability "MOVE")) new-articles) (erase-buffer) (nnimap-command "SELECT %S" nnimap-inbox) @@ -2094,14 +2103,16 @@ Return the server's response to the SELECT or EXAMINE command." ;; Don't copy if the message is already in its ;; target group. (unless (string= group nnimap-inbox) - (push (list (nnimap-send-command - "UID COPY %s %S" - (nnimap-article-ranges ranges) - (utf7-encode group t)) - ranges) - sequences))))) + (push (list (nnimap-send-command + (if can-move + "UID MOVE %s %S" + "UID COPY %s %S") + (nnimap-article-ranges ranges) + (utf7-encode group t)) + ranges) + sequences))))) ;; Wait for the last COPY response... - (when sequences + (when (and (not can-move) sequences) (nnimap-wait-for-response (caar sequences)) ;; And then mark the successful copy actions as deleted, ;; and possibly expunge them. commit b0aa05907fe9ecd31601fcacb2aad5fd065e2595 Author: Nikolaus Rath Date: Sun Aug 2 22:28:21 2015 +0000 nnimap.el: Explicitly ask for server capabilities * lisp/gnus/nnimap.el (nnimap-open-connection-1): Don't assume full capabilities will be returned in the login-result. diff --git a/lisp/gnus/nnimap.el b/lisp/gnus/nnimap.el index 161a6b4..594d1f5 100644 --- a/lisp/gnus/nnimap.el +++ b/lisp/gnus/nnimap.el @@ -490,7 +490,7 @@ textual parts.") (funcall (nth 2 credentials))) ;; See if CAPABILITY is set as part of login ;; response. - (dolist (response (cddr login-result)) + (dolist (response (cddr (nnimap-command "CAPABILITY"))) (when (string= "CAPABILITY" (upcase (car response))) (setf (nnimap-capabilities nnimap-object) (mapcar #'upcase (cdr response)))))) commit 5f5fe275ec54194a9293690ffee3d425026ac14b Author: Paul Eggert Date: Sun Aug 2 14:55:15 2015 -0700 Treat help strings like other doc strings * doc/lispref/text.texi (Special Properties), etc/NEWS: Document this. * lisp/epa.el (epa--select-keys): Remove no-longer-needed calls to substitute-command-keys. * src/keyboard.c (show_help_echo, parse_menu_item): Call substitute-command-keys on the help string before displaying it. diff --git a/doc/lispref/text.texi b/doc/lispref/text.texi index acf7234..e63e634 100644 --- a/doc/lispref/text.texi +++ b/doc/lispref/text.texi @@ -3472,8 +3472,10 @@ function called to display help strings. These may be @code{help-echo} properties, menu help strings (@pxref{Simple Menu Items}, @pxref{Extended Menu Items}), or tool bar help strings (@pxref{Tool Bar}). The specified function is called with one argument, the help -string to display. Tooltip mode (@pxref{Tooltips,,, emacs, The GNU Emacs -Manual}) provides an example. +string to display, which is passed through +@code{substitute-command-keys} before being given to the function; see +@ref{Keys in Documentation}. Tooltip mode (@pxref{Tooltips,,, emacs, +The GNU Emacs Manual}) provides an example. @end defvar @node Format Properties diff --git a/etc/NEWS b/etc/NEWS index 4ab80f5..85df716 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -886,6 +886,7 @@ when signaling a file error. For example, it now reports "Permission denied" instead of "permission denied". The old behavior was problematic in languages like German where downcasing rules depend on grammar. ++++ ** substitute-command-keys now replaces quotes. That is, it converts documentation strings' quoting style as per the value of the new custom variable ‘help-quote-translation’: ?‘ means @@ -1008,6 +1009,7 @@ directory at point. *** New macros `thread-first' and `thread-last' allow threading a form as the first or last argument of subsequent forms. ++++ ** Documentation strings now support quoting with curved single quotes ‘like-this’ in addition to the old style with grave accent and apostrophe `like-this'. The new style looks better on today's displays. @@ -1019,6 +1021,12 @@ key works) by typing ‘A-[’ and ‘A-]’. As described above under string quotes. +++ +** show-help-function's arg is converted via substitute-command-keys +before being passed to the function. Help strings, help-echo +properties, etc. can therefore contain command key escapes and +quotation marks. + ++++ ** Time-related changes: *** Time conversion functions now accept an optional ZONE argument diff --git a/lisp/epa.el b/lisp/epa.el index f6d6045..a02f1e9 100644 --- a/lisp/epa.el +++ b/lisp/epa.el @@ -462,14 +462,12 @@ If ARG is non-nil, mark the key." (widget-create 'link :notify (lambda (&rest _ignore) (abort-recursive-edit)) :help-echo - (substitute-command-keys - "Click here or \\[abort-recursive-edit] to cancel") + "Click here or \\[abort-recursive-edit] to cancel" "Cancel") (widget-create 'link :notify (lambda (&rest _ignore) (exit-recursive-edit)) :help-echo - (substitute-command-keys - "Click here or \\[exit-recursive-edit] to finish") + "Click here or \\[exit-recursive-edit] to finish" "OK") (insert "\n\n") (epa--insert-keys keys) diff --git a/src/keyboard.c b/src/keyboard.c index 91cca8e..5f86675 100644 --- a/src/keyboard.c +++ b/src/keyboard.c @@ -2139,7 +2139,7 @@ show_help_echo (Lisp_Object help, Lisp_Object window, Lisp_Object object, if (STRINGP (help) || NILP (help)) { if (!NILP (Vshow_help_function)) - call1 (Vshow_help_function, help); + call1 (Vshow_help_function, Fsubstitute_command_keys (help)); help_echo_showing_p = STRINGP (help); } } @@ -7720,7 +7720,8 @@ parse_menu_item (Lisp_Object item, int inmenubar) /* Maybe help string. */ if (CONSP (item) && STRINGP (XCAR (item))) { - ASET (item_properties, ITEM_PROPERTY_HELP, XCAR (item)); + ASET (item_properties, ITEM_PROPERTY_HELP, + Fsubstitute_command_keys (XCAR (item))); start = item; item = XCDR (item); } @@ -7781,7 +7782,12 @@ parse_menu_item (Lisp_Object item, int inmenubar) return 0; } else if (EQ (tem, QChelp)) - ASET (item_properties, ITEM_PROPERTY_HELP, XCAR (item)); + { + Lisp_Object help = XCAR (item); + if (STRINGP (help)) + help = Fsubstitute_command_keys (help); + ASET (item_properties, ITEM_PROPERTY_HELP, help); + } else if (EQ (tem, QCfilter)) filter = item; else if (EQ (tem, QCkey_sequence)) commit d2c4309d46529bac656f332677d2c5e199577845 Author: Paul Eggert Date: Sun Aug 2 12:43:20 2015 -0700 Also mention "curly quotes" See Drew Adams's email in: http://lists.gnu.org/archive/html/emacs-devel/2015-08/msg00040.html * doc/lispref/help.texi (Keys in Documentation): Add index entry "curly quotes". * etc/NEWS: Use the phrase "curly quotes" too. diff --git a/doc/lispref/help.texi b/doc/lispref/help.texi index fde985d..779a0d5 100644 --- a/doc/lispref/help.texi +++ b/doc/lispref/help.texi @@ -349,6 +349,7 @@ string in Emacs Lisp. @defvar help-quote-translation @cindex curved quotes +@cindex curly quotes The value of this variable specifies the style @code{substitute-command-keys} uses when generating left and right quotes. If the variable's value is @code{?‘} (U+2018 LEFT SINGLE diff --git a/etc/NEWS b/etc/NEWS index 6dbe6b3..4ab80f5 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -887,15 +887,15 @@ denied" instead of "permission denied". The old behavior was problematic in languages like German where downcasing rules depend on grammar. ** substitute-command-keys now replaces quotes. -That is, it replaces left single quotation marks (‘) by left quotes -and right single quotation marks (’) by right quotes. It also -replaces grave accents by left quotes, and apostrophes that match -grave accents by right quotes. As before, isolated apostrophes and -characters preceded by \= are output as-is. Left and right quotes are -determined by new custom variable ‘help-quote-translation’. ?‘ means -quote ‘like this’, ?' means quote 'like this', ?` means quote `like -this', and nil (default) means quote ‘like this’ if displayable and -'like this' otherwise. +That is, it converts documentation strings' quoting style as per the +value of the new custom variable ‘help-quote-translation’: ?‘ means +use curved quotes (also known as curly quotes) ‘like this’, ?' means +use apostrophes 'like this', ?` means use grave accent and apostrophe +`like this', and nil (default) means use curved quotes if displayable +and grave accent and apostrophe otherwise. Doc strings in source code +can use either curved quotes or grave accent and apostrophe. As +before, isolated apostrophes and characters preceded by \= are output +as-is. +++ ** The character classes [:alpha:] and [:alnum:] in regular expressions @@ -1014,7 +1014,9 @@ apostrophe `like-this'. The new style looks better on today's displays. In the new Electric Quote mode, you can enter curved single quotes into documentation by typing ` and '. Outside Electric Quote mode, you can enter them by typing ‘C-x 8 [’ and ‘C-x 8 ]’, or (if your Alt -key works) by typing ‘A-[’ and ‘A-]’. +key works) by typing ‘A-[’ and ‘A-]’. As described above under +‘help-quote-translation’, the user can specify how to display doc +string quotes. +++ ** Time-related changes: commit 397e316b28f74d4b96ccb86203a3996fdd4755f9 Author: Ingo Lohmar Date: Sun Aug 2 17:20:53 2015 +0200 Add option `calendar-weekend-days' Previously, the face `calendar-weekend-header' was invariably applied to Sundays and Saturdays, although weekend days differ by region/culture. Making the days freely customizable, independent of `calendar-week-start-day', should cover all possible scenarios. diff --git a/ChangeLog.2 b/ChangeLog.2 index fcaff39..cd10de2 100644 --- a/ChangeLog.2 +++ b/ChangeLog.2 @@ -1,3 +1,9 @@ +2015-08-02 Ingo Lohmar + + Add option `calendar-weekend-days' + * lisp/calendar/calendar.el (calendar-generate-month): New + variable calendar-weekend-days to fontify day headers correctly. + 2015-08-02 Paul Eggert Substitute some customization etc. doc strings diff --git a/lisp/calendar/calendar.el b/lisp/calendar/calendar.el index fd2580e..078da3d 100644 --- a/lisp/calendar/calendar.el +++ b/lisp/calendar/calendar.el @@ -190,6 +190,16 @@ movement commands will not work correctly." (calendar-redraw)) :group 'calendar) +(defcustom calendar-weekend-days '(0 6) + "Days of the week considered weekend days. +0 means Sunday, 1 means Monday, and so on. + +Determines which day headers are fontified with +`calendar-weekend-header'." + :type '(repeat integer) + :version "25.1" + :group 'calendar) + (defcustom calendar-view-diary-initially-flag nil "Non-nil means display current date's diary entries on entry to calendar. The diary is displayed in another window when the calendar is first displayed, @@ -1454,7 +1464,7 @@ line." (insert (truncate-string-to-width (propertize (calendar-day-name j 'header t) - 'font-lock-face (if (memq j '(0 6)) + 'font-lock-face (if (memq j calendar-weekend-days) 'calendar-weekend-header 'calendar-weekday-header)) calendar-day-header-width nil ?\s) commit 844ae4d0640f320a1cb566037f209ea849d0978e Author: Paul Eggert Date: Sun Aug 2 08:27:13 2015 -0700 ede-proj-target-makefile docstring tweaks * lisp/cedet/ede/proj.el (ede-proj-target-makefile): Consistently use "all:" to describe the all: target, replacing three different and confusingly-quoted usages. diff --git a/lisp/cedet/ede/proj.el b/lisp/cedet/ede/proj.el index 7caee08..2bc8c09 100644 --- a/lisp/cedet/ede/proj.el +++ b/lisp/cedet/ede/proj.el @@ -162,12 +162,12 @@ These are the linkers the user can choose from when setting the :initform t :type boolean :custom boolean - :label "Part of `all:' target" + :label "Part of all: target" :group make :documentation - "Non nil means the rule created is part of the all target. + "Non nil means the rule created is part of the all: target. Setting this to nil creates the rule to build this item, but does not -include it in the ALL`all:' rule.") +include it in the all: rule.") (configuration-variables :initarg :configuration-variables :initform nil commit 1bc3c754fca31f5576a56ddfa3fce524b6b04eef Author: Eli Zaretskii Date: Sun Aug 2 17:56:39 2015 +0300 Whitespace fixes ; * src/w32fns.c (get_wm_chars, deliver_wm_chars, w32_wnd_proc): Whitespace fixes. diff --git a/src/w32fns.c b/src/w32fns.c index 31d23c4..ad93bd4 100644 --- a/src/w32fns.c +++ b/src/w32fns.c @@ -2848,11 +2848,11 @@ get_wm_chars (HWND aWnd, int *buf, int buflen, int ignore_ctrl, int ctrl, *ctrl_cnt = 0; if (is_dead) *is_dead = -1; - eassert(w32_unicode_gui); + eassert (w32_unicode_gui); while (buflen /* Should be called only when w32_unicode_gui: */ - && PeekMessageW(&msg, aWnd, WM_KEYFIRST, WM_KEYLAST, - PM_NOREMOVE | PM_NOYIELD) + && PeekMessageW (&msg, aWnd, WM_KEYFIRST, WM_KEYLAST, + PM_NOREMOVE | PM_NOYIELD) && (msg.message == WM_CHAR || msg.message == WM_SYSCHAR || msg.message == WM_DEADCHAR || msg.message == WM_SYSDEADCHAR || msg.message == WM_UNICHAR)) @@ -2861,7 +2861,7 @@ get_wm_chars (HWND aWnd, int *buf, int buflen, int ignore_ctrl, int ctrl, characters which come BEFORE the next keyup/keydown message. */ int dead; - GetMessageW(&msg, aWnd, msg.message, msg.message); + GetMessageW (&msg, aWnd, msg.message, msg.message); dead = (msg.message == WM_DEADCHAR || msg.message == WM_SYSDEADCHAR); if (is_dead) *is_dead = (dead ? msg.wParam : -1); @@ -2920,7 +2920,7 @@ get_wm_chars (HWND aWnd, int *buf, int buflen, int ignore_ctrl, int ctrl, && ((vk >= VK_NUMPAD0 && vk <= VK_DIVIDE) || (exp && ((vk >= VK_PRIOR && vk <= VK_DOWN) || vk == VK_INSERT || vk == VK_DELETE || vk == VK_CLEAR))) - && strchr("0123456789/*-+.,", code_unit)) + && strchr ("0123456789/*-+.,", code_unit)) continue; *buf++ = code_unit; buflen--; @@ -2974,7 +2974,7 @@ deliver_wm_chars (int do_translate, HWND hwnd, UINT msg, UINT wParam, windows_msg.time = GetMessageTime (); TranslateMessage (&windows_msg); } - count = get_wm_chars (hwnd, buf, sizeof(buf)/sizeof(*buf), 1, + count = get_wm_chars (hwnd, buf, sizeof (buf)/sizeof (*buf), 1, /* The message may have been synthesized by who knows what; be conservative. */ modifier_set (VK_LCONTROL) @@ -3140,7 +3140,7 @@ deliver_wm_chars (int do_translate, HWND hwnd, UINT msg, UINT wParam, if (type_CtrlAlt) { /* Out of bound bitmap: */ - SHORT r = VkKeyScanW( *b ), bitmap = 0x1FF; + SHORT r = VkKeyScanW (*b), bitmap = 0x1FF; FPRINTF_WM_CHARS((stderr, "VkKeyScanW %#06x %#04x\n", (int)r, wParam)); @@ -3203,12 +3203,12 @@ deliver_wm_chars (int do_translate, HWND hwnd, UINT msg, UINT wParam, other cases, we ignore the delivered character. */ #define S_TYPES_TO_IGNORE_CHARACTER_PAYLOAD "aldb" #define S_TYPES_TO_REPORT_CHARACTER_PAYLOAD_WITH_MODIFIERS "" - if (strchr(S_TYPES_TO_IGNORE_CHARACTER_PAYLOAD, - type_CtrlAlt[hairy])) + if (strchr (S_TYPES_TO_IGNORE_CHARACTER_PAYLOAD, + type_CtrlAlt[hairy])) return 0; /* If in neither list, report all the modifiers we see COMBINED WITH the reported character. */ - if (strchr(S_TYPES_TO_REPORT_CHARACTER_PAYLOAD_WITH_MODIFIERS, + if (strchr (S_TYPES_TO_REPORT_CHARACTER_PAYLOAD_WITH_MODIFIERS, type_CtrlAlt[hairy])) strip_ExtraMods = 0; } @@ -3572,7 +3572,7 @@ w32_wnd_proc (HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) keycode, and expansion. (Additionally, one knows boundaries of expansion of different keypresses.) */ res = deliver_wm_chars (1, hwnd, msg, wParam, lParam, 1); - windows_translate = -( res != 0 ); + windows_translate = -(res != 0); if (res > 0) /* Bound to character(s) or a deadkey */ break; /* deliver_wm_chars may make some branches after this vestigal. */ commit c6a626ebac9827f23f87ab1774609b35c3046f57 Author: Evgeny Fraimovitch Date: Sun Aug 2 17:48:42 2015 +0300 Don't abort emacsclientw when -a was specified * lib-src/emacsclient.c (set_tcp_socket) [WINDOWSNT]: Don't error out if we are in emacsclientw and -a was specified. Copyright-paperwork-exempt: yes diff --git a/lib-src/emacsclient.c b/lib-src/emacsclient.c index 357ebc7..4426240 100644 --- a/lib-src/emacsclient.c +++ b/lib-src/emacsclient.c @@ -961,6 +961,13 @@ set_tcp_socket (const char *local_server_file) /* Open up an AF_INET socket. */ if ((s = socket (AF_INET, SOCK_STREAM, IPPROTO_TCP)) < 0) { + /* Since we have an alternate to try out, this is not an error + yet; popping out a modal dialog at this stage would make -a + option totally useless for emacsclientw -- the user will + still get an error message if the alternate editor fails. */ +#ifdef WINDOWSNT + if(!(w32_window_app () && alternate_editor)) +#endif sock_err_message ("socket"); return INVALID_SOCKET; } @@ -968,6 +975,9 @@ set_tcp_socket (const char *local_server_file) /* Set up the socket. */ if (connect (s, (struct sockaddr *) &server, sizeof server) < 0) { +#ifdef WINDOWSNT + if(!(w32_window_app () && alternate_editor)) +#endif sock_err_message ("connect"); return INVALID_SOCKET; } commit 0afb8fab99951262e81d6095302de4c84d7e8847 Author: Eli Zaretskii Date: Sun Aug 2 17:40:19 2015 +0300 Fix handling of 1st keystroke on MS-Windows * src/w32fns.c (globals_of_w32fns): Initialize after_deadkey to -1. This is needed to correctly handle the session's first keystroke, if it has any modifiers. (Bug#19994) diff --git a/src/w32fns.c b/src/w32fns.c index 1c72974..31d23c4 100644 --- a/src/w32fns.c +++ b/src/w32fns.c @@ -9442,6 +9442,8 @@ globals_of_w32fns (void) else w32_unicode_gui = 0; + after_deadkey = -1; + /* MessageBox does not work without this when linked to comctl32.dll 6.0. */ InitCommonControls (); commit 6d69b0690da24bb44f6c54932923da2286bc6e13 Author: Glenn Morris Date: Sun Aug 2 06:23:54 2015 -0400 ; Auto-commit of ChangeLog files. diff --git a/ChangeLog.2 b/ChangeLog.2 index c4bb659..fcaff39 100644 --- a/ChangeLog.2 +++ b/ChangeLog.2 @@ -1,3 +1,407 @@ +2015-08-02 Paul Eggert + + Substitute some customization etc. doc strings + These changes apply substitute-command-keys to some + doc strings that were going through untranslated + when creating customization or other widgets. + * lisp/cus-edit.el (custom-group-value-create): + * lisp/wid-edit.el (widget-default-create): + (widget-push-button-value-create): + Treat the widget tag as a doc string. + * lisp/emacs-lisp/cl-extra.el (cl--describe-class-slot): + Treat the :documentation value as a doc string. + * lisp/wid-edit.el (widget-choose): + Treat the choice names as doc strings. + (widget-default-create): Treat the :doc value as a doc string. + (widget-toggle-value-create): Treat the :on and :off values + as doc strings. + (widget-documentation-string-value-create): + Substitute the doc string. + +2015-08-01 Dmitry Gutov + + Add a second argument to project-ignores + * lisp/progmodes/project.el (project-ignores): Add a second + argument DIR. + * lisp/progmodes/project.el (project-ignores): Only include the VC + ignores if DIR is the VC root. + * lisp/progmodes/xref.el (xref-find-regexp): Update accordingly. + +2015-08-01 Eli Zaretskii + + Prevent incorrect display when 'line-spacing' variable is set + * src/xdisp.c (try_window_id): Give up this optimization if the + buffer has its 'line-spacing' variable set non-nil. + +2015-08-01 Dmitry Gutov + + Don't pass NOVISIT to find-file + * lisp/progmodes/etags.el (next-file): + Don't pass NOVISIT to find-file (bug#21175). + + Ignore buffer restriction for tags-loop-eval + * lisp/progmodes/etags.el (tags-loop-continue): Ignore buffer + restriction (bug#21167). + +2015-08-01 Eli Zaretskii + + Fix a thinko in 'ffap-gopher-at-point' + * lisp/ffap.el (ffap-gopher-at-point): Fix last change. (Bug#21168) + + Honor 'line-spacing' for empty lines + * src/xdisp.c (append_space_for_newline): Honor 'line-height' + property and 'line-spacing' frame parameter or variable or + property for empty lines, by doing the same processing as in + x_produce_glyph for newline characters. (Bug#21165) + +2015-08-01 Paul Eggert + + Simplify by assuming C99 integer division + * src/floatfns.c (ceiling2, floor2, truncate2): + Assume C99 (i.e., Fortran) semantics for integer division. + This simplifies the code. + +2015-07-31 Paul Eggert + + Don't overflow if computing approximate percentage + * lisp/align.el (align-region): + * lisp/cedet/semantic.el (semantic-repeat-parse-whole-stream): + * lisp/cedet/semantic/wisent.el (wisent-parse-region): + * lisp/cus-edit.el (custom-buffer-create-internal): + * lisp/emacs-lisp/checkdoc.el (checkdoc-interactive-ispell-loop) + (checkdoc-message-interactive-ispell-loop, checkdoc-next-error) + (checkdoc-next-message-error): + * lisp/emacs-lisp/eieio-opt.el (eieio-display-method-list): + * lisp/epa.el (epa-progress-callback-function): + * lisp/erc/erc-dcc.el (erc-dcc-do-LIST-command): + * lisp/ffap.el (ffap-menu-rescan): + * lisp/gnus/nnbabyl.el (nnbabyl-retrieve-headers): + * lisp/gnus/nndiary.el (nndiary-retrieve-headers): + * lisp/gnus/nneething.el (nneething-retrieve-headers): + * lisp/gnus/nnmbox.el (nnmbox-retrieve-headers): + * lisp/gnus/nnmh.el (nnmh-retrieve-headers): + * lisp/gnus/nnml.el (nnml-retrieve-headers): + * lisp/gnus/nnspool.el (nnspool-retrieve-headers): + * lisp/gnus/nntp.el (nntp-retrieve-headers) + (nntp-retrieve-articles): + * lisp/imenu.el (imenu--relative-position): + * lisp/international/ja-dic-cnv.el (skkdic-collect-okuri-nasi) + (skkdic-convert-okuri-nasi): + * lisp/net/ange-ftp.el (ange-ftp-process-handle-hash): + * lisp/nxml/rng-valid.el (rng-compute-mode-line-string): + * lisp/org/org-list.el (org-update-checkbox-count): + * lisp/org/org.el (org-table-map-tables) + (org-update-parent-todo-statistics): + * lisp/play/decipher.el (decipher-insert-frequency-counts) + (decipher-analyze-buffer): + * lisp/profiler.el (profiler-format-percent): + * lisp/progmodes/cc-cmds.el (c-progress-update): + * lisp/progmodes/cpp.el (cpp-highlight-buffer): + * lisp/progmodes/idlwave.el (idlwave-convert-xml-system-routine-info) + (idlwave-list-load-path-shadows): + * lisp/progmodes/opascal.el (opascal-step-progress): + * lisp/progmodes/vhdl-mode.el (vhdl-update-progress-info) + (vhdl-scan-directory-contents): + * lisp/textmodes/bibtex.el (bibtex-progress-message): + * lisp/textmodes/flyspell.el (flyspell-small-region) + (flyspell-external-point-words): + * lisp/textmodes/table.el (table-recognize): + Prefer (floor (* 100.0 NUMERATOR) DENOMINATOR) when calculating + progress-report percentages and the like. This avoids problems + if (* 100 NUMERATOR) would overflow. + * lisp/gnus/gnus-registry.el (gnus-registry-import-eld): + * lisp/gnus/registry.el (registry-reindex): + Use (* 100.0 ...) rather than (* 100 ...) to avoid int overflow issues. + * lisp/descr-text.el (describe-char): + * lisp/org/org-colview.el (org-nofm-to-completion): + * lisp/ps-print.el (ps-plot): + * lisp/simple.el (what-cursor-position): + Prefer (round (* 100.0 NUMERATOR) DENOMINATOR) to a + more-complicated and less-accurate approximation. + + Fix some int overflows in profiler.c + * src/profiler.c (make_log): Make args EMACS_INT, not int, + to avoid unwanted behavior on 'int' overflow. + (make_log, evict_lower_half, record_backtrace): + Use ptrdiff_t, not int, for object indexes. + + Port to pedantic memcpy + * src/keyboard.c (menu_bar_items, tool_bar_items): + * src/xrdb.c (magic_db): + Port to pedantic memcpy implementations that reject memcpy (0, 0, 0). + + Merge from gnulib + This incorporates: + 2015-07-29 time_rz: port to pedantic memcpy + * lib/time_rz.c: Copy from gnulib. + +2015-07-31 Artur Malabarba + + * lisp/emacs-lisp/tabulated-list.el (tabulated-list-print): Fix bug + When updating the very last entry, tabulated-list-print would + erase it and then try to look at the next one (which obviously + isn't there). + +2015-07-31 Eli Zaretskii + + ;* src/w32fns.c (syms_of_w32fns): Fix last commit. + + Allow to use the old key processing code on MS-Windows + * src/w32fns.c (syms_of_w32fns) : + New variable. + (w32_wnd_proc): Use it to invoke the old code that processed + character keys, as fallback, when this variable is non-nil. Fix + typos in comments. (Bug#19994) + +2015-07-31 Ilya Zakharevich + + Improve handling of Unicode keyboard input on MS-Windows + * src/w32fns.c (get_wm_chars, deliver_wm_chars): New functions. + (FPRINTF_WM_CHARS) [DEBUG_WM_CHARS]: New macro for debugging. + (w32_wnd_proc): Call deliver_wm_chars to process non-special keys + upon receiving WM_KEYDOWN or WM_SYSKEYDOWN messages. If that is + successful, don't call TranslateMessage. (Bug#19994) + +2015-07-30 Dmitry Gutov + + Fix default-directory in changeset diffs after vc-print-log + * lisp/vc/log-view.el (log-view-diff-common): Move the + revision-granularity check back into log-view-diff-changeset. + (log-view-diff-changeset): Bind default-directory to the current + VC root. + + Rename project-directories to project-roots + * lisp/progmodes/project.el (project-search-path-function) + (project-search-path): Update the docstring. + (project-directories): Rename to `project-roots', update all + callers and implementations accordingly. + (project-root): Remove. + * lisp/progmodes/xref.el (xref-find-regexp): Use * instead of *.* + as the default file mask. + +2015-07-30 Eli Zaretskii + + Support long URLs in w32-shell-execute + * src/w32fns.c (Fw32_shell_execute): Don't use filename_to_utf16 + and filename_to_ansi to convert the DOCUMENT argument, as it could + be a URL that is not limited to MAX_PATH characters. Instead, use + MultiByteToWideChar directly, and allocate heap storage as + required to accommodate the converted string. Likewise with + non-Unicode operation. Ensure OPERATION is null-terminated, even + if it is longer than 32K bytes. (Bug#21158) + +2015-07-30 Stephen Leake + + vc-mtn-find-revision handle null rev. + * lisp/vc/vc-mtn.el (vc-mtn-find-revision): handle null rev + +2015-07-29 Stephen Leake + + Add docs for display-buffer action display-buffer-use-some-frame + * lisp/window.el (display-buffer-use-some-frame): improve doc string + * doc/lispref/windows.texi (Display Action Functions): add + display-buffer-use-some-frame + * etc/NEWS: mention display-buffer-use-some-frame + + Add display-buffer action display-buffer-use-some-frame + * lisp/window.el (display-buffer-use-some-frame): new + + Handle vc-mtn error more gently + * lisp/vc/vc-mtn.el (vc-mtn-mode-line-string): return "" when branch is nil + +2015-07-29 Michael Albinus + + Fix Tramp problems with multihops, and nc. + * lisp/net/tramp-cache.el (tramp-get-file-property) + (tramp-set-file-property, tramp-flush-file-property) + (tramp-get-connection-property, tramp-set-connection-property) + (tramp-flush-connection-property): Remove hop from vector. + * lisp/net/tramp-gw.el (tramp-gw-process-filter): Ignore errors. + * lisp/net/tramp-sh.el (tramp-methods) : Separate STDERR. + (tramp-do-copy-or-rename-file-out-of-band): Increase timeout of + netstat to 60". + (tramp-sh-handle-start-file-process): Do not show hops in prompt. + * lisp/net/tramp.el (tramp-handle-file-name-as-directory) + (tramp-handle-file-name-directory, tramp-handle-file-remote-p): + Keep hop in result. + * test/automated/tramp-tests.el (tramp-test02-file-name-dissect): + Add hop tests. + +2015-07-29 Eli Zaretskii + + Resurrect highlighting of repeated words by Flyspell Mode + * lisp/textmodes/flyspell.el (flyspell-word): Leave some non-word + characters between point and the doublon candidate, so that + flyspell-word-search-backward finds it. (Bug#21157) + + Fix redisplay of large images on expose events + * src/xdisp.c (expose_window, expose_area): Avoid comparisons + between signed negative values and unsigned values. This + prevented redisplay on expose events when the window showed a very + large image. + +2015-07-29 Paul Eggert + + Remove unnecessary stack overflow dependency + * configure.ac (HAVE_STACK_OVERFLOW_HANDLING): + Don't worry about $ac_cv_header_sys_resource_h and + $ac_cv_func_getrlimit, as they're no longer needed for this. + Problem reported by Eli Zaretskii in: + http://lists.gnu.org/archive/html/emacs-devel/2015-07/msg00443.html + +2015-07-28 Andy Moreton (tiny change) + + Pacify compilation -Wincompatible-pointer-types warnings + * src/w32proc.c (Fw32_get_codepage_charset): Avoid compilation + warning. + (CompareStringW_Proc): New typedef. + (w32_compare_strings): Use it, to pacify compiler warnings under + "-Wincompatible-pointer-types". + * src/w32fns.c (GetDiskFreeSpaceExW_Proc) + (GetDiskFreeSpaceExA_Proc): New typedefs. + (Ffile_system_info): Use them, to pacify compiler warnings under + "-Wincompatible-pointer-types". + +2015-07-28 Paul Eggert + + Fix subscript error in calculate_direct_scrolling + Use slightly-longer cost vectors. Without this change, + calculate_direct_scrolling can have a subscript violation when + FRAME_LINES (frame) <= delta. + * src/scroll.c (calculate_scrolling, calculate_direct_scrolling) + (line_ins_del, do_line_insertion_deletion_costs): + Allocate and use slightly-larger cost vectors, ones based on + FRAME_TOTAL_LINES instead of FRAME_LINES. + + Fix uninitalized value in encode_coding_object + * src/coding.c (encode_coding_object): Also initialize + coding->src_pos and coding->src_pos_byte when NILP (src_object). + This avoids later use of uninitialized storage. + +2015-07-27 Xue Fuqiao + + * doc/lispref/variables.texi (Variable Aliases): Typo fix. (Bug#21141) + +2015-07-27 Paul Eggert + + Merge from gnulib + This incorporates: + 2015-07-27 time_rz: port better to MinGW + 2015-07-27 time: port __need_time_t to MinGW + * lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate. + * lib/strftime.c, lib/time.in.h, lib/time_rz.c: Copy from gnulib. + * lib/time-internal.h: New file, from gnulib. + +2015-07-27 Eli Zaretskii + + Handle NULL pointers in w32heap.c allocation routines + * src/w32heap.c (FREEABLE_P): Consider a NULL pointer "not + freeable". + (realloc_after_dump, realloc_before_dump, free_before_dump): + Handle NULL pointers gracefully, as Emacs now seems to expect + that. + + Fix Cairo build without PNG + * src/image.c: Define PNG function when USE_CAIRO is defined, even + if HAVE_PNG is not. (Bug#21133) + + MS-Windows follow-up for recent TZ-related changes + * nt/mingw-cfg.site (ac_cv_header_pthread_h) + (gl_cv_sys_struct_timespec_in_pthread_h): Force to "no", to avoid + picking up 'struct timespec' from pthread.h, if it is installed on + the user's system. We want either the definitions from MinGW + system headers, if available, or the Gnulib replacements if not. + * nt/inc/ms-w32.h : Don't define, as we now use + lib/time.h. + * lib/time.in.h: Don't let __need_* symbols affect what happens on + MinGW. These symbols are defined by MinGW system headers, but we + don't want that to affect whether Gnulib portions of the header + are or aren't used. + +2015-07-26 Paul Eggert + + * src/ftfont.c (ftfont_close): Add comment re Bug#20890. + + New optional ZONE arg for format-time-string etc. + This simplifies time conversions in other time zones. + It also prevents display-time-world tampering with TZ (Bug#21020). + * admin/admin.el (add-release-logs): + Use improved add-log-time-format API. + * admin/merge-gnulib (GNULIB_MODULES): Add time_rz, timegm. + (GNULIB_TOOL_FLAGS): Avoid flexmember, setenv, unsetenv. + * configure.ac (tzalloc): Remove test for this, since + Emacs no longer uses HAVE_TZALLOC directly. + * doc/lispref/os.texi (Time of Day, Time Conversion) + (Time Parsing): + * etc/NEWS: Document the new behavior. + Merge from gnulib, incorporating: + 2015-07-25 strftime: fix newly-introduced bug on Solaris + 2015-07-23 fprintftime, strftime: use timezone_t args + * lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate. + * lib/strftime.c, lib/strftime.h, lib/time.in.h, m4/sys_time_h.m4: + * m4/time_h.m4: + Update from gnulib. + * lib/time_rz.c, lib/timegm.c, m4/time_rz.m4, m4/timegm.m4: + New files from gnulib. + * lisp/time-stamp.el (time-stamp-string): + * lisp/time.el (display-time-world-list) + (display-time-world-display): + Use new API, with time zone arg. + * lisp/time.el (display-time-world-display): + Fix race when current-time advances while we're running. + * lisp/vc/add-log.el (add-log-iso8601-time-zone) + (add-log-iso8601-time-string): Accept optional time zone arg. + * lisp/vc/add-log.el (add-change-log-entry): + * lisp/vc/log-edit.el (log-edit-changelog-ours-p): Use new arg. + * nt/gnulib.mk: Propagate lib/gnulib.mk changes here. + Add rules for the time module, since they're now needed + for tzalloc etc. + * src/conf_post.h (getenv_TZ, setenv_TZ): New macros. + (emacs_getenv_TZ, emacs_setenv_TZ): New decls. + * src/editfns.c: Include errno.h. + (set_time_zone_rule): Omit unnecessary forward decl. + (initial_tz): Remove, replacing with ... + (local_tz, wall_clock_tz, utc_tz): New static vars and constants. + (tzeqlen): New constant; prefer it to (sizeof "TZ=" - 1). + (emacs_localtime_rz, emacs_mktime_z, xtzalloc, xtzfree) + (tzlookup): New static functions. + (init_editfns): New arg DUMPING. All uses changed. + (init_editfns): Omit most initialization if dumping, not if + !initialized. Initialize wall_clock_tz and local_tz. + (emacs_nmemftime, format_time_string): Time zone argument can now + be any time zone, not just a boolean for UTC or local time. All + callers changed. + (Fformat_time_string, Fencode_time, Fcurrent_time_string) + (Fcurrent_time_zone): New optional arg ZONE. + (Fdecode_time, Fset_time_zone_rule): ZONE arg can now also take + the same form as with the other new additions. + (decode_time_zone): Remove; no longer needed. + (tzvalbuf): Now file-scope. + (emacs_getenv_TZ, emacs_setenv_TZ): New functions. + (syms_of_editfns): Define Qwall. + * src/editfns.c (mktime_z) [!HAVE_TZALLOC]: + * src/systime.h (mktime_z, timezone_t, tzalloc, tzfree) + [!HAVE_TZALLOC]: + Remove; now supplied by gnulib. + * src/emacs.c (main): + * src/lisp.h (init_editfns): Adjust to init_editfns API change. + +2015-07-26 Shigeru Fukaya + + Fix infinite loop in delete-consecutive-dups + * lisp/subr.el (delete-consecutive-dups): Work even if the last + element is nil (Bug#20588). Avoid rescan of a circular list in + deletion of last element. + +2015-07-26 Martin Rudalics + + Have `x-frame-geometry' return nil for terminal and initial frames (Bug#21132) + * src/nsfns.m (Fx_frame_geometry): + * src/xfns.c (Fx_frame_geometry): Return nil for initial and + terminal frames. + * src/w32fns.c (Fw32_frame_menu_bar_size, Fw32_frame_rect) + (Fx_frame_geometry): Return nil for terminal frames + 2015-07-26 HOSOYA Kei (tiny change) * etc/tutorials/TUTORIAL.ja: Improve translation. @@ -8170,7 +8574,7 @@ This file records repository revisions from commit 9d56a21e6a696ad19ac65c4b405aeca44785884a (exclusive) to -commit 2cf501ce1b77e6e409871eef7b9d31a08e73cfc0 (inclusive). +commit bd3b426ebb7a60045839e97c9da9bfd249fab1f1 (inclusive). See ChangeLog.1 for earlier changes. ;; Local Variables: