Now on revision 113419. ------------------------------------------------------------ revno: 113419 committer: Paul Eggert branch nick: trunk timestamp: Sat 2013-07-13 22:18:48 -0700 message: Spelling fixes. diff: === modified file 'lisp/gnus/ChangeLog' --- lisp/gnus/ChangeLog 2013-07-10 22:17:07 +0000 +++ lisp/gnus/ChangeLog 2013-07-14 05:18:48 +0000 @@ -143,7 +143,7 @@ 2013-07-02 Lars Magne Ingebrigtsen * gnus-sum.el (gnus-summary-insert-old-articles): - Don't include unexistent messages. + Don't include unexisting messages. 2013-07-02 Lars Magne Ingebrigtsen === modified file 'lisp/gnus/gnus-sum.el' --- lisp/gnus/gnus-sum.el 2013-07-03 04:15:38 +0000 +++ lisp/gnus/gnus-sum.el 2013-07-14 05:18:48 +0000 @@ -1525,7 +1525,7 @@ "Range of seen articles in the current newsgroup.") (defvar gnus-newsgroup-unexist nil - "Range of unexistent articles in the current newsgroup.") + "Range of unexisting articles in the current newsgroup.") (defvar gnus-newsgroup-articles nil "List of articles in the current newsgroup.") === modified file 'lisp/ido.el' --- lisp/ido.el 2013-07-13 04:44:19 +0000 +++ lisp/ido.el 2013-07-14 05:18:48 +0000 @@ -782,7 +782,7 @@ :group 'ido) (defcustom ido-use-virtual-buffers nil - "Specify how vritual buffers should be used. + "Specify how virtual buffers should be used. The value can be one of the following: nil: No virtual buffers are used. === modified file 'lisp/progmodes/cc-engine.el' --- lisp/progmodes/cc-engine.el 2013-07-13 17:45:07 +0000 +++ lisp/progmodes/cc-engine.el 2013-07-14 05:18:48 +0000 @@ -7193,7 +7193,7 @@ ;; uncommon (e.g. some placements of "const" in C++) it's not worth ;; the effort to look for them.) -;;; 2008-04-16: commented out the next form, to allow the function to recognise +;;; 2008-04-16: commented out the next form, to allow the function to recognize ;;; "foo (int bar)" in CC (an implicit type (in class foo) without a semicolon) ;;; as a(n almost complete) declaration, enabling it to be fontified. ;; CASE 13 ------------------------------------------------------------ revno: 113418 committer: Paul Eggert branch nick: trunk timestamp: Sat 2013-07-13 17:30:45 -0700 message: * callproc.c (child_setup, relocate_fd) [!DOS_NT]: * process.c (create_process) [!DOS_NT]: Remove now-unnecessary calls to emacs_close. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2013-07-13 14:21:01 +0000 +++ src/ChangeLog 2013-07-14 00:30:45 +0000 @@ -1,3 +1,9 @@ +2013-07-14 Paul Eggert + + * callproc.c (child_setup, relocate_fd) [!DOS_NT]: + * process.c (create_process) [!DOS_NT]: + Remove now-unnecessary calls to emacs_close. + 2013-07-13 Eli Zaretskii * w32term.c (x_draw_hollow_cursor): Delete the brush object when === modified file 'src/callproc.c' --- src/callproc.c 2013-07-12 17:30:48 +0000 +++ src/callproc.c 2013-07-14 00:30:45 +0000 @@ -1346,21 +1346,13 @@ } #ifndef MSDOS - emacs_close (0); - emacs_close (1); - emacs_close (2); - - /* Redirect file descriptors and clear FD_CLOEXEC on the redirected ones. */ + /* Redirect file descriptors and clear the close-on-exec flag on the + redirected ones. IN, OUT, and ERR are close-on-exec so they + need not be closed explicitly. */ dup2 (in, 0); dup2 (out, 1); dup2 (err, 2); - emacs_close (in); - if (out != in) - emacs_close (out); - if (err != in && err != out) - emacs_close (err); - setpgid (0, 0); tcsetpgrp (0, pid); @@ -1386,7 +1378,8 @@ #ifndef WINDOWSNT /* Move the file descriptor FD so that its number is not less than MINFD. - If the file descriptor is moved at all, the original is freed. */ + If the file descriptor is moved at all, the original is closed on MSDOS, + but not elsewhere as the caller will close it anyway. */ static int relocate_fd (int fd, int minfd) { @@ -1400,7 +1393,9 @@ emacs_perror ("while setting up child"); _exit (EXIT_CANCELED); } +#ifdef MSDOS emacs_close (fd); +#endif return new; } } === modified file 'src/process.c' --- src/process.c 2013-07-12 17:30:48 +0000 +++ src/process.c 2013-07-14 00:30:45 +0000 @@ -1831,7 +1831,6 @@ pid = child_setup (xforkin, xforkout, xforkout, new_argv, 1, encoded_current_dir); #else /* not WINDOWSNT */ - emacs_close (wait_child_setup[0]); child_setup (xforkin, xforkout, xforkout, new_argv, 1, encoded_current_dir); #endif /* not WINDOWSNT */ ------------------------------------------------------------ revno: 113417 committer: Dmitry Gutov branch nick: trunk timestamp: Sat 2013-07-13 23:10:19 +0400 message: * lisp/progmodes/ruby-mode.el (ruby-font-lock-keywords): Highlight conversion methods on Kernel. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-07-13 17:45:07 +0000 +++ lisp/ChangeLog 2013-07-13 19:10:19 +0000 @@ -1,3 +1,8 @@ +2013-07-13 Dmitry Gutov + + * progmodes/ruby-mode.el (ruby-font-lock-keywords): Highlight + conversion methods on Kernel. + 2013-07-13 Alan Mackenzie * progmodes/cc-engine.el (c-forward-decl-or-cast-1): Label CASE 13 === modified file 'lisp/progmodes/ruby-mode.el' --- lisp/progmodes/ruby-mode.el 2013-07-12 23:36:14 +0000 +++ lisp/progmodes/ruby-mode.el 2013-07-13 19:10:19 +0000 @@ -1851,6 +1851,11 @@ '("\\(?:\\_<\\|::\\)\\([A-Z]+\\(\\w\\|_\\)*\\)" 1 (unless (eq ?\( (char-after)) font-lock-type-face)) '("\\(^\\s *\\|[\[\{\(,]\\s *\\|\\sw\\s +\\)\\(\\(\\sw\\|_\\)+\\):[^:]" 2 font-lock-constant-face) + ;; conversion methods on Kernel + (list (concat "\\(?:^\\|[^.@$]\\|\\.\\.\\)" + (regexp-opt '("Array" "Complex" "Float" "Hash" + "Integer" "Rational" "String") 'symbols)) + 1 font-lock-builtin-face) ;; expression expansion '(ruby-match-expression-expansion 2 font-lock-variable-name-face t) ------------------------------------------------------------ revno: 113416 committer: Alan Mackenzie branch nick: trunk timestamp: Sat 2013-07-13 17:45:07 +0000 message: progmodes/cc-engine.el (c-forward-decl-or-cast-1): Label CASE 13 and comment it out. This out-commenting enables certain C++ declarations to be parsed correctly. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-07-13 10:55:21 +0000 +++ lisp/ChangeLog 2013-07-13 17:45:07 +0000 @@ -1,3 +1,9 @@ +2013-07-13 Alan Mackenzie + + * progmodes/cc-engine.el (c-forward-decl-or-cast-1): Label CASE 13 + and comment it out. This out-commenting enables certain C++ + declarations to be parsed correctly. + 2013-07-13 Eli Zaretskii * international/mule.el (define-coding-system): Doc fix. === modified file 'lisp/progmodes/cc-engine.el' --- lisp/progmodes/cc-engine.el 2013-06-04 13:26:15 +0000 +++ lisp/progmodes/cc-engine.el 2013-07-13 17:45:07 +0000 @@ -6892,7 +6892,7 @@ (while (and (looking-at c-type-decl-prefix-key) (if (and (c-major-mode-is 'c++-mode) (match-beginning 3)) - ;; If the second submatch matches in C++ then + ;; If the third submatch matches in C++ then ;; we're looking at an identifier that's a ;; prefix only if it specifies a member pointer. (when (setq got-identifier (c-forward-name)) @@ -7193,19 +7193,23 @@ ;; uncommon (e.g. some placements of "const" in C++) it's not worth ;; the effort to look for them.) - (unless (or at-decl-end (looking-at "=[^=]")) - ;; If this is a declaration it should end here or its initializer(*) - ;; should start here, so check for allowed separation tokens. Note - ;; that this rule doesn't work e.g. with a K&R arglist after a - ;; function header. - ;; - ;; *) Don't check for C++ style initializers using parens - ;; since those already have been matched as suffixes. - ;; - ;; If `at-decl-or-cast' is then we've found some other sign that - ;; it's a declaration or cast, so then it's probably an - ;; invalid/unfinished one. - (throw 'at-decl-or-cast at-decl-or-cast)) +;;; 2008-04-16: commented out the next form, to allow the function to recognise +;;; "foo (int bar)" in CC (an implicit type (in class foo) without a semicolon) +;;; as a(n almost complete) declaration, enabling it to be fontified. + ;; CASE 13 + ;; (unless (or at-decl-end (looking-at "=[^=]")) + ;; If this is a declaration it should end here or its initializer(*) + ;; should start here, so check for allowed separation tokens. Note + ;; that this rule doesn't work e.g. with a K&R arglist after a + ;; function header. + ;; + ;; *) Don't check for C++ style initializers using parens + ;; since those already have been matched as suffixes. + ;; + ;; If `at-decl-or-cast' is then we've found some other sign that + ;; it's a declaration or cast, so then it's probably an + ;; invalid/unfinished one. + ;; (throw 'at-decl-or-cast at-decl-or-cast)) ;; Below are tests that only should be applied when we're certain to ;; not have parsed halfway through an expression. ------------------------------------------------------------ revno: 113415 fixes bug: http://debbugs.gnu.org/14850 committer: Eli Zaretskii branch nick: trunk timestamp: Sat 2013-07-13 17:21:01 +0300 message: Prevent leak in GDI objects (bug #14850). src/w32term.c (x_draw_hollow_cursor): Delete the brush object when returning early. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2013-07-13 10:29:15 +0000 +++ src/ChangeLog 2013-07-13 14:21:01 +0000 @@ -1,5 +1,8 @@ 2013-07-13 Eli Zaretskii + * w32term.c (x_draw_hollow_cursor): Delete the brush object when + returning early. (Bug#14850) + * coding.c (syms_of_coding): Set up inhibit-null-byte-detection and inhibit-iso-escape-detection attributes of 'undecided'. (Bug#14822) === modified file 'src/w32term.c' --- src/w32term.c 2013-07-06 02:40:50 +0000 +++ src/w32term.c 2013-07-13 14:21:01 +0000 @@ -5174,7 +5174,10 @@ the current matrix is invalid or such, give up. */ cursor_glyph = get_phys_cursor_glyph (w); if (cursor_glyph == NULL) - return; + { + DeleteObject (hb); + return; + } /* Compute frame-relative coordinates for phys cursor. */ get_phys_cursor_geometry (w, row, cursor_glyph, &left, &top, &h); ------------------------------------------------------------ revno: 113414 committer: Eli Zaretskii branch nick: trunk timestamp: Sat 2013-07-13 13:55:21 +0300 message: Improve the documentation of prefer-utf-8 and related issues. lisp/international/mule.el (define-coding-system): Doc fix. etc/NEWS: Document prefer-utf-8 coding-system and the new attributes :inhibit-null-byte-detection, :inhibit-iso-escape-detection, and :prefer-utf-8. diff: === modified file 'etc/ChangeLog' --- etc/ChangeLog 2013-07-13 01:30:36 +0000 +++ etc/ChangeLog 2013-07-13 10:55:21 +0000 @@ -1,3 +1,9 @@ +2013-07-13 Eli Zaretskii + + * NEWS: Document prefer-utf-8 and the new attributes + :inhibit-null-byte-detection, :inhibit-iso-escape-detection, and + :prefer-utf-8. + 2013-07-13 Leo Liu * NEWS: Mention new value for ido-use-virtual-buffers. === modified file 'etc/NEWS' --- etc/NEWS 2013-07-13 01:30:36 +0000 +++ etc/NEWS 2013-07-13 10:55:21 +0000 @@ -599,6 +599,35 @@ *** New functions `image-current-frame' and `image-show-frame' for getting and setting the current frame of a multi-frame image. +** Changes in encoding and decoding of text + +--- +*** New coding-system `prefer-utf-8'. +This is like `undecided' but prefers UTF-8 on decoding if the text to +be decoded does not contain any invalid UTF-8 sequences. On encoding, +any non-ASCII characters are automatically encoded as UTF-8. + +--- +*** New attributes of coding-systems whose type is `undecided'. +Two new attributes, `:inhibit-null-byte-detection' and +`:inhibit-iso-escape-detection', determine how to detect encoding of +text that includes null bytes and ISO-2022 escape sequences, +respectively. Each of these attributes can be either nil, zero, or +t. If it is t, decoding text ignores null bytes and, respectively, +ISO-2022 sequences. If it is nil, null bytes cause text to be decoded +with no-conversion and ISO-2022 sequences cause Emacs to assume the +text is encoded in one of the ISO-2022 encodings, such as +iso-2022-7bit. If the value is zero, Emacs consults the variables +inhibit-null-byte-detection and inhibit-iso-escape-detection, which +see. +The new attribute `:prefer-utf-8', if non-nil, causes Emacs to prefer +UTF-8 encoding and decoding, whenever possible. + +These attributes are only meaningful for coding-systems of type +`undecided'. (The type of a coding-system is determined by its +`:coding-type' attribute and can be accessed by calling the +`coding-system-type' function.) + ** The function `set-visited-file-modtime' now accepts a 0 or -1 argument with the same interpretation as the returned value of `visited-file-modtime'. === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-07-13 07:26:43 +0000 +++ lisp/ChangeLog 2013-07-13 10:55:21 +0000 @@ -1,5 +1,7 @@ 2013-07-13 Eli Zaretskii + * international/mule.el (define-coding-system): Doc fix. + * simple.el (default-font-height): Don't call font-info if the frame's default font didn't change since the frame was created. (Bug#14838) === modified file 'lisp/international/mule.el' --- lisp/international/mule.el 2013-06-28 14:53:44 +0000 +++ lisp/international/mule.el 2013-07-13 10:55:21 +0000 @@ -672,7 +672,7 @@ VALUE must be a list of symbols that control the ISO-2022 converter. Each must be a member of the list `coding-system-iso-2022-flags' -\(which see). This attribute has a meaning only when `:coding-type' +\(which see). This attribute is meaningful only when `:coding-type' is `iso-2022'. `:designation' @@ -692,7 +692,7 @@ 96 long can be designated to GN. If the first element is a charset, that charset is initially designated to GN. -This attribute has a meaning only when `:coding-type' is `iso-2022'. +This attribute is meaningful only when `:coding-type' is `iso-2022'. `:bom' @@ -712,7 +712,7 @@ Otherwise, treat them as bytes for a normal character. On encoding, produce BOM bytes according to the value of `:endian'. -This attribute has a meaning only when `:coding-type' is `utf-16' or +This attribute is meaningful only when `:coding-type' is `utf-16' or `utf-8'. `:endian' @@ -720,37 +720,37 @@ VALUE must be `big' or `little' specifying big-endian and little-endian respectively. The default value is `big'. -This attribute has a meaning only when `:coding-type' is `utf-16'. +This attribute is meaningful only when `:coding-type' is `utf-16'. `:ccl-decoder' VALUE is a symbol representing the registered CCL program used for -decoding. This attribute has a meaning only when `:coding-type' is +decoding. This attribute is meaningful only when `:coding-type' is `ccl'. `:ccl-encoder' VALUE is a symbol representing the registered CCL program used for -encoding. This attribute has a meaning only when `:coding-type' is +encoding. This attribute is meaningful only when `:coding-type' is `ccl'. -:inhibit-null-byte-detection +`:inhibit-null-byte-detection' VALUE non-nil means Emacs ignore null bytes on code detection. See the variable `inhibit-null-byte-detection'. This attribute -has a meaning only when `:coding-type' is `undecided'. +is meaningful only when `:coding-type' is `undecided'. -:inhibit-iso-escape-detection +`:inhibit-iso-escape-detection' VALUE non-nil means Emacs ignores ISO-2022 escape sequences on code detection. See the variable `inhibit-iso-escape-detection'. -This attribute has a meaning only when `:coding-type' is +This attribute is meaningful only when `:coding-type' is `undecided'. -:prefer-utf-8 +`:prefer-utf-8' VALUE non-nil means Emacs prefers UTF-8 on code detection for -non-ASCII files. This attribute has a meaning only when +non-ASCII files. This attribute is meaningful only when `:coding-type' is `undecided'." (let* ((common-attrs (mapcar 'list '(:mnemonic ------------------------------------------------------------ revno: 113413 fixes bug: http://debbugs.gnu.org/14822 committer: Eli Zaretskii branch nick: trunk timestamp: Sat 2013-07-13 13:29:15 +0300 message: Fix bug #14822 with decoding when inhibit-null-byte-detection is non-nil. src/coding.c (syms_of_coding): Set up inhibit-null-byte-detection and inhibit-iso-escape-detection attributes of 'undecided'. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2013-07-13 09:32:45 +0000 +++ src/ChangeLog 2013-07-13 10:29:15 +0000 @@ -1,3 +1,9 @@ +2013-07-13 Eli Zaretskii + + * coding.c (syms_of_coding): Set up inhibit-null-byte-detection + and inhibit-iso-escape-detection attributes of 'undecided'. + (Bug#14822) + 2013-07-13 Paul Eggert * deps.mk (sysdep.o): Remove dependency on ../lib/ignore-value.h. === modified file 'src/coding.c' --- src/coding.c 2013-06-29 15:52:20 +0000 +++ src/coding.c 2013-07-13 10:29:15 +0000 @@ -11218,6 +11218,8 @@ plist[13] = build_pure_c_string ("No conversion on encoding, automatic conversion on decoding."); plist[15] = args[coding_arg_eol_type] = Qnil; args[coding_arg_plist] = Flist (16, plist); + args[coding_arg_undecided_inhibit_null_byte_detection] = make_number (0); + args[coding_arg_undecided_inhibit_iso_escape_detection] = make_number (0); Fdefine_coding_system_internal (coding_arg_undecided_max, args); } ------------------------------------------------------------ revno: 113412 committer: Glenn Morris branch nick: trunk timestamp: Sat 2013-07-13 06:17:35 -0400 message: Auto-commit of generated files. diff: === modified file 'autogen/configure' --- autogen/configure 2013-07-12 10:17:37 +0000 +++ autogen/configure 2013-07-13 10:17:35 +0000 @@ -4351,7 +4351,8 @@ w | w3 | w32 ) val=w32 ;; * ) as_fn_error "\`--with-file-notification=$withval' is invalid; this option's value should be \`yes', \`no', \`gfile', \`inotify' or \`w32'. -\`yes' is a synonym for \`w32' on MS-Windows, and for \`gfile' otherwise." "$LINENO" 5 +\`yes' is a synonym for \`w32' on MS-Windows, for \`no' on Nextstep, +otherwise for the first of \`gfile' or \`inotify' that is usable." "$LINENO" 5 ;; esac with_file_notification=$val @@ -12000,17 +12001,29 @@ NOTIFY_OBJ= NOTIFY_SUMMARY=no -if test "${with_file_notification}" = "yes"; then - if test "${opsys}" = "mingw32"; then - with_file_notification=w32 - else - if test "${with_ns}" != yes; then - with_file_notification=gfile - fi - fi -fi - -if test "${with_file_notification}" = "gfile"; then +if test "${with_ns}" = yes && test ${with_file_notification} = yes; then + with_file_notification=no +fi + +case $with_file_notification,$opsys in + w32,* | yes,mingw32) + ac_fn_c_check_header_mongrel "$LINENO" "windows.h" "ac_cv_header_windows_h" "$ac_includes_default" +if test "x$ac_cv_header_windows_h" = x""yes; then : + +fi + + + if test "$ac_cv_header_windows_h" = yes ; then + +$as_echo "#define HAVE_W32NOTIFY 1" >>confdefs.h + + NOTIFY_OBJ=w32notify.o + NOTIFY_SUMMARY="yes (w32)" + fi ;; +esac + +case $with_file_notification,$NOTIFY_OBJ in + gfile, | yes,) succeeded=no @@ -12062,51 +12075,44 @@ HAVE_GFILENOTIFY=no fi - if test "$HAVE_GFILENOTIFY" = "yes"; then + if test "$HAVE_GFILENOTIFY" = "yes"; then $as_echo "#define HAVE_GFILENOTIFY 1" >>confdefs.h - NOTIFY_OBJ=gfilenotify.o - NOTIFY_SUMMARY="yes -lgio (gfile)" - fi -fi -if test "${with_file_notification}" = "inotify"; then - ac_fn_c_check_header_mongrel "$LINENO" "sys/inotify.h" "ac_cv_header_sys_inotify_h" "$ac_includes_default" + NOTIFY_OBJ=gfilenotify.o + NOTIFY_SUMMARY="yes -lgio (gfile)" + fi ;; +esac + +case $with_file_notification,$NOTIFY_OBJ in + inotify, | yes,) + ac_fn_c_check_header_mongrel "$LINENO" "sys/inotify.h" "ac_cv_header_sys_inotify_h" "$ac_includes_default" if test "x$ac_cv_header_sys_inotify_h" = x""yes; then : fi - if test "$ac_cv_header_sys_inotify_h" = yes ; then - ac_fn_c_check_func "$LINENO" "inotify_init1" "ac_cv_func_inotify_init1" + if test "$ac_cv_header_sys_inotify_h" = yes ; then + ac_fn_c_check_func "$LINENO" "inotify_init1" "ac_cv_func_inotify_init1" if test "x$ac_cv_func_inotify_init1" = x""yes; then : fi - if test "$ac_cv_func_inotify_init1" = yes; then + if test "$ac_cv_func_inotify_init1" = yes; then $as_echo "#define HAVE_INOTIFY 1" >>confdefs.h - NOTIFY_OBJ=inotify.o - NOTIFY_SUMMARY="yes -lglibc (inotify)" - fi - fi -fi -if test "${with_file_notification}" = "w32"; then - ac_fn_c_check_header_mongrel "$LINENO" "windows.h" "ac_cv_header_windows_h" "$ac_includes_default" -if test "x$ac_cv_header_windows_h" = x""yes; then : - -fi - - - if test "$ac_cv_header_windows_h" = yes ; then - -$as_echo "#define HAVE_W32NOTIFY 1" >>confdefs.h - - NOTIFY_OBJ=w32notify.o - NOTIFY_SUMMARY="yes (w32)" - fi -fi + NOTIFY_OBJ=inotify.o + NOTIFY_SUMMARY="yes -lglibc (inotify)" + fi + fi ;; +esac + +case $with_file_notification,$NOTIFY_OBJ in + yes,* | no,* | *,?*) ;; + *) as_fn_error "File notification \`$with_file_notification' requested but requirements not found." "$LINENO" 5 ;; +esac + if test -n "$NOTIFY_OBJ"; then $as_echo "#define USE_FILE_NOTIFY 1" >>confdefs.h ------------------------------------------------------------ revno: 113411 author: Paul Eggert committer: Paul Eggert branch nick: trunk timestamp: Sat 2013-07-13 02:32:45 -0700 message: * deps.mk (sysdep.o): Remove dependency on ../lib/ignore-value.h. Reported by Herbert J. Skuhra in . diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2013-07-13 00:24:38 +0000 +++ src/ChangeLog 2013-07-13 09:32:45 +0000 @@ -1,5 +1,9 @@ 2013-07-13 Paul Eggert + * deps.mk (sysdep.o): Remove dependency on ../lib/ignore-value.h. + Reported by Herbert J. Skuhra in + . + Don't lose top specpdl entry when memory is exhausted. * eval.c (grow_specpdl): Increment specpdl top by 1 and check for specpdl overflow here, to simplify callers; all callers changed. === modified file 'src/deps.mk' --- src/deps.mk 2013-02-25 05:55:37 +0000 +++ src/deps.mk 2013-07-13 09:32:45 +0000 @@ -190,7 +190,7 @@ frame.h atimer.h window.h msdos.h dosfns.h keyboard.h cm.h lisp.h \ globals.h $(config_h) composite.h sysselect.h gnutls.h \ ../lib/allocator.h ../lib/careadlinkat.h \ - ../lib/unistd.h ../lib/ignore-value.h + ../lib/unistd.h term.o: term.c termchar.h termhooks.h termopts.h lisp.h globals.h $(config_h) \ cm.h frame.h disptab.h keyboard.h character.h charset.h coding.h ccl.h \ xterm.h msdos.h window.h keymap.h blockinput.h atimer.h systime.h \ ------------------------------------------------------------ revno: 113410 fixes bug: http://debbugs.gnu.org/14838 committer: Eli Zaretskii branch nick: trunk timestamp: Sat 2013-07-13 10:26:43 +0300 message: Fix bug #14838 with slow scrolling with certain fonts. lisp/simple.el (default-font-height): Don't call font-info if the frame's default font didn't change since the frame was created. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-07-13 04:44:19 +0000 +++ lisp/ChangeLog 2013-07-13 07:26:43 +0000 @@ -1,3 +1,9 @@ +2013-07-13 Eli Zaretskii + + * simple.el (default-font-height): Don't call font-info if the + frame's default font didn't change since the frame was created. + (Bug#14838) + 2013-07-13 Leo Liu * ido.el (ido-read-file-name): Guard against non-symbol value. === modified file 'lisp/simple.el' --- lisp/simple.el 2013-07-12 08:35:42 +0000 +++ lisp/simple.el 2013-07-13 07:26:43 +0000 @@ -4739,10 +4739,15 @@ (defun default-font-height () "Return the height in pixels of the current buffer's default face font." - (cond - ((display-multi-font-p) - (aref (font-info (face-font 'default)) 3)) - (t (frame-char-height)))) + (let ((default-font (face-font 'default))) + (cond + ((and (display-multi-font-p) + ;; Avoid calling font-info if the frame's default font was + ;; not changed since the frame was created. That's because + ;; font-info is expensive for some fonts, see bug #14838. + (not (string= (frame-parameter nil 'font) default-font))) + (aref (font-info default-font) 3)) + (t (frame-char-height))))) (defun default-line-height () "Return the pixel height of current buffer's default-face text line. ------------------------------------------------------------ revno: 113409 committer: Leo Liu branch nick: trunk timestamp: Sat 2013-07-13 12:44:19 +0800 message: * ido.el (ido-read-file-name): Guard against non-symbol value. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-07-13 01:55:58 +0000 +++ lisp/ChangeLog 2013-07-13 04:44:19 +0000 @@ -1,3 +1,7 @@ +2013-07-13 Leo Liu + + * ido.el (ido-read-file-name): Guard against non-symbol value. + 2013-07-13 Fabián Ezequiel Gallina * progmodes/python.el (python-imenu--build-tree): Fix corner case === modified file 'lisp/ido.el' --- lisp/ido.el 2013-07-13 00:57:47 +0000 +++ lisp/ido.el 2013-07-13 04:44:19 +0000 @@ -4760,16 +4760,20 @@ (let (filename) (cond ((or (eq predicate 'file-directory-p) - (eq (get this-command 'ido) 'dir) + (eq (and (symbolp this-command) + (get this-command 'ido)) 'dir) (memq this-command ido-read-file-name-as-directory-commands)) (setq filename (ido-read-directory-name prompt dir default-filename mustmatch initial))) - ((and (not (eq (get this-command 'ido) 'ignore)) + ((and (not (eq (and (symbolp this-command) + (get this-command 'ido)) 'ignore)) (not (memq this-command ido-read-file-name-non-ido)) (or (null predicate) (eq predicate 'file-exists-p))) (let* (ido-saved-vc-hb (ido-context-switch-command - (if (eq (get this-command 'ido) 'find-file) nil 'ignore)) + (if (eq (and (symbolp this-command) + (get this-command 'ido)) 'find-file) + nil 'ignore)) (vc-handled-backends (and (boundp 'vc-handled-backends) vc-handled-backends)) (minibuffer-completing-file-name t) (ido-current-directory (ido-expand-directory dir))