Merge from emacs--rel--22

Revision: emacs@sv.gnu.org/emacs--devo--0--patch-1074
This commit is contained in:
Miles Bader 2008-02-24 10:09:07 +00:00
commit b03f96dc5a
71 changed files with 1500 additions and 705 deletions

View file

@ -6,6 +6,10 @@
* README.unicode: Split into admin/notes/unicode,font-backend and
remove.
2008-02-10 Matthew Luckie <mjl@luckie.org.nz> (tiny change)
* configure.in (arm*-*-freebsd*): Added.
2008-02-09 Dan Nicolaescu <dann@ics.uci.edu>
* configure.in (LIBX11_MACHINE, HAVE_XFREE386): Remove code
@ -1394,7 +1398,7 @@
2003-04-28 Francesco Potort,Al(B <pot@gnu.org>
* configure.in: Undo last (RMS') change, as it is useless, per
* configure.in: Undo last (RMS') change, as it is useless, per
Dave Love.
2003-04-08 Richard M. Stallman <rms@gnu.org>
@ -1565,7 +1569,7 @@
2002-10-30 Dave Love <fx@gnu.org>
* configure.in: Require autoconf 2.53. Test for pty.h,
* configure.in: Require autoconf 2.53. Test for pty.h,
sys/mman.h, sys/param.h, mremap, memmove.
(AH_BOTTOM): Maybe include strings.h. Add local variables for mode.
(AC_PROG_YACC): Delete.
@ -3352,7 +3356,7 @@
1997-04-09 Marcus G. Daniels <marcus@cathcart.sysc.pdx.edu>
* configure.in (doug_lea_malloc): First check for SYSTEM_MALLOC,
* configure.in (doug_lea_malloc): First check for SYSTEM_MALLOC,
in case it is desirable to disable the GNU malloc features with glibc.
1997-04-08 Marcus G. Daniels <marcus@cathcart.sysc.pdx.edu>

1
configure vendored
View file

@ -2357,6 +2357,7 @@ case "${canonical}" in
opsys=freebsd
case "${canonical}" in
alpha*-*-freebsd*) machine=alpha ;;
arm*-*-freebsd*) machine=arm ;;
ia64-*-freebsd*) machine=ia64 ;;
sparc64-*-freebsd*) machine=sparc ;;
powerpc-*-freebsd*) machine=macppc ;;

View file

@ -285,6 +285,7 @@ case "${canonical}" in
opsys=freebsd
case "${canonical}" in
alpha*-*-freebsd*) machine=alpha ;;
arm*-*-freebsd*) machine=arm ;;
ia64-*-freebsd*) machine=ia64 ;;
sparc64-*-freebsd*) machine=sparc ;;
powerpc-*-freebsd*) machine=macppc ;;

View file

@ -20,6 +20,11 @@
* objects.texi (Equality Predicates):
Mention equal-including-properties.
2008-02-07 Richard Stallman <rms@gnu.org>
* windows.texi (Window Start): Mention the feature of moving
window-start to start of line.
2008-02-07 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
* keymaps.texi (Tool Bar): Document rtl property.

View file

@ -1229,6 +1229,15 @@ is called the @dfn{display-start} position of the window (or just the
at the upper left corner of the window. It is usually, but not
inevitably, at the beginning of a text line.
After switching windows or buffers, and in some other cases, if the
window start is in the middle of a line, Emacs adjusts the window
start to the start of a line. This prevents certain operations from
leaving the window start at a meaningless point within a line. This
feature may interfere with testing some Lisp code by executing it
using the commands of Lisp mode, because they trigger this
readjustment. To test such code, put it into a command and bind the
command to a key.
@defun window-start &optional window
@cindex window top line
This function returns the display-start position of window
@ -1296,10 +1305,10 @@ However, if you specify the start position with this function using
screen. If this does place point off screen, the display routines move
point to the left margin on the middle line in the window.
For example, if point @w{is 1} and you set the start of the window @w{to
2}, then point would be ``above'' the top of the window. The display
routines will automatically move point if it is still 1 when redisplay
occurs. Here is an example:
For example, if point @w{is 1} and you set the start of the window
@w{to 37}, the start of the next line, point will be ``above'' the top
of the window. The display routines will automatically move point if
it is still 1 when redisplay occurs. Here is an example:
@example
@group
@ -1321,15 +1330,17 @@ occurs. Here is an example:
@group
(set-window-start
(selected-window)
(1+ (window-start)))
@result{} 2
(save-excursion
(goto-char 1)
(forward-line 1)
(point)))
@result{} 37
@end group
@group
;; @r{Here is what @samp{foo} looks like after executing}
;; @r{the @code{set-window-start} expression.}
---------- Buffer: foo ----------
his is the contents of buffer foo.
2
3
@point{}4

View file

@ -1,3 +1,8 @@
2008-02-05 Juanma Barranquero <lekktu@gmail.com>
* org.texi (Setting tags, In-buffer settings):
* rcirc.texi (rcirc commands): Replace `legal' with `valid'.
2008-02-24 Katsumi Yamaoka <yamaoka@jpl.org>
* gnus-news.texi: Mention that spaces and tabs are allowed in the

View file

@ -3255,7 +3255,7 @@ these lines to activate any changes.
If at least one tag has a selection key, pressing @kbd{C-c C-c} will
automatically present you with a special interface, listing inherited
tags, the tags of the current headline, and a list of all legal tags
tags, the tags of the current headline, and a list of all valid tags
with corresponding keys@footnote{Keys will automatically be assigned to
tags which have no configured keys.}. In this interface, you can use
the following keys:
@ -7367,7 +7367,7 @@ constcgs @r{@file{constants.el} should use the c-g-s unit system}
constSI @r{@file{constants.el} should use the SI unit system}
@end example
@item #+TAGS: TAG1(c1) TAG2(c2)
These lines (several such lines are allowed) specify the legal tags in
These lines (several such lines are allowed) specify the valid tags in
this file, and (potentially) the corresponding @emph{fast tag selection}
keys. The corresponding variable is @code{org-tag-alist}.
@item #+TBLFM:

View file

