Now on revision 111719. ------------------------------------------------------------ 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 ------------------------------------------------------------ revno: 111718 fixes bug: http://debbugs.gnu.org/4533 committer: Chong Yidong branch nick: trunk timestamp: Sun 2013-02-10 11:08:21 +0800 message: * files.el (basic-save-buffer-1): Don't set buffer-file-coding-system-explicit. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-02-10 01:56:25 +0000 +++ lisp/ChangeLog 2013-02-10 03:08:21 +0000 @@ -1,5 +1,8 @@ 2013-02-10 Chong Yidong + * files.el (basic-save-buffer-1): Do not set + buffer-file-coding-system-explicit (Bug#4533). + * mail/emacsbug.el (report-emacs-bug): Change binding of report-emacs-bug-insert-to-mailer to C-c M-i (Bug#13510). === modified file 'lisp/files.el' --- lisp/files.el 2013-02-09 12:52:01 +0000 +++ lisp/files.el 2013-02-10 03:08:21 +0000 @@ -4646,9 +4646,7 @@ (basic-save-buffer-2)) (basic-save-buffer-2)) (if buffer-file-coding-system-explicit - (setcar buffer-file-coding-system-explicit last-coding-system-used) - (setq buffer-file-coding-system-explicit - (cons last-coding-system-used nil))))) + (setcar buffer-file-coding-system-explicit last-coding-system-used)))) ;; This returns a value (MODES EXTENDED-ATTRIBUTES BACKUPNAME), like ;; backup-buffer. === modified file 'lisp/international/mule.el' --- lisp/international/mule.el 2013-01-11 23:08:55 +0000 +++ lisp/international/mule.el 2013-02-10 03:08:21 +0000 @@ -1132,17 +1132,20 @@ (put (intern name) 'coding-system-define-form form) (setq coding-system-alist (cons (list name) coding-system-alist))))) -;; This variable is set in these three cases: +;; This variable is set in these two cases: ;; (1) A file is read by a coding system specified explicitly. -;; after-insert-file-set-coding sets the car of this value to -;; coding-system-for-read, and sets the cdr to nil. -;; (2) A buffer is saved. -;; After writing, basic-save-buffer-1 sets the car of this value -;; to last-coding-system-used. -;; (3) set-buffer-file-coding-system is called. +;; `after-insert-file-set-coding' sets the car of this value to +;; `coding-system-for-read', and sets the cdr to nil. +;; (2) `set-buffer-file-coding-system' is called. ;; The cdr of this value is set to the specified coding system. -;; This variable is used for decoding in revert-buffer and encoding in -;; select-safe-coding-system. +;; This variable is used for decoding in `revert-buffer' and encoding +;; in `select-safe-coding-system'. +;; +;; When saving a buffer, if `buffer-file-coding-system-explicit' is +;; already non-nil, `basic-save-buffer-1' sets its CAR to the value of +;; `last-coding-system-used'. (It used to set it unconditionally, but +;; that seems unnecessary; see Bug#4533.) + (defvar buffer-file-coding-system-explicit nil "The file coding system explicitly specified for the current buffer. The value is a cons of coding systems for reading (decoding) and ------------------------------------------------------------ revno: 111717 [merge] committer: Glenn Morris branch nick: trunk timestamp: Sat 2013-02-09 17:56:25 -0800 message: Merge from emacs-24; up to r111242 diff: === modified file 'doc/emacs/ChangeLog' --- doc/emacs/ChangeLog 2013-02-09 12:52:01 +0000 +++ doc/emacs/ChangeLog 2013-02-10 01:56:25 +0000 @@ -1,3 +1,7 @@ +2013-02-10 Glenn Morris + + * trouble.texi (Checklist): Update bug keybinding. + 2013-02-09 Eli Zaretskii * msdog.texi (Text and Binary): Delete the description of === modified file 'doc/emacs/trouble.texi' --- doc/emacs/trouble.texi 2013-01-19 22:48:47 +0000 +++ doc/emacs/trouble.texi 2013-02-10 01:56:25 +0000 @@ -662,7 +662,7 @@ (If you want to suggest an improvement or new feature, use the same address.) If you cannot send mail from inside Emacs, you can copy the text of your report to your normal mail client (if your system -supports it, you can type @kbd{C-c m} to have Emacs do this for you) +supports it, you can type @kbd{C-c M-i} to have Emacs do this for you) and send it to that address. Or you can simply send an email to that address describing the problem. === modified file 'doc/lispref/ChangeLog' --- doc/lispref/ChangeLog 2013-02-09 12:52:01 +0000 +++ doc/lispref/ChangeLog 2013-02-10 01:56:25 +0000 @@ -1,3 +1,7 @@ +2013-02-10 Glenn Morris + + * keymaps.texi (Creating Keymaps): Update make-keymap result. + 2013-02-09 Eli Zaretskii * modes.texi (%-Constructs): Remove the description of %t. === modified file 'doc/lispref/keymaps.texi' --- doc/lispref/keymaps.texi 2013-02-08 17:23:24 +0000 +++ doc/lispref/keymaps.texi 2013-02-10 01:56:25 +0000 @@ -327,10 +327,12 @@ event. The argument @var{prompt} specifies a prompt string, as in @code{make-sparse-keymap}. +@c This example seems kind of pointless, but I guess it serves +@c to contrast the result with make-sparse-keymap above. @example @group (make-keymap) - @result{} (keymap #^[t nil nil nil @dots{} nil nil keymap]) + @result{} (keymap #^[nil nil keymap nil nil nil @dots{}]) @end group @end example === modified file 'etc/NEWS' --- etc/NEWS 2013-02-09 12:52:01 +0000 +++ etc/NEWS 2013-02-10 01:56:25 +0000 @@ -436,6 +436,11 @@ ** Using "unibyte: t" in Lisp source files is obsolete. Use "coding: raw-text" instead. +** In the buffer made by `M-x report-emacs-bug', the `C-c m' binding +has been changed to `C-c M-i' (`report-emacs-bug-insert-to-mailer'). +The previous binding, introduced in Emacs 24.1, was a mistake, because +`C-c LETTER' bindings are reserved for user customizations. + ** Internationalization *** New language environment: Persian. @@ -1262,9 +1267,10 @@ (`sendmail-send-it' on GNU/Linux and other Unix-like systems, and `mailclient-send-it' on Windows). -*** Typing C-c m in the buffer made by M-x report-emacs-bug transfers -the report to your desktop's preferred mail client, if there is one. -This uses either the "xdg-email" utility, or Mac OS's "open" command. +*** Typing `C-c m' in the buffer made by `M-x report-emacs-bug' +transfers the report to your desktop's preferred mail client, if there +is one. This uses either the "xdg-email" utility, or Mac OS's "open" +command. *** See Changes in Specialized Modes and Packages for SMTPmail changes and Mail mode changes === modified file 'etc/TODO' --- etc/TODO 2013-02-08 17:23:24 +0000 +++ etc/TODO 2013-02-10 01:56:25 +0000 @@ -399,14 +399,6 @@ Check the assignments file for other packages which might go in and have been missed. -** Possibly install python-mode in place of python.el, or combine the two. -Someone needs to do the work of figuring out who all the non-trivial -python-mode.el contributors are and getting assignments. -http://lists.gnu.org/archive/html/emacs-devel/2008-02/msg02156.html -http://lists.gnu.org/archive/html/emacs-devel/2008-02/msg02201.html -http://lists.gnu.org/archive/html/emacs-devel/2008-02/msg02489.html -http://lists.gnu.org/archive/html/emacs-devel/2008-02/msg02234.html - ** Make keymaps a first-class Lisp object (this means a rewrite of keymap.c). What should it do apart from being opaque ? multiple inheritance ? faster where-is ? no more fix_submap_inheritance ? @@ -416,7 +408,7 @@ an example how to do part of this; see the XMenu* functions on msdos.c. ** Implement popular parts of the rest of the CL functions as compiler - macros in cl-macs. + macros in cl-macs. [Is this still relevant now that cl-lib exists?] ** Make compiler warnings about functions that might be undefined at run time smarter, so that they know which files are required by the file being @@ -457,7 +449,8 @@ ** Allow unknown image types to be rendered via an external program converting them to, say, PBM (in the same way as PostScript?). [does - doc-view.el do this, or could it be extended to do this?] + doc-view.el do this, or could it be extended to do this? + Does ImageMagick obsolete this idea?] ** Allow displaying an X window from an external program in a buffer, e.g. to render graphics from Java applets. [gerd and/or wmperry @@ -613,6 +606,7 @@ There was a special trick to detect mouse press in the lower right corner and track mouse movements, but this did not work well, and was not scalable to the new Lion "resize on every window edge" behavior. + [As of trunk r109635, 2012-08-15, the event loop no longer polls.] **** (mouse-avoidance-mode 'banish) then minimize Emacs, will pop window back up on top of all others @@ -719,12 +713,6 @@ *** Decide what to do with some uncommitted imagemagick support functions for image size etc. -*** Test with more systems. -Tested on Fedora 12, 14, and the libmagick that ships with it. -I also tried using an ImageMagick compiled from their SVN, in -parallel with the one packaged by Fedora, it worked well. -Ubuntu 8.04 was tested, but it seems it ships a broken ImageMagick. - ** nxml mode *** High priority === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-02-10 01:49:48 +0000 +++ lisp/ChangeLog 2013-02-10 01:56:25 +0000 @@ -1,9 +1,13 @@ +2013-02-10 Chong Yidong + + * mail/emacsbug.el (report-emacs-bug): Change binding of + report-emacs-bug-insert-to-mailer to C-c M-i (Bug#13510). + 2013-02-09 Jay Belanger * calc/calc.el (calc-allow-units-as-numbers): New variable. * calc/calc-units.el (calc-convert-units): Use new variable. - 2013-02-09 Eli Zaretskii * subr.el (buffer-file-type, default-buffer-file-type): Remove. === modified file 'lisp/gnus/ChangeLog' --- lisp/gnus/ChangeLog 2013-02-10 00:51:12 +0000 +++ lisp/gnus/ChangeLog 2013-02-10 01:56:25 +0000 @@ -1,7 +1,7 @@ 2013-02-10 Katsumi Yamaoka * nnir.el ("nnir"): Add 'virtual ability to nnir backend. (This was - done in 2012-07-22 by Andrew Cohen, but I reverted it mistakenlly.) + done in 2012-07-22 by Andrew Cohen, but I reverted it mistakenly.) 2013-02-07 Gábor Vida (tiny change) === modified file 'lisp/mail/emacsbug.el' --- lisp/mail/emacsbug.el 2013-01-02 16:13:04 +0000 +++ lisp/mail/emacsbug.el 2013-02-10 01:56:25 +0000 @@ -323,7 +323,7 @@ (use-local-map (nconc (make-sparse-keymap) (current-local-map))) (define-key (current-local-map) "\C-c\C-i" 'info-emacs-bug) (if can-insert-mail - (define-key (current-local-map) "\C-cm" + (define-key (current-local-map) "\C-c\M-i" 'report-emacs-bug-insert-to-mailer)) (setq report-emacs-bug-send-command (get mail-user-agent 'sendfunc) report-emacs-bug-send-hook (get mail-user-agent 'hookvar)) ------------------------------------------------------------ revno: 111716 committer: Glenn Morris branch nick: trunk timestamp: Sat 2013-02-09 17:49:48 -0800 message: ChangeLog attribution fix diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-02-09 23:17:05 +0000 +++ lisp/ChangeLog 2013-02-10 01:49:48 +0000 @@ -37,20 +37,19 @@ (find-file-binary, find-file-text): Bind coding-system-for-read instead of file-name-buffer-file-type-alist. -2013-02-09 Tassilo Horn +2013-02-09 Jambunathan K * doc-view.el: Use (and prefer) soffice as default ODF->PDF - converter (Bug#13622). Patch provided by Jambunathan K - . - (doc-view-unoconv-program): Make obsolete variable. + converter (Bug#13622). + (doc-view-unoconv-program): Make obsolete alias. (doc-view-odf->pdf-converter-program): New variable. (doc-view-odf->pdf-converter-function): New variable. (doc-view-mode-p): Use it. - (doc-view-odf->pdf-converter-unoconv): Rename from - `doc-view-odf->pdf-converter-unoconv'. + (doc-view-odf->pdf-converter-unoconv): + Rename from `doc-view-odf->pdf-converter-unoconv'. (doc-view-odf->pdf-converter-soffice): New function. - (doc-view-convert-current-doc): Use - `doc-view-odf->pdf-converter-function'. + (doc-view-convert-current-doc): + Use `doc-view-odf->pdf-converter-function'. 2013-02-09 Chong Yidong ------------------------------------------------------------ revno: 111715 committer: Katsumi Yamaoka branch nick: trunk timestamp: Sun 2013-02-10 00:51:12 +0000 message: lisp/gnus/nnir.el ("nnir"): Add 'virtual ability to nnir backend diff: === modified file 'lisp/gnus/ChangeLog' --- lisp/gnus/ChangeLog 2013-02-07 08:31:21 +0000 +++ lisp/gnus/ChangeLog 2013-02-10 00:51:12 +0000 @@ -1,3 +1,8 @@ +2013-02-10 Katsumi Yamaoka + + * nnir.el ("nnir"): Add 'virtual ability to nnir backend. (This was + done in 2012-07-22 by Andrew Cohen, but I reverted it mistakenlly.) + 2013-02-07 Gábor Vida (tiny change) * auth-source.el (auth-source-format-prompt): Don't get confused by === modified file 'lisp/gnus/nnir.el' --- lisp/gnus/nnir.el 2013-01-01 09:11:05 +0000 +++ lisp/gnus/nnir.el 2013-02-10 00:51:12 +0000 @@ -298,7 +298,7 @@ (defvoo nnir-address nil "The address of the nnir server.") -(gnus-declare-backend "nnir" 'mail) +(gnus-declare-backend "nnir" 'mail 'virtual) ;;; User Customizable Variables: ------------------------------------------------------------ revno: 111714 committer: Jay Belanger branch nick: trunk timestamp: Sat 2013-02-09 17:17:05 -0600 message: * doc/misc/calc.texi (Basic Operations on Units): (Customizing Calc): Mention the variable `calc-allow-units-as-numbers'. * lisp/calc/calc.el (calc-allow-units-as-numbers): New variable. * lisp/calc/calc-units.el (calc-convert-units): Use new variable. diff: === modified file 'doc/misc/ChangeLog' --- doc/misc/ChangeLog 2013-02-08 17:23:24 +0000 +++ doc/misc/ChangeLog 2013-02-09 23:17:05 +0000 @@ -1,3 +1,8 @@ +2013-02-09 Jay Belanger + + * calc.texi (Basic Operations on Units): + (Customizing Calc): Mention the variable `calc-allow-units-as-numbers'. + 2013-02-08 Aidan Gauland * eshell.texi: Fill most of the missing sections. === modified file 'doc/misc/calc.texi' --- doc/misc/calc.texi 2013-02-01 03:58:50 +0000 +++ doc/misc/calc.texi 2013-02-09 23:17:05 +0000 @@ -27866,11 +27866,6 @@ ``fundamental'' units like @samp{m} and @samp{s}, regardless of the input units. -If you want to disallow using inconsistent units, you can set the customizable variable -@code{calc-ensure-consistent-units} to @code{t} (@pxref{Customizing Calc}). In this case, -if you request units which are inconsistent with the original units, you will be warned about -it and no conversion will occur. - One special exception is that if you specify a single unit name, and a compatible unit appears somewhere in the units expression, then that compatible unit will be converted to the new unit and the @@ -27880,6 +27875,12 @@ The ``remainder unit'' @samp{cm} is left alone rather than being changed to the base unit @samp{m}. +If you want to disallow using inconsistent units, you can set the +customizable variable @code{calc-ensure-consistent-units} to @code{t} +(@pxref{Customizing Calc}). In this case, if you request units which +are inconsistent with the original units, you will be warned about it +and no conversion will occur. + You can use explicit unit conversion instead of the @kbd{u s} command to gain more control over the units of the result of an expression. For example, given @samp{5 m + 23 mm}, you can type @kbd{u c m} or @@ -27912,10 +27913,16 @@ If the value on the stack does not contain any units, @kbd{u c} will prompt first for the old units which this value should be considered -to have, then for the new units. Assuming the old and new units you -give are consistent with each other, the result also will not contain -any units. For example, @kbd{@w{u c} cm @key{RET} in @key{RET}} -converts the number 2 on the stack to 5.08. +to have, then for the new units. (If the value on the stack can be +simplified so that it doesn't contain any units, like @samp{ft/in} can +be simplified to 12, then @kbd{u c} will still prompt for both old +units and new units. You can ignore the prompt for old units with +@key{RET}, or turn off the prompt by setting the customizable variable +@code{calc-allow-units-as-numbers} to @code{nil}. +@pxref{Customizing Calc}) Assuming the old and new units you give are +consistent with each other, the result also will not contain any +units. For example, @kbd{@w{u c} cm @key{RET} in @key{RET}} converts +the number 2 on the stack to 5.08. @kindex u b @pindex calc-base-units @@ -35694,6 +35701,17 @@ is @code{nil}. @end defvar +@defvar calc-allow-units-as-numbers +When converting units, the variable @code{calc-allow-units-as-numbers} +determines whether or not values which can be simplified so that +they don't contain units (such as @samp{ft/in} can be simplified to 12) +can be regarded as not containing units. If +@code{calc-allow-units-as-numbers} is non-@code{nil}, then @kbd{u c} +will prompt for both old units and new units when converting an expression +like @samp{ft/in}, otherwise @kbd{u c} will only prompt for the new units. +The default value of @code{calc-allow-units-as-numbers} is @code{t}. +@end defvar + @defvar calc-undo-length The variable @code{calc-undo-length} determines the number of undo steps that Calc will keep track of when @code{calc-quit} is called. === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-02-09 16:20:29 +0000 +++ lisp/ChangeLog 2013-02-09 23:17:05 +0000 @@ -1,3 +1,9 @@ +2013-02-09 Jay Belanger + + * calc/calc.el (calc-allow-units-as-numbers): New variable. + * calc/calc-units.el (calc-convert-units): Use new variable. + + 2013-02-09 Eli Zaretskii * subr.el (buffer-file-type, default-buffer-file-type): Remove. === modified file 'lisp/calc/calc-units.el' --- lisp/calc/calc-units.el 2013-01-30 14:14:27 +0000 +++ lisp/calc/calc-units.el 2013-02-09 23:17:05 +0000 @@ -437,17 +437,22 @@ (list new-units (car default-units)) math-default-units-table)))))) +(defvar calc-allow-units-as-numbers) + (defun calc-convert-units (&optional old-units new-units) (interactive) (calc-slow-wrapper (let ((expr (calc-top-n 1)) (uoldname nil) (unitscancel nil) + (nouold nil) unew units defunits) (if (or (not (math-units-in-expr-p expr t)) - (setq unitscancel (eq (math-get-standard-units expr) 1))) + (setq unitscancel (and + calc-allow-units-as-numbers + (eq (math-get-standard-units expr) 1)))) (let ((uold (or old-units (progn (setq uoldname @@ -457,6 +462,7 @@ (read-string "Old units: "))) (if (equal uoldname "") (progn + (setq nouold unitscancel) (setq uoldname "1") 1) (if (string-match "\\` */" uoldname) @@ -469,7 +475,7 @@ (unless new-units (setq new-units (read-string (concat - (if uoldname + (if (and uoldname (not nouold)) (concat "Old units: " uoldname ", new units") === modified file 'lisp/calc/calc.el' --- lisp/calc/calc.el 2013-01-11 23:08:55 +0000 +++ lisp/calc/calc.el 2013-02-09 23:17:05 +0000 @@ -426,6 +426,14 @@ :version "24.3" :type 'boolean) +(defcustom calc-allow-units-as-numbers + t + "If non-nil, allow unit expressions to be treated like numbers +when converting units, if the expression can be simplified to be unitless." + :group 'calc + :version "24.4" + :type 'boolean) + (defcustom calc-undo-length 100 "The number of undo steps that will be preserved when Calc is quit." ------------------------------------------------------------ revno: 111713 committer: Paul Eggert branch nick: trunk timestamp: Sat 2013-02-09 14:42:33 -0800 message: Minor hashing refactoring. * fns.c (SXHASH_REDUCE): Move to lisp.h. (sxhash_float): Return EMACS_UINT, for consistency with the other hash functions. * lisp.h (INTMASK): Now a macro, since SXHASH_REDUCE is now a non-static inline function and therefore can't use static vars. (SXHASH_REDUCE): Move here from fns.c, and make it inline. * profiler.c (hashfn_profiler): Use SXHASH_REDUCE, to be consistent with the other hash functions. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2013-02-09 16:39:46 +0000 +++ src/ChangeLog 2013-02-09 22:42:33 +0000 @@ -1,3 +1,15 @@ +2013-02-09 Paul Eggert + + Minor hashing refactoring. + * fns.c (SXHASH_REDUCE): Move to lisp.h. + (sxhash_float): Return EMACS_UINT, for consistency with the other + hash functions. + * lisp.h (INTMASK): Now a macro, since SXHASH_REDUCE is now a + non-static inline function and therefore can't use static vars. + (SXHASH_REDUCE): Move here from fns.c, and make it inline. + * profiler.c (hashfn_profiler): Use SXHASH_REDUCE, to be consistent + with the other hash functions. + 2013-02-09 Eli Zaretskii * callproc.c (Fcall_process_region) [WINDOWSNT]: Make sure the === modified file 'src/fns.c' --- src/fns.c 2013-02-07 16:09:04 +0000 +++ src/fns.c 2013-02-09 22:42:33 +0000 @@ -4045,10 +4045,6 @@ #define SXHASH_MAX_LEN 7 -/* Hash X, returning a value that fits into a Lisp integer. */ -#define SXHASH_REDUCE(X) \ - ((((X) ^ (X) >> (BITS_PER_EMACS_INT - FIXNUM_BITS))) & INTMASK) - /* Return a hash for string PTR which has length LEN. The hash value can be any EMACS_UINT value. */ @@ -4081,7 +4077,7 @@ /* Return a hash for the floating point value VAL. */ -static EMACS_INT +static EMACS_UINT sxhash_float (double val) { EMACS_UINT hash = 0; === modified file 'src/lisp.h' --- src/lisp.h 2013-02-08 05:28:52 +0000 +++ src/lisp.h 2013-02-09 22:42:33 +0000 @@ -227,7 +227,7 @@ /* Lisp integers use 2 tags, to give them one extra bit, thus extending their range from, e.g., -2^28..2^28-1 to -2^29..2^29-1. */ -static EMACS_INT const INTMASK = EMACS_INT_MAX >> (INTTYPEBITS - 1); +#define INTMASK (EMACS_INT_MAX >> (INTTYPEBITS - 1)) #define case_Lisp_Int case Lisp_Int0: case Lisp_Int1 #define LISP_INT_TAG_P(x) (((x) & ~Lisp_Int1) == 0) @@ -1304,6 +1304,14 @@ return (x << 4) + (x >> (BITS_PER_EMACS_INT - 4)) + y; } +/* Hash X, returning a value that fits into a fixnum. */ + +LISP_INLINE EMACS_UINT +SXHASH_REDUCE (EMACS_UINT x) +{ + return (x ^ x >> (BITS_PER_EMACS_INT - FIXNUM_BITS)) & INTMASK; +} + /* These structures are used for various misc types. */ struct Lisp_Misc_Any /* Supertype of all Misc types. */ === modified file 'src/profiler.c' --- src/profiler.c 2013-01-02 16:13:04 +0000 +++ src/profiler.c 2013-02-09 22:42:33 +0000 @@ -560,7 +560,7 @@ ? XHASH (XCDR (XCDR (f))) : XHASH (f)); hash = sxhash_combine (hash, hash1); } - return (hash & INTMASK); + return SXHASH_REDUCE (hash); } else return XHASH (bt); ------------------------------------------------------------ revno: 111712 fixes bug: http://debbugs.gnu.org/13661 committer: Eli Zaretskii branch nick: trunk timestamp: Sat 2013-02-09 18:39:46 +0200 message: Fix last ChangeLog entry. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2013-02-09 16:36:53 +0000 +++ src/ChangeLog 2013-02-09 16:39:46 +0000 @@ -1,8 +1,8 @@ 2013-02-09 Eli Zaretskii - * callproc.c (Fcall_process_region): Make sure the XXXXXX part of - the temporary file pattern is not downcased even when - w32-downcase-file-names is non-nil. (Bug#13661) + * callproc.c (Fcall_process_region) [WINDOWSNT]: Make sure the + XXXXXX part of the temporary file pattern is not downcased even + when w32-downcase-file-names is non-nil. (Bug#13661) * xdisp.c (decode_mode_spec): Remove handling of %t. ------------------------------------------------------------ revno: 111711 fixes bug: http://debbugs.gnu.org/13661 committer: Eli Zaretskii branch nick: trunk timestamp: Sat 2013-02-09 18:36:53 +0200 message: Fix bug #13661 with w32-downcase-file-names and shell-command. src/callproc.c (Fcall_process_region): Make sure the XXXXXX part of the temporary file pattern is not downcased even when w32-downcase-file-names is non-nil. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2013-02-09 12:52:01 +0000 +++ src/ChangeLog 2013-02-09 16:36:53 +0000 @@ -1,5 +1,9 @@ 2013-02-09 Eli Zaretskii + * callproc.c (Fcall_process_region): Make sure the XXXXXX part of + the temporary file pattern is not downcased even when + w32-downcase-file-names is non-nil. (Bug#13661) + * xdisp.c (decode_mode_spec): Remove handling of %t. * msdos.c (careadlinkatcwd): Remove. === modified file 'src/callproc.c' --- src/callproc.c 2013-02-02 17:14:24 +0000 +++ src/callproc.c 2013-02-09 16:36:53 +0000 @@ -1016,8 +1016,26 @@ { USE_SAFE_ALLOCA; Lisp_Object pattern = Fexpand_file_name (Vtemp_file_name_pattern, tmpdir); - Lisp_Object encoded_tem = ENCODE_FILE (pattern); - char *tempfile = SAFE_ALLOCA (SBYTES (encoded_tem) + 1); + Lisp_Object encoded_tem; + char *tempfile; + +#ifdef WINDOWSNT + /* Cannot use the result of Fexpand_file_name, because it + downcases the XXXXXX part of the pattern, and mktemp then + doesn't recognize it. */ + if (!NILP (Vw32_downcase_file_names)) + { + Lisp_Object dirname = Ffile_name_directory (pattern); + + if (NILP (dirname)) + pattern = Vtemp_file_name_pattern; + else + pattern = concat2 (dirname, Vtemp_file_name_pattern); + } +#endif + + encoded_tem = ENCODE_FILE (pattern); + tempfile = SAFE_ALLOCA (SBYTES (encoded_tem) + 1); memcpy (tempfile, SDATA (encoded_tem), SBYTES (encoded_tem) + 1); coding_systems = Qt; ------------------------------------------------------------ revno: 111710 committer: Eli Zaretskii branch nick: trunk timestamp: Sat 2013-02-09 18:20:29 +0200 message: subr.el (buffer-file-type, default-buffer-file-type): Remove. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-02-09 12:52:01 +0000 +++ lisp/ChangeLog 2013-02-09 16:20:29 +0000 @@ -1,5 +1,7 @@ 2013-02-09 Eli Zaretskii + * subr.el (buffer-file-type, default-buffer-file-type): Remove. + * net/ange-ftp.el (ange-ftp-insert-file-contents): Don't reference buffer-file-type. === modified file 'lisp/subr.el' --- lisp/subr.el 2013-02-03 16:13:36 +0000 +++ lisp/subr.el 2013-02-09 16:20:29 +0000 @@ -1229,7 +1229,6 @@ (make-obsolete-variable 'default-scroll-down-aggressively 'scroll-down-aggressively "23.2") (make-obsolete-variable 'default-fill-column 'fill-column "23.2") (make-obsolete-variable 'default-cursor-type 'cursor-type "23.2") -(make-obsolete-variable 'default-buffer-file-type 'buffer-file-type "23.2") (make-obsolete-variable 'default-cursor-in-non-selected-windows 'cursor-in-non-selected-windows "23.2") (make-obsolete-variable 'default-buffer-file-coding-system 'buffer-file-coding-system "23.2") (make-obsolete-variable 'default-major-mode 'major-mode "23.2") @@ -2622,15 +2621,6 @@ This hook is normally set up with a function to put the buffer in Help mode.") -(defvar-local buffer-file-type nil - "Non-nil if the visited file is a binary file. -This variable is meaningful on MS-DOG and MS-Windows. -On those systems, it is automatically local in every buffer. -On other systems, this variable is normally always nil. - -WARNING: This variable is obsolete and will disappear Real Soon Now. -Don't use it!") - ;; The `assert' macro from the cl package signals ;; `cl-assertion-failed' at runtime so always define it. (put 'cl-assertion-failed 'error-conditions '(error)) ------------------------------------------------------------ revno: 111709 fixes bug: http://debbugs.gnu.org/12989 committer: Eli Zaretskii branch nick: trunk timestamp: Sat 2013-02-09 14:52:01 +0200 message: Remove all references to buffer-file-type and related features. src/xdisp.c (decode_mode_spec): Remove handling of %t. lisp/net/ange-ftp.el (ange-ftp-insert-file-contents): Don't reference buffer-file-type. lisp/mail/feedmail.el (feedmail-force-binary-write): Doc fix. (feedmail-run-the-queue, feedmail-dump-message-to-queue) (feedmail-send-it-immediately): Don't bind buffer-file-type, bind coding-system-for-write instead. lisp/jka-compr.el (jka-compr-write-region): Don't bind buffer-file-type. lisp/emacs-lisp/bytecomp.el (byte-compile-file): Don't bind buffer-file-type. lisp/files.el (file-name-buffer-file-type-alist): Remove defvar. (insert-file-contents-literally): Remove reference to file-name-buffer-file-type-alist. lisp/dos-w32.el (file-name-buffer-file-type-alist): Deprecate and make-obsolete. (find-buffer-file-type-match, find-buffer-file-type): Remove. (find-buffer-file-type-coding-system): Remove references to find-buffer-file-type-match, find-buffer-file-type, and buffer-file-type. Don't put find-buffer-file-type-coding-system into file-coding-system-alist. (find-file-binary, find-file-text): Bind coding-system-for-read instead of file-name-buffer-file-type-alist. lisp/erc/erc-dcc.el (erc-dcc-get-file): Don't reference buffer-file-type. doc/emacs/msdog.texi (Text and Binary): Delete the description of file-name-buffer-file-type-alist. doc/lispref/modes.texi (%-Constructs): Remove the description of %t. doc/lispref/nonascii.texi (MS-DOS File Types): Delete node. diff: === modified file 'doc/emacs/ChangeLog' --- doc/emacs/ChangeLog 2013-01-19 22:48:47 +0000 +++ doc/emacs/ChangeLog 2013-02-09 12:52:01 +0000 @@ -1,3 +1,8 @@ +2013-02-09 Eli Zaretskii + + * msdog.texi (Text and Binary): Delete the description of + file-name-buffer-file-type-alist. + 2013-01-19 Paul Eggert * trouble.texi (Crashing): Suggest -p for newer addr2line. (Bug#13445) === modified file 'doc/emacs/msdog.texi' --- doc/emacs/msdog.texi 2013-01-01 09:11:05 +0000 +++ doc/emacs/msdog.texi 2013-02-09 12:52:01 +0000 @@ -218,29 +218,6 @@ Emacs to create new files with the Unix-style convention of using newline at the end of a line. @xref{Coding Systems}. -@vindex file-name-buffer-file-type-alist -@cindex binary files, on MS-DOS/MS-Windows - Some kinds of files should not be converted at all, because their -contents are not really text. Therefore, Emacs on MS-Windows distinguishes -certain files as @dfn{binary files}. (This distinction is not part of -MS-Windows; it is made by Emacs only.) Binary files include executable -programs, compressed archives, etc. Emacs uses the file name to decide -whether to treat a file as binary: the variable -@code{file-name-buffer-file-type-alist} defines the file-name patterns -that indicate binary files. If a file name matches one of the patterns -for binary files (those whose associations are of the type -@code{(@var{pattern} . t)}, Emacs reads and writes that file using the -@code{no-conversion} coding system (@pxref{Coding Systems}) which turns -off @emph{all} coding-system conversions, not only the EOL conversion. -@code{file-name-buffer-file-type-alist} also includes file-name patterns -for files which are known to be Windows-style text files with -carriage-return linefeed EOL format, such as @file{CONFIG.SYS}; Emacs -always writes those files with Windows-style EOLs. - - If a file that belongs to an untranslated file system matches one of -the file-name patterns in @code{file-name-buffer-file-type-alist}, the -EOL conversion is determined by @code{file-name-buffer-file-type-alist}. - @node Windows Files @section File Names on MS-Windows @cindex file names on MS-Windows === modified file 'doc/lispref/ChangeLog' --- doc/lispref/ChangeLog 2013-02-08 17:23:24 +0000 +++ doc/lispref/ChangeLog 2013-02-09 12:52:01 +0000 @@ -1,3 +1,9 @@ +2013-02-09 Eli Zaretskii + + * modes.texi (%-Constructs): Remove the description of %t. + + * nonascii.texi (MS-DOS File Types): Delete node. + 2013-02-08 Glenn Morris * keymaps.texi (Active Keymaps, Searching Keymaps): === modified file 'doc/lispref/elisp.texi' --- doc/lispref/elisp.texi 2013-01-03 02:37:57 +0000 +++ doc/lispref/elisp.texi 2013-02-09 12:52:01 +0000 @@ -1209,8 +1209,6 @@ for a single file operation. * Explicit Encoding:: Encoding or decoding text without doing I/O. * Terminal I/O Encoding:: Use of encoding for terminal I/O. -* MS-DOS File Types:: How DOS "text" and "binary" files - relate to coding systems. Searching and Matching === modified file 'doc/lispref/modes.texi' --- doc/lispref/modes.texi 2013-01-01 09:11:05 +0000 +++ doc/lispref/modes.texi 2013-02-09 12:52:01 +0000 @@ -2150,11 +2150,6 @@ The status of the subprocess belonging to the current buffer, obtained with @code{process-status}. @xref{Process Information}. -@item %t -Whether the visited file is a text file or a binary file. This is a -meaningful distinction only on certain operating systems (@pxref{MS-DOS -File Types}). - @item %z The mnemonics of keyboard, terminal, and buffer coding systems. === modified file 'doc/lispref/nonascii.texi' --- doc/lispref/nonascii.texi 2013-01-01 09:11:05 +0000 +++ doc/lispref/nonascii.texi 2013-02-09 12:52:01 +0000 @@ -855,8 +855,6 @@ for a single file operation. * Explicit Encoding:: Encoding or decoding text without doing I/O. * Terminal I/O Encoding:: Use of encoding for terminal I/O. -* MS-DOS File Types:: How DOS "text" and "binary" files - relate to coding systems. @end menu @node Coding System Basics @@ -1775,62 +1773,6 @@ @code{nil}, that means the currently selected frame's terminal. @end deffn -@node MS-DOS File Types -@subsection MS-DOS File Types -@cindex DOS file types -@cindex MS-DOS file types -@cindex Windows file types -@cindex file types on MS-DOS and Windows -@cindex text files and binary files -@cindex binary files and text files - - On MS-DOS and Microsoft Windows, Emacs guesses the appropriate -end-of-line conversion for a file by looking at the file's name. This -feature classifies files as @dfn{text files} and @dfn{binary files}. By -``binary file'' we mean a file of literal byte values that are not -necessarily meant to be characters; Emacs does no end-of-line conversion -and no character code conversion for them. On the other hand, the bytes -in a text file are intended to represent characters; when you create a -new file whose name implies that it is a text file, Emacs uses DOS -end-of-line conversion. - -@defvar buffer-file-type -This variable, automatically buffer-local in each buffer, records the -file type of the buffer's visited file. When a buffer does not specify -a coding system with @code{buffer-file-coding-system}, this variable is -used to determine which coding system to use when writing the contents -of the buffer. It should be @code{nil} for text, @code{t} for binary. -If it is @code{t}, the coding system is @code{no-conversion}. -Otherwise, @code{undecided-dos} is used. - -Normally this variable is set by visiting a file; it is set to -@code{nil} if the file was visited without any actual conversion. - -Its default value is used to decide how to handle files for which -@code{file-name-buffer-file-type-alist} says nothing about the type: -If the default value is non-@code{nil}, then these files are treated as -binary: the coding system @code{no-conversion} is used. Otherwise, -nothing special is done for them---the coding system is deduced solely -from the file contents, in the usual Emacs fashion. -@end defvar - -@defopt file-name-buffer-file-type-alist -This variable holds an alist for recognizing text and binary files. -Each element has the form (@var{regexp} . @var{type}), where -@var{regexp} is matched against the file name, and @var{type} may be -@code{nil} for text, @code{t} for binary, or a function to call to -compute which. If it is a function, then it is called with a single -argument (the file name) and should return @code{t} or @code{nil}. - -When running on MS-DOS or MS-Windows, Emacs checks this alist to decide -which coding system to use when reading a file. For a text file, -@code{undecided-dos} is used. For a binary file, @code{no-conversion} -is used. - -If no element in this alist matches a given file name, then -the default value of @code{buffer-file-type} says how to treat the file. -@end defopt - @node Input Methods @section Input Methods @cindex input methods === modified file 'etc/NEWS' --- etc/NEWS 2013-02-05 17:01:25 +0000 +++ etc/NEWS 2013-02-09 12:52:01 +0000 @@ -280,6 +280,12 @@ The backtrace is written to the 'emacs_backtrace.txt' file in the directory where Emacs was running. ++++ +** The variable `buffer-file-type' is no longer supported. +Setting it has no effect, and %t in the mode-line format is ignored. +Likewise, `file-name-buffer-file-type-alist' is now obsolete, and +modifying it has no effect. + * Installation Changes in Emacs 24.3 === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-02-09 09:58:48 +0000 +++ lisp/ChangeLog 2013-02-09 12:52:01 +0000 @@ -1,3 +1,34 @@ +2013-02-09 Eli Zaretskii + + * net/ange-ftp.el (ange-ftp-insert-file-contents): Don't reference + buffer-file-type. + + * mail/feedmail.el (feedmail-force-binary-write): Doc fix. + (feedmail-run-the-queue, feedmail-dump-message-to-queue) + (feedmail-send-it-immediately): Don't bind buffer-file-type, bind + coding-system-for-write instead. + + * jka-compr.el (jka-compr-write-region): Don't bind + buffer-file-type. + + * emacs-lisp/bytecomp.el (byte-compile-file): Don't bind + buffer-file-type. + + * files.el (file-name-buffer-file-type-alist): Remove defvar. + (insert-file-contents-literally): Remove reference to + file-name-buffer-file-type-alist. + + * dos-w32.el (file-name-buffer-file-type-alist): Deprecate and + make-obsolete. + (find-buffer-file-type-match, find-buffer-file-type): Remove. + (find-buffer-file-type-coding-system): Remove references to + find-buffer-file-type-match, find-buffer-file-type, and + buffer-file-type. + Don't put find-buffer-file-type-coding-system into + file-coding-system-alist. + (find-file-binary, find-file-text): Bind coding-system-for-read + instead of file-name-buffer-file-type-alist. + 2013-02-09 Tassilo Horn * doc-view.el: Use (and prefer) soffice as default ODF->PDF === modified file 'lisp/arc-mode.el' --- lisp/arc-mode.el 2013-01-01 09:11:05 +0000 +++ lisp/arc-mode.el 2013-02-09 12:52:01 +0000 @@ -975,11 +975,6 @@ (save-excursion (funcall set-auto-coding-function filename (- (point-max) (point-min))))) - ;; dos-w32.el defines the function - ;; find-buffer-file-type-coding-system for DOS/Windows - ;; systems which preserves the coding-system of existing files. - ;; (That function is called via file-coding-system-alist.) - ;; Here, we want it to act as if the extracted file existed. ;; The following let-binding of file-name-handler-alist forces ;; find-file-not-found-set-buffer-file-coding-system to ignore ;; the file's name (see dos-w32.el). === modified file 'lisp/dos-w32.el' --- lisp/dos-w32.el 2013-01-01 09:11:05 +0000 +++ lisp/dos-w32.el 2013-02-09 12:52:01 +0000 @@ -37,7 +37,7 @@ ;; Set the null device (for compile.el). (setq null-device "NUL") -;; For distinguishing file types based upon suffixes. +;; For distinguishing file types based upon suffixes. DEPRECATED, DO NOT USE! (defcustom file-name-buffer-file-type-alist '(("[:/].*config.sys$" . nil) ; config.sys text ("\\.\\(obj\\|exe\\|com\\|lib\\|sys\\|bin\\|ico\\|pif\\|class\\)$" . t) @@ -54,36 +54,18 @@ ("\\.tp[ulpw]$" . t) ; borland Pascal stuff ("[:/]tags$" . nil) ; emacs TAGS file ) - "Alist for distinguishing text files from binary files. + "Alist used in the past for distinguishing text files from binary files. Each element has the form (REGEXP . TYPE), where REGEXP is matched -against the file name, and TYPE is nil for text, t for binary." +against the file name, and TYPE is nil for text, t for binary. + +This variable is deprecated, not used anywhere, and will soon be deleted." :type '(repeat (cons regexp boolean)) :group 'dos-fns :group 'w32) -;; Return the pair matching filename on file-name-buffer-file-type-alist, -;; or nil otherwise. -(defun find-buffer-file-type-match (filename) - (let ((alist file-name-buffer-file-type-alist) - (found nil)) - (let ((case-fold-search t)) - (setq filename (file-name-sans-versions filename)) - (while (and (not found) alist) - (if (string-match (car (car alist)) filename) - (setq found (car alist))) - (setq alist (cdr alist))) - found))) - -;; Don't check for untranslated file systems here. -(defun find-buffer-file-type (filename) - (let ((match (find-buffer-file-type-match filename)) - (code)) - (if (not match) - (default-value 'buffer-file-type) - (setq code (cdr match)) - (cond ((memq code '(nil t)) code) - ((and (symbolp code) (fboundp code)) - (funcall code filename)))))) +(make-obsolete-variable 'file-name-buffer-file-type-alist + 'file-coding-system-alist + "24.4") (setq-default buffer-file-coding-system 'undecided-dos) @@ -99,9 +81,6 @@ If it matches in `untranslated-filesystem-list': If the file exists: `undecided' If the file does not exist: `undecided-unix' - If it matches in `file-name-buffer-file-type-alist': - If the match is t (for binary): `no-conversion' - If the match is nil (for dos-text): `undecided-dos' Otherwise: If the file exists: `undecided' If the file does not exist default value of `buffer-file-coding-system' @@ -110,25 +89,23 @@ be a cons cell of the form \(FILENAME . BUFFER\), where BUFFER is a buffer into which the file's contents were already read, but not yet decoded. -If operation is `write-region', the coding system is chosen based upon -the value of `buffer-file-coding-system' and `buffer-file-type'. If -`buffer-file-coding-system' is non-nil, its value is used. If it is -nil and `buffer-file-type' is t, the coding system is `no-conversion'. +If operation is `write-region', the coding system is chosen based +upon the value of `buffer-file-coding-system'. If +`buffer-file-coding-system' is non-nil, its value is used. Otherwise, it is `undecided-dos'. -The two most common situations are when DOS and Unix files are read -and written, and their names do not match in -`untranslated-filesystem-list' and `file-name-buffer-file-type-alist'. -In these cases, the coding system initially will be `undecided'. As -the file is read in the DOS case, the coding system will be changed to -`undecided-dos' as CR/LFs are detected. As the file is read in the -Unix case, the coding system will be changed to `undecided-unix' as -LFs are detected. In both cases, `buffer-file-coding-system' will be -set to the appropriate coding system, and the value of -`buffer-file-coding-system' will be used when writing the file." +The most common situation is when DOS and Unix files are read and +written, and their names do not match in `untranslated-filesystem-list'. +In these cases, the coding system initially will be `undecided'. +As the file is read in the DOS case, the coding system will be +changed to `undecided-dos' as CR/LFs are detected. As the file +is read in the Unix case, the coding system will be changed to +`undecided-unix' as LFs are detected. In both cases, +`buffer-file-coding-system' will be set to the appropriate coding +system, and the value of `buffer-file-coding-system' will be used +when writing the file." (let ((op (nth 0 command)) - (binary nil) (text nil) (undecided nil) (undecided-unix nil) target target-buf) (cond ((eq op 'insert-file-contents) @@ -144,15 +121,8 @@ (and (bufferp (cdr target)) (buffer-name (cdr target)))) (setq target (car target))) - ;; First check for a file name that indicates - ;; it is truly binary. - (setq binary (find-buffer-file-type target)) - (cond (binary) - ;; Next check for files that MUST use DOS eol conversion. - ((find-buffer-file-type-match target) - (setq text t)) - ;; For any other existing file, decide based on contents. - ((or + (cond ((or + ;; For any existing file, decide based on contents. (file-exists-p target) ;; If TARGET does not exist as a file, replace its ;; base name with TARGET-BUF and try again. This @@ -167,9 +137,7 @@ ;; Next check for a non-DOS file system. ((untranslated-file-p target) (setq undecided-unix t))) - (cond (binary '(no-conversion . no-conversion)) - (text '(undecided-dos . undecided-dos)) - (undecided-unix '(undecided-unix . undecided-unix)) + (cond (undecided-unix '(undecided-unix . undecided-unix)) (undecided '(undecided . undecided)) (t (cons (default-value 'buffer-file-coding-system) (default-value 'buffer-file-coding-system))))) @@ -180,22 +148,18 @@ ;; Normally this is used only in a non-file-visiting ;; buffer, because normally buffer-file-coding-system is non-nil ;; in a file-visiting buffer. - (if buffer-file-type - '(no-conversion . no-conversion) - '(undecided-dos . undecided-dos))))))) - -(modify-coding-system-alist 'file "" 'find-buffer-file-type-coding-system) + '(undecided-dos . undecided-dos)))))) (defun find-file-binary (filename) "Visit file FILENAME and treat it as binary." (interactive "FFind file binary: ") - (let ((file-name-buffer-file-type-alist '(("" . t)))) + (let ((coding-system-for-read 'no-conversion)) (find-file filename))) (defun find-file-text (filename) "Visit file FILENAME and treat it as a text file." (interactive "FFind file text: ") - (let ((file-name-buffer-file-type-alist '(("" . nil)))) + (let ((coding-system-for-read 'undecided-dos)) (find-file filename))) (defun find-file-not-found-set-buffer-file-coding-system () === modified file 'lisp/emacs-lisp/bytecomp.el' --- lisp/emacs-lisp/bytecomp.el 2013-01-02 16:13:04 +0000 +++ lisp/emacs-lisp/bytecomp.el 2013-02-09 12:52:01 +0000 @@ -1795,8 +1795,6 @@ (kill-emacs-hook (cons (lambda () (ignore-errors (delete-file tempfile))) kill-emacs-hook))) - (if (memq system-type '(ms-dos 'windows-nt)) - (setq buffer-file-type t)) (write-region (point-min) (point-max) tempfile nil 1) ;; This has the intentional side effect that any ;; hard-links to target-file continue to === modified file 'lisp/erc/ChangeLog' --- lisp/erc/ChangeLog 2013-01-11 10:40:54 +0000 +++ lisp/erc/ChangeLog 2013-02-09 12:52:01 +0000 @@ -1,3 +1,7 @@ +2013-02-09 Eli Zaretskii + + * erc-dcc.el (erc-dcc-get-file): Don't reference buffer-file-type. + 2013-01-11 Dmitry Antipov * erc-dcc.el (erc-dcc-send-file): Use point-min-marker. === modified file 'lisp/erc/erc-dcc.el' --- lisp/erc/erc-dcc.el 2013-01-11 10:40:54 +0000 +++ lisp/erc/erc-dcc.el 2013-02-09 12:52:01 +0000 @@ -942,7 +942,6 @@ (set-buffer-multibyte nil)) (setq mode-line-process '(":%s") - buffer-file-type t buffer-read-only t) (setq erc-dcc-file-name file) === modified file 'lisp/files.el' --- lisp/files.el 2013-01-31 06:35:45 +0000 +++ lisp/files.el 2013-02-09 12:52:01 +0000 @@ -1983,8 +1983,6 @@ (after-find-file error (not nowarn))) (current-buffer)))) -(defvar file-name-buffer-file-type-alist) ;From dos-w32.el. - (defun insert-file-contents-literally (filename &optional visit beg end replace) "Like `insert-file-contents', but only reads in the file literally. A buffer may be modified in several ways after reading into the buffer, @@ -1996,7 +1994,6 @@ (after-insert-file-functions nil) (coding-system-for-read 'no-conversion) (coding-system-for-write 'no-conversion) - (file-name-buffer-file-type-alist '(("" . t))) (inhibit-file-name-handlers ;; FIXME: Yuck!! We should turn insert-file-contents-literally ;; into a file operation instead! === modified file 'lisp/jka-compr.el' --- lisp/jka-compr.el 2013-01-01 09:11:05 +0000 +++ lisp/jka-compr.el 2013-02-09 12:52:01 +0000 @@ -332,8 +332,6 @@ (with-current-buffer temp-buffer (let ((coding-system-for-write 'no-conversion)) - (if (memq system-type '(ms-dos windows-nt)) - (setq buffer-file-type t) ) (jka-compr-run-real-handler 'write-region (list (point-min) (point-max) filename === modified file 'lisp/mail/feedmail.el' --- lisp/mail/feedmail.el 2012-09-17 05:41:04 +0000 +++ lisp/mail/feedmail.el 2013-02-09 12:52:01 +0000 @@ -590,7 +590,7 @@ (defcustom feedmail-force-binary-write t "If non-nil, force writing file as binary (this applies to queues and Fcc:). On systems where there is a difference between binary and text files, -feedmail will temporarily manipulate the value of `buffer-file-type' +feedmail will temporarily manipulate the value of `coding-system-for-write' to make the writing as binary. If nil, writing will be in text mode. On systems where there is no distinction or where it is controlled by other variables or other means, this option has no effect." @@ -2016,7 +2016,6 @@ (setq buffer-offer-save nil) (buffer-disable-undo blobby-buffer) (insert-file-contents-literally maybe-file) - (setq buffer-file-type t) ; binary (goto-char (point-min)) ;; if at least two line-endings with CRLF, translate the file (if (looking-at ".*\r\n.*\r\n") @@ -2334,7 +2333,10 @@ (setq filename buffer-file-name) (setq filename (feedmail-create-queue-filename queue-directory))) ;; make binary file on DOS/Windows 95/Windows NT, etc - (let ((buffer-file-type feedmail-force-binary-write)) + (let ((coding-system-for-write + (if feedmail-force-binary-write + 'no-conversion + coding-system-for-write))) (write-file filename)) ;; convenient for moving from draft to q, for example (if (and previous-buffer-file-name (or (not is-fqm) (not is-in-this-dir)) @@ -2571,26 +2573,27 @@ ;; Re-insert and handle any Fcc fields (and, optionally, ;; any Bcc). (when fcc - (let ((old (default-value 'buffer-file-type))) + (let ((coding-system-for-write + (if (and (memq system-type '(ms-dos windows-nt)) + feedmail-force-binary-write) + 'no-conversion + coding-system-for-write))) (unwind-protect (progn - (setq-default buffer-file-type - feedmail-force-binary-write) (insert fcc) (unless feedmail-nuke-bcc-in-fcc (if bcc-holder (insert bcc-holder)) (if resent-bcc-holder (insert resent-bcc-holder))) - + (run-hooks 'feedmail-before-fcc-hook) - + (when feedmail-nuke-body-in-fcc (goto-char eoh-marker) (if (natnump feedmail-nuke-body-in-fcc) (forward-line feedmail-nuke-body-in-fcc)) (delete-region (point) (point-max))) - (mail-do-fcc eoh-marker)) - (setq-default buffer-file-type old))))) + (mail-do-fcc eoh-marker)))))) ;; User bailed out of one-last-look. (if feedmail-queue-runner-is-active (throw 'skip-me-q 'skip-me-q) === modified file 'lisp/net/ange-ftp.el' --- lisp/net/ange-ftp.el 2013-01-29 08:12:11 +0000 +++ lisp/net/ange-ftp.el 2013-02-09 12:52:01 +0000 @@ -3297,7 +3297,6 @@ (name (ange-ftp-quote-string (nth 2 parsed))) (temp (ange-ftp-make-tmp-name host)) (binary (ange-ftp-binary-file filename)) - (buffer-file-type buffer-file-type) (abbr (ange-ftp-abbreviate-filename filename)) (coding-system-used last-coding-system-used) size) @@ -3322,10 +3321,7 @@ size (nth 1 (ange-ftp-real-insert-file-contents temp visit beg end replace)) - coding-system-used last-coding-system-used - ;; override autodetection of buffer file type - ;; to ensure buffer is saved in DOS format - buffer-file-type binary) + coding-system-used last-coding-system-used) (signal 'ftp-error (list "Opening input file:" === modified file 'src/ChangeLog' --- src/ChangeLog 2013-02-09 09:02:17 +0000 +++ src/ChangeLog 2013-02-09 12:52:01 +0000 @@ -1,5 +1,7 @@ 2013-02-09 Eli Zaretskii + * xdisp.c (decode_mode_spec): Remove handling of %t. + * msdos.c (careadlinkatcwd): Remove. 2013-02-08 Stefan Monnier === modified file 'src/xdisp.c' --- src/xdisp.c 2013-02-08 17:23:24 +0000 +++ src/xdisp.c 2013-02-09 12:52:01 +0000 @@ -21525,9 +21525,6 @@ return "@"; } - case 't': /* indicate TEXT or BINARY */ - return "T"; - case 'z': /* coding-system (not including end-of-line format) */ case 'Z': ------------------------------------------------------------ revno: 111708 committer: Glenn Morris branch nick: trunk timestamp: Sat 2013-02-09 06:17:59 -0500 message: Auto-commit of generated files. diff: === modified file 'autogen/Makefile.in' --- autogen/Makefile.in 2013-02-01 11:17:43 +0000 +++ autogen/Makefile.in 2013-02-09 11:17:59 +0000 @@ -333,6 +333,7 @@ GNULIB_RPMATCH = @GNULIB_RPMATCH@ GNULIB_SCANDIR = @GNULIB_SCANDIR@ GNULIB_SCANF = @GNULIB_SCANF@ +GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@ GNULIB_SELECT = @GNULIB_SELECT@ GNULIB_SETENV = @GNULIB_SETENV@ GNULIB_SETHOSTNAME = @GNULIB_SETHOSTNAME@ @@ -498,6 +499,7 @@ HAVE_REWINDDIR = @HAVE_REWINDDIR@ HAVE_RPMATCH = @HAVE_RPMATCH@ HAVE_SCANDIR = @HAVE_SCANDIR@ +HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ HAVE_SIGACTION = @HAVE_SIGACTION@ @@ -1737,6 +1739,7 @@ -e 's/@''GNULIB_REALLOC_POSIX''@/$(GNULIB_REALLOC_POSIX)/g' \ -e 's/@''GNULIB_REALPATH''@/$(GNULIB_REALPATH)/g' \ -e 's/@''GNULIB_RPMATCH''@/$(GNULIB_RPMATCH)/g' \ + -e 's/@''GNULIB_SECURE_GETENV''@/$(GNULIB_SECURE_GETENV)/g' \ -e 's/@''GNULIB_SETENV''@/$(GNULIB_SETENV)/g' \ -e 's/@''GNULIB_STRTOD''@/$(GNULIB_STRTOD)/g' \ -e 's/@''GNULIB_STRTOLL''@/$(GNULIB_STRTOLL)/g' \ @@ -1765,6 +1768,7 @@ -e 's|@''HAVE_RANDOM_R''@|$(HAVE_RANDOM_R)|g' \ -e 's|@''HAVE_REALPATH''@|$(HAVE_REALPATH)|g' \ -e 's|@''HAVE_RPMATCH''@|$(HAVE_RPMATCH)|g' \ + -e 's|@''HAVE_SECURE_GETENV''@|$(HAVE_SECURE_GETENV)|g' \ -e 's|@''HAVE_DECL_SETENV''@|$(HAVE_DECL_SETENV)|g' \ -e 's|@''HAVE_STRTOD''@|$(HAVE_STRTOD)|g' \ -e 's|@''HAVE_STRTOLL''@|$(HAVE_STRTOLL)|g' \ === modified file 'autogen/config.in' --- autogen/config.in 2013-02-01 11:17:43 +0000 +++ autogen/config.in 2013-02-09 11:17:59 +0000 @@ -1398,6 +1398,38 @@ /* Define to 1 if using the Motif X toolkit. */ #undef USE_MOTIF +/* Enable extensions on AIX 3, Interix. */ +#ifndef _ALL_SOURCE +# undef _ALL_SOURCE +#endif +/* Enable general extensions on OS X. */ +#ifndef _DARWIN_C_SOURCE +# undef _DARWIN_C_SOURCE +#endif +/* Enable GNU extensions on systems that have them. */ +#ifndef _GNU_SOURCE +# undef _GNU_SOURCE +#endif +/* Enable threading extensions on Solaris. */ +#ifndef _POSIX_PTHREAD_SEMANTICS +# undef _POSIX_PTHREAD_SEMANTICS +#endif +/* Enable extensions on HP NonStop. */ +#ifndef _TANDEM_SOURCE +# undef _TANDEM_SOURCE +#endif +/* Enable X/Open extensions if necessary. HP-UX 11.11 defines + mbstate_t only if _XOPEN_SOURCE is defined to 500, regardless of + whether compiling with -Ae or -D_HPUX_SOURCE=1. */ +#ifndef _XOPEN_SOURCE +# undef _XOPEN_SOURCE +#endif +/* Enable general extensions on Solaris. */ +#ifndef __EXTENSIONS__ +# undef __EXTENSIONS__ +#endif + + /* Define to 1 if we should use toolkit scroll bars. */ #undef USE_TOOLKIT_SCROLL_BARS @@ -1484,6 +1516,9 @@ /* Define if GNUstep uses ObjC exceptions. */ #undef _NATIVE_OBJC_EXCEPTIONS +/* Define to 1 to make NetBSD features available. MINIX 3 needs this. */ +#undef _NETBSD_SOURCE + /* The _Noreturn keyword of C11. */ #if ! (defined _Noreturn \ || (defined __STDC_VERSION__ && 201112 <= __STDC_VERSION__)) @@ -1508,35 +1543,6 @@ /* Needed for system_process_attributes on Solaris. */ #undef _STRUCTURED_PROC -/* Define to 500 only on HP-UX. */ -#undef _XOPEN_SOURCE - -/* Enable extensions on AIX 3, Interix. */ -#ifndef _ALL_SOURCE -# undef _ALL_SOURCE -#endif -/* Enable general extensions on Mac OS X. */ -#ifndef _DARWIN_C_SOURCE -# undef _DARWIN_C_SOURCE -#endif -/* Enable GNU extensions on systems that have them. */ -#ifndef _GNU_SOURCE -# undef _GNU_SOURCE -#endif -/* Enable threading extensions on Solaris. */ -#ifndef _POSIX_PTHREAD_SEMANTICS -# undef _POSIX_PTHREAD_SEMANTICS -#endif -/* Enable extensions on HP NonStop. */ -#ifndef _TANDEM_SOURCE -# undef _TANDEM_SOURCE -#endif -/* Enable general extensions on Solaris. */ -#ifndef __EXTENSIONS__ -# undef __EXTENSIONS__ -#endif - - /* Define to rpl_ if the getopt replacement functions and variables should be used. */ #undef __GETOPT_PREFIX === modified file 'autogen/configure' --- autogen/configure 2013-02-07 06:23:54 +0000 +++ autogen/configure 2013-02-09 11:17:59 +0000 @@ -902,6 +902,7 @@ HAVE_STRTOD HAVE_DECL_SETENV HAVE_SETENV +HAVE_SECURE_GETENV HAVE_RPMATCH HAVE_REALPATH HAVE_RANDOM_R @@ -929,6 +930,7 @@ GNULIB_STRTOLL GNULIB_STRTOD GNULIB_SETENV +GNULIB_SECURE_GETENV GNULIB_RPMATCH GNULIB_REALPATH GNULIB_REALLOC_POSIX @@ -6469,8 +6471,6 @@ - - ac_fn_c_check_header_mongrel "$LINENO" "minix/config.h" "ac_cv_header_minix_config_h" "$ac_includes_default" if test "x$ac_cv_header_minix_config_h" = x""yes; then : MINIX=yes @@ -6489,16 +6489,11 @@ $as_echo "#define _MINIX 1" >>confdefs.h + +$as_echo "#define _NETBSD_SOURCE 1" >>confdefs.h + fi - case "$host_os" in - hpux*) - -$as_echo "#define _XOPEN_SOURCE 500" >>confdefs.h - - ;; - esac - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether it is safe to define __EXTENSIONS__" >&5 $as_echo_n "checking whether it is safe to define __EXTENSIONS__... " >&6; } @@ -6540,6 +6535,54 @@ $as_echo "#define _TANDEM_SOURCE 1" >>confdefs.h + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether _XOPEN_SOURCE should be defined" >&5 +$as_echo_n "checking whether _XOPEN_SOURCE should be defined... " >&6; } +if test "${ac_cv_should_define__xopen_source+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_should_define__xopen_source=no + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #include + mbstate_t x; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #define _XOPEN_SOURCE 500 + #include + mbstate_t x; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_should_define__xopen_source=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_should_define__xopen_source" >&5 +$as_echo "$ac_cv_should_define__xopen_source" >&6; } + test $ac_cv_should_define__xopen_source = yes && + $as_echo "#define _XOPEN_SOURCE 500" >>confdefs.h + @@ -17367,6 +17410,7 @@ GNULIB_REALLOC_POSIX=0; GNULIB_REALPATH=0; GNULIB_RPMATCH=0; + GNULIB_SECURE_GETENV=0; GNULIB_SETENV=0; GNULIB_STRTOD=0; GNULIB_STRTOLL=0; @@ -17394,6 +17438,7 @@ HAVE_RANDOM_R=1; HAVE_REALPATH=1; HAVE_RPMATCH=1; + HAVE_SECURE_GETENV=1; HAVE_SETENV=1; HAVE_DECL_SETENV=1; HAVE_STRTOD=1; ------------------------------------------------------------ revno: 111707 committer: Tassilo Horn branch nick: trunk timestamp: Sat 2013-02-09 10:58:48 +0100 message: * doc-view.el: Use (and prefer) soffice as default ODF->PDF converter (Bug#13622). Patch provided by Jambunathan K . (doc-view-unoconv-program): Make obsolete variable. (doc-view-odf->pdf-converter-program): New variable. (doc-view-odf->pdf-converter-function): New variable. (doc-view-mode-p): Use it. (doc-view-odf->pdf-converter-unoconv): Rename from `doc-view-odf->pdf-converter-unoconv'. (doc-view-odf->pdf-converter-soffice): New function. (doc-view-convert-current-doc): Use `doc-view-odf->pdf-converter-function'. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-02-09 05:52:20 +0000 +++ lisp/ChangeLog 2013-02-09 09:58:48 +0000 @@ -1,3 +1,18 @@ +2013-02-09 Tassilo Horn + + * doc-view.el: Use (and prefer) soffice as default ODF->PDF + converter (Bug#13622). Patch provided by Jambunathan K + . + (doc-view-unoconv-program): Make obsolete variable. + (doc-view-odf->pdf-converter-program): New variable. + (doc-view-odf->pdf-converter-function): New variable. + (doc-view-mode-p): Use it. + (doc-view-odf->pdf-converter-unoconv): Rename from + `doc-view-odf->pdf-converter-unoconv'. + (doc-view-odf->pdf-converter-soffice): New function. + (doc-view-convert-current-doc): Use + `doc-view-odf->pdf-converter-function'. + 2013-02-09 Chong Yidong * minibuffer.el (minibuffer-inactive-mode-map): Bind mouse-1 to === modified file 'lisp/doc-view.el' --- lisp/doc-view.el 2013-01-24 03:34:20 +0000 +++ lisp/doc-view.el 2013-02-09 09:58:48 +0000 @@ -231,14 +231,37 @@ :type 'file :group 'doc-view) -(defcustom doc-view-unoconv-program "unoconv" +(define-obsolete-variable-alias 'doc-view-unoconv-program + 'doc-view-odf->pdf-converter-program + "24.4") + +(defcustom doc-view-odf->pdf-converter-program + (cond + ((executable-find "soffice") "soffice") + ((executable-find "unoconv") "unoconv") + (t "soffice")) "Program to convert any file type readable by OpenOffice.org to PDF. Needed for viewing OpenOffice.org (and MS Office) files." - :version "24.1" + :version "24.4" :type 'file :group 'doc-view) +(defcustom doc-view-odf->pdf-converter-function + (cond + ((string-match "unoconv\\'" doc-view-odf->pdf-converter-program) + #'doc-view-odf->pdf-converter-unoconv) + ((string-match "soffice\\'" doc-view-odf->pdf-converter-program) + #'doc-view-odf->pdf-converter-soffice)) + "Function to call to convert a ODF file into a PDF file." + :type '(radio + (function-item doc-view-odf->pdf-converter-unoconv + :doc "Use unoconv") + (function-item doc-view-odf->pdf-converter-soffice + :doc "Use LibreOffice") + function) + :version "24.4") + (defcustom doc-view-ps2pdf-program "ps2pdf" "Program to convert PS files to PDF. @@ -700,8 +723,8 @@ (and doc-view-ghostscript-program (executable-find doc-view-ghostscript-program))) ((eq type 'odf) - (and doc-view-unoconv-program - (executable-find doc-view-unoconv-program) + (and doc-view-odf->pdf-converter-program + (executable-find doc-view-odf->pdf-converter-program) (doc-view-mode-p 'pdf))) ((eq type 'djvu) (executable-find "ddjvu")) @@ -903,14 +926,23 @@ ,@(if page `(,(format "%d" page)))) callback)) -(defun doc-view-odf->pdf (odf callback) +(defun doc-view-odf->pdf-converter-unoconv (odf callback) "Convert ODF to PDF asynchronously and call CALLBACK when finished. The converted PDF is put into the current cache directory, and it is named like ODF with the extension turned to pdf." - (doc-view-start-process "odf->pdf" doc-view-unoconv-program + (doc-view-start-process "odf->pdf" doc-view-odf->pdf-converter-program (list "-f" "pdf" "-o" (doc-view-current-cache-dir) odf) callback)) +(defun doc-view-odf->pdf-converter-soffice (odf callback) + "Convert ODF to PDF asynchronously and call CALLBACK when finished. +The converted PDF is put into the current cache directory, and it +is named like ODF with the extension turned to pdf." + (doc-view-start-process "odf->pdf" doc-view-odf->pdf-converter-program + (list "--headless" "--convert-to" "pdf" + "--outdir" (doc-view-current-cache-dir) odf) + callback)) + (defun doc-view-pdf/ps->png (pdf-ps png) ;; FIXME: Fix name and docstring to account for djvu&tiff. "Convert PDF-PS to PNG asynchronously." @@ -1058,7 +1090,7 @@ ;; The unoconv tool only supports an output directory, but no ;; file name. It's named like the input file with the ;; extension replaced by pdf. - (doc-view-odf->pdf doc-view-buffer-file-name + (funcall doc-view-odf->pdf-converter-function doc-view-buffer-file-name (lambda () ;; Rename to doc.pdf (rename-file opdf pdf) ------------------------------------------------------------ revno: 111706 committer: Eli Zaretskii branch nick: trunk timestamp: Sat 2013-02-09 11:02:17 +0200 message: src/msdos.c (careadlinkatcwd): Remove. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2013-02-08 17:42:09 +0000 +++ src/ChangeLog 2013-02-09 09:02:17 +0000 @@ -1,3 +1,7 @@ +2013-02-09 Eli Zaretskii + + * msdos.c (careadlinkatcwd): Remove. + 2013-02-08 Stefan Monnier * lread.c (skip_dyn_bytes): New function (bug#12598). === modified file 'src/msdos.c' --- src/msdos.c 2013-02-02 17:14:24 +0000 +++ src/msdos.c 2013-02-09 09:02:17 +0000 @@ -3957,14 +3957,6 @@ return buffer; } -ssize_t -careadlinkatcwd (int fd, char const *filename, char *buffer, - size_t buffer_size) -{ - (void) fd; - return readlink (filename, buffer, buffer_size); -} - #if __DJGPP__ == 2 && __DJGPP_MINOR__ < 2 ------------------------------------------------------------ revno: 111705 fixes bug: http://debbugs.gnu.org/13340 committer: Chong Yidong branch nick: trunk timestamp: Sat 2013-02-09 13:52:20 +0800 message: Bind view-echo-area-messages in minibuffer-inactive-mode-map. * help.el (view-echo-area-messages): Use display-buffer. * minibuffer.el (minibuffer-inactive-mode-map): Bind mouse-1 to view-echo-area-messages. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-02-09 05:09:02 +0000 +++ lisp/ChangeLog 2013-02-09 05:52:20 +0000 @@ -1,5 +1,10 @@ 2013-02-09 Chong Yidong + * minibuffer.el (minibuffer-inactive-mode-map): Bind mouse-1 to + view-echo-area-messages (Bug#13340). + + * help.el (view-echo-area-messages): Use display-buffer. + * dired-x.el (dired-do-run-mail): Prompt for confirmation (Bug#13561). === modified file 'lisp/help.el' --- lisp/help.el 2013-01-01 09:11:05 +0000 +++ lisp/help.el 2013-02-09 05:52:20 +0000 @@ -412,7 +412,9 @@ The number of messages retained in that buffer is specified by the variable `message-log-max'." (interactive) - (switch-to-buffer (get-buffer-create "*Messages*"))) + (with-current-buffer (get-buffer-create "*Messages*") + (goto-char (point-max)) + (display-buffer (current-buffer)))) (defun view-order-manuals () "Display the Emacs ORDERS file." === modified file 'lisp/minibuffer.el' --- lisp/minibuffer.el 2013-01-02 16:13:04 +0000 +++ lisp/minibuffer.el 2013-02-09 05:52:20 +0000 @@ -2045,10 +2045,7 @@ (define-key map "i" 'info) (define-key map "m" 'mail) (define-key map "n" 'make-frame) - (define-key map [mouse-1] (lambda () (interactive) - (with-current-buffer "*Messages*" - (goto-char (point-max)) - (display-buffer (current-buffer))))) + (define-key map [mouse-1] 'view-echo-area-messages) ;; So the global down-mouse-1 binding doesn't clutter the execution of the ;; above mouse-1 binding. (define-key map [down-mouse-1] #'ignore) ------------------------------------------------------------ Use --include-merged or -n0 to see merged revisions.