commit c325e199668a2449a9b0d662e114eec9d4802288 (HEAD, refs/remotes/origin/master) Merge: 512b06e 927afa1 Author: Paul Eggert Date: Mon Aug 22 14:40:35 2016 -0700 Merge from origin/emacs-25 927afa1 ; Update ChangeLog.2 and ldef-boot.el for Emacs 25.1 RC2 6bf83b5 * etc/AUTHORS: Update the AUTHORS file 73cbb81 ; ChangeLog spelling fixes 9b99772 Some assorted documentation clarifications 37d4723 Improve commentary in src/character.h 5ccd593 ; Fix typo in /etc/NEWS 96e3d16 * etc/NEWS: Mention the change in json-encode-string. 2e524034 ; * etc/NEWS: Mention incompatible change in url-http-create... 2e4e74e Merge branch 'emacs-25' of git.savannah.gnu.org:/srv/git/emac... 66dea65 ; * doc/lispref/windows.texi (Window Parameters): Grammar twe... # Conflicts: # ChangeLog.2 # lisp/ldefs-boot.el commit 512b06e4309ba6c5cd3d2d2518a931b0664c4150 Merge: bde5e3f 7d639f3 Author: Paul Eggert Date: Mon Aug 22 14:38:50 2016 -0700 ; Merge from origin/emacs-25 The following commit was skipped: 7d639f3 * src/doc.c (Fsubstitute_command_keys): Another fix for smart... commit bde5e3fa83a0275bc6b54af23906fc3a8b313888 Merge: 5f3aea8 66dea65 Author: Paul Eggert Date: Mon Aug 22 14:38:50 2016 -0700 Merge from origin/emacs-25 66dea65 ; * doc/lispref/windows.texi (Window Parameters): Grammar twe... commit 5f3aea8a10773dc481ed719034ea464573845ea1 Merge: 590dab5 4225b78 Author: Paul Eggert Date: Mon Aug 22 14:38:49 2016 -0700 ; Merge from origin/emacs-25 The following commit was skipped: 4225b78 Avoid segfaults due to quoting in 'substitute-command-keys' commit 590dab5a68f4283d53ce79d4633fe1503131baea Merge: caa2770 8c2946e Author: Paul Eggert Date: Mon Aug 22 14:38:49 2016 -0700 Merge from origin/emacs-25 8c2946e In NEWS describe new handling of window margins (Bug#24193) 0cee66c Facultatively ignore margins when splitting and resizing wind... 8d68147 Document CATEGORY arg to modify-category-entry 8342e74 Document char-script-table's effect on word motion e9ff485 Further fix for 'url-http-create-request' and multibyte strings 0695235 Fix docstring of eval-expression 98b01dd Clarify when 'cursor' property is in effect 75f1882 Convert the remaining strings to unibyte before concatenating d2db5dd Fix bug with handling the bidi cache ccd0e92 * doc/lispref/text.texi (Change Hooks): Minor copyedits. f785ff4 Clarify documentation of before/after-change-functions 3c9cb57 Document use of vectors in keymaps # Conflicts: # src/xdisp.c commit caa2770d1d79f9c8013d6dddcd9e86d05230b26d Author: Michael Albinus Date: Mon Aug 22 20:02:51 2016 +0200 Handle remote file names in gdb-mi.el * lisp/progmodes/gdb-mi.el (gdb-jsonify-buffer): If `default-directory' is remote, full file names are adapted accordingly. (Bug#23608) diff --git a/lisp/progmodes/gdb-mi.el b/lisp/progmodes/gdb-mi.el index 4adcfe7..8047e20 100644 --- a/lisp/progmodes/gdb-mi.el +++ b/lisp/progmodes/gdb-mi.el @@ -2661,8 +2661,15 @@ responses. If FIX-LIST is non-nil, \"FIX-LIST={..}\" is replaced with \"FIX-LIST=[..]\" prior to parsing. This is used to fix broken -break-info output when it contains breakpoint script field -incompatible with GDB/MI output syntax." +incompatible with GDB/MI output syntax. + +If `default-directory' is remote, full file names are adapted accordingly." (save-excursion + (let ((remote (file-remote-p default-directory))) + (when remote + (goto-char (point-min)) + (while (re-search-forward "[\\[,]fullname=\"\\(.+\\)\"" nil t) + (replace-match (concat remote "\\1") nil nil nil 1)))) (goto-char (point-min)) (when fix-key (save-excursion commit 821ea144bd446268fbe4a4a4775a06da52dea8cb Author: Eli Zaretskii Date: Mon Aug 22 20:19:35 2016 +0300 Display mini-window resized even when there are several frames * src/xdisp.c (x_consider_frame_title): Bind inhibit-redisplay to t to avoid resizing back the mini-window as result of considering the title of other frames. (Bug#24285) (redisplay_window): No need to bind inhibit-redisplay here. diff --git a/src/xdisp.c b/src/xdisp.c index 5eaa809..dc68cd4 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -11744,6 +11744,12 @@ x_consider_frame_title (Lisp_Object frame) record_unwind_protect (unwind_format_mode_line, format_mode_line_unwind_data (f, current_buffer, selected_window, false)); + /* select-frame calls resize_mini_window, which could resize the + mini-window and by that undo the effect of this redisplay + cycle wrt minibuffer and echo-area display. Binding + inhibit-redisplay to t makes the call to resize_mini_window a + no-op, thus avoiding the adverse side effects. */ + specbind (Qinhibit_redisplay, Qt); Fselect_window (f->selected_window, Qt); set_buffer_internal_1 @@ -17177,16 +17183,7 @@ redisplay_window (Lisp_Object window, bool just_this_one_p) ignore_mouse_drag_p = true; #endif } - ptrdiff_t count1 = SPECPDL_INDEX (); - /* x_consider_frame_title calls select-frame, which calls - resize_mini_window, which could resize the mini-window and by - that undo the effect of this redisplay cycle wrt minibuffer - and echo-area display. Binding inhibit-redisplay to t makes - the call to resize_mini_window a no-op, thus avoiding the - adverse side effects. */ - specbind (Qinhibit_redisplay, Qt); x_consider_frame_title (w->frame); - unbind_to (count1, Qnil); #endif } commit 8bb999a98abd8fb0f25fd16cd3e0281503728ab6 Author: Michael Albinus Date: Mon Aug 22 15:17:55 2016 +0200 Explain gdb warning on remote hosts * doc/misc/tramp.texi (Remote processes): Explain gdb warning on remote hosts. (Bug#4604, Bug#6360, Bug#622569) diff --git a/doc/misc/tramp.texi b/doc/misc/tramp.texi index 8a144a5..4dc5e75 100644 --- a/doc/misc/tramp.texi +++ b/doc/misc/tramp.texi @@ -2604,10 +2604,18 @@ with a remote file name: @example @group @kbd{M-x gdb @key{RET}} -@b{Run gdb (like this):} gdb --annotate=3 @trampfn{ssh,host,~/myprog} @key{RET} +@b{Run gdb (like this):} gdb -i=mi @trampfn{ssh,host,~/myprog} @key{RET} @end group @end example +Since the remote @code{gdb} and @code{gdb-inferior} processes do not +belong to the same process group on the remote host, there will be a +warning, which can be ignored: + +@example +&"warning: GDB: Failed to set controlling terminal: Operation not permitted\n" +@end example + Relative file names are based on the remote default directory. When @file{myprog.pl} exists in @file{@trampfn{ssh,host,/home/user}}, valid calls include: commit 927afa1ef6514e62162068d7dbdc9d8381a71598 (tag: refs/tags/emacs-25.1-rc2, refs/remotes/origin/emacs-25) Author: Nicolas Petton Date: Sun Aug 21 23:24:55 2016 +0200 ; Update ChangeLog.2 and ldef-boot.el for Emacs 25.1 RC2 diff --git a/ChangeLog.2 b/ChangeLog.2 index f2964ef..bff2a0d 100644 --- a/ChangeLog.2 +++ b/ChangeLog.2 @@ -1,3 +1,251 @@ +2016-08-20 Philipp Stephani + + Some assorted documentation clarifications + + * src/fileio.c (Fwrite_region): Clarify that END is ignored if + START is nil. + * src/editfns.c (Fbuffer_size): Add short discussion about + narrowing. + * src/callproc.c (Fcall_process_region): Discuss behavior when + START and END are not buffer positions. + +2016-08-18 Eli Zaretskii + + Improve commentary in src/character.h + + * src/character.h (BYTES_BY_CHAR_HEAD, MULTIBYTE_LENGTH) + (MULTIBYTE_LENGTH_NO_CHECK, STRING_CHAR_AND_LENGTH): Remove stale + info from commentary and improve it. + +2016-08-17 Dmitry Gutov + + * etc/NEWS: Mention the change in json-encode-string. + + The change was made to fix bug#20154, and came up again in bug#24239. + +2016-08-16 Eli Zaretskii + + * src/doc.c (Fsubstitute_command_keys): Another fix for smart quotes. + + (Bug#24206) + +2016-08-16 Eli Zaretskii + + Avoid segfaults due to quoting in 'substitute-command-keys' + + * src/doc.c (Fsubstitute_command_keys): Correct character counts + when the input string is unibyte. (Bug#24206) + +2016-08-16 Martin Rudalics + + In NEWS describe new handling of window margins (Bug#24193) + + * etc/NEWS: Describe new handling of margins when splitting or + resizing windows (Bug#24193). + +2016-08-16 Martin Rudalics + + Facultatively ignore margins when splitting and resizing windows (Bug#24193) + + Provide a new window parameter 'min-margins' which allows to + ignore the actual widths of a window's margins when splitting or + resizing that window horizontally. This should serve as a + workaround for handling the problems raised by Bug#24193. + + * lisp/window.el (window--min-size-1): Handle new window + parameter 'min-margins'. + (split-window): Fix text of error messages. + * doc/lispref/windows.texi (Window Parameters): Describe new + parameter 'min-margins'. + +2016-08-14 Noam Postavsky + + Document CATEGORY arg to modify-category-entry + + * src/category.c (Fmodify_category_entry): Document CATEGORY argument. + +2016-08-13 Noam Postavsky + + Document char-script-table's effect on word motion + + * doc/lispref/positions.texi (Word Motion): Talk about + char-script-table (Bug #10494). + +2016-08-13 Eli Zaretskii + + Further fix for 'url-http-create-request' and multibyte strings + + * lisp/url/url-http.el (url-http-create-request): Run + url-mime-charset-string through url-http--encode-string. + (Bug#24117) + +2016-08-13 Noam Postavsky + + Fix docstring of eval-expression + + * lisp/simple.el (eval-expression): Fix the docstring to reflect the + fact that the prefix argument does not affect formatting for + integers (Bug #20691). + +2016-08-11 Eli Zaretskii + + Clarify when 'cursor' property is in effect + + * doc/lispref/text.texi (Special Properties): Minor copyedits. + (Bug#24179) + +2016-08-11 Dmitry Gutov + + Convert the remaining strings to unibyte before concatenating + + * lisp/url/url-http.el (url-http--encode-string): New function. + (url-http-create-request): Use it to convert ASCII to unibyte. + (Bug#24117) + +2016-08-11 Eli Zaretskii + + Fix bug with handling the bidi cache + + * src/xdisp.c (redisplay_window): Save and restore the state of + the bidi cache before reusing the iterator after calls to + try_window and try_window_reusing_current_matrix. + +2016-08-10 Eli Zaretskii + + * doc/lispref/text.texi (Change Hooks): Minor copyedits. + +2016-08-09 Eli Zaretskii + + Clarify documentation of before/after-change-functions + + * doc/lispref/text.texi (Change Hooks): Clarify that the hooks are + not called in balanced pairs. + +2016-08-06 Noam Postavsky + + Document use of vectors in keymaps + + * doc/lispref/keymaps.texi (Format of Keymaps): Mention vector + format (Bug #14797). + +2016-08-03 Alan Third + + Post AppDefined events from the main thread ONLY (bug#23934) + + * src/nsterm.h: Make nextappdefined var not just GNUStep. + * src/nsterm.m (ns_send_appdefined, sendFromMainThread): Remove GNUStep + +2016-08-03 John Wiegley + + Update to the AUTHORS file for Bob Weiner + + * etc/AUTHORS: Update the packages attributed to Bob Weiner + +2016-08-02 John Wiegley + + Revert "Fix local printer set to left aligned string formatter." + + This reverts commit 8a38e948b039516e70176ebe20c5349e2ade6ac5. + +2016-08-02 John Wiegley + + Revert "Fix ses-delete-blanks to delete only blanks + documentation." + + This reverts commit 3c97b0f7589e06aeb1ab0147f0ee32974c32926d. + +2016-08-02 John Wiegley + + Revert "Fix English." + + This reverts commit b275cc76f0c5ab49e81445fcc3420c8772aefd42. + +2016-08-01 Eli Zaretskii + + Improve doc strings of 'gud-gdb' and 'gdb' + + * lisp/progmodes/gdb-mi.el (gdb): + * lisp/progmodes/gud.el (gud-gdb): Doc fix. (Bug#24125) + +2016-08-01 Eli Zaretskii + + Fix doc string of 'minibuffer-message-timeout' + + * src/keyboard.c (syms_of_keyboard) : + Doc fix. (Bug#24123) + +2016-07-29 Vincent Belaïche + + Fix English. + + * doc/misc/ses.texi (Nonrelocatable references): Fix grammatically + incorrect English. + +2016-07-29 Vincent Belaïche + + Fix ses-delete-blanks to delete only blanks + documentation. + + * doc/misc/ses.texi (Quick Tutorial): Mention the '!' + 'ses-range' modifier as an alternative to 'ses+'. + (Advanced Features): Add a refernce to node 'Nonrelocatable + references' concerning function 'ses-rename-cell'. + (Standard formula functions): Mention the '!' 'ses-range' + modifier as an alternative to 'ses-delete-blanks'. + (More on cell printing): Fix fallback printer + definition. Minor editorial formatting changes. + (Nonrelocatable references): Document the use of + 'ses-rename-cell' as a better way to make cell reference + non-relocatable. + (The data area): Document the presence of local printer + definitions in the data area. + + * lisp/ses.el (ses-delete-blanks): Do not remove + *error*. Any error in an argument should propagate into the + using formula rather than being silently hidden ! + +2016-07-29 Noam Postavsky + + profiler: document prefix arg for tree expansion + + * doc/lispref/debugging.texi (Profiling): + * lisp/profiler.el (profiler-report-toggle-entry): Document use of + prefix argument to expand whole call trees. + +2016-07-29 Noam Postavsky + + Clarify usage of eshell-visual-options + + * lisp/eshell/em-term.el (eshell-visual-options): Add second option to + example usage (Bug #19627). + +2016-07-29 Noam Postavsky + + Fix comment in files-in-below-directory + + * doc/lispintro/emacs-lisp-intro.texi (Files List): Comment should not + say append, since the code is adding to front of list (Bug #21589). + +2016-07-28 Vincent Belaïche + + Fix local printer set to left aligned string formatter. + + * lisp/ses.el (ses-local-printer-compile): Add missing case + for left-aligned string formatter. + +2016-07-24 Nicolas Petton + + Bump Emacs version to 25.1 for the first RC + + * README: + * configure.ac: + * lisp/ldefs-boot.el: + * msdos/sed2v2.inp: Bump Emacs version to 25.1. + +2016-07-24 Nicolas Petton + + * etc/AUTHORS: Update the AUTHORS file + + ;; * ChangeLog.2: ChangeLog update. + 2016-07-24 Nicolas Petton * admin/authors.el (authors-valid-file-names): Addition. @@ -33115,7 +33363,7 @@ This file records repository revisions from commit 9d56a21e6a696ad19ac65c4b405aeca44785884a (exclusive) to -commit 7acfaead6df626b3737c10f98e9c4964232aa6b9 (inclusive). +commit 73cbb813cfea53e4162409f2adc0a793ab301894 (inclusive). See ChangeLog.1 for earlier changes. ;; Local Variables: diff --git a/lisp/ldefs-boot.el b/lisp/ldefs-boot.el index eaf73ae..494b754 100644 --- a/lisp/ldefs-boot.el +++ b/lisp/ldefs-boot.el @@ -11751,8 +11751,8 @@ Interactively, reads the register using `register-read-with-preview'. ;;;*** -;;;### (autoloads nil "gdb-mi" "progmodes/gdb-mi.el" (22388 6386 -;;;;;; 402286 73000)) +;;;### (autoloads nil "gdb-mi" "progmodes/gdb-mi.el" (22431 53468 +;;;;;; 724634 231000)) ;;; Generated autoloads from progmodes/gdb-mi.el (defvar gdb-enable-debug nil "\ @@ -11773,14 +11773,18 @@ the list) is deleted every time a new one is added (at the front). \(fn &optional ARG)" t nil) (autoload 'gdb "gdb-mi" "\ -Run gdb on program FILE in buffer *gud-FILE*. -The directory containing FILE becomes the initial working directory -and source-file directory for your debugger. - -COMMAND-LINE is the shell command for starting the gdb session. -It should be a string consisting of the name of the gdb -executable followed by command line options. The command line -options should include \"-i=mi\" to use gdb's MI text interface. +Run gdb passing it COMMAND-LINE as arguments. + +If COMMAND-LINE names a program FILE to debug, gdb will run in +a buffer named *gud-FILE*, and the directory containing FILE +becomes the initial working directory and source-file directory +for your debugger. +If COMMAND-LINE requests that gdb attaches to a process PID, gdb +will run in *gud-PID*, otherwise it will run in *gud*; in these +cases the initial working directory is the default-directory of +the buffer in which this command was invoked. + +COMMAND-LINE should include \"-i=mi\" to use gdb's MI text interface. Note that the old \"--annotate\" option is no longer supported. If option `gdb-many-windows' is nil (the default value) then gdb just @@ -13055,14 +13059,20 @@ the form \"WINDOW-ID PIXMAP-ID\". Value is non-nil if successful. ;;;*** -;;;### (autoloads nil "gud" "progmodes/gud.el" (22388 6386 606288 -;;;;;; 79000)) +;;;### (autoloads nil "gud" "progmodes/gud.el" (22431 53468 725634 +;;;;;; 240000)) ;;; Generated autoloads from progmodes/gud.el (autoload 'gud-gdb "gud" "\ -Run gdb on program FILE in buffer *gud-FILE*. -The directory containing FILE becomes the initial working -directory and source-file directory for your debugger. +Run gdb passing it COMMAND-LINE as arguments. +If COMMAND-LINE names a program FILE to debug, gdb will run in +a buffer named *gud-FILE*, and the directory containing FILE +becomes the initial working directory and source-file directory +for your debugger. +If COMMAND-LINE requests that gdb attaches to a process PID, gdb +will run in *gud-PID*, otherwise it will run in *gud*; in these +cases the initial working directory is the default-directory of +the buffer in which this command was invoked. \(fn COMMAND-LINE)" t nil) @@ -21990,8 +22000,8 @@ Proced buffers. ;;;*** -;;;### (autoloads nil "profiler" "profiler.el" (22388 5707 707611 -;;;;;; 601000)) +;;;### (autoloads nil "profiler" "profiler.el" (22431 53468 722634 +;;;;;; 211000)) ;;; Generated autoloads from profiler.el (autoload 'profiler-start "profiler" "\ @@ -24761,7 +24771,7 @@ only these files will be asked to be saved. ;;;*** -;;;### (autoloads nil "ses" "ses.el" (22388 5708 753621 888000)) +;;;### (autoloads nil "ses" "ses.el" (22457 44247 406108 197000)) ;;; Generated autoloads from ses.el (autoload 'ses-mode "ses" "\ @@ -29416,8 +29426,8 @@ if it had been inserted from a file named URL. ;;;*** -;;;### (autoloads nil "url-http" "url/url-http.el" (22420 38537 297424 -;;;;;; 708000)) +;;;### (autoloads nil "url-http" "url/url-http.el" (22457 44247 409108 +;;;;;; 239000)) ;;; Generated autoloads from url/url-http.el (autoload 'url-default-expander "url-expand") @@ -32585,27 +32595,26 @@ Zone out, completely. ;;;;;; "international/fontset.el" "international/iso-ascii.el" "international/ja-dic-cnv.el" ;;;;;; "international/ja-dic-utl.el" "international/ogonek.el" "kermit.el" ;;;;;; "language/hanja-util.el" "language/thai-word.el" "ldefs-boot.el" -;;;;;; "leim/ja-dic/ja-dic.el" "leim/quail/arabic.el" "leim/quail/croatian.el" -;;;;;; "leim/quail/cyril-jis.el" "leim/quail/cyrillic.el" "leim/quail/czech.el" -;;;;;; "leim/quail/ethiopic.el" "leim/quail/georgian.el" "leim/quail/greek.el" -;;;;;; "leim/quail/hanja-jis.el" "leim/quail/hanja.el" "leim/quail/hanja3.el" -;;;;;; "leim/quail/hebrew.el" "leim/quail/indian.el" "leim/quail/ipa-praat.el" -;;;;;; "leim/quail/ipa.el" "leim/quail/japanese.el" "leim/quail/lao.el" -;;;;;; "leim/quail/latin-alt.el" "leim/quail/latin-ltx.el" "leim/quail/latin-post.el" -;;;;;; "leim/quail/latin-pre.el" "leim/quail/lrt.el" "leim/quail/persian.el" -;;;;;; "leim/quail/programmer-dvorak.el" "leim/quail/py-punct.el" -;;;;;; "leim/quail/pypunct-b5.el" "leim/quail/rfc1345.el" "leim/quail/sgml-input.el" -;;;;;; "leim/quail/sisheng.el" "leim/quail/slovak.el" "leim/quail/symbol-ksc.el" -;;;;;; "leim/quail/tamil-dvorak.el" "leim/quail/thai.el" "leim/quail/tibetan.el" -;;;;;; "leim/quail/viqr.el" "leim/quail/vntelex.el" "leim/quail/vnvni.el" -;;;;;; "leim/quail/welsh.el" "loadup.el" "mail/blessmail.el" "mail/mailheader.el" -;;;;;; "mail/mspools.el" "mail/rfc2368.el" "mail/rfc822.el" "mail/rmail-spam-filter.el" -;;;;;; "mail/rmailedit.el" "mail/rmailkwd.el" "mail/rmailmm.el" -;;;;;; "mail/rmailmsc.el" "mail/rmailsort.el" "mail/rmailsum.el" -;;;;;; "mail/undigest.el" "mh-e/mh-acros.el" "mh-e/mh-alias.el" -;;;;;; "mh-e/mh-buffers.el" "mh-e/mh-compat.el" "mh-e/mh-funcs.el" -;;;;;; "mh-e/mh-gnus.el" "mh-e/mh-identity.el" "mh-e/mh-inc.el" -;;;;;; "mh-e/mh-junk.el" "mh-e/mh-letter.el" "mh-e/mh-limit.el" +;;;;;; "leim/quail/arabic.el" "leim/quail/croatian.el" "leim/quail/cyril-jis.el" +;;;;;; "leim/quail/cyrillic.el" "leim/quail/czech.el" "leim/quail/ethiopic.el" +;;;;;; "leim/quail/georgian.el" "leim/quail/greek.el" "leim/quail/hanja-jis.el" +;;;;;; "leim/quail/hanja.el" "leim/quail/hanja3.el" "leim/quail/hebrew.el" +;;;;;; "leim/quail/indian.el" "leim/quail/ipa-praat.el" "leim/quail/ipa.el" +;;;;;; "leim/quail/japanese.el" "leim/quail/lao.el" "leim/quail/latin-alt.el" +;;;;;; "leim/quail/latin-ltx.el" "leim/quail/latin-post.el" "leim/quail/latin-pre.el" +;;;;;; "leim/quail/lrt.el" "leim/quail/persian.el" "leim/quail/programmer-dvorak.el" +;;;;;; "leim/quail/py-punct.el" "leim/quail/pypunct-b5.el" "leim/quail/rfc1345.el" +;;;;;; "leim/quail/sgml-input.el" "leim/quail/sisheng.el" "leim/quail/slovak.el" +;;;;;; "leim/quail/symbol-ksc.el" "leim/quail/tamil-dvorak.el" "leim/quail/thai.el" +;;;;;; "leim/quail/tibetan.el" "leim/quail/viqr.el" "leim/quail/vntelex.el" +;;;;;; "leim/quail/vnvni.el" "leim/quail/welsh.el" "loadup.el" "mail/blessmail.el" +;;;;;; "mail/mailheader.el" "mail/mspools.el" "mail/rfc2368.el" +;;;;;; "mail/rfc822.el" "mail/rmail-spam-filter.el" "mail/rmailedit.el" +;;;;;; "mail/rmailkwd.el" "mail/rmailmm.el" "mail/rmailmsc.el" "mail/rmailsort.el" +;;;;;; "mail/rmailsum.el" "mail/undigest.el" "mh-e/mh-acros.el" +;;;;;; "mh-e/mh-alias.el" "mh-e/mh-buffers.el" "mh-e/mh-compat.el" +;;;;;; "mh-e/mh-funcs.el" "mh-e/mh-gnus.el" "mh-e/mh-identity.el" +;;;;;; "mh-e/mh-inc.el" "mh-e/mh-junk.el" "mh-e/mh-letter.el" "mh-e/mh-limit.el" ;;;;;; "mh-e/mh-loaddefs.el" "mh-e/mh-mime.el" "mh-e/mh-print.el" ;;;;;; "mh-e/mh-scan.el" "mh-e/mh-search.el" "mh-e/mh-seq.el" "mh-e/mh-show.el" ;;;;;; "mh-e/mh-speed.el" "mh-e/mh-thread.el" "mh-e/mh-tool-bar.el" @@ -32674,7 +32683,7 @@ Zone out, completely. ;;;;;; "vc/ediff-vers.el" "vc/ediff-wind.el" "vc/pcvs-info.el" "vc/pcvs-parse.el" ;;;;;; "vc/pcvs-util.el" "vc/vc-dav.el" "vc/vc-filewise.el" "vcursor.el" ;;;;;; "vt-control.el" "vt100-led.el" "w32-fns.el" "w32-vars.el" -;;;;;; "x-dnd.el") (22420 55670 291981 354000)) +;;;;;; "x-dnd.el") (22458 6108 204266 576000)) ;;;*** commit 6bf83b5ecb0e0c12bd519b3f0b8547f3f3303df1 Author: Nicolas Petton Date: Sun Aug 21 23:24:15 2016 +0200 * etc/AUTHORS: Update the AUTHORS file diff --git a/etc/AUTHORS b/etc/AUTHORS index 8272009..0b300d0 100644 --- a/etc/AUTHORS +++ b/etc/AUTHORS @@ -105,7 +105,7 @@ Alan Shutko: changed diary-lib.el calendar.el bindings.el cal-hebrew.el solar.el Alan Third: wrote dabbrev-tests.el -and changed nsterm.m emacs.c nsterm.h picture.el +and changed nsterm.m nsterm.h emacs.c picture.el Alastair Burt: changed gnus-art.el smiley.el @@ -486,7 +486,7 @@ Bob Rogers: changed vc-dir.el vc-svn.el cperl-mode.el diff.el ewoc.el ffap.el files.el maintaining.texi sql.el thingatpt.el vc.el vc1-xtra.texi -Bob Weiner: changed dframe.el etags.c info.el rmail.el rmailsum.el speedbar.el +Bob Weiner: changed info.el quail.el Bojan Petrovic: changed pop3.el @@ -626,7 +626,7 @@ and co-wrote longlines.el tango-dark-theme.el tango-theme.el and changed simple.el display.texi xdisp.c files.el frames.texi cus-edit.el files.texi custom.el subr.el text.texi faces.el keyboard.c startup.el package.el misc.texi emacs.texi modes.texi mouse.el - custom.texi image.c window.el and 946 other files + custom.texi image.c window.el and 945 other files Chris Chase: co-wrote idlw-shell.el idlwave.el @@ -1242,9 +1242,9 @@ Eli Zaretskii: wrote [bidirectional display in xdisp.c] [tty menus in term.c] abbrev-tests.el bidi.c biditest.el coding-tests.el rxvt.el tty-colors.el and changed xdisp.c msdos.c w32.c w32fns.c display.texi files.el fileio.c - simple.el w32proc.c w32term.c keyboard.c dispnew.c emacs.c dispextern.h + simple.el w32proc.c keyboard.c w32term.c dispnew.c emacs.c dispextern.h config.bat sed1v2.inp src/Makefile.in term.c window.c INSTALL - frames.texi and 994 other files + frames.texi and 993 other files Emanuele Giaquinta: changed configure.ac rxvt.el charset.c etags.c fontset.c frame.el gnus-faq.texi loadup.el lread.c sh-script.el @@ -1327,7 +1327,7 @@ and changed c.srt ede.texi info.el rmail.el speedbspec.el cedet.el ede-autoconf.srt ede-make.srt eieio.texi gud.el sb-dir-minus.xpm sb-dir-plus.xpm sb-dir.xpm sb-mail.xpm sb-pg-minus.xpm sb-pg-plus.xpm sb-pg.xpm sb-tag-gt.xpm sb-tag-minus.xpm sb-tag-plus.xpm - sb-tag-type.xpm and 34 other files + sb-tag-type.xpm and 33 other files Eric Schulte: wrote ob-C.el ob-asymptote.el ob-awk.el ob-calc.el ob-comint.el ob-css.el ob-ditaa.el ob-dot.el ob-emacs-lisp.el @@ -1607,7 +1607,7 @@ and changed configure.ac Makefile.in src/Makefile.in calendar.el diary-lib.el lisp/Makefile.in files.el rmail.el progmodes/f90.el make-dist simple.el bytecomp.el emacs.texi misc/Makefile.in ack.texi authors.el lib-src/Makefile.in startup.el admin.el cal-menu.el - calendar.texi and 1601 other files + calendar.texi and 1600 other files Glynn Clements: wrote gamegrid.el snake.el tetris.el @@ -2354,7 +2354,7 @@ Juri Linkov: wrote files-x.el misearch.el occur-tests.el and changed isearch.el info.el replace.el simple.el progmodes/grep.el dired-aux.el dired.el progmodes/compile.el startup.el faces.el files.el menu-bar.el bindings.el display.texi descr-text.el desktop.el comint.el - image-mode.el ispell.el man.el cus-edit.el and 356 other files + image-mode.el ispell.el man.el cus-edit.el and 355 other files Jussi Lahdenniemi: changed ms-w32.h w32.c w32.h w32fns.c w32heap.c @@ -2373,7 +2373,7 @@ and co-wrote longlines.el tramp-sh.el tramp.el and changed message.el gnus-agent.el gnus-sum.el files.el nnmail.el tramp.texi nntp.el gnus.el simple.el ange-ftp.el dired.el paragraphs.el bindings.el files.texi gnus-art.el gnus-group.el man.el INSTALL - Makefile.in crisp.el fileio.c and 45 other files + Makefile.in crisp.el fileio.c and 44 other files Kailash C. Chowksey: changed HELLO ind-util.el kannada.el knd-util.el lisp/Makefile.in loadup.el @@ -2746,7 +2746,7 @@ Luc Teirlinck: wrote help-at-pt.el and changed files.el autorevert.el cus-edit.el subr.el simple.el frames.texi startup.el display.texi files.texi dired.el comint.el modes.texi custom.texi emacs.texi fns.c frame.el ielm.el minibuf.texi - variables.texi buffers.texi commands.texi and 213 other files + variables.texi buffers.texi commands.texi and 212 other files Ludovic Courtès: wrote nnregistry.el and changed configure.ac gnus.texi loadup.el @@ -3122,7 +3122,7 @@ Michael Olson: changed erc.el erc-backend.el Makefile erc-track.el erc-log.el erc-stamp.el erc-autoaway.el erc-dcc.el erc-goodies.el erc-list.el erc-compat.el erc-identd.el erc.texi ERC-NEWS erc-bbdb.el erc-match.el erc-notify.el erc-ibuffer.el erc-services.el remember.el - erc-button.el and 56 other files + erc-button.el and 55 other files Michael Piotrowski: changed gnus-art.el gnus-sum.el ps-print.el @@ -3341,8 +3341,8 @@ Nicolas Graner: changed message.el Nicolas Petton: wrote map-tests.el map.el seq-tests.el seq.el thunk-tests.el thunk.el and co-wrote auth-source-tests.el subr-tests.el -and changed sequences.texi emacs.png README authors.el configure.ac - sed2v2.inp emacs23.png arc-mode.el cl-extra.el emacs.svg Emacs.icns +and changed sequences.texi emacs.png README configure.ac sed2v2.inp + authors.el emacs23.png arc-mode.el cl-extra.el emacs.svg Emacs.icns Makefile.in auth-source.el emacs.ico obarray-tests.el obarray.el data.c emacs-document.svg emacs-document23.svg emacs.texi emacs23.svg and 6 other files @@ -3381,9 +3381,10 @@ and changed rsz-mini.el emacs-buffer.gdb comint.el files.el Makefile Noah Lavine: changed tramp.el Noam Postavsky: changed w32.c buffer-tests.el buffer.c buffers.texi - cl-macs.el cmdproxy.c cus-edit.el elisp-mode.el files.el find-func.el - insdel.c minibuf.texi modes.texi os.texi package.texi process-tests.el - processes.texi rect.el search.c sh-script.el subr.el and 4 other files + category.c cl-macs.el cmdproxy.c cus-edit.el debugging.texi + elisp-mode.el em-term.el emacs-lisp-intro.texi files.el find-func.el + insdel.c keymaps.texi minibuf.texi modes.texi os.texi package.texi + positions.texi and 12 other files Nobuyoshi Nakada: co-wrote ruby-mode.el @@ -3648,9 +3649,9 @@ Philipp Rumpf: changed electric.el Philipp Stephani: wrote xt-mouse-tests.el and changed emacs-module.c lisp.h mod-test.c xt-mouse.el xterm.el - Makefile alloc.c configure.ac dynlib.c dynlib.h electric-tests.el - emacs-module.h eval.c fns.c modhelp.py mule.el src/Makefile.in test.el - unexmacosx.c whitespace.el + Makefile alloc.c callproc.c configure.ac dynlib.c dynlib.h editfns.c + electric-tests.el emacs-module.h eval.c fileio.c fns.c modhelp.py + mule.el src/Makefile.in test.el and 3 other files Phillip Lord: changed undo.c simple.el viper-cmd.el keyboard.c cmds.c fileio.c autoload.el automated/Makefile.in cl-extra.el ert.el @@ -4213,8 +4214,8 @@ Stephen A. Wood: changed fortran.el Stephen Berman: co-wrote todo-mode.el and changed todo-mode.texi diary-lib.el doc-view.el minibuffer.el files.el info.el otodo-mode.el subr.el allout.el compile.texi dframe.el - dir dired-aux.el dired.el elpa files.texi find-dired.el floatfns.c - frame.c frames.texi gamegrid.el and 28 other files + dired-aux.el dired.el elpa files.texi find-dired.el floatfns.c frame.c + frames.texi gamegrid.el gnus-group.el and 27 other files Stephen C. Gilardi: changed configure.ac @@ -4365,7 +4366,7 @@ Teodor Zlatanov: wrote auth-source.el gnus-registry.el gnus-sync.el and changed spam.el gnus.el nnimap.el gnus.texi gnus-sum.el gnutls.c auth.texi cfengine.el gnus-util.el gnus-start.el netrc.el message.el spam-stat.el encrypt.el gnutls.h nnir.el nnmail.el imap.el - mail-source.el nnmairix.el nntp.el and 110 other files + mail-source.el nnmairix.el nntp.el and 109 other files Terje Rosten: changed xfns.c version.el xterm.c xterm.h @@ -4639,8 +4640,8 @@ Viktor Rosenfeld: changed ob-sql.el org.el Ville Skyttä: changed mh-comp.el pgg.el tcl.el -Vincent Belaïche: changed ses.el 5x5.el calc-alg.el calc-vec.el calc.texi - compilation.txt ses.texi autotype.texi calc-embed.el calc-help.el +Vincent Belaïche: changed ses.el ses.texi 5x5.el calc-alg.el calc-vec.el + calc.texi compilation.txt autotype.texi calc-embed.el calc-help.el calc-misc.el calc.el configure.bat floatfns.c macroexp.el org.el package.el progmodes/compile.el recentf.el reftex-parse.el reftex-toc.el reftex.el commit 73cbb813cfea53e4162409f2adc0a793ab301894 Author: Paul Eggert Date: Sun Aug 21 04:15:15 2016 -0700 ; ChangeLog spelling fixes diff --git a/lisp/ChangeLog.9 b/lisp/ChangeLog.9 index e527567..b2c3623 100644 --- a/lisp/ChangeLog.9 +++ b/lisp/ChangeLog.9 @@ -6523,7 +6523,7 @@ * ansi-color.el (ansi-color-process-output): Use markers instead of positions for start and end of region. (ansi-color-apply-on-region): Rewrote code to make it more robust. - Previously, occasional mistakes happend when fontifying many + Previously, occasional mistakes happened when fontifying many chunks of output (eg. ls --color=yes /dev). This happened whenever an overlay was created up to the end of the region, which coincided with the process-mark. New text would then be added diff --git a/lisp/erc/ChangeLog.1 b/lisp/erc/ChangeLog.1 index 407beb4..1564496 100644 --- a/lisp/erc/ChangeLog.1 +++ b/lisp/erc/ChangeLog.1 @@ -10324,8 +10324,8 @@ * TODO: TODO list created. Add comments and expand it. - * erc.el: - Fixed bug in query buffer handling (only happend in mixed-case situations) + * erc.el: Fixed bug in query buffer handling (only happened in + mixed-case situations) * erc.el: shapr checkdoc patch #1 massive docfixes! yay, keep going! diff --git a/lisp/org/ChangeLog.1 b/lisp/org/ChangeLog.1 index 8c118ec..2ef70b6 100644 --- a/lisp/org/ChangeLog.1 +++ b/lisp/org/ChangeLog.1 @@ -2809,7 +2809,7 @@ * ox-html.el (org-html-style-default): New classes `footpara' and `footdef' for the footnotes paragraphs and definitions. (org-html-format-footnote-definition): Wrap the footnote - defintions into their own div. + definitions into their own div. (org-html-paragraph): Don't add extra
after a paragraph in a footnote. (org-html-container-element, org-html-divs): Mention that diff --git a/src/ChangeLog.12 b/src/ChangeLog.12 index b2df482..a1ebd30 100644 --- a/src/ChangeLog.12 +++ b/src/ChangeLog.12 @@ -4382,7 +4382,7 @@ * nsterm.m (ns_dumpglyphs_image): Only draw slice of image (Bug#12506). - * nsterm.m (ns_update_auto_hide_menu_bar): Remove defintion of + * nsterm.m (ns_update_auto_hide_menu_bar): Remove definition of MAC_OS_X_VERSION_10_6. (syms_of_nsterm): Remove comment about Panther and above for ns-antialias-text. commit 9b99772cf4b24443e1c096bb1e847da4cf502543 Author: Philipp Stephani Date: Fri Aug 19 21:23:24 2016 +0200 Some assorted documentation clarifications * src/fileio.c (Fwrite_region): Clarify that END is ignored if START is nil. * src/editfns.c (Fbuffer_size): Add short discussion about narrowing. * src/callproc.c (Fcall_process_region): Discuss behavior when START and END are not buffer positions. diff --git a/src/callproc.c b/src/callproc.c index 2fb5b1d..76b5caa 100644 --- a/src/callproc.c +++ b/src/callproc.c @@ -1005,6 +1005,13 @@ create_temp_file (ptrdiff_t nargs, Lisp_Object *args, DEFUN ("call-process-region", Fcall_process_region, Scall_process_region, 3, MANY, 0, doc: /* Send text from START to END to a synchronous process running PROGRAM. + +START and END are normally buffer positions specifying the part of the +buffer to send to the process. +If START is nil, that means to use the entire buffer contents; END is +ignored. +If START is a string, then send that string to the process +instead of any buffer contents; END is ignored. The remaining arguments are optional. Delete the text if fourth arg DELETE is non-nil. diff --git a/src/editfns.c b/src/editfns.c index 32c8bec..e1c8516 100644 --- a/src/editfns.c +++ b/src/editfns.c @@ -1029,7 +1029,14 @@ usage: (save-current-buffer &rest BODY) */) DEFUN ("buffer-size", Fbuffer_size, Sbuffer_size, 0, 1, 0, doc: /* Return the number of characters in the current buffer. -If BUFFER, return the number of characters in that buffer instead. */) +If BUFFER is not nil, return the number of characters in that buffer +instead. + +This does not take narrowing into account; to count the number of +characters in the accessible portion of the current buffer, use +`(- (point-max) (point-min))', and to count the number of characters +in some other BUFFER, use +`(with-current-buffer BUFFER (- (point-max) (point-min)))'. */) (Lisp_Object buffer) { if (NILP (buffer)) diff --git a/src/fileio.c b/src/fileio.c index 3005ca3..c3b2be7 100644 --- a/src/fileio.c +++ b/src/fileio.c @@ -4644,7 +4644,8 @@ DEFUN ("write-region", Fwrite_region, Swrite_region, 3, 7, When called from a program, requires three arguments: START, END and FILENAME. START and END are normally buffer positions specifying the part of the buffer to write. -If START is nil, that means to use the entire buffer contents. +If START is nil, that means to use the entire buffer contents; END is +ignored. If START is a string, then output that string to the file instead of any buffer contents; END is ignored. commit 37d4723f73998ecbf30e9f655026422b0e2017a7 Author: Eli Zaretskii Date: Thu Aug 18 17:23:22 2016 +0300 Improve commentary in src/character.h * src/character.h (BYTES_BY_CHAR_HEAD, MULTIBYTE_LENGTH) (MULTIBYTE_LENGTH_NO_CHECK, STRING_CHAR_AND_LENGTH): Remove stale info from commentary and improve it. diff --git a/src/character.h b/src/character.h index bc3e155..d4b6c73 100644 --- a/src/character.h +++ b/src/character.h @@ -237,7 +237,8 @@ enum #define CHAR_HEAD_P(byte) (((byte) & 0xC0) != 0x80) /* How many bytes a character that starts with BYTE occupies in a - multibyte form. */ + multibyte form. Unlike MULTIBYTE_LENGTH below, this macro does not + validate the multibyte form, but looks only at its first byte. */ #define BYTES_BY_CHAR_HEAD(byte) \ (!((byte) & 0x80) ? 1 \ : !((byte) & 0x20) ? 2 \ @@ -247,7 +248,9 @@ enum /* The byte length of multibyte form at unibyte string P ending at - PEND. If STR doesn't point to a valid multibyte form, return 0. */ + PEND. If the string doesn't point to a valid multibyte form, + return 0. Unlike BYTES_BY_CHAR_HEAD, this macro validates the + multibyte form. */ #define MULTIBYTE_LENGTH(p, pend) \ (p >= pend ? 0 \ @@ -263,7 +266,8 @@ enum : 0) -/* Like MULTIBYTE_LENGTH, but don't check the ending address. */ +/* Like MULTIBYTE_LENGTH, but don't check the ending address. The + multibyte form is still validated, unlike BYTES_BY_CHAR_HEAD. */ #define MULTIBYTE_LENGTH_NO_CHECK(p) \ (!((p)[0] & 0x80) ? 1 \ @@ -324,15 +328,7 @@ enum /* Like STRING_CHAR, but set ACTUAL_LEN to the length of multibyte - form. - - Note: This macro returns the actual length of the character's - multibyte sequence as it is stored in a buffer or string. The - character it returns might have a different codepoint that has a - different multibyte sequence of a different length, due to possible - unification of CJK characters inside string_char. Therefore do NOT - assume that the length returned by this macro is identical to the - length of the multibyte sequence of the character it returns. */ + form. */ #define STRING_CHAR_AND_LENGTH(p, actual_len) \ (!((p)[0] & 0x80) \ commit 5ccd59339dbde1d428141cd3eb120d4e6d316abf Author: Michael Albinus Date: Wed Aug 17 09:39:04 2016 +0200 ; Fix typo in /etc/NEWS diff --git a/etc/NEWS b/etc/NEWS index d897009..7cd1c5e 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -1269,9 +1269,9 @@ that happen, 'unhandled-file-name-directory' now defaults to calling 'file-name-as-directory'. ** The URL package now insists on sending only unibyte strings to server -This means packages that use URL cannot bind `url-request-data' to +This means packages that use URL cannot bind 'url-request-data' to multibyte strings. If non-ASCII characters should be part of the URL -payload, then `url-request-data' should be encoded to become a unibyte +payload, then 'url-request-data' should be encoded to become a unibyte string. commit 96e3d1636a9f4a1b74fd6459436699f556f22c67 Author: Dmitry Gutov Date: Wed Aug 17 07:09:01 2016 +0300 * etc/NEWS: Mention the change in json-encode-string. The change was made to fix bug#20154, and came up again in bug#24239. diff --git a/etc/NEWS b/etc/NEWS index 4c14e20..d897009 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -329,6 +329,9 @@ GnuTLS encryption functions if possible. ** JSON +*** 'json-encode-string' now only escapes the characters it has to. +Which means that the encoded strings can contain non-ASCII characters. + *** 'json-pretty-print' and 'json-pretty-print-buffer' now maintain the ordering of object keys by default. commit 2e524034f778d404268adde25b6f7d2bd22c67e0 Author: Eli Zaretskii Date: Wed Aug 17 05:41:00 2016 +0300 ; * etc/NEWS: Mention incompatible change in url-http-create-request. diff --git a/etc/NEWS b/etc/NEWS index 9f97d76..4c14e20 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -1265,6 +1265,12 @@ Emacs 24.2 and earlier, which did not support unary '/'. that happen, 'unhandled-file-name-directory' now defaults to calling 'file-name-as-directory'. +** The URL package now insists on sending only unibyte strings to server +This means packages that use URL cannot bind `url-request-data' to +multibyte strings. If non-ASCII characters should be part of the URL +payload, then `url-request-data' should be encoded to become a unibyte +string. + * Lisp Changes in Emacs 25.1 commit 2e4e74ea9c21f8a8cc73172cf4a41e5116a9dadc Merge: 7d639f3 66dea65 Author: Eli Zaretskii Date: Tue Aug 16 21:35:17 2016 +0300 Merge branch 'emacs-25' of git.savannah.gnu.org:/srv/git/emacs into emacs-25 commit 7d639f3be66e9b41f53e6349f8362ef0f1042e26 Author: Eli Zaretskii Date: Tue Aug 16 21:33:09 2016 +0300 * src/doc.c (Fsubstitute_command_keys): Another fix for smart quotes. (Bug#24206) diff --git a/src/doc.c b/src/doc.c index 86e1e0d..36d18b9 100644 --- a/src/doc.c +++ b/src/doc.c @@ -974,7 +974,7 @@ Otherwise, return a new string. */) } else if ((strp[0] == '`' || strp[0] == '\'') && quoting_style == CURVE_QUOTING_STYLE - && multibyte) + && (multibyte || pure_ascii)) { start = (unsigned char const *) (strp[0] == '`' ? uLSQM : uRSQM); length_byte = sizeof uLSQM - 1; commit 66dea652ef5f5eacb7bdec23068f0b684f69956d Author: Glenn Morris Date: Tue Aug 16 08:40:02 2016 -0700 ; * doc/lispref/windows.texi (Window Parameters): Grammar tweaks. * etc/NEWS: Likewise. diff --git a/doc/lispref/windows.texi b/doc/lispref/windows.texi index 386584b..78094e9 100644 --- a/doc/lispref/windows.texi +++ b/doc/lispref/windows.texi @@ -4358,11 +4358,11 @@ values instead of the actual margin widths for determining whether a window can be split or shrunk horizontally. Emacs never auto-adjusts the margins of any window after splitting or -resizing it. It is sole responsibility of the application that has set +resizing it. It is the sole responsibility of any application setting this parameter to adjust the margins of this window as well as those of any new window that inherits this window's margins due to a split. -Both, @code{window-configuration-change-hook} and -@code{window-size-change-functions} (@pxref{Window Hooks}), should be +Both @code{window-configuration-change-hook} and +@code{window-size-change-functions} (@pxref{Window Hooks}) should be employed for this purpose. This parameter was introduced in Emacs version 25.1 to support diff --git a/etc/NEWS b/etc/NEWS index 8758826..9f97d76 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -1631,9 +1631,9 @@ frames. 'window-divider-default-places', 'window-divider-default-bottom-width' and 'window-divider-default-right-width'. -*** When a window is shrunk horizontally its margins are no more removed +*** When a window is shrunk horizontally its margins are no longer removed automatically. Rather, Emacs refuses to split or resize windows when -this would cause margins to no more fit into the width reserved for the +this would cause margins to no longer fit into the width reserved for the corresponding window. An application can override this behavior for a particular window by setting that window's 'min-margins' parameter. As a consequence, the application becomes fully responsible for trimming commit 4225b786746e170477ddd64deaf18facf11955f4 Author: Eli Zaretskii Date: Tue Aug 16 17:36:27 2016 +0300 Avoid segfaults due to quoting in 'substitute-command-keys' * src/doc.c (Fsubstitute_command_keys): Correct character counts when the input string is unibyte. (Bug#24206) diff --git a/src/doc.c b/src/doc.c index 7cdb0d0..86e1e0d 100644 --- a/src/doc.c +++ b/src/doc.c @@ -750,7 +750,7 @@ Otherwise, return a new string. */) unsigned char const *start; ptrdiff_t length, length_byte; Lisp_Object name; - bool multibyte; + bool multibyte, pure_ascii; ptrdiff_t nchars; if (NILP (string)) @@ -764,6 +764,11 @@ Otherwise, return a new string. */) enum text_quoting_style quoting_style = text_quoting_style (); multibyte = STRING_MULTIBYTE (string); + /* Pure-ASCII unibyte input strings should produce unibyte strings + if substitution doesn't yield non-ASCII bytes, otherwise they + should produce multibyte strings. */ + pure_ascii = SBYTES (string) == count_size_as_multibyte (SDATA (string), + SCHARS (string)); nchars = 0; /* KEYMAP is either nil (which means search all the active keymaps) @@ -945,8 +950,11 @@ Otherwise, return a new string. */) subst_string: start = SDATA (tem); - length = SCHARS (tem); length_byte = SBYTES (tem); + if (multibyte || pure_ascii) + length = SCHARS (tem); + else + length = length_byte; subst: nonquotes_changed = true; subst_quote: @@ -965,11 +973,15 @@ Otherwise, return a new string. */) } } else if ((strp[0] == '`' || strp[0] == '\'') - && quoting_style == CURVE_QUOTING_STYLE) + && quoting_style == CURVE_QUOTING_STYLE + && multibyte) { start = (unsigned char const *) (strp[0] == '`' ? uLSQM : uRSQM); - length = 1; length_byte = sizeof uLSQM - 1; + if (multibyte || pure_ascii) + length = 1; + else + length = length_byte; idx = strp - SDATA (string) + 1; goto subst_quote; } commit 8c2946e29b38fa3e0dff6b4d402ba0fda0e03c9b Author: Martin Rudalics Date: Tue Aug 16 12:40:12 2016 +0200 In NEWS describe new handling of window margins (Bug#24193) * etc/NEWS: Describe new handling of margins when splitting or resizing windows (Bug#24193). diff --git a/etc/NEWS b/etc/NEWS index b72495f..8758826 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -1631,6 +1631,14 @@ frames. 'window-divider-default-places', 'window-divider-default-bottom-width' and 'window-divider-default-right-width'. +*** When a window is shrunk horizontally its margins are no more removed +automatically. Rather, Emacs refuses to split or resize windows when +this would cause margins to no more fit into the width reserved for the +corresponding window. An application can override this behavior for a +particular window by setting that window's 'min-margins' parameter. As +a consequence, the application becomes fully responsible for trimming +the margin sizes of that window and any window inheriting these margins. + *** The window displaying the '*Completions*' buffer with minibuffer completion candidates is now shown at the bottom of the selected frame. The size of that window is always as large as required to commit 0cee66c3f1e92702774e670b32f3dded1a4c3957 Author: Martin Rudalics Date: Tue Aug 16 09:19:18 2016 +0200 Facultatively ignore margins when splitting and resizing windows (Bug#24193) Provide a new window parameter 'min-margins' which allows to ignore the actual widths of a window's margins when splitting or resizing that window horizontally. This should serve as a workaround for handling the problems raised by Bug#24193. * lisp/window.el (window--min-size-1): Handle new window parameter 'min-margins'. (split-window): Fix text of error messages. * doc/lispref/windows.texi (Window Parameters): Describe new parameter 'min-margins'. diff --git a/doc/lispref/windows.texi b/doc/lispref/windows.texi index 55d90bd..386584b 100644 --- a/doc/lispref/windows.texi +++ b/doc/lispref/windows.texi @@ -4349,6 +4349,27 @@ window when it deletes the window passed to it as argument. The fourth element is the buffer whose display caused the creation of this parameter. @code{quit-restore-window} deletes the specified window only if it still shows that buffer. + +@item @code{min-margins} +The value of this parameter is a cons cell whose @sc{car} and @sc{cdr}, +if non-@code{nil}, specify the minimum values (in columns) for the left +and right margin of this window. When present, Emacs will use these +values instead of the actual margin widths for determining whether a +window can be split or shrunk horizontally. + +Emacs never auto-adjusts the margins of any window after splitting or +resizing it. It is sole responsibility of the application that has set +this parameter to adjust the margins of this window as well as those of +any new window that inherits this window's margins due to a split. +Both, @code{window-configuration-change-hook} and +@code{window-size-change-functions} (@pxref{Window Hooks}), should be +employed for this purpose. + +This parameter was introduced in Emacs version 25.1 to support +applications that use large margins to center buffer text within a +window and should be used, with due care, exclusively by those +applications. It might be replaced by an improved solution in future +versions of Emacs. @end table There are additional parameters @code{window-atom} and @code{window-side}; diff --git a/lisp/window.el b/lisp/window.el index f7a547b..8505bef 100644 --- a/lisp/window.el +++ b/lisp/window.el @@ -1383,10 +1383,21 @@ ignore width restrictions for WINDOW." (let* ((char-size (frame-char-size window t)) (fringes (window-fringes window)) (margins (window-margins window)) + ;; Let the 'min-margins' parameter override the actual + ;; widths of the margins. We allow any number to + ;; replace the values specified by `window-margins'. + ;; See bug#24193 for the rationale of this parameter. + (min-margins (window-parameter window 'min-margins)) + (left-min-margin (and min-margins + (numberp (car min-margins)) + (car min-margins))) + (right-min-margin (and min-margins + (numberp (cdr min-margins)) + (cdr min-margins))) (pixel-width (+ (window-safe-min-size window t t) - (* (or (car margins) 0) char-size) - (* (or (cdr margins) 0) char-size) + (* (or left-min-margin (car margins) 0) char-size) + (* (or right-min-margin(cdr margins) 0) char-size) (car fringes) (cadr fringes) (window-scroll-bar-width window) (window-right-divider-width window)))) @@ -4774,7 +4785,7 @@ frame. The selected window is not changed by this function." (window-sizable-p parent (- (+ new-pixel-size divider-width)) horizontal (setq ignore 'preserved) t)) - (error "Window %s too small for splitting (1)" parent))) + (error "Window %s too small for splitting" parent))) ((and (> (+ new-pixel-size divider-width (window-min-size window horizontal nil t)) old-pixel-size) @@ -4783,7 +4794,7 @@ frame. The selected window is not changed by this function." window horizontal (setq ignore 'preserved) t)) old-pixel-size)) ;; SIZE unspecified, no resizing. - (error "Window %s too small for splitting (2)" window)))) + (error "Window %s too small for splitting" window)))) ((and (>= pixel-size 0) (or (>= pixel-size old-pixel-size) (< new-pixel-size @@ -4791,7 +4802,7 @@ frame. The selected window is not changed by this function." ;; SIZE specified as new size of old window. If the new size ;; is larger than the old size or the size of the new window ;; would be less than the safe minimum, signal an error. - (error "Window %s too small for splitting (3)" window)) + (error "Window %s too small for splitting" window)) (resize ;; SIZE specified, resizing. (unless (or (window-sizable-p @@ -4801,13 +4812,13 @@ frame. The selected window is not changed by this function." parent (- (+ new-pixel-size divider-width)) horizontal (setq ignore 'preserved) t)) ;; If we cannot resize the parent give up. - (error "Window %s too small for splitting (4)" parent))) + (error "Window %s too small for splitting" parent))) ((or (< new-pixel-size (window-safe-min-pixel-size window horizontal)) (< (- old-pixel-size new-pixel-size) (window-safe-min-pixel-size window horizontal))) ;; SIZE specification violates minimum size restrictions. - (error "Window %s too small for splitting (5)" window))) + (error "Window %s too small for splitting" window))) (window--resize-reset frame horizontal) commit 8d681476bd44a2f843030579a5bbf5a248488afb Author: Noam Postavsky Date: Sat Aug 13 22:54:53 2016 -0400 Document CATEGORY arg to modify-category-entry * src/category.c (Fmodify_category_entry): Document CATEGORY argument. diff --git a/src/category.c b/src/category.c index 4397f66..8315797 100644 --- a/src/category.c +++ b/src/category.c @@ -336,6 +336,8 @@ The category is changed only for table TABLE, which defaults to the current buffer's category table. CHARACTER can be either a single character or a cons representing the lower and upper ends of an inclusive character range to modify. +CATEGORY must be a category name (a character between ` ' and `~'). +Use `describe-categories' to see existing category names. If optional fourth argument RESET is non-nil, then delete CATEGORY from the category set instead of adding it. */) (Lisp_Object character, Lisp_Object category, Lisp_Object table, Lisp_Object reset) commit 8342e7481a1553af81ad97518a1b15901c9bd329 Author: Noam Postavsky Date: Fri Aug 12 18:33:17 2016 -0400 Document char-script-table's effect on word motion * doc/lispref/positions.texi (Word Motion): Talk about char-script-table (Bug #10494). diff --git a/doc/lispref/positions.texi b/doc/lispref/positions.texi index 1d748b8..b6133dc 100644 --- a/doc/lispref/positions.texi +++ b/doc/lispref/positions.texi @@ -192,8 +192,9 @@ in the opposite direction. @subsection Motion by Words The functions for parsing words described below use the syntax table -to decide whether a given character is part of a word. @xref{Syntax -Tables}. +and @code{char-script-table} to decide whether a given character is +part of a word. @xref{Syntax Tables}, and see @ref{Character +Properties}. @deffn Command forward-word &optional count This function moves point forward @var{count} words (or backward if @@ -207,11 +208,13 @@ and then continue moving until the word ends. By default, characters that begin and end words, known as @dfn{word boundaries}, are defined by the current buffer's syntax table (@pxref{Syntax Class Table}), but modes can override that by setting up a suitable -@code{find-word-boundary-function-table}, described below. In any -case, this function cannot move point past the boundary of the -accessible portion of the buffer, or across a field boundary -(@pxref{Fields}). The most common case of a field boundary is the end -of the prompt in the minibuffer. +@code{find-word-boundary-function-table}, described below. Characters +that belong to different scripts (as defined by +@code{char-syntax-table}), also define a word boundary +(@pxref{Character Properties}). In any case, this function cannot +move point past the boundary of the accessible portion of the buffer, +or across a field boundary (@pxref{Fields}). The most common case of +a field boundary is the end of the prompt in the minibuffer. If it is possible to move @var{count} words, without being stopped prematurely by the buffer boundary or a field boundary, the value is commit e9ff4857cb9dd993dee69bfca5ac89bc09ed58eb Author: Eli Zaretskii Date: Sat Aug 13 11:28:53 2016 +0300 Further fix for 'url-http-create-request' and multibyte strings * lisp/url/url-http.el (url-http-create-request): Run url-mime-charset-string through url-http--encode-string. (Bug#24117) diff --git a/lisp/url/url-http.el b/lisp/url/url-http.el index 860e652..bbe5268 100644 --- a/lisp/url/url-http.el +++ b/lisp/url/url-http.el @@ -315,7 +315,9 @@ request.") "Accept-encoding: " url-mime-encoding-string "\r\n")) (if url-mime-charset-string (concat - "Accept-charset: " url-mime-charset-string "\r\n")) + "Accept-charset: " + (url-http--encode-string url-mime-charset-string) + "\r\n")) ;; Languages we understand (if url-mime-language-string (concat commit 06952353b054743a5a57f7501d902d766b0b3dac Author: Noam Postavsky Date: Fri Aug 12 19:29:16 2016 -0400 Fix docstring of eval-expression * lisp/simple.el (eval-expression): Fix the docstring to reflect the fact that the prefix argument does not affect formatting for integers (Bug #20691). diff --git a/lisp/simple.el b/lisp/simple.el index 43ad43c..c08a01f 100644 --- a/lisp/simple.el +++ b/lisp/simple.el @@ -1457,16 +1457,16 @@ result of expression evaluation." "Evaluate EXP and print value in the echo area. When called interactively, read an Emacs Lisp expression and evaluate it. Value is also consed on to front of the variable `values'. -Optional argument INSERT-VALUE non-nil (interactively, with prefix -argument) means insert the result into the current buffer instead of -printing it in the echo area. +If the resulting value is an integer, it will be printed in +several additional formats (octal, hexadecimal, and character). +Optional argument INSERT-VALUE non-nil (interactively, with +prefix argument) means insert the result into the current buffer +instead of printing it in the echo area. Normally, this function truncates long output according to the value of the variables `eval-expression-print-length' and `eval-expression-print-level'. With a prefix argument of zero, -however, there is no such truncation. Such a prefix argument -also causes integers to be printed in several additional formats -\(octal, hexadecimal, and character). +however, there is no such truncation. Runs the hook `eval-expression-minibuffer-setup-hook' on entering the minibuffer. commit 98b01dd1ef004b79de4998691a84bed6ea1ca0ba Author: Eli Zaretskii Date: Thu Aug 11 23:01:53 2016 +0300 Clarify when 'cursor' property is in effect * doc/lispref/text.texi (Special Properties): Minor copyedits. (Bug#24179) diff --git a/doc/lispref/text.texi b/doc/lispref/text.texi index 8b4810f..0445d68 100644 --- a/doc/lispref/text.texi +++ b/doc/lispref/text.texi @@ -3362,12 +3362,14 @@ the beginning of the @code{display} property or at @cindex cursor position for @code{display} properties and overlays When the buffer has many overlay strings (e.g., @pxref{Overlay -Properties, before-string}) or @code{display} properties that are -strings, it is a good idea to use the @code{cursor} property on these -strings to cue the Emacs display about the places where to put the -cursor while traversing these strings. This directly communicates to -the display engine where the Lisp program wants to put the cursor, or -where the user would expect the cursor. +Properties, before-string}) that conceal some of the buffer text or +@code{display} properties that are strings, it is a good idea to use +the @code{cursor} property on these strings to cue the Emacs display +about the places where to put the cursor while traversing these +strings. This directly communicates to the display engine where the +Lisp program wants to put the cursor, or where the user would expect +the cursor, when point is located on some buffer position that is +``covered'' by the display or overlay string. @item pointer @kindex pointer @r{(text property)} commit 75f1882479cc62f8795bb652a0853a3f395420a2 Author: Dmitry Gutov Date: Thu Aug 11 21:06:49 2016 +0300 Convert the remaining strings to unibyte before concatenating * lisp/url/url-http.el (url-http--encode-string): New function. (url-http-create-request): Use it to convert ASCII to unibyte. (Bug#24117) diff --git a/lisp/url/url-http.el b/lisp/url/url-http.el index 7156e6f..860e652 100644 --- a/lisp/url/url-http.el +++ b/lisp/url/url-http.el @@ -235,7 +235,7 @@ request.") 'url-http-proxy-basic-auth-storage)) (url-get-authentication url-http-proxy nil 'any nil)))) (real-fname (url-filename url-http-target-url)) - (host (url-host url-http-target-url)) + (host (url-http--encode-string (url-host url-http-target-url))) (auth (if (cdr-safe (assoc "Authorization" url-http-extra-headers)) nil (url-get-authentication (or @@ -278,7 +278,8 @@ request.") (concat ;; The request (or url-http-method "GET") " " - (if using-proxy (url-recreate-url url-http-target-url) real-fname) + (url-http--encode-string + (if using-proxy (url-recreate-url url-http-target-url) real-fname)) " HTTP/" url-http-version "\r\n" ;; Version of MIME we speak "MIME-Version: 1.0\r\n" @@ -360,6 +361,11 @@ request.") (url-http-debug "Request is: \n%s" request) request)) +(defun url-http--encode-string (s) + (if (multibyte-string-p s) + (encode-coding-string s 'us-ascii) + s)) + ;; Parsing routines (defun url-http-clean-headers () "Remove trailing \r from header lines. commit d2db5dd8358f132252c8d11d40b1457615c43a57 Author: Eli Zaretskii Date: Thu Aug 11 18:11:26 2016 +0300 Fix bug with handling the bidi cache * src/xdisp.c (redisplay_window): Save and restore the state of the bidi cache before reusing the iterator after calls to try_window and try_window_reusing_current_matrix. diff --git a/src/xdisp.c b/src/xdisp.c index cc2c951..24daa0c 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -16122,6 +16122,7 @@ redisplay_window (Lisp_Object window, bool just_this_one_p) bool last_line_misfit = false; ptrdiff_t beg_unchanged, end_unchanged; int frame_line_height; + void *itdata = NULL; SET_TEXT_POS (lpoint, PT, PT_BYTE); opoint = lpoint; @@ -16843,6 +16844,11 @@ redisplay_window (Lisp_Object window, bool just_this_one_p) /* Run scroll hooks. */ startp = run_window_scroll_functions (window, it.current.pos); + /* We invoke try_window and try_window_reusing_current_matrix below, + and they manipulate the bidi cache. Save and restore the cache + state of our iterator, so we could continue using it after that. */ + itdata = bidi_shelve_cache (); + /* Redisplay the window. */ bool use_desired_matrix = false; if (!current_matrix_up_to_date_p @@ -16857,6 +16863,8 @@ redisplay_window (Lisp_Object window, bool just_this_one_p) = try_window_reusing_current_matrix (w))) use_desired_matrix = (try_window (window, startp, 0) == 1); + bidi_unshelve_cache (itdata, false); + /* If new fonts have been loaded (due to fontsets), give up. We have to start a new redisplay since we need to re-adjust glyph matrices. */ commit ccd0e92ecccba35d9a59ddf75b269d9eaa504e94 Author: Eli Zaretskii Date: Wed Aug 10 20:12:55 2016 +0300 * doc/lispref/text.texi (Change Hooks): Minor copyedits. diff --git a/doc/lispref/text.texi b/doc/lispref/text.texi index de0b007..8b4810f 100644 --- a/doc/lispref/text.texi +++ b/doc/lispref/text.texi @@ -4687,18 +4687,20 @@ will interfere in bizarre ways with the editing operations that call them. @defvar before-change-functions -This variable holds a list of functions to call before most buffer -modifications. Each function gets two arguments, the beginning and end -of the region that is about to change, represented as integers. The -buffer that is about to change is always the current buffer. +This variable holds a list of functions to call when Emacs is about to +modify a buffer. Each function gets two arguments, the beginning and +end of the region that is about to change, represented as integers. +The buffer that is about to change is always the current buffer when +the function is called. @end defvar @defvar after-change-functions -This variable holds a list of functions to call after any buffer -modification. Each function receives three arguments: the beginning -and end of the region just changed, and the length of the text that -existed before the change. All three arguments are integers. The -buffer that has been changed is always the current buffer. +This variable holds a list of functions to call after Emacs modifies a +buffer. Each function receives three arguments: the beginning and end +of the region just changed, and the length of the text that existed +before the change. All three arguments are integers. The buffer that +has been changed is always the current buffer when the function is +called. The length of the old text is the difference between the buffer positions before and after that text as it was before the change. As @@ -4712,9 +4714,13 @@ as changes in buffers created by Emacs internally for certain jobs, that should not be visible to Lisp programs. Do @emph{not} expect the before-change hooks and the after-change -hooks be called in balanced pairs around each buffer change. These -hooks are provided on the assumption that Lisp programs will use -either before- or the after-change hooks, but not both. +hooks be called in balanced pairs around each buffer change. Also +don't expect the before-change hooks to be called for every chunk of +text Emacs is about to delete. These hooks are provided on the +assumption that Lisp programs will use either before- or the +after-change hooks, but not both, and the boundaries of the region +where the changes happen might include more than just the actual +changed text, or even lump together several changes done piecemeal. @defmac combine-after-change-calls body@dots{} The macro executes @var{body} normally, but arranges to call the commit f785ff45d56b40f744a3d7138231d23dfd35dda4 Author: Eli Zaretskii Date: Tue Aug 9 19:52:50 2016 +0300 Clarify documentation of before/after-change-functions * doc/lispref/text.texi (Change Hooks): Clarify that the hooks are not called in balanced pairs. diff --git a/doc/lispref/text.texi b/doc/lispref/text.texi index 7791c26..de0b007 100644 --- a/doc/lispref/text.texi +++ b/doc/lispref/text.texi @@ -4676,10 +4676,10 @@ group you start for any given buffer should be the last one finished. @cindex change hooks @cindex hooks for text changes - These hook variables let you arrange to take notice of all changes in -all buffers (or in a particular buffer, if you make them buffer-local). -See also @ref{Special Properties}, for how to detect changes to specific -parts of the text. + These hook variables let you arrange to take notice of changes in +buffers (or in a particular buffer, if you make them buffer-local). +See also @ref{Special Properties}, for how to detect changes to +specific parts of the text. The functions you use in these hooks should save and restore the match data if they do anything that uses regular expressions; otherwise, they @@ -4687,8 +4687,8 @@ will interfere in bizarre ways with the editing operations that call them. @defvar before-change-functions -This variable holds a list of functions to call before any buffer -modification. Each function gets two arguments, the beginning and end +This variable holds a list of functions to call before most buffer +modifications. Each function gets two arguments, the beginning and end of the region that is about to change, represented as integers. The buffer that is about to change is always the current buffer. @end defvar @@ -4706,8 +4706,15 @@ for the changed text, its length is simply the difference between the first two arguments. @end defvar - Output of messages into the @file{*Messages*} buffer does not -call these functions. + Output of messages into the @file{*Messages*} buffer does not call +these functions, and neither do certain internal buffer changes, such +as changes in buffers created by Emacs internally for certain jobs, +that should not be visible to Lisp programs. + + Do @emph{not} expect the before-change hooks and the after-change +hooks be called in balanced pairs around each buffer change. These +hooks are provided on the assumption that Lisp programs will use +either before- or the after-change hooks, but not both. @defmac combine-after-change-calls body@dots{} The macro executes @var{body} normally, but arranges to call the commit 3c9cb57c6fae57d3798298faecccd0402b4ddd9a Author: Noam Postavsky Date: Sat Aug 6 09:05:05 2016 -0400 Document use of vectors in keymaps * doc/lispref/keymaps.texi (Format of Keymaps): Mention vector format (Bug #14797). diff --git a/doc/lispref/keymaps.texi b/doc/lispref/keymaps.texi index f5d3811..2641ad0 100644 --- a/doc/lispref/keymaps.texi +++ b/doc/lispref/keymaps.texi @@ -194,10 +194,19 @@ explicitly bound to @code{nil} (see below). @item @var{char-table} If an element of a keymap is a char-table, it counts as holding bindings for all character events with no modifier bits -(@pxref{modifier bits}): element @var{n} is the binding for the -character with code @var{n}. This is a compact way to record lots of -bindings. A keymap with such a char-table is called a @dfn{full -keymap}. Other keymaps are called @dfn{sparse keymaps}. +(@pxref{modifier bits}): the element whose index is @var{c} is the +binding for the character @var{c}. This is a compact way to record +lots of bindings. A keymap with such a char-table is called a +@dfn{full keymap}. Other keymaps are called @dfn{sparse keymaps}. + +@item @var{vector} +This kind of element is similar to a char-table: the element whose +index is @var{c} is the binding for the character @var{c}. Since the +range of characters that can be bound this way is limited by the +vector size, and vector creation allocates space for all character +codes from 0 up, this format should not be used except for creating +menu keymaps (@pxref{Menu Keymaps}), where the bindings themselves +don't matter. @item @var{string} @cindex keymap prompt string