@ -305,7 +305,7 @@ IRC.
@end example
This will try to change your nick to @code{"alex}. Usually this will
fail because the double quote character is not a legal character for
fail because the double quote character is not a valid character for
nicks.
@cindex case insensitive commands

View file

@ -24,6 +24,8 @@ Adrian Colley: changed aix3-2.h
Adrian Lanz: changed mail-source.el spam.el
,AF(Bvar Arnfj,Av(Br,Ap(B Bjarmason: changed rcirc.el
Agust,Am(Bn Mart,Am(Bn: changed flyspell.el ispell.el
Aidan Kehoe: changed lread.c mm-util.el erc.el latin-ltx.el objects.texi
@ -343,7 +345,7 @@ Cheng Gao: changed MORE.STUFF flymake.el tips.texi url-dired.el
Chong Yidong: changed cus-edit.el files.el simple.el longlines.el xdisp.c
display.texi custom.el files.texi image-mode.el info.el keyboard.c
compile.el custom.texi text.texi xterm.c frames.texi image.c mouse.el
misc.texi startup.el wid-edit.el and 300 other files
misc.texi startup.el wid-edit.el and 301 other files
Chris Hanson: changed xscheme.el scheme.el xterm.c hpux.h x11term.c
hp9000s300.h keyboard.c process.c texinfmt.el emacsclient.c sort.el
@ -400,6 +402,8 @@ and changed calc.el replace.el update-game-score.c calc-ext.el
Craig Mcdaniel: changed sheap.c
D. E. Evans: changed basic.texi
Daiki Ueno: wrote pgg-def.el pgg-gpg.el pgg-parse.el pgg-pgp.el
pgg-pgp5.el pgg.el starttls.el
and changed gnus-sum.el mml2015.el faces.el gnus-agent.el gnus-srvr.el
@ -423,9 +427,9 @@ Dan Christensen: changed gnus-sum.el nnfolder.el gnus-art.el
Dan Nicolaescu: wrote iris-ansi.el romanian.el
and changed xterm.el term.el hideshow.el vc-hg.el files.el isearch.el
sh-script.el icon.el lisp.h vc.el cus-edit.el faces.el font-lock.el
grep.el verilog-mode.el diff-mode.el eterm-color.ti ibuffer.el
replace.el rxvt.el term.c and 187 other files
sh-script.el icon.el lisp.h vc.el verilog-mode.el cus-edit.el faces.el
font-lock.el grep.el diff-mode.el eterm-color.ti ibuffer.el replace.el
rxvt.el term.c and 187 other files
Daniel Brockman: changed cus-start.el format-spec.el ibuffer.el rcirc.el
@ -667,7 +671,7 @@ Eli Zaretskii: wrote codepage.el rxvt.el tty-colors.el
and changed msdos.c Makefile.in makefile.w32-in files.el info.el fileio.c
startup.el mainmake.v2 rmail.el config.bat menu-bar.el simple.el
pc-win.el msdos.h internal.el xfaces.c emacs.c frame.c INSTALL dosfns.c
mule-cmds.el and 536 other files
mule-cmds.el and 537 other files
Emanuele Giaquinta: changed rxvt.el configure.in etags.c frame.el
gnus-faq.texi sh-script.el text.texi
@ -870,7 +874,7 @@ Glenn Morris: changed f90.el diary-lib.el calendar.el fortran.el
calendar.texi COPYING appt.el Makefile.in files.el sh-script.el
timeclock.el cal-menu.el configure.in simple.el tex-mode.el calc.texi
complete.el fr-refcard.tex orgcard.tex programs.texi startup.el
and 245 other files
and 247 other files
Glynn Clements: wrote gamegrid.el snake.el tetris.el
@ -1308,8 +1312,8 @@ and changed files.el perl-mode.el
Juanma Barranquero: changed makefile.w32-in subr.el faces.el files.el
help-fns.el bs.el w32fns.c buffer.c simple.el emacsclient.c replace.el
eval.c org.el idlwave.el ido.el process.c vhdl-mode.el window.c xdisp.c
allout.el cperl-mode.el and 651 other files
eval.c org.el desktop.el idlwave.el ido.el process.c vhdl-mode.el
window.c xdisp.c allout.el and 658 other files
Juergen Hoetzel: changed url-handlers.el
@ -1325,8 +1329,8 @@ Jure Cuhalev: changed ispell.el
Juri Linkov: changed info.el simple.el isearch.el replace.el compile.el
faces.el display.texi grep.el descr-text.el cus-edit.el dired.el
dired-aux.el edebug.el compare-w.el files.el lisp-mode.el lisp.el
man.el menu-bar.el modes.texi mule.el and 224 other files
dired-aux.el edebug.el startup.el compare-w.el desktop.el files.el
lisp-mode.el lisp.el man.el menu-bar.el and 224 other files
Justin Sheehy: changed gnus-sum.el nntp.el
@ -1561,8 +1565,8 @@ Lawrence Mitchell: wrote erc-backend.el erc-log.el
and changed erc.el erc-match.el erc-nets.el erc-nickserv.el erc-button.el
erc-compat.el erc-dcc.el erc-fill.el erc-list.el erc-track.el Makefile
erc-autoaway.el erc-autojoin.el erc-bbdb.el erc-ezbounce.el erc-menu.el
erc-netsplit.el erc-nicklist.el erc-notify.el erc-sound.el subr.el
tempo.el
erc-netsplit.el erc-nicklist.el erc-notify.el erc-sound.el objects.texi
and 3 other files
Lawrence R. Dodd: wrote dired-x.el
and changed fortran.el ispell.el sendmail.el cmuscheme.el comint.el
@ -1729,7 +1733,7 @@ Martin Neitzel: changed sc.el
Martin Rudalics: changed cus-start.el cus-edit.el files.el wid-edit.el
window.el flyspell.el font-lock.el mouse.el syntax.c xdisp.c compile.el
complete.el dired.el frame.c frame.el insdel.c ispell.el keyboard.c
macmenu.c macterm.c msdos.c and 64 other files
macmenu.c macterm.c msdos.c and 65 other files
Martin Stjernholm: wrote cc-bytecomp.el
and changed cc-engine.el cc-cmds.el cc-langs.el cc-defs.el cc-mode.el
@ -1778,6 +1782,8 @@ Matt Simmons: changed message.el
Matt Swift: changed compile.el dired.el editfns.c lisp-mode.el
mm-decode.el outline.el rx.el simple.el startup.el
Matthew Luckie: changed configure.in
Matthew Mundell: changed calendar.texi diary-lib.el files.texi
type-break.el debugging.texi display.texi edebug.texi editfns.c eval.c
fileio.c frames.texi help.texi internals.texi modes.texi nonascii.texi
@ -1796,9 +1802,9 @@ Max Froumentin: changed gnus-art.el mml.el
Michael Albinus: wrote tramp-ftp.el tramp-smb.el
and changed tramp.el tramp.texi tramp-vc.el ange-ftp.el files.el
tramp-util.el files.texi nnml.el tramp-uu.el trampver.el vc.el
dired-x.el dired.el faq.texi ffap.el find-dired.el locate.el mini.texi
rcompile.el socks.el tramp*.el and 4 other files
tramp-util.el trampver.el files.texi nnml.el tramp-uu.el trampver.texi
vc.el dired-x.el dired.el faq.texi ffap.el find-dired.el locate.el
mini.texi rcompile.el socks.el and 4 other files
Michael Ben-Gershon: changed acorn.h configure.in riscix1-1.h riscix1-2.h
unexec.c
@ -1832,9 +1838,9 @@ Michael Kifer: wrote cal-x.el ediff-diff.el ediff-help.el ediff-hook.el
ediff-vers.el ediff-wind.el ediff.el viper-cmd.el viper-ex.el
viper-init.el viper-keym.el viper-macs.el viper-mous.el viper-util.el
viper.el
and changed ediff*.el ediff-merge.el viper*.el ediff-hooks.el menu-bar.el
viper-utils.el appt.el desktop.el ediff-meta.el ediff-nult.el
ediff.texi viper-mouse.el viper.texi
and changed ediff*.el viper*.el ediff-hooks.el ediff-merge.el menu-bar.el
appt.el desktop.el ediff-meta.el ediff-nult.el ediff.texi
viper-mouse.el viper.texi
Michael Mcnamara: wrote verilog-mode.el
@ -2254,7 +2260,7 @@ Richard M. Stallman: wrote [The original GNU Emacs and numerous files]
and changed keyboard.c files.el simple.el xterm.c xdisp.c fileio.c
rmail.el process.c sysdep.c xfns.c buffer.c Makefile.in window.c
configure.in subr.el startup.el emacs.c editfns.c info.el sendmail.el
dispnew.c and 1336 other files
dispnew.c and 1337 other files
Richard Mlynarik: wrote cl-indent.el ebuff-menu.el ehelp.el env.c
rfc822.el terminal.el yow.el
@ -2464,9 +2470,9 @@ Stefan Monnier: wrote bibtex-style.el bibtex.el css-mode.el cvs-status.el
diff-mode.el log-edit.el log-view.el pcvs-defs.el pcvs-info.el
pcvs-parse.el pcvs-util.el reveal.el smerge-mode.el vc-mtn.el
and changed vc.el font-lock.el pcvs.el newcomment.el subr.el lisp.h
keyboard.c tex-mode.el fill.el keymap.c compile.el vc-hooks.el files.el
simple.el alloc.c easy-mmode.el regex.c syntax.c info.el xdisp.c
sh-script.el and 528 other files
keyboard.c tex-mode.el fill.el keymap.c vc-hooks.el compile.el
simple.el files.el alloc.c easy-mmode.el regex.c syntax.c info.el
xdisp.c sh-script.el and 528 other files
Steinar Bang: changed imap.el
@ -2587,8 +2593,8 @@ Tetsurou Okazaki: changed log-edit.el xterm.c
Theodore Jump: changed w32-win.el w32faces.c
Thien-Thi Nguyen: wrote hideshow.el make-mms-derivative.el
and changed ewoc.el info.el processes.texi zone.el Makefile.in
lisp-mode.el vc.el fileio.c scheme.el text.texi TUTORIAL.it bindat.el
and changed ewoc.el info.el processes.texi vc.el zone.el Makefile.in
lisp-mode.el fileio.c scheme.el text.texi TUTORIAL.it bindat.el
dcl-mode.el display.texi files.el gnus.texi pcvs.el startup.el sysdep.c
vc-rcs.el MORE.STUFF and 134 other files
@ -2688,8 +2694,8 @@ and changed calendar.texi newsticker.texi Makefile.in
Ulrich Leodolter: changed w32proc.c
Ulrich Mueller: changed gud.el ChgPane.c ChgSel.c Makefile.in
XMakeAssoc.c case-table.el files.el fortran.el iso-acc.el simple.el
sysdep.c
XMakeAssoc.c case-table.el files.el fortran.el iso-acc.el
msdog-xtra.texi simple.el sysdep.c
Ulrik Vieth: wrote meta-mode.el
and changed files.el
@ -2716,7 +2722,7 @@ Vinicius Jose Latorre: wrote delim-col.el ebnf-abn.el ebnf-bnf.el
printing.el ps-mule.el
and changed ps-print.el ps-prin1.ps ps-bdf.el ps-prin0.ps ps-prin3.ps
ps-prin2.ps lpr.el subr.el TUTORIAL.pt_BR easymenu.el loading.texi
ps-print-def.el ps-print.ps ps-print0.ps ps-vars.el
ps-print-def.el ps-print0.ps ps-vars.el
Vivek Dasmohapatra: changed emacs.c erc-backend.el erc.el sh-script.el
xterm.c xterm.h

View file

@ -31,6 +31,11 @@
* NEWS: Clarify EasyPG functionalities.
2008-02-09 Eli Zaretskii <eliz@gnu.org>
* tutorials/TUTORIAL.ru: Remove redundant empty lines, insert a
magic line instead.
2008-02-08 Jan Dj$(Q)Z(Brv <jan.h.d@swipnet.se>
* NEWS: Mention XEmbed and --parent-id.
@ -41,7 +46,8 @@
2008-02-02 Eli Zaretskii <eliz@gnu.org>
* TUTORIAL.ru: Restore copyright years. Update tutorial. Fix wording.
* tutorials/TUTORIAL.ru: Restore copyright years. Update
tutorial. Fix wording.
2008-02-02 Kenichi Handa <handa@ni.aist.go.jp>
@ -77,7 +83,7 @@
2008-02-01 Kenichi Handa <handa@m17n.org>
* TUTORIAL.es: Add local variable coding: latin-1.
* tutorials/TUTORIAL.es: Add local variable coding: latin-1.
2008-02-01 Kenichi Handa <handa@m17n.org>

View file

@ -85,6 +85,11 @@ customize it with the new option `desktop-load-locked-desktop'. When saving,
desktop.el warns about attempts to overwrite a desktop file if it determines
that the desktop being saved is not an update of the one on disk.
** Compilation mode now correctly respects the value of
`compilation-scroll-output' between invocations. Previously, output
was mistakenly scrolled on compiles after the first. Customize
`compilation-scroll-output' if you want to retain the scrolling.
* New Modes and Packages in Emacs 22.2
** bibtex-style-mode helps you write BibTeX's *.bst files.

View file

@ -2156,14 +2156,13 @@ for menus. Help text is only available in later versions of Windows.
When "ClearType" method is selected as the "method to smooth edges of
screen fonts" (in Display Properties, Appearance tab, under
"Effects"), there are various problems related to display of
characters: 2-pixel trace is left behind when moving overlays, bold
fonts can be hard to read, small portions of some characters could
appear chopped, etc. This happens because, under ClearType,
characters are drawn outside their advertised bounding box. Emacs 21
disabled the use of ClearType, whereas Emacs 22 allows it and has some
code to enlarge the width of the bounding box. Apparently, this
display feature needs more changes to get it 100% right. A workaround
is to disable ClearType.
characters: Bold fonts can be hard to read, small portions of some
characters could appear chopped, etc. This happens because, under
ClearType, characters are drawn outside their advertised bounding box.
Emacs 21 disabled the use of ClearType, whereas Emacs 22 allows it and
has some code to enlarge the width of the bounding box. Apparently,
this display feature needs more changes to get it 100% right. A
workaround is to disable ClearType.
There are problems with display if mouse-tracking is enabled and the
mouse is moved off a frame, over another frame then back over the first
@ -2533,28 +2532,6 @@ Some versions of mingw32 make on some versions of Windows do not seem
to detect the shell correctly. Try "make SHELL=cmd.exe", or if that
fails, try running make from Cygwin bash instead.
*** Building the MS-Windows port with Leim fails in the `leim' directory.
The error message might be something like this:
Converting d:/emacs-21.3/leim/CXTERM-DIC/4Corner.tit to quail-package...
Invalid ENCODE: value in TIT dictionary
NMAKE : fatal error U1077: '"../src/obj-spd/i386/emacs.exe"' : return code
'0xffffffff'
Stop.
This can happen if the Leim distribution is unpacked with a program
which converts the `*.tit' files to DOS-style CR-LF text format. The
`*.tit' files in the leim/CXTERM-DIC directory require Unix-style line
endings to compile properly, because Emacs reads them without any code
or EOL conversions.
The solution is to make sure the program used to unpack Leim does not
change the files' line endings behind your back. The GNU FTP site has
in the `/gnu/emacs/windows' directory a program called `djtarnt.exe'
which can be used to unpack `.tar.gz' and `.zip' archives without
mangling them.
*** Building `ctags' for MS-Windows with the MinGW port of GCC fails.
This might happen due to a bug in the MinGW header assert.h, which

View file

@ -15,23 +15,8 @@ EDIT).
Важное замечание: для завершения сеанса Emacs, наберите C-x C-c (два
символа). Символы ">>" с левой стороны указывают, что вам нужно делать,
чтобы применить команду. Например:
<<Blank lines inserted here by startup of help-with-tutorial>>
[Середина страницы оставлена пустой в учебных целях. Текст продолжается ниже]
>> Теперь нажмите C-v (просмотр следующего экрана) для перемещения на
следующий экран. (Выполните эту команду удерживая клавишу CONTROL и
нажимая v.) Теперь вы должны это сделать еще раз, когда закончите читать

View file

@ -692,7 +692,7 @@ char Errmsg[200]; /* POP errors, at least, can exceed
the original length of 80. */
/*
* The full legal syntax for a POP mailbox specification for movemail
* The full valid syntax for a POP mailbox specification for movemail
* is "po:username:hostname". The ":hostname" is optional; if it is
* omitted, the MAILHOST environment variable will be consulted. Note
* that by the time popmail() is called the "po:" has been stripped

View file

@ -1630,7 +1630,7 @@ pop_close (server)
* Function: pop_trash
*
* Purpose: Like pop_close or pop_quit, but doesn't deallocate the
* memory associated with the server. It is legal to call
* memory associated with the server. It is valid to call
* pop_close or pop_quit after this function has been called.
*/
static void

View file

@ -1,3 +1,186 @@
2008-02-24 Stefan Monnier <monnier@iro.umontreal.ca>
* dired.el (dired-mark-prompt): Don't count/display the t element.
Reported by Carsten Blaauw <it-media.blaauw@daimler.com>.
2008-02-24 Dan Nicolaescu <dann@ics.uci.edu>
* progmodes/verilog-mode.el (eval-when-compile): Don't define
add-submenu.
(verilog-xemacs-menu): Add :keys for C-M-a, C-M-e and C-M-h.
Remove. Move contents to the only use ...
(verilog-menu): ... here.
(verilog-statement-menu): Remove. Move contents to the only use ...
(verilog-stmt-menu): ... here.
(verilog-mark-defun): Simply call mark-defun for emacs.
(occur-pos-list): Declare for byte compiler.
(mode-popup-menu): Don't defvar.
(verilog-add-statement-menu): Remove.
(verilog-mode-hook): Don't add verilog-add-statement-menu.
(verilog-mode): Call easy-menu-add and set mode-popup-menu for
XEmacs.
2008-02-24 Michael McNamara <mac@mail.brushroad.com>
* progmodes/verilog-mode.el (verilog-xemacs-menu): Remove XEmacs
conditional.
(verilog-font-grouping-keywords-face): Make the begin..end
keywords standout more than other verilog keywords.
(verilog-type-font-keywords): Move the begin..end out of this list
to facilitate making them to (potentially) stand out more.
(verilog-backward-token): Fix indent of bare always{_*}?, initial,
function & task blocks.
(verilog-behavioral-block-beg-re): Fix indent of bare always{_*}?,
initial, function & task blocks.
(verilog-forward-sexp): Handle the new "disable fork" statement of
IEEE-1800 Verilog.
(verilog-beg-block-re-ordered): Handle the new "disable fork"
statement of IEEE-1800 Verilog.
(verilog-calc-1): Handle the new "disable fork" statement of
IEEE-1800 Verilog.
(verilog-disable-fork-re): Add const to help handle the new
"disable fork" statement of IEEE-1800 Verilog.
(verilog-declaration-core-re): Add port directions by themselves,
with no qualification, as base item of a declaration.
(verilog-pretty-declarations): Add new flag to ask it to refrain
from printing to the message buffer.
(verilog-pretty-expr): Add a QUIET flag to ask it to refrain from
printing to the message buffer. Improve handling of the many
types of expression line up.
(verilog-just-one-space): Remove printing of an empty message.
(verilog-get-lineup-indent): Rework to support the better handling
of expression lineup for verilog-pretty-expr.
(verilog-auto-wire): Pass the quiet flag to verilog-pretty-expr.
2008-02-24 Alan Mackenzie <acm@muc.de>
* progmodes/cc-mode.el (c-extend-region-for-CPP): Bug fix from
yesterday's commit.
2008-02-24 Nick Roberts <nickrob@snap.net.nz>
* progmodes/gdb-ui.el (gdb-mouse-set-clear-breakpoint): Fall back
to mouse-set-point in buffers that aren't associated with files.
* progmodes/gud.el: Rename menu item to "Show GUD tooltips".
2008-02-24 Alan Mackenzie <acm@muc.de>
Set of changes so that "obtrusive" syntactic elements in a
C/C++/ObjC preprocessor line (e.g. an unbalanced string quote or
unmatched paren) don't interact syntactically with stuff outside
the CPP line.
* progmodes/cc-awk.el (c-awk-beyond-logical-line, c-awk-old-ByLL):
Replace c-awk-end-of-logical-line and c-awk-old-EoLL to solve an
off-by-one bug.
(c-awk-record-region-clear-NL): Replaces c-awk-before-change, with
a bit of refactoring.
(c-awk-extend-and-syntax-tablify-region): Takes some of the
functionality of c-awk-advise-fl-for-awk-region, which has been
refactored away.
* progmodes/cc-defs.el (c-clear-char-property-with-value-function)
(c-clear-char-property-with-value): New function and macro which
remove text-properties `equal' to a supplied value.
* progmodes/cc-engine.el: Comment about text properties amended.
* progmodes/cc-fonts.el (c-cpp-matchers): Make it put regexp
parens around "error\\|warning".
* progmodes/cc-langs.el (c-get-state-before-change-function)
(c-before-font-lock-function, c-anchored-cpp-prefix):
New language variables.
(c-cpp-message-directives): Handle "#warning" in C, C++ and ObjC.
* progmodes/cc-mode.el (c-basic-common-init): C and ObjC now use
syntax-table text properties.
(c-common-init): Call language specific before/after-change
functions at mode initialisation.
(c-new-BEG, c-new-END, c-old-BOM, c-old-EOM): New variables.
(c-extend-region-for-CPP, c-neutralize-CPP-line)
(c-neutralize-syntax-in-CPP): New functions.
(c-before-change, c-after-change): Call the new language specific
change functions defined in cc-langs.el.
(c-advise-fl-for-region): New macro.
(awk-mode): Remove AWK specific stuff which has been refactored
into language independent stuff.
2008-02-24 Nick Roberts <nickrob@snap.net.nz>
* progmodes/gdb-ui.el (gdba): Recreate as an alias for gdb.
(gdb): (Re)set gdb-flush-pending-output to nil here...
(gdb-init-1): ...instead of here (before gdb-prompt).
2008-02-24 Stefan Monnier <monnier@iro.umontreal.ca>
* progmodes/ada-mode.el (ada-font-lock-syntactic-keywords):
Recognize ''' just like any other char-constant.
2008-02-24 Stefan Monnier <monnier@iro.umontreal.ca>
* vc-hooks.el (vc-find-root): Remove initial loop because it's not
careful enough. Detect the uid-change all within the main loop.
2008-02-24 Stefan Monnier <monnier@pastel.home>
* textmodes/sgml-mode.el (sgml-mode): Fix comment syntax.
2008-02-24 Stefan Monnier <monnier@iro.umontreal.ca>
* hilit-chg.el (highlight-save-buffer-state): New macro.
(highlight-save-buffer-state, hilit-chg-set-face-on-change)
(hilit-chg-clear): Use it to preserve the modified-p flag.
(highlight-changes-rotate-faces): Don't mess with the undo-list.
2008-02-24 Stefan Monnier <monnier@iro.umontreal.ca>
* font-lock.el (font-lock-set-defaults): Unset previously set variables
when needed.
2008-02-24 ,AF(Bvar Arnfj,Av(Br,Ap(B Bjarmason <avar@cpan.org> (tiny change)
* net/rcirc.el (rcirc-url-regexp): Replace definition by copying
from gnus-button-url-regexp.
2008-02-24 Eli Zaretskii <eliz@gnu.org>
* progmodes/compile.el (compilation-next-error): Doc fix.
(compilation-find-file): Doc fix.
2008-02-24 Glenn Morris <rgm@gnu.org>
* net/net-utils.el (ipconfig-program, ipconfig-program-options):
Add obsolete aliases to the old names.
2008-02-24 Richard Stallman <rms@gnu.org>
* net/net-utils.el (ifconfig): Rename from ipconfig.
(ipconfig): Alias to ifconfig.
(ifconfig-program): Rename from ipconfig-program.
(ifconfig-program-options): Rename from ipconfig-program-options.
2008-02-24 Michael McNamara <mac@mail.brushroad.com>
* progmodes/verilog-mode.el (verilog-declaration-core-re):
Add port directions by themselves, with no qualification, as base
item of a declaration.
(verilog-pretty-declarations): Add new flag that inhibits printing
to the message buffer.
(verilog-pretty-expr): Add new flag that inhibits printing to the
message buffer. Improve handling of the many types of expression
line up.
(verilog-just-one-space): Don't print an empty message.
(verilog-get-lineup-indent): Rework to support the better handling
of expression lineup for verilog-pretty-expr.
(verilog-auto-wire): Pass the quiet flag to verilog-pretty-expr.
(verilog-mode-version, verilog-mode-release-date): Update.
2008-02-24 Stefan Monnier <monnier@iro.umontreal.ca>
* subr.el (cancel-change-group): Don't move point.
2008-02-23 Markus Triska <markus.triska@gmx.at>
* linum.el (linum-after-config): Update all visible windows.

View file

@ -2386,7 +2386,7 @@
2007-01-26 Vinicius Jose Latorre <viniciusjl@ig.com.br>
* ps-print.ps: Fix background height.
* ps-print.el: Fix background height.
(ps-print-version): New version 6.7.2.
2007-01-26 Eli Zaretskii <eliz@gnu.org>
@ -6104,7 +6104,7 @@
* emulation/viper.el: Bump up version/date of update to reflect the
substantial changes done in August 2006.
* emulation/viper-cmd (viper-next-line-at-bol): Make sure button-at,
* emulation/viper-cmd.el (viper-next-line-at-bol): Make sure button-at,
push-button are defined.
* ediff-util.el (ediff-add-to-history): New function.
@ -18114,7 +18114,7 @@
2005-11-15 Michael Kifer <kifer@cs.stonybrook.edu>
* emulation/viper-utils.el (viper-non-word-characters-reformed-vi):
* emulation/viper-util.el (viper-non-word-characters-reformed-vi):
Quote `-' in string.
* emulation/viper.el (viper-emacs-state-mode-list): Ensure that
@ -20772,7 +20772,7 @@
2005-10-05 Michael Kifer <kifer@cs.stonybrook.edu>
* ediff-merge.el (ediff-merge-region-is-non-clash): New defsubst.
* ediff-merg.el (ediff-merge-region-is-non-clash): New defsubst.
(ediff-merge-region-is-non-clash-to-skip): Previously called
ediff-merge-region-is-non-clash.
@ -21424,7 +21424,7 @@
* emulation/viper-macs.el (ex-map): Better messages.
* emulation/viper-utils.el (viper-beginning-of-field): New function.
* emulation/viper-util.el (viper-beginning-of-field): New function.
* emulation/viper.el: Replace make-variable-buffer-local with
viper-make-variable-buffer-local everywhere, to avoid warnings.
@ -26999,7 +26999,7 @@
2005-05-29 Richard M. Stallman <rms@gnu.org>
* textmoddes/flyspell.el (flyspell-version): Function deleted.
* textmodes/flyspell.el (flyspell-version): Function deleted.
(flyspell-auto-correct-previous-hook): Doc fix.
* jit-lock.el (jit-lock-function, jit-lock-after-change):
@ -30044,7 +30044,7 @@
2005-04-04 Jay Belanger <belanger@truman.edu>
* calc.el (calc-language-alist): Add tags to customization type.
* calc/calc.el (calc-language-alist): Add tags to customization type.
2005-04-03 Luc Teirlinck <teirllm@auburn.edu>

View file

@ -900,7 +900,7 @@ in SYMBOL's list property `theme-value' \(using `custom-push-theme')."
(memq (get symbol 'custom-autoload) '(nil noset)))
;; This symbol needs to be autoloaded, even just for a `set'.
(custom-load-symbol symbol))))
;; Move minor modes and variables with explicit requires to the end.
(setq args
(sort args

View file

@ -2550,8 +2550,10 @@ non-empty directories is allowed."
(if (= 1 count) "" "s"))
(defun dired-mark-prompt (arg files)
;; Return a string for use in a prompt, either the current file
;; name, or the marker and a count of marked files.
"Return a string for use in a prompt, either the current file
name, or the marker and a count of marked files."
;; distinguish-one-marked can cause the first element to be just t.
(if (eq (car files) t) (setq files (cdr files)))
(let ((count (length files)))
(if (= count 1)
(car files)

View file

@ -221,7 +221,7 @@ In interpreted code, this is entirely equivalent to `progn'."
;; verbose t, nil byte-compile-verbose
;; optimize t, nil, source, byte byte-compile-optimize
;; warnings list of warnings byte-compile-warnings
;; Legal elements: (callargs redefine free-vars unresolved)
;; Valid elements: (callargs redefine free-vars unresolved)
;; file-format emacs18, emacs19 byte-compile-compatibility
;;
;; For example, this might appear at the top of a source file:

View file

@ -323,7 +323,7 @@
;; Below is a complete spec for loop, in several parts that correspond
;; to the syntax given in CLtL2. The specs do more than specify where
;; the forms are; it also specifies, as much as Edebug allows, all the
;; syntactically legal loop clauses. The disadvantage of this
;; syntactically valid loop clauses. The disadvantage of this
;; completeness is rigidity, but the "for ... being" clause allows
;; arbitrary extensions of the form: [symbolp &rest &or symbolp form].

View file

@ -1496,7 +1496,7 @@ expressions; a `progn' form will be returned enclosing these forms."
(cond
((symbolp head)
(cond
((null head) nil) ; () is legal.
((null head) nil) ; () is valid.
((eq head 'interactive-p)
;; Special case: replace (interactive-p) with variable
(setq edebug-def-interactive 'check-it)
@ -2076,7 +2076,7 @@ expressions; a `progn' form will be returned enclosing these forms."
;; doesn't handle (a . ,b). The straightforward fix:
;; (backquote-form . [&or nil backquote-form])
;; uses up too much stack space.
;; Note that `(foo . ,@bar) is not legal, so we don't need to handle it.
;; Note that `(foo . ,@bar) is not valid, so we don't need to handle it.
(backquote-form [&rest [&not ","] backquote-form]
. [&or nil backquote-form])
;; If you use dotted forms in backquotes, replace the previous line

View file

@ -2,6 +2,12 @@
* erc.el (erc-notice-face): Fix this face for Emacs 21 users.
2008-02-05 Juanma Barranquero <lekktu@gmail.com>
* erc.el (erc-valid-nick-regexp):
* erc-button.el (erc-button-syntax-table):
* erc-match.el (erc-match-syntax-table): Replace `legal' with `valid'.
2008-02-04 Jeremy Maitin-Shepard <jbms@cmu.edu>
* erc.el (erc-cmd-QUERY): Bind the value of `erc-auto-query' to

View file

@ -239,7 +239,7 @@ PAR is a number of a regexp grouping whose text will be passed to
(modify-syntax-entry ?\\ "w" table)
table)
"Syntax table used when buttonizing messages.
This syntax table should make all the legal nick characters word
This syntax table should make all the valid nick characters word
constituents.")
(defvar erc-button-keys-added nil

View file

@ -256,7 +256,7 @@ current-nick, keyword, pal, dangerous-host, fool"
(modify-syntax-entry ?\\ "w" table)
table)
"Syntax table used when highlighting messages.
This syntax table should make all the legal nick characters word
This syntax table should make all the valid nick characters word
constituents.")
;; Faces:

View file

@ -2428,7 +2428,7 @@ If STRING is nil, the function does nothing."
(setq list (cdr list))))))
(defvar erc-valid-nick-regexp "[]a-zA-Z^[;\\`_{}|][]^[;\\`_{}|a-zA-Z0-9-]*"
"Regexp which matches all legal characters in a IRC nickname.")
"Regexp which matches all valid characters in a IRC nickname.")
(defun erc-is-valid-nick-p (nick)
"Check if NICK is a valid IRC nickname."

View file

@ -35,7 +35,7 @@
;;
;; $ALSO-VAR
;;
;; "-" is a legal part of a variable name.
;; "-" is a valid part of a variable name.
;;
;; $<MYVAR>-TOO
;;

View file

@ -426,7 +426,7 @@ Returned values:
;; (ffap-machine-p "mathcs" 5678 nil 'ping)
;; (ffap-machine-p "foo.bonk" nil nil 'ping)
;; (ffap-machine-p "foo.bonk.com" nil nil 'ping)
(if (or (string-match "[^-[:alnum:].]" host) ; Illegal chars (?)
(if (or (string-match "[^-[:alnum:].]" host) ; Invalid chars (?)
(not (string-match "[^0-9]" host))) ; 1: a number? 2: quick reject
nil
(let* ((domain

View file

@ -302,7 +302,7 @@
;; above for an example of how to bind the keys the way you like.
;;
;; Please note that the keymap is defined the first time this file is
;; loaded. Also note that the only legal way to manipulate the
;; loaded. Also note that the only valid way to manipulate the
;; keymap is to use `define-key'. Don't change it using `setq' or
;; similar!

View file

@ -1785,13 +1785,16 @@ Sets various variables using `font-lock-defaults' (or, if nil, using
(cdr-safe (assq major-mode font-lock-removed-keywords-alist))))
(set (make-local-variable 'font-lock-defaults) defaults)
;; Syntactic fontification?
(when (nth 1 defaults)
(set (make-local-variable 'font-lock-keywords-only) t))
(if (nth 1 defaults)
(set (make-local-variable 'font-lock-keywords-only) t)
(kill-local-variable 'font-lock-keywords-only))
;; Case fold during regexp fontification?
(when (nth 2 defaults)
(set (make-local-variable 'font-lock-keywords-case-fold-search) t))
(if (nth 2 defaults)
(set (make-local-variable 'font-lock-keywords-case-fold-search) t)
(kill-local-variable 'font-lock-keywords-case-fold-search))
;; Syntax table for regexp and syntactic fontification?
(when (nth 3 defaults)
(if (null (nth 3 defaults))
(kill-local-variable 'font-lock-syntax-table)
(set (make-local-variable 'font-lock-syntax-table)
(copy-syntax-table (syntax-table)))
(dolist (selem (nth 3 defaults))
@ -1802,9 +1805,10 @@ Sets various variables using `font-lock-defaults' (or, if nil, using
(mapcar 'identity (car selem))))
(modify-syntax-entry char syntax font-lock-syntax-table)))))
;; Syntax function for syntactic fontification?
(when (nth 4 defaults)
(if (nth 4 defaults)
(set (make-local-variable 'font-lock-beginning-of-syntax-function)
(nth 4 defaults)))
(nth 4 defaults))
(kill-local-variable 'font-lock-beginning-of-syntax-function))
;; Variable alist?
(dolist (x (nthcdr 5 defaults))
(set (make-local-variable (car x)) (cdr x)))

View file

@ -68,7 +68,7 @@
;; > verb. This sentence no verb. This sentence no verb. This
;; > sentence no verb.
;;
;; Unwrapping "You forgot in all your sentences." would be illegal as
;; Unwrapping "You forgot in all your sentences." would be invalid as
;; this part wasn't intended to be cited text.
;; `gnus-article-outlook-unwrap-lines' will only unwrap lines if the resulting
;; citation line will be of a certain maximum length. You can control

View file

@ -515,12 +515,28 @@ the text properties of type `hilit-chg'."
(delete-overlay ov))))))
(hilit-chg-display-changes beg end)))
;; Inspired by font-lock. Something like this should be moved to subr.el.
(defmacro highlight-save-buffer-state (&rest body)
"Bind variables according to VARLIST and eval BODY restoring buffer state."
(declare (indent 0) (debug t))
(let ((modified (make-symbol "modified")))
`(let* ((,modified (buffer-modified-p))
(inhibit-modification-hooks t)
deactivate-mark
;; So we don't check the file's mtime.
buffer-file-name
buffer-file-truename)
(progn
,@body)
(unless ,modified
(restore-buffer-modified-p nil)))))
;;;###autoload
(defun highlight-changes-remove-highlight (beg end)
"Remove the change face from the region between BEG and END.
This allows you to manually remove highlighting from uninteresting changes."
(interactive "r")
(let ((after-change-functions nil))
(highlight-save-buffer-state
(remove-text-properties beg end '(hilit-chg nil))
(hilit-chg-fixup beg end)))
@ -543,38 +559,39 @@ This allows you to manually remove highlighting from uninteresting changes."
(if undo-in-progress
(if (eq highlight-changes-mode 'active)
(hilit-chg-fixup beg end))
(if (and (= beg end) (> leng-before 0))
;; deletion
(progn
;; The eolp and bolp tests are a kludge! But they prevent
;; rather nasty looking displays when deleting text at the end
;; of line, such as normal corrections as one is typing and
;; immediately makes a correction, and when deleting first
;; character of a line.
;;; (if (= leng-before 1)
;;; (if (eolp)
;;; (setq beg-decr 0 end-incr 0)
;;; (if (bolp)
;;; (setq beg-decr 0))))
;;; (setq beg (max (- beg beg-decr) (point-min)))
(setq end (min (+ end end-incr) (point-max)))
(setq type 'hilit-chg-delete))
;; Not a deletion.
;; Most of the time the following is not necessary, but
;; if the current text was marked as a deletion then
;; the old overlay is still in effect, so if we add some
;; text then remove the deletion marking, but set it to
(highlight-save-buffer-state
(if (and (= beg end) (> leng-before 0))
;; deletion
(progn
;; The eolp and bolp tests are a kludge! But they prevent
;; rather nasty looking displays when deleting text at the end
;; of line, such as normal corrections as one is typing and
;; immediately makes a correction, and when deleting first
;; character of a line.
;; (if (= leng-before 1)
;; (if (eolp)
;; (setq beg-decr 0 end-incr 0)
;; (if (bolp)
;; (setq beg-decr 0))))
;; (setq beg (max (- beg beg-decr) (point-min)))
(setq end (min (+ end end-incr) (point-max)))
(setq type 'hilit-chg-delete))
;; Not a deletion.
;; Most of the time the following is not necessary, but
;; if the current text was marked as a deletion then
;; the old overlay is still in effect, so if we add some
;; text then remove the deletion marking, but set it to
;; changed otherwise its highlighting disappears.
(if (eq (get-text-property end 'hilit-chg) 'hilit-chg-delete)
(progn
(remove-text-properties end (+ end 1) '(hilit-chg nil))
(put-text-property end (+ end 1) 'hilit-chg 'hilit-chg)
(if (eq highlight-changes-mode 'active)
(hilit-chg-fixup beg (+ end 1))))))
(unless no-property-change
(put-text-property beg end 'hilit-chg type))
(if (or (eq highlight-changes-mode 'active) no-property-change)
(hilit-chg-make-ov type beg end))))))
(hilit-chg-fixup beg (+ end 1))))))
(unless no-property-change
(put-text-property beg end 'hilit-chg type))
(if (or (eq highlight-changes-mode 'active) no-property-change)
(hilit-chg-make-ov type beg end)))))))
(defun hilit-chg-set (value)
"Turn on Highlight Changes mode for this buffer."
@ -602,12 +619,11 @@ This removes all saved change information."
(message "Cannot remove highlighting from read-only mode buffer %s"
(buffer-name))
(remove-hook 'after-change-functions 'hilit-chg-set-face-on-change t)
(let ((after-change-functions nil))
(highlight-save-buffer-state
(hilit-chg-hide-changes)
(hilit-chg-map-changes
'(lambda (prop start stop)
(remove-text-properties start stop '(hilit-chg nil))))
)
(lambda (prop start stop)
(remove-text-properties start stop '(hilit-chg nil)))))
(setq highlight-changes-mode nil)
(force-mode-line-update)
;; If we type: C-u -1 M-x highlight-changes-mode
@ -798,11 +814,12 @@ this, eval the following in the buffer to be saved:
;; of the current buffer due to the rotation. We do this by inserting (in
;; `buffer-undo-list') entries restoring buffer-modified-p to nil before
;; and after the entry for the rotation.
(unless modified
;; Install the "before" entry.
(setq buffer-undo-list
(cons '(apply restore-buffer-modified-p nil)
buffer-undo-list)))
;; FIXME: this is no good: we need to test the `modified' state at the
;; time of the undo, not at the time of the "do", otherwise the undo
;; may erroneously clear the modified flag. --Stef
;; (unless modified
;; ;; Install the "before" entry.
;; (push '(apply restore-buffer-modified-p nil) buffer-undo-list))
(unwind-protect
(progn
;; ensure hilit-chg-list is made and up to date
@ -815,10 +832,8 @@ this, eval the following in the buffer to be saved:
(if (eq highlight-changes-mode 'active)
(hilit-chg-display-changes)))
(unless modified
;; Install the "after" entry.
(setq buffer-undo-list
(cons '(apply restore-buffer-modified-p nil)
buffer-undo-list))
;; Install the "after" entry. FIXME: See above.
;; (push '(apply restore-buffer-modified-p nil) buffer-undo-list)
(restore-buffer-modified-p nil)))))
;; This always returns nil so it is safe to use in write-file-functions

View file

@ -1486,7 +1486,7 @@ to the barrier."
;; removes all bracket-sets and groups that might be in the way, as
;; well as partial \{\} constructs that the code below leaves behind.
;; Also skip over postfix operators -- though horrid,
;; 'ab?\{5,6\}+\{1,2\}*' is perfectly legal.
;; 'ab?\{5,6\}+\{1,2\}*' is perfectly valid.
(while (and previous
(or (isearch-error-state frame)
(let* ((string (isearch-string-state frame))

View file

@ -1888,6 +1888,18 @@ Major mode for editing BibTeX style files.
\(fn)" t nil)
;;;***
;;;### (autoloads (bibtex-style-mode) "bibtex-style" "textmodes/bibtex-style.el"
;;;;;; (18310 14604))
;;; Generated autoloads from textmodes/bibtex-style.el
(add-to-list 'auto-mode-alist '("\\.bst\\'" . bibtex-style-mode))
(autoload (quote bibtex-style-mode) "bibtex-style" "\
Major mode for editing BibTeX style files.
\(fn)" t nil)
;;;***
;;;### (autoloads (binhex-decode-region binhex-decode-region-external
@ -12196,6 +12208,8 @@ session.
\(fn COMMAND-LINE)" t nil)
(defalias (quote gdba) (quote gdb))
(defvar gdb-enable-debug nil "\
Non-nil means record the process input and output in `gdb-debug-log'.")
@ -30678,6 +30692,201 @@ Key bindings specific to `verilog-mode-map' are:
\(fn)" t nil)
;;;***
;;;### (autoloads (vera-mode) "vera-mode" "progmodes/vera-mode.el"
;;;;;; (18310 14601))
;;; Generated autoloads from progmodes/vera-mode.el
(add-to-list 'auto-mode-alist '("\\.vr[hi]?\\'" . vera-mode))
(autoload (quote vera-mode) "vera-mode" "\
Major mode for editing Vera code.
Usage:
------
INDENTATION: Typing `TAB' at the beginning of a line indents the line.
The amount of indentation is specified by option `vera-basic-offset'.
Indentation can be done for an entire region (`M-C-\\') or buffer (menu).
`TAB' always indents the line if option `vera-intelligent-tab' is nil.
WORD/COMMAND COMPLETION: Typing `TAB' after a (not completed) word looks
for a word in the buffer or a Vera keyword that starts alike, inserts it
and adjusts case. Re-typing `TAB' toggles through alternative word
completions.
Typing `TAB' after a non-word character inserts a tabulator stop (if not
at the beginning of a line). `M-TAB' always inserts a tabulator stop.
COMMENTS: `C-c C-c' comments out a region if not commented out, and
uncomments a region if already commented out.
HIGHLIGHTING (fontification): Vera keywords, predefined types and
constants, function names, declaration names, directives, as well as
comments and strings are highlighted using different colors.
VERA VERSION: OpenVera 1.4 and Vera version 6.2.8.
Maintenance:
------------
To submit a bug report, use the corresponding menu entry within Vera Mode.
Add a description of the problem and include a reproducible test case.
Feel free to send questions and enhancement requests to <reto@gnu.org>.
Official distribution is at
<http://www.iis.ee.ethz.ch/~zimmi/emacs/vera-mode.html>.
The Vera Mode Maintainer
Reto Zimmermann <reto@gnu.org>
Key bindings:
-------------
\\{vera-mode-map}
\(fn)" t nil)
;;;***
;;;### (autoloads (verilog-mode) "verilog-mode" "progmodes/verilog-mode.el"
;;;;;; (18363 3872))
;;; Generated autoloads from progmodes/verilog-mode.el
(autoload (quote verilog-mode) "verilog-mode" "\
Major mode for editing Verilog code.
\\<verilog-mode-map>
See \\[describe-function] verilog-auto (\\[verilog-auto]) for details on how
AUTOs can improve coding efficiency.
Use \\[verilog-faq] for a pointer to frequently asked questions.
NEWLINE, TAB indents for Verilog code.
Delete converts tabs to spaces as it moves back.
Supports highlighting.
Turning on Verilog mode calls the value of the variable `verilog-mode-hook'
with no args, if that value is non-nil.
Variables controlling indentation/edit style:
variable `verilog-indent-level' (default 3)
Indentation of Verilog statements with respect to containing block.
`verilog-indent-level-module' (default 3)
Absolute indentation of Module level Verilog statements.
Set to 0 to get initial and always statements lined up
on the left side of your screen.
`verilog-indent-level-declaration' (default 3)
Indentation of declarations with respect to containing block.
Set to 0 to get them list right under containing block.
`verilog-indent-level-behavioral' (default 3)
Indentation of first begin in a task or function block
Set to 0 to get such code to lined up underneath the task or
function keyword.
`verilog-indent-level-directive' (default 1)
Indentation of `ifdef/`endif blocks.
`verilog-cexp-indent' (default 1)
Indentation of Verilog statements broken across lines i.e.:
if (a)
begin
`verilog-case-indent' (default 2)
Indentation for case statements.
`verilog-auto-newline' (default nil)
Non-nil means automatically newline after semicolons and the punctuation
mark after an end.
`verilog-auto-indent-on-newline' (default t)
Non-nil means automatically indent line after newline.
`verilog-tab-always-indent' (default t)
Non-nil means TAB in Verilog mode should always reindent the current line,
regardless of where in the line point is when the TAB command is used.
`verilog-indent-begin-after-if' (default t)
Non-nil means to indent begin statements following a preceding
if, else, while, for and repeat statements, if any. Otherwise,
the begin is lined up with the preceding token. If t, you get:
if (a)
begin // amount of indent based on `verilog-cexp-indent'
otherwise you get:
if (a)
begin
`verilog-auto-endcomments' (default t)
Non-nil means a comment /* ... */ is set after the ends which ends
cases, tasks, functions and modules.
The type and name of the object will be set between the braces.
`verilog-minimum-comment-distance' (default 10)
Minimum distance (in lines) between begin and end required before a comment
will be inserted. Setting this variable to zero results in every
end acquiring a comment; the default avoids too many redundant
comments in tight quarters.
`verilog-auto-lineup' (default `(all))
List of contexts where auto lineup of code should be done.
Variables controlling other actions:
`verilog-linter' (default surelint)
Unix program to call to run the lint checker. This is the default
command for \\[compile-command] and \\[verilog-auto-save-compile].
See \\[customize] for the complete list of variables.
AUTO expansion functions are, in part:
\\[verilog-auto] Expand AUTO statements.
\\[verilog-delete-auto] Remove the AUTOs.
\\[verilog-inject-auto] Insert AUTOs for the first time.
Some other functions are:
\\[verilog-complete-word] Complete word with appropriate possibilities.
\\[verilog-mark-defun] Mark function.
\\[verilog-beg-of-defun] Move to beginning of current function.
\\[verilog-end-of-defun] Move to end of current function.
\\[verilog-label-be] Label matching begin ... end, fork ... join, etc statements.
\\[verilog-comment-region] Put marked area in a comment.
\\[verilog-uncomment-region] Uncomment an area commented with \\[verilog-comment-region].
\\[verilog-insert-block] Insert begin ... end;.
\\[verilog-star-comment] Insert /* ... */.
\\[verilog-sk-always] Insert a always @(AS) begin .. end block.
\\[verilog-sk-begin] Insert a begin .. end block.
\\[verilog-sk-case] Insert a case block, prompting for details.
\\[verilog-sk-for] Insert a for (...) begin .. end block, prompting for details.
\\[verilog-sk-generate] Insert a generate .. endgenerate block.
\\[verilog-sk-header] Insert a nice header block at the top of file.
\\[verilog-sk-initial] Insert an initial begin .. end block.
\\[verilog-sk-fork] Insert a fork begin .. end .. join block.
\\[verilog-sk-module] Insert a module .. (/*AUTOARG*/);.. endmodule block.
\\[verilog-sk-primitive] Insert a primitive .. (.. );.. endprimitive block.
\\[verilog-sk-repeat] Insert a repeat (..) begin .. end block.
\\[verilog-sk-specify] Insert a specify .. endspecify block.
\\[verilog-sk-task] Insert a task .. begin .. end endtask block.
\\[verilog-sk-while] Insert a while (...) begin .. end block, prompting for details.
\\[verilog-sk-casex] Insert a casex (...) item: begin.. end endcase block, prompting for details.
\\[verilog-sk-casez] Insert a casez (...) item: begin.. end endcase block, prompting for details.
\\[verilog-sk-if] Insert an if (..) begin .. end block.
\\[verilog-sk-else-if] Insert an else if (..) begin .. end block.
\\[verilog-sk-comment] Insert a comment block.
\\[verilog-sk-assign] Insert an assign .. = ..; statement.
\\[verilog-sk-function] Insert a function .. begin .. end endfunction block.
\\[verilog-sk-input] Insert an input declaration, prompting for details.
\\[verilog-sk-output] Insert an output declaration, prompting for details.
\\[verilog-sk-state-machine] Insert a state machine definition, prompting for details.
\\[verilog-sk-inout] Insert an inout declaration, prompting for details.
\\[verilog-sk-wire] Insert a wire declaration, prompting for details.
\\[verilog-sk-reg] Insert a register declaration, prompting for details.
\\[verilog-sk-define-signal] Define signal under point as a register at the top of the module.
All key bindings can be seen in a Verilog-buffer with \\[describe-bindings].
Key bindings specific to `verilog-mode-map' are:
\\{verilog-mode-map}
\(fn)" t nil)
;;;***
;;;### (autoloads (vhdl-mode) "vhdl-mode" "progmodes/vhdl-mode.el"
@ -31760,6 +31969,11 @@ and off otherwise.
;;;;;; global-whitespace-toggle-options whitespace-toggle-options
;;;;;; whitespace-mode) "whitespace" "whitespace.el" (18340 43875))
;;; Generated autoloads from whitespace.el
(put 'whitespace-check-buffer-leading 'safe-local-variable 'booleanp)
(put 'whitespace-check-buffer-trailing 'safe-local-variable 'booleanp)
(put 'whitespace-check-buffer-indent 'safe-local-variable 'booleanp)
(put 'whitespace-check-buffer-spacetab 'safe-local-variable 'booleanp)
(put 'whitespace-check-buffer-ateol 'safe-local-variable 'booleanp)
(autoload 'whitespace-mode "whitespace" "\
Toggle whitespace minor mode visualization (\"ws\" on modeline).
@ -31956,7 +32170,7 @@ See `whitespace-chars' and `whitespace-style' for documentation.
See also `whitespace-cleanup' and `whitespace-cleanup-region' for
cleaning up these problems.
\(fn)" t nil)
\(fn)" nil nil)
;;;***

View file

@ -850,7 +850,7 @@ consing a string.)"
(setq char ?\() ; HAVE I NO SHAME??
)
;; record the position of various interesting chars, determine
;; legality later.
;; validity later.
((setq record-pos-symbol
(cdr (assq char
'((?< . <-pos) (?> . >-pos) (?@ . @-pos)
@ -862,9 +862,9 @@ consing a string.)"
((eq char ?.)
(forward-char 1))
((memq char '(
;; comment terminator illegal
;; comment terminator invalid
?\)
;; domain literal terminator illegal
;; domain literal terminator invalid
?\]
;; \ allowed only within quoted strings,
;; domain literals, and comments

View file

@ -77,6 +77,22 @@
* mh-mime.el (mh-mml-forward-message): Forward messages as inline
attatchments (closes SF #1378993).
2008-02-06 Richard Stallman <rms@gnu.org>
* mh-seq.el (mh-make-seq, mh-seq-name): Use defsubst.
* mh-acros.el (mh-do-in-gnu-emacs, mh-do-in-xemacs)
(with-mh-folder-updating, mh-in-show-buffer)
(mh-iterate-on-messages-in-region, mh-iterate-on-range):
(mh-do-at-event-location): Add debug decls.
(mh-seq-msgs): Use defsubst.
2008-02-05 Juanma Barranquero <lekktu@gmail.com>
* mh-e.el (mh-scan-format-file-check, mh-adaptive-cmd-note-flag-check):
* mh-xface.el (mh-x-image-url-cache-canonicalize):
Replace `legal' with `valid'.
2007-08-19 Jeffrey C Honig <jch@honig.net>
* mh-e.el (mh-invisible-header-fields-internal): We want to show

View file

@ -65,12 +65,14 @@ loads \"cl\" appropriately."
;;;###mh-autoload
(defmacro mh-do-in-gnu-emacs (&rest body)
"Execute BODY if in GNU Emacs."
(declare (debug t))
(unless (featurep 'xemacs) `(progn ,@body)))
(put 'mh-do-in-gnu-emacs 'lisp-indent-hook 'defun)
;;;###mh-autoload
(defmacro mh-do-in-xemacs (&rest body)
"Execute BODY if in XEmacs."
(declare (debug t))
(when (featurep 'xemacs) `(progn ,@body)))
(put 'mh-do-in-xemacs 'lisp-indent-hook 'defun)
@ -178,6 +180,7 @@ Execute BODY, which can modify the folder buffer without having to
worry about file locking or the read-only flag, and return its result.
If SAVE-MODIFICATION-FLAG is non-nil, the buffer's modification flag
is unchanged, otherwise it is cleared."
(declare (debug t))
(setq save-modification-flag (car save-modification-flag)) ; CL style
`(prog1
(let ((mh-folder-updating-mod-flag (buffer-modified-p))
@ -196,6 +199,7 @@ is unchanged, otherwise it is cleared."
"Format is (mh-in-show-buffer (SHOW-BUFFER) &body BODY).
Display buffer SHOW-BUFFER in other window and execute BODY in it.
Stronger than `save-excursion', weaker than `save-window-excursion'."
(declare (debug t))
(setq show-buffer (car show-buffer)) ; CL style
`(let ((mh-in-show-buffer-saved-window (selected-window)))
(switch-to-buffer-other-window ,show-buffer)
@ -212,6 +216,7 @@ Stronger than `save-excursion', weaker than `save-window-excursion'."
After BODY has been executed return to original window. The
modification flag of the buffer in the event window is
preserved."
(declare (debug t))
(let ((event-window (make-symbol "event-window"))
(event-position (make-symbol "event-position"))
(original-window (make-symbol "original-window"))
@ -245,9 +250,9 @@ preserved."
;;; Sequences and Ranges
;;;###mh-autoload
(defmacro mh-seq-msgs (sequence)
(defsubst mh-seq-msgs (sequence)
"Extract messages from the given SEQUENCE."
(list 'cdr sequence))
(cdr sequence))
;;;###mh-autoload
(defmacro mh-iterate-on-messages-in-region (var begin end &rest body)
@ -257,6 +262,7 @@ VAR is bound to the message on the current line as we loop
starting from BEGIN till END. In each step BODY is executed.
If VAR is nil then the loop is executed without any binding."
(declare (debug (symbolp body)))
(unless (symbolp var)
(error "Can not bind the non-symbol %s" var))
(let ((binding-needed-flag var))
@ -282,6 +288,7 @@ a string. In each iteration, BODY is executed.
The parameter RANGE is usually created with
`mh-interactive-range' in order to provide a uniform interface to
MH-E functions."
(declare (debug (symbolp body)))
(unless (symbolp var)
(error "Can not bind the non-symbol %s" var))
(let ((binding-needed-flag var)

View file

@ -1982,7 +1982,7 @@ you would use \"(mh-set-cmd-note 4)\"."
:package-version '(MH-E . "7.0"))
(defun mh-scan-format-file-check (symbol value)
"Check if desired setting is legal.
"Check if desired setting is valid.
Throw an error if user tries to set `mh-scan-format-file' to
anything but t when `mh-adaptive-cmd-note-flag' is on. Otherwise,
set SYMBOL to VALUE."
@ -2021,7 +2021,7 @@ Emacs start with 0)."
:package-version '(MH-E . "6.0"))
(defun mh-adaptive-cmd-note-flag-check (symbol value)
"Check if desired setting is legal.
"Check if desired setting is valid.
Throw an error if user tries to turn on
`mh-adaptive-cmd-note-flag' when `mh-scan-format-file' isn't t.
Otherwise, set SYMBOL to VALUE."

View file

@ -53,13 +53,13 @@
;;; Macros
(defmacro mh-make-seq (name msgs)
(defsubst mh-make-seq (name msgs)
"Create sequence NAME with the given MSGS."
(list 'cons name msgs))
(cons name msgs))
(defmacro mh-seq-name (sequence)
(defsubst mh-seq-name (sequence)
"Extract sequence name from the given SEQUENCE."
(list 'car sequence))
(car sequence))

View file

@ -360,8 +360,8 @@ This is only done if `mh-x-image-cache-directory' is nil."
"Canonicalize URL.
Replace the ?/ character with a ?! character and append .png.
Also replaces special characters with `mh-url-hexify-string'
since not all characters, such as :, are legal within Windows
filenames. In addition, replaces * with %2a. See URL
since not all characters, such as :, are valid within Windows
filenames. In addition, replaces * with %2a. See URL
`http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/shell/reference/ifaces/iitemnamelimits/GetValidCharacters.asp'."
(format "%s/%s.png" mh-x-image-cache-directory
(mh-replace-regexp-in-string

View file

@ -297,7 +297,7 @@
;; you would type:
;; C-x C-f /anonymous@ymir.claremont.edu:CSV/POLICY/RULES.MEM
;;
;; A legal VMS filename is of the form: FILE.TYPE;##
;; A valid VMS filename is of the form: FILE.TYPE;##
;; where FILE can be up to 39 characters
;; TYPE can be up to 39 characters
;; ## is a version number (an integer between 1 and 32,767)

View file

@ -93,7 +93,7 @@ These options can be used to limit how many ICMP packets are emitted."
:group 'net-utils
:type '(repeat string))
(defcustom ipconfig-program
(defcustom ifconfig-program
(if (eq system-type 'windows-nt)
"ipconfig"
"ifconfig")
@ -101,11 +101,13 @@ These options can be used to limit how many ICMP packets are emitted."
:group 'net-utils
:type 'string)
(defcustom ipconfig-program-options
(define-obsolete-variable-alias 'ipconfig-program 'ifconfig-program "22.2")
(defcustom ifconfig-program-options
(list
(if (eq system-type 'windows-nt)
"/all" "-a"))
"Options for ipconfig-program."
"Options for `ifconfig-program'."
:group 'net-utils
:type '(repeat string))
@ -121,6 +123,9 @@ These options can be used to limit how many ICMP packets are emitted."
:type '(repeat string)
:version "23.1")
(define-obsolete-variable-alias 'ipconfig-program-options
'ifconfig-program-options "22.2")
(defcustom netstat-program "netstat"
"Program to print network statistics."
:group 'net-utils
@ -364,18 +369,18 @@ If your system's ping continues until interrupted, you can try setting
options)))
;;;###autoload
(defun ipconfig ()
"Run ipconfig program."
(defun ifconfig ()
"Run ifconfig program."
(interactive)
(net-utils-run-program
"Ipconfig"
(concat "** Ipconfig ** " ipconfig-program " ** ")
ipconfig-program
ipconfig-program-options))
"Ifconfig"
(concat "** Ifconfig ** " ifconfig-program " ** ")
ifconfig-program
ifconfig-program-options))
;; This is the normal name on most Unixes.
;; Windows uses this name.
;;;###autoload
(defalias 'ifconfig 'ipconfig)
(defalias 'ipconfig 'ifconfig)
;;;###autoload
(defun iwconfig ()

View file

@ -2137,23 +2137,24 @@ keywords when no KEYWORD is given."
string))
(defvar rcirc-url-regexp
(rx-to-string
`(and word-boundary
(or (and
(or (and (or "http" "https" "ftp" "file" "gopher" "news"
"telnet" "wais" "mailto")
"://")
"www.")
(1+ (char "-a-zA-Z0-9_."))
(1+ (char "-a-zA-Z0-9_"))
(optional ":" (1+ (char "0-9"))))
(and (1+ (char "-a-zA-Z0-9_."))
(or ".com" ".net" ".org")
word-boundary))
(optional
(and "/"
(1+ (char "-a-zA-Z0-9_='!?#$\@~`%&*+|\\/:;.,{}[]()"))
(char "-a-zA-Z0-9_=#$\@~`%&*+|\\/:;{}[]()")))))
(concat
"\\b\\(\\(www\\.\\|\\(s?https?\\|ftp\\|file\\|gopher\\|"
"nntp\\|news\\|telnet\\|wais\\|mailto\\|info\\):\\)"
"\\(//[-a-z0-9_.]+:[0-9]*\\)?"
(if (string-match "[[:digit:]]" "1") ;; Support POSIX?
(let ((chars "-a-z0-9_=#$@~%&*+\\/[:word:]")
(punct "!?:;.,"))
(concat
"\\(?:"
;; Match paired parentheses, e.g. in Wikipedia URLs:
"[" chars punct "]+" "(" "[" chars punct "]+" "[" chars "]*)" "[" chars "]"
"\\|"
"[" chars punct "]+" "[" chars "]"
"\\)"))
(concat ;; XEmacs 21.4 doesn't support POSIX.
"\\([-a-z0-9_=!?#$@~%&*+\\/:;.,]\\|\\w\\)+"
"\\([-a-z0-9_=#$@~%&*+\\/]\\|\\w\\)"))
"\\)")
"Regexp matching URLs. Set to nil to disable URL features in rcirc.")
(defun rcirc-browse-url (&optional arg)

View file

@ -5180,12 +5180,9 @@ Return nil if no body was found."
(defconst ada-font-lock-syntactic-keywords
;; Mark single quotes as having string quote syntax in 'c' instances.
;; As a special case, ''' will not be highlighted, but if we do not
;; set this special case, then the rest of the buffer is highlighted as
;; a string
;; This sets the properties of the characters, so that ada-in-string-p
;; correctly handles '"' too...
'(("[^a-zA-Z0-9)]\\('\\)[^'\n]\\('\\)" (1 (7 . ?')) (2 (7 . ?')))
;; We used to explicitly avoid ''' as a special case for fear the buffer
;; be highlighted as a string, but it seems this fear is unfounded.
'(("[^a-zA-Z0-9)]\\('\\)[^\n]\\('\\)" (1 (7 . ?')) (2 (7 . ?')))
("^[ \t]*\\(#\\(if\\|else\\|elsif\\|end\\)\\)" (1 (11 . ?\n)))))
(defvar ada-font-lock-keywords

View file

@ -53,6 +53,8 @@
;; Silence the byte compiler.
(cc-bytecomp-defvar font-lock-mode) ; Checked with boundp before use.
(cc-bytecomp-defvar c-new-BEG)
(cc-bytecomp-defvar c-new-END)
;; Some functions in cc-engine that are used below. There's a cyclic
;; dependency so it can't be required here. (Perhaps some functions
@ -213,7 +215,7 @@
"\\([{}@` \t]\\|\\+\\+\\|--\\|\\\\.\\)")
;; A "neutral" char(pair). Doesn't change the "state" of a subsequent /.
;; This is space/tab, braces, an auto-increment/decrement operator or an
;; escaped character. Or one of the (illegal) characters @ or `. But NOT an
;; escaped character. Or one of the (invalid) characters @ or `. But NOT an
;; end of line (even if escaped).
(defconst c-awk-neutrals*-re
(concat "\\(" c-awk-neutral-re "\\)*"))
@ -624,22 +626,25 @@
(forward-line -1))
(point))
(defun c-awk-end-of-logical-line (&optional pos)
;; Go forward to the end of the (apparent) current logical line (or the end of
;; the line containing POS), returning the buffer position of that point. I.e.,
;; go to the end of the next line which doesn't have an escaped EOL.
(defun c-awk-beyond-logical-line (&optional pos)
;; Return the position just beyond the (apparent) current logical line, or the
;; one containing POS. This is usually the beginning of the next line which
;; doesn't follow an escaped EOL. At EOB, this will be EOB.
;;
;; Point is unchanged.
;;
;; This is guaranteed to be "safe" for syntactic analysis, i.e. outwith any
;; comment, string or regexp. IT MAY WELL BE that this function should not be
;; executed on a narrowed buffer.
;;
;; This function might do hidden buffer changes.
(if pos (goto-char pos))
(end-of-line)
(while (and (< (point) (point-max))
(eq (char-before) ?\\))
(end-of-line 2))
(point))
(save-excursion
(if pos (goto-char pos))
(end-of-line)
(while (and (< (point) (point-max))
(eq (char-before) ?\\))
(end-of-line 2))
(if (< (point) (point-max))
(1+ (point))
(point))))
;; ACM, 2002/02/15: The idea of the next function is to put the "Error font"
;; on strings/regexps which are missing their closing delimiter.
@ -712,7 +717,7 @@
;;
;; The result is what ANCHOR-STATE-/DIV (see above) is where point is left.
;;
;; This function might do hidden buffer changes.
;; This function does hidden buffer changes.
(let ((/point (point)))
(goto-char anchor)
;; Analyse the line to find out what the / is.
@ -780,55 +785,38 @@
(c-awk-syntax-tablify-/ anchor anchor-state-/div))))
nil))
;; ACM, 2002/07/21: Thoughts: We need an AWK Mode after-change function to set
;; the syntax-table properties even when font-lock isn't enabled, for the
;; subsequent use of movement functions, etc. However, it seems that if font
;; lock _is_ enabled, we can always leave it to do the job.
(defvar c-awk-old-EOLL 0)
(make-variable-buffer-local 'c-awk-old-EOLL)
;; End of logical line following the region which is about to be changed. Set
;; in c-awk-before-change and used in c-awk-after-change.
(defvar c-awk-old-ByLL 0)
(make-variable-buffer-local 'c-awk-old-Byll)
;; Just beyond logical line following the region which is about to be changed.
;; Set in c-awk-record-region-clear-NL and used in c-awk-after-change.
(defun c-awk-before-change (beg end)
(defun c-awk-record-region-clear-NL (beg end)
;; This function is called exclusively from the before-change-functions hook.
;; It does two things: Finds the end of the (logical) line on which END lies,
;; and clears c-awk-NL-prop text properties from this point onwards.
;; and clears c-awk-NL-prop text properties from this point onwards. BEG is
;; ignored.
;;
;; This function might do hidden buffer changes.
(save-restriction
(save-excursion
(setq c-awk-old-EOLL (c-awk-end-of-logical-line end))
(c-save-buffer-state nil
(c-awk-clear-NL-props end (point-max))))))
;; On entry, the buffer will have been widened and match-data will have been
;; saved; point is undefined on both entry and exit; the return value is
;; ignored.
;;
;; This function does hidden buffer changes.
(c-save-buffer-state ()
(setq c-awk-old-ByLL (c-awk-beyond-logical-line end))
(c-save-buffer-state nil
(c-awk-clear-NL-props end (point-max)))))
(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, whichever is later.
;; N.B. point is left undefined.
;;
;; This function might do hidden buffer changes.
(max (+ (- c-awk-old-EOLL old-len) (- end beg))
(c-awk-end-of-logical-line end)))
(defun c-awk-after-change (beg end old-len)
;; This function is called exclusively as an after-change function in
;; AWK Mode. It ensures that the syntax-table properties get set in the
;; changed region. However, if font-lock is enabled, this function does
;; nothing, since an enabled font-lock after-change function will always do
;; this.
;;
;; This function might do hidden buffer changes.
(unless (and (boundp 'font-lock-mode) font-lock-mode)
(save-restriction
(save-excursion
(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)))))))
(max (+ (- c-awk-old-ByLL old-len) (- end beg))
(c-awk-beyond-logical-line 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
@ -836,22 +824,28 @@
;; do this in practice is to use the beginning/end-of-logical-line functions.
;; Don't overlook the possibility of the buffer change being the "recapturing"
;; of a previously escaped newline.
(defmacro c-awk-advise-fl-for-awk-region (function)
`(defadvice ,function (before get-awk-region activate)
;; When font-locking an AWK Mode buffer, make sure that any string/regexp is
;; completely font-locked.
(when (eq major-mode 'awk-mode)
(save-excursion
(ad-set-arg 1 (c-awk-end-of-change-region
(ad-get-arg 0) ; beg
(ad-get-arg 1) ; end
(ad-get-arg 2))) ; old-len
(ad-set-arg 0 (c-awk-beginning-of-logical-line (ad-get-arg 0)))))))
(c-awk-advise-fl-for-awk-region font-lock-after-change-function)
(c-awk-advise-fl-for-awk-region jit-lock-after-change)
(c-awk-advise-fl-for-awk-region lazy-lock-defer-rest-after-change)
(c-awk-advise-fl-for-awk-region lazy-lock-defer-line-after-change)
;; ACM 2008-02-05:
(defun c-awk-extend-and-syntax-tablify-region (beg end old-len)
;; Expand the region (BEG END) as needed to (c-new-BEG c-new-END) then put
;; `syntax-table' properties on this region.
;;
;; This function is called from an after-change function, BEG END and
;; OLD-LEN being the standard parameters.
;;
;; Point is undefined both before and after this function call, the buffer
;; has been widened, and match-data saved. The return value is ignored.
;;
;; It prepares the buffer for font
;; locking, hence must get called before `font-lock-after-change-function'.
;;
;; This function is the AWK value of `c-before-font-lock-function'.
;; It does hidden buffer changes.
(c-save-buffer-state ()
(setq c-new-END (c-awk-end-of-change-region beg end old-len))
(setq c-new-BEG (c-awk-beginning-of-logical-line beg))
(goto-char c-new-BEG)
(c-awk-set-syntax-table-properties c-new-END)))
;; Awk regexps written with help from Peter Galbraith
;; <galbraith@mixing.qc.dfo.ca>.

View file

@ -721,7 +721,7 @@ be after it."
((bobp) (setq pos (point-min)))
((not pos)
(let ((distance (skip-chars-backward "^{")))
;; unbalanced parenthesis, while illegal C code,
;; unbalanced parenthesis, while invalid C code,
;; shouldn't cause an infloop! See unbal.c
(when (zerop distance)
;; Punt!
@ -1028,6 +1028,39 @@ MODE is either a mode symbol or a list of mode symbols."
;; Emacs.
`(remove-text-properties ,from ,to '(,property nil))))
(defun c-clear-char-property-with-value-function (from to property value)
"Remove all text-properties PROPERTY from the region (FROM, TO)
which have the value VALUE, as tested by `equal'. These
properties are assumed to be over individual characters, having
been put there by c-put-char-property. POINT remains unchanged."
(let ((place from) end-place)
(while ; loop round occurrances of (PROPERTY VALUE)
(progn
(while ; loop round changes in PROPERTY till we find VALUE
(and
(< place to)
(not (equal (get-text-property place property) value)))
(setq place (next-single-property-change place property nil to)))
(< place to))
(setq end-place (next-single-property-change place property nil to))
(put-text-property place end-place property nil)
;; Do we have to do anything with stickiness here?
(setq place end-place))))
(defmacro c-clear-char-property-with-value (from to property value)
"Remove all text-properties PROPERTY from the region [FROM, TO)
which have the value VALUE, as tested by `equal'. These
properties are assumed to be over individual characters, having
been put there by c-put-char-property. POINT remains unchanged."
(if c-use-extents
;; XEmacs
`(let ((-property- ,property))
(map-extents (lambda (ext val)
(if (equal (extent-property ext -property-) val)
(delete-extent ext)))
nil ,from ,to ,value nil -property-))
;; Gnu Emacs
`(c-clear-char-property-with-value-function ,from ,to ,property ,value)))
;; Macros to put overlays (Emacs) or extents (XEmacs) on buffer text.
;; For our purposes, these are characterized by being possible to

View file

@ -81,8 +81,9 @@
;; assume that these text properties are used as described here.
;;
;; 'syntax-table
;; Used to modify the syntax of some characters. Currently used to
;; mark the "<" and ">" of angle bracket parens with paren syntax.
;; Used to modify the syntax of some characters. It is used to
;; mark the "<" and ">" of angle bracket parens with paren syntax, and
;; to "hide" obtrusive characters in preprocessor lines.
;;
;; This property is used on single characters and is therefore
;; always treated as front and rear nonsticky (or start and end open

View file

@ -394,14 +394,14 @@ stuff. Used on level 1 and higher."
`(;; The stuff after #error and #warning is a message, so
;; fontify it as a string.
,@(when (c-lang-const c-cpp-message-directives)
(let* ((re (c-make-keywords-re nil
(let* ((re (c-make-keywords-re 'appendable ; nil
(c-lang-const c-cpp-message-directives)))
(re-depth (regexp-opt-depth re)))
`((,(concat noncontinued-line-end
(c-lang-const c-opt-cpp-prefix)
re
"\\s +\\(.*\\)$")
,(+ ncle-depth re-depth 1) font-lock-string-face))))
,(+ ncle-depth re-depth 1) font-lock-string-face t))))
;; Fontify filenames in #include <...> as strings.
,@(when (c-lang-const c-cpp-include-directives)

View file

@ -414,6 +414,49 @@ the new syntax, as accepted by `modify-syntax-entry'."
classifies symbol constituents like '_' and '$' as word constituents,
so that all identifiers are recognized as words.")
(c-lang-defconst c-get-state-before-change-function
"If non-nil, a function called from c-before-change-hook.
Typically it will record enough state to allow
`c-before-font-lock-function' to extend the region to fontify,
and may do such things as removing text-properties which must be
recalculated.
It takes 2 parameters, the BEG and END supplied to every
before-change function; on entry, the buffer will have been
widened and match-data will have been saved; point is undefined
on both entry and exit; the return value is ignored.
When the mode is initialized, this function is called with
parameters \(point-min) and \(point-max)."
t nil
(c c++ objc) 'c-extend-region-for-CPP
awk 'c-awk-record-region-clear-NL)
(c-lang-defvar c-get-state-before-change-function
(c-lang-const c-get-state-before-change-function))
(c-lang-defconst c-before-font-lock-function
"If non-nil, a function called just before font locking.
Typically it will extend the region about to be fontified \(see
below) and will set `syntax-table' text properties on the region.
It takes 3 parameters, the BEG, END, and OLD-LEN supplied to
every after-change function; point is undefined on both entry and
exit; on entry, the buffer will have been widened and match-data
will have been saved; the return value is ignored.
The function may extend the region to be fontified by setting the
buffer local variables c-old-BEG and c-old-LEN.
The function is called even when font locking is disabled.
When the mode is initialized, this function is called with
parameters \(point-min), \(point-max) and <buffer size>."
t nil
(c c++ objc) 'c-neutralize-syntax-in-CPP
awk 'c-awk-extend-and-syntax-tablify-region)
(c-lang-defvar c-before-font-lock-function
(c-lang-const c-before-font-lock-function))
;;; Lexer-level syntax (identifiers, tokens etc).
@ -645,6 +688,13 @@ Assumed to not contain any submatches or \\| operators."
(java awk) nil)
(c-lang-defvar c-opt-cpp-prefix (c-lang-const c-opt-cpp-prefix))
(c-lang-defconst c-anchored-cpp-prefix
"Regexp matching the prefix of a cpp directive anchored to BOL,
in the languages that have a macro preprocessor."
t (if (c-lang-const c-opt-cpp-prefix)
(concat "^" (c-lang-const c-opt-cpp-prefix))))
(c-lang-defvar c-anchored-cpp-prefix (c-lang-const c-anchored-cpp-prefix))
(c-lang-defconst c-opt-cpp-start
"Regexp matching the prefix of a cpp directive including the directive
name, or nil in languages without preprocessor support. The first
@ -662,7 +712,7 @@ submatch surrounds the directive name."
string message."
t (if (c-lang-const c-opt-cpp-prefix)
'("error"))
pike '("error" "warning"))
(c c++ objc pike) '("error" "warning"))
(c-lang-defconst c-cpp-include-directives
"List of cpp directives (without the prefix) that are followed by a
@ -700,7 +750,7 @@ definition, or nil if the language doesn't have any."
(c-lang-const c-opt-cpp-macro-define-id))
(c-lang-defconst c-cpp-expr-directives
"List if cpp directives (without the prefix) that are followed by an
"List of cpp directives (without the prefix) that are followed by an
expression."
t (if (c-lang-const c-opt-cpp-prefix)
'("if" "elif")))

View file

@ -467,117 +467,6 @@ preferably use the `c-mode-menu' language constant directly."
(defvar c-maybe-stale-found-type nil)
(make-variable-buffer-local 'c-maybe-stale-found-type)
(defun c-before-change (beg end)
;; Function to be put on `before-change-function'. Currently
;; (2007-02) it is used only to remove stale entries from the
;; `c-found-types' cache, and to record entries which a
;; `c-after-change' function might confirm as stale.
;;
;; Note that this function must be FAST rather than accurate. Note
;; also that it only has any effect when font locking is enabled.
;; We exploit this by checking for font-lock-*-face instead of doing
;; rigourous syntactic analysis.
;; If either change boundary is wholly inside an identifier, delete
;; it/them from the cache. Don't worry about being inside a string
;; or a comment - "wrongly" removing a symbol from `c-found-types'
;; isn't critical.
(setq c-maybe-stale-found-type nil)
(save-restriction
(save-match-data
(widen)
(save-excursion
;; Are we inserting/deleting stuff in the middle of an identifier?
(c-unfind-enclosing-token beg)
(c-unfind-enclosing-token end)
;; Are we coalescing two tokens together, e.g. "fo o" -> "foo"?
(when (< beg end)
(c-unfind-coalesced-tokens beg end))
;; Are we (potentially) disrupting the syntactic context which
;; makes a type a type? E.g. by inserting stuff after "foo" in
;; "foo bar;", or before "foo" in "typedef foo *bar;"?
;;
;; We search for appropriate c-type properties "near" the change.
;; First, find an appropriate boundary for this property search.
(let (lim
type type-pos
marked-id term-pos
(end1
(or (and (eq (get-text-property end 'face) 'font-lock-comment-face)
(previous-single-property-change end 'face))
end)))
(when (>= end1 beg) ; Don't hassle about changes entirely in comments.
;; Find a limit for the search for a `c-type' property
(while
(and (/= (skip-chars-backward "^;{}") 0)
(> (point) (point-min))
(memq (c-get-char-property (1- (point)) 'face)
'(font-lock-comment-face font-lock-string-face))))
(setq lim (max (point-min) (1- (point))))
;; Look for the latest `c-type' property before end1
(when (and (> end1 (point-min))
(setq type-pos
(if (get-text-property (1- end1) 'c-type)
end1
(previous-single-property-change end1 'c-type nil lim))))
(setq type (get-text-property (max (1- type-pos) lim) 'c-type))
(when (memq type '(c-decl-id-start c-decl-type-start))
;; Get the identifier, if any, that the property is on.
(goto-char (1- type-pos))
(setq marked-id
(when (looking-at "\\(\\sw\\|\\s_\\)")
(c-beginning-of-current-token)
(buffer-substring-no-properties (point) type-pos)))
(goto-char end1)
(skip-chars-forward "^;{}") ; FIXME!!! loop for comment, maybe
(setq lim (point))
(setq term-pos
(or (next-single-property-change end 'c-type nil lim) lim))
(setq c-maybe-stale-found-type
(list type marked-id
type-pos term-pos
(buffer-substring-no-properties type-pos term-pos)
(buffer-substring-no-properties beg end)))))))))))
(defun c-after-change (beg end old-len)
;; Function put on `after-change-functions' to adjust various caches
;; etc. Prefer speed to finesse here, since there will be an order
;; of magnitude more calls to this function than any of the
;; functions that use the caches.
;;
;; Note that care must be taken so that this is called before any
;; font-lock callbacks since we might get calls to functions using
;; these caches from inside them, and we must thus be sure that this
;; has already been executed.
(c-save-buffer-state ()
;; When `combine-after-change-calls' is used we might get calls
;; with regions outside the current narrowing. This has been
;; observed in Emacs 20.7.
(save-restriction
(save-match-data ; c-recognize-<>-arglists changes match-data
(widen)
(when (> end (point-max))
;; Some emacsen might return positions past the end. This has been
;; observed in Emacs 20.7 when rereading a buffer changed on disk
;; (haven't been able to minimize it, but Emacs 21.3 appears to
;; work).
(setq end (point-max))
(when (> beg end)
(setq beg end)))
(c-trim-found-types beg end old-len) ; maybe we don't need all of these.
(c-invalidate-sws-region-after beg end)
(c-invalidate-state-cache beg)
(c-invalidate-find-decl-cache beg)
(when c-recognize-<>-arglists
(c-after-change-check-<>-operators beg end))))))
(defun c-basic-common-init (mode default-style)
"Do the necessary initialization for the syntax handling routines
and the line breaking/filling code. Intended to be used by other
@ -625,7 +514,8 @@ that requires a literal mode spec at compile time."
(setq fill-paragraph-function 'c-fill-paragraph)
(when (or c-recognize-<>-arglists
(c-major-mode-is 'awk-mode))
(c-major-mode-is 'awk-mode)
(c-major-mode-is '(c-mode c++-mode objc-mode)))
;; We'll use the syntax-table text property to change the syntax
;; of some chars for this language, so do the necessary setup for
;; that.
@ -712,34 +602,6 @@ that requires a literal mode spec at compile time."
(make-local-hook 'after-change-functions)
(add-hook 'after-change-functions 'c-after-change nil t))
(defun c-after-font-lock-init ()
;; Put on `font-lock-mode-hook'.
(remove-hook 'after-change-functions 'c-after-change t)
(add-hook 'after-change-functions 'c-after-change nil t))
(defun c-font-lock-init ()
"Set up the font-lock variables for using the font-lock support in CC Mode.
This does not load the font-lock package. Use after
`c-basic-common-init' and after cc-fonts has been loaded."
(make-local-variable 'font-lock-defaults)
(setq font-lock-defaults
`(,(if (c-major-mode-is 'awk-mode)
;; awk-mode currently has only one font lock level.
'awk-font-lock-keywords
(mapcar 'c-mode-symbol
'("font-lock-keywords" "font-lock-keywords-1"
"font-lock-keywords-2" "font-lock-keywords-3")))
nil nil
,c-identifier-syntax-modifications
c-beginning-of-syntax
(font-lock-lines-before . 1)
(font-lock-mark-block-function
. c-mark-function)))
(make-local-hook 'font-lock-mode-hook)
(add-hook 'font-lock-mode-hook 'c-after-font-lock-init nil t))
(defun c-setup-doc-comment-style ()
"Initialize the variables that depend on the value of `c-doc-comment-style'."
(when (and (featurep 'font-lock)
@ -769,6 +631,16 @@ compatible with old code; callers should always specify it."
;; Only initialize font locking if we aren't called from an old package.
(c-font-lock-init))
;; Starting a mode is a sort of "change". So call the change functions...
(save-restriction
(widen)
(save-excursion
(if c-get-state-before-change-function
(funcall c-get-state-before-change-function (point-min) (point-max)))
(if c-before-font-lock-function
(funcall c-before-font-lock-function (point-min) (point-max)
(- (point-max) (point-min))))))
(make-local-variable 'outline-regexp)
(make-local-variable 'outline-level)
(setq outline-regexp "[^#\n\^M]"
@ -877,6 +749,280 @@ Note that the style variables are always made local to the buffer."
`(run-mode-hooks ,@hooks)
`(progn ,@(mapcar (lambda (hook) `(run-hooks ,hook)) hooks))))
;;; Change hooks, linking with Font Lock.
;; Buffer local variables defining the region to be fontified by a font lock
;; after-change function. They are set in c-after-change to
;; after-change-function's BEG and END, and may be modified by a
;; `c-before-font-lock-function'.
(defvar c-new-BEG 0)
(make-variable-buffer-local 'c-new-BEG)
(defvar c-new-END 0)
(make-variable-buffer-local 'c-new-END)
;; Buffer local variables recording Beginning/End-of-Macro position before a
;; change, when a macro straddles, respectively, the BEG or END (or both) of
;; the change region. Otherwise these have the values BEG/END.
(defvar c-old-BOM 0)
(make-variable-buffer-local 'c-old-BOM)
(defvar c-old-EOM 0)
(make-variable-buffer-local 'c-old-EOM)
(defun c-extend-region-for-CPP (beg end)
;; Set c-old-BOM or c-old-EOM respectively to BEG, END, each extended to the
;; beginning/end of any preprocessor construct they may be in.
;;
;; Point is undefined both before and after this function call; the buffer
;; has already been widened, and match-data saved. The return value is
;; meaningless.
;;
;; This function is the C/C++/ObjC value of
;; `c-get-state-before-change-function' and is called exclusively as a
;; before change function.
(goto-char beg)
(c-beginning-of-macro)
(setq c-old-BOM (point))
(goto-char end)
(if (c-beginning-of-macro)
(c-end-of-macro))
(setq c-old-EOM (point)))
(defun c-neutralize-CPP-line (beg end)
;; BEG and END bound a preprocessor line. Put a "punctuation" syntax-table
;; property on syntactically obtrusive characters, ones which would interact
;; syntactically with stuff outside the CPP line.
;;
;; These are unmatched string delimiters, or unmatched
;; parens/brackets/braces. An unclosed comment is regarded as valid, NOT
;; obtrusive.
(let (s)
(while
(progn
(setq s (parse-partial-sexp beg end -1))
(cond
((< (nth 0 s) 0) ; found an unmated ),},]
(c-put-char-property (1- (point)) 'syntax-table '(1))
t)
((nth 3 s) ; In a string
(c-put-char-property (nth 8 s) 'syntax-table '(1))
t)
((> (nth 0 s) 0) ; In a (,{,[
(c-put-char-property (nth 1 s) 'syntax-table '(1))
t)
(t nil))))))
(defun c-neutralize-syntax-in-CPP (begg endd old-len)
;; "Neutralize" every preprocessor line wholly or partially in the changed
;; region. "Restore" lines which were CPP lines before the change and are
;; no longer so; these can be located from the Buffer local variables
;; c-old-[EB]OM.
;;
;; That is, set syntax-table properties on characters that would otherwise
;; interact syntactically with those outside the CPP line(s).
;;
;; This function is called from an after-change function, BEGG ENDD and
;; OLD-LEN being the standard parameters. It prepares the buffer for font
;; locking, hence must get called before `font-lock-after-change-function'.
;;
;; Point is undefined both before and after this function call, the buffer
;; has been widened, and match-data saved. The return value is ignored.
;;
;; This function is the C/C++/ObjC value of `c-before-font-lock-function'.
;;
;; This function might do invisible changes.
(c-save-buffer-state (limits mbeg beg end)
;; First calculate the region, possibly to be extended.
(setq beg (min begg c-old-BOM))
(goto-char endd)
(when (c-beginning-of-macro)
(c-end-of-macro))
(setq end (max (+ (- c-old-EOM old-len) (- endd begg))
(point)))
;; Clear all old punctuation properties
(c-clear-char-property-with-value beg end 'syntax-table '(1))
(goto-char beg)
;; If we're inside a string/comment, go to its end.
(if (setq limits (c-literal-limits))
(goto-char (cdr limits)))
(while (and (< (point) end)
(search-forward-regexp c-anchored-cpp-prefix end t))
(when (c-beginning-of-macro) ; Guard against being in a string/comment.
(setq mbeg (point))
(c-end-of-macro) ; Do we need to go forward 1 char here? No!
(c-neutralize-CPP-line mbeg (point)))
(forward-char)))) ; We might still be in a comment - this is OK.
(defun c-before-change (beg end)
;; Function to be put on `before-change-function'. Primarily, this calls
;; the language dependent `c-get-state-before-change-function'. It is
;; otherwise used only to remove stale entries from the `c-found-types'
;; cache, and to record entries which a `c-after-change' function might
;; confirm as stale.
;;
;; Note that this function must be FAST rather than accurate. Note
;; also that it only has any effect when font locking is enabled.
;; We exploit this by checking for font-lock-*-face instead of doing
;; rigourous syntactic analysis.
;; If either change boundary is wholly inside an identifier, delete
;; it/them from the cache. Don't worry about being inside a string
;; or a comment - "wrongly" removing a symbol from `c-found-types'
;; isn't critical.
(setq c-maybe-stale-found-type nil)
(save-restriction
(save-match-data
(widen)
(save-excursion
;; Are we inserting/deleting stuff in the middle of an identifier?
(c-unfind-enclosing-token beg)
(c-unfind-enclosing-token end)
;; Are we coalescing two tokens together, e.g. "fo o" -> "foo"?
(when (< beg end)
(c-unfind-coalesced-tokens beg end))
;; Are we (potentially) disrupting the syntactic context which
;; makes a type a type? E.g. by inserting stuff after "foo" in
;; "foo bar;", or before "foo" in "typedef foo *bar;"?
;;
;; We search for appropriate c-type properties "near" the change.
;; First, find an appropriate boundary for this property search.
(let (lim
type type-pos
marked-id term-pos
(end1
(or (and (eq (get-text-property end 'face) 'font-lock-comment-face)
(previous-single-property-change end 'face))
end)))
(when (>= end1 beg) ; Don't hassle about changes entirely in comments.
;; Find a limit for the search for a `c-type' property
(while
(and (/= (skip-chars-backward "^;{}") 0)
(> (point) (point-min))
(memq (c-get-char-property (1- (point)) 'face)
'(font-lock-comment-face font-lock-string-face))))
(setq lim (max (point-min) (1- (point))))
;; Look for the latest `c-type' property before end1
(when (and (> end1 (point-min))
(setq type-pos
(if (get-text-property (1- end1) 'c-type)
end1
(previous-single-property-change end1 'c-type nil lim))))
(setq type (get-text-property (max (1- type-pos) lim) 'c-type))
(when (memq type '(c-decl-id-start c-decl-type-start))
;; Get the identifier, if any, that the property is on.
(goto-char (1- type-pos))
(setq marked-id
(when (looking-at "\\(\\sw\\|\\s_\\)")
(c-beginning-of-current-token)
(buffer-substring-no-properties (point) type-pos)))
(goto-char end1)
(skip-chars-forward "^;{}") ; FIXME!!! loop for comment, maybe
(setq lim (point))
(setq term-pos
(or (next-single-property-change end 'c-type nil lim) lim))
(setq c-maybe-stale-found-type
(list type marked-id
type-pos term-pos
(buffer-substring-no-properties type-pos term-pos)
(buffer-substring-no-properties beg end)))))))
(setq c-new-BEG beg
c-new-END end)
(if c-get-state-before-change-function
(funcall c-get-state-before-change-function beg end))
))))
(defun c-after-change (beg end old-len)
;; Function put on `after-change-functions' to adjust various caches
;; etc. Prefer speed to finesse here, since there will be an order
;; of magnitude more calls to this function than any of the
;; functions that use the caches.
;;
;; Note that care must be taken so that this is called before any
;; font-lock callbacks since we might get calls to functions using
;; these caches from inside them, and we must thus be sure that this
;; has already been executed.
;;
;; This calls the language variable c-before-font-lock-function, if non nil.
;; This typically sets `syntax-table' properties.
(c-save-buffer-state ()
;; When `combine-after-change-calls' is used we might get calls
;; with regions outside the current narrowing. This has been
;; observed in Emacs 20.7.
(save-restriction
(save-match-data ; c-recognize-<>-arglists changes match-data
(widen)
(when (> end (point-max))
;; Some emacsen might return positions past the end. This has been
;; observed in Emacs 20.7 when rereading a buffer changed on disk
;; (haven't been able to minimize it, but Emacs 21.3 appears to
;; work).
(setq end (point-max))
(when (> beg end)
(setq beg end)))
(c-trim-found-types beg end old-len) ; maybe we don't need all of these.
(c-invalidate-sws-region-after beg end)
(c-invalidate-state-cache beg)
(c-invalidate-find-decl-cache beg)
(when c-recognize-<>-arglists
(c-after-change-check-<>-operators beg end))
(if c-before-font-lock-function
(save-excursion
(funcall c-before-font-lock-function beg end old-len)))))))
(defun c-after-font-lock-init ()
;; Put on `font-lock-mode-hook'.
(remove-hook 'after-change-functions 'c-after-change t)
(add-hook 'after-change-functions 'c-after-change nil t))
(defun c-font-lock-init ()
"Set up the font-lock variables for using the font-lock support in CC Mode.
This does not load the font-lock package. Use after
`c-basic-common-init' and after cc-fonts has been loaded."
(make-local-variable 'font-lock-defaults)
(setq font-lock-defaults
`(,(if (c-major-mode-is 'awk-mode)
;; awk-mode currently has only one font lock level.
'awk-font-lock-keywords
(mapcar 'c-mode-symbol
'("font-lock-keywords" "font-lock-keywords-1"
"font-lock-keywords-2" "font-lock-keywords-3")))
nil nil
,c-identifier-syntax-modifications
c-beginning-of-syntax
(font-lock-lines-before . 1)
(font-lock-mark-block-function
. c-mark-function)))
(make-local-hook 'font-lock-mode-hook)
(add-hook 'font-lock-mode-hook 'c-after-font-lock-init nil t))
(defmacro c-advise-fl-for-region (function)
`(defadvice ,function (before get-awk-region activate)
;; When font-locking an AWK Mode buffer, make sure that any string/regexp is
;; completely font-locked.
(when (eq major-mode 'awk-mode)
(save-excursion
(ad-set-arg 1 c-new-END) ; end
(ad-set-arg 0 c-new-BEG))))) ; beg
(c-advise-fl-for-region font-lock-after-change-function)
(c-advise-fl-for-region jit-lock-after-change)
(c-advise-fl-for-region lazy-lock-defer-rest-after-change)
(c-advise-fl-for-region lazy-lock-defer-line-after-change)
;; Support for C
@ -1339,21 +1485,7 @@ Key bindings:
(use-local-map awk-mode-map)
(c-init-language-vars-for 'awk-mode)
(c-common-init 'awk-mode)
;; The rest of CC Mode does not (yet) use `font-lock-syntactic-keywords',
;; so it's not set by `c-font-lock-init'.
(make-local-variable 'font-lock-syntactic-keywords)
(setq font-lock-syntactic-keywords
'((c-awk-set-syntax-table-properties
0 (0) ; Everything on this line is a dummy.
nil t)))
(c-awk-unstick-NL-prop)
(add-hook 'before-change-functions 'c-awk-before-change nil t)
(add-hook 'after-change-functions 'c-awk-after-change nil t)
(c-save-buffer-state nil
(save-restriction
(widen)
(c-awk-clear-NL-props (point-min) (point-max))
(c-awk-after-change (point-min) (point-max) 0))) ; Set syntax-table props.
;; Prevent Xemacs's buffer-syntactic-context being used. See the comment
;; in cc-engine.el, just before (defun c-fast-in-literal ...

View file

@ -423,7 +423,7 @@ STYLE using `c-set-style' if the optional SET-P flag is non-nil."
(defun c-read-offset (langelem)
;; read new offset value for LANGELEM from minibuffer. return a
;; legal value only
;; valid value only
(let* ((oldoff (cdr-safe (or (assq langelem c-offsets-alist)
(assq langelem (get 'c-offsets-alist
'c-stylevar-fallback)))))
@ -555,7 +555,7 @@ variables."
"[ \t\f]*\\\\?$")
(setq c-sentence-end-with-esc-eol
(concat "\\(\\(" (c-default-value-sentence-end) "\\)"
;; N.B.: "$" would be illegal when not enclosed like "\\($\\)".
;; N.B.: "$" would be invalid when not enclosed like "\\($\\)".
"\\|" "[.?!][]\"')}]* ?\\\\\\($\\)[ \t\n]*"
"\\)")))

View file

@ -1629,9 +1629,13 @@ Just inserts the text, but uses `insert-before-markers'."
(defun compilation-next-error (n &optional different-file pt)
"Move point to the next error in the compilation buffer.
This function does NOT find the source line like \\[next-error].
Prefix arg N says how many error messages to move forwards (or
backwards, if negative).
Does NOT find the source line like \\[next-error]."
Optional arg DIFFERENT-FILE, if non-nil, means find next error for a
file that is different from the current one.
Optional arg PT, if non-nil, specifies the value of point to start
looking for the next message."
(interactive "p")
(or (compilation-buffer-p (current-buffer))
(error "Not in a compilation buffer"))
@ -1943,13 +1947,17 @@ and overlay is highlighted between MK and END-MK."
(defun compilation-find-file (marker filename directory &rest formats)
"Find a buffer for file FILENAME.
If FILENAME is not found at all, ask the user where to find it.
Pop up the buffer containing MARKER and scroll to MARKER if we ask
the user where to find the file.
Search the directories in `compilation-search-path'.
A nil in `compilation-search-path' means to try the
\"current\" directory, which is passed in DIRECTORY.
If DIRECTORY is relative, it is combined with `default-directory'.
If DIRECTORY is nil, that means use `default-directory'.
If FILENAME is not found at all, ask the user where to find it.
Pop up the buffer containing MARKER and scroll to MARKER if we ask the user."
FORMATS, if given, is a list of formats to reformat FILENAME when
looking for it: for each element FMT in FORMATS, this function
attempts to find a file whose name is produced by (format FMT FILENAME)."
(or formats (setq formats '("%s")))
(let ((dirs compilation-search-path)
(spec-dir (if directory

View file

@ -1247,7 +1247,7 @@ versions of Emacs."
["Contract groups" cperl-contract-levels
cperl-use-syntax-table-text-property]
"----"
["Find next interpolated" cperl-next-interpolated-REx
["Find next interpolated" cperl-next-interpolated-REx
(next-single-property-change (point-min) 'REx-interpolated)]
["Find next interpolated (no //o)"
cperl-next-interpolated-REx-0
@ -2846,7 +2846,7 @@ Will not look before LIM."
(skip-chars-backward " \t")
(looking-at "[ \t]*[a-zA-Z_][a-zA-Z_0-9]*[ \t]*:")))
(get-text-property (point) 'first-format-line)))
;; Look at previous line that's at column 0
;; to determine whether we are in top-level decls
;; or function's arg decls. Set basic-indent accordingly.
@ -3080,7 +3080,7 @@ and closing parentheses and brackets."
((eq 'toplevel (elt i 0)) ;; [toplevel start char-after state immed-after-block]
(+ (save-excursion ; To beg-of-defun, or end of last sexp
(goto-char (elt i 1)) ; start = Good place to start parsing
(- (current-indentation) ;
(- (current-indentation) ;
(if (elt i 4) cperl-indent-level 0))) ; immed-after-block
(if (eq (elt i 2) ?{) cperl-continued-brace-offset 0) ; char-after
;; Look at previous line that's at column 0
@ -3900,7 +3900,7 @@ the sections using `cperl-pod-head-face', `cperl-pod-face',
;;; XXX What to do: foo <<bar ???
;;; XXX Need to support print {a} <<B ???
(forward-sexp -1)
(save-match-data
(save-match-data
; $foo << b; $f .= <<B;
; ($f+1) << b; a($f) . <<B;
; foo 1, <<B; $x{a} <<b;
@ -3932,7 +3932,7 @@ the sections using `cperl-pod-head-face', `cperl-pod-face',
qtag (regexp-quote tag))
(cond (cperl-pod-here-fontify
;; Highlight the starting delimiter
(cperl-postpone-fontification
(cperl-postpone-fontification
b1 e1 'face my-cperl-delimiters-face)
(cperl-put-do-not-fontify b1 e1 t)))
(forward-line)
@ -4292,7 +4292,7 @@ the sections using `cperl-pod-head-face', `cperl-pod-face',
;;;m^a[\^b]c^ + m.a[^b]\.c.;
(save-excursion
(goto-char (1+ b))
;; First
;; First
(cperl-look-at-leading-count is-x-REx e)
(setq hairy-RE
(concat
@ -4453,7 +4453,7 @@ the sections using `cperl-pod-head-face', `cperl-pod-face',
;; This is not pretty: the 5.8.7 logic:
;; \0numx -> octal (up to total 3 dig)
;; \DIGIT -> backref unless \0
;; \DIGITs -> backref if legal
;; \DIGITs -> backref if valid
;; otherwise up to 3 -> octal
;; Do not try to distinguish, we guess
((or (and (memq qtag (append "01234567" nil))
@ -4461,7 +4461,7 @@ the sections using `cperl-pod-head-face', `cperl-pod-face',
"\\=[01234567]?[01234567]?"
(1- e) 'to-end))
(and (memq qtag (append "89" nil))
(re-search-forward
(re-search-forward
"\\=[0123456789]*" (1- e) 'to-end))
(and (eq qtag ?x)
(re-search-forward
@ -4499,7 +4499,7 @@ the sections using `cperl-pod-head-face', `cperl-pod-face',
;; in m]]: m][\\\]\]] produces [\\]]
;;; POSIX? [:word:] [:^word:] only inside []
;;; "\\=\\(\\\\.\\|[^][\\\\]\\|\\[:\\^?\sw+:]\\|\\[[^:]\\)*]")
(while
(while
(and argument
(re-search-forward
(if (eq (char-after b) ?\] )
@ -5816,7 +5816,7 @@ indentation and initial hashes. Behaves usually outside of comment."
","
cperl-maybe-white-and-comment-rex
"\\([$@%*]\\([a-zA-Z0-9_:]+\\|[^a-zA-Z0-9_]\\)\\)")
;; Bug in font-lock: limit is used not only to limit
;; Bug in font-lock: limit is used not only to limit
;; searches, but to set the "extend window for
;; facification" property. Thus we need to minimize.
,(if cperl-font-lock-multiline
@ -6785,7 +6785,7 @@ construct. DONE-TO and STATEPOS indicate changes to internal caches maintained
by CPerl."
(interactive "P")
(or arg
(setq arg (if (eq cperl-syntaxify-by-font-lock
(setq arg (if (eq cperl-syntaxify-by-font-lock
(if backtrace 'backtrace 'message)) 0 1)))
(setq arg (if (> arg 0) (if backtrace 'backtrace 'message) t))
(setq cperl-syntaxify-by-font-lock arg)
@ -8246,7 +8246,7 @@ We suppose that the regexp is scanned already."
(defun cperl-invert-if-unless-modifiers ()
"Change `B if A;' into `if (A) {B}' etc if possible.
\(Unfinished.)"
(interactive) ;
(interactive) ;
(let (A B pre-B post-B pre-if post-if pre-A post-A if-string
(w-rex "\\<\\(if\\|unless\\|while\\|until\\|for\\|foreach\\)\\>"))
(and (= (char-syntax (preceding-char)) ?w)

View file

@ -326,6 +326,10 @@ session."
(setq gud-filter-pending-text nil)
(run-hooks 'gdb-mode-hook))
;; Keep as an alias for compatibility with Emacs 22.1.
;;;###autoload
(defalias 'gdba 'gdb)
(defcustom gdb-debug-log-max 128
"Maximum size of `gdb-debug-log'. If nil, size is unlimited."
:group 'gud
@ -1981,15 +1985,17 @@ static char *magick[] = {
(interactive "e")
(mouse-minibuffer-check event)
(let ((posn (event-end event)))
(if (numberp (posn-point posn))
(with-selected-window (posn-window posn)
(save-excursion
(goto-char (posn-point posn))
(if (or (posn-object posn)
(eq (car (fringe-bitmaps-at-pos (posn-point posn)))
'breakpoint))
(gud-remove nil)
(gud-break nil)))))))
(if (buffer-file-name)
(if (numberp (posn-point posn))
(with-selected-window (posn-window posn)
(save-excursion
(goto-char (posn-point posn))
(if (or (posn-object posn)
(eq (car (fringe-bitmaps-at-pos (posn-point posn)))
'breakpoint))
(gud-remove nil)
(gud-break nil)))))
(posn-set-point posn))))
(defun gdb-mouse-toggle-breakpoint-margin (event)
"Enable/disable breakpoint in left margin with mouse click."

View file

@ -145,7 +145,7 @@ Used to grey out relevant toolbar icons.")
(easy-mmode-defmap gud-menu-map
'(([help] "Info" . gud-goto-info)
([tooltips] menu-item "Toggle GUD tooltips" gud-tooltip-mode
([tooltips] menu-item "Show GUD tooltips" gud-tooltip-mode
:enable (and (not emacs-basic-display)
(display-graphic-p)
(fboundp 'x-show-tip))

View file

@ -33,7 +33,7 @@
;; for instance, at <URL:http://www.sil.org/sgml/related.html#dsssl>.]
;; All these Lisp-ish modes vary basically in details of the language
;; syntax they highlight/indent/index, but dsssl-mode uses "^;;;" as
;; the page-delimiter since ^L isn't normally a legal SGML character.
;; the page-delimiter since ^L isn't normally a valid SGML character.
;;
;; For interacting with a Scheme interpreter See also `run-scheme' in
;; the `cmuscheme' package and also the implementation-specific

View file

@ -115,9 +115,9 @@
;;; Code:
;; This variable will always hold the version number of the mode
(defconst verilog-mode-version "383"
(defconst verilog-mode-version "399"
"Version of this Verilog mode.")
(defconst verilog-mode-release-date "2008-01-07-GNU"
(defconst verilog-mode-release-date "2008-02-19-GNU"
"Release date of this Verilog mode.")
(defconst verilog-mode-release-emacs t
"If non-nil, this version of Verilog mode was released with Emacs itself.")
@ -160,13 +160,6 @@
nil ;; fab
(defmacro store-match-data (&rest args) nil))
(error nil))
(condition-case nil
(if (boundp 'current-menubar)
nil ;; great
(progn
(defmacro add-submenu (&rest args) nil))
)
(error nil))
(condition-case nil
(if (fboundp 'char-before)
nil ;; great
@ -957,7 +950,8 @@ If set will become buffer local.")
"Keymap used in Verilog mode.")
;; menus
(defvar verilog-xemacs-menu
(easy-menu-define
verilog-menu verilog-mode-map "Menu for Verilog mode"
`("Verilog"
("Choose Compilation Action"
["None"
@ -992,15 +986,12 @@ If set will become buffer local.")
:selected (equal verilog-tool `verilog-compiler)]
)
("Move"
,(if (featurep 'xemacs)
(progn
["Beginning of function" verilog-beg-of-defun t]
["End of function" verilog-end-of-defun t]
["Mark function" verilog-mark-defun t])
["Beginning of function" beginning-of-defun t]
["End of function" end-of-defun t]
["Mark function" mark-defun t])
["Beginning of function" verilog-beg-of-defun
:keys "C-M-a"]
["End of function" verilog-end-of-defun
:keys "C-M-e"]
["Mark function" verilog-mark-defun
:keys "C-M-h"]
["Goto function/module" verilog-goto-defun t]
["Move to beginning of block" electric-verilog-backward-sexp t]
["Move to end of block" electric-verilog-forward-sexp t]
@ -1057,11 +1048,10 @@ If set will become buffer local.")
["Submit bug report" verilog-submit-bug-report t]
["Version and FAQ" verilog-faq t]
["Customize Verilog Mode..." verilog-customize t]
["Customize Verilog Fonts & Colors" verilog-font-customize t]
)
"Emacs menu for Verilog mode."
)
(defvar verilog-statement-menu
["Customize Verilog Fonts & Colors" verilog-font-customize t]))
(easy-menu-define
verilog-stmt-menu verilog-mode-map "Menu for statement templates in Verilog."
'("Statements"
["Header" verilog-sk-header t]
["Comment" verilog-sk-comment t]
@ -1092,14 +1082,7 @@ If set will become buffer local.")
["Repeat" verilog-sk-repeat t]
["Case" verilog-sk-case t]
["Casex" verilog-sk-casex t]
["Casez" verilog-sk-casez t]
)
"Menu for statement templates in Verilog.")
(easy-menu-define verilog-menu verilog-mode-map "Menu for Verilog mode"
verilog-xemacs-menu)
(easy-menu-define verilog-stmt-menu verilog-mode-map "Menu for statement templates in Verilog."
verilog-statement-menu)
["Casez" verilog-sk-casez t]))
(defvar verilog-mode-abbrev-table nil
"Abbrev table in use in Verilog-mode buffers.")
@ -1451,19 +1434,18 @@ find the errors."
(defconst verilog-beg-block-re-ordered
( concat "\\<"
"\\(begin\\)" ;1
"\\|\\(randcase\\|\\(unique\\s-+\\|priority\\s-+\\)?case[xz]?\\)" ; 2
;; "\\|\\(randcase\\|case[xz]?\\)" ; 2
"\\|\\(fork\\)" ;3
"\\|\\(class\\)" ;4
"\\|\\(table\\)" ;5
"\\|\\(specify\\)" ;6
"\\|\\(function\\)" ;7
"\\|\\(task\\)" ;8
"\\|\\(generate\\)" ;9
"\\|\\(covergroup\\)" ;10
"\\|\\(property\\)" ;11
"\\|\\(\\(rand\\)?sequence\\)" ;12
"\\|\\(clocking\\)" ;13
"\\|\\(randcase\\|\\(unique\\s-+\\|priority\\s-+\\)?case[xz]?\\)" ; 2,3
"\\|\\(\\(disable\\s-+\\)?fork\\)" ;4
"\\|\\(class\\)" ;5
"\\|\\(table\\)" ;6
"\\|\\(specify\\)" ;7
"\\|\\(function\\)" ;8
"\\|\\(task\\)" ;9
"\\|\\(generate\\)" ;10
"\\|\\(covergroup\\)" ;11
"\\|\\(property\\)" ;12
"\\|\\(\\(rand\\)?sequence\\)" ;13
"\\|\\(clocking\\)" ;14
"\\>"))
(defconst verilog-end-block-ordered-rry
@ -1526,6 +1508,8 @@ find the errors."
(eval-when-compile
(verilog-regexp-words
`(
;; port direction (by themselves)
"inout" "input" "output"
;; integer_atom_type
"byte" "shortint" "int" "longint" "integer" "time"
;; integer_vector_type
@ -1572,8 +1556,8 @@ find the errors."
(concat verilog-defun-re "\\|" verilog-end-defun-re))
(defconst verilog-behavioral-block-beg-re
(concat "\\(\\<initial\\>\\|\\<final\\>\\|\\<always\\>\\|\\<always_comb\\>\\|\\<always_ff\\>\\|"
"\\<always_latch\\>\\|\\<function\\>\\|\\<task\\>\\)"))
(eval-when-compile (verilog-regexp-words `("initial" "final" "always" "always_comb" "always_latch" "always_ff"
"function" "task"))))
(defconst verilog-indent-re
(eval-when-compile
@ -1638,6 +1622,7 @@ find the errors."
`(
"endmodule" "endprimitive" "endinterface" "endpackage" "endprogram" "endclass"
))))
(defconst verilog-disable-fork-re "disable\\s-+fork")
(defconst verilog-extended-case-re "\\(unique\\s-+\\|priority\\s-+\\)?case[xz]?")
(defconst verilog-extended-complete-re
(concat "\\(\\<extern\\s-+\\|\\<virtual\\s-+\\|\\<protected\\s-+\\)*\\(\\<function\\>\\|\\<task\\>\\)"
@ -1813,6 +1798,20 @@ See also `verilog-font-lock-extra-types'.")
"Font lock mode face used to highlight AMS keywords."
:group 'font-lock-highlighting-faces)
(defvar verilog-font-grouping-keywords-face
'verilog-font-lock-grouping-keywords-face
"Font to use for Verilog Grouping Keywords (such as begin..end).")
(defface verilog-font-lock-grouping-keywords-face
'((((class color)
(background light))
(:foreground "red4" :bold t ))
(((class color)
(background dark))
(:foreground "red4" :bold t ))
(t (:italic t)))
"Font lock mode face used to highlight verilog grouping keywords."
:group 'font-lock-highlighting-faces)
(let* ((verilog-type-font-keywords
(eval-when-compile
(verilog-regexp-opt
@ -1877,8 +1876,8 @@ See also `verilog-font-lock-extra-types'.")
(eval-when-compile
(verilog-regexp-opt
'(
"assign" "begin" "case" "casex" "casez" "randcase" "deassign"
"default" "disable" "else" "end" "endcase" "endfunction"
"assign" "case" "casex" "casez" "randcase" "deassign"
"default" "disable" "else" "endcase" "endfunction"
"endgenerate" "endinterface" "endmodule" "endprimitive"
"endspecify" "endtable" "endtask" "final" "for" "force" "return" "break"
"continue" "forever" "fork" "function" "generate" "if" "iff" "initial"
@ -1887,7 +1886,12 @@ See also `verilog-font-lock-extra-types'.")
"always_latch" "posedge" "primitive" "priority" "release"
"repeat" "specify" "table" "task" "unique" "wait" "while"
"class" "program" "endclass" "endprogram"
) nil ))))
) nil )))
(verilog-font-grouping-keywords
(eval-when-compile
(verilog-regexp-opt
'( "begin" "end" ) nil ))))
(setq verilog-font-lock-keywords
(list
@ -1897,7 +1901,9 @@ See also `verilog-font-lock-extra-types'.")
"\\$[a-zA-Z][a-zA-Z0-9_\\$]*"
"\\)\\>")
;; Fontify all types
(cons (concat "\\<\\(" verilog-type-font-keywords "\\)\\>")
(cons (concat "\\(\\<" verilog-font-grouping-keywords "\\)\\>")
'verilog-font-lock-ams-face)
(cons (concat "\\<\\(" verilog-type-font-keywords "\\)\\>")
'font-lock-type-face)
;; Fontify IEEE-P1800 keywords appropriately
(if verilog-highlight-p1800-keywords
@ -2064,49 +2070,64 @@ Use filename, if current buffer being edited shorten to just buffer name."
(cond
((verilog-skip-forward-comment-or-string)
(verilog-forward-syntactic-ws))
((looking-at verilog-beg-block-re-ordered);; begin|case|fork|class|table|specify|function|task|generate|covergroup|property|sequence|clocking
((looking-at verilog-beg-block-re-ordered) ;; begin|(case)|xx|(fork)|class|table|specify|function|task|generate|covergroup|property|sequence|clocking
(cond
((match-end 1) ; end
;; Search forward for matching begin
(setq reg "\\(\\<begin\\>\\)\\|\\(\\<end\\>\\)" ))
((match-end 2) ; endcase
;; Search forward for matching case
(setq reg "\\(\\<randcase\\>\\|\\(\\<unique\\>\\s-+\\|\\<priority\\>\\s-+\\)?\\<case[xz]?\\>[^:]\\)\\|\\(\\<endcase\\>\\)" ))
((match-end 3) ; join
;; Search forward for matching fork
(setq reg "\\(\\<fork\\>\\)\\|\\(\\<join\\(_any\\|_none\\)?\\>\\)" ))
((match-end 4) ; endclass
(setq reg "\\(\\<randcase\\>\\|\\(\\<unique\\>\\s-+\\|\\<priority\\>\\s-+\\)?\\<case[xz]?\\>[^:]\\)\\|\\(\\<endcase\\>\\)" )
(setq md 3) ;; ender is third item in regexp
)
((match-end 4) ; join
;; might be "disable fork"
(if (or
(looking-at verilog-disable-fork-re)
(and (looking-at "fork")
(progn
(forward-word -1)
(looking-at verilog-disable-fork-re))))
(progn
(goto-char (match-end 0))
(forward-word)
(setq reg nil))
(progn
;; Search forward for matching fork
(setq reg "\\(\\<fork\\>\\)\\|\\(\\<join\\(_any\\|_none\\)?\\>\\)" ))))
((match-end 5) ; endclass
;; Search forward for matching class
(setq reg "\\(\\<class\\>\\)\\|\\(\\<endclass\\>\\)" ))
((match-end 5) ; endtable
((match-end 6) ; endtable
;; Search forward for matching table
(setq reg "\\(\\<table\\>\\)\\|\\(\\<endtable\\>\\)" ))
((match-end 6) ; endspecify
((match-end 7) ; endspecify
;; Search forward for matching specify
(setq reg "\\(\\<specify\\>\\)\\|\\(\\<endspecify\\>\\)" ))
((match-end 7) ; endfunction
((match-end 8) ; endfunction
;; Search forward for matching function
(setq reg "\\(\\<function\\>\\)\\|\\(\\<endfunction\\>\\)" ))
((match-end 8) ; endtask
((match-end 9) ; endtask
;; Search forward for matching task
(setq reg "\\(\\<task\\>\\)\\|\\(\\<endtask\\>\\)" ))
((match-end 9) ; endgenerate
((match-end 10) ; endgenerate
;; Search forward for matching generate
(setq reg "\\(\\<generate\\>\\)\\|\\(\\<endgenerate\\>\\)" ))
((match-end 10) ; endgroup
((match-end 11) ; endgroup
;; Search forward for matching covergroup
(setq reg "\\(\\<covergroup\\>\\)\\|\\(\\<endgroup\\>\\)" ))
((match-end 11) ; endproperty
((match-end 12) ; endproperty
;; Search forward for matching property
(setq reg "\\(\\<property\\>\\)\\|\\(\\<endproperty\\>\\)" ))
((match-end 12) ; endsequence
((match-end 13) ; endsequence
;; Search forward for matching sequence
(setq reg "\\(\\<\\(rand\\)?sequence\\>\\)\\|\\(\\<endsequence\\>\\)" )
(setq md 3)) ; 3 to get to endsequence in the reg above
((match-end 13) ; endclocking
((match-end 14) ; endclocking
;; Search forward for matching clocking
(setq reg "\\(\\<clocking\\>\\)\\|\\(\\<endclocking\\>\\)" )))
(if (forward-word 1)
(if (and reg
(forward-word 1))
(catch 'skip
(let ((nest 1))
(while (verilog-re-search-forward reg nil 'move)
@ -2343,11 +2364,9 @@ Key bindings specific to `verilog-mode-map' are:
;; Setting up menus
(when (featurep 'xemacs)
(when (and current-menubar
(not (assoc "Verilog" current-menubar)))
;; (set-buffer-menubar (copy-sequence current-menubar))
(add-submenu nil verilog-xemacs-menu)
(add-submenu nil verilog-stmt-menu)))
(easy-menu-add verilog-stmt-menu)
(easy-menu-add verilog-menu)
(setq mode-popup-menu (cons "Verilog Mode" verilog-stmt-menu)))
;; Stuff for GNU emacs
(set (make-local-variable 'font-lock-defaults)
@ -2641,13 +2660,15 @@ following code fragment:
"Mark the current Verilog function (or procedure).
This puts the mark at the end, and point at the beginning."
(interactive)
(when (featurep 'xemacs)
(push-mark (point))
(verilog-end-of-defun)
(push-mark (point))
(verilog-beg-of-defun)
(if (fboundp 'zmacs-activate-region)
(zmacs-activate-region))))
(if (featurep 'xemacs)
(progn
(push-mark (point))
(verilog-end-of-defun)
(push-mark (point))
(verilog-beg-of-defun)
(if (fboundp 'zmacs-activate-region)
(zmacs-activate-region)))
(mark-defun)))
(defun verilog-comment-region (start end)
; checkdoc-params: (start end)
@ -3932,6 +3953,16 @@ Return a list of two elements: (INDENT-TYPE INDENT-LEVEL)."
(throw 'nesting 'case)
(goto-char here)))
(throw 'nesting 'case))
((match-end 4) ; *sigh* could be "disable fork"
(let ((here (point)))
(verilog-beg-of-statement)
(if (looking-at verilog-disable-fork-re)
t ; is disable fork, this is a normal statement
(progn ; or is fork, starts a new block
(goto-char here)
(throw 'nesting 'block)))))
;; need to consider typedef struct here...
((looking-at "\\<class\\|struct\\|function\\|task\\|property\\>")
@ -4167,6 +4198,8 @@ Set point to where line starts."
(cond
((looking-at "\\<else\\>")
t)
((looking-at verilog-behavioral-block-beg-re)
t)
((looking-at verilog-indent-re)
nil)
(t
@ -4682,7 +4715,7 @@ ARG is ignored, for `comment-indent-function' compatibility."
;;
(defun verilog-pretty-declarations ()
(defun verilog-pretty-declarations (&optional quiet)
"Line up declarations around point."
(interactive)
(save-excursion
@ -4726,7 +4759,8 @@ ARG is ignored, for `comment-indent-function' compatibility."
(current-column))))
(goto-char end)
(goto-char start)
(if (> (- end start) 100)
(if (and (not quiet)
(> (- end start) 100))
(message "Lining up declarations..(please stand by)"))
;; Get the beginning of line indent first
(while (progn (setq e (marker-position edpos))
@ -4751,7 +4785,7 @@ ARG is ignored, for `comment-indent-function' compatibility."
(setq r (- e (point)))
(> r 0))
(setq e (point))
(message "%d" r)
(unless quiet (message "%d" r))
(cond
((or (and verilog-indent-declaration-macros
(looking-at verilog-declaration-re-1-macro))
@ -4776,90 +4810,98 @@ ARG is ignored, for `comment-indent-function' compatibility."
(verilog-forward-ws&directives)
(forward-line -1)))
(forward-line 1))
(message "")))))
(unless quiet (message ""))))))
(defun verilog-pretty-expr (&optional myre)
(defun verilog-pretty-expr (&optional quiet myre)
"Line up expressions around point, or optional regexp MYRE."
(interactive "sRegular Expression: ((<|:)?=) ")
(save-excursion
(if (or (eq myre nil)
(string-equal myre ""))
(setq myre "\\(<\\|:\\)?="))
; (setq myre (concat "\\(^[^;" myre "]*\\)\\([" myre "]\\)"))
(setq myre (concat "\\(^[^;#:?=]*\\)\\([" myre "]\\)"))
(beginning-of-line)
(if (and (not (looking-at (concat "^\\s-*" verilog-complete-reg)))
(looking-at myre))
(let* ((here (point))
(e) (r)
(start
(progn
(beginning-of-line)
(setq e (point))
(verilog-backward-syntactic-ws)
(beginning-of-line)
(while (and (not (looking-at (concat "^\\s-*" verilog-complete-reg)))
(looking-at myre)
(not (bobp)))
(setq myre (concat "\\(^[^;#:<=>]*\\)\\(" myre "\\)"))
(let ((rexp(concat "^\\s-*" verilog-complete-reg)))
(beginning-of-line)
(if (and (not (looking-at rexp ))
(looking-at myre))
(let* ((here (point))
(e) (r)
(start
(progn
(beginning-of-line)
(setq e (point))
(verilog-backward-syntactic-ws)
(beginning-of-line)
) ;Ack, need to grok `define
e))
(end
(progn
(goto-char here)
(end-of-line)
(setq e (point)) ;Might be on last line
(verilog-forward-syntactic-ws)
(beginning-of-line)
(while (and (not (looking-at
(concat "^\\s-*" verilog-complete-reg)))
(looking-at myre))
(while (and (not (looking-at rexp ))
(looking-at myre)
(not (bobp))
)
(setq e (point))
(verilog-backward-syntactic-ws)
(beginning-of-line)
) ;Ack, need to grok `define
e))
(end
(progn
(goto-char here)
(end-of-line)
(setq e (point))
(setq e (point)) ;Might be on last line
(verilog-forward-syntactic-ws)
(beginning-of-line))
e))
(edpos (set-marker (make-marker) end))
(ind))
(goto-char start)
(verilog-do-indent (verilog-calculate-indent))
(if (> (- end start) 100)
(message "Lining up expressions..(please stand by)"))
(beginning-of-line)
(while (and (not (looking-at rexp ))
(looking-at myre))
(end-of-line)
(setq e (point))
(verilog-forward-syntactic-ws)
(beginning-of-line)
)
e))
(edpos (set-marker (make-marker) end))
(ind)
)
(goto-char start)
(verilog-do-indent (verilog-calculate-indent))
(if (and (not quiet)
(> (- end start) 100))
(message "Lining up expressions..(please stand by)"))
;; Set indent to minimum throughout region
(while (< (point) (marker-position edpos))
(beginning-of-line)
(verilog-just-one-space myre)
(end-of-line)
(verilog-forward-syntactic-ws))
;; Set indent to minimum throughout region
(while (< (point) (marker-position edpos))
(beginning-of-line)
(verilog-just-one-space myre)
(end-of-line)
(verilog-forward-syntactic-ws)
)
;; Now find biggest prefix
(setq ind (verilog-get-lineup-indent-2 myre start edpos))
;; Now find biggest prefix
(setq ind (verilog-get-lineup-indent-2 myre start edpos))
;; Now indent each line.
(goto-char start)
(while (progn (setq e (marker-position edpos))
(setq r (- e (point)))
(> r 0))
(setq e (point))
(message "%d" r)
(cond
((looking-at myre)
(goto-char (match-end 1))
(if (eq (char-after) ?=)
(indent-to (1+ ind)) ; line up the = of the <= with surrounding =
(indent-to ind)))
((verilog-continued-line-1 start)
(goto-char e)
(indent-line-to ind))
(t ; Must be comment or white space
(goto-char e)
(verilog-forward-ws&directives)
(forward-line -1)))
(forward-line 1))
(message "")))))
;; Now indent each line.
(goto-char start)
(while (progn (setq e (marker-position edpos))
(setq r (- e (point)))
(> r 0))
(setq e (point))
(if (not quiet) (message "%d" r))
(cond
((looking-at myre)
(goto-char (match-end 1))
(if (not (verilog-parenthesis-depth)) ;; ignore parenthsized exprs
(if (eq (char-after) ?=)
(indent-to (1+ ind)) ; line up the = of the <= with surrounding =
(indent-to ind)
)))
((verilog-continued-line-1 start)
(goto-char e)
(indent-line-to ind))
(t ; Must be comment or white space
(goto-char e)
(verilog-forward-ws&directives)
(forward-line -1))
)
(forward-line 1))
(unless quiet (message ""))
)))))
(defun verilog-just-one-space (myre)
"Remove extra spaces around regular expression MYRE."
@ -4873,8 +4915,8 @@ ARG is ignored, for `comment-indent-function' compatibility."
(if (looking-at "\\s-") (just-one-space))
(goto-char p1)
(forward-char -1)
(if (looking-at "\\s-") (just-one-space)))))
(message ""))
(if (looking-at "\\s-") (just-one-space))
))))
(defun verilog-indent-declaration (baseind)
"Indent current lines as declaration.
@ -4975,13 +5017,15 @@ Region is defined by B and EDPOS."
;; Get rightmost position
(while (progn (setq e (marker-position edpos))
(< (point) e))
(if (verilog-re-search-forward myre e 'move)
(if (and (verilog-re-search-forward myre e 'move)
(not (verilog-parenthesis-depth))) ;; skip parenthsized exprs
(progn
(goto-char (match-end 0))
(goto-char (match-beginning 2))
(verilog-backward-syntactic-ws)
(if (> (current-column) ind)
(setq ind (current-column)))
(goto-char (match-end 0)))))
(goto-char (match-end 0)))
))
(if (> ind 0)
(1+ ind)
;; No lineup-string found
@ -5455,9 +5499,7 @@ If search fails, other files are checked based on
(verilog-goto-defun-file label))))
;; Eliminate compile warning
(eval-when-compile
(if (not (boundp 'occur-pos-list))
(defvar occur-pos-list nil "Backward compatibility occur positions.")))
(defvar occur-pos-list)
(defun verilog-showscopes ()
"List all scopes in this module."
@ -8499,7 +8541,7 @@ Typing \\[verilog-auto] will make this into:
(when nil ;; Too slow on huge modules, plus makes everyone's module change
(beginning-of-line)
(setq pnt (point))
(verilog-pretty-declarations)
(verilog-pretty-declarations quiet)
(goto-char pnt)
(verilog-pretty-expr "//"))))))
@ -9814,23 +9856,6 @@ and the case items."
> ("case selector: " str ": begin" \n > "next_" verilog-sk-state " = " _ ";" \n > (- verilog-indent-level-behavioral) "end" \n )
resume: > (- verilog-case-indent) "endcase" (progn (electric-verilog-terminate-line) nil)
> (- verilog-indent-level-behavioral) "end" (progn (electric-verilog-terminate-line) nil))
;; Eliminate compile warning
(eval-when-compile
(if (not (boundp 'mode-popup-menu))
(defvar mode-popup-menu nil "Compatibility with XEmacs.")))
;; ---- add menu 'Statements' in Verilog mode (MH)
(defun verilog-add-statement-menu ()
"Add the menu 'Statements' to the menu bar in Verilog mode."
(if (featurep 'xemacs)
(progn
(easy-menu-add verilog-stmt-menu)
(easy-menu-add verilog-menu)
(setq mode-popup-menu (cons "Verilog Mode" verilog-stmt-menu)))))
(add-hook 'verilog-mode-hook 'verilog-add-statement-menu)
;;

View file

@ -1944,24 +1944,25 @@ This finishes the change group by reverting all of its changes."
(with-current-buffer (car elt)
(setq elt (cdr elt))
(let ((old-car
(if (consp elt) (car elt)))
(old-cdr
(if (consp elt) (cdr elt))))
;; Temporarily truncate the undo log at ELT.
(when (consp elt)
(setcar elt nil) (setcdr elt nil))
(unless (eq last-command 'undo) (undo-start))
;; Make sure there's no confusion.
(when (and (consp elt) (not (eq elt (last pending-undo-list))))
(error "Undoing to some unrelated state"))
;; Undo it all.
(while (listp pending-undo-list) (undo-more 1))
;; Reset the modified cons cell ELT to its original content.
(when (consp elt)
(setcar elt old-car)
(setcdr elt old-cdr))
;; Revert the undo info to what it was when we grabbed the state.
(setq buffer-undo-list elt)))))
(if (consp elt) (car elt)))
(old-cdr
(if (consp elt) (cdr elt))))
;; Temporarily truncate the undo log at ELT.
(when (consp elt)
(setcar elt nil) (setcdr elt nil))
(unless (eq last-command 'undo) (undo-start))
;; Make sure there's no confusion.
(when (and (consp elt) (not (eq elt (last pending-undo-list))))
(error "Undoing to some unrelated state"))
;; Undo it all.
(save-excursion
(while (listp pending-undo-list) (undo-more 1)))
;; Reset the modified cons cell ELT to its original content.
(when (consp elt)
(setcar elt old-car)
(setcdr elt old-cdr))
;; Revert the undo info to what it was when we grabbed the state.
(setq buffer-undo-list elt)))))
;;;; Display-related functions.

View file

@ -3730,7 +3730,7 @@ Both should not be used to define a buffer-local dictionary."
;; any character other than a space. Not rigorous enough.
(while (re-search-forward " *\\([^ ]+\\)" end t)
(setq string (match-string-no-properties 1))
;; This can fail when string contains a word with illegal chars.
;; This can fail when string contains a word with invalid chars.
;; Error handling needs to be added between ispell and emacs.
(if (and (< 1 (length string))
(equal 0 (string-match ispell-casechars string)))

View file

@ -465,8 +465,12 @@ Do \\[describe-key] on the following bindings to discover what they do.
sgml-transformation-function))
;; This will allow existing comments within declarations to be
;; recognized.
(set (make-local-variable 'comment-start-skip) "\\(?:<!\\)?--[ \t]*")
(set (make-local-variable 'comment-end-skip) "[ \t]*--\\([ \t\n]*>\\)?")
;; I can't find a clear description of SGML/XML comments, but it seems that
;; the only reliable ones are <!-- ... --> although it's not clear what
;; "..." can contain. It used to accept -- ... -- as well, but that was
;; apparently a mistake.
(set (make-local-variable 'comment-start-skip) "<!--[ \t]*")
(set (make-local-variable 'comment-end-skip) "[ \t]*--[ \t\n]*>")
;; This definition has an HTML leaning but probably fits well for other modes.
(setq imenu-generic-expression
`((nil

View file

@ -333,12 +333,13 @@ Optional arg INVERT non-nil reverses the sense of the check;
the root is the last directory for which WITNESS *is* found."
;; Represent /home/luser/foo as ~/foo so that we don't try to look for
;; witnesses in /home or in /.
(while (not (file-directory-p file))
(setq file (file-name-directory (directory-file-name file))))
(setq file (abbreviate-file-name file))
(let ((root nil)
(prev-file file)
(user (nth 2 (file-attributes file)))
;; `user' is not initialized outside the loop because
;; `file' may not exist, so we may have to walk up part of the
;; hierarchy before we find the "initial UID".
(user nil)
try)
(while (not (or root
(null file)
@ -347,7 +348,9 @@ the root is the last directory for which WITNESS *is* found."
;; to another user. This should save us from looking in
;; things like /net and /afs. This assumes that all the
;; files inside a project belong to the same user.
(not (equal user (nth 2 (file-attributes file))))
(let ((prev-user user))
(setq user (nth 2 (file-attributes file)))
(and prev-user (not (equal user prev-user))))
(string-match vc-ignore-dir-regexp file)))
(setq try (file-exists-p (expand-file-name witness file)))
(cond ((and invert (not try)) (setq root prev-file))

View file

@ -14,6 +14,15 @@
* configure.bat (dontCopy): Do not rename admin/unidata/Makefile.
2008-02-11 Jason Rumney <jasonr@gnu.org>
* addpm.c (add_registry): Add an App Paths registry key.
Look for GTK and add it to the DLL search path for Emacs if found.
2008-02-05 Juanma Barranquero <lekktu@gmail.com>
* configure.bat: In help, use generic names for the image libraries.
2008-02-04 Juanma Barranquero <lekktu@gmail.com>
* .cvsignore: Don't ignore .arch-inventory.

View file

@ -101,13 +101,18 @@
dos2unix and unix2dos available from GnuWin32 or dtou and utod from
the DJGPP project.
Additionally, the files lisp/international/uni-*.el need Unix line
ends due to some embedded ^M characters that are not at the end of
the line. So in the lisp/international directory you should run the
following command, or use dos2unix on those files.
Additionally, the files lisp/international/uni-*.el and
lisp/ldefs-boot.el need Unix line ends due to some embedded ^M
characters that are not at the end of the line. So in the
lisp/international directory you should run the following command, or
use dos2unix on those files.
cvs update -kb uni-*.el
and in the lisp directory, use the command:
cvs update -kb lisp/ldefs-boot.el
In addition to this file, you should also read INSTALL.CVS in the
parent directory, and make sure that you have a version of
"touch.exe" in your path, and that it will create files that do not
@ -279,8 +284,10 @@
compatible (for example, that they were built with the same compiler).
Binaries for the image libraries (among many others) can be found at
the GnuWin32 project. These are built with MinGW, but they can be
used with both GCC/MinGW and MSVC builds of Emacs. See the info on
the GnuWin32 project. PNG, JPEG and TIFF libraries are also
included with GTK, which is installed along with other Free Software
that requires it. These are built with MinGW, but they can be used
with both GCC/MinGW and MSVC builds of Emacs. See the info on
http://ourcomments.org/Emacs/w32-build-emacs.html, under "How to Get
Images Support", for more details about installing image support
libraries. Note specifically that, due to some packaging snafus in
@ -288,6 +295,9 @@
_source_ packages for some of the libraries in order to get the
header files necessary for building Emacs with image support.
If GTK 2.0 is installed, addpm will arrange for its image libraries
to be on the DLL search path for Emacs.
* Building
After running configure, simply run the appropriate `make' program for

View file

@ -46,6 +46,9 @@ DdeCallback (UINT uType, UINT uFmt, HCONV hconv,
CF_TEXT, XTYP_EXECUTE, 30000, NULL)
#define REG_ROOT "SOFTWARE\\GNU\\Emacs"
#define REG_GTK "SOFTWARE\\GTK\\2.0"
#define REG_APP_PATH \
"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\App Paths\\emacs.exe"
static struct entry
{
@ -73,6 +76,57 @@ add_registry (path)
HKEY hrootkey = NULL;
int i;
BOOL ok = TRUE;
DWORD size;
/* Record the location of Emacs to the App Paths key if we have
sufficient permissions to do so. This helps Windows find emacs quickly
if the user types emacs.exe in the "Run Program" dialog without having
emacs on their path. Some applications also use the same registry key
to discover the installation directory for programs they are looking for.
Multiple installations cannot be handled by this method, but it does not
affect the general operation of other installations of Emacs, and we
are blindly overwriting the Start Menu entries already.
*/
if (RegCreateKeyEx (HKEY_LOCAL_MACHINE, REG_APP_PATH, 0, "",
REG_OPTION_NON_VOLATILE, KEY_WRITE, NULL,
&hrootkey, NULL) == ERROR_SUCCESS)
{
int len;
char *emacs_path;
HKEY gtk_key = NULL;
len = strlen (path) + 15; /* \bin\emacs.exe + terminator. */
emacs_path = alloca (len);
sprintf (emacs_path, "%s\\bin\\emacs.exe", path);
RegSetValueEx (hrootkey, NULL, 0, REG_SZ, emacs_path, len);
/* Look for a GTK installation. If found, add it to the library search
path for Emacs so that the image libraries it provides are available
to Emacs regardless of whether it is in the path or not. */
if (RegOpenKeyEx (HKEY_LOCAL_MACHINE, REG_GTK, REG_OPTION_NON_VOLATILE,
KEY_READ, &gtk_key) == ERROR_SUCCESS)
{
if (RegQueryValueEx (gtk_key, "DllPath", NULL, NULL,
NULL, &size) == ERROR_SUCCESS)
{
char *gtk_path = (char *) alloca (size);
if (RegQueryValueEx (gtk_key, "DllPath", NULL, NULL,
gtk_path, &size) == ERROR_SUCCESS)
{
/* Make sure the emacs bin directory continues to be searched
first by including it as well. */
char *dll_paths;
len = strlen (path) + 5 + size;
dll_paths = (char *) alloca (size + strlen (path) + 1);
sprintf (dll_paths, "%s\\bin;%s", path, gtk_path);
RegSetValueEx (hrootkey, "Path", 0, REG_SZ, dll_paths, len);
}
}
RegCloseKey (gtk_key);
}
RegCloseKey (hrootkey);
}
/* Previous versions relied on registry settings, but we do not need
them any more. If registry settings are installed from a previous

View file

@ -121,11 +121,11 @@ echo. --no-opt disable optimization
echo. --no-cygwin use -mno-cygwin option with GCC
echo. --cflags FLAG pass FLAG to compiler
echo. --ldflags FLAG pass FLAG to compiler when linking
echo. --without-png do not use libpng
echo. --without-jpeg do not use jpeg-6b
echo. --without-gif do not use giflib or libungif
echo. --without-tiff do not use libtiff
echo. --without-xpm do not use libXpm
echo. --without-png do not use PNG library even if it is installed
echo. --without-jpeg do not use JPEG library even if it is installed
echo. --without-gif do not use GIF library even if it is installed
echo. --without-tiff do not use TIFF library even if it is installed
echo. --without-xpm do not use XPM library even if it is installed
echo. --enable-font-backend build with font backend support
goto end
rem ----------------------------------------------------------------------

View file

@ -1,3 +1,20 @@
2008-02-19 Stefan Monnier <monnier@iro.umontreal.ca>
* intervals.h (INT_LISPLIKE): Remove. It may misfire.
(NULL_INTERVAL_P, SET_INTERVAL_PARENT): Don't use it.
2008-02-18 Jason Rumney <jasonr@gnu.org>
* w32fns.c (Fw32_shell_execute): Encode parameters.
2008-02-09 Eli Zaretskii <eliz@gnu.org>
* fileio.c (syms_of_fileio) <insert-default-directory>: Doc fix.
2008-02-05 Juanma Barranquero <lekktu@gmail.com>
* unexhp9k800.c (read_header): Replace `legal' with `valid'.
2008-02-24 Ulrich Neumerkel <ulrich@complang.tuwien.ac.at> (tiny change)
* xterm.c (x_set_offset): Don't change the gravity if

View file

@ -6619,19 +6619,25 @@ of file names regardless of the current language environment. */);
DEFVAR_BOOL ("insert-default-directory", &insert_default_directory,
doc: /* *Non-nil means when reading a filename start with default dir in minibuffer.
If the initial minibuffer contents are non-empty, you can usually
request a default filename by typing RETURN without editing. For some
commands, exiting with an empty minibuffer has a special meaning,
such as making the current buffer visit no file in the case of
`set-visited-file-name'.
When the initial minibuffer contents show a name of a file or a directory,
typing RETURN without editing the initial contents is equivalent to typing
the default file name.
If this variable is non-nil, the minibuffer contents are always
initially non-empty and typing RETURN without editing will fetch the
initially non-empty, and typing RETURN without editing will fetch the
default name, if one is provided. Note however that this default name
is not necessarily the name originally inserted in the minibuffer, if
that is just the default directory.
is not necessarily the same as initial contents inserted in the minibuffer,
if the initial contents is just the default directory.
If this variable is nil, the minibuffer often starts out empty. In
that case you may have to explicitly fetch the next history element to
request the default name. */);
request the default name; typing RETURN without editing will leave
the minibuffer empty.
For some commands, exiting with an empty minibuffer has a special meaning,
such as making the current buffer visit no file in the case of
`set-visited-file-name'. */);
insert_default_directory = 1;
DEFVAR_BOOL ("vms-stmlf-recfm", &vms_stmlf_recfm,

View file

@ -75,24 +75,7 @@ struct interval
/* Size of a pointer to an interval structure */
#define INTERVAL_PTR_SIZE (sizeof (struct interval *))
/* True if an interval pointer is null, or is a Lisp_Buffer or
Lisp_String pointer (meaning it points to the owner of this
interval tree). */
#ifdef NO_UNION_TYPE
#define INT_LISPLIKE(i) (BUFFERP ((Lisp_Object)(i)) \
|| STRINGP ((Lisp_Object)(i)))
#else
#define INT_LISPLIKE(i) (BUFFERP ((Lisp_Object){(EMACS_INT)(i)}) \
|| STRINGP ((Lisp_Object){(EMACS_INT)(i)}))
#endif
#ifdef ENABLE_CHECKING
#define NULL_INTERVAL_P(i) \
(CHECK (!INT_LISPLIKE (i), "non-interval"), (i) == NULL_INTERVAL)
/* old #define NULL_INTERVAL_P(i) ((i) == NULL_INTERVAL || INT_LISPLIKE (i)) */
#else
#define NULL_INTERVAL_P(i) ((i) == NULL_INTERVAL)
#endif
/* True if this interval has no right child. */
#define NULL_RIGHT_CHILD(i) ((i)->right == NULL_INTERVAL)
@ -162,7 +145,7 @@ struct interval
casts to get around this, it will break some development work in
progress. */
#define SET_INTERVAL_PARENT(i,p) \
(eassert (!INT_LISPLIKE (p)), (i)->up_obj = 0, (i)->up.interval = (p))
((i)->up_obj = 0, (i)->up.interval = (p))
#define SET_INTERVAL_OBJECT(i,o) \
(eassert (BUFFERP (o) || STRINGP (o)), (i)->up_obj = 1, (i)->up.obj = (o))
#define INTERVAL_PARENT(i) \

View file

@ -228,7 +228,7 @@ read_header (file, hdr, auxhdr)
if (hdr->a_magic != EXEC_MAGIC && hdr->a_magic != SHARE_MAGIC
&& hdr->a_magic != DEMAND_MAGIC)
{
fprintf (stderr, "a.out file doesn't have legal magic number\n");
fprintf (stderr, "a.out file doesn't have valid magic number\n");
exit (1);
}

View file

@ -1701,7 +1701,7 @@ is_fat_volume (const char * name, const char ** pPath)
return FALSE;
}
/* Map filename to a legal 8.3 name if necessary. */
/* Map filename to a valid 8.3 name if necessary. */
const char *
map_w32_filename (const char * name, const char ** pPath)
{

View file

@ -8346,9 +8346,12 @@ an integer representing a ShowWindow flag:
CHECK_STRING (document);
/* Encode filename and current directory. */
/* Encode filename, current directory and parameters. */
current_dir = ENCODE_FILE (current_buffer->directory);
document = ENCODE_FILE (document);
if (STRINGP (parameters))
parameters = ENCODE_SYSTEM (parameters);
if ((int) ShellExecute (NULL,
(STRINGP (operation) ?
SDATA (operation) : NULL),