Now on revision 107420. ------------------------------------------------------------ revno: 107420 fixes bug(s): http://debbugs.gnu.org/10871 committer: Chong Yidong branch nick: trunk timestamp: Sat 2012-02-25 12:29:09 +0800 message: Add custom groups for VC backends, for consistency with vc-bzr. Callers changed. * vc/vc-arch.el (vc-arch): * vc/vc-cvs.el (vc-cvs): * vc/vc-git.el (vc-git): * vc/vc-hg.el (vc-hg): * vc/vc-mtn.el (vc-mtn): * vc/vc-rcs.el (vc-rcs): * vc/vc-sccs.el (vc-sccs): * vc/vc-svn.el (vc-svn): New customization group. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2012-02-25 03:08:39 +0000 +++ lisp/ChangeLog 2012-02-25 04:29:09 +0000 @@ -1,5 +1,19 @@ 2012-02-25 Chong Yidong + Add custom groups for VC backends, for consistency with vc-bzr. + + * vc/vc-arch.el (vc-arch): + * vc/vc-cvs.el (vc-cvs): + * vc/vc-git.el (vc-git): + * vc/vc-hg.el (vc-hg): + * vc/vc-mtn.el (vc-mtn): + * vc/vc-rcs.el (vc-rcs): + * vc/vc-sccs.el (vc-sccs): + * vc/vc-svn.el (vc-svn): New customization group (Bug#10871). + All relevant defcustoms reassigned. + +2012-02-25 Chong Yidong + * newcomment.el (comment-styles): Add autoload (Bug#10868). * term/x-win.el (x-initialize-window-system): Reduce default for === modified file 'lisp/vc/vc-arch.el' --- lisp/vc/vc-arch.el 2012-01-19 07:21:25 +0000 +++ lisp/vc/vc-arch.el 2012-02-25 04:29:09 +0000 @@ -65,6 +65,11 @@ ;;; Customization options ;;; +(defgroup vc-arch nil + "VC Arch backend." + :version "24.1" + :group 'vc) + ;; It seems Arch diff does not accept many options, so this is not ;; very useful. It exists mainly so that the VC backends are all ;; consistent with regards to their treatment of diff switches. @@ -76,7 +81,7 @@ (string :tag "Argument String") (repeat :tag "Argument List" :value ("") string)) :version "23.1" - :group 'vc) + :group 'vc-arch) (define-obsolete-variable-alias 'vc-arch-command 'vc-arch-program "23.1") @@ -87,7 +92,7 @@ (or (car candidates) "tla")) "Name of the Arch executable." :type 'string - :group 'vc) + :group 'vc-arch) ;; Clear up the cache to force vc-call to check again and discover ;; new functions when we reload this file. @@ -377,7 +382,7 @@ '(("\\`.*--\\(.*--.*\\)--\\(v?\\).*-\\([0-9]+\\)\\'" . "\\2\\3[\\1]")) "Rewrite rules to shorten Arch's revision names on the mode-line." :type '(repeat (cons regexp string)) - :group 'vc) + :group 'vc-arch) (defun vc-arch-mode-line-string (file) "Return string for placement in modeline by `vc-mode-line' for FILE." === modified file 'lisp/vc/vc-bzr.el' --- lisp/vc/vc-bzr.el 2012-01-19 07:21:25 +0000 +++ lisp/vc/vc-bzr.el 2012-02-25 04:29:09 +0000 @@ -56,7 +56,7 @@ (put 'Bzr 'vc-functions nil) (defgroup vc-bzr nil - "VC bzr backend." + "VC Bazaar (bzr) backend." :version "22.2" :group 'vc) === modified file 'lisp/vc/vc-cvs.el' --- lisp/vc/vc-cvs.el 2012-01-19 07:21:25 +0000 +++ lisp/vc/vc-cvs.el 2012-02-25 04:29:09 +0000 @@ -59,6 +59,11 @@ ;;; Customization options ;;; +(defgroup vc-cvs nil + "VC CVS backend." + :version "24.1" + :group 'vc) + (defcustom vc-cvs-global-switches nil "Global switches to pass to any CVS command." :type '(choice (const :tag "None" nil) @@ -67,7 +72,7 @@ :value ("") string)) :version "22.1" - :group 'vc) + :group 'vc-cvs) (defcustom vc-cvs-register-switches nil "Switches for registering a file into CVS. @@ -79,7 +84,7 @@ (string :tag "Argument String") (repeat :tag "Argument List" :value ("") string)) :version "21.1" - :group 'vc) + :group 'vc-cvs) (defcustom vc-cvs-diff-switches nil "String or list of strings specifying switches for CVS diff under VC. @@ -89,13 +94,13 @@ (string :tag "Argument String") (repeat :tag "Argument List" :value ("") string)) :version "21.1" - :group 'vc) + :group 'vc-cvs) (defcustom vc-cvs-header '("\$Id\$") "Header keywords to be inserted by `vc-insert-headers'." :version "24.1" ; no longer consult the obsolete vc-header-alist :type '(repeat string) - :group 'vc) + :group 'vc-cvs) (defcustom vc-cvs-use-edit t "Non-nil means to use `cvs edit' to \"check out\" a file. @@ -103,7 +108,7 @@ \(i.e. if you have $CVSREAD set)." :type 'boolean :version "21.1" - :group 'vc) + :group 'vc-cvs) (defcustom vc-cvs-stay-local 'only-file "Non-nil means use local operations when possible for remote repositories. @@ -131,7 +136,7 @@ :tag "if it matches") (repeat :format "%v%i\n" :inline t (regexp :tag "or")))) :version "23.1" - :group 'vc) + :group 'vc-cvs) (defcustom vc-cvs-sticky-date-format-string "%c" "Format string for mode-line display of sticky date. @@ -139,7 +144,7 @@ `vc-cvs-sticky-tag-display' is t." :type '(string) :version "22.1" - :group 'vc) + :group 'vc-cvs) (defcustom vc-cvs-sticky-tag-display t "Specify the mode-line display of sticky tags. @@ -178,7 +183,7 @@ See also variable `vc-cvs-sticky-date-format-string'." :type '(choice boolean function) :version "22.1" - :group 'vc) + :group 'vc-cvs) ;;; ;;; Internal variables === modified file 'lisp/vc/vc-git.el' --- lisp/vc/vc-git.el 2012-01-19 07:21:25 +0000 +++ lisp/vc/vc-git.el 2012-02-25 04:29:09 +0000 @@ -109,6 +109,11 @@ (require 'vc-dir) (require 'grep)) +(defgroup vc-git nil + "VC Git backend." + :version "24.1" + :group 'vc) + (defcustom vc-git-diff-switches t "String or list of strings specifying switches for Git diff under VC. If nil, use the value of `vc-diff-switches'. If t, use no switches." @@ -117,13 +122,13 @@ (string :tag "Argument String") (repeat :tag "Argument List" :value ("") string)) :version "23.1" - :group 'vc) + :group 'vc-git) (defcustom vc-git-program "git" "Name of the Git executable (excluding any arguments)." :version "24.1" :type 'string - :group 'vc) + :group 'vc-git) (defcustom vc-git-root-log-format '("%d%h..: %an %ad %s" @@ -143,7 +148,7 @@ matching the resulting Git log output, and KEYWORDS is a list of `font-lock-keywords' for highlighting the Log View buffer." :type '(list string string (repeat sexp)) - :group 'vc + :group 'vc-git :version "24.1") (defvar vc-git-commits-coding-system 'utf-8 === modified file 'lisp/vc/vc-hg.el' --- lisp/vc/vc-hg.el 2012-01-19 07:21:25 +0000 +++ lisp/vc/vc-hg.el 2012-02-25 04:29:09 +0000 @@ -116,13 +116,18 @@ ;;; Customization options +(defgroup vc-hg nil + "VC Mercurial (hg) backend." + :version "24.1" + :group 'vc) + (defcustom vc-hg-global-switches nil "Global switches to pass to any Hg command." :type '(choice (const :tag "None" nil) (string :tag "Argument String") (repeat :tag "Argument List" :value ("") string)) :version "22.2" - :group 'vc) + :group 'vc-hg) (defcustom vc-hg-diff-switches t ; Hg doesn't support common args like -u "String or list of strings specifying switches for Hg diff under VC. @@ -132,12 +137,12 @@ (string :tag "Argument String") (repeat :tag "Argument List" :value ("") string)) :version "23.1" - :group 'vc) + :group 'vc-hg) (defcustom vc-hg-program "hg" "Name of the Mercurial executable (excluding any arguments)." :type 'string - :group 'vc) + :group 'vc-hg) (defcustom vc-hg-root-log-format '("{rev}:{tags}: {author|person} {date|shortdate} {desc|firstline}\\n" @@ -153,7 +158,7 @@ output, and KEYWORDS is a list of `font-lock-keywords' for highlighting the Log View buffer." :type '(list string string (repeat sexp)) - :group 'vc + :group 'vc-hg :version "24.1") === modified file 'lisp/vc/vc-mtn.el' --- lisp/vc/vc-mtn.el 2012-01-19 07:21:25 +0000 +++ lisp/vc/vc-mtn.el 2012-02-25 04:29:09 +0000 @@ -34,6 +34,11 @@ (eval-when-compile (require 'cl) (require 'vc)) +(defgroup vc-mtn nil + "VC Monotone (mtn) backend." + :version "24.1" + :group 'vc) + (defcustom vc-mtn-diff-switches t "String or list of strings specifying switches for monotone diff under VC. If nil, use the value of `vc-diff-switches'. If t, use no switches." @@ -42,13 +47,13 @@ (string :tag "Argument String") (repeat :tag "Argument List" :value ("") string)) :version "23.1" - :group 'vc) + :group 'vc-mtn) (define-obsolete-variable-alias 'vc-mtn-command 'vc-mtn-program "23.1") (defcustom vc-mtn-program "mtn" "Name of the monotone executable." :type 'string - :group 'vc) + :group 'vc-mtn) ;; Clear up the cache to force vc-call to check again and discover ;; new functions when we reload this file. @@ -153,7 +158,7 @@ "Rewrite rules to shorten Mtn's revision names on the mode-line." :type '(repeat (cons regexp string)) :version "22.2" - :group 'vc) + :group 'vc-mtn) (defun vc-mtn-mode-line-string (file) "Return string for placement in modeline by `vc-mode-line' for FILE." === modified file 'lisp/vc/vc-rcs.el' --- lisp/vc/vc-rcs.el 2012-01-24 08:22:50 +0000 +++ lisp/vc/vc-rcs.el 2012-02-25 04:29:09 +0000 @@ -41,13 +41,18 @@ (require 'cl) (require 'vc)) +(defgroup vc-rcs nil + "VC RCS backend." + :version "24.1" + :group 'vc) + (defcustom vc-rcs-release nil "The release number of your RCS installation, as a string. If nil, VC itself computes this value when it is first needed." :type '(choice (const :tag "Auto" nil) (string :tag "Specified") (const :tag "Unknown" unknown)) - :group 'vc) + :group 'vc-rcs) (defcustom vc-rcs-register-switches nil "Switches for registering a file in RCS. @@ -59,7 +64,7 @@ (string :tag "Argument String") (repeat :tag "Argument List" :value ("") string)) :version "21.1" - :group 'vc) + :group 'vc-rcs) (defcustom vc-rcs-diff-switches nil "String or list of strings specifying switches for RCS diff under VC. @@ -69,20 +74,20 @@ (string :tag "Argument String") (repeat :tag "Argument List" :value ("") string)) :version "21.1" - :group 'vc) + :group 'vc-rcs) (defcustom vc-rcs-header '("\$Id\$") "Header keywords to be inserted by `vc-insert-headers'." :type '(repeat string) :version "24.1" ; no longer consult the obsolete vc-header-alist - :group 'vc) + :group 'vc-rcs) (defcustom vc-rcsdiff-knows-brief nil "Indicates whether rcsdiff understands the --brief option. The value is either `yes', `no', or nil. If it is nil, VC tries to use --brief and sets this variable to remember whether it worked." :type '(choice (const :tag "Work out" nil) (const yes) (const no)) - :group 'vc) + :group 'vc-rcs) ;;;###autoload (defcustom vc-rcs-master-templates @@ -95,7 +100,7 @@ (choice string function))) :version "21.1" - :group 'vc) + :group 'vc-rcs) ;;; Properties of the backend === modified file 'lisp/vc/vc-sccs.el' --- lisp/vc/vc-sccs.el 2012-01-24 08:22:50 +0000 +++ lisp/vc/vc-sccs.el 2012-02-25 04:29:09 +0000 @@ -47,6 +47,11 @@ ;; :type '(repeat directory) ;; :group 'vc) +(defgroup vc-sccs nil + "VC SCCS backend." + :version "24.1" + :group 'vc) + (defcustom vc-sccs-register-switches nil "Switches for registering a file in SCCS. A string or list of strings passed to the checkin program by @@ -57,7 +62,7 @@ (string :tag "Argument String") (repeat :tag "Argument List" :value ("") string)) :version "21.1" - :group 'vc) + :group 'vc-sccs) (defcustom vc-sccs-diff-switches nil "String or list of strings specifying switches for SCCS diff under VC. @@ -67,13 +72,13 @@ (string :tag "Argument String") (repeat :tag "Argument List" :value ("") string)) :version "21.1" - :group 'vc) + :group 'vc-sccs) (defcustom vc-sccs-header '("%W%") "Header keywords to be inserted by `vc-insert-headers'." :type '(repeat string) :version "24.1" ; no longer consult the obsolete vc-header-alist - :group 'vc) + :group 'vc-sccs) ;;;###autoload (defcustom vc-sccs-master-templates @@ -86,7 +91,7 @@ (choice string function))) :version "21.1" - :group 'vc) + :group 'vc-sccs) ;;; === modified file 'lisp/vc/vc-svn.el' --- lisp/vc/vc-svn.el 2012-01-19 07:21:25 +0000 +++ lisp/vc/vc-svn.el 2012-02-25 04:29:09 +0000 @@ -39,11 +39,16 @@ ;;; Customization options ;;; +(defgroup vc-svn nil + "VC Subversion (svn) backend." + :version "24.1" + :group 'vc) + ;; FIXME there is also svnadmin. (defcustom vc-svn-program "svn" "Name of the SVN executable." :type 'string - :group 'vc) + :group 'vc-svn) (defcustom vc-svn-global-switches nil "Global switches to pass to any SVN command." @@ -53,7 +58,7 @@ :value ("") string)) :version "22.1" - :group 'vc) + :group 'vc-svn) (defcustom vc-svn-register-switches nil "Switches for registering a file into SVN. @@ -65,7 +70,7 @@ (string :tag "Argument String") (repeat :tag "Argument List" :value ("") string)) :version "22.1" - :group 'vc) + :group 'vc-svn) (defcustom vc-svn-diff-switches t ;`svn' doesn't support common args like -c or -b. @@ -81,13 +86,13 @@ :value ("") string)) :version "22.1" - :group 'vc) + :group 'vc-svn) (defcustom vc-svn-header '("\$Id\$") "Header keywords to be inserted by `vc-insert-headers'." :version "24.1" ; no longer consult the obsolete vc-header-alist :type '(repeat string) - :group 'vc) + :group 'vc-svn) ;; We want to autoload it for use by the autoloaded version of ;; vc-svn-registered, but we want the value to be compiled at startup, not ------------------------------------------------------------ revno: 107419 fixes bug(s): http://debbugs.gnu.org/10869 committer: Chong Yidong branch nick: trunk timestamp: Sat 2012-02-25 12:03:43 +0800 message: * doc/lispref/searching.texi (Regexp Backslash): Add index entry. diff: === modified file 'doc/lispref/ChangeLog' --- doc/lispref/ChangeLog 2012-02-24 08:28:42 +0000 +++ doc/lispref/ChangeLog 2012-02-25 04:03:43 +0000 @@ -1,3 +1,7 @@ +2012-02-25 Chong Yidong + + * searching.texi (Regexp Backslash): Add index entry (Bug#10869). + 2012-02-24 Glenn Morris * errors.texi (Standard Errors): Mention dbus-error. === modified file 'doc/lispref/objects.texi' --- doc/lispref/objects.texi 2012-02-10 15:50:11 +0000 +++ doc/lispref/objects.texi 2012-02-25 04:03:43 +0000 @@ -370,7 +370,7 @@ Lisp supports this syntax only in character literals and strings. @cindex @samp{\} in character constant -@cindex backslash in character constant +@cindex backslash in character constants @cindex octal character code The most general read syntax for a character represents the character code in either octal or hex. To use octal, write a question === modified file 'doc/lispref/searching.texi' --- doc/lispref/searching.texi 2012-01-26 15:48:27 +0000 +++ doc/lispref/searching.texi 2012-02-25 04:03:43 +0000 @@ -559,6 +559,7 @@ @node Regexp Backslash @subsubsection Backslash Constructs in Regular Expressions +@cindex backslash in regular expressions For the most part, @samp{\} followed by any character matches only that character. However, there are several exceptions: certain ------------------------------------------------------------ revno: 107418 author: Dani Moncayo committer: Chong Yidong branch nick: trunk timestamp: Sat 2012-02-25 11:49:22 +0800 message: Add a clarification to Buffers chapter of Emacs manual. * doc/emacs/buffers.texi (Select Buffer): Mention that saving in a new file name can switch to a different major mode. diff: === modified file 'doc/emacs/ChangeLog' --- doc/emacs/ChangeLog 2012-02-23 08:32:18 +0000 +++ doc/emacs/ChangeLog 2012-02-25 03:49:22 +0000 @@ -1,3 +1,8 @@ +2012-02-25 Dani Moncayo (tiny change) + + * buffers.texi (Select Buffer): Mention that saving in a new file + name can switch to a different major mode. + 2012-02-23 Glenn Morris * mini.texi (Minibuffer File, Completion Options, Repetition): === modified file 'doc/emacs/buffers.texi' --- doc/emacs/buffers.texi 2012-02-09 06:43:23 +0000 +++ doc/emacs/buffers.texi 2012-02-25 03:49:22 +0000 @@ -106,7 +106,9 @@ determines the new buffer's major mode; the default value is Fundamental mode. @xref{Major Modes}. One reason to create a new buffer is to use it for making temporary notes. If you try to save -it, Emacs asks for the file name to use. +it, Emacs asks for the file name to use, and the buffer's major mode +is re-established taking that file name into account (@pxref{Choosing +Modes}). @kindex C-x @key{LEFT} @kindex C-x @key{RIGHT} ------------------------------------------------------------ revno: 107417 fixes bug(s): http://debbugs.gnu.org/10868 committer: Chong Yidong branch nick: trunk timestamp: Sat 2012-02-25 11:08:39 +0800 message: * lisp/newcomment.el (comment-styles): Add autoload. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2012-02-25 03:01:11 +0000 +++ lisp/ChangeLog 2012-02-25 03:08:39 +0000 @@ -1,5 +1,7 @@ 2012-02-25 Chong Yidong + * newcomment.el (comment-styles): Add autoload (Bug#10868). + * term/x-win.el (x-initialize-window-system): Reduce default for x-selection-timeout to 5 seconds (Bug#8869). === modified file 'lisp/newcomment.el' --- lisp/newcomment.el 2012-02-21 14:48:13 +0000 +++ lisp/newcomment.el 2012-02-25 03:08:39 +0000 @@ -185,6 +185,7 @@ This should generally stay 0, except for a few modes like Lisp where it is 1 so that regions are commented with two or three semi-colons.") +;;;###autoload (defconst comment-styles '((plain nil nil nil nil "Start in column 0 (do not indent), as in Emacs-20") ------------------------------------------------------------ revno: 107416 fixes bug(s): http://debbugs.gnu.org/8869 committer: Chong Yidong branch nick: trunk timestamp: Sat 2012-02-25 11:01:11 +0800 message: Reduce x-selection-timeout to 5s, and add a message for clipboard manager saving. * lisp/term/x-win.el (x-initialize-window-system): Reduce default for x-selection-timeout to 5 seconds. * src/xselect.c (Fx_selection_exists_p): Doc fix. (x_clipboard_manager_save_all): Print an informative message before saving to clipboard manager. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2012-02-24 22:14:05 +0000 +++ lisp/ChangeLog 2012-02-25 03:01:11 +0000 @@ -1,3 +1,8 @@ +2012-02-25 Chong Yidong + + * term/x-win.el (x-initialize-window-system): Reduce default for + x-selection-timeout to 5 seconds (Bug#8869). + 2012-02-24 Thierry Volpiatto * files.el (file-subdir-of-p): Fix typo. === modified file 'lisp/dired.el' --- lisp/dired.el 2012-02-22 06:10:03 +0000 +++ lisp/dired.el 2012-02-25 03:01:11 +0000 @@ -3732,7 +3732,7 @@ ;;;;;; dired-run-shell-command dired-do-shell-command dired-do-async-shell-command ;;;;;; dired-clean-directory dired-do-print dired-do-touch dired-do-chown ;;;;;; dired-do-chgrp dired-do-chmod dired-compare-directories dired-backup-diff -;;;;;; dired-diff) "dired-aux" "dired-aux.el" "e77c506a0dd793230c5856a67e408fc6") +;;;;;; dired-diff) "dired-aux" "dired-aux.el" "cab9b84177ac3555c24cf8e870a64095") ;;; Generated autoloads from dired-aux.el (autoload 'dired-diff "dired-aux" "\ === modified file 'lisp/term/x-win.el' --- lisp/term/x-win.el 2012-01-19 07:21:25 +0000 +++ lisp/term/x-win.el 2012-02-25 03:01:11 +0000 @@ -1408,11 +1408,12 @@ (cons '(reverse . t) default-frame-alist))))) ;; Set x-selection-timeout, measured in milliseconds. - (let ((res-selection-timeout - (x-get-resource "selectionTimeout" "SelectionTimeout"))) - (setq x-selection-timeout 20000) - (if res-selection-timeout - (setq x-selection-timeout (string-to-number res-selection-timeout)))) + (let ((res-selection-timeout (x-get-resource "selectionTimeout" + "SelectionTimeout"))) + (setq x-selection-timeout + (if res-selection-timeout + (string-to-number res-selection-timeout) + 5000))) ;; Don't let Emacs suspend under X. (add-hook 'suspend-hook 'x-win-suspend-error) === modified file 'src/ChangeLog' --- src/ChangeLog 2012-02-24 19:39:07 +0000 +++ src/ChangeLog 2012-02-25 03:01:11 +0000 @@ -1,3 +1,9 @@ +2012-02-25 Chong Yidong + + * xselect.c (Fx_selection_exists_p): Doc fix. + (x_clipboard_manager_save_all): Print an informative message + before saving to clipboard manager. + 2012-02-24 Chong Yidong * keyboard.c (process_special_events): Handle all X selection === modified file 'src/xselect.c' --- src/xselect.c 2012-02-12 03:13:13 +0000 +++ src/xselect.c 2012-02-25 03:01:11 +0000 @@ -2142,9 +2142,9 @@ 0, 2, 0, doc: /* Whether there is an owner for the given X selection. SELECTION should be the name of the selection in question, typically -one of the symbols `PRIMARY', `SECONDARY', or `CLIPBOARD'. (X expects -these literal upper-case names.) The symbol nil is the same as -`PRIMARY', and t is the same as `SECONDARY'. +one of the symbols `PRIMARY', `SECONDARY', `CLIPBOARD', or +`CLIPBOARD_MANAGER' (X expects these literal upper-case names.) The +symbol nil is the same as `PRIMARY', and t is the same as `SECONDARY'. TERMINAL should be a terminal object or a frame specifying the X server to query. If omitted or nil, that stands for the selected @@ -2273,8 +2273,14 @@ local_frame = XCAR (XCDR (XCDR (XCDR (local_selection)))); if (FRAME_LIVE_P (XFRAME (local_frame))) - internal_condition_case_1 (x_clipboard_manager_save, local_frame, - Qt, x_clipboard_manager_error_2); + { + Lisp_Object args[1]; + args[0] = build_string ("Saving clipboard to X clipboard manager..."); + Fmessage (1, args); + + internal_condition_case_1 (x_clipboard_manager_save, local_frame, + Qt, x_clipboard_manager_error_2); + } } } ------------------------------------------------------------ revno: 107415 committer: Glenn Morris branch nick: trunk timestamp: Fri 2012-02-24 20:54:17 -0500 message: Add PROBLEMS entry for X clipboard managers slowing down exit See http://debbugs.gnu.org/cgi/bugreport.cgi?bug=8869#92 diff: === modified file 'etc/PROBLEMS' --- etc/PROBLEMS 2012-02-04 01:04:25 +0000 +++ etc/PROBLEMS 2012-02-25 01:54:17 +0000 @@ -1357,6 +1357,28 @@ Option "Device" "/dev/input/mice" EndSection +*** Emacs is slow to exit in X + +After you use e.g. C-x C-c to exit, it takes many seconds before the +Emacs window disappears. If Emacs was started from a terminal, you +see the message: + + Error saving to X clipboard manager. + If the problem persists, set `x-select-enable-clipboard-manager' to nil. + +As the message suggests, this problem occurs when Emacs thinks you +have a clipboard manager program running, but has trouble contacting it. +If you don't want to use a clipboard manager, you can set the +suggested variable. Or you can make Emacs not wait so long by +reducing the value of `x-selection-timeout', either in .emacs or with +X resources. + +Sometimes this problem is due to a bug in your clipboard manager. +Updating to the latest version of the manager can help. +For example, in the Xfce 4.8 desktop environment, the clipboard +manager in versions of xfce4-settings-helper before 4.8.2 is buggy; +https://bugzilla.xfce.org/show_bug.cgi?id=7588 . + * Runtime problems on character terminals ** The meta key does not work on xterm. ------------------------------------------------------------ revno: 107414 committer: Katsumi Yamaoka branch nick: trunk timestamp: Sat 2012-02-25 00:39:24 +0000 message: nntp.el (nntp-send-authinfo): Fix last change. diff: === modified file 'lisp/gnus/nntp.el' --- lisp/gnus/nntp.el 2012-02-23 23:11:13 +0000 +++ lisp/gnus/nntp.el 2012-02-25 00:39:24 +0000 @@ -1254,11 +1254,9 @@ (auth-info (nth 0 (auth-source-search :max 1 - :host (list nntp-address - (nnoo-current-server 'nntp)) - :port (or (cdr (assoc (format "%s" nntp-port-number) - '(("563" . ("563" "nntps" "snews"))))) - '("119" "nntp"))))) + :host (list nntp-address (nnoo-current-server 'nntp)) + :port `("119" "nntp" ,(format "%s" nntp-port-number) + "563" "nntps" "snews")))) (auth-user (plist-get auth-info :user)) (auth-force (plist-get auth-info :force)) (auth-passwd (plist-get auth-info :secret)) ------------------------------------------------------------ revno: 107413 committer: Juanma Barranquero branch nick: trunk timestamp: Fri 2012-02-24 23:14:05 +0100 message: lisp/ChangeLog: Fix typos. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2012-02-24 21:16:56 +0000 +++ lisp/ChangeLog 2012-02-24 22:14:05 +0000 @@ -1,6 +1,6 @@ -2012-02-24 thierry +2012-02-24 Thierry Volpiatto - * lisp/files.el (file-subdir-of-p): Fix typo. + * files.el (file-subdir-of-p): Fix typo. 2012-02-24 Thierry Volpiatto @@ -10,7 +10,7 @@ * dired-aux.el (dired-copy-file-recursive): Same. (dired-create-files): Modify destination when source is equal to dest when copying files. - Return also when dest is a subdir of source. (bug#10489) + Return also when dest is a subdir of source. (Bug#10489) 2012-02-24 Michael Albinus ------------------------------------------------------------ revno: 107412 committer: thierry volpiatto + + * lisp/files.el (file-subdir-of-p): Fix typo. + 2012-02-24 Thierry Volpiatto * files.el (files-equal-p, file-subdir-of-p): New functions. ------------------------------------------------------------ revno: 107411 committer: Glenn Morris branch nick: trunk timestamp: Fri 2012-02-24 14:47:53 -0500 message: More ChangeLog fixes The configure.in bit is already in ../ChangeLog, where it should be. diff: === modified file 'src/ChangeLog.7' --- src/ChangeLog.7 2012-02-24 19:39:07 +0000 +++ src/ChangeLog.7 2012-02-24 19:47:53 +0000 @@ -4884,14 +4884,13 @@ The new GNU C library strftime needs the underlying host's strftime for locale dependent formats. - * configure.in (AC_CHECK_FUNCS): Add strftime. - * src/config.in (HAVE_STRFTIME): New undef. - * src/editfns.c (emacs_strftime): New decl. + * config.in (HAVE_STRFTIME): New undef. + * editfns.c (emacs_strftime): New decl. (Fformat_time_string): Doc fix: %b, %h, %B, %a, %A, and %p depend on locale; don't use actual chars to describe %n and %t. - * src/Makefile.in (strftime.o): - * src/makefile.nt ($(BLD)\strftime.obj): + * Makefile.in (strftime.o): + * makefile.nt ($(BLD)\strftime.obj): No need to compile with -Dstrftime=emacs_strftime any more. 1997-11-22 Richard Stallman ------------------------------------------------------------ revno: 107410 committer: Glenn Morris branch nick: trunk timestamp: Fri 2012-02-24 14:44:16 -0500 message: Fix another ChangeLog entry This one makes no sense, because it is editing a generated file. Looks like it was fixed in the proper place (configure.in) 2003-01-06. diff: === modified file 'src/ChangeLog.10' --- src/ChangeLog.10 2012-01-19 07:21:25 +0000 +++ src/ChangeLog.10 2012-02-24 19:44:16 +0000 @@ -20972,7 +20972,7 @@ 2002-12-30 Richard Dawe - * src/config.in (!HAVE_SIZE_T): Fix order of arguments in + * config.in (!HAVE_SIZE_T): Fix order of arguments in type definition of size_t. 2003-01-02 Steven Tamm ------------------------------------------------------------ revno: 107409 committer: Glenn Morris branch nick: trunk timestamp: Fri 2012-02-24 14:39:07 -0500 message: ChangeLog fixes diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2012-02-24 08:34:09 +0000 +++ src/ChangeLog 2012-02-24 19:39:07 +0000 @@ -6764,7 +6764,7 @@ conversion specifiers. For example, use "...%"pI"d..." rather than "...%"pEd"...". (pEd): Remove. All uses replaced with similar uses of pI. - * src/m/amdx86-64.h, src/m/ia64.h, src/m/ibms390x.h: Likewise. + * m/amdx86-64.h, m/ia64.h, m/ibms390x.h: Likewise. * alloc.c (check_pure_size): Don't overflow by converting size to int. * bidi.c (bidi_dump_cached_states): Use pI to avoid cast. * data.c (Fnumber_to_string): Use pI instead of if-then-else-abort. @@ -7746,8 +7746,7 @@ Without this change, on typical 64-bit hosts error ("...%d...", N) was used to print both 32- and 64-bit integers N, which relied on undefined behavior. - * lisp.h, src/m/amdx86-64.h, src/m/ia64.h, src/m/ibms390x.h (pEd): - New macro. + * lisp.h, m/amdx86-64.h, m/ia64.h, m/ibms390x.h (pEd): New macro. * lisp.h (error, verror): Mark as printf-like functions. * eval.c (verror): Use vsnprintf, not doprnt, to do the real work. Report overflow in size calculations when allocating printf buffer. === modified file 'src/ChangeLog.11' --- src/ChangeLog.11 2012-01-10 17:32:19 +0000 +++ src/ChangeLog.11 2012-02-24 19:39:07 +0000 @@ -533,8 +533,8 @@ * deps.mk (getloadavg.o): Remove; gnulib now does this. * lisp.h (getloadavg) [!defined HAVE_GETLOADAVG]: Remove; gnulib now does this. - * src/s/freebsd.h (HAVE_GETLOADAVG): Remove; gnulib now does this. - * src/s/netbsd.h (HAVE_GETLOADAVG): Likewise. + * s/freebsd.h (HAVE_GETLOADAVG): Remove; gnulib now does this. + * s/netbsd.h (HAVE_GETLOADAVG): Likewise. * config.in: Regenerate. 2011-02-15 Eli Zaretskii @@ -12539,7 +12539,7 @@ 2009-06-23 Jim Meyering - * src/ftfont.c (setup_otf_gstring, ftfont_shape_by_flt): + * ftfont.c (setup_otf_gstring, ftfont_shape_by_flt): Use xmalloc and xrealloc (not malloc and realloc), so subsequent heap pointer dereferences are guaranteed to be valid. === modified file 'src/ChangeLog.7' --- src/ChangeLog.7 2012-01-19 07:21:25 +0000 +++ src/ChangeLog.7 2012-02-24 19:39:07 +0000 @@ -331,7 +331,7 @@ 1998-07-30 Paul Eggert - * src/Makefile.in (widget.o, xfns.o, xmenu.o): + * Makefile.in (widget.o, xfns.o, xmenu.o): Prepend $(srcdir)/ to rule dependencies outside this dir. 1998-07-29 Kenichi Handa ------------------------------------------------------------ revno: 107408 committer: Glenn Morris branch nick: trunk timestamp: Fri 2012-02-24 14:32:46 -0500 message: ChangeLog fixes diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2012-02-24 19:25:38 +0000 +++ lisp/ChangeLog 2012-02-24 19:32:46 +0000 @@ -3300,7 +3300,7 @@ 2011-10-08 Thierry Volpiatto - * lisp/eshell/eshell.el (eshell-command): Avoid using hooks. + * eshell/eshell.el (eshell-command): Avoid using hooks. 2011-10-07 Chong Yidong === modified file 'lisp/ChangeLog.11' --- lisp/ChangeLog.11 2012-01-19 07:21:25 +0000 +++ lisp/ChangeLog.11 2012-02-24 19:32:46 +0000 @@ -7234,7 +7234,7 @@ 2004-05-10 Miles Bader - * lisp/progmodes/gud.el (gud-common-init): Only consider an existing + * progmodes/gud.el (gud-common-init): Only consider an existing buffer an error if the debugger process is actually running. 2004-05-10 Juanma Barranquero @@ -7529,7 +7529,7 @@ 2004-05-03 Michael Mauger - * emacs/lisp/progmodes/sql.el (sql-xemacs-p, sql-emacs19-p) + * progmodes/sql.el (sql-xemacs-p, sql-emacs19-p) (sql-emacs20-p): Remove. (sql-mode-syntax-table): Use shared GNU Emacs/XEmacs syntax. (sql-builtin-face, sql-doc-face): Remove. === modified file 'lisp/ChangeLog.15' --- lisp/ChangeLog.15 2012-01-10 17:32:19 +0000 +++ lisp/ChangeLog.15 2012-02-24 19:32:46 +0000 @@ -779,9 +779,9 @@ 2011-02-17 Ken Manheimer - * lisp/allout-widgets.el (allout-widgets-icons-light-subdir) + * allout-widgets.el (allout-widgets-icons-light-subdir) (allout-widgets-icons-dark-subdir): Track relocations of icons. - * lisp/allout.el: Remove commentary about remove encryption + * allout.el: Remove commentary about remove encryption passphrase mnemonic support and verification. (allout-encrypt-string): Recognize epg failure to decrypt gpg2 armored text using gpg1, and indicate that the gpg version *might* === modified file 'lisp/ChangeLog.5' --- lisp/ChangeLog.5 2012-01-19 07:21:25 +0000 +++ lisp/ChangeLog.5 2012-02-24 19:32:46 +0000 @@ -8048,7 +8048,7 @@ 1994-07-23 enami tsugutomo - * lisp/add-log.el (add-log-current-defun): Skip doc string + * add-log.el (add-log-current-defun): Skip doc string correctly even if it ends with line that starts space. 1994-07-22 Ed Reingold === modified file 'lisp/ChangeLog.7' --- lisp/ChangeLog.7 2012-02-23 01:31:39 +0000 +++ lisp/ChangeLog.7 2012-02-24 19:32:46 +0000 @@ -5859,8 +5859,7 @@ 1998-03-05 Sam Steingold - * lisp/simple.el (backward-delete-char-untabify-method): - New user option. + * simple.el (backward-delete-char-untabify-method): New user option. (backward-delete-char-untabify): Obey it. This implements "hungry" delete. @@ -7798,10 +7797,10 @@ 1997-12-03 Kyle Jones - * lisp/mail/sendmail.el (sendmail-send-it): Parse folded - Resent-To header properly; don't ignore folded lines. + * mail/sendmail.el (sendmail-send-it): + Parse folded Resent-To header properly; don't ignore folded lines. - * lisp/mail/mail-utils.el (mail-parse-comma-list): + * mail/mail-utils.el (mail-parse-comma-list): Treat newlines and tabs as whitespace. 1997-12-03 Richard Stallman === modified file 'lisp/ChangeLog.8' --- lisp/ChangeLog.8 2012-01-19 07:21:25 +0000 +++ lisp/ChangeLog.8 2012-02-24 19:32:46 +0000 @@ -3571,7 +3571,7 @@ 1999-08-15 Yoshiki Hayashi - * lisp/texinfmt.el: Handle @ifnottex. + * texinfmt.el: Handle @ifnottex. 1999-08-15 Eli Zaretskii @@ -8708,7 +8708,7 @@ 1998-10-21 Markus Rost - * lisp/info.el (Info-next-menu-item): Stay on top of node. + * info.el (Info-next-menu-item): Stay on top of node. * mail/rmailout.el (rmail-output): Insert newline only if necessary. @@ -9181,7 +9181,7 @@ * gnus-art.el (gnus-article-x-face-too-ugly): Fix type. (gnus-saved-headers): Fix type. - * lisp/textmodes/fill.el (fill-individual-paragraphs-prefix): + * textmodes/fill.el (fill-individual-paragraphs-prefix): Avoid nil value of `two-lines-citation-part'. 1998-09-30 Roman Belenov === modified file 'lisp/ChangeLog.9' --- lisp/ChangeLog.9 2012-01-19 07:21:25 +0000 +++ lisp/ChangeLog.9 2012-02-24 19:32:46 +0000 @@ -6100,7 +6100,7 @@ 2001-01-25 Dave Love - * lisp/international/mule-diag.el (describe-char-after): Doc fix. + * international/mule-diag.el (describe-char-after): Doc fix. (describe-coding-system): Tweak the English text. * loadup.el: Preload international/ccl for utf-8. @@ -15884,8 +15884,8 @@ 2000-07-16 John Wiegley - * lisp/align.el (align-newline-and-indent): - Adding new function. for auto-aligning blocks of code on RET. + * align.el (align-newline-and-indent): Adding new function, + for auto-aligning blocks of code on RET. (align-region): Fixed badly formatted minibuffer message. 2000-07-17 Kenichi Handa @@ -18753,8 +18753,7 @@ (network-connection-mode-setup): New function, saves host and service information in local variables. - * lisp/locate.el: - (locate-word-at-point): Added this function. + * locate.el (locate-word-at-point): Added this function. (locate): Default to using locate-word-at-point as input Run dired-mode-hook ------------------------------------------------------------ revno: 107407 committer: Glenn Morris branch nick: trunk timestamp: Fri 2012-02-24 14:25:38 -0500 message: Fix previous change files.el change diff: === modified file 'etc/NEWS' --- etc/NEWS 2012-02-23 19:47:27 +0000 +++ etc/NEWS 2012-02-24 19:25:38 +0000 @@ -1413,6 +1413,9 @@ both non-nil. Interactively, TRASH defaults to t, unless a prefix argument is supplied (see Trash changes, above). +FIXME +** New functions files-equal-p, file-subdir-of-p that [do something] + +++ ** Tool-bars can display separators. Tool-bar separators are handled like menu separators in menu-bar maps, === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2012-02-24 18:04:03 +0000 +++ lisp/ChangeLog 2012-02-24 19:25:38 +0000 @@ -1,14 +1,12 @@ 2012-02-24 Thierry Volpiatto - * lisp/files.el (files-equal-p): New, simple equality check between two filename. - (file-subdir-of-p): New, Check if dir1 is subdir of dir2. - (copy-directory): Return error when trying to copy a directory on itself. + * files.el (files-equal-p, file-subdir-of-p): New functions. + (copy-directory): Error when trying to copy a directory on itself. Add missing copy-contents arg to tramp handler. - - * lisp/dired-aux.el (dired-copy-file-recursive): Same. - (dired-create-files): Modify destination when source is equal to dest when copying files. - Return also when dest is a subdir of source. - (bug#10489) + * dired-aux.el (dired-copy-file-recursive): Same. + (dired-create-files): Modify destination when source is equal to + dest when copying files. + Return also when dest is a subdir of source. (bug#10489) 2012-02-24 Michael Albinus === modified file 'lisp/files.el' --- lisp/files.el 2012-02-24 18:04:03 +0000 +++ lisp/files.el 2012-02-24 19:25:38 +0000 @@ -5002,7 +5002,7 @@ (let ((handler (or (find-file-name-handler dir1 'file-subdir-of-p) (find-file-name-handler dir2 'file-subdir-of-p)))) (if handler - (funcalll handler 'file-subdir-of-p dir1 dir2) + (funcall handler 'file-subdir-of-p dir1 dir2) (when (and (file-directory-p dir1) (file-directory-p dir2)) (loop with f1 = (file-truename dir1) ------------------------------------------------------------ revno: 107406 committer: thierry volpiatto + + * lisp/files.el (files-equal-p): New, simple equality check between two filename. + (file-subdir-of-p): New, Check if dir1 is subdir of dir2. + (copy-directory): Return error when trying to copy a directory on itself. + Add missing copy-contents arg to tramp handler. + + * lisp/dired-aux.el (dired-copy-file-recursive): Same. + (dired-create-files): Modify destination when source is equal to dest when copying files. + Return also when dest is a subdir of source. + (bug#10489) + 2012-02-24 Michael Albinus * net/ange-ftp.el (ange-ftp-parse-netrc): Suppress comment lines. === modified file 'lisp/dired-aux.el' --- lisp/dired-aux.el 2012-01-19 07:21:25 +0000 +++ lisp/dired-aux.el 2012-02-24 18:04:03 +0000 @@ -1264,6 +1264,8 @@ (defun dired-copy-file-recursive (from to ok-flag &optional preserve-time top recursive) + (when (file-subdir-of-p to from) + (error "Cannot copy `%s' into its subdirectory `%s'" from to)) (let ((attrs (file-attributes from))) (if (and recursive (eq t (car attrs)) @@ -1430,10 +1432,30 @@ (cond ((integerp marker-char) marker-char) (marker-char (dired-file-marker from)) ; slow (t nil)))) - (when (and (file-directory-p from) - (file-directory-p to) - (eq file-creator 'dired-copy-file)) - (setq to (file-name-directory to))) + ;; Handle the `dired-copy-file' file-creator specially + ;; When copying a directory to another directory or + ;; possibly to itself or one of its subdirectories. + ;; e.g "~/foo/" => "~/test/" + ;; or "~/foo/" =>"~/foo/" + ;; or "~/foo/ => ~/foo/bar/") + ;; In this case the 'name-constructor' have set the destination + ;; TO to "~/test/foo" because the old emacs23 behavior + ;; of `copy-directory' was to not create the subdirectory + ;; and instead copy the contents. + ;; With the new behavior of `copy-directory' + ;; (similar to the `cp' shell command) we don't + ;; need such a construction of the target directory, + ;; so modify the destination TO to "~/test/" instead of "~/test/foo/". + (let ((destname (file-name-directory to))) + (when (and (file-directory-p from) + (file-directory-p to) + (eq file-creator 'dired-copy-file)) + (setq to destname)) + ;; If DESTNAME and FROM are the same directory or + ;; If DESTNAME is a subdirectory of FROM, return error. + (and (file-subdir-of-p destname from) + (error "Cannot copy `%s' into its subdirectory `%s'" + from to))) (condition-case err (progn (funcall file-creator from to dired-overwrite-confirmed) === modified file 'lisp/files.el' --- lisp/files.el 2012-02-10 08:08:23 +0000 +++ lisp/files.el 2012-02-24 18:04:03 +0000 @@ -4985,6 +4985,39 @@ directory 'full directory-files-no-dot-files-regexp))) (delete-directory-internal directory))))) +(defun files-equal-p (file1 file2) + "Return non-nil if FILE1 and FILE2 name the same file." + (let ((handler (or (find-file-name-handler file1 'files-equal-p) + (find-file-name-handler file2 'files-equal-p)))) + (if handler + (funcall handler 'files-equal-p file1 file2) + (equal (file-attributes (file-truename file1)) + (file-attributes (file-truename file2)))))) + +(defun file-subdir-of-p (dir1 dir2) + "Return non-nil if DIR1 is a subdirectory of DIR2. +Note that a directory is treated by this function as a subdirectory of itself. +This function only works when its two arguments already exist, +when they don't, it returns nil." + (let ((handler (or (find-file-name-handler dir1 'file-subdir-of-p) + (find-file-name-handler dir2 'file-subdir-of-p)))) + (if handler + (funcalll handler 'file-subdir-of-p dir1 dir2) + (when (and (file-directory-p dir1) + (file-directory-p dir2)) + (loop with f1 = (file-truename dir1) + with f2 = (file-truename dir2) + with ls1 = (or (split-string f1 "/" t) (list "/")) + with ls2 = (or (split-string f2 "/" t) (list "/")) + for p = (string-match "^/" f1) + for i in ls1 + for j in ls2 + when (string= i j) + concat (if p (concat "/" i) (concat i "/")) + into root + finally return + (files-equal-p (file-truename root) f2)))))) + (defun copy-directory (directory newname &optional keep-time parents copy-contents) "Copy DIRECTORY to NEWNAME. Both args must be strings. This function always sets the file modes of the output files to match @@ -5011,12 +5044,16 @@ (format "Copy directory %s to: " dir) default-directory default-directory nil nil) current-prefix-arg t nil))) + (when (file-subdir-of-p newname directory) + (error "Cannot copy `%s' into its subdirectory `%s'" + directory newname)) ;; If default-directory is a remote directory, make sure we find its ;; copy-directory handler. (let ((handler (or (find-file-name-handler directory 'copy-directory) (find-file-name-handler newname 'copy-directory)))) (if handler - (funcall handler 'copy-directory directory newname keep-time parents) + (funcall handler 'copy-directory directory + newname keep-time parents copy-contents) ;; Compute target name. (setq directory (directory-file-name (expand-file-name directory)) @@ -5025,7 +5062,12 @@ (cond ((not (file-directory-p newname)) ;; If NEWNAME is not an existing directory, create it; ;; that is where we will copy the files of DIRECTORY. - (make-directory newname parents)) + (make-directory newname parents) + ;; `file-subdir-of-p' doesn't handle non--existing directories, + ;; so double check now if NEWNAME is not a subdir of DIRECTORY. + (and (file-subdir-of-p newname directory) + (error "Cannot copy `%s' into its subdirectory `%s'" + directory newname))) ;; If NEWNAME is an existing directory and COPY-CONTENTS ;; is nil, copy into NEWNAME/[DIRECTORY-BASENAME]. ((not copy-contents) ------------------------------------------------------------ revno: 107405 fixes bug(s): http://debbugs.gnu.org/10674 committer: Eli Zaretskii branch nick: trunk timestamp: Fri 2012-02-24 12:13:20 +0200 message: Fix bug #10674 with infinite re-spawning of cmdproxy.exe. nt/cmdproxy.c (main): Bypass conversion of the file name in argv[0] and our own module name to short 8+3 aliases, if the original file names compare equal. If GetShortPathName fails, compare the base names of the two file names, and only re-spawn the command line if the base-name comparison also fails. diff: === modified file 'nt/ChangeLog' --- nt/ChangeLog 2012-02-23 07:52:08 +0000 +++ nt/ChangeLog 2012-02-24 10:13:20 +0000 @@ -1,3 +1,14 @@ +2012-02-24 Eli Zaretskii + + Prevent endless re-spawning of cmdproxy.exe when some of its + parent directories have access limitations. + + * cmdproxy.c (main): Bypass conversion of the file name in argv[0] + and our own module name to short 8+3 aliases, if the original file + names compare equal. If GetShortPathName fails, compare the base + names of the two file names, and only re-spawn the command line if + the base-name comparison also fails. (Bug#10674) + 2012-02-23 Dani Moncayo (tiny change) * makefile.w32-in (maybe-copy-distfiles-SH): Fix typo. === modified file 'nt/cmdproxy.c' --- nt/cmdproxy.c 2012-01-19 07:21:25 +0000 +++ nt/cmdproxy.c 2012-02-24 10:13:20 +0000 @@ -512,7 +512,7 @@ char modname[MAX_PATH]; char path[MAX_PATH]; char dir[MAX_PATH]; - + int status; interactive = TRUE; @@ -551,20 +551,73 @@ /* Although Emacs always sets argv[0] to an absolute pathname, we might get run in other ways as well, so convert argv[0] to an - absolute name before comparing to the module name. Don't get - caught out by mixed short and long names. */ - GetShortPathName (modname, modname, sizeof (modname)); + absolute name before comparing to the module name. */ path[0] = '\0'; - if (!SearchPath (NULL, argv[0], ".exe", sizeof (path), path, &progname) - || !GetShortPathName (path, path, sizeof (path)) - || stricmp (modname, path) != 0) + /* The call to SearchPath will find argv[0] in the current + directory, append ".exe" to it if needed, and also canonicalize + it, to resolve references to ".", "..", etc. */ + status = SearchPath (NULL, argv[0], ".exe", sizeof (path), path, + &progname); + if (!(status > 0 && stricmp (modname, path) == 0)) { - /* We are being used as a helper to run a DOS app; just pass - command line to DOS app without change. */ - /* TODO: fill in progname. */ - if (spawn (NULL, GetCommandLine (), dir, &rc)) - return rc; - fail ("Could not run %s\n", GetCommandLine ()); + if (status <= 0) + { + char *s; + + /* Make sure we have argv[0] in path[], as the failed + SearchPath might not have copied it there. */ + strcpy (path, argv[0]); + /* argv[0] could include forward slashes; convert them all + to backslashes, for strrchr calls below to DTRT. */ + for (s = path; *s; s++) + if (*s == '/') + *s = '\\'; + } + /* Perhaps MODNAME and PATH use mixed short and long file names. */ + if (!(GetShortPathName (modname, modname, sizeof (modname)) + && GetShortPathName (path, path, sizeof (path)) + && stricmp (modname, path) == 0)) + { + /* Sometimes GetShortPathName fails because one or more + directories leading to argv[0] have issues with access + rights. In that case, at least we can compare the + basenames. Note: this disregards the improbable case of + invoking a program of the same name from another + directory, since the chances of that other executable to + be both our namesake and a 16-bit DOS application are nil. */ + char *p = strrchr (path, '\\'); + char *q = strrchr (modname, '\\'); + char *pdot, *qdot; + + if (!p) + p = strchr (path, ':'); + if (!p) + p = path; + else + p++; + if (!q) + q = strchr (modname, ':'); + if (!q) + q = modname; + else + q++; + + pdot = strrchr (p, '.'); + if (!pdot || stricmp (pdot, ".exe") != 0) + pdot = p + strlen (p); + qdot = strrchr (q, '.'); + if (!qdot || stricmp (qdot, ".exe") != 0) + qdot = q + strlen (q); + if (pdot - p != qdot - q || strnicmp (p, q, pdot - p) != 0) + { + /* We are being used as a helper to run a DOS app; just + pass command line to DOS app without change. */ + /* TODO: fill in progname. */ + if (spawn (NULL, GetCommandLine (), dir, &rc)) + return rc; + fail ("Could not run %s\n", GetCommandLine ()); + } + } } /* Process command line. If running interactively (-c or /c not ------------------------------------------------------------ revno: 107404 fixes bug(s): http://debbugs.gnu.org/8869 committer: Chong Yidong branch nick: trunk timestamp: Fri 2012-02-24 16:34:09 +0800 message: Process multiple X selection requests in process_special_events. * src/keyboard.c (process_special_events): Handle all X selection requests in kbd_buffer, not just the next one. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2012-02-23 17:40:33 +0000 +++ src/ChangeLog 2012-02-24 08:34:09 +0000 @@ -1,3 +1,8 @@ +2012-02-24 Chong Yidong + + * keyboard.c (process_special_events): Handle all X selection + requests in kbd_buffer, not just the next one (Bug#8869). + 2012-02-23 Chong Yidong * xfns.c (Fx_create_frame): Avoid window-configuration-change-hook === modified file 'src/keyboard.c' --- src/keyboard.c 2012-02-04 09:27:03 +0000 +++ src/keyboard.c 2012-02-24 08:34:09 +0000 @@ -4154,29 +4154,55 @@ static void process_special_events (void) { - while (kbd_fetch_ptr != kbd_store_ptr) + struct input_event *event; + + for (event = kbd_fetch_ptr; event != kbd_store_ptr; ++event) { - struct input_event *event; - - event = ((kbd_fetch_ptr < kbd_buffer + KBD_BUFFER_SIZE) - ? kbd_fetch_ptr - : kbd_buffer); - - last_event_timestamp = event->timestamp; - - /* These two kinds of events get special handling - and don't actually appear to the command loop. */ + if (event == kbd_buffer + KBD_BUFFER_SIZE) + { + event = kbd_buffer; + if (event == kbd_store_ptr) + break; + } + + /* If we find a stored X selection request, handle it now. */ if (event->kind == SELECTION_REQUEST_EVENT || event->kind == SELECTION_CLEAR_EVENT) { #ifdef HAVE_X11 - struct input_event copy; - - /* Remove it from the buffer before processing it, - since otherwise swallow_events called recursively could see it - and process it again. */ - copy = *event; - kbd_fetch_ptr = event + 1; + + /* Remove the event from the fifo buffer before processing; + otherwise swallow_events called recursively could see it + and process it again. To do this, we move the events + between kbd_fetch_ptr and EVENT one slot to the right, + cyclically. */ + + struct input_event copy = *event; + struct input_event *beg + = (kbd_fetch_ptr == kbd_buffer + KBD_BUFFER_SIZE) + ? kbd_buffer : kbd_fetch_ptr; + + if (event > beg) + memmove (beg + 1, beg, (event - beg) * sizeof (struct input_event)); + else if (event < beg) + { + if (event > kbd_buffer) + memmove (kbd_buffer + 1, kbd_buffer, + (event - kbd_buffer) * sizeof (struct input_event)); + *kbd_buffer = *(kbd_buffer + KBD_BUFFER_SIZE - 1); + if (beg < kbd_buffer + KBD_BUFFER_SIZE - 1) + memmove (beg + 1, beg, + (kbd_buffer + KBD_BUFFER_SIZE - 1 - beg) + * sizeof (struct input_event)); + } + + if (kbd_fetch_ptr == kbd_buffer + KBD_BUFFER_SIZE) + kbd_fetch_ptr = kbd_buffer + 1; + else + kbd_fetch_ptr++; + + /* X wants last_event_timestamp for selection ownership. */ + last_event_timestamp = copy.timestamp; input_pending = readable_events (0); x_handle_selection_event (©); #else @@ -4185,8 +4211,6 @@ abort (); #endif } - else - break; } } ------------------------------------------------------------ revno: 107403 committer: Glenn Morris branch nick: trunk timestamp: Fri 2012-02-24 00:28:42 -0800 message: Small changes for lispref/errors.texi * doc/lispref/errors.texi (Standard Errors): Mention dbus-error. For arith-error sub-classes, just use one cross-ref. diff: === modified file 'doc/lispref/ChangeLog' --- doc/lispref/ChangeLog 2012-02-23 18:51:22 +0000 +++ doc/lispref/ChangeLog 2012-02-24 08:28:42 +0000 @@ -1,3 +1,8 @@ +2012-02-24 Glenn Morris + + * errors.texi (Standard Errors): Mention dbus-error. + For arith-error sub-classes, just use one cross-ref. + 2012-02-23 Alan Mackenzie * modes.texi (Defining Minor Modes): Document the new keyword === modified file 'doc/lispref/errors.texi' --- doc/lispref/errors.texi 2012-01-19 07:21:25 +0000 +++ doc/lispref/errors.texi 2012-02-24 08:28:42 +0000 @@ -1,6 +1,6 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1990-1993, 1999, 2001-2012 Free Software Foundation, Inc. +@c Copyright (C) 1990-1993, 1999, 2001-2012 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @setfilename ../../info/errors @node Standard Errors, Standard Buffer-Local Variables, GNU Emacs Internals, Top @@ -54,6 +54,11 @@ @code{"Buffer is read-only"}@* @xref{Read Only Buffers}. +@ignore +@item circular-list +@code{"List contains a loop"}@* +@end ignore + @item coding-system-error @code{"Invalid coding system"}@* @xref{Lisp and Coding Systems}. @@ -66,6 +71,11 @@ @code{"Symbol's chain of variable indirections contains a loop"}@* @xref{Variable Aliases}. +@item dbus-error +@code{"D-Bus error"}@* +This is only defined if Emacs was compiled with D-Bus support.@* +@xref{Errors and Events,,, dbus, D-Bus integration in Emacs}. + @item end-of-buffer @code{"End of buffer"}@* @xref{Character Motion}. @@ -128,6 +138,11 @@ @code{"No catch for tag"}@* @xref{Catch and Throw}. +@ignore +@item protected-field +@code{"Attempt to modify a protected field"} +@end ignore + @item scan-error @code{"Scan error"}@* This happens when certain syntax-parsing functions @@ -171,31 +186,26 @@ @xref{Type Predicates}. @end table - These kinds of error, which are classified as special cases of + The following kinds of error, which are classified as special cases of @code{arith-error}, can occur on certain systems for invalid use of -mathematical functions. +mathematical functions. @xref{Math Functions}. @table @code @item domain-error -@code{"Arithmetic domain error"}@* -@xref{Math Functions}. +@code{"Arithmetic domain error"} @item overflow-error @code{"Arithmetic overflow error"}@* -This is a subcategory of @code{domain-error}.@* -@xref{Math Functions}. +This is a subcategory of @code{domain-error}. @item range-error -@code{"Arithmetic range error"}@* -@xref{Math Functions}. +@code{"Arithmetic range error"} @item singularity-error @code{"Arithmetic singularity error"}@* -This is a subcategory of @code{domain-error}.@* -@xref{Math Functions}. +This is a subcategory of @code{domain-error}. @item underflow-error @code{"Arithmetic underflow error"}@* -This is a subcategory of @code{domain-error}.@* -@xref{Math Functions}. +This is a subcategory of @code{domain-error}. @end table ------------------------------------------------------------ revno: 107402 committer: Michael Albinus branch nick: trunk timestamp: Fri 2012-02-24 09:11:00 +0100 message: * net/ange-ftp.el (ange-ftp-parse-netrc): Suppress comment lines. (Bug#10874) diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2012-02-23 19:49:47 +0000 +++ lisp/ChangeLog 2012-02-24 08:11:00 +0000 @@ -1,3 +1,8 @@ +2012-02-24 Michael Albinus + + * net/ange-ftp.el (ange-ftp-parse-netrc): Suppress comment lines. + (Bug#10874) + 2012-02-23 Alan Mackenzie * emacs-lisp/easy-mmode.el (define-minor-mode): Add extra === modified file 'lisp/net/ange-ftp.el' --- lisp/net/ange-ftp.el 2012-01-28 11:26:29 +0000 +++ lisp/net/ange-ftp.el 2012-02-24 08:11:00 +0000 @@ -1390,6 +1390,9 @@ (run-hooks 'find-file-hook) (setq buffer-file-name nil) (goto-char (point-min)) + (while (search-forward-regexp "^[ \t]*#.*$" nil t) + (replace-match "")) + (goto-char (point-min)) (skip-chars-forward " \t\r\n") (while (not (eobp)) (ange-ftp-parse-netrc-group)) ------------------------------------------------------------ revno: 107401 committer: Katsumi Yamaoka branch nick: trunk timestamp: Thu 2012-02-23 23:11:13 +0000 message: nntp.el (nntp-send-authinfo): Work for secure nntp entry in authinfo. diff: === modified file 'lisp/gnus/ChangeLog' --- lisp/gnus/ChangeLog 2012-02-23 01:31:39 +0000 +++ lisp/gnus/ChangeLog 2012-02-23 23:11:13 +0000 @@ -1,3 +1,7 @@ +2012-02-23 Katsumi Yamaoka + + * nntp.el (nntp-send-authinfo): Work for secure nntp entry in authinfo. + 2012-02-20 Lars Ingebrigtsen * mm-decode.el (mm-shr): Remove "soft hyphens". === modified file 'lisp/gnus/nntp.el' --- lisp/gnus/nntp.el 2012-02-01 23:16:56 +0000 +++ lisp/gnus/nntp.el 2012-02-23 23:11:13 +0000 @@ -1252,10 +1252,13 @@ (let* ((list (netrc-parse nntp-authinfo-file)) (alist (netrc-machine list nntp-address "nntp")) (auth-info - (nth 0 (auth-source-search :max 1 - :host (list nntp-address - (nnoo-current-server 'nntp)) - :port '("119" "nntp")))) + (nth 0 (auth-source-search + :max 1 + :host (list nntp-address + (nnoo-current-server 'nntp)) + :port (or (cdr (assoc (format "%s" nntp-port-number) + '(("563" . ("563" "nntps" "snews"))))) + '("119" "nntp"))))) (auth-user (plist-get auth-info :user)) (auth-force (plist-get auth-info :force)) (auth-passwd (plist-get auth-info :secret))