commit 9640e9f4e95cd95c04875e90a4ff638e1e51f977 (HEAD, refs/remotes/origin/master) Author: Tino Calancha Date: Tue Oct 11 11:47:32 2016 +0900 form-at-point work for all kind of THINGS * lisp/thingatpt.el (form-at-point): Use thing-at-point--read-from-whole-string only if thing-at-point returns a string (Bug#24605). diff --git a/lisp/thingatpt.el b/lisp/thingatpt.el index df5c52d..6d1014b 100644 --- a/lisp/thingatpt.el +++ b/lisp/thingatpt.el @@ -586,9 +586,11 @@ Signal an error if the entire string was not used." "This is an internal thingatpt function and should not be used.") (defun form-at-point (&optional thing pred) - (let ((sexp (ignore-errors - (thing-at-point--read-from-whole-string - (thing-at-point (or thing 'sexp)))))) + (let* ((obj (thing-at-point (or thing 'sexp))) + (sexp (if (stringp obj) + (ignore-errors + (thing-at-point--read-from-whole-string obj)) + obj))) (if (or (not pred) (funcall pred sexp)) sexp))) ;;;###autoload commit db677f5dfedc0a665211d1113251e77a01e5d5e3 Author: Eli Zaretskii Date: Mon Oct 10 19:22:40 2016 +0300 Fix compilation warnings on MS-Windows * src/w32.c (_ANONYMOUS_UNION, _ANONYMOUS_STRUCT): Remove definitions of these macros, which seem to be unneeded and cause compiler warnings. * src/fileio.c (NOMINMAX): Avoid compiler warnings about unused macros. * src/firstfile.c (dummy_main_reference): Rename from 'dummy' and make it external, to avoid compiler warning. diff --git a/src/fileio.c b/src/fileio.c index 8f16d1e..6026d8e 100644 --- a/src/fileio.c +++ b/src/fileio.c @@ -60,6 +60,10 @@ along with GNU Emacs. If not, see . */ #ifdef WINDOWSNT #define NOMINMAX 1 #include +/* The redundant #ifdef is to avoid compiler warning about unused macro. */ +#ifdef NOMINMAX +#undef NOMINMAX +#endif #include #include "w32.h" #endif /* not WINDOWSNT */ diff --git a/src/firstfile.c b/src/firstfile.c index 188d4f8..962d6f6 100644 --- a/src/firstfile.c +++ b/src/firstfile.c @@ -26,7 +26,7 @@ char my_begbss[1]; /* Do not initialize this variable. */ static char _my_begbss[1]; char * my_begbss_static = _my_begbss; -/* Add a dummy reference to ensure emacs.obj is linked in. */ +/* Add a dummy reference to ensure emacs.o is linked in. */ extern int main (int, char **); -static int (*dummy) (int, char **) = main; +int (*dummy_main_reference) (int, char **) = main; #endif diff --git a/src/w32.c b/src/w32.c index 517e286..ad7d94a 100644 --- a/src/w32.c +++ b/src/w32.c @@ -94,13 +94,6 @@ extern void dynlib_reset_last_error (void); #include #include -/* MinGW64 defines these in its _mingw.h. */ -#ifndef _ANONYMOUS_UNION -# define _ANONYMOUS_UNION -#endif -#ifndef _ANONYMOUS_STRUCT -# define _ANONYMOUS_STRUCT -#endif #include /* Some versions of compiler define MEMORYSTATUSEX, some don't, so we use a different name to avoid compilation problems. */ @@ -282,8 +275,6 @@ extern int sys_select (int, SELECT_TYPE *, SELECT_TYPE *, SELECT_TYPE *, struct timespec *, void *); extern int sys_dup (int); - - /* Initialization states. commit fd45b3f604cd52c17bd32fe27c425bc79545f52c Author: Paul Eggert Date: Mon Oct 10 07:58:18 2016 -0700 Spelling and clarity fixes diff --git a/doc/lispref/windows.texi b/doc/lispref/windows.texi index 2d340e3..8140c21 100644 --- a/doc/lispref/windows.texi +++ b/doc/lispref/windows.texi @@ -4630,8 +4630,9 @@ may fail with an @code{invalid-read-syntax} error. Some functions (notably @code{delete-window}, @code{delete-other-windows} and @code{split-window}), may behave specially when the window specified by their @var{window} argument has -the homonymous parameter set. You can override such special behavior by -binding the following variable to a non-@code{nil} value: +a parameter whose name is equal to the function's name. You can +override such special behavior by binding the following variable to a +non-@code{nil} value: @defvar ignore-window-parameters If this variable is non-@code{nil}, some standard functions do not @@ -4737,7 +4738,7 @@ applications. It might be replaced by an improved solution in future versions of Emacs. @end table -The @code{window-atom} parameter is used for implemeting atomic windows. +The @code{window-atom} parameter is used for implementing atomic windows. @node Window Hooks commit 46b83c0f08f936eb1a0ae761db557169fe295cc7 Merge: be589ea 4f406e9 Author: Paul Eggert Date: Mon Oct 10 07:39:05 2016 -0700 Merge from origin/emacs-25 4f406e9 CC Mode manual: remove reference to former Emacs variable las... 44e402e Allow to disable compaction of font caches 4ff4b66 Allow selection of font for symbols as in Emacs 24.x c03d44b ; Fix last commit d4be4f3 ; Fix indexing in lispref manual ed399f2 ; Minor improvement in documentation of generators 197a6bc Fix horizontal scrolling during Isearch 3566644 Fix infloop in redisplay due to truncated lines and invisible... # Conflicts: # etc/NEWS commit be589ea0dc71063d26595378df303a2a1c25ee4e Merge: cf9bdf1 a6e0a67 Author: Paul Eggert Date: Mon Oct 10 07:35:33 2016 -0700 ; Merge from origin/emacs-25 The following commits were skipped: a6e0a67 gitmerge: Add cherry pick to gitmerge-skip-regexp fb12af2 ; Merge: some backports from master 6234012 Don't require isearch-update before isearch-done 5e50114 Avoid error in icalendar--read-element ace9d22 Make a menu less ambiguous e683495 Doc fix for url-http commit cf9bdf12da73bef67a6cc27a71ab76c67af24111 Merge: 53d1b9d c4a5e7e Author: Paul Eggert Date: Mon Oct 10 07:35:33 2016 -0700 Merge from origin/emacs-25 c4a5e7e Improve documentation of 'menu-bar-open' commit 53d1b9dbbee97f674330cda191f889aa55db0e20 Merge: 97046e8 34b6df1 Author: Paul Eggert Date: Mon Oct 10 07:35:33 2016 -0700 ; Merge from origin/emacs-25 The following commits were skipped: 34b6df1 Fix compilation with MinGW runtime 3.22.2 and w32api 3.18.2 4ef9ea2 Add documentation note from Alex 9d6026d * src/alloc.c: call only non-null finalizers commit 97046e811c738a21e0c4badbb5bab146b6adf6c8 Merge: 314f397 4b347fe Author: Paul Eggert Date: Mon Oct 10 07:35:32 2016 -0700 Merge from origin/emacs-25 4b347fe Clarify that doc fixes are okay in feature freeze 01669ad Avoid crashes when setting the cursor f2144ee Restore 'command-debug-status' functionality ec6e4b9 ; Minor addition to CONTRIBUTE commit 314f3972bf864a527494db043f01d603b0eef522 Merge: 8a64559 e1b2918 Author: Paul Eggert Date: Mon Oct 10 07:35:32 2016 -0700 ; Merge from origin/emacs-25 The following commit was skipped: e1b2918 Document yank behavior in the right place commit 8a645599891bcec6d7a91ae538481df467ba3391 Merge: 2923b3d 74b4f13 Author: Paul Eggert Date: Mon Oct 10 07:35:31 2016 -0700 Merge from origin/emacs-25 74b4f13 Document nil args of compare-buffer-substrings 9fc81bc * doc/misc/message.texi (Bcc Warning): Fix markup. 95baa25 * doc/misc/message.texi (Bcc Warning): Document mml-secure-sa... commit 2923b3dd14b9a5a46df210e2fef7e65742e7f75d Merge: 4e42e84 6234012 Author: Paul Eggert Date: Mon Oct 10 07:35:31 2016 -0700 ; Merge from origin/emacs-25 The following commits were skipped: 6234012 Don't require isearch-update before isearch-done 5e50114 Avoid error in icalendar--read-element ace9d22 Make a menu less ambiguous e683495 Doc fix for url-http commit 4e42e8453e42eabe397592b057fb287906a5fd1f Merge: 5b77459 f1247f0 Author: Paul Eggert Date: Mon Oct 10 07:35:31 2016 -0700 Merge from origin/emacs-25 f1247f0 * lisp/frame.el (blink-cursor-delay): Doc fix. (Bug#24372) ace7f14 * lisp/gnus/gnus-art.el (gnus-button-handle-library): Fix typo. bbf1ffd Regexp Functions doc minor fixes commit 4f406e9813e073b675bb45613bf1dd111eec2368 (refs/remotes/origin/emacs-25) Author: Alan Mackenzie Date: Sun Oct 9 13:42:57 2016 +0000 CC Mode manual: remove reference to former Emacs variable last-command-char * doc/misc/cc-mode.texi (Hanging Semicolons and Commas): Replace reference to variable last-command-char by one to macro c-last-command-char. diff --git a/doc/misc/cc-mode.texi b/doc/misc/cc-mode.texi index 30b750a..2d95fb8 100644 --- a/doc/misc/cc-mode.texi +++ b/doc/misc/cc-mode.texi @@ -3543,10 +3543,11 @@ use, add this function to the front of the @example (defun c-semi&comma-no-newlines-before-nonblanks () (save-excursion - (if (and (eq last-command-char ?\;) - (zerop (forward-line 1)) - (not (looking-at "^[ \t]*$"))) - 'stop + (if (and (= (c-last-command-char) ?\;) + (zerop (forward-line 1)) + (bolp) ; forward-line has funny behavior at eob. + (not (looking-at "^[ \t]*$"))) + 'stop nil))) @end example @end defun commit 44e402ead35eb9b4d0bf8a94a4d3ca933629aba9 Author: Eli Zaretskii Date: Sat Oct 8 22:31:14 2016 +0300 Allow to disable compaction of font caches * src/font.c (syms_of_font) : New boolean variable. * src/alloc.c (compact_font_caches): Use it to bypass the call to compact_font_cache_entry. (Bug#24634) (Bug#24565) * etc/NEWS: Mention the new variable. diff --git a/etc/NEWS b/etc/NEWS index 8c27289..3e686f9 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -38,6 +38,12 @@ fontsets if the default font supports these characters. Set this variable to nil to disable the new behavior and get back the old behavior. +--- +** New variable 'inhibit-compacting-font-caches'. +Set this variable to a non-nil value to speed up display of characters +using large fonts, at the price of a larger memory footprint of the +Emacs session. + * Installation Changes in Emacs 25.1 diff --git a/src/alloc.c b/src/alloc.c index f33d93f..c7f58a8 100644 --- a/src/alloc.c +++ b/src/alloc.c @@ -5584,7 +5584,11 @@ compact_font_caches (void) for (t = terminal_list; t; t = t->next_terminal) { Lisp_Object cache = TERMINAL_FONT_CACHE (t); - if (CONSP (cache)) + /* Inhibit compacting the caches if the user so wishes. Some of + the users don't mind a larger memory footprint, but do mind + slower redisplay. */ + if (!inhibit_compacting_font_caches + && CONSP (cache)) { Lisp_Object entry; diff --git a/src/font.c b/src/font.c index 2519599..b85956f 100644 --- a/src/font.c +++ b/src/font.c @@ -5430,6 +5430,19 @@ Set it to nil to enable logging. If the environment variable EMACS_FONT_LOG is set at startup, it defaults to nil. */); Vfont_log = Qnil; + DEFVAR_BOOL ("inhibit-compacting-font-caches", inhibit_compacting_font_caches, + doc: /* +If non-nil, don't compact font caches during GC. +Some large fonts cause lots of consing and trigger GC. If they +are removed from the font caches, they will need to be opened +again during redisplay, which slows down redisplay. If you +see font-related delays in displaying some special characters, +and cannot switch to a smaller font for those characters, set +this variable non-nil. +Disabling compaction of font caches might enlarge the Emacs memory +footprint in sessions that use lots of different fonts. */); + inhibit_compacting_font_caches = 0; + #ifdef HAVE_WINDOW_SYSTEM #ifdef HAVE_FREETYPE syms_of_ftfont (); commit 4ff4b66df8da175d8df292d12a30ab50285b6917 Author: Eli Zaretskii Date: Sat Oct 8 22:03:51 2016 +0300 Allow selection of font for symbols as in Emacs 24.x * src/fontset.c (syms_of_fontset) : New boolean variable. (face_for_char): Use it to fall back to pre-Emacs 25.1 behavior when selecting fonts for displaying symbol and punctuation characters. (Bug#24644) * etc/NEWS: Mention the new variable. diff --git a/etc/NEWS b/etc/NEWS index 274226b..8c27289 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -24,8 +24,19 @@ This is a bug-fix release with (almost) no new features. `find-function-after-hook'. +++ -*** New basic face 'fixed-pitch-serif', for a fixed-width font with serifs. -The Info-quoted and tex-verbatim faces now default to inheriting from it. +** New basic face 'fixed-pitch-serif', for a fixed-width font with serifs. +The Info-quoted and tex-verbatim faces now default to inheriting from +it. + +--- +** New variable 'use-default-font-for-symbols' for backward compatibility. +This variable allows to get back pre-Emacs 25 behavior whereby the +font for displaying symbol and punctuation characters was always +selected according to your fontset setup. Emacs 25 by default tries +to use the default face's font for such characters, disregarding the +fontsets if the default font supports these characters. Set this +variable to nil to disable the new behavior and get back the old +behavior. * Installation Changes in Emacs 25.1 diff --git a/src/fontset.c b/src/fontset.c index dc037a8..74e7df5 100644 --- a/src/fontset.c +++ b/src/fontset.c @@ -883,7 +883,8 @@ face_for_char (struct frame *f, struct face *face, int c, if (ASCII_CHAR_P (c) || CHAR_BYTE8_P (c)) return face->ascii_face->id; - if (c > 0 && EQ (CHAR_TABLE_REF (Vchar_script_table, c), Qsymbol)) + if (use_default_font_for_symbols /* let the user disable this feature */ + && c > 0 && EQ (CHAR_TABLE_REF (Vchar_script_table, c), Qsymbol)) { /* Fonts often have characters for punctuation and other symbols, even if they don't match the 'symbol' script. So @@ -2112,6 +2113,16 @@ This affects how a composite character which contains such a character is displayed on screen. */); Vuse_default_ascent = Qnil; + DEFVAR_BOOL ("use-default-font-for-symbols", use_default_font_for_symbols, + doc: /* +If non-nil, use the default face's font for symbols and punctuation. + +By default, Emacs will try to use the default face's font for +displaying symbol and punctuation characters, disregarding the +fontsets, if the default font can display the character. +Set this to nil to make Emacs honor the fontsets instead. */); + use_default_font_for_symbols = 1; + DEFVAR_LISP ("ignore-relative-composition", Vignore_relative_composition, doc: /* Char table of characters which are not composed relatively. commit c03d44bb3d975a982a9d84eea54b73cc3d049035 Author: Eli Zaretskii Date: Sat Oct 8 17:16:33 2016 +0300 ; Fix last commit * doc/lispref/functions.texi (Argument List): Restore the index entry for 'wrong-number-of-arguments'. (Bug#24222) * doc/lispref/errors.texi: Fix cross-reference for 'wrong-number-of-arguments'. diff --git a/doc/lispref/errors.texi b/doc/lispref/errors.texi index c2bab01..03aea4e 100644 --- a/doc/lispref/errors.texi +++ b/doc/lispref/errors.texi @@ -190,8 +190,7 @@ The message is @samp{Symbol's value as variable is void}. @xref{Accessing Variables}. @item wrong-number-of-arguments -The message is @samp{Wrong number of arguments}. @xref{Classifying -Lists}. +The message is @samp{Wrong number of arguments}. @xref{Argument List}. @item wrong-type-argument The message is @samp{Wrong type argument}. @xref{Type Predicates}. diff --git a/doc/lispref/functions.texi b/doc/lispref/functions.texi index db272fb..bc04bee 100644 --- a/doc/lispref/functions.texi +++ b/doc/lispref/functions.texi @@ -310,6 +310,7 @@ stored as symbol function definitions to produce named functions @node Argument List @subsection Other Features of Argument Lists +@kindex wrong-number-of-arguments @cindex argument binding @cindex binding arguments @cindex argument lists, features commit d4be4f3f122625cb0e599ad83714f6bec35db83d Author: Eli Zaretskii Date: Sat Oct 8 17:01:54 2016 +0300 ; Fix indexing in lispref manual * doc/lispref/functions.texi (Argument List): Remove the index entry for 'wrong-number-of-arguments'. (Bug#24222) diff --git a/doc/lispref/functions.texi b/doc/lispref/functions.texi index a2e94c3..db272fb 100644 --- a/doc/lispref/functions.texi +++ b/doc/lispref/functions.texi @@ -310,7 +310,6 @@ stored as symbol function definitions to produce named functions @node Argument List @subsection Other Features of Argument Lists -@kindex wrong-number-of-arguments @cindex argument binding @cindex binding arguments @cindex argument lists, features @@ -318,7 +317,8 @@ stored as symbol function definitions to produce named functions Our simple sample function, @code{(lambda (a b c) (+ a b c))}, specifies three argument variables, so it must be called with three arguments: if you try to call it with only two arguments or four -arguments, you get a @code{wrong-number-of-arguments} error. +arguments, you get a @code{wrong-number-of-arguments} error +(@pxref{Errors}). It is often convenient to write a function that allows certain arguments to be omitted. For example, the function @code{substring} commit ed399f26fa78fa69171e32b34af9a77debf57fad Author: Wilfred Hughes Date: Sat Oct 8 16:44:47 2016 +0300 ; Minor improvement in documentation of generators * doc/lispref/control.texi (Generators): Add a 'require' to the example code. (Bug#24539) diff --git a/doc/lispref/control.texi b/doc/lispref/control.texi index 0cdb035..0c08279 100644 --- a/doc/lispref/control.texi +++ b/doc/lispref/control.texi @@ -805,6 +805,7 @@ The following piece of code demonstrates some important principles of working with iterators. @example +(require 'generator) (iter-defun my-iter (x) (iter-yield (1+ (iter-yield (1+ x)))) ;; Return normally commit 197a6bcc20cecba40b56ae478d42a33eb1e19d57 Author: Eli Zaretskii Date: Sat Oct 8 12:35:17 2016 +0300 Fix horizontal scrolling during Isearch * lisp/isearch.el (isearch-update): Compute the window's body width in a way that is correct when there are no fringes. (Bug#24584) diff --git a/lisp/isearch.el b/lisp/isearch.el index 9df7627..0181951 100644 --- a/lisp/isearch.el +++ b/lisp/isearch.el @@ -1012,7 +1012,8 @@ The last thing is to trigger a new round of lazy highlighting." ;; pos-visible-in-window-group-p returns non-nil, but ;; the X coordinate it returns is 1 pixel beyond ;; the last visible one. - (>= (car visible-p) (window-body-width nil t))) + (>= (car visible-p) + (* (window-max-chars-per-line) (frame-char-width)))) (set-window-hscroll (selected-window) current-scroll)))) (if isearch-other-end (if (< isearch-other-end (point)) ; isearch-forward? commit 3566644a332f42c2fb68e93f04f2cec92917fcc9 Author: Eli Zaretskii Date: Sat Oct 8 10:52:52 2016 +0300 Fix infloop in redisplay due to truncated lines and invisible text * src/xdisp.c (forward_to_next_line_start): Don't call 'get_next_display_element' after finding the end of line. This avoids setting the row's end position to the wrong value when the next screen line begins with invisible text; that wrong value caused set_cursor_from_row position the cursor in the wrong screen line, and eventually triggered bug#24109. diff --git a/src/xdisp.c b/src/xdisp.c index 42c6fb7..a13830c 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -6298,9 +6298,10 @@ forward_to_next_line_start (struct it *it, bool *skipped_p, } else { - while (get_next_display_element (it) - && !newline_found_p) + while (!newline_found_p) { + if (!get_next_display_element (it)) + break; newline_found_p = ITERATOR_AT_END_OF_LINE_P (it); if (newline_found_p && it->bidi_p && bidi_it_prev) *bidi_it_prev = it->bidi_it; commit a6e0a6770129e612398c8db98cd214586dc250f4 Author: David Engster Date: Sun May 1 21:05:18 2016 +0200 gitmerge: Add cherry pick to gitmerge-skip-regexp * gitmerge.el (gitmerge-skip-regexp): Add "cherry picked from commit", which is the string appended by 'git cherry-pick -x'. (cherry picked from commit f648e4866981b142fca788372e1fd9013a0bb16a) diff --git a/admin/gitmerge.el b/admin/gitmerge.el index a08a369..b74c128 100644 --- a/admin/gitmerge.el +++ b/admin/gitmerge.el @@ -48,8 +48,10 @@ (require 'smerge-mode) (defvar gitmerge-skip-regexp - "back[- ]?port\\|merge\\|sync\\|re-?generate\\|bump version\\|from trunk\\|\ -Auto-commit" + ;; We used to include "sync" in there, but in my experience it only + ;; caused false positives. --Stef + "back[- ]?port\\|cherry picked from commit\\|\\(do not\\|no need to\\) merge\\|\ +re-?generate\\|bump version\\|from trunk\\|Auto-commit" "Regexp matching logs of revisions that might be skipped. `gitmerge-missing' will ask you if it should skip any matches.") commit fb12af2084a751566ff5445654d75f5653f2253d Merge: c4a5e7e 6234012 Author: Noam Postavsky Date: Thu Oct 6 21:20:28 2016 -0400 ; Merge: some backports from master Regression in Emacs 25.1 * "Don't require isearch-update before isearch-done" This bug actually crashes in emacs-25 * "Avoid error in icalendar--read-element" Doc fixes * "Make a menu less ambiguous" * "Doc fix for url-http" commit c4a5e7e18d357c168900215165b0cb41bad06a83 Author: Eli Zaretskii Date: Thu Oct 6 21:46:48 2016 +0300 Improve documentation of 'menu-bar-open' * lisp/term/w32-win.el (w32-menu-bar-open): Clarify that sometimes two ESC keypresses are needed to exit the menu. * doc/emacs/screen.texi (Menu Bar): Qualify the description of how to exit menus. (Bug#24596) diff --git a/doc/emacs/screen.texi b/doc/emacs/screen.texi index 580df5f..7165757 100644 --- a/doc/emacs/screen.texi +++ b/doc/emacs/screen.texi @@ -304,7 +304,10 @@ the usual way (@pxref{Key Help}). item by pressing @key{F10} (to run the command @code{menu-bar-open}). You can then navigate the menus with the arrow keys. To activate a selected menu item, press @key{RET}; to cancel menu navigation, press -@kbd{C-g} or @kbd{@key{ESC} @key{ESC} @key{ESC}}. +@kbd{C-g} or @kbd{@key{ESC} @key{ESC} @key{ESC}}. (However, note that +when Emacs was built with a GUI toolkit, the menus are drawn and +controlled by the toolkit, and the key sequences to cancel menu +navigation might be different from the above description.) @kindex M-` @findex tmm-menubar diff --git a/lisp/term/w32-win.el b/lisp/term/w32-win.el index 134e310..5c56d05 100644 --- a/lisp/term/w32-win.el +++ b/lisp/term/w32-win.el @@ -177,12 +177,15 @@ the last file dropped is selected." ;;; make f10 activate the real menubar rather than the mini-buffer menu ;;; navigation feature. - (defun w32-menu-bar-open (&optional frame) +(defun w32-menu-bar-open (&optional frame) "Start key navigation of the menu bar in FRAME. This initially activates the first menu-bar item, and you can then navigate with the arrow keys, select a menu entry with the Return key or cancel with -the Escape key. If FRAME has no menu bar, this function does nothing. +one or two Escape keypresses. (Two Escape keypresses are needed when a +menu was already dropped down by pressing Return.) + +If FRAME has no menu bar, this function does nothing. If FRAME is nil or not given, use the selected frame. If FRAME does not have the menu bar enabled, display a text menu using commit 34b6df19a4dafe0227ab663c971079e68e17f393 Author: Eli Zaretskii Date: Thu Oct 6 18:08:31 2016 +0300 Fix compilation with MinGW runtime 3.22.2 and w32api 3.18.2 * nt/inc/ms-w32.h (_WIN32_WINNT) [!MINGW_W64]: Undefine before defining to avoid redefinition warnings. * nt/inc/sys/stat.h (_SYS_STAT_H, _INC_STAT_H): Define, to avoid inclusion of sys/stat.h from the system headers, which could then lead to compilation errors due to redefinition of 'struct stat' etc. This is needed because latest versions of MinGW runtime include sys/stat.h from wchar.h. * src/image.c (__MINGW_MAJOR_VERSION) [WINDOWSNT]: Temporarily redefine to 4 to avoid conflict between 2 definitions of MemoryBarrier. (Bug#24613) Do not merge to master! diff --git a/nt/inc/ms-w32.h b/nt/inc/ms-w32.h index d153433..b4eb562 100644 --- a/nt/inc/ms-w32.h +++ b/nt/inc/ms-w32.h @@ -146,6 +146,7 @@ extern char *getenv (); in its system headers, and is not really compatible with values lower than 0x0500, so leave it alone. */ #ifndef MINGW_W64 +# undef _WIN32_WINNT # define _WIN32_WINNT 0x0400 #endif diff --git a/nt/inc/sys/stat.h b/nt/inc/sys/stat.h index 45bc2ea..ea14f07 100644 --- a/nt/inc/sys/stat.h +++ b/nt/inc/sys/stat.h @@ -30,6 +30,14 @@ along with GNU Emacs. If not, see . */ # define __MINGW_NOTHROW #endif +/* Prevent the MinGW stat.h header from being included, ever. */ +#ifndef _SYS_STAT_H +# define _SYS_STAT_H +#endif +#ifndef _INC_STAT_H +# define _INC_STAT_H +#endif + #include #include diff --git a/src/image.c b/src/image.c index a85d514..78539d9 100644 --- a/src/image.c +++ b/src/image.c @@ -8994,10 +8994,27 @@ svg_image_p (Lisp_Object object) return fmt[SVG_FILE].count + fmt[SVG_DATA].count == 1; } +/* Some versions of glib's gatomic.h define MemoryBarrier, but MinGW + w32api 3.18 and later has its own definition. The following gross + hack avoids the clash. */ +# ifdef WINDOWSNT +# if (__W32API_MAJOR_VERSION + (__W32API_MINOR_VERSION >= 18)) >= 4 +# define W32_SAVE_MINGW_VERSION __MINGW_MAJOR_VERSION +# undef __MINGW_MAJOR_VERSION +# define __MINGW_MAJOR_VERSION 4 +# endif +# endif + # include # ifdef WINDOWSNT +# ifdef W32_SAVE_MINGW_VERSION +# undef __MINGW_MAJOR_VERSION +# define __MINGW_MAJOR_VERSION W32_SAVE_MINGW_VERSION +# undef W32_SAVE_MINGW_VERSION +# endif + /* SVG library functions. */ DEF_DLL_FN (RsvgHandle *, rsvg_handle_new, (void)); DEF_DLL_FN (void, rsvg_handle_get_dimensions, commit 4ef9ea2b2ad0db53d674ce6c691b605d894ae558 Author: John Wiegley Date: Tue Oct 4 14:47:43 2016 -0700 Add documentation note from Alex diff --git a/doc/misc/cc-mode.texi b/doc/misc/cc-mode.texi index 459369e..30b750a 100644 --- a/doc/misc/cc-mode.texi +++ b/doc/misc/cc-mode.texi @@ -2553,7 +2553,9 @@ for C code in GNU programs. @item k&r @cindex K&R style -The classic Kernighan and Ritchie style for C code. +The classic Kernighan and Ritchie style for C code. If you're looking +for the style used in the 2nd edition of their book ``The C +Programming Language'', then check out the @code{stroustrup} style. @item bsd @cindex BSD style commit 9d6026d8ec1ac503c1f08c036b0fa8afd3533b21 Author: Aurelien Aptel Date: Fri Sep 30 14:00:51 2016 +0200 * src/alloc.c: call only non-null finalizers diff --git a/src/alloc.c b/src/alloc.c index 4523447..f33d93f 100644 --- a/src/alloc.c +++ b/src/alloc.c @@ -6899,7 +6899,8 @@ sweep_misc (void) else if (mblk->markers[i].m.u_any.type == Lisp_Misc_User_Ptr) { struct Lisp_User_Ptr *uptr = &mblk->markers[i].m.u_user_ptr; - uptr->finalizer (uptr->p); + if (uptr->finalizer) + uptr->finalizer (uptr->p); } #endif /* Set the type of the freed object to Lisp_Misc_Free. commit 4b347fe5368aedc161e172bd110e05e2f7f37463 Author: Karl Fogel Date: Tue Oct 4 16:03:27 2016 -0500 Clarify that doc fixes are okay in feature freeze * CONTRIBUTE (branches): Explain that doc fixes are always safe, even on a release branch in feature freeze. Tweak wording of paragraph after that to avoid a misleading contrast. diff --git a/CONTRIBUTE b/CONTRIBUTE index a02acad..c12f0cc 100644 --- a/CONTRIBUTE +++ b/CONTRIBUTE @@ -191,9 +191,11 @@ branch later by the gitmerge function. Documentation fixes (in doc strings, in manuals, and in comments) should always go to the release branch, if the documentation to be -fixed exists and is relevant to the release-branch codebase. +fixed exists and is relevant to the release-branch codebase. Doc +fixes are always considered "safe" -- even when a release branch is in +feature freeze, it can still receive doc fixes. -However, if you know that the change will be difficult to merge to the +When you know that the change will be difficult to merge to the master (e.g., because the code on master has changed a lot), you can apply the change to both master and branch yourself. It could also happen that a change is cherry-picked from master to the release commit 01669ad9a67af27101decc387e44407e0a08bcf2 Author: Eli Zaretskii Date: Tue Oct 4 22:12:08 2016 +0300 Avoid crashes when setting the cursor * src/xdisp.c (display_and_set_cursor): Don't index glyphs of a glyph row if hpos is out of valid bounds. This avoids crashes in some rare cases. (Bug#24614) diff --git a/src/xdisp.c b/src/xdisp.c index adbb6e5..42c6fb7 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -28486,8 +28486,7 @@ display_and_set_cursor (struct window *w, bool on, } glyph = NULL; - if (!glyph_row->exact_window_width_line_p - || (0 <= hpos && hpos < glyph_row->used[TEXT_AREA])) + if (0 <= hpos && hpos < glyph_row->used[TEXT_AREA]) glyph = glyph_row->glyphs[TEXT_AREA] + hpos; eassert (input_blocked_p ()); commit f2144eef19611fb2189c44c055e1d539b7a53f08 Author: Philippe Vaucher Date: Tue Oct 4 17:34:51 2016 +0300 Restore 'command-debug-status' functionality * src/callint.c (Fcall_interactively): Bind command-debug-status to nil. This restores functionality inadvertently removed in Emacs 25.1. (Bug#24555) * lisp/subr.el (command-debug-status): Declare obsolete. * doc/lispref/debugging.texi (Internals of Debugger): Document that 'command-debug-status' is obsolete. diff --git a/doc/lispref/debugging.texi b/doc/lispref/debugging.texi index 2f83b40..c88a2fa 100644 --- a/doc/lispref/debugging.texi +++ b/doc/lispref/debugging.texi @@ -654,6 +654,8 @@ invocation. The advantage of using this variable rather than an ordinary global variable is that the data will never carry over to a subsequent command invocation. + +This variable is obsolete and will be removed in future versions. @end defvar @defun backtrace-frame frame-number diff --git a/lisp/subr.el b/lisp/subr.el index 9c717e1..a3aef2e 100644 --- a/lisp/subr.el +++ b/lisp/subr.el @@ -1377,6 +1377,9 @@ is converted into a string by expressing it in decimal." (make-obsolete 'process-filter-multibyte-p nil "23.1") (make-obsolete 'set-process-filter-multibyte nil "23.1") +(make-obsolete-variable 'command-debug-status + "expect it to be removed in a future version." "25.2") + ;; Lisp manual only updated in 22.1. (define-obsolete-variable-alias 'executing-macro 'executing-kbd-macro "before 19.34") diff --git a/src/callint.c b/src/callint.c index 053ee6c..c0afc7b 100644 --- a/src/callint.c +++ b/src/callint.c @@ -837,7 +837,10 @@ invoke it. If KEYS is omitted or nil, the return value of kset_last_command (current_kboard, save_last_command); { - Lisp_Object val = Ffuncall (nargs, args); + Lisp_Object val; + specbind (Qcommand_debug_status, Qnil); + + val = Ffuncall (nargs, args); val = unbind_to (speccount, val); SAFE_FREE (); return val; @@ -894,6 +897,7 @@ syms_of_callint (void) DEFSYM (Qhandle_shift_selection, "handle-shift-selection"); DEFSYM (Qread_number, "read-number"); DEFSYM (Qfuncall_interactively, "funcall-interactively"); + DEFSYM (Qcommand_debug_status, "command-debug-status"); DEFSYM (Qenable_recursive_minibuffers, "enable-recursive-minibuffers"); DEFSYM (Qmouse_leave_buffer_hook, "mouse-leave-buffer-hook"); commit ec6e4b9d1e5a215d9dfe1026730dbb23f1935615 Author: Eli Zaretskii Date: Tue Oct 4 08:59:37 2016 +0300 ; Minor addition to CONTRIBUTE * CONTRIBUTE (http): Mention that doc fixes should always go to the release branch. diff --git a/CONTRIBUTE b/CONTRIBUTE index a70682f..a02acad 100644 --- a/CONTRIBUTE +++ b/CONTRIBUTE @@ -189,6 +189,10 @@ If you are fixing a bug that exists in the current release, be sure to commit it to the release branch; it will be merged to the master branch later by the gitmerge function. +Documentation fixes (in doc strings, in manuals, and in comments) +should always go to the release branch, if the documentation to be +fixed exists and is relevant to the release-branch codebase. + However, if you know that the change will be difficult to merge to the master (e.g., because the code on master has changed a lot), you can apply the change to both master and branch yourself. It could also commit e1b2918c7cdecdde093390adc2fa26713554da02 Author: Karl Fogel Date: Sun Oct 2 19:47:27 2016 -0500 Document yank behavior in the right place * lisp/simple.el (yank): Document the handling of the `yank-handled-properties' and `yank-excluded-properties' variables, and the `yank-handler' text property. (yank-pop): Refer to `yank' now (bug#286) * lisp/subr.el (insert-for-yank): Refer to `yank' now. (insert-for-yank-1): Refer to `insert-for-yank' now. See this thread for discussion: https://lists.gnu.org/archive/html/emacs-devel/2016-09/threads.html#00329 From: Karl Fogel To: Emacs Devel Subject: Question about intended behavior of 'insert-for-yank-1'. Date: Mon, 12 Sep 2016 00:17:14 -0500 Message-ID: <874m5lr92d.fsf@red-bean.com> diff --git a/lisp/simple.el b/lisp/simple.el index c7d3b2e..c43fe54 100644 --- a/lisp/simple.el +++ b/lisp/simple.el @@ -4662,9 +4662,9 @@ If N is negative, this is a more recent kill. The sequence of kills wraps around, so that after the oldest one comes the newest one. -When this command inserts killed text into the buffer, it honors -`yank-excluded-properties' and `yank-handler' as described in the -doc string for `insert-for-yank-1', which see." +This command honors the `yank-handled-properties' and +`yank-excluded-properties' variables, and the `yank-handler' text +property, in the way that `yank' does." (interactive "*p") (if (not (eq last-command 'yank)) (user-error "Previous command was not a yank")) @@ -4697,10 +4697,34 @@ at the end, and set mark at the beginning without activating it. With just \\[universal-argument] as argument, put point at beginning, and mark at end. With argument N, reinsert the Nth most recent kill. -When this command inserts text into the buffer, it honors the -`yank-handled-properties' and `yank-excluded-properties' -variables, and the `yank-handler' text property. See -`insert-for-yank-1' for details. +This command honors the `yank-handled-properties' and +`yank-excluded-properties' variables, and the `yank-handler' text +property, as described below. + +Properties listed in `yank-handled-properties' are processed, +then those listed in `yank-excluded-properties' are discarded. + +If STRING has a non-nil `yank-handler' property anywhere, the +normal insert behavior is altered, and instead, for each contiguous +segment of STRING that has a given value of the `yank-handler' +property, that value is used as follows: + +The value of a `yank-handler' property must be a list of one to four +elements, of the form (FUNCTION PARAM NOEXCLUDE UNDO). +FUNCTION, if non-nil, should be a function of one argument (the + object to insert); FUNCTION is called instead of `insert'. +PARAM, if present and non-nil, is passed to FUNCTION (to be handled + in whatever way is appropriate; e.g. if FUNCTION is `yank-rectangle', + PARAM may be a list of strings to insert as a rectangle). If PARAM + is nil, then the current segment of STRING is used. +If NOEXCLUDE is present and non-nil, the normal removal of + `yank-excluded-properties' is not performed; instead FUNCTION is + responsible for the removal. This may be necessary if FUNCTION + adjusts point before or after inserting the object. +UNDO, if present and non-nil, should be a function to be called + by `yank-pop' to undo the insertion of the current PARAM. It is + given two arguments, the start and end of the region. FUNCTION + may set `yank-undo-function' to override UNDO. See also the command `yank-pop' (\\[yank-pop])." (interactive "*P") diff --git a/lisp/subr.el b/lisp/subr.el index e9e19d3..9c717e1 100644 --- a/lisp/subr.el +++ b/lisp/subr.el @@ -2859,9 +2859,11 @@ remove properties specified by `yank-excluded-properties'." (defvar yank-undo-function) (defun insert-for-yank (string) - "Call `insert-for-yank-1' repetitively for each `yank-handler' segment. + "Insert STRING at point for the `yank' command. -See `insert-for-yank-1' for more details." +This function is like `insert', except it honors the variables +`yank-handled-properties' and `yank-excluded-properties', and the +`yank-handler' text property, in the way that `yank' does." (let (to) (while (setq to (next-single-property-change 0 'yank-handler string)) (insert-for-yank-1 (substring string 0 to)) @@ -2869,31 +2871,7 @@ See `insert-for-yank-1' for more details." (insert-for-yank-1 string)) (defun insert-for-yank-1 (string) - "Insert STRING at point for the `yank' command. -This function is like `insert', except it honors the variables -`yank-handled-properties' and `yank-excluded-properties', and the -`yank-handler' text property. - -Properties listed in `yank-handled-properties' are processed, -then those listed in `yank-excluded-properties' are discarded. - -If STRING has a non-nil `yank-handler' property on its first -character, the normal insert behavior is altered. The value of -the `yank-handler' property must be a list of one to four -elements, of the form (FUNCTION PARAM NOEXCLUDE UNDO). -FUNCTION, if non-nil, should be a function of one argument, an - object to insert; it is called instead of `insert'. -PARAM, if present and non-nil, replaces STRING as the argument to - FUNCTION or `insert'; e.g. if FUNCTION is `yank-rectangle', PARAM - may be a list of strings to insert as a rectangle. -If NOEXCLUDE is present and non-nil, the normal removal of - `yank-excluded-properties' is not performed; instead FUNCTION is - responsible for the removal. This may be necessary if FUNCTION - adjusts point before or after inserting the object. -UNDO, if present and non-nil, should be a function to be called - by `yank-pop' to undo the insertion of the current object. It is - given two arguments, the start and end of the region. FUNCTION - may set `yank-undo-function' to override UNDO." + "Helper for `insert-for-yank', which see." (let* ((handler (and (stringp string) (get-text-property 0 'yank-handler string))) (param (or (nth 1 handler) string)) commit 74b4f13842f3119f98797ea76d9be42457b330e1 Author: Philipp Stephani Date: Sun Oct 2 19:58:39 2016 +0200 Document nil args of compare-buffer-substrings * editfns.c (Fcompare_buffer_substrings): Document behavior when the arguments are nil. diff --git a/src/editfns.c b/src/editfns.c index 51b87de..4e90dad 100644 --- a/src/editfns.c +++ b/src/editfns.c @@ -2892,6 +2892,10 @@ Return -N if first string is less after N-1 chars, +N if first string is greater after N-1 chars, or 0 if strings match. The first substring is in BUFFER1 from START1 to END1 and the second is in BUFFER2 from START2 to END2. +All arguments may be nil. If BUFFER1 or BUFFER2 is nil, the current +buffer is used. If START1 or START2 is nil, the value of `point-min' +in the respective buffers is used. If END1 or END2 is nil, the value +of `point-max' in the respective buffers is used. The value of `case-fold-search' in the current buffer determines whether case is significant or ignored. */) (Lisp_Object buffer1, Lisp_Object start1, Lisp_Object end1, Lisp_Object buffer2, Lisp_Object start2, Lisp_Object end2) commit 9fc81bcf74a3cf710b6a014ec3a490ad713a0775 Author: Katsumi Yamaoka Date: Mon Oct 3 03:03:40 2016 +0000 * doc/misc/message.texi (Bcc Warning): Fix markup. diff --git a/doc/misc/message.texi b/doc/misc/message.texi index 2e664b9..0b82f34 100644 --- a/doc/misc/message.texi +++ b/doc/misc/message.texi @@ -1328,9 +1328,9 @@ However, when encrypted messages are used, the e-mail addresses of all @code{Bcc}-headers are given away to all recipients without warning, which is a bug. @vindex mml-secure-safe-bcc-list -But now Message got to warn if Bcc recipients are found in an encrypted -message when you are just about to send it. If you are sure those -@code{Bcc} addresses are safe to expose, set the +But now Message got to warn if @code{Bcc} recipients are found in an +encrypted message when you are just about to send it. If you are sure +those @code{Bcc} addresses are safe to expose, set the @code{mml-secure-safe-bcc-list} variable, that is a list of e-mail addresses. See @uref{https://debbugs.gnu.org/cgi/bugreport.cgi?bug=18718}. commit 95baa25ff0d2a02117932c5f9bc965a347945e1f Author: Katsumi Yamaoka Date: Mon Oct 3 02:43:20 2016 +0000 * doc/misc/message.texi (Bcc Warning): Document mml-secure-safe-bcc-list. diff --git a/doc/misc/message.texi b/doc/misc/message.texi index 761fb77..2e664b9 100644 --- a/doc/misc/message.texi +++ b/doc/misc/message.texi @@ -1326,7 +1326,13 @@ OpenPGP) or @code{mml-secure-smime-encrypt-to-self} (for The @code{Bcc} header is meant to hide recipients of messages. However, when encrypted messages are used, the e-mail addresses of all @code{Bcc}-headers are given away to all recipients without -warning, which is a bug, see +warning, which is a bug. +@vindex mml-secure-safe-bcc-list +But now Message got to warn if Bcc recipients are found in an encrypted +message when you are just about to send it. If you are sure those +@code{Bcc} addresses are safe to expose, set the +@code{mml-secure-safe-bcc-list} variable, that is a list of e-mail +addresses. See @uref{https://debbugs.gnu.org/cgi/bugreport.cgi?bug=18718}. commit 623401267a66929a1c13c264e0dc40ba2599500f (refs/remotes/origin/scratch/backports-25.2-strict) Author: Noam Postavsky Date: Sat Sep 3 23:38:35 2016 -0400 Don't require isearch-update before isearch-done It is useful to be able to call `isearch-done' unconditionally to ensure a non-isearching state. * lisp/isearch.el (isearch-done): Check that `isearch--current-buffer' is a live buffer before using it (Bug #21091). * test/lisp/isearch-tests.el (isearch--test-done): Test it. (cherry picked from commit 68f4b5292781bc331b040105c4079902b993835c) diff --git a/lisp/isearch.el b/lisp/isearch.el index a972476..9df7627 100644 --- a/lisp/isearch.el +++ b/lisp/isearch.el @@ -1049,9 +1049,10 @@ NOPUSH is t and EDIT is t." (remove-hook 'mouse-leave-buffer-hook 'isearch-done) (remove-hook 'kbd-macro-termination-hook 'isearch-done) (setq isearch-lazy-highlight-start nil) - (with-current-buffer isearch--current-buffer - (setq isearch--current-buffer nil) - (setq cursor-sensor-inhibit (delq 'isearch cursor-sensor-inhibit))) + (when (buffer-live-p isearch--current-buffer) + (with-current-buffer isearch--current-buffer + (setq isearch--current-buffer nil) + (setq cursor-sensor-inhibit (delq 'isearch cursor-sensor-inhibit)))) ;; Called by all commands that terminate isearch-mode. ;; If NOPUSH is non-nil, we don't push the string on the search ring. diff --git a/test/automated/isearch-tests.el b/test/automated/isearch-tests.el index 48c3424..52f312d 100644 --- a/test/automated/isearch-tests.el +++ b/test/automated/isearch-tests.el @@ -28,5 +28,13 @@ (isearch-update) (should (equal isearch--current-buffer (current-buffer))))) +(ert-deftest isearch--test-done () + ;; Normal operation. + (isearch-update) + (isearch-done) + (should-not isearch--current-buffer) + ;; Bug #21091: let `isearch-done' work without `isearch-update'. + (isearch-done)) + (provide 'isearch-tests) ;;; isearch-tests.el ends here commit 5e50114d2495dab67793e76411d10c93bf411e03 Author: Peder O. Klingenberg Date: Tue Aug 30 14:44:16 2016 +0200 Avoid error in icalendar--read-element * lisp/calendar/icalendar.el (icalendar--read-element): Avoid a regex stack overflow by not using regex to extract values from calendar events. (Bug#24315) (cherry picked from commit 55dde6c1a21a792d3d75c19e612c74dd054aaf1e) diff --git a/lisp/calendar/icalendar.el b/lisp/calendar/icalendar.el index 386c554..c88f4ab 100644 --- a/lisp/calendar/icalendar.el +++ b/lisp/calendar/icalendar.el @@ -361,7 +361,8 @@ Pass arguments REGEXP REP STRING FIXEDCASE LITERAL to INVALUE gives the current iCalendar element we are reading. INPARAMS gives the current parameters..... This function calls itself recursively for each nested calendar element -it finds." +it finds. The current buffer should be an unfolded buffer as returned +from `icalendar--get-unfolded-buffer'." (let (element children line name params param param-name param-value value (continue t)) @@ -391,8 +392,9 @@ it finds." (unless (looking-at ":") (error "Oops")) (forward-char 1) - (re-search-forward "\\(.*\\)\\(\r?\n[ \t].*\\)*" nil t) - (setq value (icalendar--rris "\r?\n[ \t]" "" (match-string 0))) + (let ((start (point))) + (end-of-line) + (setq value (buffer-substring start (point)))) (setq line (list name params value)) (cond ((eq name 'BEGIN) (setq children commit ace9d227dd5fd0c81c456e75a40ea36d169a0d58 Author: Lars Ingebrigtsen Date: Thu Apr 28 15:53:15 2016 +0200 Make a menu less ambiguous * doc/emacs/custom.texi (Key Bindings): The Modifier Keys node is about using modifier keys, not binding them (bug#10942). (cherry picked from commit 214f85a0a68b96a552ca605d601b33f6eef5c4ca) diff --git a/doc/emacs/custom.texi b/doc/emacs/custom.texi index c109335..7716336 100644 --- a/doc/emacs/custom.texi +++ b/doc/emacs/custom.texi @@ -1396,7 +1396,7 @@ init file (@pxref{Init Rebinding}). * Minibuffer Maps:: The minibuffer uses its own local keymaps. * Rebinding:: How to redefine one key's meaning conveniently. * Init Rebinding:: Rebinding keys with your initialization file. -* Modifier Keys:: Using modifier keys in key bindings. +* Modifier Keys:: Using modifier keys. * Function Keys:: Rebinding terminal function keys. * Named ASCII Chars:: Distinguishing @key{TAB} from @kbd{C-i}, and so on. * Mouse Buttons:: Rebinding mouse buttons in Emacs. commit e6834952edbd8b4e00c2e7b06535778fb6a1865b Author: Devon Sean McCullough Date: Fri Dec 25 22:21:22 2015 +0100 Doc fix for url-http * lisp/url/url-http.el (url-http): Document better return values (bug#13187) (tiny change) (cherry picked from commit 344303c8d9cb03d4778a73940e80e966280aa694) diff --git a/lisp/url/url-http.el b/lisp/url/url-http.el index 8f36dde..e0e080e 100644 --- a/lisp/url/url-http.el +++ b/lisp/url/url-http.el @@ -1195,17 +1195,20 @@ the end of the document." "Retrieve URL via HTTP asynchronously. URL must be a parsed URL. See `url-generic-parse-url' for details. -When retrieval is completed, execute the function CALLBACK, passing it -an updated value of CBARGS as arguments. The first element in CBARGS -should be a plist describing what has happened so far during the -request, as described in the docstring of `url-retrieve' (if in -doubt, specify nil). +When retrieval is completed, execute the function CALLBACK, +passing it an updated value of CBARGS as arguments. The first +element in CBARGS should be a plist describing what has happened +so far during the request, as described in the docstring of +`url-retrieve' (if in doubt, specify nil). The current buffer +then CALLBACK is executed is the retrieval buffer. Optional arg RETRY-BUFFER, if non-nil, specifies the buffer of a previous `url-http' call, which is being re-attempted. Optional arg GATEWAY-METHOD specifies the gateway to be used, -overriding the value of `url-gateway-method'." +overriding the value of `url-gateway-method'. + +The return value of this function is the retrieval buffer." (cl-check-type url vector "Need a pre-parsed URL.") (let* ((host (url-host (or url-using-proxy url))) (port (url-port (or url-using-proxy url))) commit f1247f069e6a908595748c315948c636962b60dc Author: Eli Zaretskii Date: Sat Oct 1 11:23:18 2016 +0300 * lisp/frame.el (blink-cursor-delay): Doc fix. (Bug#24372) diff --git a/lisp/frame.el b/lisp/frame.el index 291150b..c3f6212 100644 --- a/lisp/frame.el +++ b/lisp/frame.el @@ -2028,7 +2028,8 @@ widths." :group 'frames) (defcustom blink-cursor-delay 0.5 - "Seconds of idle time after which cursor starts to blink." + "Seconds of idle time before the first blink of the cursor. +Values smaller than 0.2 sec are treated as 0.2 sec." :type 'number :group 'cursor) commit ace7f1404bda04ab70f1aba882ad8a1b8d72a4f5 Author: Katsumi Yamaoka Date: Thu Sep 29 23:25:42 2016 +0000 * lisp/gnus/gnus-art.el (gnus-button-handle-library): Fix typo. diff --git a/lisp/gnus/gnus-art.el b/lisp/gnus/gnus-art.el index 66b1e38..67e6049 100644 --- a/lisp/gnus/gnus-art.el +++ b/lisp/gnus/gnus-art.el @@ -7738,7 +7738,7 @@ Calls `describe-variable' or `describe-function'." (let* ((lib (locate-library url)) (file (gnus-replace-in-string (or lib "") "\\.elc" ".el"))) (if (not lib) - (gnus-message 1 "Cannot locale library `%s'." url) + (gnus-message 1 "Cannot locate library `%s'." url) (find-file-read-only file)))) (defcustom gnus-button-man-level 5 commit bbf1ffd7c74bdf3ea766580788f7f4adb98a47f0 Author: Paul Eggert Date: Mon Sep 26 17:00:03 2016 -0700 Regexp Functions doc minor fixes * doc/lispref/searching.texi (Regexp Functions): Fix misspelling of “matching”. Use @table for table. Reformat code example to fit into info file width (Bug#17862). diff --git a/doc/lispref/searching.texi b/doc/lispref/searching.texi index a335e89..579460f 100644 --- a/doc/lispref/searching.texi +++ b/doc/lispref/searching.texi @@ -950,37 +950,41 @@ more efficient, but is almost never worth the effort.}. The optional argument @var{paren} can be any of the following: -a string - the resulting regexp is preceded by @var{paren} and followed by - @samp{\)}, e.g. use @samp{"\\(?1:"} to produce an explicitly - numbered group. +@table @asis +@item a string +The resulting regexp is preceded by @var{paren} and followed by +@samp{\)}, e.g. use @samp{"\\(?1:"} to produce an explicitly +numbered group. -@code{words} - the resulting regexp is surrounded by @samp{\<\(} and @samp{\)\>}. +@item @code{words} +The resulting regexp is surrounded by @samp{\<\(} and @samp{\)\>}. -@code{symbols} - the resulting regexp is surrounded by @samp{\_<\(} and @samp{\)\_>} - (this is often appropriate when maching programming-language - keywords and the like). +@item @code{symbols} +The resulting regexp is surrounded by @samp{\_<\(} and @samp{\)\_>} +(this is often appropriate when matching programming-language +keywords and the like). -non-@code{nil} - the resulting regexp is surrounded by @samp{\(} and @samp{\)}. +@item non-@code{nil} +The resulting regexp is surrounded by @samp{\(} and @samp{\)}. -@code{nil} - the resulting regexp is surrounded by @samp{\(?:} and @samp{\)}, - if it is necessary to ensure that a postfix operator appended to - it will apply to the whole expression. +@item @code{nil} +The resulting regexp is surrounded by @samp{\(?:} and @samp{\)}, +if it is necessary to ensure that a postfix operator appended to +it will apply to the whole expression. +@end table The resulting regexp of @code{regexp-opt} is equivalent to but usually more efficient than that of a simplified version: @example (defun simplified-regexp-opt (strings &optional paren) - (let ((parens (cond ((stringp paren) (cons paren "\\)")) - ((eq paren 'words) '("\\<\\(" . "\\)\\>")) - ((eq paren 'symbols) '("\\_<\\(" . "\\)\\_>")) - ((null paren) '("\\(?:" . "\\)")) - (t '("\\(" . "\\)"))))) + (let ((parens + (cond + ((stringp paren) (cons paren "\\)")) + ((eq paren 'words) '("\\<\\(" . "\\)\\>")) + ((eq paren 'symbols) '("\\_<\\(" . "\\)\\_>")) + ((null paren) '("\\(?:" . "\\)")) + (t '("\\(" . "\\)"))))) (concat (car paren) (mapconcat 'regexp-quote strings "\\|") (cdr paren))))