Mercurial > emacs
view admin/make-announcement @ 106395:f2b36fb84bf7
Enhance `c-parse-state' to run efficiently in "brace desserts".
* progmodes/cc-mode.el (c-basic-common-init): Call
c-state-cache-init.
(c-neutralize-syntax-in-and-mark-CPP): Renamed from
c-extend-and-neutralize-syntax-in-CPP. Mark each CPP construct by
placing `category' properties value 'c-cpp-delimiter at its
boundaries.
* progmodes/cc-langs.el (c-before-font-lock-function):
c-extend-and-neutralize-syntax-in-CPP has been renamed
c-neutralize-syntax-in-and-mark-CPP.
* progmodes/cc-fonts.el (c-cpp-matchers): Mark template brackets
with `category' properties now, not `syntax-table' ones.
* progmodes/cc-engine.el (c-syntactic-end-of-macro): A new
enhanced (but slower) version of c-end-of-macro that won't land
inside a literal or on another awkward character.
(c-state-cache-too-far, c-state-cache-start)
(c-state-nonlit-pos-interval, c-state-nonlit-pos-cache)
(c-state-nonlit-pos-cache-limit, c-state-point-min)
(c-state-point-min-lit-type, c-state-point-min-lit-start)
(c-state-min-scan-pos, c-state-brace-pair-desert)
(c-state-old-cpp-beg, c-state-old-cpp-end): New constants and
buffer local variables.
(c-state-literal-at, c-state-lit-beg)
(c-state-cache-non-literal-place, c-state-get-min-scan-pos)
(c-state-mark-point-min-literal, c-state-cache-top-lparen)
(c-state-cache-top-paren, c-state-cache-after-top-paren)
(c-get-cache-scan-pos, c-get-fallback-scan-pos)
(c-state-balance-parens-backwards, c-parse-state-get-strategy)
(c-renarrow-state-cache)
(c-append-lower-brace-pair-to-state-cache)
(c-state-push-any-brace-pair, c-append-to-state-cache)
(c-remove-stale-state-cache)
(c-remove-stale-state-cache-backwards, c-state-cache-init)
(c-invalidate-state-cache-1, c-parse-state-1)
(c-invalidate-state-cache): New defuns/defmacros/defsubsts.
(c-parse-state): Enhanced and refactored.
(c-debug-parse-state): Amended to deal with all the new variables.
* progmodes/cc-defs.el (c-<-as-paren-syntax, c-mark-<-as-paren)
(c->-as-paren-syntax, c-mark->-as-paren, c-unmark-<->-as-paren):
modify to use category text properties rather than syntax-table
ones.
(c-suppress-<->-as-parens, c-restore-<->-as-parens): new defsubsts
to switch off/on the syntactic paren property of C++ template
delimiters using the category property.
(c-with-<->-as-parens-suppressed): Macro to invoke code with
template delims suppressed.
(c-cpp-delimiter, c-set-cpp-delimiters, c-clear-cpp-delimiters):
New constant/macros which apply category properties to the start
and end of preprocessor constructs.
(c-comment-out-cpps, c-uncomment-out-cpps): defsubsts which
"comment out" the syntactic value of characters in preprocessor
constructs.
(c-with-cpps-commented-out)
(c-with-all-but-one-cpps-commented-out): Macros to invoke code
with characters in all or all but one preprocessor constructs
"commented out".
author | Alan Mackenzie <acm@muc.de> |
---|---|
date | Thu, 03 Dec 2009 16:02:10 +0000 |
parents | ce88a631c161 |
children | b92c3979701c |
line wrap: on
line source
#! /bin/bash ## Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 ## Free Software Foundation, Inc. ## Author: Francesco Potorti` <pot@gnu.org> ## This file is part of GNU Emacs. ## GNU Emacs is free software: you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation, either version 3 of the License, or ## (at your option) any later version. ## GNU Emacs is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. ### Code: if [ $# -ne 2 ]; then echo "usage: $0 <old version number> <new version number>" >&2 exit 1 fi if [ ! -f INSTALL -o ! -f configure -o ! -d lib-src ]; then echo "this script should be run in the emacs root directory" >&2 exit 2 fi OLD=$1 NEW=$2 outfile=emacs-$NEW.announce oldtag=EMACS_PRETEST_$(echo $OLD|tr . _) newtag=EMACS_PRETEST_$(echo $NEW|tr . _) if [ -f $outfile ]; then echo "$outfile exists" echo -n "interrupt to abort, ENTER to overwrite "; read answer fi echo -n "tag name for OLD emacs version $OLD [$oldtag]: "; read answer if [ "$answer" ]; then oldtag=$answer; fi echo -n "tag name for NEW emacs version $NEW [$newtag]: "; read answer if [ "$answer" ]; then newtag=$answer; fi exec > $outfile cat <<EOF There is a new pretest available in <ftp://alpha.gnu.org/gnu/emacs/pretest/emacs-$NEW.tar.gz> Please report results from compiling and running the pretest to <emacs-pretest-bug@gnu.org>. Your feedback is necessary for us to know on which platforms the pretest has been tried. If you have the tars from the previous pretest, and you have the \`xdelta' utility, you can instead download the much smaller <ftp://alpha.gnu.org/gnu/emacs/pretest/emacs-$OLD-$NEW.xdelta> You can use a command like $ xdelta patch XDELTA PREVIOUS-TAR CURRENT-TAR to generate the new tar from the old one, where XDELTA is the xdelta file you downloaded, PREVIOUS-TAR is the tar file from the previous pretest, and CURRENT-TAR is the name of the tar file you downloaded. Information about xdelta can be found on the GNU ftp site, in /non-gnu/xdelta.README. Changes since $OLD EOF make-changelog-diff $oldtag $newtag echo " announcement created in $outfile" >&2 # arch-tag: 605e00c7-7330-4c45-81e1-2ed53a13c39f