commit 76d5122a51f6abd98ec8aac16762e7335ab6d31d (HEAD, refs/remotes/origin/master) Author: Eli Zaretskii Date: Mon Oct 5 10:22:08 2015 +0300 Remove redundant redisplay code * src/xdisp.c (redisplay_internal, try_cursor_movement) (try_window_reusing_current_matrix, try_window_id): Remove redundant restrictions on redisplay optimizations based on the frame's 'redisplay' flag. See http://osdir.com/ml/general/2015-10/msg02110.html for the relevant discussions. diff --git a/src/xdisp.c b/src/xdisp.c index 051d307..44983bb 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -13368,9 +13368,6 @@ redisplay_internal (void) /* True means redisplay has to redisplay the miniwindow. */ bool update_miniwindow_p = false; - /* True means we need to redraw frames whose 'redisplay' bit is set. */ - bool consider_some_frames_p = false; - TRACE ((stderr, "redisplay_internal %d\n", redisplaying_p)); /* No redisplay if running in batch mode or frame is not yet fully @@ -13420,8 +13417,6 @@ redisplay_internal (void) inhibit_free_realized_faces = false; - consider_some_frames_p = false; - /* If face_change, init_iterator will free all realized faces, which includes the faces referenced from current matrices. So, we can't reuse current matrices in this case. */ @@ -13592,7 +13587,6 @@ redisplay_internal (void) && !FRAME_OBSCURED_P (XFRAME (w->frame)) && !XFRAME (w->frame)->cursor_type_changed && !XFRAME (w->frame)->face_change - && !XFRAME (w->frame)->redisplay /* Make sure recorded data applies to current buffer, etc. */ && this_line_buffer == current_buffer && match_p @@ -13788,31 +13782,14 @@ redisplay_internal (void) #endif /* Build desired matrices, and update the display. If - consider_all_windows_p, do it for all windows on all frames. If - a frame's 'redisplay' flag is set, do it for all windows on each - such frame. Otherwise do it for selected_window, only. */ - - if (!consider_all_windows_p) - { - FOR_EACH_FRAME (tail, frame) - { - if (XFRAME (frame)->redisplay - && XFRAME (frame) != sf - && !FRAME_INITIAL_P (XFRAME (frame))) - { - consider_some_frames_p = true; - break; - } - } - } + consider_all_windows_p, do it for all windows on all frames that + require redisplay, as specified by their 'redisplay' flag. + Otherwise do it for selected_window, only. */ - if (consider_all_windows_p || consider_some_frames_p) + if (consider_all_windows_p) { FOR_EACH_FRAME (tail, frame) - { - if (XFRAME (frame)->redisplay || consider_all_windows_p) - XFRAME (frame)->updated_p = false; - } + XFRAME (frame)->updated_p = false; propagate_buffer_redisplay (); @@ -13826,9 +13803,6 @@ redisplay_internal (void) && !EQ (FRAME_TTY (f)->top_frame, frame)) continue; - if (!consider_all_windows_p && !f->redisplay) - continue; - retry_frame: if (FRAME_WINDOW_P (f) || FRAME_TERMCAP_P (f) || f == sf) { @@ -15474,7 +15448,6 @@ try_cursor_movement (Lisp_Object window, struct text_pos startp, && !update_mode_lines && !windows_or_buffers_changed && !f->cursor_type_changed - && !f->redisplay && NILP (Vshow_trailing_whitespace) /* This code is not used for mini-buffer for the sake of the case of redisplaying to replace an echo area message; since in @@ -17085,7 +17058,6 @@ try_window_reusing_current_matrix (struct window *w) /* Don't try to reuse the display if windows have been split or such. */ || windows_or_buffers_changed - || f->redisplay || f->cursor_type_changed) return false; @@ -17863,7 +17835,7 @@ try_window_id (struct window *w) GIVE_UP (1); /* This flag is used to prevent redisplay optimizations. */ - if (windows_or_buffers_changed || f->cursor_type_changed || f->redisplay) + if (windows_or_buffers_changed || f->cursor_type_changed) GIVE_UP (2); /* This function's optimizations cannot be used if overlays have commit 1fa9f860564d1b7f223c73395b77efeab3b48555 Author: Stefan Monnier Date: Sun Oct 4 22:30:27 2015 -0400 * src/xdisp.c (windows_or_buffers_changed): Improve docstring diff --git a/src/xdisp.c b/src/xdisp.c index 1524783..051d307 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -434,22 +434,54 @@ static Lisp_Object Vmessage_stack; static bool message_enable_multibyte; -/* Nonzero if we should redraw the mode lines on the next redisplay. - If it has value REDISPLAY_SOME, then only redisplay the mode lines where - the `redisplay' bit has been set. Otherwise, redisplay all mode lines - (the number used is then only used to track down the cause for this - full-redisplay). */ +/* At each redisplay cycle, we should refresh everything there is to refresh. + To do that efficiently, we use many optimizations that try to make sure we + don't waste too much time updating things that haven't changed. + The coarsest such optimization is that, in the most common cases, we only + look at the selected-window. + + To know whether other windows should be considered for redisplay, we use the + variable windows_or_buffers_changed: as long as it is 0, it means that we + have not noticed anything that should require updating anything else than + the selected-window. If it is set to REDISPLAY_SOME, it means that since + last redisplay, some changes have been made which could impact other + windows. To know which ones need redisplay, every buffer, window, and frame + has a `redisplay' bit, which (if true) means that this object needs to be + redisplayed. If windows_or_buffers_changed is 0, we know there's no point + looking for those `redisplay' bits (actually, there might be some such bits + set, but then only on objects which aren't displayed anyway). + + OTOH if it's non-zero we wil have to loop through all windows and then check + the `redisplay' bit of the corresponding window, frame, and buffer, in order + to decide whether that window needs attention or not. Not that we can't + just look at the frame's redisplay bit to decide that the whole frame can be + skipped, since even if the frame's redisplay bit is unset, some of its + windows's redisplay bits may be set. + + Mostly for historical reasons, windows_or_buffers_changed can also take + other non-zero values. In that case, the precise value doesn't matter (it + encodes the cause of the setting but is only used for debugging purposes), + and what it means is that we shouldn't pay attention to any `redisplay' bits + and we should simply try and redisplay every window out there. */ -int update_mode_lines; +int windows_or_buffers_changed; -/* Nonzero if window sizes or contents other than selected-window have changed - since last redisplay that finished. - If it has value REDISPLAY_SOME, then only redisplay the windows where - the `redisplay' bit has been set. Otherwise, redisplay all windows - (the number used is then only used to track down the cause for this - full-redisplay). */ +/* Nonzero if we should redraw the mode lines on the next redisplay. + Similarly to `windows_or_buffers_changed', If it has value REDISPLAY_SOME, + then only redisplay the mode lines in those buffers/windows/frames where the + `redisplay' bit has been set. + For any other value, redisplay all mode lines (the number used is then only + used to track down the cause for this full-redisplay). + + The `redisplay' bits are the same as those used for + windows_or_buffers_changed, and setting windows_or_buffers_changed also + causes recomputation of the mode lines of all those windows. IOW this + variable only has an effect if windows_or_buffers_changed is zero, in which + case we should only need to redisplay the mode-line of those objects with + a `redisplay' bit set but not the window's text content (tho we may still + need to refresh the text content of the selected-window). */ -int windows_or_buffers_changed; +int update_mode_lines; /* True after display_mode_line if %l was used and it displayed a line number. */ commit 9c4b9a2869edcdca8548ff7fcbfb09d89ad3bace Author: Xue Fuqiao Date: Mon Oct 5 08:58:28 2015 +0800 Update tutorials/TUTORIAL.cn * etc/tutorials/TUTORIAL.cn: Improve translation. diff --git a/etc/tutorials/TUTORIAL.cn b/etc/tutorials/TUTORIAL.cn index 5e187a4..6a558c3 100644 --- a/etc/tutorials/TUTORIAL.cn +++ b/etc/tutorials/TUTORIAL.cn @@ -286,10 +286,9 @@ Emacs 可以有多个“窗格”,每个窗格显示不同的文字。后面 是一个特殊的键,因为按下这个键后,得到的可能不仅仅是一个换行 符。根据周围文本的不同,Emacs 可能会在换行符之后插入一些空白字符,这样, -当你在新的一行开始打字时,文本会自动与前一行对齐。我们把这个按下一个键 -时不只是插入其对应字符的特性叫做“电动”(electric)。 +当你在新的一行开始打字时,文本会自动与前一行对齐。 ->> 这是一个电动 的例子。 +>> 这是一个自动缩进的例子。 在这一行的末尾输入 。 可以看到,在插入换行符之后,Emacs 插入了空格,因此光标移动到了“在”这个 commit 6cdd3c6b654d1d81da1ab6decd08bd9e7c8f9e5d Author: YAMAMOTO Mitsuharu Date: Mon Oct 5 09:16:21 2015 +0900 * src/macfont.m (macfont_encode_char, syms_of_macfont): Remove unused vars. diff --git a/src/macfont.m b/src/macfont.m index bab9f7c..fae284f 100644 --- a/src/macfont.m +++ b/src/macfont.m @@ -2765,7 +2765,6 @@ macfont_has_char (Lisp_Object font, int c) static unsigned macfont_encode_char (struct font *font, int c) { - struct macfont_info *macfont_info = (struct macfont_info *) font; CGGlyph glyph; block_input (); @@ -4052,8 +4051,6 @@ mac_register_font_driver (struct frame *f) void syms_of_macfont (void) { - static struct font_driver mac_font_driver; - /* Core Text, for Mac OS X. */ DEFSYM (Qmac_ct, "mac-ct"); macfont_driver.type = Qmac_ct; commit 94e5235007d094cfd1235b11f1855033cc4359a3 Author: Stefan Merten Date: Sun Oct 4 22:23:46 2015 +0200 Pull in version numbers from rst.el upstream release. * lisp/textmodes/rst.el (rst-cvs-header, rst-svn-rev) (rst-svn-timestamp, rst-official-version) (rst-official-cvs-rev, rst-package-emacs-version-alist): Update version numbers. diff --git a/lisp/textmodes/rst.el b/lisp/textmodes/rst.el index 581e16e..7b2aabd 100644 --- a/lisp/textmodes/rst.el +++ b/lisp/textmodes/rst.el @@ -218,7 +218,7 @@ and before TAIL-RE and DELIM-RE in VAR or DEFAULT for no match." ;; Use CVSHeader to really get information from CVS and not other version ;; control systems. (defconst rst-cvs-header - "$CVSHeader: sm/rst_el/rst.el,v 1.327.2.6 2012-10-07 13:05:50 stefan Exp $") + "$CVSHeader: sm/rst_el/rst.el,v 1.327.2.26 2015/10/04 09:26:04 stefan Exp $") (defconst rst-cvs-rev (rst-extract-version "\\$" "CVSHeader: \\S + " "[0-9]+\\(?:\\.[0-9]+\\)+" " .*" rst-cvs-header "0.0") @@ -232,22 +232,22 @@ and before TAIL-RE and DELIM-RE in VAR or DEFAULT for no match." ;; Use LastChanged... to really get information from SVN. (defconst rst-svn-rev (rst-extract-version "\\$" "LastChangedRevision: " "[0-9]+" " " - "$LastChangedRevision: 7515 $") + "$LastChangedRevision: 7925 $") "The SVN revision of this file. SVN revision is the upstream (docutils) revision.") (defconst rst-svn-timestamp (rst-extract-version "\\$" "LastChangedDate: " ".+?+" " " - "$LastChangedDate: 2012-09-20 23:28:53 +0200 (Thu, 20 Sep 2012) $") + "$LastChangedDate: 2015-10-04 11:21:35 +0200 (Sun, 04 Oct 2015) $") "The SVN time stamp of this file.") ;; Maintained by the release process. (defconst rst-official-version (rst-extract-version "%" "OfficialVersion: " "[0-9]+\\(?:\\.[0-9]+\\)+" " " - "%OfficialVersion: 1.4.0 %") + "%OfficialVersion: 1.4.1 %") "Official version of the package.") (defconst rst-official-cvs-rev (rst-extract-version "[%$]" "Revision: " "[0-9]+\\(?:\\.[0-9]+\\)+" " " - "%Revision: 1.327 %") + "%Revision: 1.327.2.25 %") "CVS revision of this file in the official version.") (defconst rst-version @@ -267,6 +267,7 @@ in parentheses follows the development revision and the time stamp.") ("1.3.0" . "24.3") ("1.3.1" . "24.3") ("1.4.0" . "24.3") + ("1.4.1" . "24.5") )) (unless (assoc rst-official-version rst-package-emacs-version-alist) commit cacebbdaec5b38f02f5c1c4e9c7766a99835197f Author: Eli Zaretskii Date: Sun Oct 4 16:07:23 2015 +0300 * test/automated/coding-tests.el: New file. diff --git a/test/automated/coding-tests.el b/test/automated/coding-tests.el new file mode 100644 index 0000000..ebbf896 --- /dev/null +++ b/test/automated/coding-tests.el @@ -0,0 +1,50 @@ +;;; coding-tests.el --- tests for text encoding and decoding + +;; Copyright (C) 2015 Free Software Foundation, Inc. + +;; Author: Eli Zaretskii + +;; This file is part of GNU Emacs. + +;; GNU Emacs is free software: you can redistribute it and/or modify +;; it under the terms of the GNU General Public License as published by +;; the Free Software Foundation, either version 3 of the License, or +;; (at your option) any later version. + +;; GNU Emacs is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. + +;; You should have received a copy of the GNU General Public License +;; along with GNU Emacs. If not, see . + +;;; Code: + +(require 'ert) + +;; Directory to hold test data files. +(defvar coding-tests-workdir + (expand-file-name "coding-tests" temporary-file-directory)) + +;; Remove all generated test files. +(defun coding-tests-remove-files () + (delete-directory coding-tests-workdir t)) + +(ert-deftest ert-test-coding-bogus-coding-systems () + (unwind-protect + (let (test-file) + (or (file-directory-p coding-tests-workdir) + (mkdir coding-tests-workdir t)) + (setq test-file (expand-file-name "nonexisting" coding-tests-workdir)) + (if (file-exists-p test-file) + (delete-file test-file)) + (should-error + (let ((coding-system-for-read 'bogus)) + (insert-file-contents test-file))) + ;; See bug #21602. + (setq test-file (expand-file-name "writing" coding-tests-workdir)) + (should-error + (let ((coding-system-for-write (intern "\"us-ascii\""))) + (write-region "some text" nil test-file)))) + (coding-tests-remove-files))) commit acfb5cd0353406784f085ddb6edfb0d0587048c8 Author: Michael Albinus Date: Sun Oct 4 13:00:33 2015 +0200 Improve XEmacs compatibility of Tramp * lisp/net/tramp-compat.el (directory-listing-before-filename-regexp): Declare if it doesn't exist. (file-remote-p): Remove defalias, which was necessary for GNU Emacs 21. (redisplay): Make it an alias if it doesn't exist. * lisp/net/tramp.el (tramp-get-remote-tmpdir): Don't use `file-remote-p' (due to XEmacs compatibility). * lisp/net/trampver.el (locate-dominating-file) (tramp-compat-replace-regexp-in-string): Autoload. (tramp-repository-get-version): Do not dupe byte-compiler. diff --git a/lisp/net/tramp-compat.el b/lisp/net/tramp-compat.el index 9848325..e645195 100644 --- a/lisp/net/tramp-compat.el +++ b/lisp/net/tramp-compat.el @@ -105,6 +105,12 @@ (unless (boundp 'remote-file-name-inhibit-cache) (defvar remote-file-name-inhibit-cache nil)) + ;; `directory-listing-before-filename-regexp' does not exist in + ;; XEmacs. Since we use it only in tramp-adb.el, it doesn't harm to + ;; declare it here. + (unless (boundp 'directory-listing-before-filename-regexp) + (defvar directory-listing-before-filename-regexp nil)) + ;; For not existing functions, or functions with a changed argument ;; list, there are compiler warnings. We want to avoid them in ;; cases we know what we do. @@ -122,16 +128,6 @@ ;; `tramp-handle-*' functions, because this would bypass the locking ;; mechanism. - ;; `file-remote-p' has been introduced with Emacs 22. The version - ;; of XEmacs is not a magic file name function (yet). - (unless (fboundp 'file-remote-p) - (defalias 'file-remote-p - (lambda (file &optional identification connected) - (when (tramp-tramp-file-p file) - (tramp-compat-funcall - 'tramp-file-name-handler - 'file-remote-p file identification connected))))) - ;; `process-file' does not exist in XEmacs. (unless (fboundp 'process-file) (defalias 'process-file @@ -187,7 +183,11 @@ (lambda () (ad-remove-advice 'file-expand-wildcards 'around 'tramp-advice-file-expand-wildcards) - (ad-activate 'file-expand-wildcards))))) + (ad-activate 'file-expand-wildcards)))) + + ;; `redisplay' does not exist in XEmacs. + (unless (fboundp 'redisplay) + (defalias 'redisplay 'ignore))) ;; `with-temp-message' does not exist in XEmacs. (if (fboundp 'with-temp-message) diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el index fbb8c8a..df64f49 100644 --- a/lisp/net/tramp.el +++ b/lisp/net/tramp.el @@ -4005,7 +4005,7 @@ be granted." (or (tramp-get-method-parameter vec 'tramp-tmpdir) "/tmp")))) (with-tramp-connection-property vec "tmpdir" (or (and (file-directory-p dir) (file-writable-p dir) - (file-remote-p dir 'localname)) + (tramp-file-name-handler 'file-remote-p dir 'localname)) (tramp-error vec 'file-error "Directory %s not accessible" dir))) dir)) diff --git a/lisp/net/trampver.el b/lisp/net/trampver.el index bba27e3..5c42f3a 100644 --- a/lisp/net/trampver.el +++ b/lisp/net/trampver.el @@ -38,12 +38,14 @@ (defconst tramp-bug-report-address "tramp-devel@gnu.org" "Email address to send bug reports to.") +;; `locate-dominating-file' does not exist in XEmacs. But it is not used here. +(autoload 'locate-dominating-file "files") +(autoload 'tramp-compat-replace-regexp-in-string "tramp-compat") + (defun tramp-repository-get-version () "Try to return as a string the repository revision of the Tramp sources." (unless (featurep 'xemacs) - (let ((dir - (funcall - (intern "locate-dominating-file") (locate-library "tramp") ".git"))) + (let ((dir (locate-dominating-file (locate-library "tramp") ".git"))) (when dir (with-temp-buffer (let ((default-directory (file-name-as-directory dir))) @@ -51,8 +53,7 @@ (ignore-errors (call-process "git" nil '(t nil) nil "rev-parse" "HEAD"))) (not (zerop (buffer-size))) - (funcall - (intern "tramp-compat-replace-regexp-in-string") + (tramp-compat-replace-regexp-in-string "\n" "" (buffer-string))))))))) ;; Check for (X)Emacs version. commit b28beb11f3ed93af0f53fb87838bbcab0b469dfb Author: Glenn Morris Date: Sun Oct 4 06:23:45 2015 -0400 ; Auto-commit of ChangeLog files. diff --git a/ChangeLog.2 b/ChangeLog.2 index 8ab17b5..94c8508 100644 --- a/ChangeLog.2 +++ b/ChangeLog.2 @@ -1,3 +1,489 @@ +2015-10-04 Eli Zaretskii + Michael Heerdegen + + shr: fix too long lines in rendered buffers (Bug#21012) + + * lisp/net/shr.el (shr-insert-document, shr-fill-text): + Correct calculation of available width. + (shr-find-fill-point): Don't overflow window edge if shr-kinsoku-shorten + is nil. + +2015-10-04 Vincent Belaïche + + Restore blank line before next section, erroneously erased in my previous commit + + * etc/compilation.txt (symbol ant): add an additional trailing blank line to this section, so that there are two of them immediately before the next section + +2015-10-04 Vincent Belaïche + + Support MSW filename style for ant compilation error regexp + + * etc/compilation.txt (symbol ant): + * lisp/progmodes/compile.el (compilation-error-regexp-alist-alist): Support MSW filename style + +2015-10-03 Paul Eggert + + * nt/INSTALL: Minor spelling and quote fixes. + + * lisp/ibuffer.el: Fix docstring length (Bug#21541). + +2015-10-03 Simen Heggestøyl + + Maintain ordering of JSON object keys by default + + * lisp/json.el (json-object-type): Mention order handling in doc-string. + (json--plist-reverse): New utility function. + (json-read-object): Maintain ordering for alists and plists. + (json-pretty-print): Ensure that ordering is maintained. + + * test/automated/json-tests.el (test-json-plist-reverse): New test for + `json--plist-reverse'. + (json-read-simple-alist): Update test to accommodate for changes in + `json-read-object'. + + * etc/NEWS: Document the new behavior of the pretty printing functions. + +2015-10-03 Andreas Schwab + + * src/coding.c (complement_process_encoding_system): Revert last + change. + +2015-10-03 Ulf Jasper + + Add entry for Ulf Jasper. + +2015-10-03 Xue Fuqiao + + Doc fix for `defmacro' + + * doc/lispref/objects.texi (Macro Type): `defmacro' is a macro now. + +2015-10-03 Andreas Schwab + + More validatation of coding systems + + * src/fileio.c (Finsert_file_contents): Remove redundant + coding-system check. + (choose_write_coding_system): Likewise. + * src/coding.c (complement_process_encoding_system): Check + argument for valid coding system. + +2015-10-03 Eli Zaretskii + + Avoid crashes in coding_inherit_eol_type + + * src/coding.c (coding_inherit_eol_type): Check the validity of + the arguments. Suggested by Andreas Schwab . + (Bug#21602) + +2015-10-03 Eli Zaretskii + + More validatation of coding system in 'write-region' + + * src/coding.c (choose_write_coding_system): More validation of + coding-system from various sources. Suggested by Andreas Schwab + . (Bug#21602) + +2015-10-03 Eli Zaretskii + + Avoid crashes due to invalid coding-system + + * src/fileio.c (choose_write_coding_system) + (Finsert_file_contents): Check validity of coding-system-for-write + and coding-system-for-read bound by the caller. (Bug#21602) + +2015-10-03 Tassilo Horn + + Adapt to new prettify-symbols-unprettify-at-point default + + * etc/NEWS: Mention that unprettication of symbol at point is off by + default. + +2015-10-03 Tassilo Horn + + Revert my two recent process.c changes + + Revert "Improve last commit to process.c" and "Remove callback-handled + channels from Available set" because they did not fix bug#21313. + + This reverts commits bfa1aa8e2bdaf14adbbf1e9e824051d3f740694c and + 27f871907cc24f33a7d12ac3a4ab71a88f0bc554.. + +2015-10-02 Markus Triska + + * prolog.el: Update and extend operator table + + (prolog-smie-grammar): Add multifile, public etc. + +2015-10-02 Paul Eggert + + Allow autogen even when Git is not installed + + * autogen.sh: Test ‘git status’ before trying to use Git. + +2015-10-02 Stefan Monnier + + * lisp/vc/vc-git.el (vc-git-region-history): Handle local changes + + Adjust lto/lfrom when we have uncommitted changes. + +2015-10-02 Paul Eggert + + Fix problems found by clang 3.5.0 + + * src/cmds.c (Fdelete_char): Don’t assume XINT returns int. + * src/font.c (font_parse_family_registry): + Use &"str"[X] instead of "str"+X, to pacify clang -Wstring-plus-int. + +2015-10-02 Eli Zaretskii + + * nt/INSTALL: Update instructions for running autogen.sh + + * nt/INSTALL: Point to ezwinports for libXpm binaries. + +2015-10-02 Daniel Colascione + + Fix winner in cl-lib not loaded case + + * lisp/winner.el (winner-change-fun): Don't use cl-lib functions + without requiring CL + +2015-10-02 Paul Eggert + + Fix a few problems with directed quotes + + This is in response to a problem report by Kaushal Modi in: + http://bugs.gnu.org/21588#25 + * lisp/cedet/mode-local.el (describe-mode-local-overload): + * lisp/emacs-lisp/bytecomp.el (byte-compile-fix-header): + * lisp/info-xref.el (info-xref-check-all-custom): + * lisp/mail/emacsbug.el (report-emacs-bug-hook): + Prefer directed to undirected single quotes in diagnostics. + +2015-10-01 Eli Zaretskii + + Revert "Attempt to fix slow redisplay caused by last changes" + + * src/xdisp.c (try_window_id, try_window_reusing_current_matrix) + (try_cursor_movement): Don't relax requirements for redisplay + optimizations for the selected frame. (Bug#21597) + + This reverts commit c4c1fb97727ff52bcfa83ad5ed94a64a93d12e59. + +2015-10-01 Eli Zaretskii + + Fix slow redisplay when daemon frame exists + + * src/xdisp.c (redisplay_internal): Don't consider daemon frames + when looking for frames that need to be redisplayed. (Bug#21597) + +2015-10-01 Eli Zaretskii + + Attempt to fix slow redisplay caused by last changes + + * src/xdisp.c (try_window_id, try_window_reusing_current_matrix) + (try_cursor_movement): Relax requirements for redisplay + optimizations for the selected frame. (Bug#21597) + +2015-10-01 Stephen Leake + + Improve doc strings in dired.c + + * src/dired.c (Ffile_name_completion, Ffile_name_all_completions): + Improve doc string. + +2015-10-01 Stephen Leake + + Set default base-size in minibuffer-completion-help + + * lisp/minibuffer.el (minibuffer-completion-help): Set default base-size, + in case completion table does not set it. + +2015-10-01 Eli Zaretskii + + Fix GUD display of GDB output with non-ASCII text + + * lisp/progmodes/gdb-mi.el (gdb-mi-decode-strings): New defcustom. + (gdb-mi-decode): New function. + (gud-gdbmi-marker-filter): If gdb-mi-decode-strings is non-nil, + decode octal escapes in GDB output. (Bug#21572) + +2015-10-01 Eli Zaretskii + + * nt/INSTALL: Document where to find XPM support files + +2015-10-01 Tassilo Horn + + Un- and re-prettification are not exclusive + + * lisp/progmodes/prog-mode.el (prettify-symbols--post-command-hook): + Re-apply prettification to previous symbol also when unprettifying next + one. + +2015-10-01 Tassilo Horn + + Don't unprettify symbol at point by default + + * lisp/progmodes/prog-mode.el (prettify-symbols-unprettify-at-point): + Default to disabled (nil). + +2015-09-30 Artur Malabarba + + * lisp/progmodes/prog-mode.el (prettify-symbols-unprettify-at-point): + + Support unprettifying when point is after a symbol. + + * etc/NEWS: Document `prettify-symbols-unprettify-at-point' + +2015-09-30 Eli Zaretskii + + Avoid assertion violations in push_prefix_prop + + * src/xdisp.c (push_prefix_prop): Avoid assertion violations when + a line that has a line-prefix defined starts with an image. (Bug#21428) + +2015-09-30 Eli Zaretskii + + Disable some display optimizations when frames need redisplay + + These optimizations were previously disabled by the + windows_or_buffers_changed flag, which now is not set + when only some frames need to be redrawn. + * src/xdisp.c (redisplay_internal): Redisplay any frame whose + 'redisplay' flag is set. + (try_window_reusing_current_matrix, try_window_id) + (try_cursor_movement): Disable these optimizations when the + frame's 'redisplay' flag is set. + +2015-09-30 Tassilo Horn + + Don't modify buffer by unprettification + + * lisp/progmodes/prog-mode.el (prettify-symbols--compose-symbol): + (prettify-symbols--post-command-hook, prettify-symbols-mode): Don't + modify buffer when setting/removing custom prettify-symbols-start/end + text properties. Add them to font-lock-extra-managed-props, too. + +2015-09-30 Stefan Monnier + + Try to avoid redisplaying all frames when creating a new one + + * src/xfns.c (x_set_menu_bar_lines, x_change_tool_bar_height): + * src/xfaces.c (Finternal_make_lisp_face, Finternal_copy_lisp_face) + (Finternal_set_lisp_face_attribute, update_face_from_frame_parameter): + * src/frame.c (x_set_screen_gamma): Set the specific frame's + `redisplay' bit rather than windows_or_buffers_changed. + + * src/window.c (apply_window_adjustment): Remove redundant setting of + windows_or_buffers_changed. + + * src/xdisp.c (redisplay_internal): Set the specific frame's + `redisplay' bit rather than update_mode_lines in response to + cursor_type_changed. + (syms_of_xdisp): Use hash-tables for redisplay_*_cause tables. + (AINC): Adjust accordingly. + +2015-09-30 Tassilo Horn + + Implement unprettification of symbol at point + + * lisp/progmodes/prog-mode.el: Implement feature for unprettifying the + symbol at point. + (prettify-symbols--current-symbol-bounds): New variable. + (prettify-symbols--post-command-hook): New function. + (prettify-symbols-unprettify-at-point): New defcustom. + (prettify-symbols-mode): Use it. + (prettify-symbols--compose-symbol): Use them. + +2015-09-30 YAMAMOTO Mitsuharu + + * src/macfont.m (mac_font_descriptor_supports_languages): Regard "zh" as synonym of "zh-Hans". + +2015-09-30 YAMAMOTO Mitsuharu + + Work around crash when displaying etc/HELLO on OS X 10.11 + + * src/macfont.m (mac_font_get_weight) + (mac_font_descriptor_get_adjusted_weight): New functions. + (macfont_store_descriptor_attributes): Adjust weight. + +2015-09-30 YAMAMOTO Mitsuharu + + * src/macfont.m: Fix compilation with USE_CT_GLYPH_INFO. + +2015-09-30 Nicolas Petton + + * lisp/arc-mode.el (archive-rar-summarize): Better alignment of the columns. + +2015-09-30 Nicolas Petton + + Use unar and lsar to handle RAR archives in arc-mode + + * lisp/arc-mode.el (archive-rar-extract, archive-extract-by-file): Rely + on unar and lsar instead of unrar-free for RAR archives (Bug#17663). + +2015-09-30 Wieland Hoffmann (tiny change) + + Clarify :create in auth-source's docs + + * auth-source.el (auth-source-search): Clarify :create's meaning. + +2015-09-30 Phil Sainty + + Avoid empty -path arguments in rgrep + + * lisp/progmodes/grep.el (rgrep-default-command): Remove nil from + the list produced according to grep-find-ignored-directories, + before passing it to Find/Grep invocation. (Bug#21548) + +2015-09-30 Eli Zaretskii + + Clarify documentation of pos-visible-in-window-p + + * src/window.c (Fpos_visible_in_window_p): Clarify the meaning of + t for POS. See + http://lists.gnu.org/archive/html/emacs-devel/2015-09/msg01040.html + for the original report. + + * doc/lispref/windows.texi (Window Start and End): Clarify the + meaning of t for the POSITION argument of pos-visible-in-window-p. + +2015-09-29 Stefan Monnier + + * lisp/progmodes/prolog.el: Fix various indentation cases + + (prolog-operator-chars): New const (add \\). + (prolog-smie-forward-token, prolog-smie-backward-token): Use it. + (prolog-smie-rules): Add rules according to bug#21526. + +2015-09-29 Stefan Monnier + + * lisp/progmodes/sh-script.el: Old "dumb" continued line indent + + (sh-indent-after-continuation): Add new value `always' (bug#17620) + (sh-smie-sh-rules): Remove old handling of continued lines. + (sh-smie--indent-continuation): New function. + (sh-set-shell): Use it. + +2015-09-29 Stefan Monnier + + * lisp/progmodes/octave.el: Use grammar more; Handle enumeration fun + + Remove redundant :group keyword args. + (octave-begin-keywords, octave-else-keywords, octave-end-keywords): + Remove variables. + (octave-operator-table, octave-smie-bnf-table): Use let-when-compile to + turn them into compile-time variables. + Auto-generate the "foo ... end" rules from the "foo ... endfoo" rules. + Add rules for break, continue, return, global, and persistent. + Refine the rule for "until". + (octave-smie--funcall-p, octave-smie--end-index-p) + (octave-smie--in-parens-p): New functions. + (octave-smie-backward-token, octave-smie-forward-token): Use them to + distinguish the "enumeration" function and the "end" index from + their corresponding keywords. + (octave--block-offset-keywords): New constant. + (octave-smie-rules): Use it. Adjust rules for new global/persistent parsing. + (octave-reserved-words): Redefine using octave-smie-grammar. + (octave-font-lock-keywords): Use octave-smie--funcall-p and + octave-smie--end-index-p. + +2015-09-29 Stefan Monnier + + * lisp/emacs-lisp/lisp-mode.el (let-when-compile): Work like let* + +2015-09-29 Eli Zaretskii + + nt/INSTALL: Remove references to GTK site + + That site no longer offers Windows downloads. + +2015-09-29 Eli Zaretskii + + * nt/INSTALL: Add instructions for installing Git. + +2015-09-29 Katsumi Yamaoka + + * net/shr.el (shr-colorize-region): Allow 88-color tty to use colors. + Suggested by Eli Zaretskii. + +2015-09-28 Katsumi Yamaoka + + * net/shr.el (shr-colorize-region): + Don't do it on a system not supporting 256 above colors (bug#21557). + +2015-09-28 Dmitry Gutov + + Revert "Don't rely on defaults in decoding UTF-8 encoded Lisp files" + + This reverts commit db828f62f6f17414fbbc3206dac123dc73dd6055. + +2015-09-28 Nicolas Petton + + Add documentation for seq.el + + * doc/lispref/sequences.texi: Add documentation regarding extending + seq.el, as well as missing documentation for seq-elt, seq-length, seq-p, + seq-do and seq-map. + +2015-09-28 Nicolas Petton + + Better documentation for seq-some + + * doc/lispref/sequences.texi: + * lisp/emacs-lisp/seq.el: Update the documentation of seq-some to + guarantee that the returned value is the first non-nil value that + resulted from applying the predicate. + +2015-09-28 Nicolas Petton + + * lisp/arc-mode.el: Sharp-quote function arguments. + +2015-09-28 Eli Zaretskii + + Avoid redisplay error in ediff-regions-wordwise + + * lisp/vc/ediff-util.el + (ediff-clone-buffer-for-region-comparison): Make sure the mark is + set before activating it. (Bug#21567) + +2015-09-28 Eli Zaretskii + + Another attempt to fix crashes due to prematurely freed faces + + * src/xdisp.c (redisplay_internal): Inhibit freeing of realized + faces for as long as we might have desired matrices that reference + those faces. (Bug#21428) + +2015-09-28 Tassilo Horn + + Add auctex development list email address + +2015-09-28 Tassilo Horn + + Add admin/MAINTAINERS entries + + * admin/MAINTAINERS: Add entries for AUCTeX team and myself. + +2015-09-28 (tiny change) Arash Esbati (tiny change) + + Improve wrapfig package support and caption parsing + + * lisp/textmodes/reftex-vars.el (reftex-label-alist-builtin): Correct + description string and add wraptable environment. + (reftex-default-context-regexps): Improve caption regexp. + +2015-09-28 Anders Lindgren + + Respect value of frame_resize_pixelwise when handling fullscreen state. + + * src/nsterm.m (handleFS): Respect frame_resize_pixelwise when + setting size increments. + +2015-09-27 Michael Albinus + + * src/gfilenotify.c (Fgfile_add_watch): Cleanup temporary variable. + 2015-09-27 Simen Heggestøyl Add prettify-symbols-alist for js-mode @@ -14042,7 +14528,7 @@ This file records repository revisions from commit 9d56a21e6a696ad19ac65c4b405aeca44785884a (exclusive) to -commit f49e3a2603f249bb2ec281f3eaedd80cbaef2243 (inclusive). +commit 2021680e9dcd277a4ebbdb613d535e6edc86f384 (inclusive). See ChangeLog.1 for earlier changes. ;; Local Variables: commit 2021680e9dcd277a4ebbdb613d535e6edc86f384 Author: Eli Zaretskii Date: Sun Oct 4 12:23:45 2015 +0300 ; Restore some of the recent deletions in fileio.c * src/fileio.c (Finsert_file_contents, choose_write_coding_system): Restore some of the recently deleted calls to CHECK_CODING_SYSTEM. diff --git a/src/fileio.c b/src/fileio.c index b82b7d3..3155ef0 100644 --- a/src/fileio.c +++ b/src/fileio.c @@ -3470,7 +3470,11 @@ by calling `format-decode', which see. */) mtime = time_error_value (save_errno); st.st_size = -1; if (!NILP (Vcoding_system_for_read)) - Fset (Qbuffer_file_coding_system, Vcoding_system_for_read); + { + /* Don't let invalid values into buffer-file-coding-system. */ + CHECK_CODING_SYSTEM (Vcoding_system_for_read); + Fset (Qbuffer_file_coding_system, Vcoding_system_for_read); + } goto notfound; } @@ -4569,7 +4573,7 @@ choose_write_coding_system (Lisp_Object start, Lisp_Object end, Lisp_Object file if (NILP (val)) { /* If we still have not decided a coding system, use the - default value of buffer-file-coding-system. */ + current buffer's value of buffer-file-coding-system. */ val = BVAR (current_buffer, buffer_file_coding_system); using_default_coding = 1; } @@ -4587,9 +4591,16 @@ choose_write_coding_system (Lisp_Object start, Lisp_Object end, Lisp_Object file if (!force_raw_text && !NILP (Ffboundp (Vselect_safe_coding_system_function))) - /* Confirm that VAL can surely encode the current region. */ - val = call5 (Vselect_safe_coding_system_function, - start, end, val, Qnil, filename); + { + /* Confirm that VAL can surely encode the current region. */ + val = call5 (Vselect_safe_coding_system_function, + start, end, val, Qnil, filename); + /* As the function specified by select-safe-coding-system-function + is out of our control, make sure we are not fed by bogus + values. */ + if (!NILP (val)) + CHECK_CODING_SYSTEM (val); + } /* If the decided coding-system doesn't specify end-of-line format, we use that of