emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] master 74079cd 2/2: Merge branch 'master' of git.sv.gnu.or


From: Michael Albinus
Subject: [Emacs-diffs] master 74079cd 2/2: Merge branch 'master' of git.sv.gnu.org:/srv/git/emacs
Date: Wed, 08 Apr 2015 09:51:48 +0000

branch: master
commit 74079cd58ba81b3ec81d44b474ad66ea2c99272d
Merge: b3f2874 1ba357e
Author: Michael Albinus <address@hidden>
Commit: Michael Albinus <address@hidden>

    Merge branch 'master' of git.sv.gnu.org:/srv/git/emacs
---
 doc/man/ebrowse.1          |    2 +-
 doc/man/emacs.1.in         |   14 +++++-----
 doc/man/emacsclient.1      |   32 ++++++++++++----------
 doc/man/etags.1            |   10 +++---
 doc/misc/eshell.texi       |   10 +++++++
 etc/PROBLEMS               |   62 ++++++++++++++++++++++++++-----------------
 lisp/ffap.el               |    2 +-
 lisp/files.el              |   24 +++++++++--------
 lisp/misearch.el           |    7 +++-
 lisp/progmodes/cc-fonts.el |   45 ++++++++++++++++---------------
 10 files changed, 119 insertions(+), 89 deletions(-)

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 
<address@hidden>,
 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 ),
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
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<t> <quotedbl> <Y>                  : "\276"        threequarters
 
-that should read:
+while it should read:
 
         Ctrl<T> <quotedbl> <Y>                  : "\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 <URL:http://debbugs.gnu.org/327, <URL:http://debbugs.gnu.org/821>.
+See <URL:http://debbugs.gnu.org/327>, <URL:http://debbugs.gnu.org/821>.
 
 ** 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
 
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 "--:=&address@hidden:alpha:]~#,%;*()!'" "^[0-9a-zA-Z]" ":;.,!?")
     ;; Find a string that does *not* contain a colon:
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)
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)
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)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]