Now on revision 111730. ------------------------------------------------------------ revno: 111730 fixes bug: http://debbugs.gnu.org/11127 committer: Glenn Morris branch nick: trunk timestamp: Sun 2013-02-10 17:50:45 -0800 message: Add `enable-dir-local-variables' * lisp/files.el (enable-dir-local-variables): New variable. (hack-dir-local-variables): Respect enable-dir-local-variables. * lisp/tutorial.el (help-with-tutorial): Ignore directory-local variables. diff: === modified file 'etc/NEWS' --- etc/NEWS 2013-02-11 01:44:39 +0000 +++ etc/NEWS 2013-02-11 01:50:45 +0000 @@ -45,6 +45,10 @@ ** `eval-defun' on an already defined defcustom calls the :set function, if there is one. +** If the new variable `enable-dir-local-variables' is nil, +directory local variables are ignored. May be useful for some modes +that want to ignore directory-locals while still respecting file-locals. + ** The option `set-mark-default-inactive' has been deleted. This unfinished feature was introduced by accident in Emacs 23.1; simply disabling Transient Mark mode does the same thing. @@ -228,7 +232,7 @@ file using `set-file-extended-attributes'. -* Lisp changes in Emacs 24.4 +* Lisp Changes in Emacs 24.4 ** Support for filesystem notifications. Emacs now supports notifications of filesystem changes, such as @@ -273,7 +277,7 @@ and ACL entries. -* Changes in Emacs 24.4 on non-free operating systems +* Changes in Emacs 24.4 on Non-Free Operating Systems +++ ** The "generate a backtrace on fatal error" feature now works on MS Windows. === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-02-11 01:07:05 +0000 +++ lisp/ChangeLog 2013-02-11 01:50:45 +0000 @@ -1,5 +1,10 @@ 2013-02-11 Glenn Morris + * files.el (enable-dir-local-variables): New variable. + (hack-dir-local-variables): Respect enable-dir-local-variables. + * tutorial.el (help-with-tutorial): + Ignore directory-local variables. (Bug#11127) + * vc/vc-svn.el (vc-svn-command): Move --non-interactive from here... (vc-svn-global-switches): ... to here. (Bug#13513) === modified file 'lisp/files.el' --- lisp/files.el 2013-02-10 03:08:21 +0000 +++ lisp/files.el 2013-02-11 01:50:45 +0000 @@ -507,6 +507,11 @@ (other :tag "Query" other)) :group 'find-file) +(defvar enable-dir-local-variables t + "Non-nil means enable use of directory-local variables. +Some modes may wish to set this to nil to prevent directory-local +settings being applied, but still respect file-local ones.") + ;; This is an odd variable IMO. ;; You might wonder why it is needed, when we could just do: ;; (set (make-local-variable 'enable-local-variables) nil) @@ -3659,8 +3664,12 @@ (defun hack-dir-local-variables () "Read per-directory local variables for the current buffer. Store the directory-local variables in `dir-local-variables-alist' -and `file-local-variables-alist', without applying them." +and `file-local-variables-alist', without applying them. + +This does nothing if either `enable-local-variables' or +`enable-dir-local-variables' are nil." (when (and enable-local-variables + enable-dir-local-variables (or enable-remote-dir-locals (not (file-remote-p (or (buffer-file-name) default-directory))))) === modified file 'lisp/tutorial.el' --- lisp/tutorial.el 2013-01-01 09:11:05 +0000 +++ lisp/tutorial.el 2013-02-11 01:50:45 +0000 @@ -829,10 +829,9 @@ (progn (insert-file-contents (tutorial--saved-file)) (let ((enable-local-variables :safe) - (enable-local-eval nil)) + (enable-local-eval nil) + (enable-dir-local-variables nil)) ; bug#11127 (hack-local-variables)) - ;; FIXME? What we actually want is to ignore dir-locals (?). - (setq buffer-read-only nil) ; bug#11118 (goto-char (point-min)) (setq old-tut-point (string-to-number @@ -849,10 +848,9 @@ (setq tutorial--point-before-chkeys (point-marker))) (insert-file-contents (expand-file-name filename tutorial-directory)) (let ((enable-local-variables :safe) - (enable-local-eval nil)) + (enable-local-eval nil) + (enable-dir-local-variables nil)) ; bug#11127 (hack-local-variables)) - ;; FIXME? What we actually want is to ignore dir-locals (?). - (setq buffer-read-only nil) ; bug#11118 (forward-line) (setq tutorial--point-before-chkeys (point-marker))) ------------------------------------------------------------ revno: 111729 committer: Glenn Morris branch nick: trunk timestamp: Sun 2013-02-10 17:44:39 -0800 message: NEWS copyedits diff: === modified file 'etc/NEWS' --- etc/NEWS 2013-02-10 01:56:25 +0000 +++ etc/NEWS 2013-02-11 01:44:39 +0000 @@ -28,7 +28,10 @@ build time, like libacl on GNU/Linux. To prevent this, use the configure option `--without-acl'. + * Startup Changes in Emacs 24.4 + + * Changes in Emacs 24.4 +++ @@ -63,13 +66,7 @@ using the scroll bar (i.e. dragging the thumb down even when the end of the buffer is visible). -** Nextstep (GNUstep / Mac OS X) port - -*** Improved fullscreen support. -Both native (>= OSX 10.7) and "old style" fullscreen are supported. -Customize ns-use-native-fullscreen to change style. For >= 10.7 -native is the default. - + * Editing Changes in Emacs 24.4 ** New commands `toggle-frame-fullscreen' and `toggle-frame-maximized', @@ -206,6 +203,7 @@ - advice-add/advice-remove to add/remove a piece of advice on a named function, much like `defadvice' does. + * Incompatible Lisp Changes in Emacs 24.4 ** frame-local variables that affect redisplay do not work any more. @@ -229,6 +227,7 @@ `file-extended-attributes'. The attributes can be applied to another file using `set-file-extended-attributes'. + * Lisp changes in Emacs 24.4 ** Support for filesystem notifications. @@ -273,6 +272,7 @@ `preserve-extended-attributes' as it now handles both SELinux context and ACL entries. + * Changes in Emacs 24.4 on non-free operating systems +++ @@ -286,6 +286,11 @@ Likewise, `file-name-buffer-file-type-alist' is now obsolete, and modifying it has no effect. +** Improved fullscreen support on Mac OS X. +Both native (>= OSX 10.7) and "old style" fullscreen are supported. +Customize `ns-use-native-fullscreen' to change style. For >= 10.7 +native is the default. + * Installation Changes in Emacs 24.3 ------------------------------------------------------------ revno: 111728 fixes bug: http://debbugs.gnu.org/13513 committer: Glenn Morris branch nick: trunk timestamp: Sun 2013-02-10 17:07:05 -0800 message: * vc/vc-svn.el (vc-svn-command): Move --non-interactive from here... (vc-svn-global-switches): ... to here. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-02-10 14:18:48 +0000 +++ lisp/ChangeLog 2013-02-11 01:07:05 +0000 @@ -1,3 +1,8 @@ +2013-02-11 Glenn Morris + + * vc/vc-svn.el (vc-svn-command): Move --non-interactive from here... + (vc-svn-global-switches): ... to here. (Bug#13513) + 2013-02-10 Christopher Schmidt * minibuf-eldef.el (minibuffer-default--in-prompt-regexps): Handle === modified file 'lisp/vc/vc-svn.el' --- lisp/vc/vc-svn.el 2013-02-01 17:19:24 +0000 +++ lisp/vc/vc-svn.el 2013-02-11 01:07:05 +0000 @@ -50,14 +50,21 @@ :type 'string :group 'vc-svn) -(defcustom vc-svn-global-switches nil - "Global switches to pass to any SVN command." +;; Might be nice if svn defaulted to non-interactive if stdin not tty. +;; http://svn.haxx.se/dev/archive-2008-05/0762.shtml +;; http://svn.haxx.se/dev/archive-2009-04/0094.shtml +;; Maybe newer ones do? +(defcustom vc-svn-global-switches (unless (eq system-type 'darwin) ; bug#13513 + '("--non-interactive")) + "Global switches to pass to any SVN command. +The option \"--non-interactive\" is often needed to prevent SVN +hanging while prompting for authorization." :type '(choice (const :tag "None" nil) (string :tag "Argument String") (repeat :tag "Argument List" :value ("") string)) - :version "22.1" + :version "24.4" :group 'vc-svn) (defcustom vc-svn-register-switches nil @@ -600,19 +607,11 @@ (defun vc-svn-command (buffer okstatus file-or-list &rest flags) "A wrapper around `vc-do-command' for use in vc-svn.el. The difference to vc-do-command is that this function always invokes `svn', -and that it passes \"--non-interactive\" and `vc-svn-global-switches' to -it before FLAGS." - ;; Might be nice if svn defaulted to non-interactive if stdin not tty. - ;; http://svn.haxx.se/dev/archive-2008-05/0762.shtml - ;; http://svn.haxx.se/dev/archive-2009-04/0094.shtml - ;; Maybe newer ones do? - (or (member "--non-interactive" - (setq flags (if (stringp vc-svn-global-switches) +and that it passes `vc-svn-global-switches' to it before FLAGS." + (apply 'vc-do-command (or buffer "*vc*") okstatus vc-svn-program file-or-list + (if (stringp vc-svn-global-switches) (cons vc-svn-global-switches flags) - (append vc-svn-global-switches flags)))) - (setq flags (cons "--non-interactive" flags))) - (apply 'vc-do-command (or buffer "*vc*") okstatus vc-svn-program file-or-list - flags)) + (append vc-svn-global-switches flags)))) (defun vc-svn-repository-hostname (dirname) (with-temp-buffer ------------------------------------------------------------ revno: 111727 committer: Glenn Morris branch nick: trunk timestamp: Sun 2013-02-10 16:55:26 -0800 message: ChangeLog for previous diff: === modified file 'ChangeLog' --- ChangeLog 2013-02-10 03:37:48 +0000 +++ ChangeLog 2013-02-11 00:55:26 +0000 @@ -1,3 +1,7 @@ +2013-02-11 Glenn Morris + + * configure.ac (emacs_config_options): Record some env vars. + 2013-02-10 Glenn Morris * configure.ac (emacs_config_options): Strip out the (internal) ------------------------------------------------------------ revno: 111726 committer: Glenn Morris branch nick: trunk timestamp: Sun 2013-02-10 16:54:48 -0800 message: * configure.ac (emacs_config_options): Record some env vars. diff: === modified file 'configure.ac' --- configure.ac 2013-02-10 03:37:48 +0000 +++ configure.ac 2013-02-11 00:54:48 +0000 @@ -23,9 +23,21 @@ AC_PREREQ(2.65) AC_INIT(emacs, 24.3.50) + dnl This is the documented way to record the args passed to configure, dnl rather than $ac_configure_args. emacs_config_options="$@" +## Add some environment variables, if they were passed via the environment +## rather than on the command-line. +for var in CFLAGS CPPFLAGS LDFLAGS; do + case "$emacs_config_options" in + *$var=*) continue ;; + esac + eval val="\$${var}" + test x"$val" = x && continue + emacs_config_options="${emacs_config_options}${emacs_config_options:+ }$var=$val" +done + AC_CONFIG_HEADER(src/config.h:src/config.in) AC_CONFIG_SRCDIR(src/lisp.h) AC_CONFIG_AUX_DIR(build-aux) ------------------------------------------------------------ revno: 111725 committer: Paul Eggert branch nick: trunk timestamp: Sun 2013-02-10 16:35:37 -0800 message: Remove obsolete references to VAX in comments. diff: === modified file 'etc/PROBLEMS' --- etc/PROBLEMS 2013-01-01 09:11:05 +0000 +++ etc/PROBLEMS 2013-02-11 00:35:37 +0000 @@ -3198,39 +3198,6 @@ This seems to be due to a GCC bug; it is fixed in GCC 2.8.1. -** Vax C compiler bugs affecting Emacs. - -You may get one of these problems compiling Emacs: - - foo.c line nnn: compiler error: no table entry for op STASG - foo.c: fatal error in /lib/ccom - -These are due to bugs in the C compiler; the code is valid C. -Unfortunately, the bugs are unpredictable: the same construct -may compile properly or trigger one of these bugs, depending -on what else is in the source file being compiled. Even changes -in header files that should not affect the file being compiled -can affect whether the bug happens. In addition, sometimes files -that compile correctly on one machine get this bug on another machine. - -As a result, it is hard for me to make sure this bug will not affect -you. I have attempted to find and alter these constructs, but more -can always appear. However, I can tell you how to deal with it if it -should happen. The bug comes from having an indexed reference to an -array of Lisp_Objects, as an argument in a function call: - Lisp_Object *args; - ... - ... foo (5, args[i], ...)... -putting the argument into a temporary variable first, as in - Lisp_Object *args; - Lisp_Object tem; - ... - tem = args[i]; - ... foo (r, tem, ...)... -causes the problem to go away. -The `contents' field of a Lisp vector is an array of Lisp_Objects, -so you may see the problem happening with indexed references to that. - This file is part of GNU Emacs. === modified file 'lisp/net/ange-ftp.el' --- lisp/net/ange-ftp.el 2013-02-09 12:52:01 +0000 +++ lisp/net/ange-ftp.el 2013-02-11 00:35:37 +0000 @@ -5133,7 +5133,7 @@ (forward-line 1)) ;; Would like to look for a "Total" line, or a "Directory" line to ;; make sure that the listing isn't complete garbage before putting - ;; in "." and "..", but we can't even count on all VAX's giving us + ;; in "." and "..", but we can't count on VMS giving us ;; either of these. (puthash "." t tbl) (puthash ".." t tbl)) === modified file 'src/cm.c' --- src/cm.c 2013-01-01 09:11:05 +0000 +++ src/cm.c 2013-02-11 00:35:37 +0000 @@ -28,8 +28,7 @@ #include "termchar.h" #include "tparam.h" -#define BIG 9999 /* 9999 good on VAXen. For 16 bit machines - use about 2000.... */ +#define BIG 9999 /* Good on 32-bit hosts. */ int cost; /* sums up costs */ === modified file 'src/fileio.c' --- src/fileio.c 2013-02-10 08:26:56 +0000 +++ src/fileio.c 2013-02-11 00:35:37 +0000 @@ -133,9 +133,6 @@ is added here. */ static Lisp_Object Vwrite_region_annotation_buffers; -#ifdef HAVE_FSYNC -#endif - static Lisp_Object Qdelete_by_moving_to_trash; /* Lisp function for moving files to trash. */ @@ -4965,7 +4962,7 @@ immediate_quit = 0; #ifdef HAVE_FSYNC - /* Note fsync appears to change the modtime on BSD4.2 (both vax and sun). + /* fsync appears to change the modtime on BSD4.2. Disk full in NFS may be reported here. */ /* mib says that closing the file will try to write as fast as NFS can do it, and that means the fsync here is not crucial for autosave files. */ ------------------------------------------------------------ revno: 111724 fixes bug: http://debbugs.gnu.org/13675 committer: Eli Zaretskii branch nick: trunk timestamp: Sun 2013-02-10 18:49:09 +0200 message: Speed up some redisplay operations with very long lines (Bug#13675). src/xdisp.c (move_it_vertically_backward, move_it_by_lines): When text lines are longer than window's screen lines, don't move back too far. This speeds up some redisplay operations. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2013-02-10 16:25:33 +0000 +++ src/ChangeLog 2013-02-10 16:49:09 +0000 @@ -1,3 +1,9 @@ +2013-02-10 Eli Zaretskii + + * xdisp.c (move_it_vertically_backward, move_it_by_lines): When + text lines are longer than window's screen lines, don't move back + too far. This speeds up some redisplay operations. (Bug#13675) + 2013-02-10 Dmitry Antipov * syntax.c (scan_sexps_forward): Fix byte position calculation === modified file 'src/xdisp.c' --- src/xdisp.c 2013-02-09 12:52:01 +0000 +++ src/xdisp.c 2013-02-10 16:49:09 +0000 @@ -8992,6 +8992,9 @@ struct it it2, it3; void *it2data = NULL, *it3data = NULL; ptrdiff_t start_pos; + int nchars_per_row + = (it->last_visible_x - it->first_visible_x) / FRAME_COLUMN_WIDTH (it->f); + ptrdiff_t pos_limit; move_further_back: eassert (dy >= 0); @@ -9000,9 +9003,12 @@ /* Estimate how many newlines we must move back. */ nlines = max (1, dy / FRAME_LINE_HEIGHT (it->f)); + pos_limit = max (start_pos - nlines * nchars_per_row, BEGV); - /* Set the iterator's position that many lines back. */ - while (nlines-- && IT_CHARPOS (*it) > BEGV) + /* Set the iterator's position that many lines back. But don't go + back more than NLINES full screen lines -- this wins a day with + buffers which have very long lines. */ + while (nlines-- && IT_CHARPOS (*it) > pos_limit) back_to_previous_visible_line_start (it); /* Reseat the iterator here. When moving backward, we don't want @@ -9233,6 +9239,9 @@ struct it it2; void *it2data = NULL; ptrdiff_t start_charpos, i; + int nchars_per_row + = (it->last_visible_x - it->first_visible_x) / FRAME_COLUMN_WIDTH (it->f); + ptrdiff_t pos_limit; /* Start at the beginning of the screen line containing IT's position. This may actually move vertically backwards, @@ -9241,9 +9250,11 @@ move_it_vertically_backward (it, 0); dvpos -= it->vpos; - /* Go back -DVPOS visible lines and reseat the iterator there. */ + /* Go back -DVPOS buffer lines, but no farther than -DVPOS full + screen lines, and reseat the iterator there. */ start_charpos = IT_CHARPOS (*it); - for (i = -dvpos; i > 0 && IT_CHARPOS (*it) > BEGV; --i) + pos_limit = max (start_charpos + dvpos * nchars_per_row, BEGV); + for (i = -dvpos; i > 0 && IT_CHARPOS (*it) > pos_limit; --i) back_to_previous_visible_line_start (it); reseat (it, it->current.pos, 1); ------------------------------------------------------------ revno: 111723 committer: Dmitry Antipov branch nick: trunk timestamp: Sun 2013-02-10 20:25:33 +0400 message: * syntax.c (scan_sexps_forward): Fix byte position calculation Bug#13664 (a.k.a Bug#13667) introduced with 2013-02-08 change. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2013-02-10 08:26:56 +0000 +++ src/ChangeLog 2013-02-10 16:25:33 +0000 @@ -1,3 +1,8 @@ +2013-02-10 Dmitry Antipov + + * syntax.c (scan_sexps_forward): Fix byte position calculation + Bug#13664 (a.k.a Bug#13667) introduced with 2013-02-08 change. + 2013-02-10 Paul Eggert * fileio.c (Fexpand_file_name): Omit confusing pointer comparison === modified file 'src/syntax.c' --- src/syntax.c 2013-02-08 14:44:53 +0000 +++ src/syntax.c 2013-02-10 16:25:33 +0000 @@ -3278,6 +3278,7 @@ stop: /* Here if stopping before start of sexp. */ from = prev_from; /* We have just fetched the char that starts it; */ + from_byte = prev_from_byte; goto done; /* but return the position before it. */ endquoted: ------------------------------------------------------------ revno: 111722 committer: Christopher Schmidt branch nick: trunk timestamp: Sun 2013-02-10 15:18:48 +0100 message: * minibuf-eldef.el (minibuffer-default--in-prompt-regexps): Handle "foo (bar, default: xxx): " prompts. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-02-10 03:08:21 +0000 +++ lisp/ChangeLog 2013-02-10 14:18:48 +0000 @@ -1,3 +1,8 @@ +2013-02-10 Christopher Schmidt + + * minibuf-eldef.el (minibuffer-default--in-prompt-regexps): Handle + "foo (bar, default: xxx): " prompts. + 2013-02-10 Chong Yidong * files.el (basic-save-buffer-1): Do not set === modified file 'lisp/minibuf-eldef.el' --- lisp/minibuf-eldef.el 2013-01-02 16:13:04 +0000 +++ lisp/minibuf-eldef.el 2013-02-10 14:18:48 +0000 @@ -38,6 +38,7 @@ (defun minibuffer-default--in-prompt-regexps () `(("\\( (default\\(?: is\\)? \\(.*\\))\\):? \\'" 1 ,(if minibuffer-eldef-shorten-default " [\\2]")) + ("([^(]+?\\(, default\\(?: is\\)? \\(.*\\)\\)):? \\'" 1) ("\\( \\[.*\\]\\):? *\\'" 1))) (defcustom minibuffer-eldef-shorten-default nil ------------------------------------------------------------ revno: 111721 committer: Glenn Morris branch nick: trunk timestamp: Sun 2013-02-10 06:19:05 -0500 message: Auto-commit of generated files. diff: === modified file 'autogen/configure' --- autogen/configure 2013-02-09 11:17:59 +0000 +++ autogen/configure 2013-02-10 11:19:05 +0000 @@ -16239,7 +16239,7 @@ #define EMACS_CONFIGURATION "${canonical}" _ACEOF -emacs_config_options=`echo "$emacs_config_options" | sed -e "s/\"/'/g"` +emacs_config_options=`echo "$emacs_config_options " | sed -e 's/--no-create //' -e 's/--no-recursion //' -e 's/ *$//' -e "s/\"/'/g"` cat >>confdefs.h <<_ACEOF #define EMACS_CONFIG_OPTIONS "${emacs_config_options}" ------------------------------------------------------------ revno: 111720 committer: Paul Eggert branch nick: trunk timestamp: Sun 2013-02-10 00:26:56 -0800 message: * fileio.c (Fexpand_file_name): Omit confusing pointer comparison that was not needed. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2013-02-09 22:42:33 +0000 +++ src/ChangeLog 2013-02-10 08:26:56 +0000 @@ -1,3 +1,8 @@ +2013-02-10 Paul Eggert + + * fileio.c (Fexpand_file_name): Omit confusing pointer comparison + that was not needed. + 2013-02-09 Paul Eggert Minor hashing refactoring. === modified file 'src/fileio.c' --- src/fileio.c 2013-02-04 16:33:30 +0000 +++ src/fileio.c 2013-02-10 08:26:56 +0000 @@ -1348,8 +1348,8 @@ #ifdef WINDOWSNT char *prev_o = o; #endif - while (o != target && (--o) && !IS_DIRECTORY_SEP (*o)) - ; + while (o != target && (--o, !IS_DIRECTORY_SEP (*o))) + continue; #ifdef WINDOWSNT /* Don't go below server level in UNC filenames. */ if (o == target + 1 && IS_DIRECTORY_SEP (*o) ------------------------------------------------------------ revno: 111719 committer: Glenn Morris branch nick: trunk timestamp: Sat 2013-02-09 19:37:48 -0800 message: * configure.ac (emacs_config_options): Strip out the (internal) arguments --no-create and --no-recursion. diff: === modified file 'ChangeLog' --- ChangeLog 2013-02-08 23:37:17 +0000 +++ ChangeLog 2013-02-10 03:37:48 +0000 @@ -1,3 +1,8 @@ +2013-02-10 Glenn Morris + + * configure.ac (emacs_config_options): Strip out the (internal) + arguments --no-create and --no-recursion. + 2013-02-08 Paul Eggert Merge from gnulib, incorporating: === modified file 'configure.ac' --- configure.ac 2013-02-07 06:23:54 +0000 +++ configure.ac 2013-02-10 03:37:48 +0000 @@ -4087,7 +4087,7 @@ AC_DEFINE_UNQUOTED(EMACS_CONFIGURATION, "${canonical}", [Define to the canonical Emacs configuration name.]) dnl Replace any embedded " characters (bug#13274). -emacs_config_options=`echo "$emacs_config_options" | sed -e "s/\"/'/g"` +emacs_config_options=`echo "$emacs_config_options " | sed -e 's/--no-create //' -e 's/--no-recursion //' -e 's/ *$//' -e "s/\"/'/g"` AC_DEFINE_UNQUOTED(EMACS_CONFIG_OPTIONS, "${emacs_config_options}", [Define to the options passed to configure.]) AH_TEMPLATE(config_opsysfile, [Some platforms that do not use configure