Commit a6c05016 authored by Miles Bader's avatar Miles Bader

Revision: emacs@sv.gnu.org/emacs--unicode--0--patch-26

Merge from emacs--devo--0

Patches applied:

 * emacs--devo--0  (patch 119-122)

   - Update from CVS
parents 50ca3b1a 782ea71a
2006-02-24 Reiner Steib <Reiner.Steib@gmx.de>
* FOR-RELEASE (BUGS): Add URLs/MIDs.
2006-02-20 Kim F. Storm <storm@cua.dk>
* FOR-RELEASE (NEW FEATURES): Completed work on this item:
......
......@@ -36,10 +36,10 @@ Assigned to Bill Wohler <wohler@newt.com>.
* BUGS
** Reiner Steib's 23 Jan 2006 bug report that tool bar icons don't update.
URL/MID: http://mid.gmane.org/v9acdmrcse.fsf@marauder.physik.uni-ulm.de
** Ralf Angeli's 4 Jul 2005 bug report about scroll-preserve-screen-position.
** Martin Rudalics' 30 Jan 2006 bug report about overlays at end of buffer.
URL/MID: http://mid.gmane.org/877jg6o7k4.fsf@neutrino.iwi.uni-sb.de
** TCP server processes do not work on Windows.
......
2006-02-26 Kim F. Storm <storm@cua.dk>
* ido.el (ido-save-history, ido-load-history): Simplify. Don't
use find-file-noselect to avoid interference from other modes.
2006-02-25 Thien-Thi Nguyen <ttn@gnu.org>
* progmodes/sh-script.el (sh-mode): Fix bug: Arrange
to use the default shell if filename is not available.
Reported by Giorgos Keramidas.
2006-02-25 John Williams <jrw@pobox.com> (tiny change)
* progmodes/etags.el (tags-completion-table): Do completion from
all the tables in the current list, as documented in the manual.
2006-02-24 Alan Mackenzie <bug-cc-mode@gnu.org>
* CC Mode Update to 5.31.3.
2006-02-24 Alan Mackenzie <bug-cc-mode@gnu.org>
* progmodes/cc-mode.el (c-postprocess-file-styles): bind
inhibit-read-only to t, around the call to
c-remove-any-local-eval-or-mode-variables, so that it works on a
RO file.
2006-02-24 Alan Mackenzie <bug-cc-mode@gnu.org>
* progmodes/cc-awk.el: Correct a typo.
2006-02-24 Alan Mackenzie <bug-cc-mode@gnu.org>
* progmodes/cc-cmds.el, cc-mode.el: Rename c-hungry-backspace to
c-hungry-delete-backwards, at the request of RMS. Leave the old
name as an alias.
2006-02-24 Alan Mackenzie <bug-cc-mode@gnu.org>
* progmodes/cc-mode.el: Correct a typo.
2006-02-24 Alan Mackenzie <bug-cc-mode@gnu.org>
* progmodes/cc-defs.el: Update the version number to 5.31.3.
2006-02-24 Alan Mackenzie <bug-cc-mode@gnu.org>
* progmodes/cc-cmds.el (c-electric-brace): Fix clean-up
brace-else-brace (error due to mbeg, mend being undefined).
2006-02-24 Alan Mackenzie <bug-cc-mode@gnu.org>
* progmodes/cc-mode.el: File Local variables: Solve the problem
where both `mode' and c-file-offsets are specified: `mode' will
overwrite c-f-o's settings:
(c-remove-any-local-eval-or-mode-variables): new function.
(c-postprocess-file-styles): call the above new function, within
c-tentative-buffer-change, to splat `mode' and `eval' before the
second hack-local-variables.
2006-02-24 Alan Mackenzie <bug-cc-mode@gnu.org>
* progmodes/cc-mode.el:
[Supersedes patch to cc-engine.el 2005-12-16T20:07:49Z!monnier@iro.umontreal.ca]
(c-after-change): Protect the match data with save-match-data. It
was getting corrupted by c-after-change-check-<>-operators.
* cc-defs.el: [Supersedes patch V1.38]:
(top level): Check for a buggy font-lock-compile-keywords ONLY in
XEmacs. GNU Emacs 22 now has a check which would throw an error
here.
* progmodes/cc-awk.el (c-awk-after-change): Protect the match data
with save-match-data. It was being corrupted when Font Lock was
not enabled.
2006-02-24 Alan Mackenzie <bug-cc-mode@gnu.org>
* progmodes/cc-langs.el (c-mode-menu): Add menu items for Electric
Mode and Subword Mode.
* progmodes/cc-engine.el (c-beginning-of-statment-1): Distinguish
real labels ("case 1:" or "foo:") from non-labels ("public:").
(c-forward-objc-directive): Replace c-forward-token-2 with crude
coding; c-f-t-2 doesn't move over a token at EOB.
* progmodes/cc-defs.el (c-version): Update version number to
5.31.2
* progmodes/cc-cmds.el, cc-mode.el, cc-engine.el
(c-update-modeline): Concatenate the minor mode indicators
directly onto mode-name, removing c-submode-indicators.
Sometimes, c-s-i got separated from the mode name on the mode
line.
* progmodes/cc-cmds.el (c-electric-brace, c-electric-semi&comma,
c-electric-colon): Correct doc-strings: "/ln" -> "/la".
2006-02-24 Martin Stjernholm <bug-cc-mode@gnu.org>
* progmodes/cc-langs.el (c-make-init-lang-vars-fun): Improved the
error message when there's an evaluation error to show whether
it's loaded from source or not.
(c-filter-ops): Made it available at runtime too to work when
`c-make-init-lang-vars-fun' needs to evaluate from source.
2006-02-24 Juanma Barranquero <lekktu@gmail.com>
* help.el (help): Revert last part of 2006-02-23 change (deletion
......@@ -5064,7 +5170,7 @@
2005-11-29 Michael Kifer <kifer@cs.stonybrook.edu>
* ediff-wind (ediff-setup-control-frame, ediff-make-wide-display):
* ediff-wind.el (ediff-setup-control-frame, ediff-make-wide-display):
Preserve user position.
2005-11-28 Luc Teirlinck <teirllm@auburn.edu>
......@@ -5837,13 +5943,13 @@
2005-11-15 Michael Kifer <kifer@cs.stonybrook.edu>
* viper-utils (viper-non-word-characters-reformed-vi): Quote `-' in
string.
* viper-utils.el (viper-non-word-characters-reformed-vi):
Quote `-' in string.
* viper.el (viper-emacs-state-mode-list): Ensure that
rcirc-mode buffers come up in Emacs state.
* ediff-util (ediff-make-temp-file): Use proper file-name-handler
* ediff-util.el (ediff-make-temp-file): Use proper file-name-handler
operation.
2005-11-15 Dan Nicolaescu <dann@ics.uci.edu>
......
......@@ -1565,7 +1565,7 @@
Move rmail-delete-after-output from rmail.el.
Flush rmail-mmdf-inbox-list and rmail-make-summary-line-function.
* mail-utils (mail-strip-quoted-names):
* mail-utils.el (mail-strip-quoted-names):
Delete leading and trailing whitespace.
1985-10-19 Richard M. Stallman (rms@mit-prep)
......
......@@ -2916,7 +2916,7 @@
(comment-valid-prefix-p): Rename from comment-valid-prefix
and fix to actually use its argument.
* tex-mode (tex-mode-syntax-table): ~ is not whitespace.
* tex-mode.el (tex-mode-syntax-table): ~ is not whitespace.
(tex-guess-mode): Add `renewcommand'.
(tex-mode): Move the autoload to get the correct docstring and usage.
......@@ -6170,7 +6170,7 @@
Changes from 2002-02-28:
* antlr-mode: Version 2.2 is released.
* antlr-mode.el: Version 2.2 is released.
* antlr-mode.el (antlr): Moved to SourceForge.net
......
......@@ -1181,25 +1181,19 @@ it doesn't interfere with other minibuffer usage.")
(defun ido-save-history ()
"Save ido history and cache information between sessions."
(interactive)
(if (and ido-last-directory-list ido-save-directory-list-file)
(save-excursion
(save-window-excursion
(if (find-buffer-visiting ido-save-directory-list-file)
(kill-buffer (find-buffer-visiting ido-save-directory-list-file)))
(if (file-exists-p ido-save-directory-list-file)
(delete-file ido-save-directory-list-file))
(set-buffer (let ((enable-local-variables nil))
(find-file-noselect ido-save-directory-list-file t)))
(goto-char (point-min))
(delete-region (point-min) (point-max))
(ido-pp 'ido-last-directory-list)
(ido-pp 'ido-work-directory-list)
(ido-pp 'ido-work-file-list)
(ido-pp 'ido-dir-file-cache "\n\n ")
(insert "\n")
(let ((version-control 'never))
(when (and ido-last-directory-list ido-save-directory-list-file)
(let ((buf (get-buffer-create " *ido session*"))
(version-control 'never))
(unwind-protect
(with-current-buffer buf
(erase-buffer)
(ido-pp 'ido-last-directory-list)
(ido-pp 'ido-work-directory-list)
(ido-pp 'ido-work-file-list)
(ido-pp 'ido-dir-file-cache "\n\n ")
(insert "\n")
(write-file ido-save-directory-list-file nil))
(kill-buffer (current-buffer))))))
(kill-buffer buf)))))
(defun ido-load-history (&optional arg)
"Load ido history and cache information from previous session.
......@@ -1209,18 +1203,18 @@ With prefix argument, reload history unconditionally."
(let ((file (expand-file-name ido-save-directory-list-file))
buf)
(when (file-readable-p file)
(save-excursion
(save-window-excursion
(setq buf (set-buffer (let ((enable-local-variables nil))
(find-file-noselect file))))
(goto-char (point-min))
(condition-case nil
(setq ido-last-directory-list (read (current-buffer))
ido-work-directory-list (read (current-buffer))
ido-work-file-list (read (current-buffer))
ido-dir-file-cache (read (current-buffer)))
(error nil))))
(kill-buffer buf))))
(setq buf (get-buffer-create " *ido session*"))
(unwind-protect
(with-current-buffer buf
(erase-buffer)
(insert-file-contents file)
(condition-case nil
(setq ido-last-directory-list (read (current-buffer))
ido-work-directory-list (read (current-buffer))
ido-work-file-list (read (current-buffer))
ido-dir-file-cache (read (current-buffer)))
(error nil)))
(kill-buffer buf)))))
(ido-wash-history))
(defun ido-wash-history ()
......
;;; cc-align.el --- custom indentation functions for CC Mode
;; Copyright (C) 1985,1987,1992-2003, 2004, 2005, 2006
;; Free Software Foundation, Inc.
;; Copyright (C) 1985,1987,1992-2003, 2004, 2005, 2006 Free Software
;; Foundation, Inc.
;; Authors: 1998- Martin Stjernholm
;; 1992-1999 Barry A. Warsaw
......
;;; cc-awk.el --- AWK specific code within cc-mode.
;; Copyright (C) 1988,94,96,2000, 2001, 2002, 2003, 2004, 2005, 2006
;; Free Software Foundation, Inc.
;; Copyright (C) 1988,94,96,2000, 2001, 2002, 2003, 2004, 2005, 2006 Free
;; Software Foundation, Inc.
;; Author: Alan Mackenzie <acm@muc.de> (originally based on awk-mode.el)
;; Maintainer: FSF
......@@ -804,7 +804,7 @@
(defun c-awk-end-of-change-region (beg end old-len)
;; Find the end of the region which needs to be font-locked after a change.
;; This is the end of the logical line on which the change happened, either
;; as it was before the change, or as it is now, which ever is later.
;; as it was before the change, or as it is now, whichever is later.
;; N.B. point is left undefined.
;;
;; This function might do hidden buffer changes.
......@@ -822,11 +822,12 @@
(unless (and (boundp 'font-lock-mode) font-lock-mode)
(save-restriction
(save-excursion
(setq end (c-awk-end-of-change-region beg end old-len))
(c-awk-beginning-of-logical-line beg)
(c-save-buffer-state nil ; So that read-only status isn't affected.
(save-match-data
(setq end (c-awk-end-of-change-region beg end old-len))
(c-awk-beginning-of-logical-line beg)
(c-save-buffer-state nil ; So that read-only status isn't affected.
; (e.g. when first loading the buffer)
(c-awk-set-syntax-table-properties end))))))
(c-awk-set-syntax-table-properties end)))))))
;; ACM 2002/5/25. When font-locking is invoked by a buffer change, the region
;; specified by the font-lock after-change function must be expanded to
......
;;; cc-bytecomp.el --- compile time setup for proper compilation
;; Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006
;; Free Software Foundation, Inc.
;; Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software
;; Foundation, Inc.
;; Author: Martin Stjernholm
;; Maintainer: bug-cc-mode@gnu.org
......
;;; cc-cmds.el --- user level commands for CC Mode
;; Copyright (C) 1985,1987,1992-2003, 2004, 2005, 2006
;; Free Software Foundation, Inc.
;; Copyright (C) 1985, 1987, 1992-2003, 2004, 2005, 2006 Free Software
;; Foundation, Inc.
;; Authors: 1998- Martin Stjernholm
;; 1992-1999 Barry A. Warsaw
......@@ -262,10 +262,17 @@ With universal argument, inserts the analysis as a comment on that line."
(boundp 'c-subword-mode)
(symbol-value 'c-subword-mode))
"w"
""))))
(setq c-submode-indicators
"")))
(bare-mode-name (if (string-match "\\(^[^/]*\\)/" mode-name)
(substring mode-name (match-beginning 1) (match-end 1))
mode-name)))
;; (setq c-submode-indicators
;; (if (> (length fmt) 1)
;; fmt))
(setq mode-name
(if (> (length fmt) 1)
fmt))
(concat bare-mode-name fmt)
bare-mode-name))
(force-mode-line-update)))
(defun c-toggle-syntactic-indentation (&optional arg)
......@@ -365,9 +372,9 @@ inside a literal then the function in the variable
arg
(c-in-literal)))
(funcall c-backspace-function (prefix-numeric-value arg))
(c-hungry-backspace)))
(c-hungry-delete-backwards)))
(defun c-hungry-backspace ()
(defun c-hungry-delete-backwards ()
"Delete the preceding character or all preceding whitespace
back to the previous non-whitespace character.
See also \\[c-hungry-delete-forward]."
......@@ -378,6 +385,8 @@ See also \\[c-hungry-delete-forward]."
(delete-region (point) here)
(funcall c-backspace-function 1))))
(defalias 'c-hungry-backspace 'c-hungry-delete-backwards)
(defun c-electric-delete-forward (arg)
"Delete the following character or whitespace.
If `c-hungry-delete-key' is non-nil (indicated by \"/h\" on the mode
......@@ -396,7 +405,7 @@ is called."
(defun c-hungry-delete-forward ()
"Delete the following character or all following whitespace
up to the next non-whitespace character.
See also \\[c-hungry-backspace]."
See also \\[c-hungry-delete-backwards]."
(interactive)
(let ((here (point)))
(c-skip-ws-forward)
......@@ -436,7 +445,7 @@ function to control that."
(if (and (fboundp 'delete-forward-p)
(delete-forward-p))
(c-hungry-delete-forward)
(c-hungry-backspace)))
(c-hungry-delete-backwards)))
(defun c-electric-pound (arg)
"Insert a \"#\".
......@@ -648,7 +657,7 @@ If `c-electric-flag' is non-nil, the brace is not inside a literal and a
numeric ARG hasn't been supplied, the command performs several electric
actions:
\(a) If the auto-newline feature is turned on (indicated by \"/ln\" on
\(a) If the auto-newline feature is turned on (indicated by \"/la\" on
the mode line) newlines are inserted before and after the brace as
directed by the settings in `c-hanging-braces-alist'.
......@@ -752,7 +761,7 @@ settings of `c-cleanup-list' are done."
"{"
"\\=")
nil t))
(delete-region mbeg mend)
(delete-region (match-beginning 0) (match-end 0))
(insert-and-inherit "} else {"))
((and (memq 'brace-elseif-brace c-cleanup-list)
(progn
......@@ -886,7 +895,7 @@ If `c-electric-flag' is non-nil, point isn't inside a literal and a
numeric ARG hasn't been supplied, the command performs several electric
actions:
\(a) When the auto-newline feature is turned on (indicated by \"/ln\" on
\(a) When the auto-newline feature is turned on (indicated by \"/la\" on
the mode line) a newline might be inserted. See the variable
`c-hanging-semi&comma-criteria' for how newline insertion is determined.
......@@ -958,7 +967,7 @@ If `c-electric-flag' is non-nil, the colon is not inside a literal and a
numeric ARG hasn't been supplied, the command performs several electric
actions:
\(a) If the auto-newline feature is turned on (indicated by \"/ln\" on
\(a) If the auto-newline feature is turned on (indicated by \"/la\" on
the mode line) newlines are inserted before and after the colon based on
the settings in `c-hanging-colons-alist'.
......
;;; cc-compat.el --- cc-mode compatibility with c-mode.el confusion
;; Copyright (C) 1985,1987,1992-2003, 2004, 2005, 2006
;; Free Software Foundation, Inc.
;; Copyright (C) 1985,1987,1992-2003, 2004, 2005, 2006 Free Software
;; Foundation, Inc.
;; Authors: 1998- Martin Stjernholm
;; 1994-1999 Barry A. Warsaw
......
;;; cc-defs.el --- compile time definitions for CC Mode
;; Copyright (C) 1985,1987,1992-2003, 2004, 2005, 2006
;; Free Software Foundation, Inc.
;; Copyright (C) 1985,1987,1992-2003, 2004, 2005, 2006 Free Software
;; Foundation, Inc.
;; Authors: 1998- Martin Stjernholm
;; 1992-1999 Barry A. Warsaw
......@@ -71,10 +71,10 @@
(eval-after-load "font-lock"
'(if (and (not (featurep 'cc-fix)) ; only load the file once.
(featurep 'xemacs) ; There is now (2005/12) code in GNU Emacs CVS
; to make the call to f-l-c-k throw an error.
(let (font-lock-keywords)
(condition-case nil
(font-lock-compile-keywords '("\\<\\>"))
(error nil))
(font-lock-compile-keywords '("\\<\\>"))
font-lock-keywords)) ; did the previous call foul this up?
(load "cc-fix")))
......@@ -82,19 +82,18 @@
;; to ensure correct byte compilation.
(eval-when-compile
(if (and (not (featurep 'cc-fix))
(featurep 'xemacs)
(progn
(require 'font-lock)
(let (font-lock-keywords)
(condition-case nil
(font-lock-compile-keywords '("\\<\\>"))
(error nil))
(font-lock-compile-keywords '("\\<\\>"))
font-lock-keywords)))
(cc-load "cc-fix")))
;;; Variables also used at compile time.
(defconst c-version "5.31"
(defconst c-version "5.31.3"
"CC Mode version number.")
(defconst c-version-sym (intern c-version))
......@@ -2041,5 +2040,5 @@ quoted."
(cc-provide 'cc-defs)
;; arch-tag: 3bb2629d-dd84-4ff0-ad39-584be0fe3cda
;;; arch-tag: 3bb2629d-dd84-4ff0-ad39-584be0fe3cda
;;; cc-defs.el ends here
;;; cc-engine.el --- core syntax guessing engine for CC mode
;; Copyright (C) 1985,1987,1992-2003, 2004, 2005, 2006
;; Free Software Foundation, Inc.
;; Copyright (C) 1985,1987,1992-2003, 2004, 2005, 2006 Free Software Foundation,
;; Inc.
;; Authors: 1998- Martin Stjernholm
;; 1992-1999 Barry A. Warsaw
......@@ -179,8 +179,8 @@
(make-variable-buffer-local 'c-auto-newline)
;; Included in the mode line to indicate the active submodes.
(defvar c-submode-indicators nil)
(make-variable-buffer-local 'c-submode-indicators)
;; (defvar c-submode-indicators nil)
;; (make-variable-buffer-local 'c-submode-indicators)
(defun c-calculate-state (arg prevstate)
;; Calculate the new state of PREVSTATE, t or nil, based on arg. If
......@@ -525,14 +525,15 @@ also stop at a continuation clause.
Labels are treated as part of the following statements if
IGNORE-LABELS is non-nil. (FIXME: Doesn't work if we stop at a known
statement start keyword.)
statement start keyword.) Otherwise, each label is treated as a
separate statement.
Macros are ignored unless point is within one, in which case the
content of the macro is treated as normal code. Aside from any normal
statement starts found in it, stop at the first token of the content
in the macro, i.e. the expression of an \"#if\" or the start of the
definition in a \"#define\". Also stop at start of macros before
leaving them.
Macros are ignored \(i.e. skipped over) unless point is within one, in
which case the content of the macro is treated as normal code. Aside
from any normal statement starts found in it, stop at the first token
of the content in the macro, i.e. the expression of an \"#if\" or the
start of the definition in a \"#define\". Also stop at start of
macros before leaving them.
Return 'label if stopped at a label, 'same if stopped at the beginning
of the current statement, 'up if stepped to a containing statement,
......@@ -547,8 +548,9 @@ position if that is less ('same is returned in this case).
NOERROR turns off error logging to `c-parsing-error'.
Normally only ';' is considered to delimit statements, but if
COMMA-DELIM is non-nil then ',' is treated likewise.
Normally only ';' and virtual semicolons are considered to delimit
statements, but if COMMA-DELIM is non-nil then ',' is treated
as a delimiter too.
Note that this function might do hidden buffer changes. See the
comment at the start of cc-engine.el for more info."
......@@ -883,6 +885,7 @@ comment at the start of cc-engine.el for more info."
;; barriers in this round.
(sexp-loop-end-pos pos))
;; The following while goes back one sexp per iteration.
(while
(progn
(unless (c-safe (c-backward-sexp) t)
......@@ -954,7 +957,7 @@ comment at the start of cc-engine.el for more info."
;; Like a C "continue". Analyze the next sexp.
(throw 'loop t)))
sexp-loop-continue-pos)
sexp-loop-continue-pos) ; End of "go back a sexp" loop.
(goto-char sexp-loop-continue-pos)
(setq sexp-loop-end-pos sexp-loop-continue-pos
sexp-loop-continue-pos nil))))
......@@ -969,17 +972,26 @@ comment at the start of cc-engine.el for more info."
;; Handle labels.
(unless (eq ignore-labels t)
(when (numberp c-maybe-labelp)
;; `c-crosses-statement-barrier-p' has found a
;; colon, so we might be in a label now.
(if after-labels-pos
(if (not last-label-pos)
(setq last-label-pos (or tok start)))
(setq after-labels-pos (or tok start)))
(setq c-maybe-labelp t
label-good-pos nil))
(when (and (not label-good-pos)
(looking-at c-nonlabel-token-key))
;; `c-crosses-statement-barrier-p' has found a colon, so we
;; might be in a label now. Have we got a real label
;; (including a case label) or something like C++'s "public:"?
(if (or (not (looking-at c-nonlabel-token-key)) ; proper label
(save-excursion ; e.g. "case 'a':" ?
(and (c-safe (c-backward-sexp) t)
(looking-at "\\<case\\>")))) ; FIXME!!! this is
; wrong for AWK. 2006/1/14.
(progn
(if after-labels-pos ; Have we already encountered a label?
(if (not last-label-pos)
(setq last-label-pos (or tok start)))
(setq after-labels-pos (or tok start)))
(setq c-maybe-labelp t
label-good-pos nil))
(setq c-maybe-labelp nil))) ; bogus "label"
(when (and (not label-good-pos) ; i.e. no invalid "label"'s yet
; been found.
(looking-at c-nonlabel-token-key)) ; e.g. "while :"
;; We're in a potential label and it's the first
;; time we've found something that isn't allowed in
;; one.
......@@ -3993,36 +4005,35 @@ comment at the start of cc-engine.el for more info."
;;
;; This function might do hidden buffer changes.
(save-match-data
(save-excursion
(save-excursion
(goto-char beg)
(when (or (looking-at "[<>]")
(< (skip-chars-backward "<>") 0))
(goto-char beg)
(c-beginning-of-current-token)
(when (and (< (point) beg)
(looking-at c-<>-multichar-token-regexp)
(< beg (setq beg (match-end 0))))
(while (progn (skip-chars-forward "^<>" beg)
(< (point) beg))
(c-clear-char-property (point) 'syntax-table)
(forward-char))))
(when (< beg end)
(goto-char end)
(when (or (looking-at "[<>]")
(< (skip-chars-backward "<>") 0))
(goto-char beg)
(goto-char end)
(c-beginning-of-current-token)
(when (and (< (point) beg)
(when (and (< (point) end)
(looking-at c-<>-multichar-token-regexp)
(< beg (setq beg (match-end 0))))
(while (progn (skip-chars-forward "^<>" beg)
(< (point) beg))
(< end (setq end (match-end 0))))
(while (progn (skip-chars-forward "^<>" end)
(< (point) end))
(c-clear-char-property (point) 'syntax-table)
(forward-char))))
(when (< beg end)
(goto-char end)
(when (or (looking-at "[<>]")
(< (skip-chars-backward "<>") 0))
(goto-char end)
(c-beginning-of-current-token)
(when (and (< (point) end)
(looking-at c-<>-multichar-token-regexp)
(< end (setq end (match-end 0))))
(while (progn (skip-chars-forward "^<>" end)
(< (point) end))
(c-clear-char-property (point) 'syntax-table)
(forward-char))))))))
(forward-char)))))))