commit 1ba357e30518fdcc0b870870152f5434cb2540ba (HEAD, refs/remotes/origin/master) Author: Tassilo Horn Date: Wed Apr 8 09:57:58 2015 +0200 Add notice to visual commands section * doc/misc/eshell.texi (Input/Output): Add notice that some tools such as git call less with its -F option which omits pagination if the contents is less than one page long. This interferes with eshell's visual (sub-)commands. diff --git a/doc/misc/eshell.texi b/doc/misc/eshell.texi index 6d57a78..4ed894e 100644 --- a/doc/misc/eshell.texi +++ b/doc/misc/eshell.texi @@ -654,6 +654,16 @@ not @samp{git status} -- use @code{eshell-visual-subcommands}; and for commands that are visual only when passed certain options, use @code{eshell-visual-options}. +Caution: Some tools such as Git use the pager @samp{less} by default +to paginate their output but call it with its @samp{-F} option. This +option causes @samp{less} to echo the output instead of paginating it +if the output is less than one page long. This causes undesirable +behavior if, e.g., @samp{git diff}, is defined as a visual subcommand. +It'll work if the output is big enough and fail if it is less than one +page long. If that occurs to you, search for configuration options +for calling @samp{less} without the @samp{-F} option. For Git, you +can do that using @samp{git config --global core.pager 'less -+F'}. + @section Redirection Redirection is mostly the same in Eshell as it is in other command shells. The output redirection operators @code{>} and @code{>>} as commit ba6c32b6decaa2a72a3d5f854efd513e8e82c118 Author: Dmitry Gutov Date: Wed Apr 8 03:18:38 2015 +0300 ffap: Support environment variable expansion in file names Fixes: debbugs:19839 * lisp/ffap.el (ffap-string-at-point-mode-alist): Support environment variable expansion in file names. diff --git a/lisp/ffap.el b/lisp/ffap.el index d4e30a0..452275a 100644 --- a/lisp/ffap.el +++ b/lisp/ffap.el @@ -1004,7 +1004,7 @@ If a given RFC isn't in these then `ffap-rfc-path' is offered." ;; Slightly controversial decisions: ;; * strip trailing "@" and ":" ;; * no commas (good for latex) - (file "--:\\\\$+<>@-Z_[:alpha:]~*?" "<@" "@>;.,!:") + (file "--:\\\\$\\{\\}+<>@-Z_[:alpha:]~*?" "<@" "@>;.,!:") ;; An url, or maybe a email/news message-id: (url "--:=&?$+@-Z_[:alpha:]~#,%;*()!'" "^[0-9a-zA-Z]" ":;.,!?") ;; Find a string that does *not* contain a colon: commit 3262e4906781d9df343f335d64da92861c53e5a4 Author: Paul Eggert Date: Tue Apr 7 11:58:47 2015 -0700 Prefer double-quote to accent-grave in man pages diff --git a/doc/man/ebrowse.1 b/doc/man/ebrowse.1 index a4f0c79..40c82a4 100644 --- a/doc/man/ebrowse.1 +++ b/doc/man/ebrowse.1 @@ -16,7 +16,7 @@ is used to create the database used by the class browser in Emacs. .PP .SH OPTIONS The program follows the usual GNU command line syntax, with long -options starting with two dashes (`-'). +options starting with two dashes ("\-"). .TP .B \-a, \-\-append append output to existing file diff --git a/doc/man/emacs.1.in b/doc/man/emacs.1.in index 259acb9..98322aa 100644 --- a/doc/man/emacs.1.in +++ b/doc/man/emacs.1.in @@ -251,8 +251,8 @@ Set additional X resources. .BI "\-\-color\fR,\fP \-\-color=" mode Override color mode for character terminals; .I mode -defaults to `auto', and can also be `never', `auto', `always', -or a mode name like `ansi8'. +defaults to "auto", and can also be "never", "auto", "always", +or a mode name like "ansi8". .TP .BI \-bw " pixels\fR,\fP " \-\-border\-width " pixels" Set the @@ -420,8 +420,8 @@ The value can be one of .IR fullwidth , or .IR fullheight , -which correspond to the command-line options `\-fs', `\-mm', `\-fw', -and `\-fh', respectively. +which correspond to the command-line options "\-fs", "\-mm", "\-fw", +and "\-fh", respectively. Note that this applies to the initial frame only. .TP .BR geometry " (class " Geometry ) @@ -482,11 +482,11 @@ the window will be displayed in reverse video. .TP .BR screenGamma " (class "ScreenGamma ) Gamma correction for colors, equivalent to the frame parameter -`screen\-gamma'. +"screen\-gamma". .TP .BR scrollBarWidth " (class "ScrollBarWidth ) The scroll bar width in pixels, equivalent to the frame parameter -`scroll\-bar\-width'. +"scroll\-bar\-width". .TP .BR selectionFont " (class " SelectionFont ) Font name for pop-up menu items, in non-toolkit versions of @@ -583,7 +583,7 @@ There is a mailing list, @PACKAGE_BUGREPORT@, for reporting Emacs bugs and fixes. But before reporting something as a bug, please try to be sure that it really is a bug, not a misunderstanding or a deliberate feature. -We ask you to read the section ``Reporting Bugs'' in the Emacs manual +We ask you to read the section "Reporting Bugs" in the Emacs manual for hints on how and when to report bugs. Also, include the version number of the Emacs you are running in \fIevery\fR bug report that you send in. diff --git a/doc/man/emacsclient.1 b/doc/man/emacsclient.1 index 6930271..e62fe93 100644 --- a/doc/man/emacsclient.1 +++ b/doc/man/emacsclient.1 @@ -31,28 +31,31 @@ default editor. For .B emacsclient to work, you need an already running Emacs with a server. Within Emacs, -call the functions `server-start' or `server-mode'. (Your `.emacs' file -can do this automatically if you add either `(server-start)' or -`(server-mode 1)' to it.) +call the functions "server-start" or "server-mode". (Your ".emacs" file +can do this automatically if you add either "(server-start)" or +"(server-mode 1)" to it.) -When you've finished editing the buffer, type `C-x #' -(`server-edit'). This saves the file and sends a message back to the -`emacsclient' program telling it to exit. The programs that use -`EDITOR' wait for the "editor" (actually, `emacsclient') to exit. `C-x -#' also checks for other pending external requests to edit various +When you've finished editing the buffer, type "C-x #" +("server-edit"). This saves the file and sends a message back to the +.B emacsclient +program telling it to exit. The programs that use +EDITOR wait for the "editor" (actually, +.BR emacsclient ) +to exit. "C-x #" also checks for other pending external requests to +edit various files, and selects the next such file. -If you set the variable `server-window' to a window or a frame, `C-x -#' displays the server buffer in that window or in that frame. +If you set the variable "server-window" to a window or a frame, "C-x +#" displays the server buffer in that window or in that frame. .SH OPTIONS The programs follow the usual GNU command line syntax, with long -options starting with two dashes (`-'). +options starting with two dashes ("\-"). .TP .B \-a, \-\-alternate-editor=EDITOR if the Emacs server is not running, run the specified editor instead. -This can also be specified via the `ALTERNATE_EDITOR' environment variable. -If the value of EDITOR is the empty string, run `emacs \-\-daemon' to +This can also be specified via the ALTERNATE_EDITOR environment variable. +If the value of EDITOR is the empty string, run "emacs \-\-daemon" to start Emacs in daemon mode, and try to connect to it. .TP .B -c, \-\-create-frame @@ -70,7 +73,7 @@ Lisp expressions. .TP .B \-f, \-\-server-file=FILENAME use TCP configuration file FILENAME for communication. -This can also be specified via the `EMACS_SERVER_FILE' environment variable. +This can also be specified via the EMACS_SERVER_FILE environment variable. .TP .B \-n, \-\-no-wait returns @@ -99,4 +102,3 @@ This manual page was written by Stephane Bortzmeyer , for the Debian GNU/Linux system (but may be used by others). .SH COPYING This manual page is in the public domain. - diff --git a/doc/man/etags.1 b/doc/man/etags.1 index 08db343..245d9b4 100644 --- a/doc/man/etags.1 +++ b/doc/man/etags.1 @@ -80,8 +80,8 @@ Append to existing tag file. (For \fBvi\fP-format tag files, see also .B \-B, \-\-backward\-search Tag files written in the format expected by \fBvi\fP contain regular expression search instructions; the \fB\-B\fP option writes them using -the delimiter `\|\fB?\fP\|', to search \fIbackwards\fP through files. -The default is to use the delimiter `\|\fB/\fP\|', to search \fIforwards\fP +the delimiter "\|\fB?\fP\|", to search \fIbackwards\fP through files. +The default is to use the delimiter "\|\fB/\fP\|", to search \fIforwards\fP through files. Only \fBctags\fP accepts this option. .TP @@ -117,8 +117,8 @@ final brace of a function or structure definition in C and C++. Parse the following files according to the given language. More than one such options may be intermixed with filenames. Use \fB\-\-help\fP to get a list of the available languages and their default filename -extensions. The `auto' language can be used to restore automatic -detection of language based on the file name. The `none' +extensions. The "auto" language can be used to restore automatic +detection of language based on the file name. The "none" language may be used to disable language parsing altogether; only regexp matching is done in this case (see the \fB\-\-regex\fP option). .TP @@ -256,7 +256,7 @@ Print the current version of the program (same as the version of the emacs \fBetags\fP is shipped with). .SH "SEE ALSO" -`\|\fBemacs\fP\|' entry in \fBinfo\fP; \fIGNU Emacs Manual\fP, Richard +"\|\fBemacs\fP\|" entry in \fBinfo\fP; \fIGNU Emacs Manual\fP, Richard Stallman. .br .BR cxref ( 1 ), commit d60dbd81bec6dcb6b78200e07021b9a6ebf861ea Author: Stefan Monnier Date: Tue Apr 7 14:56:54 2015 -0400 Fixes: debbugs:20257 * lisp/files.el (set-visited-file-name): Clear auto-save if nil. diff --git a/lisp/files.el b/lisp/files.el index 0fdf004..eca52e0 100644 --- a/lisp/files.el +++ b/lisp/files.el @@ -3931,17 +3931,19 @@ the old visited file has been renamed to the new name FILENAME." (make-local-variable 'backup-inhibited) (setq backup-inhibited t))) (let ((oauto buffer-auto-save-file-name)) - ;; If auto-save was not already on, turn it on if appropriate. - (if (not buffer-auto-save-file-name) - (and buffer-file-name auto-save-default - (auto-save-mode t)) - ;; If auto save is on, start using a new name. - ;; We deliberately don't rename or delete the old auto save - ;; for the old visited file name. This is because perhaps - ;; the user wants to save the new state and then compare with the - ;; previous state from the auto save file. - (setq buffer-auto-save-file-name - (make-auto-save-file-name))) + (cond ((null filename) + (setq buffer-auto-save-file-name nil)) + ((not buffer-auto-save-file-name) + ;; If auto-save was not already on, turn it on if appropriate. + (and buffer-file-name auto-save-default (auto-save-mode t))) + (t + ;; If auto save is on, start using a new name. We + ;; deliberately don't rename or delete the old auto save + ;; for the old visited file name. This is because + ;; perhaps the user wants to save the new state and then + ;; compare with the previous state from the auto save + ;; file. + (setq buffer-auto-save-file-name (make-auto-save-file-name)))) ;; Rename the old auto save file if any. (and oauto buffer-auto-save-file-name (file-exists-p oauto) commit a137ff5025bbfe8aa3cd49814726c4b37ee3311d Author: Ivan Shmakov Date: Tue Apr 7 17:42:28 2015 +0000 Update etc/PROBLEMS. * etc/PROBLEMS: Mention visible-cursor; a few more mentions of ~/.Xresources and xrdb(1); refer to 'GNU Coreutils' and 'X Window System' or 'X' (were: 'GNU Fileutils' and 'X Windows', respectively); other minor updates and tweaks. (Bug#20011) diff --git a/etc/PROBLEMS b/etc/PROBLEMS index 87d3ec8..c618309 100644 --- a/etc/PROBLEMS +++ b/etc/PROBLEMS @@ -26,6 +26,9 @@ A typical error message might be something like This happens because some X resource specifies a bad font family for Emacs to use. The possible places where this specification might be are: + - in the X server resources database, often initialized from + ~/.Xresources (use $ xrdb -query to find out the current state) + - in your ~/.Xdefaults file - client-side X resource file, such as ~/Emacs or @@ -35,6 +38,12 @@ One of these files might have bad or malformed specification of a fontset that Emacs should use. To fix the problem, you need to find the problematic line(s) and correct them. +After correcting ~/.Xresources, the new data has to be merged into the +X server resources database. Depending on the circumstances, the +following command may do the trick. See xrdb(1) for more information. + + $ xrdb -merge ~/.Xresources + ** Emacs aborts while starting up, only when run without X. This problem often results from compiling Emacs with GCC when GCC was @@ -270,8 +279,7 @@ The error message might be something like this: This happens because epop3 redefines the function gethash, which is a built-in primitive beginning with Emacs 21.1. We don't have a patch -for epop3 that fixes this, but perhaps a newer version of epop3 -corrects that. +for epop3 to fix it, but perhaps a newer version of epop3 corrects that. *** Buffers from `with-output-to-temp-buffer' get set up in Help mode. @@ -507,7 +515,7 @@ time. Possible reasons for this include: To work around the problem, you could either (a) set the variable `directory-free-space-program' to nil, and thus prevent Emacs from -invoking `df'; (b) use `df' from the GNU Fileutils package; or +invoking `df'; (b) use `df' from the GNU Coreutils package; or (c) use CVS, which is Free Software, instead of ClearCase. *** ps-print commands fail to find prologue files ps-prin*.ps. @@ -600,7 +608,7 @@ For example, XFree86 4.3.0 has one version and Gnome usually comes with a newer version. Emacs compiled with Gtk+ will then use the newer version. In most cases the problem can be temporarily fixed by stopping the application that has the error (it can be Emacs or any -other application), removing ~/.fonts.cache-1, and then start the +other application), removing ~/.fonts.cache-1, and then starting the application again. If removing ~/.fonts.cache-1 and restarting doesn't help, the application with problem must be recompiled with the same version of FontConfig as the rest of the system uses. For KDE, @@ -700,7 +708,7 @@ frame's parameter list, like this: ** Underlines appear at the wrong position. This is caused by fonts having a wrong UNDERLINE_POSITION property. -Examples are the font 7x13 on XFree prior to version 4.1, or the jmk +Examples are the 7x13 font on XFree86 prior to version 4.1, or the jmk neep font from the Debian xfonts-jmk package prior to version 3.0.17. To circumvent this problem, set x-use-underline-position-properties to nil in your `.emacs'. @@ -823,7 +831,7 @@ If all users at your site of a particular keyboard prefer Meta to Compose, you can make the remapping happen automatically by adding the xmodmap command to the xdm setup script for that display. -*** Using X Windows, control-shift-leftbutton makes Emacs hang. +*** Using X Window System, control-shift-leftbutton makes Emacs hang. Use the shell command `xset bc' to make the old X Menu package work. @@ -987,8 +995,8 @@ while, Emacs may print a message: Timed out waiting for property-notify event -A workaround is to not use `klipper'. An upgrade to the `klipper' that -comes with KDE 3.3 or later also solves the problem. +A workaround is to not use `klipper'. Upgrading `klipper' to the one +coming with KDE 3.3 or later also solves the problem. *** CDE: Frames may cover dialogs they created when using CDE. @@ -1113,8 +1121,8 @@ be carried out at the same time: (menu-bar-mode -1) (tool-bar-mode -1) - For still quicker startup, put these X resources in your .Xdefaults - file: + For still quicker startup, put these X resources in your + .Xresources or .Xdefaults file: Emacs.verticalScrollBars: off Emacs.menuBar: off @@ -1133,7 +1141,7 @@ be carried out at the same time: -noatomsfile -nowinattr -cheaterrors -cheatevents Note that the -nograbcmap option is known to cause problems. For more about lbxproxy, see: - http://www.xfree86.org/4.3.0/lbxproxy.1.html + http://www.x.org/archive/X11R6.8.0/doc/lbxproxy.1.html 5) If copying and killing is slow, try to disable the interaction with the native system's clipboard by adding these lines to your .emacs file: @@ -1201,17 +1209,17 @@ To check thoroughly for such resource specifications, use `xrdb -query' to see what resources the X server records, and also look at the user's ~/.Xdefaults and ~/.Xdefaults-* files. -*** Emacs running under X Windows does not handle mouse clicks. +*** Emacs running under X Window System does not handle mouse clicks. *** `emacs -geometry 80x20' finds a file named `80x20'. One cause of such problems is having (setq term-file-prefix nil) in your .emacs file. Another cause is a bad value of EMACSLOADPATH in the environment. -*** X Windows doesn't work if DISPLAY uses a hostname. +*** X doesn't work if DISPLAY uses a hostname. People have reported kernel bugs in certain systems that cause Emacs -not to work with X Windows if DISPLAY is set using a host name. But +not to work with X if DISPLAY is set using a host name. But the problem does not occur if DISPLAY is set to `unix:0.0'. I think the bug has to do with SIGIO or FIONREAD. @@ -1393,7 +1401,7 @@ shows how to do this with C-^ and C-\. ** Screen is updated wrong, but only on one kind of terminal. This could mean that the termcap entry you are using for that -terminal is wrong, or it could mean that Emacs has a bug handing +terminal is wrong, or it could mean that Emacs has a bug handling the combination of features specified for that terminal. The first step in tracking this down is to record what characters @@ -1612,7 +1620,7 @@ http://debbugs.gnu.org/7791 The symptoms are: you are accessing a svn repository over SSH. You use vc-annotate on a large (several thousand line) file, and the result is truncated around the 1000 line mark. It works fine with -other access methods (eg http), or from outside Emacs. +other access methods (e.g. http), or from outside Emacs. This may be a similar libc/SSH issue to the one mentioned above for CVS. A similar workaround seems to be effective: create a script with the @@ -1714,7 +1722,11 @@ the sequence "\E[?25h\E[?17;0;64c", and then run "tic linux-term" to produce a modified terminfo entry. Alternatively, if you want a blinking underscore as your Emacs cursor, -change the "cvvis" capability to send the "\E[?25h\E[?0c" command. +set the `visible-cursor' variable to nil in your ~/.emacs: + (setq visible-cursor nil) + +Still other way is to change the "cvvis" capability to send the +"\E[?25h\E[?0c" command. ** FreeBSD @@ -1906,7 +1918,7 @@ Near the bottom there is a line that reads: Ctrl : "\276" threequarters -that should read: +while it should read: Ctrl : "\276" threequarters @@ -2049,7 +2061,7 @@ rails-mode. ** M-x term does not work on MS-Windows. TTY emulation on Windows is undocumented, and programs such as stty -which are used on posix platforms to control tty emulation do not +which are used on POSIX platforms to control tty emulation do not exist for native windows terminals. ** Using create-fontset-from-ascii-font or the --font startup parameter @@ -2062,7 +2074,7 @@ use create-fontset-from-fontset-spec to define a fontset. This means no redisplay while the File or Font dialog or a pop-up menu is displayed. This also means tooltips with help text for pop-up -menus is not displayed at all (except in a TTY session, where the help +menus are not displayed at all (except in a TTY session, where the help text is shown in the echo area). This is because message handling under Windows is synchronous, so we cannot handle repaint (or any other) messages while waiting for a system function, which popped up @@ -2144,7 +2156,7 @@ daylight savings switchovers by the Windows libraries. Files larger than 4GB cause overflow in the size (represented as a 32-bit integer) reported by `file-attributes'. This affects Dired as -well, since the Windows port uses a Lisp emulation of `ls' that relies +well, since the Windows port uses a Lisp emulation of `ls', which relies on `file-attributes'. ** Playing sound doesn't support the :data method @@ -2332,7 +2344,7 @@ you are working on the host called `marvin'. Then an entry in the marvin:/usr/local/src /usr/local/src ...options.omitted... -The solution is to remove this line from `etc/fstab'. +The solution is to remove this line from `/etc/fstab'. *** Building a 32-bit executable on a 64-bit GNU/Linux architecture. @@ -2363,7 +2375,7 @@ The linker error messages look like this: oo-spd/i386/ctags.o:ctags.c:(.text+0x156e): undefined reference to `_imp__re_set_syntax' collect2: ld returned 1 exit status -This happens because GCC finds an incompatible header regex.h +This happens because GCC finds an incompatible regex.h header somewhere on the include path, before the version of regex.h supplied with Emacs. One such incompatible version of regex.h is part of the GnuWin32 Regex package. @@ -2510,7 +2522,7 @@ Compiling the lisp files fails at random places, complaining: "No rule to make target `/path/to/some/lisp.elc'". The causes of this problem are not understood. Using GNU make 3.81 compiled from source, rather than the Ubuntu version, worked. -See . +See , . ** Dumping @@ -2618,7 +2630,7 @@ build Emacs in a directory on a local disk. On a system where getpagesize is not a system call, it is defined as a macro. If the definition (in both unex*.c and malloc.c) is wrong, it can cause problems like this. You might be able to find the correct -value in the man page for a.out (5). +value in the man page for a.out(5). * Problems on legacy systems commit 29500239d3289803275ed6d4c774ab4488918564 Author: Paul Eggert Date: Tue Apr 7 10:13:06 2015 -0700 Add doc strings for some Isearch state vars * lisp/misearch.el (multi-isearch-buffer-list) (multi-isearch-file-list): Add doc strings. Fixes: bug#20232 diff --git a/lisp/misearch.el b/lisp/misearch.el index 6596911..157b04d 100644 --- a/lisp/misearch.el +++ b/lisp/misearch.el @@ -92,9 +92,12 @@ Isearch starts.") The value is nil when the search still is in the initial buffer.") ;;;###autoload -(defvar multi-isearch-buffer-list nil) +(defvar multi-isearch-buffer-list nil + "Sequence of buffers visited by multiple buffers Isearch. +This is nil if Isearch is not currently searching more than one buffer.") ;;;###autoload -(defvar multi-isearch-file-list nil) +(defvar multi-isearch-file-list nil + "Sequence of files visited by multiple file buffers Isearch.") (defvar multi-isearch-orig-search-fun nil) (defvar multi-isearch-orig-wrap nil) commit db0a3b2c974642d04e763db64fcb49ef3154f5a8 Author: Alan Mackenzie Date: Tue Apr 7 11:01:43 2015 +0000 Always mark "<" and ">" in #include directives with text properties. * lisp/progmodes/c-fonts.el (c-cpp-matchers): Replace a font-lock "anchored matcher" with an invocation of c-make-font-lock-search-function to allow fontification when there's no trailing space on an "#include <..>" line. diff --git a/lisp/progmodes/cc-fonts.el b/lisp/progmodes/cc-fonts.el index 9a1273d..44172b0 100644 --- a/lisp/progmodes/cc-fonts.el +++ b/lisp/progmodes/cc-fonts.el @@ -539,28 +539,29 @@ stuff. Used on level 1 and higher." (let* ((re (c-make-keywords-re nil (c-lang-const c-cpp-include-directives))) (re-depth (regexp-opt-depth re))) - `((,(concat noncontinued-line-end - (c-lang-const c-opt-cpp-prefix) - re - (c-lang-const c-syntactic-ws) - "\\(<[^>\n\r]*>?\\)") - (,(+ ncle-depth re-depth sws-depth 1) - font-lock-string-face) - - ;; Use an anchored matcher to put paren syntax - ;; on the brackets. - (,(byte-compile - `(lambda (limit) - (let ((beg (match-beginning - ,(+ ncle-depth re-depth sws-depth 1))) - (end (1- (match-end ,(+ ncle-depth re-depth - sws-depth 1))))) - (if (eq (char-after end) ?>) - (progn - (c-mark-<-as-paren beg) - (c-mark->-as-paren end)) - (c-unmark-<->-as-paren beg))) - nil))))))) + ;; We used to use a font-lock "anchored matcher" here for + ;; the paren syntax. This failed when the ">" was at EOL, + ;; since `font-lock-fontify-anchored-keywords' terminated + ;; its loop at EOL without executing our lambda form at + ;; all. + `((,(c-make-font-lock-search-function + (concat noncontinued-line-end + (c-lang-const c-opt-cpp-prefix) + re + (c-lang-const c-syntactic-ws) + "\\(<[^>\n\r]*>?\\)") + `(,(+ ncle-depth re-depth sws-depth 1) + font-lock-string-face t) + `((let ((beg (match-beginning + ,(+ ncle-depth re-depth sws-depth 1))) + (end (1- (match-end ,(+ ncle-depth re-depth + sws-depth 1))))) + (if (eq (char-after end) ?>) + (progn + (c-mark-<-as-paren beg) + (c-mark->-as-paren end)) + (c-unmark-<->-as-paren beg))) + nil)))))) ;; #define. ,@(when (c-lang-const c-opt-cpp-macro-define)