1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-11-25 07:28:20 +00:00

Merge from emacs--devo--0

Patches applied:

 * emacs--devo--0  (patch 343-356)

   - Update from CVS
   - Update for ERC 5.1.3.
   - Merge from gnus--rel--5.10

 * gnus--rel--5.10  (patch 113-115)

   - Merge from emacs--devo--0
   - Update from CVS

Revision: emacs@sv.gnu.org/emacs--unicode--0--patch-90
This commit is contained in:
Miles Bader 2006-07-19 00:42:56 +00:00
commit 63db3c1b3f
214 changed files with 11835 additions and 5589 deletions

141
AUTHORS
View File

@ -31,8 +31,8 @@ Aki Vehtari: changed bibtex.el gnus-art.el gnus-score.el gnus-sum.el
Alakazam Petrofsky: changed hanoi.el
Alan Mackenzie: wrote cc-awk.el
and changed cc-cmds.el cc-mode.el cc-engine.el cc-vars.el cc-defs.el
cc-langs.el cc-styles.el cc-mode.texi lread.c cc-align.el cc-fonts.el
and changed cc-cmds.el cc-mode.el cc-defs.el cc-engine.el cc-vars.el
cc-langs.el cc-styles.el cc-mode.texi lread.c cc-fonts.el cc-align.el
cc-subword.el isearch.el programs.texi search.texi subr.el text.texi
buffers.texi cc-fix.el cc-mode-19.el ebrowse.el and 14 other files
@ -57,7 +57,7 @@ and changed erc.el erc-track.el erc-button.el erc-stamp.el erc-match.el
erc-autoaway.el erc-nickserv.el Makefile erc-autojoin.el erc-fill.el
erc-pcomplete.el erc-complete.el erc-ibuffer.el erc-members.el
comint.el custom.el erc-bbdb.el erc-chess.el erc-ezbounce.el
erc-imenu.el erc-page.el and 25 other files
erc-imenu.el erc-page.el and 24 other files
Alexander Klimov: changed man.el
@ -114,13 +114,14 @@ Andreas Schwab: changed Makefile.in files.el lisp.h xdisp.c alloc.c
print.c simple.el buffer.c minibuf.c xterm.c emacs.c keyboard.c
process.c and 443 other files
Andreas Seltenreich: changed nnweb.el gnus-art.el gnus-ml.el url-http.el
Andreas Seltenreich: changed nnweb.el gnus-art.el gnus-ml.el gnus.texi
url-cookie.el url-http.el
Andrew Choi: wrote mac-win.el
and changed macterm.c mac.c macfns.c INSTALL macmenu.c darwin.h macterm.h
sysdep.c emacs.c fontset.c frame.c keyboard.c macgui.h xfaces.c Emacs.r
README cw5-mcp.xml cw6-mcp.xml dispextern.h make-package makefile.MPW
and 62 other files
and 61 other files
Andrew Cohen: changed dns.el
@ -131,7 +132,7 @@ Andrew Hall: changed paren.el
Andrew Innes: changed makefile.w32-in w32fns.c w32term.c w32.c w32proc.c
fileio.c gmake.defs dos-w32.el ms-w32.h nmake.defs w32-fns.el w32term.h
unexw32.c w32menu.c w32xfns.c addpm.c cmdproxy.c emacs.c w32-win.el
w32inevt.c configure.bat and 136 other files
w32inevt.c configure.bat and 135 other files
Andrew Oram: changed man/calendar.texi
miscellaneous changes to files in man/
@ -209,8 +210,8 @@ Bill Wohler: wrote mh-buffers.el mh-comp.el mh-compat.el mh-e.el
mh-scan.el mh-seq.el mh-show.el mh-utils.el mh-xface.el
and changed mh-customize.el mh-index.el MH-E-NEWS mh-alias.el Makefile
mh-identity.el mh-pick.el README mh-speed.el mh-init.el mh-junk.el
mh-e.texi mh-acros.el mh-gnus.el mh-unit.el mh-inc.el mh-search.el
mh-xemacs-compat.el mh-print.el Makefile.in image.el and 89 other files
mh-e.texi mh-acros.el mh-gnus.el mh-search.el mh-unit.el mh-inc.el
mh-xemacs-compat.el mh-print.el Makefile.in image.el and 88 other files
Bjorn Solberg: changed nnimap.el
@ -303,10 +304,10 @@ Charlie Martin: wrote autoinsert.el
Cheng Gao: changed MORE.STUFF flymake.el tips.texi url-dired.el
url-file.el url-handlers.el url-http.el url-nfs.el
Chong Yidong: changed custom.el cus-edit.el display.texi longlines.el
files.el files.texi text.texi FOR-RELEASE custom.texi simple.el
cus-theme.el wid-edit.el xterm.c frames.texi info.el mouse.el xfns.c
anti.texi dired.texi image.c keymaps.texi and 115 other files
Chong Yidong: changed custom.el cus-edit.el longlines.el display.texi
files.el files.texi simple.el text.texi custom.texi cus-theme.el
wid-edit.el xterm.c frames.texi info.el misc.texi mouse.el xfns.c
anti.texi dired.texi image.c keymaps.texi and 131 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
@ -601,7 +602,7 @@ Eli Zaretskii: wrote codepage.el rxvt.el tty-colors.el
and changed msdos.c Makefile.in files.el makefile.w32-in info.el fileio.c
startup.el mainmake.v2 config.bat menu-bar.el pc-win.el simple.el
internal.el msdos.h xfaces.c rmail.el dosfns.c frame.c faces.el emacs.c
frame.el and 503 other files
frame.el and 512 other files
Emanuele Giaquinta: changed rxvt.el configure.in etags.c frame.el
sh-script.el text.texi
@ -687,7 +688,7 @@ Florian Weimer: changed message.el coding.c gnus-art.el gnus.el gnus.texi
Francesco Potort,Al(B: wrote cmacexp.el
and changed etags.c man.el delta.h undigest.el comint.el configure.in
uniquify.el latin-post.el rmail.el etags.1 etags.el latin-alt.el
uniquify.el etags.1 latin-post.el rmail.el etags.el latin-alt.el
sgml-mode.el Makefile.in data.c european.el filelock.c files.el
generic-x.el gud.el hanoi.el and 42 other files
@ -794,7 +795,7 @@ Glenn Morris: changed f90.el diary-lib.el calendar.el fortran.el
calendar.texi appt.el sh-script.el timeclock.el cal-menu.el
cal-hebrew.el cal-islam.el files.el holidays.el programs.texi
scroll-all.el startup.el cal-coptic.el cal-julian.el cal-move.el
cal-tex.el cal-x.el and 37 other files
cal-tex.el cal-x.el and 36 other files
Glynn Clements: wrote gamegrid.el snake.el tetris.el
@ -960,7 +961,7 @@ Jan Dj,Ad(Brv: wrote dnd.el x-dnd.el
and changed gtkutil.c xterm.c xfns.c xmenu.c xterm.h gtkutil.h
configure.in Makefile.in config.in configure frames.texi keyboard.c
emacs.c x-win.el xselect.c xlwmenu.c alloc.c startup.el xdisp.c
xresources.texi fileio.c and 170 other files
xresources.texi fileio.c and 168 other files
Jan Nieuwenhuizen: changed info.el TUTORIAL.nl emacs.c emacsclient.c
gnus-start.el gud.el nnmh.el server.el startup.el
@ -982,7 +983,7 @@ Jason Rumney: wrote w32-vars.el
and changed w32fns.c w32term.c w32menu.c w32-win.el w32term.h
makefile.w32-in w32.c w32bdf.c w32-fns.el w32select.c w32console.c
w32gui.h w32proc.c keyboard.c mule-cmds.el emacs.c fileio.c w32bdf.h
w32inevt.c config.nt configure.bat and 78 other files
w32inevt.c config.nt configure.bat and 77 other files
Jay Belanger: changed calc.texi calc.el calc-ext.el calc-embed.el
calc-aent.el calc-prog.el calc-arith.el calc-help.el calc-lang.el
@ -1032,7 +1033,7 @@ Jesper Harder: wrote yenc.el
and changed gnus-art.el gnus-sum.el message.el gnus-msg.el gnus.el
gnus-group.el mm-bodies.el gnus-util.el mm-decode.el mm-util.el
rfc2047.el mml.el mml1991.el mailcap.el mm-uu.el pgg-gpg.el smtpmail.el
gnus-srvr.el gnus-uu.el info.el nnmail.el and 180 other files
gnus-srvr.el gnus-uu.el info.el nnmail.el and 179 other files
Jhair Tocancipa Triana: changed gnus-audio.el
@ -1119,7 +1120,7 @@ John Paul Wallington: changed ibuffer.el ibuf-ext.el subr.el files.el
help-fns.el thumbs.el fns.c rmail.el bindings.el bytecomp.el
cus-theme.el info.el re-builder.el startup.el xfns.c apropos.el
arc-mode.el browse-url.el comint.el cus-start.el display.texi
and 113 other files
and 115 other files
John Robinson: wrote bg-mouse.el
@ -1136,10 +1137,11 @@ John Wiegley: wrote align.el cal-bahai.el em-alias.el em-banner.el
esh-ext.el esh-io.el esh-maint.el esh-mode.el esh-module.el esh-opt.el
esh-proc.el esh-test.el esh-util.el esh-var.el eshell.el eudcb-mab.el
isearchb.el pcmpl-cvs.el pcomplete.el timeclock.el
and changed erc-chess.el erc.el iswitchb.el Makefile.in TODO allout.el
and changed erc-chess.el erc.el iswitchb.el Makefile.in allout.el
cal-menu.el calendar.el compile.el desktop.el diary-lib.el erc-bbdb.el
erc-button.el erc-complete.el erc-fill.el erc-ibuffer.el erc-list.el
erc-match.el erc-menu.el erc-nets.el erc-replace.el and 10 other files
erc-match.el erc-menu.el erc-nets.el erc-replace.el erc-speak.el
and 9 other files
John Williams: changed etags.el
@ -1192,7 +1194,7 @@ and changed files.el perl-mode.el
Juanma Barranquero: changed makefile.w32-in help-fns.el subr.el faces.el
files.el w32fns.c cperl-mode.el replace.el simple.el eval.c
sh-script.el vhdl-mode.el comint.el org.el xdisp.c allout.el bs.el
desktop.el idlwave.el keyboard.c process.c and 550 other files
desktop.el idlwave.el keyboard.c process.c and 549 other files
Juergen Hoetzel: changed url-handlers.el
@ -1234,10 +1236,10 @@ Kailash C. Chowksey: changed HELLO Makefile.in ind-util.el kannada.el
knd-util.el loadup.el makefile.w32-in
Karl Berry: changed info.texi emacs.texi elisp.texi emacs-xtra.texi
filelock.c copyright.el dired.c faq.texi gnu.texi help.texi msdog.texi
texinfo.el texinfo.tex ada-mode.texi autotype.texi building.texi
calc.texi cc-mode.texi cl.texi cmdargs.texi compile.el
and 37 other files
filelock.c building.texi cmdargs.texi copyright.el dired.c faq.texi
gnu.texi help.texi macos.texi msdog.texi mule.texi sending.texi
texinfo.el texinfo.tex abbrevs.texi ada-mode.texi anti.texi
and 54 other files
Karl Chen: changed files.el align.el cc-vars.el gnus-art.el help-mode.el
jka-cmpr-hook.el make-mode.el perl-mode.el python.el tex-mode.el
@ -1293,6 +1295,7 @@ Ken Laprade: changed simple.el
Ken Manheimer: wrote allout.el icomplete.el
and changed pgg-gpg.el pgg.el pgg-pgp.el pgg-pgp5.el edebug.el pgg.texi
tips.texi
Ken Raeburn: changed lisp.h buffer.c alloc.c keyboard.c lread.c minibuf.c
coding.c Makefile.in editfns.c fileio.c fns.c keymap.c undo.c xdisp.c
@ -1350,9 +1353,9 @@ and changed info-look.el info.el gnus-art.el gnus-sum.el mailcap.el
Kim F. Storm: wrote animage.el bindat.el cua-base.el cua-gmrk.el
cua-rect.el ido.el keypad.el kmacro.el
and changed xdisp.c dispextern.h simple.el xterm.c process.c window.c
keyboard.c w32term.c subr.el fringe.c dispnew.c lisp.h macterm.c
alloc.c xfaces.c display.texi fns.c xterm.h info.el xfns.c .gdbinit
and 221 other files
keyboard.c w32term.c subr.el dispnew.c fringe.c lisp.h macterm.c
display.texi fns.c xfaces.c alloc.c xterm.h info.el xfns.c .gdbinit
and 226 other files
Kim-Minh Kaplan: changed gnus-picon.el gnus-sum.el gnus-start.el
gnus-win.el gnus-xmas.el gnus.texi message.el nndraft.el nnml.el
@ -1398,7 +1401,7 @@ Lars Brinkhoff: changed building.texi config.in configure configure.in
Lars Hansen: changed desktop.el info.el mh-e.el dired-x.el dired-x.texi
dired.el ls-lisp.el rmail.el tramp.el dired.c files.texi grp.h
hilit-chg.el misc.texi url-auth.el url-cache.el url-dired.el url-ftp.el
url-irc.el url-misc.el url-news.el and 40 other files
url-irc.el url-misc.el url-news.el and 39 other files
Lars Lindberg: wrote imenu.el msb.el
and changed dabbrev.el
@ -1451,7 +1454,7 @@ Luc Teirlinck: wrote help-at-pt.el
and changed files.el autorevert.el cus-edit.el subr.el simple.el
frames.texi startup.el display.texi files.texi Makefile.in dired.el
comint.el custom.texi emacs.texi fns.c frame.el ielm.el minibuf.texi
modes.texi variables.texi buffers.texi and 216 other files
modes.texi variables.texi buffers.texi and 215 other files
Lucid, Inc.: changed byte-opt.el byte-run.el bytecode.c bytecomp.el
delsel.el disass.el faces.el font-lock.el lmenu.el lselect.el
@ -1461,11 +1464,11 @@ Lute Kamstra: changed modes.texi generic.el debug.el generic-x.el
font-lock.el subr.el debugging.texi easy-mmode.el elisp.texi hl-line.el
simple.el Makefile.in battery.el bindings.el calc.el cmdargs.texi
edebug.texi emacs.texi info.el make-tarball.txt octave-inf.el
and 218 other files
and 217 other files
Lynn Slater: wrote help-macro.el
L$,1 q(Brentey K,Aa(Broly: changed bindings.el xfns.c TODO buff-menu.el buffer.c
L$,1 q(Brentey K,Aa(Broly: changed bindings.el xfns.c buff-menu.el buffer.c
buffers.texi cmds.c editfns.c frame.el menu-bar.el print.c simple.el
xdisp.c
@ -1486,10 +1489,10 @@ Marc Girod: changed informat.el rmail.el rmailsum.el sendmail.el
Marc Shapiro: changed bibtex.el
Marcelo Toledo: changed TUTORIAL.pt_BR FOR-RELEASE TUTORIAL.cn
TUTORIAL.cs TUTORIAL.de TUTORIAL.es TUTORIAL.fr TUTORIAL.it TUTORIAL.ja
TUTORIAL.ko TUTORIAL.pl TUTORIAL.ro TUTORIAL.ru TUTORIAL.sk TUTORIAL.sl
TUTORIAL.th TUTORIAL.translators TUTORIAL.zh add-log.el european.el
Marcelo Toledo: changed TUTORIAL.pt_BR TUTORIAL.cn TUTORIAL.cs
TUTORIAL.de TUTORIAL.es TUTORIAL.fr TUTORIAL.it TUTORIAL.ja TUTORIAL.ko
TUTORIAL.pl TUTORIAL.ro TUTORIAL.ru TUTORIAL.sk TUTORIAL.sl TUTORIAL.th
TUTORIAL.translators TUTORIAL.zh add-log.el european.el
Marco Melgazzi: changed term.el
@ -1509,9 +1512,9 @@ Mario Lang: wrote erc-button.el erc-ibuffer.el erc-imenu.el erc-list.el
erc-speedbar.el erc-stamp.el erc-track.el erc-xdcc.el
and changed erc.el erc-dcc.el erc-speak.el Makefile erc-bbdb.el
erc-complete.el erc-pcomplete.el erc-chess.el erc-fill.el battery.el
erc-match.el TODO erc-autojoin.el erc-nets.el erc-nickserv.el
erc-ring.el diff.el erc-ezbounce.el erc-identd.el erc-lang.el
erc-log.el and 6 other files
erc-match.el erc-autojoin.el erc-nets.el erc-nickserv.el erc-ring.el
diff.el erc-ezbounce.el erc-identd.el erc-lang.el erc-log.el
erc-macs.el and 5 other files
Mark A. Hershberger: changed xml.el nnrss.el cperl-mode.el mm-url.el
gnus-group.el
@ -1637,7 +1640,8 @@ 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 tramp-util.el ange-ftp.el
files.el files.texi tramp-uu.el vc.el dired-x.el dired.el faq.texi
find-dired.el locate.el mini.texi tramp*.el trampver.el woman.el
find-dired.el locate.el mini.texi rcompile.el tramp*.el trampver.el
woman.el
Michael Ben-Gershon: changed acorn.h configure.in riscix1-1.h riscix1-2.h
unexec.c
@ -1677,9 +1681,9 @@ and changed ediff-merge.el ediff*.el viper*.el ediff-hooks.el menu-bar.el
Michael Olson: changed erc.el erc-backend.el Makefile erc-stamp.el
erc-track.el erc-dcc.el erc-identd.el erc-match.el erc-notify.el
erc.texi erc-ibuffer.el erc-list.el FOR-RELEASE erc-autoaway.el
erc-bbdb.el erc-compat.el erc-goodies.el erc-log.el erc-nicklist.el
erc-pcomplete.el erc-spelling.el and 40 other files
erc.texi erc-ibuffer.el erc-list.el erc-autoaway.el erc-bbdb.el
erc-compat.el erc-goodies.el erc-log.el erc-nicklist.el
erc-pcomplete.el erc-spelling.el erc-*.el and 39 other files
Michael Piotrowski: changed ps-print.el
@ -1795,10 +1799,10 @@ Nevin Kapur: changed nnmail.el gnus-group.el gnus-sum.el gnus.el
Niall Mansfield: changed etags.c
Nick Roberts: wrote gdb-ui.el
and changed gud.el building.texi tooltip.el speedbar.el cc-mode.el
thumbs.el DEBUG subr.el xt-mouse.el .gdbinit comint.el bindings.el
descr-text.el frames.texi gud-display.pbm speedbar.texi xdisp.c TODO
byte-run.el bytecomp.el cc-vars.el and 94 other files
and changed gud.el building.texi tooltip.el speedbar.el thumbs.el
cc-mode.el DEBUG subr.el xt-mouse.el .gdbinit comint.el frames.texi
bindings.el descr-text.el display.texi gud-display.pbm help-mode.el
speedbar.texi tumme.el xdisp.c byte-run.el and 105 other files
Nico Francois: changed w32fns.c w32inevt.c w32menu.c
@ -1990,7 +1994,7 @@ and changed ffap.el
Ralf Angeli: wrote scroll-lock.el
and changed tex-mode.el comint.el flow-fill.el gnus-art.el killing.texi
mm-view.el smtpmail.el window.c
mm-view.el pcl-cvs.texi smtpmail.el w32fns.c w32term.c window.c
Ralf Fassel: changed dabbrev.el files.el fill.el iso-acc.el tar-mode.el
@ -2014,8 +2018,8 @@ Reiner Steib: wrote gmm-utils.el
and changed message.el gnus-art.el gnus.texi gnus-sum.el gnus.el
gnus-group.el mml.el gnus-faq.texi gnus-score.el gnus-start.el
gnus-util.el gnus-msg.el message.texi gnus-agent.el files.el mm-util.el
spam-report.el nnweb.el spam.el FOR-RELEASE deuglify.el
and 152 other files
spam-report.el nnweb.el spam.el deuglify.el mm-decode.el
and 155 other files
Remek Trzaska: changed gnus-ems.el
@ -2042,7 +2046,7 @@ Richard M. Stallman: wrote [The original GNU emacs and numerous files]
and changed keyboard.c files.el simple.el xterm.c xdisp.c rmail.el
fileio.c process.c sysdep.c xfns.c buffer.c Makefile.in window.c
configure.in subr.el emacs.c sendmail.el startup.el editfns.c info.el
dispnew.c and 1319 other files
dispnew.c and 1322 other files
Richard Mlynarik: wrote cl-indent.el ebuff-menu.el ehelp.el env.c
rfc822.el terminal.el yow.el
@ -2102,11 +2106,11 @@ Roland Winkler: changed bibtex.el appt.el artist.el conf-mode.el
Rolf Ebert: wrote ada-mode.el
and changed files.el find-file.el
Romain Francoise: changed faq.texi ibuf-ext.el dired-x.el message.el
puresize.h replace.el compile.el files.texi gnus-fun.el gnus.texi
help-fns.el rcirc.el subr.el FOR-RELEASE Makefile.in antlr-mode.el
Romain Francoise: changed faq.texi ibuf-ext.el compile.el dired-x.el
message.el puresize.h replace.el files.texi gnus-fun.el gnus.texi
help-fns.el make-dist rcirc.el subr.el Makefile.in antlr-mode.el
bookmark.el buffer.c comint.el diary-lib.el dired.el
and 107 other files
and 109 other files
Roman Belenov: changed which-func.el
@ -2126,6 +2130,7 @@ and changed ffap.el rmailsum.el
Ryszard Kubiak: changed ogonek.el
Sacha Chua: wrote erc-pcomplete.el
and changed erc.el erc-button.el
Saito Takuya: changed compile.el mule.el
@ -2141,8 +2146,6 @@ and changed cl-indent.el font-lock.el ange-ftp.el mouse.el tex-mode.el
dired.el pcvs.el sgml-mode.el simple.el browse-url.el buff-menu.el
bytecomp.el cc-mode.el compile.el etags.el and 94 other files
Sandra Jean Chua: changed erc-pcomplete.el erc.el erc-button.el
Sanghyuk Suh: changed mac-win.el macterm.c
Sascha L,A|(Bdecke: wrote mml1991.el
@ -2179,7 +2182,7 @@ Sen Nagata: wrote crm.el rfc2368.el
Seokchan Lee: changed message.el
Sergey Poznyakoff: changed rmail.el rmail.texi smtpmail.el
Sergey Poznyakoff: changed rmail.el mh-mime.el rmail.texi smtpmail.el
Shawn M. Carey: wrote freebsd.h
@ -2234,9 +2237,9 @@ Stefan Monnier: wrote bibtex.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
and changed vc.el font-lock.el pcvs.el newcomment.el subr.el lisp.h
keyboard.c tex-mode.el keymap.c alloc.c fill.el easy-mmode.el simple.el
compile.el info.el regex.c files.el syntax.c vc-hooks.el xdisp.c
vc-cvs.el and 497 other files
keyboard.c tex-mode.el fill.el keymap.c alloc.c compile.el
easy-mmode.el simple.el info.el regex.c syntax.c files.el vc-hooks.el
xdisp.c bytecomp.el and 505 other files
Stephan Stahl: changed which-func.el buff-menu.el buffer.c dired-x.texi
ediff-mult.el
@ -2251,7 +2254,7 @@ and changed diary-lib.el locate.el octave-inf.el replace.el hexl.el
Stephen Gildea: wrote mh-funcs.el mh-pick.el refcard.tex
and changed time-stamp.el mh-e.el mh-utils.el mh-comp.el mh-customize.el
files.el fortran.el mh-e.texi mh-mime.el mwheel.el tex-mode.el
fileio.c files.el fortran.el mh-e.texi mh-mime.el mwheel.el tex-mode.el
Stephen J. Turnbull: changed ediff-init.el strings.texi subr.el
@ -2321,11 +2324,13 @@ Tatsuya Ichikawa: changed gnus-agent.el gnus-cache.el
Ted Lemon: changed emacs.c lastfile.c puresize.h
Ted Phelps: changed mh-search.el mh-tool-bar.el
Teodor Zlatanov: wrote gnus-registry.el spam-report.el
and changed spam.el gnus.el gnus-sum.el nnmail.el spam-stat.el
gnus-start.el gnus.texi gnus-group.el lpath.el nnbabyl.el nnfolder.el
nnimap.el nnmbox.el nnmh.el nnml.el replace.el simple.el basic.texi
building.texi commands.texi compile.el and 9 other files
building.texi commands.texi compile.el and 11 other files
Terje Rosten: changed xfns.c version.el xterm.c xterm.h
@ -2337,9 +2342,9 @@ 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 vc.el
fileio.c scheme.el dcl-mode.el display.texi files.el lisp-mode.el
fileio.c lisp-mode.el scheme.el dcl-mode.el display.texi files.el
pcvs.el sysdep.c MORE.STUFF TUTORIAL.it TUTORIAL.ja bindat.el
diary-lib.el diff-mode.el dired.el and 115 other files
diary-lib.el diff-mode.el dired.el and 121 other files
Thierry Emery: changed kinsoku.el timezone.el url-http.el wid-edit.el
@ -2523,8 +2528,8 @@ Yagi Tatsuya: changed gnus-art.el gnus-start.el
Yamamoto Mitsuharu: changed macterm.c macfns.c mac-win.el mac.c macterm.h
macgui.h image.c macmenu.c macselect.c keyboard.c xdisp.c makefile.MPW
emacs.c macos.texi xfaces.c config.h darwin.h Makefile.in dispextern.h
w32term.c Info.plist and 55 other files
emacs.c macos.texi xfaces.c Makefile.in config.h darwin.h dispextern.h
w32term.c Info.plist and 58 other files
Yann Dirson: changed imenu.el

View File

@ -25,97 +25,180 @@ pages, or develop a package that works with Emacs.
Here are some style and legal conventions for contributors to Emacs:
o Coding Standards
* Coding Standards
Contributed code should follow the GNU Coding Standard.
If it doesn't, we'll need to find someone to fix the code
before we can use it.
Contributed code should follow the GNU Coding Standard.
Emacs has certain additional style and coding conventions.
If it doesn't, we'll need to find someone to fix the code before we
can use it.
Ref: http://www.gnu.org/prep/standards_toc.html
Ref: Standards Info Manual
Emacs has certain additional style and coding conventions.
Ref: http://www.gnu.org/prep/standards_toc.html
Ref: GNU Coding Standards Info Manual
Ref: The "Tips" Appendix in the Emacs Lisp Reference.
o Copyright Assignment
* Copyright Assignment
We can accept small changes without legal papers, and for
medium-size changes a copyright disclaimer is ok too. Toa
accept substantial contributions from you, we need a copyright
assignment form filled out and filed with the FSF.
We can accept small changes without legal papers, and for medium-size
changes a copyright disclaimer is ok too. To accept substantial
contributions from you, we need a copyright assignment form filled out
and filed with the FSF.
Contact us at emacs-devel@gnu.org to obtain the relevant
forms.
Contact us at emacs-devel@gnu.org to obtain the relevant forms.
o Getting the Source Code
* Getting the Source Code
The latest version of Emacs can be downloaded using CVS or
Arch from the Savannah web site. It is important to write
your patch based this version; if you start from an older
version, your patch may be outdated when you write it.
Ref: http://savannah.gnu.org/projects/emacs
The latest version of Emacs can be downloaded using CVS or Arch from
the Savannah web site. It is important to write your patch based on
this version; if you start from an older version, your patch may be
outdated when you write it, and maintainers will have hard time
applying it.
After you have downloaded the CVS source, you should read the file
INSTALL.CVS for build instructions (they differ to some extent from a
normal build).
Ref: http://savannah.gnu.org/projects/emacs
o Submitting Patches
* Submitting Patches
Every patch must have several pieces of information before we
can properly evaluate it.
Every patch must have several pieces of information before we
can properly evaluate it.
For bug fixes, a description of the bug and how your patch fixes
this bug.
When you have all these pieces, bundle them up in a mail message and
send it to emacs-pretest-bug@gnu.org or emacs-devel@gnu.org.
For new features, a description of the feature and your
implementation.
All subsequent discussion should also be sent to the mailing list.
A ChangeLog entry as plaintext (separate from the patch); see
the various ChangeLog files for format and content. Note that,
unlike some other projects, we do require ChangeLogs also for
documentation i.e. texinfo files.
** Description
Ref: Change Log Concepts node of the Standards Info Manual
For bug fixes, a description of the bug and how your patch fixes this
bug.
The patch itself. If you are accessing the CVS repository use
"cvs update; cvs diff -cp"; else, use "diff -cp OLD NEW". If
your version of diff does not support these options, then get
the latest version of GNU diff.
For new features, a description of the feature and your
implementation.
We accept patches as plain text (preferred for the compilers
themselves), MIME attachments (preferred for the web pages), or
as uuencoded gzipped text.
** ChangeLog
When you have all these pieces, bundle them up in a mail message
and send it to emacs-pretest-bug@gnu.org or emacs-devel@gnu.org.
All subsequent discussion should also be sent to the mailing
list.
A ChangeLog entry as plaintext (separate from the patch).
See the various ChangeLog files for format and content. Note that,
unlike some other projects, we do require ChangeLogs also for
documentation, i.e. Texinfo files.
Ref: "Change Log Concepts" node of the GNU Coding Standards Info
Manual, for how to write good log entries.
** The patch itself.
Please use "Context Diff" format.
If you are accessing the CVS repository use
cvs update; cvs diff -cp
else, use
diff -cp OLD NEW
If your version of diff does not support these options, then get the
latest version of GNU Diff.
** Mail format.
We prefer to get the patches as inline plain text.
Please be aware of line wrapping which will make the patch unreadable
and useless for us. To avoid that, you can use MIME attachments or,
as a last resort, uuencoded gzipped text.
** Please reread your patch before submitting it.
** Do not mix changes.
If you send several unrelated changes together, we will ask you to
separate them so we can consider each of the changes by itself.
o Please reread your patch before submitting it.
* Coding style and conventions.
** Mandatory reading:
The "Tips and Conventions" Appendix of the Emacs Lisp Reference.
** Avoid using `defadvice' or `eval-after-load' for Lisp code to be
included in Emacs.
** Remove all trailing whitespace in all source and text files.
** Use ?\s instead of ? in Lisp code for a space character.
o If you send several unrelated changes together, we will
ask you to separate them so we can consider each of the changes
by itself.
* Supplemental information for Emacs Developers.
o Supplemental information for Emacs Developers:
** Write access to Emacs' CVS repository.
Once you become a frequent contributor to Emacs, we can
consider giving you write access to the CVS repository.
Discussion about Emacs development takes place on
emacs-devel@gnu.org.
Once you become a frequent contributor to Emacs, we can consider
giving you write access to the CVS repository.
Think carefully about whether your change requires updating the
documentation. If it does, you can either do this yourself or
add an item to the NEWS file.
The best way to understand Emacs Internals is to read the code
but the nodes "Tips" and "GNU Emacs Internals" in the Appendix
of the Emacs Lisp Reference Manual may also help.
** Emacs Mailing lists.
The file DEBUG describes how to debug Emacs bugs.
Discussion about Emacs development takes place on emacs-devel@gnu.org.
Bug reports for released versions are sent to emacs-bugs@gnu.org.
Bug reports for development versions are sent to emacs-pretest-bug@gnu.org.
You can subscribe to the mailing lists at savannah.gnu.org/projects/emacs.
You can find the mailing lists archives at mail.gnu.org or gmane.org.
** Document your changes.
Think carefully about whether your change requires updating the
documentation. If it does, you can either do this yourself or add an
item to the NEWS file.
If you document your change in NEWS, please mark the NEWS entry with
the documentation status of the change: if you submit the changes for
the manuals, mark it with "+++"; if it doesn't need to be documented,
mark it with "---"; if it needs to be documented, but you didn't
submit documentation changes, leave the NEWS entry unmarked. (These
marks are checked by the Emacs maintainers to make sure every change
was reflected in the manuals.)
** Understanding Emacs Internals.
The best way to understand Emacs Internals is to read the code,
but the nodes "Tips" and "GNU Emacs Internals" in the Appendix
of the Emacs Lisp Reference Manual may also help.
The file etc/DEBUG describes how to debug Emacs bugs.
* How to Maintain Copyright Years for GNU Emacs
** Our lawyer says it is ok if we add, to each file that has been in Emacs
since Emacs 21 came out in 2001, all the subsequent years. We don't
need to check whether *that file* was changed in those years.
It's sufficient that *Emacs* was changed in those years (and it was!).
** For those files that have been added since then, we should add
the year it was added to Emacs, and all subsequent years."
** For the refcards under etc/, it's ok to simply use the latest year
(typically in a `\def\year{YEAR}' expression) for the rendered copyright
notice, while maintaining the full list of years in the copyright notice
in the comments.
Local variables:
mode: outline
paragraph-separate: "[ ]*$"
end:
Avoid using `defadvice' or `eval-after-load' for Lisp
code to be included in Emacs.

View File

@ -1,3 +1,39 @@
2006-07-14 Eli Zaretskii <eliz@gnu.org>
* configure.in (PKG_CHECK_MODULES): Redirect the output of
$PKG_CONFIG --exists "$2" to config.log.
* configure: Regenerated.
2006-07-14 Kim F. Storm <storm@cua.dk>
* AUTHORS: Regenerate.
2006-07-08 Richard Stallman <rms@gnu.org>
* INSTALL (DETAILED BUILDING AND INSTALLATION): Minor corrections.
2006-07-09 Kim F. Storm <storm@cua.dk>
* CONTRIBUTE: Use outline format.
Add section on copyright years (from admin/notes/years).
2006-07-08 Eli Zaretskii <eliz@gnu.org>
* configure: Regenerate.
* configure.in (PKG_CHECK_MODULES): Redirect stderr of pkg-config
to /dev/null, since we don't need the error message, just the
exit status.
2006-07-07 Eli Zaretskii <eliz@gnu.org>
* CONTRIBUTE: Slight formatting changes and typo fixes. Add
description of NEWS markings.
2006-07-07 Kim F. Storm <storm@cua.dk>
* CONTRIBUTE: Mention INSTALL.CVS.
2006-07-05 Romain Francoise <romain@orebokech.com>
* make-dist (top-level): Add CONTRIBUTE.

16
INSTALL
View File

@ -255,14 +255,14 @@ accept a list of directories, separated with colons.
To get more attractive menus, you can specify an X toolkit when you
configure Emacs; use the option `--with-x-toolkit=TOOLKIT', where
TOOLKIT is `athena', `motif' or `gtk' (`yes' and `lucid' are synonyms for
`athena'). On some systems, it does not work to use a toolkit with
shared libraries. A free implementation of Motif, called LessTif, is
available ftom <http://www.lesstif.org>. Compiling with LessTif or
Motif causes a standard File Selection Dialog to pop up when you type
"C-x C-f" and similar commands. You can get fancy 3D-style scroll
bars, even without LessTif/Motif, if you have the Xaw3d library
installed (see "Image support libraries" above for Xaw3d
TOOLKIT is `athena', `motif' or `gtk' (`yes' and `lucid' are synonyms
for `athena'). On some systems, it does not work to use a toolkit
with shared libraries. A free implementation of Motif, called
LessTif, is available from <http://www.lesstif.org>. Compiling with
LessTif or Motif causes a standard File Selection Dialog to pop up
when you invoke file commands with the mouse. You can get fancy
3D-style scroll bars, even without LessTif/Motif, if you have the
Xaw3d library installed (see "Image support libraries" above for Xaw3d
availability).
If `--with-x-toolkit=gtk' is specified, you can tell configure where

View File

@ -1,3 +1,15 @@
2006-07-17 Reiner Steib <Reiner.Steib@gmx.de>
* FOR-RELEASE: Update refcard section.
2006-07-14 Kim F. Storm <storm@cua.dk>
* FOR-RELEASE (BUGS): High cpu load on windows server sockets fixed.
2006-07-09 Kim F. Storm <storm@cua.dk>
* README: Use outline format. Add FOR-RELEASE.
2006-06-27 Chong Yidong <cyd@stupidchicken.com>
* FOR-RELEASE: Checking of info.texi done.
@ -52,7 +64,7 @@
2006-01-27 Chong Yidong <cyd@stupidchicken.com>
* FOR-RELEASE: string allocation bugs fixed.
* FOR-RELEASE: String allocation bugs fixed.
2005-12-13 Bill Wohler <wohler@newt.com>

View File

@ -2,13 +2,8 @@ Tasks needed before the next release.
* TO BE DONE SHORTLY BEFORE RELEASE
** `undo-ask-before-discard', currently set to t for debugging purposes
has to be set to nil: when t, it can leak memory and cause other problems.
** Update release dates of manuals.
** Get rid of overfull and underfull boxes in manuals.
** Check for widow and orphan lines in manuals;
make sure all the pages really look ok in the manual as formatted.
@ -21,12 +16,12 @@ make sure all the pages really look ok in the manual as formatted.
Requests to have been sent out on 2006-05-23 (Reiner Steib).
LANG Translator Status
cs Pavel Janík No response
cs Pavel Janík Can't work on it now.
de Sven Joachim Done
fr Eric Jacoboni Done (layout might be improved)
pl Włodek Bzyl Done
pt-br Rodrigo Real Done
ru Alex Ott Working
ru Alex Ott Done
sk Miroslav Vaško No response
Reminders sent out on 2006-06-08.
@ -36,8 +31,6 @@ and KDE projects, to use the new Emacs icons in etc/images/icons.
* BUGS
** Stephen.Berman@gmx.net: isearch-yank-line and field text property
** Markus Gritsch's report about Emacs looping on Windoze with the following
.emacs file, and then reduce Emacs frame width to "something quite narrow":
(setq-default truncate-lines t)
@ -46,20 +39,7 @@ and KDE projects, to use the new Emacs icons in etc/images/icons.
'(hscroll-step 1)
)
** TCP server processes do not work on Windows.
TCP/IP server processes created with `make-network-process' consume
excesive CPU on some Windows environments. Usages of 50% and 100%
CPU time have been observed on different Window XP configurations.
Seems to be a problem in sys_select in w32proc.c.
In its current form, it sys_select says the socket is ready, so we
call server_accept_connection which again calls accept() which returns
-1 with errno == WSAEWOULDBLOCK (10035) indicating that there is no
pending connection to accept.
It seems that to fix this, w32 server sockets must use WSAAsyncSelect
+ FD_ACCEPT to request notifications of incoming connections...
** David Kastrup's report on strange scrolling of large images.
* DOCUMENTATION
@ -74,17 +54,17 @@ people who have checked it.
SECTION READERS
----------------------------------
lispref/abbrevs.texi "Luc Teirlinck" Chong Yidong
lispref/advice.texi joakim@verona.se Chong Yidong
lispref/anti.texi Chong Yidong
lispref/advice.texi Joakim Verona Chong Yidong
lispref/anti.texi Chong Yidong Kim F. Storm
lispref/backups.texi "Luc Teirlinck" Chong Yidong
lispref/buffers.texi "Luc Teirlinck" Chong Yidong
lispref/calendar.texi Joakim Verona <joakim@verona.se> Chong Yidong
lispref/calendar.texi Joakim Verona Chong Yidong
lispref/commands.texi "Luc Teirlinck" Chong Yidong
lispref/compile.texi "Luc Teirlinck" Chong Yidong
lispref/control.texi "Luc Teirlinck" Chong Yidong
lispref/customize.texi Chong Yidong "Luc Teirlinck"
lispref/debugging.texi Joakim Verona <joakim@verona.se> Lute Kamstra
lispref/display.texi Chong Yidong
lispref/debugging.texi Joakim Verona Lute Kamstra
lispref/display.texi Chong Yidong Jason Rumney
lispref/edebug.texi Chong Yidong "Luc Teirlinck"
lispref/elisp.texi "Luc Teirlinck" Lute Kamstra
lispref/errors.texi "Luc Teirlinck" Chong Yidong
@ -102,7 +82,7 @@ lispref/lists.texi "Luc Teirlinck" Chong Yidong
lispref/loading.texi "Luc Teirlinck" Chong Yidong
lispref/locals.texi Chong Yidong Nick Roberts
lispref/macros.texi "Luc Teirlinck" Chong Yidong
lispref/maps.texi Chong Yidong
lispref/maps.texi Chong Yidong Kim F. Storm
lispref/markers.texi "Luc Teirlinck" Chong Yidong
lispref/minibuf.texi "Luc Teirlinck" Chong Yidong
lispref/modes.texi Chong Yidong

View File

@ -1,22 +1,72 @@
The admin directory
This directory contains scripts and other things useful for developing
and maintaining Emacs. These files are not part of Emacs releases
because they are not deemed generally useful, and you have to know
what you do when using them.
Brief description of scripts found here:
admin.el utilities for setting version numbers and alike
alloc-color.c a utility program that allocates a given number of
colors on X. Can be used to debug Emacs with
dense colormaps (PseudoColor).
build-configs build Emacs in various configurations
check-doc-strings check doc strings against documentation
cus-test.el tests for custom types and load problems
diff-tar-files show files added/removed between two tar files
make-emacs build Emacs in various ways
make-tarball.txt instructions to create pretest or release tarballs
quick-install-emacs install emacs quickly (`incrementally')
revdiff get CVS diffs of files
* Instructions and scripts used to prepare an Emacs release.
** FOR-RELEASE
Living list of activities that must be completed before the next release.
** make-tarball.txt
Instructions to create pretest or release tarballs, annoucements, etc.
** admin.el
Utilities for setting version numbers and alike.
** make-announcement, make-changelog-diff
Scripts used to prepare release announcements.
* Scripts that can be used to build and test Emacs.
** build-configs
Build Emacs in various configurations.
** make-emacs
Build Emacs in various ways.
** quick-install-emacs
Install emacs quickly (`incrementally').
** alloc-color.c
A utility program that allocates a given number of colors on X. Can
be used to debug Emacs with dense colormaps (PseudoColor).
** check-doc-strings
Check doc strings against documentation.
** cus-test.el
Tests for custom types and load problems.
** diff-tar-files
Show files added/removed between two tar files.
** revdiff
Get CVS diffs of files.
Local variables:
mode: outline
paragraph-separate: "[ ]*$"
end:
Brief description of sub-directories:

4
configure vendored
View File

@ -5716,7 +5716,7 @@ fi
echo "$as_me:$LINENO: checking for $ALSA_MODULES" >&5
echo $ECHO_N "checking for $ALSA_MODULES... $ECHO_C" >&6
if $PKG_CONFIG --exists "$ALSA_MODULES" ; then
if $PKG_CONFIG --exists "$ALSA_MODULES" 2>&5; then
echo "$as_me:$LINENO: result: yes" >&5
echo "${ECHO_T}yes" >&6
succeeded=yes
@ -10405,7 +10405,7 @@ echo "$as_me: error:
echo "$as_me:$LINENO: checking for $GTK_MODULES" >&5
echo $ECHO_N "checking for $GTK_MODULES... $ECHO_C" >&6
if $PKG_CONFIG --exists "$GTK_MODULES" ; then
if $PKG_CONFIG --exists "$GTK_MODULES" 2>&5; then
echo "$as_me:$LINENO: result: yes" >&5
echo "${ECHO_T}yes" >&6
succeeded=yes

View File

@ -1509,7 +1509,7 @@ AC_DEFUN([PKG_CHECK_MODULES], [
if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
AC_MSG_CHECKING(for $2)
if $PKG_CONFIG --exists "$2" ; then
if $PKG_CONFIG --exists "$2" 2>&5; then
AC_MSG_RESULT(yes)
succeeded=yes

View File

@ -1,3 +1,36 @@
2006-07-17 Reiner Steib <Reiner.Steib@gmx.de>
* ru-refcard.ps: Regenerate.
2006-07-17 Alex Ott <alexott@gmail.com>
* ru-refcard.tex: Update for Emacs 22.
2006-07-14 Kim F. Storm <storm@cua.dk>
* PROBLEMS: Emacs now requires ws2_32.dll on Windows.
2006-07-14 K,Aa(Broly L,Bu(Brentey <lorentey@elte.hu>
* HELLO: Update Hungarian sample.
2006-07-12 Michael Olson <mwolson@gnu.org>
* ERC-NEWS: Update for ERC 5.1.3.
2006-07-08 David Kastrup <dak@gnu.org>
* TODO: Suggest consolidation with user customization when the
system default of a customized variable changes.
2006-07-08 Thien-Thi Nguyen <ttn@gnu.org>
* compilation.txt: Add an example "Compilation started ..." line.
2006-07-07 Carsten Dominik <dominik@science.uva.nl>
* orgcard.tex: Version number change.
2006-07-05 Kenichi Handa <handa@m17n.org>
* HELLO: Add a paragraph for non-ASCII examples at the head. Add

View File

@ -2,6 +2,116 @@ ERC NEWS -*- outline -*-
* Changes in ERC 5.2 (unreleased)
* Changes in ERC 5.1.3
** Fix use of /quote command with no initial whitespace.
** Make it possible to customize the colorization of the header line.
The `erc-header-line' face is used to color the header line.
The `erc-header-line-face-method' determines the method to use when
colorizing the header line.
** Add the new function `erc-handle-irc-url', which is a suitable
candidate to use for `url-irc-function'. This permits some
integration of url.el and ERC.
** Fix several errors that occur when server or channel buffers are killed
prematurely.
** Fix toggling of flood control.
** Match the patterns in `erc-encoding-coding-alist' as regexps,
instead of verbatim text. Also, match case-insensitively.
** The /SMV command has been removed, since we no longer have
meaningful module-specific version information.
** Fix a "(stringp nil)" error that can happen when doing /PART.
** Use a better example in the `erc-part-reason-various-alist'
documentation.
** When using `erc-quit-reason-various' and `erc-part-reason-various'
and no matches are found, default to using the ERC version string
rather than "nil".
** Add the `list' and `page' modules to the `erc-modules' customize
interface.
** Changes to the ERC manual
*** Update the list of available modules.
*** Revise information about releases and development.
*** Provide a simpler example in the "Getting Started" chapter.
*** Fully document how to connect to an IRC server in the new
"Connecting" chapter.
** Changes and additions to modules
*** Autoaway (erc-autoaway.el)
**** Rename the `erc-autoaway-use-emacs-idle' option to
`erc-autoaway-idle-method'.
**** Add support for autoaway based on user idle time.
This is now the default.
**** If you set the AWAY status yourself, erc-autoaway will not
interfere by un-setting AWAY prematurely.
**** If you are set away while visiting a non-ERC buffer,
erc-autoaway used to fail in bringing the user back. This is now
fixed.
*** BBDB (erc-bbdb.el)
**** Add new option `erc-bbdb-electric-p', which determines whether
to make the BBDB buffer electric. This defaults to not electric.
*** Button (erc-button.el)
**** Use <backtab> instead of <C-tab> for `erc-button-previous'.
*** Identd (erc-identd.el)
**** Fix a bug that involves starting the identd server.
**** Make this work with Emacs 22.
**** Provide a real ERC module named `identd'.
**** Don't create an extra buffer for the identd process.
*** Logging (erc-log.el)
**** By default, don't insert old logs when opening an ERC buffer.
This may be changed by customizing `erc-log-insert-log-on-open'.
**** New option `erc-log-write-after-send' determines whether the
log file will be written to after every sent message. The default is
not to do this.
**** New option `erc-log-write-after-insert' determines whether the
log file will be written to when new text is added to a logged ERC
buffer. The default is not to do this. With this option and the
previous option, logging should no longer slow down ERC as much.
**** Default to saving buffers and queries on quit.
This may be changed by customizing the `erc-save-buffer-on-quit' and
`erc-save-queries-on-quit' options, respectively.
**** Only perform logging when the `logging' module is added to
`erc-modules'. This prevents logging from being activated just by
loading the erc-log.el file, and makes logging act like other ERC
modules.
*** Programmable completion (erc-pcomplete.el)
**** Don't complete the user's current nickname.
* Changes in ERC 5.1.2
** Fix compiler errors in erc-autojoin.el and erc-dcc.el.

View File

@ -31,7 +31,7 @@ Georgian ($,1JEJ0J@J7J5J4J:J8(B) $,1J2J0J;J0J@JOJ=J1J0(B
German (Deutsch) Guten Tag, Gr,A|_(B Gott
Greek (,Fekkgmij\(B) ,FCei\(B ,Fsar(B
Hebrew (,Hzixar(B) ,Hylem(B
Hungarian (??) Sz,Bi(Bp j,Bs(B napot!
Hungarian (magyar) Sz,Bi(Bp j,Bs(B napot!
Hindi ($,15y55B5f6 (B) $,15h5n5x6-5d6'(B, $,15h5n5x6-5U5~5p(B $,16D(B
Italian (italiano) Ciao, Buon giorno
Javanese (Jawa) System.out.println("Halo, selamat sore!");

View File

@ -526,6 +526,8 @@ C-h e displays the *Messages* buffer.
C-h d runs apropos-documentation.
C-h r visits the Emacs Manual in Info.
C-h followed by a control character is used for displaying files
that do not change:
@ -2084,10 +2086,22 @@ discretionary handling of edits of concealed text, undo concerns, etc.
- repaired retention of topic body hanging indent upon topic depth shifts
- refuse to create "containment discontinuities", where a
topic is shifted deeper than the offspring-depth of its' container
- auto-fill-mode is now left inactive when allout-mode starts, if it
already was inactive. also, `allout-inhibit-auto-fill' custom
configuration variable makes it easy to disable auto fill in allout
outlines in general or on a per-buffer basis.
- new hook `allout-mode-deactivate-hook', for coordinating with
deactivation of allout-mode.
- bulleting variation is simpler and more accommodating, both in the
default behavior and in ability to vary when creating new topics
- many internal fixes and refinements
- many module and function docstring clarifications
- mode deactivation now does cleans up effectively, more properly
restoring affected variables and hooks to former state, removing
overlays, etc.
- included a few unit-tests for interior functionality. developers can
have them automatically run at the end of module load by customizing
the option `allout-run-unit-tests-on-load'.
- many, many minor tweaks and fixes. many internal fixes and
refinements of docstrings.
- version number incremented to 2.2
** The variable `woman-topic-at-point' was renamed
@ -3122,6 +3136,8 @@ specified to etags, variables are tags also.
The new keywords are def, newcommand, renewcommand, newenvironment and
renewenvironment.
**** In C and derived languages, etags creates tags for #undef
*** Honor #line directives.
When Etags parses an input file that contains C preprocessor's #line
@ -3742,6 +3758,8 @@ deleting the part of subprocess output that matches the input.
** The variable `memory-full' now remains t until
there is no longer a shortage of memory.
** When Emacs receives a USR1 or USR2 signal, this generates
an input event: usr1-signal or usr2-signal.
* Lisp Changes in Emacs 22.1
@ -3897,6 +3915,12 @@ If it is non-nil, the function lists only faces matching this regexp.
`string-or-null-p' returns non-nil iff OBJECT is a string or nil.
`booleanp' returns non-nil iff OBJECT is a t or nil.
+++
*** New hook `command-error-function'.
By setting this variable to a function, you can control
how the editor command loop shows the user an error message.
** Lisp code indentation features:
+++
@ -4575,6 +4599,8 @@ example,
(kbd "C-x C-f") => "\^x\^f"
Actually, this format has existed since Emacs 20.1.
*** Interactive commands can be remapped through keymaps.
This is an alternative to using `defadvice' or `substitute-key-definition'
@ -4971,8 +4997,12 @@ of the display margins.
*** `sit-for' can now be called with args (SECONDS &optional NODISP).
+++
*** `sit-for' called with a negative SECONDS value now forces an
immediate redisplay even if input is pending.
*** Iconifying or deiconifying a frame no longer makes sit-for return.
+++
*** New function `redisplay' causes an immediate redisplay if no input is
available, equivalent to (sit-for 0). The call (redisplay t) forces
an immediate redisplay even if input is pending.
+++
*** New function `force-window-update' can initiate a full redisplay of

View File

@ -933,12 +933,12 @@ make it compiled by the latest Emacs.
+ ;; The only way the function is used in this package is included
+ ;; in `mucs-package-definition-end-hook' value, where it must
+ ;; return (possibly empty) *list* of forms. Do this. Do not rely
+ ;; on byte compiler to remove extra `progn's in `(progn ...)'
+ ;; on byte compiler to remove extra `progn's in `(progn ...)'
+ ;; form.
+ `((setq mucs-ccl-facility-alist
+ (quote ,mucs-ccl-facility-alist))
+ ,@result)))
;;; Add hook for embedding translation informations to a package.
(add-hook 'mucs-package-definition-end-hook
@ -2027,6 +2027,15 @@ to allocate ptys reliably.
* Runtime problems specific to MS-Windows
** Windows 95 and networking.
To support server sockets, Emacs 22.1 loads ws2_32.dll. If this file
is missing, all Emacs networking features are disabled.
Old versions of Windows 95 may not have the required DLL. To use
Emacs' networking features on Windows 95, you must install the
"Windows Socket 2" update available from MicroSoft's support Web.
** Emacs exits with "X protocol error" when run with an X server for MS-Windows.
A certain X server for Windows had a bug which caused this.
@ -2467,7 +2476,7 @@ command when running temacs like this:
setarch i386 ./temacs --batch --load loadup [dump|bootstrap]
*** Fedora Core 4 GNU/Linux: Segfault during dumping.
In addition to exec-shield explained above "Linux: Segfault during
@ -2481,7 +2490,7 @@ command:
or
setarch i386 -R make bootstrap
setarch i386 -R make bootstrap
*** Fatal signal in the command temacs -l loadup inc dump.

View File

@ -90,6 +90,8 @@ current buffer.
list fonts, display a font as a sample, etc. [fx is looking at
multilingual font selection for the Unicode branch of Emacs.]
** Provide a convenient way to select a color with the mouse.
** Rewrite the face code to be simpler, clearer and faster.
** Program Enriched mode to read and save in RTF. [Is there actually a
@ -171,11 +173,18 @@ typically due to pilot errors and should thus be in debug-ignored-errors.
to save their changes. If the user says yes, show them
in a Custom buffer using customize-customized.
** Record the sxhash of the default value for customized variables
and notify the user (maybe by adding a menu item or toolbar button,
as the detection can occur during autoload time) when the default
changes (meaning that new versions of the Lisp source with a changed
default value got installed) and offer ediff on the respective
customization buffers.
** Emacs Lisp mode could put an overlay on the defun for every
function that has advice. The overlay could have `after-text' like "
[Function has advice]". It might look like
(defun foo [Function has advice] (x y)
The overlay could also be a button that you could use to view the advice.
function that has advice. The overlay could have `after-text' like
" [Function has advice]". It might look like (defun foo [Function
has advice] (x y) The overlay could also be a button that you could
use to view the advice.
** ange-ftp
*** understand sftp

View File

@ -5,6 +5,9 @@ how they are rendered. It is intended both to help you decide which matchers
you need and as a test of the matchers. Move the mouse over a colored part or
use `compilation-message-face', to see how much text was actually matched.
Note that the following example line should NOT be highlighted:
Compilation started at Sat Jul 8 15:19:25
The important part is the symbol(s) line at the beginning of each entry.
These are the symbols you can customize `compilation-error-regexp-alist' for,
to match the messages shown in that entry. A few complex cases have more than

View File

@ -1,5 +1,5 @@
% Reference Card for Org Mode
\def\orgversionnumber{4.42}
\def\orgversionnumber{4.43}
\def\year{2006}
%
%**start of header
@ -639,7 +639,7 @@ \section{Agenda Views}
\section{Calendar and Diary Integration}
To include entries from the Emacs diary in your Org-mode agenda:
Include Emacs diary entries into Org-mode agenda with:
\beginexample%
(setq org-agenda-include-diary t)
\endexample

File diff suppressed because it is too large Load Diff

View File

@ -19,7 +19,7 @@
\newlength{\ColThreeWidth}
\setlength{\ColThreeWidth}{25mm}
\newcommand{\versionnumber}[0]{2.2}
\newcommand{\versionnumber}[0]{2.3}
\newcommand{\nyear}[0]{2006}
\newcommand\shortcopyrightnotice[0]{\vskip 1ex plus 2 fill
@ -29,9 +29,9 @@
\newcommand\copyrightnotice[0]{
\vskip 1ex plus 2 fill\begingroup\footnotesize
\centerline{Copyright \copyright\ \nyear\ Free Software Foundation, Inc.}
\centerline{v\versionnumber{} for GNU Emacs version 21, June \nyear}
\centerline{v\versionnumber{} for GNU Emacs version 22, June \nyear}
\centerline{designed by Stephen Gildea}
\centerline{Перевод Alex Ott <ottalex at narod.ru>}
\centerline{Перевод Alex Ott <alexott@gmail.com>}
Permission is granted to make and distribute copies of
this card provided the copyright notice and this permission notice
@ -53,14 +53,12 @@
%\begin{multicols}{3}
\centerline{Справочная карта по GNU Emacs}
\centerline{(для версии 21)}
\centerline{Справочник команд GNU Emacs}
\centerline{(для версии 22)}
\section{Запуск Emacs}
Для запуска GNU Emacs 21, просто наберите имя программы: \kbd{emacs}
О том, как открывать файлы, читайте далее в разделе Файлы.
Для запуска GNU Emacs 22, просто наберите имя программы: \kbd{emacs}
\section{Выход из Emacs}
@ -72,28 +70,28 @@ \section{
\section{Файлы}
\begin{tabular}{p{\ColWidth}p{\ColThreeWidth}p{\ColThreeWidth}}
{\bf открыть} файл в буфере Emacs & \kbd{C-x C-f} \\
{\bf открыть} файл в Emacs & \kbd{C-x C-f} \\
{\bf сохранить} файл обратно на диск & \kbd{C-x C-s} \\
сохранить {\bf все} файлы & \kbd{C-x s} \\
{\bf вставить} содержимое другого файла в текущий буфер & \kbd{C-x i} \\
открыть нужный вам файл вместо текущего & \kbd{C-x C-v} \\
сохранить буфер в указанном файле & \kbd{C-x C-w} \\
Включить/выключить состояние буфера ``только для чтения'' & \kbd{C-x C-q} \\
Переключить состояние буфера ``только для чтения'' & \kbd{C-x C-q} \\
\end{tabular}
\section{Получение помощи}
Справочная система достаточно проста. Hажмите \kbd{C-h} (или \kbd{F1}) и
следуйте инструкциям. Если вы в первый раз работаете с Emacs, наберите
следуйте инструкциям. Если вы в первый раз работаете с Emacs, то наберите
\kbd{C-u C-h t Russian RET} для вызова {\bf учебника}.
\begin{tabular}{p{\ColWidth}p{\ColThreeWidth}p{\ColThreeWidth}}
Закрыть окно справки & \kbd{C-x 1} \\
Скрыть окно справки & \kbd{C-x 1} \\
Прокрутить окно справки & \kbd{C-M-v} \\
apropos: показать команды, соответствующие строке & \kbd{C-h a} \\
показать имя функции, которая запускается клавишей & \kbd{C-h c} \\
описать функцию & \kbd{C-h f} \\
показать имя функции, которая запускается клавишей & \kbd{C-h k} \\
получить информацию о функции & \kbd{C-h f} \\
получить информацию о режиме & \kbd{C-h m} \\
\end{tabular}
@ -102,7 +100,7 @@ \section{
\begin{tabular}{p{\ColWidth}p{\ColThreeWidth}p{\ColThreeWidth}}
{\bf прервать} частично набранную или исполняемую команду & \kbd{C-g} \\
{\bf восстановить} файл, потерянный при крахе системы & \kbd{M-x recover-file} \\
{\bf отменить} нежелательные изменения & \kbd{C-x u {\rm или} C-\_} \\
{\bf отменить} нежелательные изменения & \kbd{C-x u, C-\_ {\rm или} C-/} \\
восстановить буфер в первоначальное состояние & \kbd{M-x revert-buffer} \\
перерисовать заполненный мусором экран & \kbd{C-l} \\
\end{tabular}
@ -112,7 +110,7 @@ \section{H
\begin{tabular}{p{\ColWidth}p{\ColThreeWidth}p{\ColThreeWidth}}
поиск вперед & \kbd{C-s} \\
поиск назад & \kbd{C-r} \\
поиск по регулярному выражению & \kbd{C-M-s} \\
поиск по регулярному выражению вперед & \kbd{C-M-s} \\
поиск по регулярному выражению назад & \kbd{C-M-r} \\
выбрать предыдущую строку поиска & \kbd{M-p} \\
@ -124,7 +122,7 @@ \section{H
Для повтора поиска в любом направлении используйте клавиши \kbd{C-s} или
\kbd{C-r}. Если Emacs все еще производит поиск, \kbd{C-g} отменит только
несделанную часть.
не выполненную часть.
\section{Перемещение}
@ -148,7 +146,7 @@ \section{
прокрутка экрана вверх & \kbd{M-v} \\
прокрутка влево & \kbd{C-x <} \\
прокрутка вправо & \kbd{C-x >} \\
прокрутка текущей строки в центр экрана & \kbd{C-u C-l} \\
установка текущей строки в центр экрана & \kbd{C-u C-l} \\
\end{tabular}
\section{Уничтожение и удаление}
@ -175,8 +173,8 @@ \section{
\section{Пометка}
\begin{tabular}{p{\ColWidth}l}
установить пометки & \kbd{C-@ {\rm or} C-SPC} \\
обменять местами курсор и пометку & \kbd{C-x C-x} \\
установить пометки & \kbd{C-@ {\rm или} C-SPC} \\
поменять местами курсор и пометку & \kbd{C-x C-x} \\
пометить {\it arg\/} {\bf слов} & \kbd{M-@} \\
пометить {\bf параграф} & \kbd{M-h} \\
@ -193,7 +191,7 @@ \section{
с использованием регулярных выражений & \kbd{M-x query-replace-regexp} \\
\end{tabular}
В режиме интерактивной замены пользователю доступны следующие ответы:
В режиме интерактивной замены пользователю доступны следующие команды:
\begin{tabular}{p{\ColWidth}l}
{\bf заменить} данное соответствие, перейти к следующему & \kbd{SPC} \\
@ -201,14 +199,14 @@ \section{
{\bf пропустить} соответствие без замены & \kbd{DEL} \\
заменить все оставшиеся соответствия & \kbd{!} \\
{\bf вернуться} к предыдущему соответствию & \kbd{\^} \\
{\bf выйти} из режима замена с запросом & \kbd{RET} \\
{\bf выйти} из режима ``замена с запросом'' & \kbd{RET} \\
войти в режим рекурсивного редактирования (для выхода используется \kbd{C-M-c}) & \kbd{C-r} \\
\end{tabular}
\section{Множество окон}
\section{Использование нескольких окон}
Команды, приведенные во втором столбце, применяются к другому
(неактивному) окну.
фрэйму (окну используемой оконной системы).
\begin{tabular}{p{\ColWidth}l}
удалить все остальные окна & \kbd{C-x 1} \\
@ -256,11 +254,11 @@ \section{
удалить пустое пространство вокруг курсора & \kbd{M-$\backslash$} \\
поместить только один пробел в позиции курсора & \kbd{M-SPC} \\
заполнить текущий параграф & \kbd{M-q} \\
отформатировать текущий параграф & \kbd{M-q} \\
установить столбец заполнения & \kbd{C-x f} \\
установить префикс заполнения каждой строки & \kbd{C-x .} \\
установить начертание & \kbd{M-g} \\
установить начертание (face) & \kbd{M-g} \\
\end{tabular}
\section{Изменение регистра}
@ -283,8 +281,8 @@ \section{
дополнить до одного слова & \kbd{SPC} \\
дополнить и выполнить & \kbd{RET} \\
показать возможные дополнения & \kbd{?} \\
выбрать предыдущий ввод в минибуфер & \kbd{M-p} \\
выбрать следующий ввод в минибуфер & \kbd{M-n} \\
выбрать предыдущую строку из истории ввода & \kbd{M-p} \\
выбрать следующую строку из истории ввода & \kbd{M-n} \\
поиск в истории по регулярному выражению в обратном напрвлении & \kbd{M-r} \\
поиск в истории по регулярному выражению в прямом напрвлении & \kbd{M-s} \\
прервать команду & \kbd{C-g} \\
@ -302,7 +300,7 @@ \section{
уничтожить буфер & \kbd{C-x k} \\
\end{tabular}
\section{Обмен местами}
\section{Перестановка данных}
\begin{tabular}{p{\ColWidth}l}
обменять местами {\bf символы} & \kbd{C-t} \\
@ -311,7 +309,7 @@ \section{
обменять местами {\bf выражения} & \kbd{C-M-t} \\
\end{tabular}
\section{Проверка грамматики}
\section{Проверка правописания}
\begin{tabular}{p{\ColWidth}l}
проверить текущее слово & \kbd{M-\$} \\
@ -324,7 +322,7 @@ \section{
\begin{tabular}{p{\ColWidth}l}
найти определение тега & \kbd{M-.} \\
найти следующее вхождение тега & \kbd{C-u M-.} \\
указать новый файл с тегами & \kbd{M-x visit-tags-table} \\
использовать новый файл с тегами & \kbd{M-x visit-tags-table} \\
поиск по шаблону по всей таблице тегов & \kbd{M-x tags-search} \\
выполнить query-replace над всеми файлами & \kbd{M-x tags-query-replace} \\
@ -395,7 +393,7 @@ \section{
\section{Международные наборы символов}
\begin{tabular}{p{\ColWidth}l}
выбрать язык & \kbd{M-x set-language-environment} \\
выбрать язык & \kbd{C-x RET l} \\
показать все возможные методы ввода & \kbd{M-x list-input-methods} \\
разрешить или запретить метод ввода & \kbd{C-$\backslash$} \\
установить систему кодирования для следующей команды & \kbd{C-x RET c} \\
@ -407,7 +405,7 @@ \section{
\begin{tabular}{p{\ColWidth}l}
запустить систему доступа к документации & \kbd{C-h i} \\
найти указанную функцию или переменную в документации & \kbd{C-h C-i} \\
найти указанную функцию или переменную в документации & \kbd{C-h S} \\
\end{tabular}
Перемещение внутри узла (нодами):
@ -424,11 +422,12 @@ \section{
{\bf следующий} узел & \kbd{n} \\
{\bf предыдущий} узел & \kbd{p} \\
перейти к {\bf верхнему} узлу & \kbd{u} \\
выбрать меню по имени & \kbd{m} \\
выбрать пункт меню по имени & \kbd{m} \\
выбрать {\it n\/}-й пункт меню по номеру (1--9) & \kbd{{\it n}} \\
перейти по ссылке (возврат с помощью \kbd{l}) & \kbd{f} \\
перейти по ссылке (возврат с помощью \kbd{l}) & \kbd{f} \\
возвратится к последнему просмотренному узлу & \kbd{l} \\
возвратится к узлу-каталогу & \kbd{d} \\
Перейти к верхему узлу файла & \kbd{t} \\
перейти к узлу, заданному именем & \kbd{g} \\
\end{tabular}
@ -436,8 +435,8 @@ \section{
\begin{tabular}{p{\ColWidth}l}
запустить {\bf учебник} по системе документации & \kbd{h} \\
поиск темы в индексе & \kbd{i} \\
поиск в узлах с помощью регулярных выражений & \kbd{s} \\
% look up a subject in the indices & \kbd{i} % FIXME
{\bf прекратить работу} с документацией & \kbd{q} \\
\end{tabular}
@ -481,7 +480,7 @@ \section{
% The intended audience here is the person who wants to make simple
% customizations and knows Lisp syntax.
Создать глобальное назначение ключей на Emacs Lisp (пример):
Создание глобальных привязок клавиш (ключей) на Emacs Lisp (примеры):
\begin{verbatim}
(global-set-key "\C-cg" 'goto-line)

View File

@ -1,3 +1,8 @@
2006-07-12 David Kastrup <dak@gnu.org>
* quail/greek.el: Change iota subscriptum transliteration in
Ibycus4 encoding's capitals from "i" to "|".
2006-03-03 Claudio Fontana <claudio@gnu.org>
* Makefile.in (install): Add DESTDIR variable to support staged

View File

@ -1016,14 +1016,14 @@ nil t t nil nil nil nil nil nil nil t)
("a)=|" ?$,1qF(B)
("a(=|" ?$,1qG(B)
(")Ai" ?$,1qH(B)
("(Ai" ?$,1qI(B)
(")`Ai" ?$,1qJ(B)
("(`Ai" ?$,1qK(B)
(")'Ai" ?$,1qL(B)
("('Ai" ?$,1qM(B)
(")=Ai" ?$,1qN(B)
("(=Ai" ?$,1qO(B)
(")A|" ?$,1qH(B)
("(A|" ?$,1qI(B)
(")`A|" ?$,1qJ(B)
("(`A|" ?$,1qK(B)
(")'A|" ?$,1qL(B)
("('A|" ?$,1qM(B)
(")=A|" ?$,1qN(B)
("(=A|" ?$,1qO(B)
("h)|" ?$,1qP(B)
("h(|" ?$,1qQ(B)
@ -1034,14 +1034,14 @@ nil t t nil nil nil nil nil nil nil t)
("h)=|" ?$,1qV(B)
("h(=|" ?$,1qW(B)
(")Hi" ?$,1qX(B)
("(Hi" ?$,1qY(B)
(")`Hi" ?$,1qZ(B)
("(`Hi" ?$,1q[(B)
(")'Hi" ?$,1q\(B)
("('Hi" ?$,1q](B)
(")=Hi" ?$,1q^(B)
("(=Hi" ?$,1q_(B)
(")H|" ?$,1qX(B)
("(H|" ?$,1qY(B)
(")`H|" ?$,1qZ(B)
("(`H|" ?$,1q[(B)
(")'H|" ?$,1q\(B)
("('H|" ?$,1q](B)
(")=H|" ?$,1q^(B)
("(=H|" ?$,1q_(B)
("w)|" ?$,1q`(B)
("w(|" ?$,1qa(B)
@ -1052,14 +1052,14 @@ nil t t nil nil nil nil nil nil nil t)
("w)=|" ?$,1qf(B)
("w(=|" ?$,1qg(B)
(")Wi" ?$,1qh(B)
("(Wi" ?$,1qi(B)
(")`Wi" ?$,1qj(B)
("(`Wi" ?$,1qk(B)
(")'Wi" ?$,1ql(B)
("('Wi" ?$,1qm(B)
(")=Wi" ?$,1qn(B)
("(=Wi" ?$,1qo(B)
(")W|" ?$,1qh(B)
("(W|" ?$,1qi(B)
(")`W|" ?$,1qj(B)
("(`W|" ?$,1qk(B)
(")'W|" ?$,1ql(B)
("('W|" ?$,1qm(B)
(")=W|" ?$,1qn(B)
("(=W|" ?$,1qo(B)
("a`|" ?$,1qr(B)
("a|" ?$,1qs(B)
@ -1069,7 +1069,7 @@ nil t t nil nil nil nil nil nil nil t)
("`A" ?$,1qz(B)
("'A" ?$,1q{(B)
("Ai" ?$,1q|(B)
("A|" ?$,1q|(B)
(")" ?$,1q(B) ; #x1fbf ; psili
("=" ?$,1r (B) ; #x1fc0 ; perispomeni
@ -1086,7 +1086,7 @@ nil t t nil nil nil nil nil nil nil t)
("`H" ?$,1r*(B)
("'H" ?$,1r+(B)
("Hi" ?$,1r,(B)
("H|" ?$,1r,(B)
(")`" ?$,1r-(B) ; #x1fcd
(")'" ?$,1r.(B) ; #x1fce
@ -1133,7 +1133,7 @@ nil t t nil nil nil nil nil nil nil t)
("`W" ?$,1rZ(B)
("'W" ?$,1r[(B)
("Wi" ?$,1r\(B)
("W|" ?$,1r\(B)
("'" ?$,1r](B) ; #x1ffd ; oxia
("(" ?$,1r^(B) ; #x1ffe ; dasia

View File

@ -1,3 +1,14 @@
2006-07-18 Dan Nicolaescu <dann@ics.uci.edu>
* ebrowse.c (usage, version): Mark as NO_RETURN.
* emacsclient.c (print_help_and_exit): Likewise.
2006-07-10 Francesco Potort,Al(B <pot@gnu.org>
* etags.c (absolute_filename): Free unused space (cosmetic change).
(in_word_set): In C, also tag #undef symbols.
2006-06-09 Eli Zaretskii <eliz@gnu.org>
* yow.c: Remove file.

View File

@ -533,6 +533,8 @@ struct sym *parse_qualified_ident_or_type P_ ((char **));
void parse_qualified_param_ident_or_type P_ ((char **));
int globals P_ ((int));
void yyerror P_ ((char *, char *));
void usage P_ ((int)) NO_RETURN;
void version P_ (()) NO_RETURN;

View File

@ -67,7 +67,7 @@ const char * alternate_editor = NULL;
/* If non-NULL, the filename of the UNIX socket. */
char *socket_name = NULL;
void print_help_and_exit ();
void print_help_and_exit () NO_RETURN;
struct option longopts[] =
{

View File

@ -41,7 +41,7 @@
* configuration file containing regexp definitions for etags.
*/
char pot_etags_version[] = "@(#) pot revision number is 17.17";
char pot_etags_version[] = "@(#) pot revision number is 17.18";
#define TRUE 1
#define FALSE 0
@ -2457,6 +2457,7 @@ extern, 0, st_C_extern
enum, 0, st_C_enum
typedef, 0, st_C_typedef
define, 0, st_C_define
undef, 0, st_C_define
operator, C_PLPL, st_C_operator
template, 0, st_C_template
# DEFUN used in emacs, the next three used in glibc (SYSCALL only for mach).
@ -2475,10 +2476,10 @@ and replace lines between %< and %> with its output, then:
/*%<*/
/* C code produced by gperf version 3.0.1 */
/* Command-line: gperf -m 5 */
/* Computed positions: -k'1-2' */
/* Computed positions: -k'2-3' */
struct C_stab_entry { char *name; int c_ext; enum sym_type type; };
/* maximum key range = 31, duplicates = 0 */
/* maximum key range = 33, duplicates = 0 */
#ifdef __GNUC__
__inline
@ -2494,34 +2495,45 @@ hash (str, len)
{
static unsigned char asso_values[] =
{
34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
34, 34, 34, 34, 1, 34, 34, 34, 14, 14,
34, 34, 34, 34, 34, 34, 34, 34, 13, 34,
13, 34, 34, 12, 34, 34, 34, 34, 34, 11,
34, 34, 34, 34, 34, 8, 34, 11, 34, 12,
11, 0, 1, 34, 7, 0, 34, 34, 11, 9,
0, 4, 0, 34, 7, 4, 14, 21, 34, 15,
0, 2, 34, 34, 34, 34, 34, 34, 34, 34,
34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
34, 34, 34, 34, 34, 34
35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
35, 35, 35, 35, 35, 35, 35, 35, 35, 15,
14, 35, 35, 35, 35, 35, 35, 35, 14, 35,
35, 35, 35, 12, 13, 35, 35, 35, 35, 12,
35, 35, 35, 35, 35, 1, 35, 16, 35, 6,
23, 0, 0, 35, 22, 0, 35, 35, 5, 0,
0, 15, 1, 35, 6, 35, 8, 19, 35, 16,
4, 5, 35, 35, 35, 35, 35, 35, 35, 35,
35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
35, 35, 35, 35, 35, 35
};
return len + asso_values[(unsigned char)str[1]] + asso_values[(unsigned char)str[0]];
register int hval = len;
switch (hval)
{
default:
hval += asso_values[(unsigned char)str[2]];
/*FALLTHROUGH*/
case 2:
hval += asso_values[(unsigned char)str[1]];
break;
}
return hval;
}
static struct C_stab_entry *
@ -2531,46 +2543,48 @@ in_word_set (str, len)
{
enum
{
TOTAL_KEYWORDS = 31,
TOTAL_KEYWORDS = 32,
MIN_WORD_LENGTH = 2,
MAX_WORD_LENGTH = 15,
MIN_HASH_VALUE = 3,
MAX_HASH_VALUE = 33
MIN_HASH_VALUE = 2,
MAX_HASH_VALUE = 34
};
static struct C_stab_entry wordlist[] =
{
{""}, {""}, {""},
{""}, {""},
{"if", 0, st_C_ignore},
{"enum", 0, st_C_enum},
{""},
{"@end", 0, st_C_objend},
{"union", 0, st_C_struct},
{"define", 0, st_C_define},
{"import", (C_JAVA & !C_PLPL), st_C_ignore},
{"template", 0, st_C_template},
{"operator", C_PLPL, st_C_operator},
{"@interface", 0, st_C_objprot},
{"implements", (C_JAVA & !C_PLPL), st_C_javastruct},
{"friend", C_PLPL, st_C_ignore},
{"typedef", 0, st_C_typedef},
{"return", 0, st_C_ignore},
{"@implementation",0, st_C_objimpl},
{"@protocol", 0, st_C_objprot},
{"interface", (C_JAVA & !C_PLPL), st_C_struct},
{"extern", 0, st_C_extern},
{"extends", (C_JAVA & !C_PLPL), st_C_javastruct},
{"for", 0, st_C_ignore},
{"interface", (C_JAVA & !C_PLPL), st_C_struct},
{"@protocol", 0, st_C_objprot},
{"@interface", 0, st_C_objprot},
{"operator", C_PLPL, st_C_operator},
{"return", 0, st_C_ignore},
{"friend", C_PLPL, st_C_ignore},
{"import", (C_JAVA & !C_PLPL), st_C_ignore},
{"@implementation",0, st_C_objimpl},
{"define", 0, st_C_define},
{"package", (C_JAVA & !C_PLPL), st_C_ignore},
{"implements", (C_JAVA & !C_PLPL), st_C_javastruct},
{"namespace", C_PLPL, st_C_struct},
{"domain", C_STAR, st_C_struct},
{"template", 0, st_C_template},
{"typedef", 0, st_C_typedef},
{"struct", 0, st_C_struct},
{"domain", C_STAR, st_C_struct},
{"switch", 0, st_C_ignore},
{"union", 0, st_C_struct},
{"while", 0, st_C_ignore},
{"enum", 0, st_C_enum},
{"for", 0, st_C_ignore},
{"namespace", C_PLPL, st_C_struct},
{"class", 0, st_C_class},
{"while", 0, st_C_ignore},
{"undef", 0, st_C_define},
{"package", (C_JAVA & !C_PLPL), st_C_ignore},
{"__attribute__", 0, st_C_attribute},
{"SYSCALL", 0, st_C_gnumacro},
{"PSEUDO", 0, st_C_gnumacro},
{"ENTRY", 0, st_C_gnumacro},
{"PSEUDO", 0, st_C_gnumacro},
{"DEFUN", 0, st_C_gnumacro}
};
@ -6786,8 +6800,11 @@ absolute_filename (file, dir)
slashp = etags_strchr (slashp + 1, '/');
}
if (res[0] == '\0')
return savestr ("/");
if (res[0] == '\0') /* just a safety net: should never happen */
{
free (res);
return savestr ("/");
}
else
return res;
}

View File

@ -1,3 +1,368 @@
2006-07-18 Stefan Monnier <monnier@iro.umontreal.ca>
* progmodes/sh-script.el (sh-font-lock-keywords-1):
Revert inadvertently installed patch hunk.
* progmodes/compile.el (compilation-find-file): Handle the
cases where the user selects a non-existent file.
2006-07-18 Stefan Monnier <monnier@iro.umontreal.ca>
* bindings.el (minibuffer-local-map): Rebind TAB so it inserts a \t.
2006-07-17 Chong Yidong <cyd@stupidchicken.com>
* subr.el (sit-for): Just sleep-for if noninteractive.
2006-07-17 Stefan Monnier <monnier@iro.umontreal.ca>
* emacs-lisp/autoload.el (make-autoload): Use new arg.
* custom.el (custom-autoload): Add `noset' argument.
(custom-push-theme): Don't autoload the variable, let callers do it.
(custom-theme-set-variables): Autoload the variable if necessary.
* cus-edit.el (custom-variable-state-set): If the variable was
originally set outside custom, but to the same value as the default,
consider it to be standard.
* Makefile.in (mh-loaddefs.el): Finish setting up the default empty
file *before* telling Emacs to add the autoloads, in case it fails.
* progmodes/sh-script.el (sh-quoted-subshell): Don't match escaped `.
Use `cond', push', and `dolist'.
2006-07-17 Richard Stallman <rms@gnu.org>
* image-mode.el (tar-superior-buffer, archive-superior-buffer):
Add defvars to silence warnings.
2006-07-17 Chong Yidong <cyd@stupidchicken.com>
* progmodes/compile.el (compilation-mode-font-lock-keywords):
Don't highlight "Compiling file" messages as error.
* dired-aux.el (dired-compress-file): Confirm again if gzipped
file already exists.
2006-07-16 Thien-Thi Nguyen <ttn@gnu.org>
* find-file.el (ff-special-constructs): Doc fix. Also, for C/C++
entry, don't assign to free var; simply return the extracted filename.
(ff-treat-as-special): Incorporate common preamble from callers.
(ff-other-file-name, ff-find-the-other-file):
Update call to ff-treat-as-special.
* progmodes/ada-mode.el (ada-mode): Rewrite ff-special-constructs init.
2006-07-16 Mathias Dahl <mathias.dahl@gmail.com>
* tumme.el (tumme-get-comment): Fix bug.
2006-07-16 Stefan Monnier <monnier@iro.umontreal.ca>
* files.el: Remove spurious * in docstrings.
2006-07-14 Ken Manheimer <ken.manheimer@gmail.com>
* allout.el (allout-run-unit-tests-on-load): Rectify docstring
grammar.
(allout-beginning-of-current-line): Beware beginning of buffer.
Also, a comment is simplified.
(allout-hotspot-key-handler): Only set allout-post-goto-bullet
when appropriate. (This fix enables use for other than
bullet-hotspot operation.)
(allout-hide-current-subtree): While escalating to sibling-close,
make sure to situate on a topic.
2006-07-14 Kim F. Storm <storm@cua.dk>
* emulation/cua-base.el (cua-delete-selection)
(cua-toggle-set-mark): New defcustoms.
(cua-rectangle-modifier-key): Add `alt' modifier.
(cua-replace-region): Don't delete if cua-delete-selection is nil.
(cua-set-mark): Don't clear mark if cua-toggle-set-mark is nil.
Suggested by Klaus Zeitler <kzeitler@lucent.com>.
* emulation/cua-rect.el (cua-help-for-rectangle): Add `alt' modifier.
2006-07-14 Ken Manheimer <ken.manheimer@gmail.com>
* allout.el: Require 'cl during byte-compilation/interactive load,
for the `assert' macro.
(allout-mode-deactivate-hook): New hook, run when allout mode
deactivates.
(allout-developer): New allout customization subgroup.
(allout-run-unit-tests-on-load): New allout-developer
customization variable, when true allout unit tests are run towards
end of file load/eval.
(allout-inhibit-auto-fill): Disable auto-fill activity even during
auto-fill-mode.
(allout-resumptions): Remove, to be replaced by...
(allout-add-resumptions): Register variable settings to be
reinstated by `allout-do-resumptions'. The settings are made
buffer-local, but the locality/globality of the suspended setting
is restored on resumption.
(allout-do-resumptions): Reinstate all settings suspended using
`allout-add-resumptions'.
(allout-test-resumptions): Unit tests (and intermediate variables)
for resumptions.
(allout-tests-globally-unbound, allout-tests-globally-true)
(allout-tests-locally-true): Intermediate variables for
resumptions unit tests.
(allout-overlay-preparations): Replaces `allout-set-overlay-category'.
(allout-exposure-category): Replaces 'allout-overlay-category variable.
(allout-mode): Use `allout-add-resumptions' and `allout-do-resumptions'
instead of retired `allout-resumptions'. For hook functions, use
`local' parameter so hook settings are created and removed as
buffer-local settings. Revise (resumptions) setting
auto-fill-function so it is set only if already active. (The
related fill-function settings are all made in either case, so
that activating auto-fill-mode activity will have the custom
allout-mode behaviors (hanging indent on topics, if configured for it).
Remove all allout-exposure-category overlays on mode deactivation.
(allout-hotspot-key-handler): New function extracted from
`allout-pre-command-business', so the functionality can be used
for other purposes, eg as a binding in an overlay.
(allout-pre-command-business): Use new `allout-hotspot-key-handler'.
(allout-auto-fill): Respect new `allout-inhibit-auto-fill'
customization variable.
(allout-run-unit-tests): Run the (currently quite small)
repertoire of unit tests. Called just before the provide iff user
has customized `allout-run-unit-tests-on-load' non-nil.
2006-07-14 K,Aa(Broly L,Bu(Brentey <lorentey@elte.hu>
* emacs-lisp/authors.el (authors-aliases): Update.
2006-07-14 Nick Roberts <nickrob@snap.net.nz>
* progmodes/gdb-ui.el (gdb-display-buffer): Check for
gdb-source-window. Add dedicated argument.
(gdb-display-separate-io-buffer, gdb-append-to-inferior-io)
(gdb-display-breakpoints-buffer, gdb-display-stack-buffer)
(gdb-display-threads-buffer, gdb-display-memory-buffer)
(gdb-display-locals-buffer): Use it.
* progmodes/gud.el (gud-display-line): Use gdb-display-buffer.
Set gdb-source-window.
2006-07-13 Stefan Monnier <monnier@iro.umontreal.ca>
* emacs-lisp/autoload.el (make-autoload): Remove special handling of
minor modes, redundant with the custom-autoload line above.
2006-07-12 Chong Yidong <cyd@stupidchicken.com>
* longlines.el (longlines-post-command-function): Handle open-line too.
2006-07-12 Richard Stallman <rms@gnu.org>
* progmodes/grep.el (grep-last-buffer): Doc fix.
* info.el (Info-try-follow-nearest-node): Doc fix.
* emacs-lisp/edebug.el (edebug-instrument-function):
Err if find-function-noselect gives no position.
* emacs-lisp/find-func.el (find-function-search-for-symbol):
If can't find definition, return nil for position.
(find-function-do-it): Handle new return value
of find-definition-noselect.
(find-definition-noselect, find-variable-noselect): Doc fix.
(find-function-noselect): Doc fix.
* help-mode.el (help-variable-def): Handle find-variable-noselect
returning no position.
(help-function-def): Likewise for find-function-search-for-symbol.
(help-face-def): Likewise.
* help-fns.el (describe-variable): Handle find-variable-noselect
returning no position.
* files.el (locate-file-completion): Avoid duplicates in result.
* cus-edit.el (custom-no-edit): New command.
(custom-mode-map): Remap to custom-no-edit instead of
using suppress-keymap.
2006-07-12 Nick Roberts <nickrob@snap.net.nz>
* tumme.el (tumme-create-thumb, tumme-thumbnail-display-external)
(tumme-display-image, tumme-rotate-thumbnail, tumme-rotate-original)
(tumme-set-exif-data, tumme-get-exif-data): Use shell-command-switch.
* thumbs.el (thumbs-call-convert): Use shell-command-switch.
2006-07-11 Kim F. Storm <storm@cua.dk>
* ido.el (ido-copy-current-file-name): Use buffer-name if
buffer-file-name is nil.
2006-07-11 Chong Yidong <cyd@stupidchicken.com>
* simple.el (undo-ask-before-discard): Set to nil.
* vc.el (vc-exec-after): Don't delete process manually.
(vc-print-log): Run log-view-mode in process sentinel inside
inhibit-read-only. Don't shrink window due to timing issues.
* progmodes/ebrowse.el (ebrowse-display-member-buffer):
Avoid using with-output-to-temp-buffer, which clobbers local vars.
2006-07-11 Stefan Monnier <monnier@iro.umontreal.ca>
* progmodes/compile.el (compilation-error-regexp-alist-alist):
Fix ambiguity introduced by last change.
(compilation-find-file): Move save-excursion to where it may
make sense. Fix a left over `find-file'.
2006-07-11 Robert J. Chassell <bob@rattlesnake.com>
* textmodes/texinfmt.el (texinfo-format-separate-node):
Insert a string before point, which fits documentation, not after.
(texinfo-multitable-item): In a multitable row, insert any
additional needed @tabs and spaces.
2006-07-11 Nick Roberts <nickrob@snap.net.nz>
* tumme.el (tumme-create-thumb, tumme-thumbnail-display-external)
(tumme-display-image, tumme-rotate-thumbnail, tumme-rotate-original)
(tumme-set-exif-data, tumme-get-exif-data): Use call-process
instead of shell-command.
(tumme-create-thumbnail-buffer, tumme-create-display-image-buffer)
(tumme-display-thumbs, tumme-modify-mark-on-thumb-original-file)
(tumme-display-image, tumme-get-exif-data): Use with-current-buffer.
(tumme-display-properties-format, tumme-dired-insert-marked-thumbs)
(tumme-thumbnail-set-image-description, tumme-gallery-generate)
(tumme-rotate-original, tumme-get-exif-file-name): Fit to 80 columns.
2006-07-11 Kim F. Storm <storm@cua.dk>
* subr.el (sit-for): Doc fix. Specify normal arg list using fn-form.
Remove special case for seconds < 0. Use (redisplay t) instead.
2006-07-10 Chong Yidong <cyd@stupidchicken.com>
* progmodes/cc-awk.el (defconst): Use eval-and-compile to avoid
compilation error.
* subr.el (sit-for): New function.
* play/hanoi.el (hanoi-sit-for): Check sit-for return value.
2006-07-10 Richard Stallman <rms@gnu.org>
* ldefs-boot.el (edebug): Update page.
2006-07-10 Kim F. Storm <storm@cua.dk>
* emacs-lisp/authors.el (authors-ignored-files): Ignore changes
to FOR-RELEASE and TODO.
2006-07-10 Romain Francoise <romain@orebokech.com>
* emacs-lisp/authors.el (authors-aliases): Update.
2006-07-10 Alan Mackenzie <acm@muc.de>
* progmodes/cc-awk.el, cc-defs.el, cc-fonts.el, cc-langs.el:
* cc-mode.el: Changes to eradicate eval-after-load.
2006-07-09 Chong Yidong <cyd@stupidchicken.com>
* emacs-lisp/helper.el (Helper-help-scroller): Don't signal error
on non-char events.
2006-07-09 Romain Francoise <romain@orebokech.com>
* progmodes/compile.el (compilation-mode-font-lock-keywords):
Don't highlight start/end markers as compilation messages.
* isearch.el (isearch-yank-line): Let-bind `inhibit-field-text-motion'
to t.
2006-07-09 Stefan Monnier <monnier@iro.umontreal.ca>
* textmodes/fill.el (fill-region-as-paragraph): Refine last change.
2006-07-08 Richard Stallman <rms@gnu.org>
* term/x-win.el (x-handle-display): Add doc string.
* emacs-lisp/easy-mmode.el (define-minor-mode): Doc fix.
* subr.el (def-edebug-spec): Move here.
* emacs-lisp/edebug.el (def-edebug-spec): Move to subr.el.
* imenu.el (imenu-choose-buffer-index): Doc fix.
2006-07-08 Romain Francoise <romain@orebokech.com>
* term/x-win.el (x-display-name): Fix typo.
2006-07-08 Eli Zaretskii <eliz@gnu.org>
* hexl.el (hexl-find-file): Doc fix.
* emacs-lisp/easy-mmode.el (define-minor-mode): Doc fix.
2006-07-07 Chong Yidong <cyd@stupidchicken.com>
* term/x-win.el (x-display-name): Doc fix.
2006-07-07 Stefan Monnier <monnier@iro.umontreal.ca>
* textmodes/fill.el (fill-delete-prefix): Don't ignore excessively
long prefixes.
(fill-region-as-paragraph): Don't round up to a whole line.
(fill-comment-paragraph): Don't include the code-before-the-comment
when calling fill-region-as-paragraph.
* international/mule.el (make-char): Remove redundancy.
* emacs-lisp/bytecomp.el (byte-compile-form): The `byte-compile'
property may contain an anonymous function rather than a symbol.
* pcvs-defs.el (cvs-temp-buffer-name): Fix non-hiddenness.
* progmodes/compile.el (compilation-error-regexp-alist-alist) <gnu>:
Use shy regexp. Fix incorrect backref to potentially unmatched group.
* dirtrack.el (dirtrack-default-directory-function): Remove.
(dirtrack-directory-function): Use file-name-as-directory.
(dirtrack-windows-directory-function): Simplify.
(dirtrack-forward-slash, dirtrack-backward-slash)
(dirtrack-replace-slash): Remove.
(dirtrack-toggle): Adjust comint-preoutput-filter-functions as well.
(dirtrack): Fix wrong parenthesizing; use match-string.
* progmodes/octave-inf.el: Remove spurious * in docstrings.
(inferior-octave-mode): Only change the buffer-local value of
comint-dynamic-complete-functions.
(inferior-octave-mode-map, inferior-octave-mode-syntax-table):
Move the initialization to the declaration.
(inferior-octave-complete): Remove unused var `filter'.
* shell.el (shell-mode): Only change the buffer-local value of
comint-dynamic-complete-functions.
2006-07-07 Carsten Dominik <dominik@science.uva.nl>
* textmodes/org.el (org-agenda-get-todos): Skip subtree also if
entry is skipped because it has been scheduled.
(org-prepare-agenda-buffers): Don't mark buffers as modified when
changing `:org-archived' and `:org-comment' properties.
2006-07-06 Chong Yidong <cyd@stupidchicken.com>
* server.el (server-select-display): Don't make the temp frame
minibuffer-only, in case it's not a temp frame.
(server-process-filter): Don't delete the temp frame if it's the
only one we have on that display.
* files.el (find-alternate-file): Doc fix.
2006-07-05 Richard Stallman <rms@gnu.org>
* files.el (abbreviate-file-name): Add save-match-data.
@ -181,8 +546,8 @@
2006-06-25 Michael Albinus <michael.albinus@gmx.de>
* net/rcompile.el (remote-compile): Replace ange-ftp based
implementation by Tramp functions. Based on a patch published by
Marc Abramowitz <msabramo@gmail.com>.
implementation by Tramp functions.
Suggested by Marc Abramowitz <msabramo@gmail.com>.
* net/tramp.el (tramp-unload-tramp): Provide a doc string.
@ -1857,8 +2222,6 @@
to `ispell-local-dictionary'.
(ispell-internal-change-dictionary): Check for a change in
personal dictionary use too.
Cosmetic changes from Agustin Martin
<agustin.martin@hispalinux.es>.
2006-05-05 Eli Zaretskii <eliz@gnu.org>

View File

@ -249,12 +249,6 @@ $(lisp)/mh-e/mh-loaddefs.el: $(MH_E_SRC)
echo ";;; Commentary:" >> $@
echo ";;; Change Log:" >> $@
echo ";;; Code:" >> $@
$(EMACS) $(EMACSOPT) \
-l autoload \
--eval "(setq generate-autoload-cookie \";;;###mh-autoload\")" \
--eval "(setq generated-autoload-file \"$(lisp)/mh-e/mh-loaddefs.el\")" \
--eval "(setq make-backup-files nil)" \
-f batch-update-autoloads $(lisp)/mh-e
echo " " >> $@
echo "(provide 'mh-loaddefs)" >> $@
echo ";; Local Variables:" >> $@
@ -263,6 +257,12 @@ $(lisp)/mh-e/mh-loaddefs.el: $(MH_E_SRC)
echo ";; no-update-autoloads: t" >> $@
echo ";; End:" >> $@
echo ";;; mh-loaddefs.el ends here" >> $@
$(EMACS) $(EMACSOPT) \
-l autoload \
--eval "(setq generate-autoload-cookie \";;;###mh-autoload\")" \
--eval "(setq generated-autoload-file \"$(lisp)/mh-e/mh-loaddefs.el\")" \
--eval "(setq make-backup-files nil)" \
-f batch-update-autoloads $(lisp)/mh-e
# Prepare a bootstrap in the lisp subdirectory.
#

View File

@ -8,6 +8,7 @@
;; Created: Dec 1991 - first release to usenet
;; Version: 2.2.1
;; Keywords: outlines wp languages
;; Website: http://myriadicity.net/Sundry/EmacsAllout
;; This file is part of GNU Emacs.
@ -58,7 +59,9 @@
;; and more.
;;
;; See the `allout-mode' function's docstring for an introduction to the
;; mode. The development version and helpful notes are available at
;; mode.
;;
;; The latest development version and helpful notes are available at
;; http://myriadicity.net/Sundry/EmacsAllout .
;;
;; The outline menubar additions provide quick reference to many of
@ -80,10 +83,19 @@
;;;_* Dependency autoloads
(require 'overlay)
(eval-when-compile (progn (require 'pgg)
(require 'pgg-gpg)
(require 'overlay)
))
(eval-when-compile
;; Most of the requires here are for stuff covered by autoloads.
;; Since just byte-compiling doesn't trigger autoloads, so that
;; "function not found" warnings would occur without these requires.
(progn
(require 'pgg)
(require 'pgg-gpg)
(require 'overlay)
;; `cl' is required for `assert'. `assert' is not covered by a standard
;; autoload, but it is a macro, so that eval-when-compile is sufficient
;; to byte-compile it in, or to do the require when the buffer evalled.
(require 'cl)
))
;;;_* USER CUSTOMIZATION VARIABLES:
@ -556,6 +568,25 @@ disable auto-saves for that file."
:group 'allout-encryption)
(make-variable-buffer-local 'allout-encrypt-unencrypted-on-saves)
;;;_ + Developer
;;;_ = allout-developer group
(defgroup allout-developer nil
"Settings for topic encryption features of allout outliner."
:group 'allout)
;;;_ = allout-run-unit-tests-on-load
(defcustom allout-run-unit-tests-on-load nil
"*When non-nil, unit tests will be run at end of loading the allout module.
Generally, allout code developers are the only ones who'll want to set this.
\(If set, this makes it an even better practice to exercise changes by
doing byte-compilation with a repeat count, so the file is loaded after
compilation.)
See `allout-run-unit-tests' to see what's run."
:type 'boolean
:group 'allout-developer)
;;;_ + Miscellaneous customization
;;;_ = allout-command-prefix
@ -615,6 +646,23 @@ unless optional third, non-nil element is present.")
("=t" allout-latexify-exposed)
("=p" allout-flatten-exposed-to-buffer)))
;;;_ = allout-inhibit-auto-fill
(defcustom allout-inhibit-auto-fill nil
"*If non-nil, auto-fill will be inhibited in the allout buffers.
You can customize this setting to set it for all allout buffers, or set it
in individual buffers if you want to inhibit auto-fill only in particular
buffers. \(You could use a function on `allout-mode-hook' to inhibit
auto-fill according, eg, to the major mode.\)
If you don't set this and auto-fill-mode is enabled, allout will use the
value that `normal-auto-fill-function', if any, when allout mode starts, or
else allout's special hanging-indent maintaining auto-fill function,
`allout-auto-fill'."
:type 'boolean
:group 'allout)
(make-variable-buffer-local 'allout-inhibit-auto-fill)
;;;_ = allout-use-hanging-indents
(defcustom allout-use-hanging-indents t
"*If non-nil, topic body text auto-indent defaults to indent of the header.
@ -993,69 +1041,68 @@ activation. Being deprecated.")
"----"
["Set Header Lead" allout-reset-header-lead t]
["Set New Exposure" allout-expose-topic t])))
;;;_ : Mode-Specific Variable Maintenance Utilities
;;;_ : Allout Modal-Variables Utilities
;;;_ = allout-mode-prior-settings
(defvar allout-mode-prior-settings nil
"Internal `allout-mode' use; settings to be resumed on mode deactivation.")
"Internal `allout-mode' use; settings to be resumed on mode deactivation.
See `allout-add-resumptions' and `allout-do-resumptions'.")
(make-variable-buffer-local 'allout-mode-prior-settings)
;;;_ > allout-resumptions (name &optional value)
(defun allout-resumptions (name &optional value)
;;;_ > allout-add-resumptions (&rest pairs)
(defun allout-add-resumptions (&rest pairs)
"Set name/value pairs.
"Registers or resumes settings over `allout-mode' activation/deactivation.
Old settings are preserved for later resumption using `allout-do-resumptions'.
First arg is NAME of variable affected. Optional second arg is list
containing allout-mode-specific VALUE to be imposed on named
variable, and to be registered. \(It's a list so you can specify
registrations of null values.) If no value is specified, the
registered value is returned (encapsulated in the list, so the caller
can distinguish nil vs no value), and the registration is popped
from the list."
The pairs are lists whose car is the name of the variable and car of the
cdr is the new value: '(some-var some-value)'.
(let ((on-list (assq name allout-mode-prior-settings))
prior-capsule ; By `capsule' i mean a list
; containing a value, so we can
; distinguish nil from no value.
)
The new value is set as a buffer local.
(if value
If the variable was not previously buffer-local, then that is noted and the
`allout-do-resumptions' will just `kill-local-variable' of that binding.
;; Registering:
(progn
(if on-list
nil ; Already preserved prior value - don't mess with it.
;; Register the old value, or nil if previously unbound:
(setq allout-mode-prior-settings
(cons (list name
(if (boundp name) (list (symbol-value name))))
allout-mode-prior-settings)))
; And impose the new value, locally:
(progn (make-local-variable name)
(set name (car value))))
If it previously was buffer-local, the old value is noted and resurrected
by `allout-do-resumptions'. \(If the local value was previously void, then
it is left as nil on resumption.\)
;; Relinquishing:
(if (not on-list)
The settings are stored on `allout-mode-prior-settings'."
(while pairs
(let* ((pair (pop pairs))
(name (car pair))
(value (cadr pair)))
(if (not (symbolp name))
(error "Pair's name, %S, must be a symbol, not %s"
name (type-of name)))
(when (not (assoc name allout-mode-prior-settings))
;; Not already added as a resumption, create the prior setting entry.
(if (local-variable-p name)
;; is already local variable - preserve the prior value:
(push (list name (condition-case err
(symbol-value name)
(void-variable nil)))
allout-mode-prior-settings)
;; wasn't local variable, indicate so for resumption by killing
;; local value, and make it local:
(push (list name) allout-mode-prior-settings)
(make-local-variable name)))
(set name value))))
;;;_ > allout-do-resumptions ()
(defun allout-do-resumptions ()
"Resume all name/value settings registered by `allout-add-resumptions'.
;; Oops, not registered - leave it be:
nil
This is used when concluding allout-mode, to resume selected variables to
their settings before allout-mode was started."
;; Some registration:
; reestablish it:
(setq prior-capsule (car (cdr on-list)))
(if prior-capsule
(set name (car prior-capsule)) ; Some prior value - reestablish it.
(makunbound name)) ; Previously unbound - demolish var.
; Remove registration:
(let (rebuild)
(while allout-mode-prior-settings
(if (not (eq (car allout-mode-prior-settings)
on-list))
(setq rebuild
(cons (car allout-mode-prior-settings)
rebuild)))
(setq allout-mode-prior-settings
(cdr allout-mode-prior-settings)))
(setq allout-mode-prior-settings rebuild)))))
)
(while allout-mode-prior-settings
(let* ((pair (pop allout-mode-prior-settings))
(name (car pair))
(value-cell (cdr pair)))
(if (not value-cell)
;; Prior value was global:
(kill-local-variable name)
;; Prior value was explicit:
(set name (car value-cell))))))
;;;_ : Mode-specific incidentals
;;;_ > allout-unprotected (expr)
(defmacro allout-unprotected (expr)
@ -1065,9 +1112,12 @@ from the list."
;;;_ = allout-mode-hook
(defvar allout-mode-hook nil
"*Hook that's run when allout mode starts.")
;;;_ = allout-overlay-category
(defvar allout-overlay-category nil
"Symbol for use in allout invisible-text overlays as the category.")
;;;_ = allout-mode-deactivate-hook
(defvar allout-mode-deactivate-hook nil
"*Hook that's run when allout mode ends.")
;;;_ = allout-exposure-category
(defvar allout-exposure-category nil
"Symbol for use as allout invisible-text overlay category.")
;;;_ x allout-view-change-hook
(defvar allout-view-change-hook nil
"*\(Deprecated\) Hook that's run after allout outline exposure changes.
@ -1293,30 +1343,26 @@ the following two lines in your Emacs init file:
(setq cur (car menus)
menus (cdr menus))
(easy-menu-add cur))))
;;;_ > allout-set-overlay-category
(defun allout-set-overlay-category ()
"Set the properties of the allout invisible-text overlay."
(setplist 'allout-overlay-category nil)
(put 'allout-overlay-category 'invisible 'allout)
(put 'allout-overlay-category 'evaporate t)
;;;_ > allout-overlay-preparations
(defun allout-overlay-preparations ()
"Set the properties of the allout invisible-text overlay and others."
(setplist 'allout-exposure-category nil)
(put 'allout-exposure-category 'invisible 'allout)
(put 'allout-exposure-category 'evaporate t)
;; XXX We use isearch-open-invisible *and* isearch-mode-end-hook. The
;; latter would be sufficient, but it seems that a separate behavior -
;; the _transient_ opening of invisible text during isearch - is keyed to
;; presence of the isearch-open-invisible property - even though this
;; property controls the isearch _arrival_ behavior. This is the case at
;; least in emacs 21, 22.0, and xemacs 21.4.
(put 'allout-overlay-category 'isearch-open-invisible
(put 'allout-exposure-category 'isearch-open-invisible
'allout-isearch-end-handler)
(if (featurep 'xemacs)
(put 'allout-overlay-category 'start-open t)
(put 'allout-overlay-category 'insert-in-front-hooks
(put 'allout-exposure-category 'start-open t)
(put 'allout-exposure-category 'insert-in-front-hooks
'(allout-overlay-insert-in-front-handler)))
(if (featurep 'xemacs)
(progn (make-variable-buffer-local 'before-change-functions)
(add-hook 'before-change-functions
'allout-before-change-handler))
(put 'allout-overlay-category 'modification-hooks
'(allout-overlay-interior-modification-handler))))
(put 'allout-exposure-category 'modification-hooks
'(allout-overlay-interior-modification-handler)))
;;;_ > allout-mode (&optional toggle)
;;;_ : Defun:
;;;###autoload
@ -1575,118 +1621,92 @@ OPEN: A topic that is not closed, though its offspring or body may be."
; active state or *de*activation
; specifically requested:
(setq allout-explicitly-deactivated t)
(if (string-match "^18\." emacs-version)
; Revoke those keys that remain
; as we set them:
(let ((curr-loc (current-local-map)))
(mapcar (function
(lambda (cell)
(if (eq (lookup-key curr-loc (car cell))
(car (cdr cell)))
(define-key curr-loc (car cell)
(assq (car cell) allout-prior-bindings)))))
allout-added-bindings)
(allout-resumptions 'allout-added-bindings)
(allout-resumptions 'allout-prior-bindings)))
(if allout-old-style-prefixes
(progn
(allout-resumptions 'allout-primary-bullet)
(allout-resumptions 'allout-old-style-prefixes)))
;;(allout-resumptions 'selective-display)
(allout-do-resumptions)
(remove-from-invisibility-spec '(allout . t))
(set write-file-hook-var-name
(delq 'allout-write-file-hook-handler
(symbol-value write-file-hook-var-name)))
(setq auto-save-hook
(delq 'allout-auto-save-hook-handler
auto-save-hook))
(allout-resumptions 'paragraph-start)
(allout-resumptions 'paragraph-separate)
(allout-resumptions 'auto-fill-function)
(allout-resumptions 'normal-auto-fill-function)
(allout-resumptions 'allout-former-auto-filler)
(remove-hook 'pre-command-hook 'allout-pre-command-business t)
(remove-hook 'post-command-hook 'allout-post-command-business t)
(when (featurep 'xemacs)
(remove-hook 'before-change-functions 'allout-before-change-handler t))
(remove-hook 'isearch-mode-end-hook 'allout-isearch-end-handler t)
(remove-hook write-file-hook-var-name 'allout-write-file-hook-handler t)
(remove-hook 'auto-save-hook 'allout-auto-save-hook-handler t)
(remove-overlays (point-min) (point-max)
'category 'allout-exposure-category)
(run-hooks 'allout-mode-deactivate-hook)
(setq allout-mode nil))
;; Activation:
((not active)
(setq allout-explicitly-deactivated nil)
(if allout-old-style-prefixes
(progn ; Inhibit all the fancy formatting:
(allout-resumptions 'allout-primary-bullet '("*"))
(allout-resumptions 'allout-old-style-prefixes '(()))))
;; Inhibit all the fancy formatting:
(allout-add-resumptions '((allout-primary-bullet "*")
(allout-old-style-prefixes ()))))
(allout-set-overlay-category) ; Doesn't hurt to redo this.
(allout-overlay-preparations) ; Doesn't hurt to redo this.
(allout-infer-header-lead)
(allout-infer-body-reindent)
(set-allout-regexp)
; Produce map from current version
; of allout-keybindings-list:
(if (boundp 'minor-mode-map-alist)
;; Produce map from current version of allout-keybindings-list:
(setq allout-mode-map
(produce-allout-mode-map allout-keybindings-list))
(substitute-key-definition 'beginning-of-line
'move-beginning-of-line
allout-mode-map global-map)
(substitute-key-definition 'end-of-line
'move-end-of-line
allout-mode-map global-map)
(produce-allout-mode-menubar-entries)
(fset 'allout-mode-map allout-mode-map)
(progn ; V19, and maybe lucid and
; epoch, minor-mode key bindings:
(setq allout-mode-map
(produce-allout-mode-map allout-keybindings-list))
(substitute-key-definition 'beginning-of-line
'move-beginning-of-line
allout-mode-map global-map)
(substitute-key-definition 'end-of-line
'move-end-of-line
allout-mode-map global-map)
(produce-allout-mode-menubar-entries)
(fset 'allout-mode-map allout-mode-map)
; Include on minor-mode-map-alist,
; if not already there:
(if (not (member '(allout-mode . allout-mode-map)
minor-mode-map-alist))
(setq minor-mode-map-alist
(cons '(allout-mode . allout-mode-map)
minor-mode-map-alist))))
; V18 minor-mode key bindings:
; Stash record of added bindings
; for later revocation:
(allout-resumptions 'allout-added-bindings
(list allout-keybindings-list))
(allout-resumptions 'allout-prior-bindings
(list (current-local-map)))
; and add them:
(use-local-map (produce-allout-mode-map allout-keybindings-list
(current-local-map)))
)
;; Include on minor-mode-map-alist, if not already there:
(if (not (member '(allout-mode . allout-mode-map)
minor-mode-map-alist))
(setq minor-mode-map-alist
(cons '(allout-mode . allout-mode-map)
minor-mode-map-alist)))
(add-to-invisibility-spec '(allout . t))
(make-local-variable 'line-move-ignore-invisible)
(setq line-move-ignore-invisible t)
(add-hook 'pre-command-hook 'allout-pre-command-business)
(add-hook 'post-command-hook 'allout-post-command-business)
(add-hook 'isearch-mode-end-hook 'allout-isearch-end-handler)
(add-hook write-file-hook-var-name 'allout-write-file-hook-handler)
(add-hook 'auto-save-hook 'allout-auto-save-hook-handler)
; Custom auto-fill func, to support
; respect for topic headline,
; hanging-indents, etc:
;; Register prevailing fill func for use by allout-auto-fill:
(allout-resumptions 'allout-former-auto-filler (list auto-fill-function))
;; Register allout-auto-fill to be used if filling is active:
(allout-resumptions 'auto-fill-function '(allout-auto-fill))
(allout-resumptions 'allout-outside-normal-auto-fill-function
(list normal-auto-fill-function))
(allout-resumptions 'normal-auto-fill-function '(allout-auto-fill))
;; Paragraphs are broken by topic headlines.
(make-local-variable 'paragraph-start)
(allout-resumptions 'paragraph-start
(list (concat paragraph-start "\\|^\\("
allout-regexp "\\)")))
(make-local-variable 'paragraph-separate)
(allout-resumptions 'paragraph-separate
(list (concat paragraph-separate "\\|^\\("
allout-regexp "\\)")))
(allout-add-resumptions '(line-move-ignore-invisible t))
(add-hook 'pre-command-hook 'allout-pre-command-business nil t)
(add-hook 'post-command-hook 'allout-post-command-business nil t)
(when (featurep 'xemacs)
(add-hook 'before-change-functions 'allout-before-change-handler
nil t))
(add-hook 'isearch-mode-end-hook 'allout-isearch-end-handler nil t)
(add-hook write-file-hook-var-name 'allout-write-file-hook-handler
nil t)
(add-hook 'auto-save-hook 'allout-auto-save-hook-handler
nil t)
;; Stash auto-fill settings and adjust so custom allout auto-fill
;; func will be used if auto-fill is active or activated. (The
;; custom func respects topic headline, maintains hanging-indents,
;; etc.)
(if (and auto-fill-function (not allout-inhibit-auto-fill))
;; allout-auto-fill will use the stashed values and so forth.
(allout-add-resumptions '(auto-fill-function allout-auto-fill)))
(allout-add-resumptions (list 'allout-former-auto-filler
auto-fill-function)
;; Register allout-auto-fill to be used if
;; filling is active:
(list 'allout-outside-normal-auto-fill-function
normal-auto-fill-function)
'(normal-auto-fill-function allout-auto-fill)
;; Paragraphs are broken by topic headlines.
(list 'paragraph-start
(concat paragraph-start "\\|^\\("
allout-regexp "\\)"))
(list 'paragraph-separate
(concat paragraph-separate "\\|^\\("
allout-regexp "\\)")))
(or (assq 'allout-mode minor-mode-alist)
(setq minor-mode-alist
(cons '(allout-mode " Allout") minor-mode-alist)))
@ -1702,8 +1722,9 @@ OPEN: A topic that is not closed, though its offspring or body may be."
;; Reactivation:
((setq do-layout t)
(allout-infer-body-reindent))
) ; cond
) ;; end of activation-mode cases.
;; Do auto layout if warranted:
(let ((use-layout (if (listp allout-layout)
allout-layout
allout-default-layout)))
@ -1802,9 +1823,14 @@ See allout-overlay-interior-modification-handler for details.
This before-change handler is used only where modification-hooks
overlay property is not supported."
(if (not (allout-mode-p))
nil
(allout-overlay-interior-modification-handler nil nil beg end nil)))
;; allout-overlay-interior-modification-handler on an overlay handles
;; this in other emacs, via `allout-exposure-category's 'modification-hooks.
(when (and (featurep 'xemacs) (allout-mode-p))
;; process all of the pending overlays:
(dolist (overlay (overlays-in beg end))
(if (eq (overlay-get ol 'invisible) 'allout)
(allout-overlay-interior-modification-handler
overlay nil beg end nil)))))
;;;_ > allout-isearch-end-handler (&optional overlay)
(defun allout-isearch-end-handler (&optional overlay)
"Reconcile allout outline exposure on arriving in hidden text after isearch.
@ -1996,13 +2022,11 @@ Outermost is first."
(defun allout-beginning-of-current-line ()
"Like beginning of line, but to visible text."
;; XXX We would use `(move-beginning-of-line 1)', but it gets
;; stuck on some hidden newlines, eg at column 80, as of GNU Emacs 22.0.50.
;; Conversely, `beginning-of-line' can make no progress in other
;; situations. Both are necessary, in the order used below.
;; This combination of move-beginning-of-line and beginning-of-line is
;; deliberate, but the (beginning-of-line) may now be superfluous.
(move-beginning-of-line 1)
(beginning-of-line)
(while (or (not (bolp)) (allout-hidden-p))
(while (and (not (bobp)) (or (not (bolp)) (allout-hidden-p)))
(beginning-of-line)
(if (or (allout-hidden-p) (not (bolp)))
(forward-char -1))))
@ -2018,12 +2042,12 @@ Outermost is first."
(if (allout-hidden-p) (forward-char 1))))
;;;_ > allout-next-heading ()
(defsubst allout-next-heading ()
"Move to the heading for the topic \(possibly invisible) before this one.
"Move to the heading for the topic \(possibly invisible) after this one.
Returns the location of the heading, or nil if none found."
(if (and (bobp) (not (eobp)))
(forward-char 1))
(if (and (bobp) (not (eobp)) (looking-at allout-regexp))
(forward-char 1))
(if (re-search-forward allout-line-boundary-regexp nil 0)
(allout-prefix-data ; Got valid location state - set vars:
@ -2688,36 +2712,51 @@ return to regular interpretation of self-insert characters."
(if (not (allout-mode-p))
nil
;; Hot-spot navigation provisions:
(if (and (eq this-command 'self-insert-command)
(eq (point)(allout-current-bullet-pos)))
(let* ((this-key-num (cond
((numberp last-command-char)
last-command-char)
;; Only xemacs has characterp.
((and (fboundp 'characterp)
(apply 'characterp
(list last-command-char)))
(apply 'char-to-int (list last-command-char)))
(t 0)))
mapped-binding)
(if (zerop this-key-num)
nil
; Map upper-register literals
; to lower register:
(if (<= 96 this-key-num)
(setq this-key-num (- this-key-num 32)))
; Check if we have a literal:
(if (and (<= 64 this-key-num)
(>= 96 this-key-num))
(setq mapped-binding
(lookup-key 'allout-mode-map
(concat allout-command-prefix
(char-to-string (- this-key-num
64))))))
(if mapped-binding
(setq allout-post-goto-bullet t
this-command mapped-binding)))))))
(allout-hotspot-key-handler))))
;;;_ > allout-hotspot-key-handler ()
(defun allout-hotspot-key-handler ()
"Catchall handling of key bindings in hot-spots.
Translates unmodified keystrokes to corresponding allout commands, when
they would qualify if prefixed with the allout-command-prefix, and sets
this-command accordingly.
Returns the qualifying command, if any, else nil."
(interactive)
(let* ((key-num (cond ((numberp last-command-char) last-command-char)
;; for XEmacs character type:
((and (fboundp 'characterp)
(apply 'characterp (list last-command-char)))
(apply 'char-to-int (list last-command-char)))
(t 0)))
mapped-binding
(on-bullet (eq (point) (allout-current-bullet-pos))))
(if (zerop key-num)
nil
(if (and (<= 33 key-num)
(setq mapped-binding
(key-binding (concat allout-command-prefix
(char-to-string
(if (and (<= 97 key-num) ; "a"
(>= 122 key-num)) ; "z"
(- key-num 96) key-num)))
t)))
;; Qualified with the allout prefix - do hot-spot operation.
(setq allout-post-goto-bullet t)
;; accept-defaults nil, or else we'll get allout-item-icon-key-handler.
(setq mapped-binding (key-binding (char-to-string key-num))))
(while (keymapp mapped-binding)
(setq mapped-binding
(lookup-key mapped-binding (read-key-sequence-vector nil t))))
(if mapped-binding
(setq this-command mapped-binding)))))
;;;_ > allout-find-file-hook ()
(defun allout-find-file-hook ()
"Activate `allout-mode' on non-nil `allout-auto-activation', `allout-layout'.
@ -3146,21 +3185,23 @@ topic prior to the current one."
Maintains outline hanging topic indentation if
`allout-use-hanging-indents' is set."
(let ((fill-prefix (if allout-use-hanging-indents
;; Check for topic header indentation:
(save-excursion
(beginning-of-line)
(if (looking-at allout-regexp)
;; ... construct indentation to account for
;; length of topic prefix:
(make-string (progn (allout-end-of-prefix)
(current-column))
?\ )))))
(use-auto-fill-function (or allout-outside-normal-auto-fill-function
auto-fill-function
'do-auto-fill)))
(if (or allout-former-auto-filler allout-use-hanging-indents)
(funcall use-auto-fill-function))))
(when (not allout-inhibit-auto-fill)
(let ((fill-prefix (if allout-use-hanging-indents
;; Check for topic header indentation:
(save-excursion
(beginning-of-line)
(if (looking-at allout-regexp)
;; ... construct indentation to account for
;; length of topic prefix:
(make-string (progn (allout-end-of-prefix)
(current-column))
?\ )))))
(use-auto-fill-function (or allout-outside-normal-auto-fill-function
auto-fill-function
'do-auto-fill)))
(if (or allout-former-auto-filler allout-use-hanging-indents)
(funcall use-auto-fill-function)))))
;;;_ > allout-reindent-body (old-depth new-depth &optional number)
(defun allout-reindent-body (old-depth new-depth &optional number)
"Reindent body lines which were indented at OLD-DEPTH to NEW-DEPTH.
@ -3601,8 +3642,10 @@ when yank with allout-yank into an outline as a heading."
(forward-char 1)))
(if collapsed
(put-text-property beg (1+ beg) 'allout-was-collapsed t)
(remove-text-properties beg (1+ beg) '(allout-was-collapsed t)))
(allout-unprotected
(put-text-property beg (1+ beg) 'allout-was-collapsed t))
(allout-unprotected
(remove-text-properties beg (1+ beg) '(allout-was-collapsed t))))
(allout-unprotected (kill-region beg (point)))
(sit-for 0)
(save-excursion
@ -3834,12 +3877,12 @@ by pops to non-distinctive yanks. Bug..."
Text is shown if flag is nil and hidden otherwise."
;; We use outline invisibility spec.
(remove-overlays from to 'category 'allout-overlay-category)
(remove-overlays from to 'category 'allout-exposure-category)
(when flag
(let ((o (make-overlay from to)))
(overlay-put o 'category 'allout-overlay-category)
(overlay-put o 'category 'allout-exposure-category)
(when (featurep 'xemacs)
(let ((props (symbol-plist 'allout-overlay-category)))
(let ((props (symbol-plist 'allout-exposure-category)))
(while props
(overlay-put o (pop props) (pop props)))))))
(run-hooks 'allout-view-change-hook)
@ -3860,9 +3903,9 @@ Text is shown if flag is nil and hidden otherwise."
flag)))
;;;_ - Topic-specific
;;;_ > allout-show-entry (&optional inclusive)
(defun allout-show-entry (&optional inclusive)
"Like `allout-show-current-entry', reveals entries nested in hidden topics.
;;;_ > allout-show-entry ()
(defun allout-show-entry ()
"Like `allout-show-current-entry', but reveals entries in hidden topics.
This is a way to give restricted peek at a concealed locality without the
expense of exposing its context, but can leave the outline with aberrant
@ -3977,7 +4020,6 @@ Useful for coherently exposing to a random point in a hidden region."
t)))
;;;_ > allout-show-current-entry (&optional arg)
(defun allout-show-current-entry (&optional arg)
"Show body following current heading, or hide entry with universal argument."
(interactive "P")
@ -4042,6 +4084,7 @@ siblings, even if the target topic is already closed."
((allout-up-current-level 1 t) (allout-hide-current-subtree))
(t (goto-char 0)
(message sibs-msg)
(allout-goto-prefix)
(allout-expose-topic '(0 :))
(message (concat sibs-msg " Done."))))
(goto-char from)))
@ -5919,7 +5962,131 @@ To ignore intangibility, bind `inhibit-point-motion-hooks' to t."
(isearch-repeat 'forward)
(isearch-mode t)))
;;;_ #11 Provide
;;;_ #11 Unit tests - this should be last item before "Provide"
;;;_ > allout-run-unit-tests ()
(defun allout-run-unit-tests ()
"Run the various allout unit tests."
(message "Running allout tests...")
(allout-test-resumptions)
(message "Running allout tests... Done.")
(sit-for .5))
;;;_ : test resumptions:
;;;_ > allout-tests-obliterate-variable (name)
(defun allout-tests-obliterate-variable (name)
"Completely unbind variable with NAME."
(if (local-variable-p name) (kill-local-variable name))
(while (boundp name) (makunbound name)))
;;;_ > allout-test-resumptions ()
(defvar allout-tests-globally-unbound nil
"Fodder for allout resumptions tests - defvar just for byte compiler.")
(defvar allout-tests-globally-true nil
"Fodder for allout resumptions tests - defvar just just for byte compiler.")
(defvar allout-tests-locally-true nil
"Fodder for allout resumptions tests - defvar just for byte compiler.")
(defun allout-test-resumptions ()
"Exercise allout resumptions."
;; for each resumption case, we also test that the right local/global
;; scopes are affected during resumption effects:
;; ensure that previously unbound variables return to the unbound state.
(with-temp-buffer
(allout-tests-obliterate-variable 'allout-tests-globally-unbound)
(allout-add-resumptions '(allout-tests-globally-unbound t))
(assert (not (default-boundp 'allout-tests-globally-unbound)))
(assert (local-variable-p 'allout-tests-globally-unbound))
(assert (boundp 'allout-tests-globally-unbound))
(assert (equal allout-tests-globally-unbound t))
(allout-do-resumptions)
(assert (not (local-variable-p 'allout-tests-globally-unbound)))
(assert (not (boundp 'allout-tests-globally-unbound))))
;; ensure that variable with prior global value is resumed
(with-temp-buffer
(allout-tests-obliterate-variable 'allout-tests-globally-true)
(setq allout-tests-globally-true t)
(allout-add-resumptions '(allout-tests-globally-true nil))
(assert (equal (default-value 'allout-tests-globally-true) t))
(assert (local-variable-p 'allout-tests-globally-true))
(assert (equal allout-tests-globally-true nil))
(allout-do-resumptions)
(assert (not (local-variable-p 'allout-tests-globally-true)))
(assert (boundp 'allout-tests-globally-true))
(assert (equal allout-tests-globally-true t)))
;; ensure that prior local value is resumed
(with-temp-buffer
(allout-tests-obliterate-variable 'allout-tests-locally-true)
(set (make-local-variable 'allout-tests-locally-true) t)
(assert (not (default-boundp 'allout-tests-locally-true))
nil (concat "Test setup mistake - variable supposed to"
" not have global binding, but it does."))
(assert (local-variable-p 'allout-tests-locally-true)
nil (concat "Test setup mistake - variable supposed to have"
" local binding, but it lacks one."))
(allout-add-resumptions '(allout-tests-locally-true nil))
(assert (not (default-boundp 'allout-tests-locally-true)))
(assert (local-variable-p 'allout-tests-locally-true))
(assert (equal allout-tests-locally-true nil))
(allout-do-resumptions)
(assert (boundp 'allout-tests-locally-true))
(assert (local-variable-p 'allout-tests-locally-true))
(assert (equal allout-tests-locally-true t))
(assert (not (default-boundp 'allout-tests-locally-true))))
;; ensure that last of multiple resumptions holds, for various scopes.
(with-temp-buffer
(allout-tests-obliterate-variable 'allout-tests-globally-unbound)
(allout-tests-obliterate-variable 'allout-tests-globally-true)
(setq allout-tests-globally-true t)
(allout-tests-obliterate-variable 'allout-tests-locally-true)
(set (make-local-variable 'allout-tests-locally-true) t)
(allout-add-resumptions '(allout-tests-globally-unbound t)
'(allout-tests-globally-true nil)
'(allout-tests-locally-true nil))
(allout-add-resumptions '(allout-tests-globally-unbound 2)
'(allout-tests-globally-true 3)
'(allout-tests-locally-true 4))
;; reestablish many of the basic conditions are maintained after re-add:
(assert (not (default-boundp 'allout-tests-globally-unbound)))
(assert (local-variable-p 'allout-tests-globally-unbound))
(assert (equal allout-tests-globally-unbound 2))
(assert (default-boundp 'allout-tests-globally-true))
(assert (local-variable-p 'allout-tests-globally-true))
(assert (equal allout-tests-globally-true 3))
(assert (not (default-boundp 'allout-tests-locally-true)))
(assert (local-variable-p 'allout-tests-locally-true))
(assert (equal allout-tests-locally-true 4))
(allout-do-resumptions)
(assert (not (local-variable-p 'allout-tests-globally-unbound)))
(assert (not (boundp 'allout-tests-globally-unbound)))
(assert (not (local-variable-p 'allout-tests-globally-true)))
(assert (boundp 'allout-tests-globally-true))
(assert (equal allout-tests-globally-true t))
(assert (boundp 'allout-tests-locally-true))
(assert (local-variable-p 'allout-tests-locally-true))
(assert (equal allout-tests-locally-true t))
(assert (not (default-boundp 'allout-tests-locally-true))))
;; ensure that deliberately unbinding registered variables doesn't foul things
(with-temp-buffer
(allout-tests-obliterate-variable 'allout-tests-globally-unbound)
(allout-tests-obliterate-variable 'allout-tests-globally-true)
(setq allout-tests-globally-true t)
(allout-tests-obliterate-variable 'allout-tests-locally-true)
(set (make-local-variable 'allout-tests-locally-true) t)
(allout-add-resumptions '(allout-tests-globally-unbound t)
'(allout-tests-globally-true nil)
'(allout-tests-locally-true nil))
(allout-tests-obliterate-variable 'allout-tests-globally-unbound)
(allout-tests-obliterate-variable 'allout-tests-globally-true)
(allout-tests-obliterate-variable 'allout-tests-locally-true)
(allout-do-resumptions))
)
;;;_ % Run unit tests if `allout-run-unit-tests-after-load' is true:
(when allout-run-unit-tests-on-load
(allout-run-unit-tests))
;;;_ #12 Provide
(provide 'allout)
;;;_* Local emacs vars.

View File

@ -668,7 +668,11 @@ language you are using."
(define-key map [prior] 'previous-history-element)
(define-key map [up] 'previous-history-element)
(define-key map "\es" 'next-matching-history-element)
(define-key map "\er" 'previous-matching-history-element))
(define-key map "\er" 'previous-matching-history-element)
;; Override the global binding (which calls indent-relative via
;; indent-for-tab-command). The alignment that indent-relative tries to
;; do doesn't make much sense here since the prompt messes it up.
(define-key map "\t" 'self-insert-command))
(define-key global-map "\C-u" 'universal-argument)
(let ((i ?0))

View File

@ -2668,7 +2668,18 @@ Otherwise, look up symbol in `custom-guess-type-alist'."
(error nil))
(cond
((eq (caar tmp) 'user) 'saved)
((eq (caar tmp) 'changed) 'changed)
((eq (caar tmp) 'changed)
(if (condition-case nil
(and (null comment)
(equal value
(eval
(car (get symbol 'standard-value)))))
(error nil))
;; The value was originally set outside
;; custom, but it was set to the standard
;; value (probably an autoloaded defcustom).
'standard
'changed))
(t 'themed))
'changed))
((setq tmp (get symbol 'standard-value))
@ -4419,7 +4430,9 @@ The format is suitable for use with `easy-menu-define'."
;; Actually, this misfeature of dense keymaps was fixed on 2001-11-26.
(let ((map (make-keymap)))
(set-keymap-parent map widget-keymap)
(suppress-keymap map)
(define-key map [remap self-insert-command]
'custom-no-edit)
(define-key map "\^m" 'custom-no-edit)
(define-key map " " 'scroll-up)
(define-key map "\177" 'scroll-down)
(define-key map "\C-c\C-c" 'Custom-set)
@ -4431,6 +4444,11 @@ The format is suitable for use with `easy-menu-define'."
map)
"Keymap for `custom-mode'.")
(defun custom-no-edit ()
"Refuse to allow editing of Custom buffer."
(interactive)
(error "You can't edit this part of the Custom buffer"))
(easy-menu-define Custom-mode-menu
custom-mode-map
"Menu used in customization buffers."

View File

@ -558,9 +558,10 @@ LOAD should be either a library file name, or a feature name."
(unless (member load loads)
(put symbol 'custom-loads (cons (purecopy load) loads)))))
(defun custom-autoload (symbol load)
"Mark SYMBOL as autoloaded custom variable and add dependency LOAD."
(put symbol 'custom-autoload t)
(defun custom-autoload (symbol load &optional noset)
"Mark SYMBOL as autoloaded custom variable and add dependency LOAD.
If NOSET is non-nil, don't bother autoloading LOAD when setting the variable."
(put symbol 'custom-autoload (if noset 'noset t))
(custom-add-load symbol load))
;; This test is also in the C code of `user-variable-p'.
@ -699,10 +700,10 @@ Return non-nil iff the `customized-value' property actually changed."
(customized (get symbol 'customized-value))
(old (or (get symbol 'saved-value) (get symbol 'standard-value))))
;; Mark default value as set iff different from old value.
(if (or (null old)
(not (equal value (condition-case nil
(eval (car old))
(error nil)))))
(if (not (and old
(equal value (condition-case nil
(eval (car old))
(error nil)))))
(progn (put symbol 'customized-value (list (custom-quote value)))
(custom-push-theme 'theme-value symbol 'user 'set
(custom-quote value)))
@ -827,13 +828,9 @@ See `custom-known-themes' for a list of known themes."
(if (and (eq prop 'theme-value)
(boundp symbol))
(let ((sv (get symbol 'standard-value)))
(when (and (null sv) (custom-variable-p symbol))
(custom-load-symbol symbol)
(setq sv (get symbol 'standard-value)))
(if (or (null sv)
(not (equal (eval (car (get symbol 'standard-value)))
(symbol-value symbol))))
(setq old (list (list 'changed (symbol-value symbol))))))
(unless (and sv
(equal (eval (car sv)) (symbol-value symbol)))
(setq old (list (list 'changed (symbol-value symbol))))))
(if (and (facep symbol)
(not (face-spec-match-p symbol (get symbol 'face-defface-spec))))
(setq old (list (list 'changed (list
@ -907,6 +904,10 @@ in SYMBOL's list property `theme-value' \(using `custom-push-theme')."
(when requests
(put symbol 'custom-requests requests)
(mapc 'require requests))
(unless (or (get symbol 'standard-value)
(memq (get symbol 'custom-autoload) '(nil noset)))
;; This symbol needs to be autoloaded, even just for a `set'.
(custom-load-symbol symbol))
(setq set (or (get symbol 'custom-set) 'custom-set-default))
(put symbol 'saved-value (list value))
(put symbol 'saved-variable-comment comment)
@ -926,6 +927,8 @@ in SYMBOL's list property `theme-value' \(using `custom-push-theme')."
(setq args (cdr args))
(and (or now (default-boundp symbol))
(put symbol 'variable-comment comment)))
;; I believe this is dead-code, because the `sort' code above would
;; have burped before we could get here. --Stef
;; Old format, a plist of SYMBOL VALUE pairs.
(message "Warning: old format `custom-set-variables'")
(ding)

View File

@ -745,19 +745,22 @@ Otherwise, the rule is a compression rule, and compression is done with gzip.")
;;; We don't recognize the file as compressed, so compress it.
;;; Try gzip; if we don't have that, use compress.
(condition-case nil
(if (not (dired-check-process (concat "Compressing " file)
"gzip" "-f" file))
(let ((out-name
(if (file-exists-p (concat file ".gz"))
(concat file ".gz")
(concat file ".z"))))
;; Rename the compressed file to NEWNAME
;; if it hasn't got that name already.
(if (and newname (not (equal newname out-name)))
(progn
(rename-file out-name newname t)
newname)
out-name)))
(let ((out-name (concat file ".gz")))
(and (or (not (file-exists-p out-name))
(y-or-n-p
(format "File %s already exists. Really compress? "
out-name)))
(not (dired-check-process (concat "Compressing " file)
"gzip" "-f" file))
(or (file-exists-p out-name)
(setq out-name (concat file ".z")))
;; Rename the compressed file to NEWNAME
;; if it hasn't got that name already.
(if (and newname (not (equal newname out-name)))
(progn
(rename-file out-name newname t)
newname)
out-name)))
(file-error
(if (not (dired-check-process (concat "Compressing " file)
"compress" "-f" file))

View File

@ -29,12 +29,12 @@
;; Shell directory tracking by watching the prompt.
;;
;; This is yet another attempt at a directory-tracking package for
;; Emacs shell-mode. However, this package makes one strong assumption:
;; Emacs shell-mode. However, this package makes one strong assumption:
;; that you can customize your shell's prompt to contain the
;; current working directory. Most shells do support this, including
;; current working directory. Most shells do support this, including
;; almost every type of Bourne and C shell on Unix, the native shells on
;; Windows95 (COMMAND.COM) and Windows NT (CMD.EXE), and most 3rd party
;; Windows shells. If you cannot do this, or do not wish to, this package
;; Windows shells. If you cannot do this, or do not wish to, this package
;; will be useless to you.
;;
;; Installation:
@ -45,30 +45,27 @@
;;
;; Note that directory tracking is done by matching regular expressions,
;; therefore it is *VERY IMPORTANT* for your prompt to be easily
;; distinguishable from other output. If your prompt regexp is too general,
;; distinguishable from other output. If your prompt regexp is too general,
;; you will see error messages from the dirtrack filter as it attempts to cd
;; to non-existent directories.
;;
;; 2) Set the variable `dirtrack-list' to an appropriate value. This
;; 2) Set the variable `dirtrack-list' to an appropriate value. This
;; should be a list of two elements: the first is a regular expression
;; which matches your prompt up to and including the pathname part.
;; The second is a number which tells which regular expression group to
;; match to extract only the pathname. If you use a multi-line prompt,
;; add 't' as a third element. Note that some of the functions in
;; match to extract only the pathname. If you use a multi-line prompt,
;; add 't' as a third element. Note that some of the functions in
;; 'comint.el' assume a single-line prompt (eg, comint-bol).
;;
;; Determining this information may take some experimentation. Setting
;; Determining this information may take some experimentation. Setting
;; the variable `dirtrack-debug' may help; it causes the directory-tracking
;; filter to log messages to the buffer `dirtrack-debug-buffer'. You can easily
;; filter to log messages to the buffer `dirtrack-debug-buffer'. You can easily
;; toggle this setting with the `dirtrack-debug-toggle' function.
;;
;; 3) Add a hook to shell-mode to enable the directory tracking:
;;
;; (add-hook 'shell-mode-hook
;; (function (lambda ()
;; (setq comint-preoutput-filter-functions
;; (append (list 'dirtrack)
;; comint-preoutput-filter-functions)))))
;; (lambda () (add-hook 'comint-preoutput-filter-functions 'dirtrack nil t)))
;;
;; You may wish to turn ordinary shell tracking off by calling
;; `shell-dirtrack-toggle' or setting `shell-dirtrackp'.
@ -107,13 +104,13 @@
;; (eg, when logged in as myself, I'll run a root shell in the same Emacs).
;; If you do this, and the shell prompt contains a ~, Emacs will interpret
;; this relative to the user which owns the Emacs process, not the user
;; who owns the shell buffer. This may cause dirtrack to behave strangely
;; who owns the shell buffer. This may cause dirtrack to behave strangely
;; (typically it reports that it is unable to cd to a directory
;; with a ~ in it).
;;
;; The same behavior can occur if you use dirtrack with remote filesystems
;; (using telnet, rlogin, etc) as Emacs will be checking the local
;; filesystem, not the remote one. This problem is not specific to dirtrack,
;; filesystem, not the remote one. This problem is not specific to dirtrack,
;; but also affects file completion, etc.
;;; Code:
@ -132,7 +129,7 @@
:group 'shell)
(defcustom dirtrack-list (list "^emacs \\([a-zA-Z]:.*\\)>" 1)
"*List for directory tracking.
"List for directory tracking.
First item is a regexp that describes where to find the path in a prompt.
Second is a number, the regexp group to match. Optional third item is
whether the prompt is multi-line. If nil or omitted, prompt is assumed to
@ -140,77 +137,58 @@ be on a single line."
:group 'dirtrack
:type '(sexp (regexp :tag "Prompt Expression")
(integer :tag "Regexp Group")
(boolean :tag "Multiline Prompt")
)
)
(boolean :tag "Multiline Prompt")))
(make-variable-buffer-local 'dirtrack-list)
(defcustom dirtrack-debug nil
"*If non-nil, the function `dirtrack' will report debugging info."
"If non-nil, the function `dirtrack' will report debugging info."
:group 'dirtrack
:type 'boolean
)
:type 'boolean)
(defcustom dirtrack-debug-buffer "*Directory Tracking Log*"
"Buffer to write directory tracking debug information."
:group 'dirtrack
:type 'string
)
:type 'string)
(defcustom dirtrackp t
"*If non-nil, directory tracking via `dirtrack' is enabled."
"If non-nil, directory tracking via `dirtrack' is enabled."
:group 'dirtrack
:type 'boolean
)
:type 'boolean)
(make-variable-buffer-local 'dirtrackp)
(defcustom dirtrack-directory-function
(if (memq system-type (list 'ms-dos 'windows-nt 'cygwin))
'dirtrack-windows-directory-function
'dirtrack-default-directory-function)
"*Function to apply to the prompt directory for comparison purposes."
'file-name-as-directory)
"Function to apply to the prompt directory for comparison purposes."
:group 'dirtrack
:type 'function
)
:type 'function)
(defcustom dirtrack-canonicalize-function
(if (memq system-type (list 'ms-dos 'windows-nt 'cygwin))
'downcase 'identity)
"*Function to apply to the default directory for comparison purposes."
"Function to apply to the default directory for comparison purposes."
:group 'dirtrack
:type 'function
)
:type 'function)
(defcustom dirtrack-directory-change-hook nil
"Hook that is called when a directory change is made."
:group 'dirtrack
:type 'hook
)
:type 'hook)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Functions
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun dirtrack-default-directory-function (dir)
"Return a canonical directory for comparison purposes.
Such a directory ends with a forward slash."
(let ((directory dir))
(if (not (char-equal ?/ (string-to-char (substring directory -1))))
(concat directory "/")
directory)))
(defun dirtrack-windows-directory-function (dir)
"Return a canonical directory for comparison purposes.
Such a directory is all lowercase, has forward-slashes as delimiters,
and ends with a forward slash."
(let ((directory dir))
(setq directory (downcase (dirtrack-replace-slash directory t)))
(if (not (char-equal ?/ (string-to-char (substring directory -1))))
(concat directory "/")
directory)))
(file-name-as-directory (downcase (subst-char-in-string ?\\ ?/ dir))))
(defun dirtrack-cygwin-directory-function (dir)
"Return a canonical directory taken from a Cygwin path for comparison purposes."
@ -218,30 +196,13 @@ and ends with a forward slash."
(concat (match-string 1 dir) ":" (match-string 2 dir))
dir))
(defconst dirtrack-forward-slash (regexp-quote "/"))
(defconst dirtrack-backward-slash (regexp-quote "\\"))
(defun dirtrack-replace-slash (string &optional opposite)
"Replace forward slashes with backwards ones.
If additional argument is non-nil, replace backwards slashes with
forward ones."
(let ((orig (if opposite
dirtrack-backward-slash
dirtrack-forward-slash))
(replace (if opposite
dirtrack-forward-slash
dirtrack-backward-slash))
(newstring string)
)
(while (string-match orig newstring)
(setq newstring (replace-match replace nil t newstring)))
newstring))
;; Copied from shell.el
(defun dirtrack-toggle ()
"Enable or disable Dirtrack directory tracking in a shell buffer."
(interactive)
(setq dirtrackp (not dirtrackp))
(if (setq dirtrackp (not dirtrackp))
(add-hook 'comint-preoutput-filter-functions 'dirtrack nil t)
(remove-hook 'comint-preoutput-filter-functions 'dirtrack t))
(message "Directory tracking %s" (if dirtrackp "ON" "OFF")))
(defun dirtrack-debug-toggle ()
@ -273,67 +234,60 @@ If directory tracking does not seem to be working, you can use the
function `dirtrack-debug-toggle' to turn on debugging output.
You can enable directory tracking by adding this function to
`comint-output-filter-functions'.
"
(if (null dirtrackp)
`comint-output-filter-functions'."
(if (or (null dirtrackp)
;; No output?
(eq (point) (point-min)))
nil
(let (prompt-path
matched
(current-dir default-directory)
(dirtrack-regexp (nth 0 dirtrack-list))
(match-num (nth 1 dirtrack-list))
(multi-line (nth 2 dirtrack-list))
)
;; No output?
(if (eq (point) (point-min))
nil
(save-excursion
(setq matched (string-match dirtrack-regexp input)))
;; No match
(if (null matched)
(and dirtrack-debug
(dirtrack-debug-message
(format
"Input `%s' failed to match regexp: %s"
input dirtrack-regexp)))
(setq prompt-path
(substring input
(match-beginning match-num) (match-end match-num)))
;; Empty string
(if (not (> (length prompt-path) 0))
(and dirtrack-debug
(dirtrack-debug-message "Match is empty string"))
;; Transform prompts into canonical forms
(setq prompt-path (funcall dirtrack-directory-function
prompt-path))
(setq current-dir (funcall dirtrack-canonicalize-function
current-dir))
(and dirtrack-debug
(dirtrack-debug-message
(format
"Prompt is %s\nCurrent directory is %s"
prompt-path current-dir)))
;; Compare them
(if (or (string= current-dir prompt-path)
(string= current-dir
(abbreviate-file-name prompt-path)))
(and dirtrack-debug
(dirtrack-debug-message
(format "Not changing directory")))
;; It's possible that Emacs will think the directory
;; won't exist (eg, rlogin buffers)
(if (file-accessible-directory-p prompt-path)
;; Change directory
(and (shell-process-cd prompt-path)
(run-hooks 'dirtrack-directory-change-hook)
dirtrack-debug
(dirtrack-debug-message
(format "Changing directory to %s" prompt-path)))
(error "Directory %s does not exist" prompt-path)))
)))))
;; Currently unimplemented, it seems. --Stef
(multi-line (nth 2 dirtrack-list)))
(save-excursion
;; No match
(if (null (string-match dirtrack-regexp input))
(and dirtrack-debug
(dirtrack-debug-message
(format
"Input `%s' failed to match `dirtrack-regexp'" input)))
(setq prompt-path (match-string match-num input))
;; Empty string
(if (not (> (length prompt-path) 0))
(and dirtrack-debug
(dirtrack-debug-message "Match is empty string"))
;; Transform prompts into canonical forms
(setq prompt-path (funcall dirtrack-directory-function
prompt-path))
(setq current-dir (funcall dirtrack-canonicalize-function
current-dir))
(and dirtrack-debug
(dirtrack-debug-message
(format
"Prompt is %s\nCurrent directory is %s"
prompt-path current-dir)))
;; Compare them
(if (or (string= current-dir prompt-path)
(string= current-dir
(abbreviate-file-name prompt-path)))
(and dirtrack-debug
(dirtrack-debug-message
(format "Not changing directory")))
;; It's possible that Emacs will think the directory
;; won't exist (eg, rlogin buffers)
(if (file-accessible-directory-p prompt-path)
;; Change directory
(and (shell-process-cd prompt-path)
(run-hooks 'dirtrack-directory-change-hook)
dirtrack-debug
(dirtrack-debug-message
(format "Changing directory to %s" prompt-path)))
(error "Directory %s does not exist" prompt-path)))
)))))
input)
(provide 'dirtrack)
;;; arch-tag: 168de071-be88-4937-aff6-2aba9f328d5a
;; arch-tag: 168de071-be88-4937-aff6-2aba9f328d5a
;;; dirtrack.el ends here

View File

@ -92,6 +92,7 @@ files.")
"Kai.Grossjohann@Cs.Uni-Dortmund.De"
"Kai.Grossjohann@Gmx.Net")
("Karl Berry" "K. Berry")
("K,Aa(Broly L$,1 q(Brentey" "K,Aa(Broly L,Bu(Brentey" "L$,1 q(Brentey K,Aa(Broly")
("Kazushi Marukawa" "Kazushi")
("Ken Manheimer" "Kenneth Manheimer")
("Kenichi Handa" "Ken'ichi Handa" "Kenichi HANDA")
@ -118,6 +119,7 @@ files.")
("Robert J. Chassell" "Bob Chassell")
("Roland B. Roberts" "Roland B Roberts" "Roland Roberts")
("Rui-Tao Dong" "Rui-Tao Dong ~{6-Hpln~}")
("Sacha Chua" "Sandra Jean Chua")
("Sam Steingold" "Sam Shteingold")
("Satyaki Das" "Indexed search by Satyaki Das")
("Stefan Monnier" "Stefan")
@ -168,7 +170,7 @@ listed.")
'("external-lisp"
"lock" "share-lib" "local-lisp"
"noleim-Makefile.in"
"NEWS" "PROBLEMS" "FAQ" "AUTHORS")
"NEWS" "PROBLEMS" "FAQ" "AUTHORS" "FOR-RELEASE" "TODO")
"List of files and directories to ignore.
Changes to files in this list are not listed.")

View File

@ -124,17 +124,10 @@ or macro definition or a defcustom)."
)
`(progn
(defvar ,varname ,init ,doc)
(custom-autoload ',varname ,file)
;; The use of :require in a defcustom can be annoying, especially
;; when defcustoms are moved from one file to another between
;; releases because the :require arg gets placed in the user's
;; .emacs. In order for autoloaded minor modes not to need the
;; use of :require, we arrange to store their :setter.
,(let ((setter (condition-case nil
(cadr (memq :set form))
(error nil))))
(if (equal setter ''custom-set-minor-mode)
`(put ',varname 'custom-set 'custom-set-minor-mode))))))
(custom-autoload ',varname ,file
,(condition-case nil
(null (cadr (memq :set form)))
(error nil))))))
((eq car 'defgroup)
;; In Emacs this is normally handled separately by cus-dep.el, but for

View File

@ -2791,7 +2791,7 @@ That command is designed for interactive use only" fn))
;; `cl-byte-compile-compiler-macro' but if CL isn't
;; loaded, this function doesn't exist.
(or (not (memq handler '(cl-byte-compile-compiler-macro)))
(fboundp handler))
(functionp handler))
(not (and (byte-compile-version-cond
byte-compile-compatibility)
(get (get fn 'byte-opcode) 'emacs19-opcode))))

View File

@ -101,9 +101,9 @@ Optional KEYMAP is the default (defvar) keymap bound to the mode keymap.
The above three arguments can be skipped if keyword arguments are
used (see below).
BODY contains code that will be executed each time the mode is (dis)activated.
It will be executed after any toggling but before running the hook variable
`mode-HOOK'.
BODY contains code to execute each time the mode is activated or deactivated.
It is executed after toggling the mode,
and before running the hook variable `mode-HOOK'.
Before the actual body code, you can write keyword arguments (alternating
keywords and values). These following keyword arguments are supported (other
keywords will be passed to `defcustom' if the minor mode is global):

View File

@ -235,13 +235,6 @@ If the result is non-nil, then break. Errors are ignored."
;;; Form spec utilities.
;;;###autoload
(defmacro def-edebug-spec (symbol spec)
"Set the `edebug-form-spec' property of SYMBOL according to SPEC.
Both SYMBOL and SPEC are unevaluated. The SPEC can be 0, t, a symbol
\(naming a function), or a list."
`(put (quote ,symbol) 'edebug-form-spec (quote ,spec)))
(defmacro def-edebug-form-spec (symbol spec-form)
"For compatibility with old version."
(def-edebug-spec symbol (eval spec-form)))
@ -3426,6 +3419,8 @@ go to the end of the last sexp, or if that is the same point, then step."
func)
(t
(let ((loc (find-function-noselect func)))
(unless (cdr loc)
(error "Could not find the definition in its file"))
(with-current-buffer (car loc)
(goto-char (cdr loc))
(edebug-eval-top-level-form)

View File

@ -205,6 +205,9 @@ TYPE should be nil to find a function, or `defvar' to find a variable."
;;;###autoload
(defun find-function-search-for-symbol (symbol type library)
"Search for SYMBOL's definition of type TYPE in LIBRARY.
Visit the library in a buffer, and return a cons cell (BUFFER . POSITION),
or just (BUFFER . nil) if the definition can't be found in the file.
If TYPE is nil, look for a function definition.
Otherwise, TYPE specifies the kind of definition,
and it is interpreted via `find-function-regexp-alist'.
@ -244,8 +247,7 @@ The search is done in the source for library LIBRARY."
(progn
(beginning-of-line)
(cons (current-buffer) (point)))
(error "Cannot find definition of `%s' in library `%s'"
symbol library))))))))
(cons (current-buffer) nil))))))))
;;;###autoload
(defun find-function-noselect (function)
@ -253,7 +255,8 @@ The search is done in the source for library LIBRARY."
Finds the source file containing the definition of FUNCTION
in a buffer and the point of the definition. The buffer is
not selected.
not selected. If the function definition can't be found in
the buffer, returns (BUFFER).
If the file where FUNCTION is defined is not known, then it is
searched for in `find-function-source-path' if non nil, otherwise
@ -335,7 +338,7 @@ Set mark before moving, if the buffer already existed."
(when (memq new-buf orig-buffers)
(push-mark orig-point))
(funcall switch-fn new-buf)
(goto-char new-point)
(when new-point (goto-char new-point))
(recenter find-function-recenter-line)
(run-hooks 'find-function-after-hook))))
@ -376,6 +379,7 @@ See `find-function' for more details."
Finds the library containing the definition of VARIABLE in a buffer and
the point of the definition. The buffer is not selected.
If the variable's definition can't be found in the buffer, return (BUFFER).
The library where VARIABLE is defined is searched for in FILE or
`find-function-source-path', if non nil, otherwise in `load-path'."
@ -421,6 +425,7 @@ See `find-variable' for more details."
;;;###autoload
(defun find-definition-noselect (symbol type &optional file)
"Return a pair `(BUFFER . POINT)' pointing to the definition of SYMBOL.
If the definition can't be found in the buffer, return (BUFFER).
TYPE says what type of definition: nil for a function, `defvar' for a
variable, `defface' for a face. This function does not switch to the
buffer nor display it.

View File

@ -77,7 +77,7 @@
"Delete scrolls back. Other keys %s"
"Type anything to %s"))
blurb)
(setq continue (read-char))
(setq continue (read-event))
(cond ((and (memq continue '(?\s ?\C-v)) (< state 2))
(scroll-up))
((= continue ?\C-l)

View File

@ -305,11 +305,23 @@ If the value is nil, use a shifted prefix key to inhibit the override."
(const :tag "No delay" nil))
:group 'cua)
(defcustom cua-delete-selection t
"*If non-nil, typed text replaces text in the active selection."
:type '(choice (const :tag "Disabled" nil)
(other :tag "Enabled" t))
:group 'cua)
(defcustom cua-keep-region-after-copy nil
"If non-nil, don't deselect the region after copying."
:type 'boolean
:group 'cua)
(defcustom cua-toggle-set-mark t
"*In non-nil, the `cua-set-mark' command toggles the mark."
:type '(choice (const :tag "Disabled" nil)
(other :tag "Enabled" t))
:group 'cua)
(defcustom cua-enable-register-prefix 'not-ctrl-u
"*If non-nil, registers are supported via numeric prefix arg.
If the value is t, any numeric prefix arg in the range 0 to 9 will be
@ -391,7 +403,8 @@ and after the region marked by the rectangle to search."
On non-window systems, always use the meta modifier.
Must be set prior to enabling CUA."
:type '(choice (const :tag "Meta key" meta)
(const :tag "Hyper key" hyper )
(const :tag "Alt key" alt)
(const :tag "Hyper key" hyper)
(const :tag "Super key" super))
:group 'cua)
@ -783,7 +796,7 @@ Save a copy in register 0 if `cua-delete-copy-to-register-0' is non-nil."
(defun cua-replace-region ()
"Replace the active region with the character you type."
(interactive)
(let ((not-empty (cua-delete-region)))
(let ((not-empty (and cua-delete-selection (cua-delete-region))))
(unless (eq this-original-command this-command)
(let ((overwrite-mode
(and overwrite-mode
@ -1001,7 +1014,7 @@ With a double \\[universal-argument] prefix argument, unconditionally set mark."
(arg
(setq this-command 'pop-to-mark-command)
(pop-to-mark-command))
(mark-active
((and cua-toggle-set-mark mark-active)
(cua--deactivate)
(message "Mark Cleared"))
(t

View File

@ -1361,6 +1361,7 @@ With prefix arg, indent to that column."
(interactive)
(let ((M (cond ((eq cua--rectangle-modifier-key 'hyper) " H-")
((eq cua--rectangle-modifier-key 'super) " s-")
((eq cua--rectangle-modifier-key 'alt) " A-")
(t " M-"))))
(message
(concat (if help "C-?:help" "")

View File

@ -1,3 +1,197 @@
2006-07-12 Michael Olson <mwolson@gnu.org>
* erc-match.el (erc-log-matches): Bind inhibit-read-only rather
than call toggle-read-only.
* erc.el (erc-handle-irc-url): Move here from erc-goodies.el and
add autoload cookie.
2006-07-09 Michael Olson <mwolson@gnu.org>
* erc.el (erc-version-string): Release ERC 5.1.3.
* erc.texi: Update for the 5.1.3 release.
* erc-autoaway.el (erc-autoaway-set-back): Fix bug after returning
from being set automatically away and current buffer is not an ERC
buffer.
* erc-identd.el: Fix compiler error.
* erc.texi (Development): Use @subheading instead of @subsection.
(Advanced Usage): Add menu.
(Connecting): Fully document how to connect to an IRC server.
(Options, Tips and Tricks, Sample Configuration): New unwritten
sections.
* erc.el (erc-server, erc-port, erc-nick, erc-nick-uniquifier)
(erc-user-full-name, erc-password): Docfixes and customization
interface tweaks.
(erc-try-new-nick-p): Rename from
`erc-manual-set-nick-on-bad-nick-p' and invert meaning.
(erc-nickname-in-use): Use `erc-try-new-nick-p'. Check the length
of `erc-nick-uniquifier', in case someone wants multiple
characters.
(erc-compute-server, erc-compute-nick, erc-compute-full-name)
(erc-compute-port): Docfixes.
* erc-log.el (log): Move all add-hook calls here, rather than
executing them immediately, and also cause them to be un-hooked
when the module is removed.
(erc-save-buffer-on-part): Move next to
`erc-save-queries-on-quit'.
(erc-save-buffer-on-quit, erc-save-queries-on-quit): Default to t.
(erc-log-write-after-send, erc-log-write-after-insert): Default to
nil. This makes things fast, but reasonably failsafe, by default.
2006-07-08 Michael Olson <mwolson@gnu.org>
* erc-log.el (erc-log-insert-log-on-open): Make this nil by
default, since most IRC clients don't do this.
(erc-log-write-after-send): New option that determines whether the
log file will be written to after every sent message.
(erc-log-write-after-insert): New option that determines whether
the log file will be written to when new text is added to a logged
ERC buffer.
(log): Use the aforementioned options.
* erc.texi (Modules): Document the "completion" module.
* erc-pcomplete.el (pcomplete-erc-nicks): Make sure that we don't
have a nil element in the list when ignore-self is non-nil.
2006-07-05 Michael Olson <mwolson@gnu.org>
* erc.el (erc-modules): Add the `page' module to the list.
* erc.texi (Modules): Add entries for `list' and `page' modules.
Change "spell" to "spelling".
(History): Use past tense throughout.
2006-07-02 Michael Olson <mwolson@gnu.org>
* erc-backend.el (erc-call-hooks): Fix (stringp nil) error that
can happen when doing /PART.
* erc.el (erc-quit-reason-various-alist)
(erc-part-reason-various-alist): In the example, use "^$" as an
example, since "" matches anything.
(erc-quit-reason-various, erc-part-reason-various): If no argument
is given, and no matches are found, use our default reason instead
of "nil".
2006-06-30 Michael Olson <mwolson@gnu.org>
* erc.texi (Modules): Mention identd.
(Releases): Update mailing list address and download location.
(Development): Refactor. Provide updated directions for Arch.
Make URLs clickable.
(Keystroke Summary): Typo fix. Use more Texinfo syntax.
(Getting Started): Give simpler example. We do not need to
explicitly load every module.
(History): Update.
* erc.el (erc-version-modules): Remove, since we do not use this
function anymore.
(erc-latest-version, erc-ediff-latest-version): Remove, since this
was only useful back when ERC consisted of one file.
(erc-modules): Add line for identd.
(erc-get-channel-mode-from-keypress): Typo fix.
* erc-imenu.el: Remove unnecessary lines in header.
* erc-goodies.el (erc-handle-irc-url): Docfix.
* erc-identd.el: Define an ERC module for this.
(erc-identd-start): Don't create a process buffer if possible.
Otherwise, use conventional hidden names for process buffers.
2006-06-29 Michael Olson <mwolson@gnu.org>
* erc-backend.el (erc-coding-system-for-target): Match
case-insensitively. Use a pattern match instead of `assoc', as
per the documentation for `erc-encoding-coding-alist'.
* erc-track.el (erc-track-shorten-aggressively): Fix typo.
2006-06-27 Michael Olson <mwolson@gnu.org>
* erc.el: Update maintainer information and URLs.
2006-06-14 Michael Olson <mwolson@gnu.org>
* erc.el (erc-active-buffer): If the active buffer has been
deleted, default to the server buffer.
(erc-toggle-flood-control): When the user hits C-c C-f, make flood
control really toggle, not unconditionally turn off.
2006-06-12 Michael Olson <mwolson@gnu.org>
* NEWS: Add items since the 5.1.2 release.
* erc-autoaway.el (erc-autoaway-caused-away): New variable that
indicates whether the current away status was caused by this
module.
(erc-autoaway-set-back): Only set back if this module set the user
away.
(erc-autoaway-set-away): Update `erc-autoaway-caused-away'.
(erc-autoaway-reset-indicators): New function that resets some
indicators when the user is no longer away.
(autoaway): Add the above function to the 305 hook.
2006-06-05 Romain Francoise <romain@orebokech.com>
* erc.texi (History): Fix various typos.
2006-06-04 Michael Olson <mwolson@gnu.org>
* erc-autoaway.el (erc-autoaway-idle-method): Move after the
definition of the autoaway module.
(autoaway): Don't do anything if erc-autoaway-idle-method is
unbound. This prevents an error on startup.
2006-06-03 Michael Olson <mwolson@gnu.org>
* erc-autoaway.el: Thanks to Mark Plaksin for the ideas and patch.
(erc-autoaway-idle-method): Renamed from
`erc-autoaway-use-emacs-idle'. We have more than two choices for
how to do this, so it's best to make this take symbol values.
Improve documentation. Remove warning against Emacs idle-time;
the point is moot now that we get user idle time via a different
method. Make sure we disable and re-enable the module when
changing this value.
(autoaway): Conditionalize on the above option. If using the idle
timer or user idle methods, don't add anything to the
send-completed or server-001 hooks, since it is unnecessary.
(erc-autoaway-reestablish-idletimer, erc-autoaway-message):
Docfix.
(erc-autoaway-idle-seconds): Use erc-autoaway-idle-method.
(erc-autoaway-reset-idle-irc): Renamed from
`erc-autoaway-reset-idle'. Don't pass line to
`erc-autoaway-set-away', since it is not used.
(erc-autoaway-reset-idle-user): New function that resets the idle
state for user idle time.
(erc-autoaway-set-back): Remove line argument, since it is not
used.
2006-06-01 Michael Olson <mwolson@gnu.org>
* erc.el (erc-buffer-filter): Make sure all buffers returned from
this are live.
2006-05-01 Edward O'Connor <ted@oconnor.cx>
* erc-goodies.el: (erc-handle-irc-url): New function, suitable as
a value for `url-irc-function'.
2006-04-18 Diane Murray <disumu@x3y2z1.net>
* erc-pcomplete.el (pcomplete-erc-nicks): Added new optional
argument IGNORE-SELF. If this is non-nil, don't return the user's
current nickname. Doc fix.
(pcomplete/erc-mode/complete-command): Don't complete the current
nickname.
2006-04-05 Diane Murray <disumu@x3y2z1.net>
* erc.el (erc-cmd-SV): Removed the exclamation point. Show the

View File

@ -40,19 +40,6 @@ yourself back when you type something."
"The Emacs idletimer.
This is only used when `erc-autoaway-use-emacs-idle' is non-nil.")
(defcustom erc-autoaway-use-emacs-idle nil
"*If non-nil, the idle time refers to idletime in Emacs.
If nil, the idle time refers to idletime on IRC only.
The time itself is specified by `erc-autoaway-idle-seconds'.
See `erc-autoaway-mode' for more information on the various
definitions of being idle.
Note that using Emacs idletime is currently broken for most versions,
since process activity (as happens all the time on IRC) makes Emacs
non-idle. Emacs idle-time and user idle-time are just not the same."
:group 'erc-autoaway
:type 'boolean)
;;;###autoload (autoload 'erc-autoaway-mode "erc-autoaway")
(define-erc-module autoaway nil
"In ERC autoaway mode, you can be set away automatically.
@ -61,35 +48,65 @@ the number of seconds specified in `erc-autoaway-idle-seconds'.
There are several kinds of being idle:
IRC idle time measures how long since you last sent something (see
`erc-autoaway-last-sent-time'). This is the default.
User idle time measures how long you have not been sending any
commands to Emacs. This is the default.
Emacs idle time measures how long Emacs has been idle. This is
currently not useful, since Emacs is non-idle when it handles
ping-pong with IRC servers. See `erc-autoaway-use-emacs-idle' for
more information.
ping-pong with IRC servers. See `erc-autoaway-idle-method'
for more information.
User idle time measures how long you have not been sending any
commands to Emacs, or to your system. Emacs currently provides no way
to measure user idle time.
IRC idle time measures how long since you last sent something (see
`erc-autoaway-last-sent-time').
If `erc-auto-discard-away' is set, then typing anything, will
set you no longer away.
Related variables: `erc-public-away-p' and `erc-away-nickname'."
;; Enable:
((add-hook 'erc-send-completed-hook 'erc-autoaway-reset-idletime)
(add-hook 'erc-server-001-functions 'erc-autoaway-reset-idletime)
(add-hook 'erc-timer-hook 'erc-autoaway-possibly-set-away)
(when erc-autoaway-use-emacs-idle
(erc-autoaway-reestablish-idletimer)))
((when (boundp 'erc-autoaway-idle-method)
(cond
((eq erc-autoaway-idle-method 'irc)
(add-hook 'erc-send-completed-hook 'erc-autoaway-reset-idle-irc)
(add-hook 'erc-server-001-functions 'erc-autoaway-reset-idle-irc))
((eq erc-autoaway-idle-method 'user)
(add-hook 'post-command-hook 'erc-autoaway-reset-idle-user))
((eq erc-autoaway-idle-method 'emacs)
(erc-autoaway-reestablish-idletimer)))
(add-hook 'erc-timer-hook 'erc-autoaway-possibly-set-away)
(add-hook 'erc-server-305-functions 'erc-autoaway-reset-indicators)))
;; Disable:
((remove-hook 'erc-send-completed-hook 'erc-autoaway-reset-idletime)
(remove-hook 'erc-server-001-functions 'erc-autoaway-reset-idletime)
(remove-hook 'erc-timer-hook 'erc-autoaway-possibly-set-away)
(when erc-autoaway-idletimer
(erc-cancel-timer erc-autoaway-idletimer)
(setq erc-autoaway-idletimer nil))))
((when (boundp 'erc-autoaway-idle-method)
(cond
((eq erc-autoaway-idle-method 'irc)
(remove-hook 'erc-send-completed-hook 'erc-autoaway-reset-idle-irc)
(remove-hook 'erc-server-001-functions 'erc-autoaway-reset-idle-irc))
((eq erc-autoaway-idle-method 'user)
(remove-hook 'post-command-hook 'erc-autoaway-reset-idle-user))
((eq erc-autoaway-idle-method 'emacs)
(erc-cancel-timer erc-autoaway-idletimer)
(setq erc-autoaway-idletimer nil)))
(remove-hook 'erc-timer-hook 'erc-autoaway-possibly-set-away)
(remove-hook 'erc-server-305-functions 'erc-autoaway-reset-indicators))))
(defcustom erc-autoaway-idle-method 'user
"*The method used to determine how long you have been idle.
If 'user, the time of the last command sent to Emacs is used.
If 'emacs, the idle time in Emacs is used.
If 'irc, the time of the last IRC command is used.
The time itself is specified by `erc-autoaway-idle-seconds'.
See `erc-autoaway-mode' for more information on the various
definitions of being idle."
:group 'erc-autoaway
:type '(choice (const :tag "User idle time" user)
(const :tag "Emacs idle time" emacs)
(const :tag "Last IRC action" irc))
:set (lambda (sym val)
(erc-autoaway-disable)
(set-default sym val)
(erc-autoaway-enable)))
(defcustom erc-auto-set-away t
"*If non-nil, set away after `erc-autoaway-idle-seconds' seconds of idling.
@ -120,8 +137,8 @@ See `erc-auto-discard-away'."
(defun erc-autoaway-reestablish-idletimer ()
"Reestablish the emacs idletimer.
You have to call this function each time you change
`erc-autoaway-idle-seconds', if `erc-autoaway-use-emacs-idle' is set."
If `erc-autoaway-idle-method' is 'emacs, you must call this
function each time you change `erc-autoaway-idle-seconds'."
(interactive)
(when erc-autoaway-idletimer
(erc-cancel-timer erc-autoaway-idletimer))
@ -138,36 +155,49 @@ you have to run `erc-autoaway-reestablish-idletimer' afterwards."
:group 'erc-autoaway
:set (lambda (sym val)
(set-default sym val)
(when erc-autoaway-use-emacs-idle
(when (eq erc-autoaway-idle-method 'emacs)
(erc-autoaway-reestablish-idletimer)))
:type 'number)
(defcustom erc-autoaway-message
"I'm gone (autoaway after %i seconds of idletime)"
"*Message ERC will use when he sets you automatically away.
It is used as a `format' string with the argument of the idletime in
seconds."
"*Message ERC will use when setting you automatically away.
It is used as a `format' string with the argument of the idletime
in seconds."
:group 'erc-autoaway
:type 'string)
(defvar erc-autoaway-last-sent-time (erc-current-time)
"The last time the user sent something.")
(defun erc-autoaway-reset-idletime (line &rest stuff)
"Reset the stored idletime for the user.
This is one global variable since a user talking on one net can talk
on another net too."
(defvar erc-autoaway-caused-away nil
"Indicates whether this module was responsible for setting the
user's away status.")
(defun erc-autoaway-reset-idle-user (&rest stuff)
"Reset the stored user idle time.
This is one global variable since a user talking on one net can
talk on another net too."
(when erc-auto-discard-away
(erc-autoaway-set-back))
(setq erc-autoaway-last-sent-time (erc-current-time)))
(defun erc-autoaway-reset-idle-irc (line &rest stuff)
"Reset the stored IRC idle time.
This is one global variable since a user talking on one net can
talk on another net too."
(when (and erc-auto-discard-away
(stringp line)
(not (string-match erc-autoaway-no-auto-discard-regexp line)))
(erc-autoaway-set-back line))
(erc-autoaway-set-back))
(setq erc-autoaway-last-sent-time (erc-current-time)))
(defun erc-autoaway-set-back (line)
(defun erc-autoaway-set-back ()
"Discard the away state globally."
(when (erc-away-p)
(setq erc-autoaway-last-sent-time (erc-current-time))
(erc-cmd-GAWAY "")))
(let ((server-buffer (car (erc-buffer-list #'erc-server-buffer-p))))
(when (and erc-autoaway-caused-away
(with-current-buffer server-buffer (erc-away-p)))
(erc-cmd-GAWAY ""))))
(defun erc-autoaway-possibly-set-away (current-time)
"Set autoaway when `erc-auto-set-away' is true and the idletime is
@ -193,8 +223,14 @@ exceeds `erc-autoaway-idle-seconds'."
;; existing process.
(when (and (erc-server-process-alive)
(not (erc-away-p)))
(setq erc-autoaway-caused-away t)
(erc-cmd-GAWAY (format erc-autoaway-message idle-time))))
(defun erc-autoaway-reset-indicators (&rest stuff)
"Reset indicators used by the erc-autoaway module."
(setq erc-autoaway-last-sent-time (erc-current-time))
(setq erc-autoaway-caused-away nil))
(provide 'erc-autoaway)
;;; erc-autoaway.el ends here

View File

@ -563,7 +563,11 @@ action."
"Return the coding system or cons cell appropriate for TARGET.
This is determined via `erc-encoding-coding-alist' or
`erc-server-coding-system'."
(or (cdr (assoc target erc-encoding-coding-alist))
(or (let ((case-fold-search t))
(catch 'match
(dolist (pat erc-encoding-coding-alist)
(when (string-match (car pat) target)
(throw 'match (cdr pat))))))
(and (functionp erc-server-coding-system)
(funcall erc-server-coding-system))
erc-server-coding-system))
@ -849,8 +853,10 @@ Finds hooks by looking in the `erc-server-responses' hashtable."
(let ((hook (or (erc-get-hook (erc-response.command message))
'erc-default-server-functions)))
(run-hook-with-args-until-success hook process message)
(with-current-buffer (erc-server-buffer)
(run-hook-with-args 'erc-timer-hook (erc-current-time)))))
(let ((server-buffer (erc-server-buffer)))
(when (buffer-live-p server-buffer)
(with-current-buffer server-buffer
(run-hook-with-args 'erc-timer-hook (erc-current-time)))))))
(add-hook 'erc-default-server-functions 'erc-handle-unknown-server-response)

View File

@ -24,16 +24,32 @@
;;; Commentary:
;; You can have a local identd server (running on port 8113; I use DNAT
;; to bind 113->8113) if you add this to .emacs.el:
;; This module allows you to run a local identd server on port 8113.
;; You will need to set up DNAT to bind 113->8113, or use a proxy.
;; (add-hook 'erc-connect-pre-hook 'erc-identd-start)
;; (add-hook 'erc-disconnected-hook 'erc-identd-stop)
;; To use this module, add identd to `erc-modules' and run
;; `erc-update-modules'.
;; Here is an example /etc/inetd.conf rule that forwards identd
;; traffic to port 8113. You will need simpleproxy installed for it
;; to work.
;; 113 stream tcp nowait nobody /usr/sbin/tcpd /usr/bin/simpleproxy simpleproxy -i -R 127.0.0.1:8113
;;; Code:
(require 'erc)
(defvar erc-identd-process nil)
;;;###autoload (autoload 'erc-identd-mode "erc-identd")
(define-erc-module identd nil
"This mode launches an identd server on port 8113."
((add-hook 'erc-connect-pre-hook 'erc-identd-start)
(add-hook 'erc-disconnected-hook 'erc-identd-stop))
((remove-hook 'erc-connect-pre-hook 'erc-identd-start)
(remove-hook 'erc-disconnected-hook 'erc-identd-stop)))
(defun erc-identd-filter (proc string)
"This filter implements RFC1413 (identd authentication protocol)."
(let ((erc-identd-process proc))
@ -63,10 +79,11 @@ system."
(delete-process erc-identd-process))
(setq erc-identd-process
(make-network-process :name "identd"
:buffer (generate-new-buffer "identd")
:buffer nil
:host 'local :service port
:server t :noquery t
:filter 'erc-identd-filter)))
:server t :noquery t :nowait t
:filter 'erc-identd-filter))
(set-process-query-on-exit-flag erc-identd-process nil))
;;;###autoload
(defun erc-identd-stop (&rest ignore)

View File

@ -31,11 +31,6 @@
;;; Code:
;; Author: Mario Lang <mlang@delysid.org>
;; This file is not part of GNU Emacs. But the same license applies.
;;; Commentary:
;; This package defines the function `erc-create-imenu-index'. ERC

View File

@ -115,11 +115,6 @@ SERVER and PORT are the parameters used to connect BUFFERs
(const erc-generate-log-file-name-with-date)
(symbol)))
(defcustom erc-save-buffer-on-part nil
"*Save the channel buffer content using `erc-save-buffer-in-logs' on PART."
:group 'erc-log
:type 'boolean)
(defcustom erc-truncate-buffer-on-save nil
"Truncate any ERC (channel, query, server) buffer when it is saved."
:group 'erc-log
@ -150,14 +145,41 @@ directory should not end with a trailing slash."
:type '(choice directory
(const nil)))
(defcustom erc-log-insert-log-on-open t
(defcustom erc-log-insert-log-on-open nil
"*Insert log file contents into the buffer if a log file exists."
:group 'erc-log
:type 'boolean)
(defcustom erc-save-queries-on-quit nil
"Save all query (also channel) buffers of the server on QUIT.
See the variable `erc-save-buffer-on-part' for details."
(defcustom erc-save-buffer-on-part t
"*Save the channel buffer content using `erc-save-buffer-in-logs' on PART.
If you set this to nil, you may want to enable both
`erc-log-write-after-send' and `erc-log-write-after-insert'."
:group 'erc-log
:type 'boolean)
(defcustom erc-save-queries-on-quit t
"*Save all query (also channel) buffers of the server on QUIT.
If you set this to nil, you may want to enable both
`erc-log-write-after-send' and `erc-log-write-after-insert'."
:group 'erc-log
:type 'boolean)
(defcustom erc-log-write-after-send nil
"*If non-nil, write to log file after every message you send.
If you set this to nil, you may want to enable both
`erc-save-buffer-on-part' and `erc-save-queries-on-quit'."
:group 'erc-log
:type 'boolean)
(defcustom erc-log-write-after-insert nil
"*If non-nil, write to log file when new text is added to a
logged ERC buffer.
If you set this to nil, you may want to enable both
`erc-save-buffer-on-part' and `erc-save-queries-on-quit'."
:group 'erc-log
:type 'boolean)
@ -187,29 +209,28 @@ also be a predicate function. To only log when you are not set away, use:
(with-current-buffer buffer
(not erc-away))))"
;; enable
((add-hook 'erc-insert-post-hook
'erc-save-buffer-in-logs)
(add-hook 'erc-send-post-hook
'erc-save-buffer-in-logs))
((when erc-log-write-after-insert
(add-hook 'erc-insert-post-hook 'erc-save-buffer-in-logs))
(when erc-log-write-after-send
(add-hook 'erc-send-post-hook 'erc-save-buffer-in-logs))
(add-hook 'erc-kill-buffer-hook 'erc-save-buffer-in-logs)
(add-hook 'erc-kill-channel-hook 'erc-save-buffer-in-logs)
(add-hook 'erc-quit-hook 'erc-conditional-save-queries)
(add-hook 'erc-part-hook 'erc-conditional-save-buffer)
;; append, so that 'erc-initialize-log-marker runs first
(add-hook 'erc-connect-pre-hook 'erc-log-setup-logging 'append))
;; disable
((remove-hook 'erc-insert-post-hook
'erc-save-buffer-in-logs)
(remove-hook 'erc-send-post-hook
'erc-save-buffer-in-logs)))
(when erc-enable-logging
(add-hook 'erc-kill-buffer-hook
'erc-save-buffer-in-logs)
(add-hook 'erc-kill-channel-hook
'erc-save-buffer-in-logs)
(add-hook 'erc-quit-hook
'erc-conditional-save-queries)
(add-hook 'erc-part-hook
'erc-conditional-save-buffer))
((remove-hook 'erc-insert-post-hook 'erc-save-buffer-in-logs)
(remove-hook 'erc-send-post-hook 'erc-save-buffer-in-logs)
(remove-hook 'erc-kill-buffer-hook 'erc-save-buffer-in-logs)
(remove-hook 'erc-kill-channel-hook 'erc-save-buffer-in-logs)
(remove-hook 'erc-quit-hook 'erc-conditional-save-queries)
(remove-hook 'erc-part-hook 'erc-conditional-save-buffer)
(remove-hook 'erc-connect-pre-hook 'erc-log-setup-logging)))
(define-key erc-mode-map "\C-c\C-l" 'erc-save-buffer-in-logs)
;;;functionality referenced from erc.el
;;; functionality referenced from erc.el
(defun erc-log-setup-logging ()
"Setup the buffer-local logging variables in the current buffer.
This function is destined to be run from `erc-connect-pre-hook'."
@ -224,9 +245,6 @@ This function is destined to be run from `erc-connect-pre-hook'."
(move-marker erc-last-saved-position
(1- (point-max)))))))
;;; Append, so that 'erc-initialize-log-marker keeps running first.
(add-hook 'erc-connect-pre-hook 'erc-log-setup-logging 'append)
(defun erc-log-all-but-server-buffers (buffer)
"Returns t if logging should be enabled in BUFFER.
Returns nil iff `erc-server-buffer-p' returns t."

View File

@ -553,10 +553,9 @@ deactivate/activate match logging in the latter. See
?m message
?u nickuserhost))))
(with-current-buffer (erc-log-matches-make-buffer match-buffer-name)
(toggle-read-only -1)
(point-max)
(insert line)
(toggle-read-only 1))))))
(let ((inhibit-read-only t))
(goto-char (point-max))
(insert line)))))))
(defun erc-log-matches-make-buffer (name)
"Create or get a log-matches buffer named NAME and return it."

View File

@ -106,7 +106,7 @@ the most recent speakers are listed first."
(pcomplete-here
(append
(pcomplete-erc-commands)
(pcomplete-erc-nicks erc-pcomplete-nick-postfix))))
(pcomplete-erc-nicks erc-pcomplete-nick-postfix t))))
(defvar erc-pcomplete-ctcp-commands
'("ACTION" "CLIENTINFO" "ECHO" "FINGER" "PING" "TIME" "USERINFO" "VERSION"))
@ -212,14 +212,23 @@ the most recent speakers are listed first."
not-ops))
(defun pcomplete-erc-nicks (&optional postfix)
"Returns a list of nicks in the current channel."
(let ((users (erc-get-channel-user-list)))
(if erc-pcomplete-order-nickname-completions
(setq users (erc-sort-channel-users-by-activity users)))
(mapcar (lambda (x)
(concat (erc-server-user-nickname (car x)) postfix))
users)))
(defun pcomplete-erc-nicks (&optional postfix ignore-self)
"Returns a list of nicks in the current channel.
Optional argument POSTFIX is something to append to the nickname.
If optional argument IGNORE-SELF is non-nil, don't return the current nick."
(let ((users (if erc-pcomplete-order-nickname-completions
(erc-sort-channel-users-by-activity
(erc-get-channel-user-list))
(erc-get-channel-user-list)))
(nicks nil))
(dolist (user users)
(unless (and ignore-self
(string= (erc-server-user-nickname (car user))
(erc-current-nick)))
(setq nicks (cons (concat (erc-server-user-nickname (car user))
postfix)
nicks))))
(nreverse nicks)))
(defun pcomplete-erc-all-nicks (&optional postfix)
"Returns a list of all nicks on the current server."

View File

@ -108,7 +108,7 @@ If this variable is set to `max', then channel names will be shortened
to the max. Usually, shortened channel names will remain unique for a
given set of existing channels. When shortening to the max, the shortened
channel names will be unique for the set of active channels only.
Example: If there are tow active channels #emacs and #vi, and two inactive
Example: If there are two active channels #emacs and #vi, and two inactive
channels #electronica and #folk, then usually the active channels are
shortened to #em and #v. When shortening to the max, however, #emacs is
not compared to #electronica -- only to #vi, therefore it can be shortened

View File

@ -11,7 +11,7 @@
;; Andreas Fuchs (afs@void.at)
;; Gergely Nagy (algernon@midgard.debian.net)
;; David Edmondson (dme@dme.org)
;; Maintainer: Mario Lang (mlang@delysid.org)
;; Maintainer: Michael Olson (mwolson@gnu.org)
;; Keywords: IRC, chat, client, Internet
;; This file is part of GNU Emacs.
@ -36,12 +36,13 @@
;; ERC is an IRC client for Emacs.
;; For more information, see the following URLs:
;; * http://sf.net/projects/erc/
;; * http://sv.gnu.org/projects/erc/
;; * http://www.emacswiki.org/cgi-bin/wiki.pl?EmacsIRCClient
;; Jul-26-2001. erc.el is now in CVS on SourceForge. I invite everyone
;; who wants to hack it to contact me <mlang@delysid.org> in order to
;; get write access on the CVS.
;; As of 2006-06-13, ERC development is now hosted on Savannah
;; (http://sv.gnu.org/projects/erc). I invite everyone who wants to
;; hack on it to contact me <mwolson@gnu.org> in order to get write
;; access to the shared Arch archive.
;; Installation:
@ -66,7 +67,7 @@
;;; Code:
(defconst erc-version-string "Version 5.1.2"
(defconst erc-version-string "Version 5.1.3"
"ERC version. This is used by function `erc-version'.")
(eval-when-compile (require 'cl))
@ -77,12 +78,12 @@
(require 'erc-menu)
(defvar erc-official-location
"http://erc.sf.net (comments mailto://mlang@delysid.org)"
"http://emacswiki.org/cgi-bin/wiki/ERC (mailing list: erc-discuss@gnu.org)"
"Location of the ERC client on the Internet.")
(defgroup erc nil
"Emacs Internet Relay Chat client."
:link '(url-link "http://www.emacswiki.org/cgi-bin/wiki.pl?EmacsIRCClient")
:link '(url-link "http://www.emacswiki.org/cgi-bin/wiki/ERC")
:prefix "erc-"
:group 'applications)
@ -143,57 +144,69 @@
;; tunable connection and authentication parameters
(defcustom erc-server nil
"IRC server to use.
"IRC server to use if one is not provided.
See function `erc-compute-server' for more details on connection
parameters and authentication."
:group 'erc
:type '(choice (const nil) string))
:type '(choice (const :tag "None" nil)
(string :tag "Server")))
(defcustom erc-port nil
"IRC port to use."
"IRC port to use if not specified.
This can be either a string or a number."
:group 'erc
:type '(choice (const nil) number string))
:type '(choice (const :tag "None" nil)
(const :tag "Port number" number)
(const :tag "Port string" string)))
(defcustom erc-nick nil
"Nickname to use.
"Nickname to use if one is not provided.
Can be either a string, or a list of strings.
This can be either a string, or a list of strings.
In the latter case, if the first nick in the list is already in use,
other nicks are tried in the list order.
See function `erc-compute-nick' for more details on connection
parameters and authentication."
:group 'erc
:type '(choice (const nil)
:type '(choice (const :tag "None" nil)
(string :tag "Nickname")
(repeat string)))
(repeat (string :tag "Nickname"))))
(defcustom erc-nick-uniquifier "`"
"The character to append to the nick if it is already in use."
"The string to append to the nick if it is already in use."
:group 'erc
:type 'string)
(defcustom erc-manual-set-nick-on-bad-nick-p nil
"If the nickname you chose isn't available, ERC should not automatically
attempt to set another nickname. You can manually set another nickname with
the /NICK command."
(defcustom erc-try-new-nick-p t
"If the nickname you chose isn't available, and this option is non-nil,
ERC should automatically attempt to connect with another nickname.
You can manually set another nickname with the /NICK command."
:group 'erc
:type 'boolean)
(defcustom erc-user-full-name nil
"User full name.
This can be either a string or a function to call.
See function `erc-compute-full-name' for more details on connection
parameters and authentication."
:group 'erc
:type '(choice (const nil) string function)
:type '(choice (const :tag "No name" nil)
(string :tag "Name")
(function :tag "Get from function"))
:set (lambda (sym val)
(if (functionp val)
(set sym (funcall val))
(set sym val))))
(defvar erc-password nil
"ERC password to use in authentication (not necessary).")
"Password to use when authenticating to an IRC server.
It is not strictly necessary to provide this, since ERC will
prompt you for it.")
(defcustom erc-user-mode nil
"Initial user modes to be set after a connection is established."
@ -871,7 +884,7 @@ As an example:
(\"xmms\" dme:now-playing)
(\"version\" erc-quit-reason-normal)
(\"home\" \"Gone home !\")
(\"\" \"Default Reason\")))
(\"^$\" \"Default Reason\")))
If the user types \"/quit zippy\", then a Zippy the Pinhead quotation
will be used as the quit message."
:group 'erc-quit-and-part
@ -895,7 +908,7 @@ As an example:
(\"xmms\" dme:now-playing)
(\"version\" erc-part-reason-normal)
(\"home\" \"Gone home !\")
(\"\" \"Default Reason\")))
(\"^$\" \"Default Reason\")))
If the user types \"/part zippy\", then a Zippy the Pinhead quotation
will be used as the part message."
:group 'erc-quit-and-part
@ -1373,7 +1386,10 @@ server buffer")
(defun erc-active-buffer ()
"Return the value of `erc-active-buffer' for the current server.
Defaults to the server buffer."
(with-current-buffer (erc-server-buffer) erc-active-buffer))
(with-current-buffer (erc-server-buffer)
(if (buffer-live-p erc-active-buffer)
erc-active-buffer)
(setq erc-active-buffer (current-buffer))))
(defun erc-set-active-buffer (buffer)
"Set the value of `erc-active-buffer' to BUFFER."
@ -1595,12 +1611,13 @@ server connection, or nil which means all open connections."
(delq
nil
(mapcar (lambda (buf)
(with-current-buffer buf
(and (eq major-mode 'erc-mode)
(or (not proc)
(eq proc erc-server-process))
(funcall predicate)
buf)))
(when (buffer-live-p buf)
(with-current-buffer buf
(and (eq major-mode 'erc-mode)
(or (not proc)
(eq proc erc-server-process))
(funcall predicate)
buf))))
(buffer-list)))))
(defun erc-buffer-list (&optional predicate proc)
@ -1760,11 +1777,12 @@ removed from the list will be disabled."
:greedy t
(const :tag "Set away status automatically" autoaway)
(const :tag "Join channels automatically" autojoin)
(const :tag "Integrate with Big Brother Database" bbdb)
(const :tag "Buttonize URLs, nicknames, and other text" button)
(const :tag "Wrap long lines" fill)
(const :tag "Launch an identd server on port 8113" identd)
(const :tag "Highlight or remove IRC control characters"
irccontrols)
(const :tag "List channels in a separate buffer" list)
(const :tag "Save buffers in logs" log)
(const :tag "Highlight pals, fools, and other keywords" match)
(const :tag "Detect netsplits" netsplit)
@ -1776,6 +1794,7 @@ removed from the list will be disabled."
(const :tag "Complete nicknames and commands (programmable)"
completion)
(const :tag "Complete nicknames and commands (old)" hecomplete)
(const :tag "Process CTCP PAGE requests from IRC" page)
(const :tag "Make displayed lines read-only" readonly)
(const :tag "Replace text in messages" replace)
(const :tag "Enable an input history" ring)
@ -2063,10 +2082,12 @@ Non-interactively, it takes keyword arguments
(full-name (erc-compute-full-name)))
That is, if called with
(erc-select :server \"irc.freenode.net\" :full-name \"Harry S Truman\")
server and full-name will be set to those values, whereas
erc-compute-port, erc-compute-nick and erc-compute-full-name will
be invoked for those parameters' values"
`erc-compute-port', `erc-compute-nick' and `erc-compute-full-name' will
be invoked for the values of the other parameters."
(interactive (erc-select-read-args))
(run-hook-with-args 'erc-before-connect server port nick)
@ -3047,8 +3068,8 @@ If S is non-nil, it will be used as the quit reason."
(cond
((functionp res) (funcall res))
((stringp res) res)
;; hopefully never reached
(s))))
(s s)
(t (erc-quit-reason-normal)))))
(defun erc-part-reason-normal (&optional s)
"Normal part message.
@ -3074,7 +3095,8 @@ If S is non-nil, it will be used as the quit reason."
(cond
((functionp res) (funcall res))
((stringp res) res)
(s))))
(s s)
(t (erc-part-reason-normal)))))
(defun erc-cmd-QUIT (reason)
"Disconnect from the current server.
@ -3713,7 +3735,7 @@ E.g. \"Read error to Nick [user@some.host]: 110\" would be shortened to
"If NICK is unavailable, tell the user the REASON.
See also `erc-display-error-notice'."
(if (or erc-manual-set-nick-on-bad-nick-p
(if (or (not erc-try-new-nick-p)
;; how many default-nicks are left + one more try...
(eq erc-nick-change-attempt-count
(if (consp erc-nick)
@ -3735,12 +3757,13 @@ See also `erc-display-error-notice'."
(setq newnick (concat (truncate-string-to-width
nick
(if (and erc-server-connected nicklen)
(- (string-to-number nicklen) 1)
(- (string-to-number nicklen)
(length erc-nick-uniquifier))
;; rfc2812 max nick length = 9
;; we must assume this is the
;; server's setting if we haven't
;; established a connection yet
8))
(- 9 (length erc-nick-uniquifier))))
erc-nick-uniquifier)))
(erc-cmd-NICK newnick)
(erc-display-error-notice
@ -5098,13 +5121,16 @@ If ARG is non-nil and not positive, turns CTCP replies off."
(defun erc-toggle-flood-control (&optional arg)
"Toggle use of flood control on sent messages.
If ARG is non-nil, use flood control.
If ARG is nil, do not use flood control.
If ARG is positive, use flood control.
If ARG is non-nil and not positive, do not use flood control.
See `erc-server-flood-margin' for an explanation of the available
flood control parameters."
(interactive "P")
(setq erc-flood-protect arg)
(cond ((and (numberp arg) (> arg 0))
(setq erc-flood-protect t))
(arg (setq erc-flood-protect nil))
(t (setq erc-flood-protect (not erc-flood-protect))))
(message "ERC flood control is %s"
(cond (erc-flood-protect "ON")
(t "OFF"))))
@ -5130,10 +5156,10 @@ This command is sent even if excess flood is detected."
(defun erc-get-channel-mode-from-keypress (key)
"Read a key sequence and call the corresponding channel mode function.
After doing C-c C-o type in a channel mode letter.
After doing C-c C-o, type in a channel mode letter.
C-g means quit.
RET let's you type more than one mode at a time.
RET lets you type more than one mode at a time.
If \"l\" is pressed, `erc-set-channel-limit' gets called.
If \"k\" is pressed, `erc-set-channel-key' gets called.
Anything else will be sent to `erc-toggle-channel-mode'."
@ -5384,28 +5410,28 @@ Sets the buffer local variables:
(defun erc-compute-server (&optional server)
"Return an IRC server name.
Tries a number of increasingly more default methods until a non-nil value is
found:
This tries a number of increasingly more default methods until a
non-nil value is found.
- SERVER
- `erc-server'
- SERVER (the argument passwd to this function)
- The `erc-server' option
- The value of the IRCSERVER environment variable
- `erc-default-server'."
- The `erc-default-server' variable"
(or server
erc-server
(getenv "IRCSERVER")
erc-default-server))
(defun erc-compute-nick (&optional nick)
"Return user's NICK.
"Return user's IRC nick.
Tries a number of increasingly more default methods until a non-nil value is
found:
This tries a number of increasingly more default methods until a
non-nil value is found.
- NICK
- `erc-nick'
- NICK (the argument passed to this function)
- The `erc-nick' option
- The value of the IRCNICK environment variable
- via the function `user-login-name'."
- The result from the `user-login-name' function"
(or nick
(if (consp erc-nick) (car erc-nick) erc-nick)
(getenv "IRCNICK")
@ -5413,15 +5439,15 @@ found:
(defun erc-compute-full-name (&optional full-name)
"Return user's FULL-NAME.
"Return user's full name.
Tries a number of increasingly more default methods until a non-nil value is
found:
This tries a number of increasingly more default methods until a
non-nil value is found.
- FULL-NAME
- `erc-user-full-name'
- FULL-NAME (the argument passed to this function)
- The `erc-user-full-name' option
- The value of the IRCNAME environment variable
- via the function `user-full-name'."
- The result from the `user-full-name' function"
(or full-name
erc-user-full-name
(getenv "IRCNAME")
@ -5431,12 +5457,13 @@ found:
(defun erc-compute-port (&optional port)
"Return a port for an IRC server.
Tries a number of increasingly more default methods until a non-nil
value is found:
This tries a number of increasingly more default methods until a
non-nil value is found.
- PORT
- \"ircd\"."
(or port erc-port "ircd"))
- PORT (the argument passed to this function)
- The `erc-port' option
- The `erc-default-port' variable"
(or port erc-port erc-default-port))
;; time routines
@ -5818,26 +5845,6 @@ If optional argument HERE is non-nil, insert version number at point."
(message "%s" version-string)
version-string))))
(defun erc-version-modules (&optional here)
"Show the version numbers of all loaded ERC modules in the minibuffer.
If optional argument HERE is non-nil, insert version number at point."
(interactive "P")
(let ((version-string
(mapconcat 'identity
(let (versions (case-fold-search nil))
(dolist (var (apropos-internal "^erc-.*version$"))
(when (and (boundp var)
(stringp (symbol-value var)))
(setq versions (cons (format "%S: %s"
var (symbol-value var))
versions))))
versions) ", ")))
(if here
(insert version-string)
(if (interactive-p)
(message "%s" version-string)
version-string))))
(defun erc-modes (&optional here)
"Show the active ERC modes in the minibuffer.
If optional argument HERE is non-nil, insert version number at point."
@ -5858,32 +5865,6 @@ If optional argument HERE is non-nil, insert version number at point."
(message "%s" string)
string))))
(defun erc-latest-version ()
"Retrieve the latest erc.el version from CVS."
(interactive)
(if (ignore-errors (require 'url))
(progn
(switch-to-buffer (get-buffer-create "*erc.el latest version*"))
(delete-region (point-min) (point-max))
(kill-all-local-variables)
(url-insert-file-contents (concat
"http://cvs.sourceforge.net/viewcvs.py/"
"*checkout*/erc/erc/erc.el?content-type"
"=text%2Fplain&rev=HEAD"))
(emacs-lisp-mode)
(current-buffer))
(error "URL needs to be installed")))
(defun erc-ediff-latest-version ()
"Ediff your installed erc.el with the latest CVS version.
See also `erc-latest-version'."
(interactive)
(let ((current (locate-library "erc.el")))
(if current
(ediff-buffers (find-file current)
(erc-latest-version))
(error "You do not appear to have the uncompiled erc.el file"))))
(defun erc-trim-string (s)
"Trim leading and trailing spaces off S."
(cond
@ -6184,6 +6165,29 @@ This function should be on `erc-kill-channel-hook'."
(and vect
(erc-response.command vect)))
;; Teach url.el how to open irc:// URLs with ERC.
;; To activate, customize `url-irc-function' to `url-irc-erc'.
;;;###autoload
(defun erc-handle-irc-url (host port channel user password)
"Use ERC to IRC on HOST:PORT in CHANNEL as USER with PASSWORD.
If ERC is already connected to HOST:PORT, simply /join CHANNEL.
Otherwise, connect to HOST:PORT as USER and /join CHANNEL."
(let ((server-buffer
(car (erc-buffer-filter
(lambda ()
(and (string-equal erc-session-server host)
(= erc-session-port port)
erc-server-connected
(eq (erc-server-buffer) (current-buffer))))))))
(with-current-buffer (or server-buffer (current-buffer))
(if (and server-buffer channel)
(erc-cmd-JOIN channel)
(erc host port (or user (erc-compute-nick)) (erc-compute-full-name)
(not server-buffer) password nil channel
(when server-buffer
(get-buffer-process server-buffer)))))))
(provide 'erc)
;;; Deprecated. We might eventually stop requiring the goodies automatically.

View File

@ -44,7 +44,7 @@
(defcustom delete-auto-save-files t
"*Non-nil means delete auto-save file when a buffer is saved or killed.
"Non-nil means delete auto-save file when a buffer is saved or killed.
Note that the auto-save file will not be deleted if the buffer is killed
when it has unsaved changes."
@ -53,7 +53,7 @@ when it has unsaved changes."
(defcustom directory-abbrev-alist
nil
"*Alist of abbreviations for file directories.
"Alist of abbreviations for file directories.
A list of elements of the form (FROM . TO), each meaning to replace
FROM with TO when it appears in a directory name. This replacement is
done when setting up the default directory of a newly visited file.
@ -74,7 +74,7 @@ the name it is linked to."
;; Turn off backup files on VMS since it has version numbers.
(defcustom make-backup-files (not (eq system-type 'vax-vms))
"*Non-nil means make a backup of a file the first time it is saved.
"Non-nil means make a backup of a file the first time it is saved.
This can be done by renaming the file or by copying.
Renaming means that Emacs renames the existing file so that it is a
@ -103,20 +103,20 @@ But it is local only if you make it local.")
(put 'backup-inhibited 'permanent-local t)
(defcustom backup-by-copying nil
"*Non-nil means always use copying to create backup files.
"Non-nil means always use copying to create backup files.
See documentation of variable `make-backup-files'."
:type 'boolean
:group 'backup)
(defcustom backup-by-copying-when-linked nil
"*Non-nil means use copying to create backups for files with multiple names.
"Non-nil means use copying to create backups for files with multiple names.
This causes the alternate names to refer to the latest version as edited.
This variable is relevant only if `backup-by-copying' is nil."
:type 'boolean
:group 'backup)
(defcustom backup-by-copying-when-mismatch nil
"*Non-nil means create backups by copying if this preserves owner or group.
"Non-nil means create backups by copying if this preserves owner or group.
Renaming may still be used (subject to control of other variables)
when it would not result in changing the owner or group of the file;
that is, for files which are owned by you and whose group matches
@ -126,7 +126,7 @@ This variable is relevant only if `backup-by-copying' is nil."
:group 'backup)
(defcustom backup-by-copying-when-privileged-mismatch 200
"*Non-nil means create backups by copying to preserve a privileged owner.
"Non-nil means create backups by copying to preserve a privileged owner.
Renaming may still be used (subject to control of other variables)
when it would not result in changing the owner of the file or if the owner
has a user id greater than the value of this variable. This is useful
@ -142,7 +142,7 @@ This variable is relevant only if `backup-by-copying' and
Called with an absolute file name as argument, it returns t to enable backup.")
(defcustom buffer-offer-save nil
"*Non-nil in a buffer means always offer to save buffer on exit.
"Non-nil in a buffer means always offer to save buffer on exit.
Do so even if the buffer is not visiting a file.
Automatically local in all buffers."
:type 'boolean
@ -150,7 +150,7 @@ Automatically local in all buffers."
(make-variable-buffer-local 'buffer-offer-save)
(defcustom find-file-existing-other-name t
"*Non-nil means find a file under alternative names, in existing buffers.
"Non-nil means find a file under alternative names, in existing buffers.
This means if any existing buffer is visiting the file you want
under another name, you get the existing buffer instead of a new buffer."
:type 'boolean
@ -165,7 +165,7 @@ both at the file level and at the levels of the containing directories."
(put 'find-file-visit-truename 'safe-local-variable 'boolean)
(defcustom revert-without-query nil
"*Specify which files should be reverted without query.
"Specify which files should be reverted without query.
The value is a list of regular expressions.
If the file name matches one of these regular expressions,
then `revert-buffer' reverts the file without querying
@ -226,7 +226,7 @@ have fast storage with limited space, such as a RAM disk."
"Regexp recognizing file names which aren't allowed by the filesystem.")
(defcustom file-precious-flag nil
"*Non-nil means protect against I/O errors while saving files.
"Non-nil means protect against I/O errors while saving files.
Some modes set this non-nil in particular buffers.
This feature works by writing the new contents into a temporary file
@ -241,7 +241,7 @@ breaks any hard links between it and other files."
:group 'backup)
(defcustom version-control nil
"*Control use of version numbers for backup files.
"Control use of version numbers for backup files.
t means make numeric backup versions unconditionally.
nil means make them for files that have some already.
`never' means do not make them."
@ -254,13 +254,13 @@ nil means make them for files that have some already.
'(lambda (x) (or (booleanp x) (equal x 'never))))
(defcustom dired-kept-versions 2
"*When cleaning directory, number of versions to keep."
"When cleaning directory, number of versions to keep."
:type 'integer
:group 'backup
:group 'dired)
(defcustom delete-old-versions nil
"*If t, delete excess backup versions silently.
"If t, delete excess backup versions silently.
If nil, ask confirmation. Any other value prevents any trimming."
:type '(choice (const :tag "Delete" t)
(const :tag "Ask" nil)
@ -268,20 +268,20 @@ If nil, ask confirmation. Any other value prevents any trimming."
:group 'backup)
(defcustom kept-old-versions 2
"*Number of oldest versions to keep when a new numbered backup is made."
"Number of oldest versions to keep when a new numbered backup is made."
:type 'integer
:group 'backup)
(put 'kept-old-versions 'safe-local-variable 'integerp)
(defcustom kept-new-versions 2
"*Number of newest versions to keep when a new numbered backup is made.
"Number of newest versions to keep when a new numbered backup is made.
Includes the new backup. Must be > 0"
:type 'integer
:group 'backup)
(put 'kept-new-versions 'safe-local-variable 'integerp)
(defcustom require-final-newline nil
"*Whether to add a newline automatically at the end of the file.
"Whether to add a newline automatically at the end of the file.
A value of t means do this only when the file is about to be saved.
A value of `visit' means do this right after the file is visited.
@ -299,7 +299,7 @@ from `mode-require-final-newline'."
:group 'editing-basics)
(defcustom mode-require-final-newline t
"*Whether to add a newline at end of file, in certain major modes.
"Whether to add a newline at end of file, in certain major modes.
Those modes set `require-final-newline' to this value when you enable them.
They do so because they are often used for files that are supposed
to end in newlines, and the question is how to arrange that.
@ -322,12 +322,12 @@ a final newline, whenever you save a file that really needs one."
:version "22.1")
(defcustom auto-save-default t
"*Non-nil says by default do auto-saving of every file-visiting buffer."
"Non-nil says by default do auto-saving of every file-visiting buffer."
:type 'boolean
:group 'auto-save)
(defcustom auto-save-visited-file-name nil
"*Non-nil says auto-save a buffer in the file it is visiting, when practical.
"Non-nil says auto-save a buffer in the file it is visiting, when practical.
Normally auto-save files are written under other names."
:type 'boolean
:group 'auto-save)
@ -337,7 +337,7 @@ Normally auto-save files are written under other names."
;; Don't put "\\2" inside expand-file-name, since it will be
;; transformed to "/2" on DOS/Windows.
,(concat temporary-file-directory "\\2") t))
"*Transforms to apply to buffer file name before making auto-save file name.
"Transforms to apply to buffer file name before making auto-save file name.
Each transform is a list (REGEXP REPLACEMENT UNIQUIFY):
REGEXP is a regular expression to match against the file name.
If it matches, `replace-match' is used to replace the
@ -364,19 +364,19 @@ ignored."
:version "21.1")
(defcustom save-abbrevs t
"*Non-nil means save word abbrevs too when files are saved.
"Non-nil means save word abbrevs too when files are saved.
If `silently', don't ask the user before saving."
:type '(choice (const t) (const nil) (const silently))
:group 'abbrev)
(defcustom find-file-run-dired t
"*Non-nil means allow `find-file' to visit directories.
"Non-nil means allow `find-file' to visit directories.
To visit the directory, `find-file' runs `find-directory-functions'."
:type 'boolean
:group 'find-file)
(defcustom find-directory-functions '(cvs-dired-noselect dired-noselect)
"*List of functions to try in sequence to visit a directory.
"List of functions to try in sequence to visit a directory.
Each function is called with the directory name as the sole argument
and should return either a buffer or nil."
:type '(hook :options (cvs-dired-noselect dired-noselect))
@ -448,7 +448,7 @@ use `before-save-hook'.")
'write-contents-functions "22.1")
(defcustom enable-local-variables t
"*Control use of local variables in files you visit.
"Control use of local variables in files you visit.
The value can be t, nil, :safe, or something else.
A value of t means file local variables specifications are obeyed
@ -506,7 +506,7 @@ nil means ignore them; anything else means query."
(defalias 'file-locked-p 'ignore))
(defcustom view-read-only nil
"*Non-nil means buffers visiting files read-only do so in view mode.
"Non-nil means buffers visiting files read-only do so in view mode.
In fact, this means that all read-only buffers normally have
View mode enabled, including buffers that are read-only because
you visit a file you cannot alter, and buffers you make read-only
@ -691,7 +691,7 @@ PATH-AND-SUFFIXES is a pair of lists, (DIRECTORIES . SUFFIXES)."
(when (file-directory-p dir)
(dolist (file (file-name-all-completions
(file-name-nondirectory string) dir))
(push (if string-dir (concat string-dir file) file) names)
(add-to-list 'names (if string-dir (concat string-dir file) file))
(when (string-match suffix file)
(setq file (substring file 0 (match-beginning 0)))
(push (if string-dir (concat string-dir file) file) names)))))
@ -1192,7 +1192,11 @@ If the current buffer now contains an empty file that you just visited
\(presumably by mistake), use this command to visit the file you really want.
Interactively, or if WILDCARDS is non-nil in a call from Lisp,
expand wildcards (if any) and replace the file with multiple files."
expand wildcards (if any) and replace the file with multiple files.
If the current buffer is an indirect buffer, or the base buffer
for one or more indirect buffers, the other buffer(s) are not
killed."
(interactive
(let ((file buffer-file-name)
(file-name nil)
@ -1320,7 +1324,7 @@ removes automounter prefixes (see the variable `automount-dir-prefix')."
filename)))
(defcustom find-file-not-true-dirname-list nil
"*List of logical names for which visiting shouldn't save the true dirname.
"List of logical names for which visiting shouldn't save the true dirname.
On VMS, when you visit a file using a logical name that searches a path,
you may or may not want the visited file name to record the specific
directory where the file was found. If you *do not* want that, add the logical
@ -1369,7 +1373,7 @@ If there is no such live buffer, return nil."
found))))
(defcustom find-file-wildcards t
"*Non-nil means file-visiting commands should handle wildcards.
"Non-nil means file-visiting commands should handle wildcards.
For example, if you specify `*.c', that would visit all the files
whose names match the pattern."
:group 'files
@ -1377,7 +1381,7 @@ whose names match the pattern."
:type 'boolean)
(defcustom find-file-suppress-same-file-warnings nil
"*Non-nil means suppress warning messages for symlinked files.
"Non-nil means suppress warning messages for symlinked files.
When nil, Emacs prints a warning when visiting a file that is already
visited, but with a different name. Setting this option to t
suppresses this warning."
@ -2299,7 +2303,7 @@ symbol and VAL is a value that is considered safe."
:type 'alist)
(defcustom safe-local-eval-forms nil
"*Expressions that are considered safe in an `eval:' local variable.
"Expressions that are considered safe in an `eval:' local variable.
Add expressions to this list if you want Emacs to evaluate them, when
they appear in an `eval' local variable specification, without first
asking you for confirmation."
@ -2760,7 +2764,7 @@ It is dangerous if either of these conditions are met:
(defcustom change-major-mode-with-file-name t
"*Non-nil means \\[write-file] should set the major mode from the file name.
"Non-nil means \\[write-file] should set the major mode from the file name.
However, the mode will not be changed if
\(1) a local variables list or the `-*-' line specifies a major mode, or
\(2) the current major mode is a \"special\" mode,
@ -4495,7 +4499,7 @@ by `sh' are supported."
(defcustom list-directory-brief-switches
(if (eq system-type 'vax-vms) "" "-CF")
"*Switches for `list-directory' to pass to `ls' for brief listing."
"Switches for `list-directory' to pass to `ls' for brief listing."
:type 'string
:group 'dired)
@ -4503,7 +4507,7 @@ by `sh' are supported."
(if (eq system-type 'vax-vms)
"/PROTECTION/SIZE/DATE/OWNER/WIDTH=(OWNER:10)"
"-l")
"*Switches for `list-directory' to pass to `ls' for verbose listing."
"Switches for `list-directory' to pass to `ls' for verbose listing."
:type 'string
:group 'dired)
@ -4634,7 +4638,7 @@ PATTERN that already quotes some of the special characters."
"Absolute or relative name of the `ls' program used by `insert-directory'.")
(defcustom directory-free-space-program "df"
"*Program to get the amount of free space on a file system.
"Program to get the amount of free space on a file system.
We assume the output has the format of `df'.
The value of this variable must be just a command name or file name;
if you want to specify options, use `directory-free-space-args'.
@ -4648,7 +4652,7 @@ preference to the program given by this variable."
(defcustom directory-free-space-args
(if (eq system-type 'darwin) "-k" "-Pk")
"*Options to use when running `directory-free-space-program'."
"Options to use when running `directory-free-space-program'."
:type 'string
:group 'dired)

View File

@ -189,12 +189,16 @@ To override this, give an argument to `ff-find-other-file'."
;; C/C++ include, for NeXTSTEP too
("^\#\\s *\\(include\\|import\\)\\s +[<\"]\\(.*\\)[>\"]" .
(lambda ()
(setq fname (buffer-substring (match-beginning 2) (match-end 2)))))
(buffer-substring (match-beginning 2) (match-end 2))))
)
"*A list of regular expressions for `ff-find-file'.
Specifies how to recognize special constructs such as include files
etc. and an associated method for extracting the filename from that
construct.")
;; We include `ff-treat-as-special' documentation here so that autoload
;; can make it available to be read prior to loading this file.
"*List of special constructs for `ff-treat-as-special' to recognize.
Each element, tried in order, has the form (REGEXP . EXTRACT).
If REGEXP matches the current line (from the beginning of the line),
`ff-treat-as-special' calls function EXTRACT with no args.
If EXTRACT returns nil, keep trying. Otherwise, return the
filename that EXTRACT returned.")
(defvaralias 'ff-related-file-alist 'ff-other-file-alist)
(defcustom ff-other-file-alist 'cc-other-file-alist
@ -405,9 +409,7 @@ If optional IN-OTHER-WINDOW is non-nil, find the file in another window."
(ff-list-replace-env-vars (symbol-value ff-search-directories))
(ff-list-replace-env-vars ff-search-directories)))
(save-excursion
(beginning-of-line 1)
(setq fname (ff-treat-as-special)))
(setq fname (ff-treat-as-special))
(cond
((and (not ff-ignore-include) fname)
@ -540,9 +542,7 @@ the `ff-ignore-include' variable."
(ff-list-replace-env-vars (symbol-value ff-search-directories))
(ff-list-replace-env-vars ff-search-directories)))
(save-excursion
(beginning-of-line 1)
(setq fname (ff-treat-as-special)))
(setq fname (ff-treat-as-special))
(cond
((and (not ff-ignore-include) fname)
@ -771,20 +771,22 @@ The value used comes from `ff-case-fold-search'."
(defun ff-treat-as-special ()
"Return the file to look for if the construct was special, else nil.
The construct is defined in the variable `ff-special-constructs'."
(let* (fname
(list ff-special-constructs)
(elem (car list))
(regexp (car elem))
(match (cdr elem)))
(while (and list (not fname))
(if (and (looking-at regexp) match)
(setq fname (funcall match)))
(setq list (cdr list))
(setq elem (car list))
(setq regexp (car elem))
(setq match (cdr elem)))
fname))
See variable `ff-special-constructs'."
(save-excursion
(beginning-of-line 1)
(let* (fname
(list ff-special-constructs)
(elem (car list))
(regexp (car elem))
(match (cdr elem)))
(while (and list (not fname))
(if (and (looking-at regexp) match)
(setq fname (funcall match)))
(setq list (cdr list))
(setq elem (car list))
(setq regexp (car elem))
(setq match (cdr elem)))
fname)))
(defun ff-basename (string)
"Return the basename of pathname STRING."

View File

@ -1,3 +1,11 @@
2006-07-16 NAKAJI Hiroyuki <nakaji@heimat.jp> (tiny change)
* mm-util.el (mm-charset-synonym-alist): Map windows-31j to cp932.
2006-07-14 Andreas Seltenreich <uwi7@rz.uni-karlsruhe.de>
* gnus-start.el (gnus-subscribe-options-newsgroup-method): Doc fix.
2006-06-26 Reiner Steib <Reiner.Steib@gmx.de>
* gnus-diary.el (gnus-user-format-function-d)
@ -175,8 +183,8 @@
* mml.el (mml-mode, mml-dnd-protocol-alist)
(mml-dnd-attach-options, mml-dnd-attach-file)
(mml-attach-file, mml-attach-buffer, mml-attach-external): Sync
DND support and use of message-in-body-p from the trunk.
(mml-attach-file, mml-attach-buffer, mml-attach-external):
Sync DND support and use of message-in-body-p from the trunk.
2006-04-26 Katsumi Yamaoka <yamaoka@jpl.org>
@ -192,8 +200,7 @@
2006-04-25 Andreas Seltenreich <uwi7@rz.uni-karlsruhe.de>
* nnweb.el (nnweb-google-wash-article): Sync up to new Google
HTML.
* nnweb.el (nnweb-google-wash-article): Sync up to new Google HTML.
2006-04-25 Katsumi Yamaoka <yamaoka@jpl.org>
@ -305,16 +312,14 @@
* rfc2047.el (rfc2047-decode-encoded-words): Don't message about
unknown charset.
* message.el (message-header-synonyms): Add Original-To to the
default.
* message.el (message-header-synonyms): Add Original-To to the default.
* gnus-sum.el (gnus-get-newsgroup-headers-xover): group is an
* gnus-sum.el (gnus-get-newsgroup-headers-xover): Group is an
optional parameter.
2006-04-07 Reiner Steib <Reiner.Steib@gmx.de>
* pgg-gpg.el: Revert to revision 7.15 to allow the use of
gpg-agent.
* pgg-gpg.el: Revert to revision 7.15 to allow the use of gpg-agent.
2006-04-06 Reiner Steib <Reiner.Steib@gmx.de>
@ -322,14 +327,13 @@
2006-04-04 Andreas Seltenreich <uwi7@rz.uni-karlsruhe.de>
* nnweb.el (nnweb-google-create-mapping): Update regexp. Some
whitespace was matched into the url, which broke browsing hits
* nnweb.el (nnweb-google-create-mapping): Update regexp.
Some whitespace was matched into the url, which broke browsing hits
> 100 when mm-url-use-external was nil.
2006-03-31 Reiner Steib <Reiner.Steib@gmx.de>
* gnus-group.el (gnus-group-update-tool-bar): Add :initialize and
:set.
* gnus-group.el (gnus-group-update-tool-bar): Add :initialize and :set.
2006-03-23 Katsumi Yamaoka <yamaoka@jpl.org>
@ -400,8 +404,8 @@
2006-03-15 Andreas Seltenreich <uwi7@rz.uni-karlsruhe.de>
* gnus-art.el (gnus-article-only-boring-p): Bind
inhibit-point-motion-hooks to avoid infinite loop when entering
* gnus-art.el (gnus-article-only-boring-p):
Bind inhibit-point-motion-hooks to avoid infinite loop when entering
intangible text. Reported by Ralf Wachinger
<rwnewsmampfer@geekmail.de>.
@ -472,8 +476,7 @@
2006-03-03 Katsumi Yamaoka <yamaoka@jpl.org>
* mm-decode.el (mm-get-part): Don't use
mm-with-unibyte-current-buffer.
* mm-decode.el (mm-get-part): Don't use mm-with-unibyte-current-buffer.
* gnus-sum.el (gnus-summary-set-display-table): Don't nix out
characters 160 through 255 in Emacs 23.
@ -493,8 +496,8 @@
2006-02-28 Reiner Steib <Reiner.Steib@gmx.de>
* nnweb.el (nnweb-type-definition, nnweb-gmane-search): Use new
nov.php.
* nnweb.el (nnweb-type-definition, nnweb-gmane-search):
Use new nov.php.
2006-02-28 Andreas Seltenreich <uwi7@stud.uni-karlsruhe.de>
@ -686,8 +689,8 @@
2006-02-06 Reiner Steib <Reiner.Steib@gmx.de>
* spam-report.el (spam-report-gmane-use-article-number): Improve
doc string.
* spam-report.el (spam-report-gmane-use-article-number):
Improve doc string.
(spam-report-gmane-internal): Check if a suitable header was found
in the article.
@ -726,12 +729,10 @@
* nnweb.el (nnweb-group-alist): Use defvar instead of defvoo,
there's only one active file for all servers.
(nnweb-request-scan): Make sure nnweb-articles is initialized on
solid groups. Gnus might have used a FAST request to select the
group.
solid groups. Gnus might have used a FAST request to select the group.
(nnweb-request-group, nnweb-google-parse-1): Don't keep nnweb-type
and nnweb-search redundantly in the active file.
(nnweb-request-list): Don't list bogus groups. There can only be
one.
(nnweb-request-list): Don't list bogus groups. There can only be one.
(nnweb-request-create-group): Don't use ARGS.
(nnweb-possibly-change-server, nnweb-request-group): Remove some
initialisations. Let nnoo do the work.
@ -742,14 +743,13 @@
(message-setup-1): Call `message-use-alternative-email-as-from'
after `message-setup-hook' to give it precedence over posting
styles, etc.
(message-use-alternative-email-as-from): Add docstring. Remove
the original From header if present.
(message-use-alternative-email-as-from): Add docstring.
Remove the original From header if present.
2006-01-31 Katsumi Yamaoka <yamaoka@jpl.org>
* mm-uu.el (mm-uu-emacs-sources-extract): Say the part has been
decoded.
(mm-uu-diff-extract): Ditto.
* mm-uu.el (mm-uu-emacs-sources-extract, mm-uu-diff-extract):
Say the part has been decoded.
2006-01-31 Kevin Ryde <user42@zip.com.au>

View File

@ -313,8 +313,8 @@ If, for instance, you want to subscribe to all newsgroups in the
options -n no.all alt.all
Gnus will the subscribe all new newsgroups in these hierarchies with
the subscription method in this variable."
Gnus will then subscribe all new newsgroups in these hierarchies
with the subscription method in this variable."
:group 'gnus-group-new
:type '(radio (function-item gnus-subscribe-randomly)
(function-item gnus-subscribe-alphabetically)

View File

@ -204,19 +204,19 @@ the alias. Else windows-NUMBER is used."
`(
;; Not in XEmacs, but it's not a proper MIME charset anyhow.
,@(unless (mm-coding-system-p 'x-ctext)
'((x-ctext . ctext)))
'((x-ctext . ctext)))
;; ISO-8859-15 is very similar to ISO-8859-1. But it's _different_!
,@(unless (mm-coding-system-p 'iso-8859-15)
'((iso-8859-15 . iso-8859-1)))
'((iso-8859-15 . iso-8859-1)))
;; BIG-5HKSCS is similar to, but different than, BIG-5.
,@(unless (mm-coding-system-p 'big5-hkscs)
'((big5-hkscs . big5)))
;; Windows-1252 is actually a superset of Latin-1. See also
;; `gnus-article-dumbquotes-map'.
,@(unless (mm-coding-system-p 'windows-1252)
(if (mm-coding-system-p 'cp1252)
'((windows-1252 . cp1252))
'((windows-1252 . iso-8859-1))))
(if (mm-coding-system-p 'cp1252)
'((windows-1252 . cp1252))
'((windows-1252 . iso-8859-1))))
;; Windows-1250 is a variant of Latin-2 heavily used by Microsoft
;; Outlook users in Czech republic. Use this to allow reading of their
;; e-mails. cp1250 should be defined by M-x codepage-setup.
@ -232,6 +232,10 @@ the alias. Else windows-NUMBER is used."
(if (mm-coding-system-p 'cp949)
'((ks_c_5601-1987 . cp949))
'((ks_c_5601-1987 . euc-kr))))
;; Windows-31J is Windows Codepage 932.
,@(if (and (not (mm-coding-system-p 'windows-31j))
(mm-coding-system-p 'cp932))
'((windows-31j . cp932)))
)
"A mapping from unknown or invalid charset names to the real charset names.")

View File

@ -534,7 +534,8 @@ it is displayed along with the global value."
(error nil))))
(when location
(with-current-buffer (car location)
(goto-char (cdr location))
(when (cdr location)
(goto-char (cdr location)))
(when (re-search-backward
"^;;; Generated autoloads from \\(.*\\)" nil t)
(setq file-name (match-string 1)))))))

View File

@ -157,7 +157,8 @@ The format is (FUNCTION ARGS...).")
(let ((location
(find-function-search-for-symbol fun nil file)))
(pop-to-buffer (car location))
(goto-char (cdr location))))
(when (cdr location)
(goto-char (cdr location)))))
'help-echo (purecopy "mouse-2, RET: find function's definition"))
(define-button-type 'help-variable-def
@ -167,8 +168,9 @@ The format is (FUNCTION ARGS...).")
(setq file (help-C-file-name var 'var)))
(let ((location (find-variable-noselect var file)))
(pop-to-buffer (car location))
(goto-char (cdr location))))
'help-echo (purecopy"mouse-2, RET: find variable's definition"))
(when (cdr location)
(goto-char (cdr location)))))
'help-echo (purecopy "mouse-2, RET: find variable's definition"))
(define-button-type 'help-face-def
:supertype 'help-xref
@ -179,7 +181,8 @@ The format is (FUNCTION ARGS...).")
(let ((location
(find-function-search-for-symbol fun 'defface file)))
(pop-to-buffer (car location))
(goto-char (cdr location))))
(when (cdr location)
(goto-char (cdr location)))))
'help-echo (purecopy "mouse-2, RET: find face's definition"))

View File

@ -351,8 +351,9 @@ You can use \\[hexl-find-file] to visit a file in Hexl mode.
;;;###autoload
(defun hexl-find-file (filename)
"Edit file FILENAME in `hexl-mode'.
Switch to a buffer visiting file FILENAME, creating one in none exists."
"Edit file FILENAME as a binary file in hex dump format.
Switch to a buffer visiting file FILENAME, creating one if none exists,
and edit the file in `hexl-mode'."
(interactive
(list
(let ((completion-ignored-extensions nil))

View File

@ -2895,7 +2895,8 @@ With \\[universal-argument], pop all element."
"Insert file name of current buffer.
If repeated, insert text from buffer instead."
(interactive "P")
(let* ((bfname (buffer-file-name ido-entry-buffer))
(let* ((bfname (or (buffer-file-name ido-entry-buffer)
(buffer-name ido-entry-buffer)))
(name (and bfname (file-name-nondirectory bfname))))
(when name
(setq ido-text-init

View File

@ -118,6 +118,9 @@ information on these modes."
(if (get-text-property (point-min) 'display)
(image-toggle-display)))
(defvar archive-superior-buffer)
(defvar tar-superior-buffer)
(defun image-toggle-display ()
"Start or stop displaying an image file as the actual image.
This command toggles between showing the text of the image file

View File

@ -910,9 +910,8 @@ select from ALIST.
With no index alist ALIST, it calls `imenu--make-index-alist' to
create the index alist.
If `imenu-use-popup-menu' is non-nil, then the
completion buffer is always used, no matter if the mouse was used or
not.
If `imenu-use-popup-menu' is nil, then the completion buffer
is always used, no matter if the mouse was used or not.
The returned value is of the form (INDEX-NAME . INDEX-POSITION)."
(let (index-alist

View File

@ -3077,7 +3077,8 @@ If FORK is a string, it is the name to use for the new buffer."
;; Common subroutine.
(defun Info-try-follow-nearest-node (&optional fork)
"Follow a node reference near point. Return non-nil if successful."
"Follow a node reference near point. Return non-nil if successful.
If FORK is non-nil, it i spassed to `Info-goto-node'."
(let (node)
(cond
((Info-get-token (point) "[hf]t?tp://" "[hf]t?tp://\\([^ \t\n\"`({<>})']+\\)")

View File

@ -1,6 +1,6 @@
;;; mule.el --- basic commands for multilingual environment
;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
;; Free Software Foundation, Inc.
;; Copyright (C) 1995, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
;; National Institute of Advanced Industrial Science and Technology (AIST)
@ -2294,5 +2294,5 @@ This function is intended to be added to `auto-coding-functions'."
;;;
(provide 'mule)
;;; arch-tag: 9aebaa6e-0e8a-40a9-b857-cb5d04a39e7c
;; arch-tag: 9aebaa6e-0e8a-40a9-b857-cb5d04a39e7c
;;; mule.el ends here

View File

@ -1353,7 +1353,8 @@ might return the position of the end of the line."
"Pull rest of line from buffer into search string."
(interactive)
(isearch-yank-internal
(lambda () (line-end-position (if (eolp) 2 1)))))
(lambda () (let ((inhibit-field-text-motion t))
(line-end-position (if (eolp) 2 1))))))
(defun isearch-search-and-update ()
;; Do the search and update the display.

File diff suppressed because it is too large Load Diff

View File

@ -396,16 +396,11 @@ that has changed."
"Perform line wrapping on the parts of the buffer that have changed.
This is called by `post-command-hook' after each command."
(when longlines-wrap-beg
(cond ((or (eq this-command 'yank)
(eq this-command 'yank-pop))
(longlines-decode-region (point) (mark t))
(if longlines-showing
(longlines-show-region (point) (mark t))))
((and (eq this-command 'newline) longlines-showing)
(save-excursion
(if (search-backward "\n" nil t)
(longlines-show-region
(match-beginning 0) (match-end 0))))))
(if (or (eq this-command 'yank)
(eq this-command 'yank-pop))
(longlines-decode-region (point) (mark t)))
(if longlines-showing
(longlines-show-region longlines-wrap-beg longlines-wrap-end))
(unless (or (eq this-command 'fill-paragraph)
(eq this-command 'fill-region))
(longlines-wrap-region longlines-wrap-beg longlines-wrap-end))

View File

@ -239,7 +239,10 @@ The CMD used for `cvs-mode-commit' is \"message\". For that special
This expression will be evaluated in an environment where DIR is set to
the directory name of the cvs buffer.")
(defvar cvs-temp-buffer-name '(expand-file-name " *cvs-tmp*" dir)
(defvar cvs-temp-buffer-name
;; Was '(expand-file-name " *cvs-tmp*" dir), but that causes them to
;; become non-hidden if uniquification is done `forward'.
" *cvs-tmp*"
"*Name of the cvs temporary buffer.
Output from cvs is placed here for asynchronous commands.")

View File

@ -399,9 +399,8 @@ BITS must be of length nrings. Start at START-TIME."
;; update display and pause, quitting with a pithy comment if the user
;; hits a key.
(defun hanoi-sit-for (seconds)
(sit-for seconds)
(if (input-pending-p)
(signal 'quit '("I can tell you've had enough"))))
(unless (sit-for seconds)
(signal 'quit '("I can tell you've had enough"))))
;; move ring to a given buffer position and update ring's car.
(defun hanoi-ring-to-pos (ring pos)

View File

@ -1208,60 +1208,36 @@ If you use ada-xref.el:
ff-file-created-hook 'ada-make-body)
(add-hook 'ff-pre-load-hook 'ada-which-function-are-we-in)
;; Some special constructs for find-file.el
;; We do not need to add the construction for 'with', which is in the
;; standard find-file.el
;; Some special constructs for find-file.el.
(make-local-variable 'ff-special-constructs)
;; Go to the parent package :
(add-to-list 'ff-special-constructs
(cons (eval-when-compile
(concat "^\\(private[ \t]\\)?[ \t]*package[ \t]+"
"\\(body[ \t]+\\)?"
"\\(\\(\\sw\\|[_.]\\)+\\)\\.\\(\\sw\\|_\\)+[ \t\n]+is"))
(lambda ()
(if (fboundp 'ff-get-file)
(if (boundp 'fname)
(set 'fname (ff-get-file
ada-search-directories-internal
(ada-make-filename-from-adaname
(match-string 3))
ada-spec-suffixes)))))))
;; Another special construct for find-file.el : when in a separate clause,
;; go to the correct package.
(add-to-list 'ff-special-constructs
(cons "^separate[ \t\n]*(\\(\\(\\sw\\|[_.]\\)+\\))"
(lambda ()
(if (fboundp 'ff-get-file)
(if (boundp 'fname)
(setq fname (ff-get-file
ada-search-directories-internal
(ada-make-filename-from-adaname
(match-string 1))
ada-spec-suffixes)))))))
;; Another special construct, that redefines the one in find-file.el. The
;; old one can handle only one possible type of extension for Ada files
;; remove from the list the standard "with..." that is put by find-file.el,
;; since it uses the old ada-spec-suffix variable
;; This one needs to replace the standard one defined in find-file.el (with
;; Emacs <= 20.4), since that one uses the old variable ada-spec-suffix
(let ((old-construct
(assoc "^with[ \t]+\\([a-zA-Z0-9_\\.]+\\)" ff-special-constructs))
(new-cdr
(lambda ()
(if (fboundp 'ff-get-file)
(if (boundp 'fname)
(set 'fname (ff-get-file
ada-search-directories-internal
(ada-make-filename-from-adaname
(match-string 1))
ada-spec-suffixes)))))))
(if old-construct
(setcdr old-construct new-cdr)
(add-to-list 'ff-special-constructs
(cons "^with[ \t]+\\([a-zA-Z0-9_\\.]+\\)"
new-cdr))))
(mapc (lambda (pair)
(add-to-list 'ff-special-constructs pair))
`(
;; Go to the parent package.
(,(eval-when-compile
(concat "^\\(private[ \t]\\)?[ \t]*package[ \t]+"
"\\(body[ \t]+\\)?"
"\\(\\(\\sw\\|[_.]\\)+\\)\\.\\(\\sw\\|_\\)+[ \t\n]+is"))
. ,(lambda ()
(ff-get-file
ada-search-directories-internal
(ada-make-filename-from-adaname (match-string 3))
ada-spec-suffixes)))
;; A "separate" clause.
("^separate[ \t\n]*(\\(\\(\\sw\\|[_.]\\)+\\))"
. ,(lambda ()
(ff-get-file
ada-search-directories-internal
(ada-make-filename-from-adaname (match-string 1))
ada-spec-suffixes)))
;; A "with" clause.
("^with[ \t]+\\([a-zA-Z0-9_\\.]+\\)"
. ,(lambda ()
(ff-get-file
ada-search-directories-internal
(ada-make-filename-from-adaname (match-string 1))
ada-spec-suffixes)))
))
;; Support for outline-minor-mode
(set (make-local-variable 'outline-regexp)

View File

@ -32,7 +32,7 @@
;; 1. The AWK Mode syntax table.
;; 2. Regular expressions for analysing AWK code.
;; 3. Indentation calculation stuff ("c-awk-NL-prop text-property").
;; 4. Syntax-table property/font-locking stuff, but not including the
;; 4. Syntax-table property/font-locking stuff, including the
;; font-lock-keywords setting.
;; 5. The AWK Mode before/after-change-functions.
;; 6. AWK Mode specific versions of commands like beginning-of-defun.
@ -107,7 +107,8 @@
(eval-and-compile
(defconst c-awk-escaped-nl "\\\\[\n\r]"))
;; Matches an escaped newline.
(defconst c-awk-escaped-nls* (concat "\\(" c-awk-escaped-nl "\\)*"))
(eval-and-compile
(defconst c-awk-escaped-nls* (concat "\\(" c-awk-escaped-nl "\\)*")))
;; Matches a possibly empty sequence of escaped newlines. Used in
;; awk-font-lock-keywords.
;; (defconst c-awk-escaped-nls*-with-space*
@ -852,6 +853,96 @@
(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)
;; Awk regexps written with help from Peter Galbraith
;; <galbraith@mixing.qc.dfo.ca>.
;; Take GNU Emacs's 'words out of the following regexp-opts. They dont work
;; in Xemacs 21.4.4. acm 2002/9/19.
(defconst awk-font-lock-keywords
(eval-when-compile
(list
;; Function names.
'("^\\s *\\(func\\(tion\\)?\\)\\>\\s *\\(\\sw+\\)?"
(1 font-lock-keyword-face) (3 font-lock-function-name-face nil t))
;;
;; Variable names.
(cons
(concat "\\<"
(regexp-opt
'("ARGC" "ARGIND" "ARGV" "BINMODE" "CONVFMT" "ENVIRON"
"ERRNO" "FIELDWIDTHS" "FILENAME" "FNR" "FS" "IGNORECASE"
"LINT" "NF" "NR" "OFMT" "OFS" "ORS" "PROCINFO" "RLENGTH"
"RS" "RSTART" "RT" "SUBSEP" "TEXTDOMAIN") t) "\\>")
'font-lock-variable-name-face)
;; Special file names. (acm, 2002/7/22)
;; The following regexp was created by first evaluating this in GNU Emacs 21.1:
;; (regexp-opt '("/dev/stdin" "/dev/stdout" "/dev/stderr" "/dev/fd/n" "/dev/pid"
;; "/dev/ppid" "/dev/pgrpid" "/dev/user") 'words)
;; , removing the "?:" from each "\\(?:" (for backward compatibility with older Emacsen)
;; , replacing the "n" in "dev/fd/n" with "[0-9]+"
;; , removing the unwanted \\< at the beginning, and finally filling out the
;; regexp so that a " must come before, and either a " or heuristic stuff after.
;; The surrounding quotes are fontified along with the filename, since, semantically,
;; they are an indivisible unit.
'("\\(\"/dev/\\(fd/[0-9]+\\|p\\(\\(\\(gr\\)?p\\)?id\\)\\|\
std\\(err\\|in\\|out\\)\\|user\\)\\)\\>\
\\(\\(\"\\)\\|\\([^\"/\n\r][^\"\n\r]*\\)?$\\)"
(1 font-lock-variable-name-face t)
(8 font-lock-variable-name-face t t))
;; Do the same (almost) with
;; (regexp-opt '("/inet/tcp/lport/rhost/rport" "/inet/udp/lport/rhost/rport"
;; "/inet/raw/lport/rhost/rport") 'words)
;; This cannot be combined with the above pattern, because the match number
;; for the (optional) closing \" would then exceed 9.
'("\\(\"/inet/\\(\\(raw\\|\\(tc\\|ud\\)p\\)/lport/rhost/rport\\)\\)\\>\
\\(\\(\"\\)\\|\\([^\"/\n\r][^\"\n\r]*\\)?$\\)"
(1 font-lock-variable-name-face t)
(6 font-lock-variable-name-face t t))
;; Keywords.
(concat "\\<"
(regexp-opt
'("BEGIN" "END" "break" "continue" "delete" "do" "else"
"exit" "for" "getline" "if" "in" "next" "nextfile"
"return" "while")
t) "\\>")
;; Builtins.
`(eval . (list
,(concat
"\\<"
(regexp-opt
'("adump" "and" "asort" "atan2" "bindtextdomain" "close"
"compl" "cos" "dcgettext" "exp" "extension" "fflush"
"gensub" "gsub" "index" "int" "length" "log" "lshift"
"match" "mktime" "or" "print" "printf" "rand" "rshift"
"sin" "split" "sprintf" "sqrt" "srand" "stopme"
"strftime" "strtonum" "sub" "substr" "system"
"systime" "tolower" "toupper" "xor") t)
"\\>")
0 c-preprocessor-face-name))
;; gawk debugging keywords. (acm, 2002/7/21)
;; (Removed, 2003/6/6. These functions are now fontified as built-ins)
;; (list (concat "\\<" (regexp-opt '("adump" "stopme") t) "\\>")
;; 0 'font-lock-warning-face)
;; User defined functions with an apparent spurious space before the
;; opening parenthesis. acm, 2002/5/30.
`(,(concat "\\(\\w\\|_\\)" c-awk-escaped-nls* "\\s "
c-awk-escaped-nls*-with-space* "(")
(0 'font-lock-warning-face))
;; Space after \ in what looks like an escaped newline. 2002/5/31
'("\\\\\\s +$" 0 font-lock-warning-face t)
;; Unbalanced string (") or regexp (/) delimiters. 2002/02/16.
'("\\s|" 0 font-lock-warning-face t nil)
;; gawk 3.1 localizable strings ( _"translate me!"). 2002/5/21
'("\\(_\\)\\s|" 1 font-lock-warning-face)
'("\\(_\\)\\s\"" 1 font-lock-string-face) ; FIXME! not for XEmacs. 2002/10/6
))
"Default expressions to highlight in AWK mode.")
;; ACM 2002/9/29. Movement functions, e.g. for C-M-a and C-M-e

View File

@ -69,14 +69,15 @@
(not (fboundp 'push)))
(cc-load "cc-fix")))
(eval-after-load "font-lock"
'(if (and (not (featurep 'cc-fix)) ; only load the file once.
; (eval-after-load "font-lock" ; 2006-07-09. font-lock is now preloaded
; '
(if (and (not (featurep 'cc-fix)) ; only load the file once.
(featurep 'xemacs) ; There is now (2005/12) code in GNU Emacs CVS
; to make the call to f-l-c-k throw an error.
(let (font-lock-keywords)
(font-lock-compile-keywords '("\\<\\>"))
font-lock-keywords)) ; did the previous call foul this up?
(load "cc-fix")))
(load "cc-fix")) ;)
;; The above takes care of the delayed loading, but this is necessary
;; to ensure correct byte compilation.
@ -1034,35 +1035,35 @@ MODE is either a mode symbol or a list of mode symbols."
;; Make edebug understand the macros.
(eval-after-load "edebug"
'(progn
(def-edebug-spec cc-eval-when-compile t)
(def-edebug-spec c-point t)
(def-edebug-spec c-set-region-active t)
(def-edebug-spec c-safe t)
(def-edebug-spec c-save-buffer-state let*)
(def-edebug-spec c-tentative-buffer-changes t)
(def-edebug-spec c-forward-syntactic-ws t)
(def-edebug-spec c-backward-syntactic-ws t)
(def-edebug-spec c-forward-sexp t)
(def-edebug-spec c-backward-sexp t)
(def-edebug-spec c-up-list-forward t)
(def-edebug-spec c-up-list-backward t)
(def-edebug-spec c-down-list-forward t)
(def-edebug-spec c-down-list-backward t)
(def-edebug-spec c-add-syntax t)
(def-edebug-spec c-add-class-syntax t)
(def-edebug-spec c-benign-error t)
(def-edebug-spec c-with-syntax-table t)
(def-edebug-spec c-skip-ws-forward t)
(def-edebug-spec c-skip-ws-backward t)
(def-edebug-spec c-major-mode-is t)
(def-edebug-spec c-put-char-property t)
(def-edebug-spec c-get-char-property t)
(def-edebug-spec c-clear-char-property t)
(def-edebug-spec c-clear-char-properties t)
(def-edebug-spec c-put-overlay t)
(def-edebug-spec c-delete-overlay t)))
;(eval-after-load "edebug" ; 2006-07-09: def-edebug-spec is now in subr.el.
; '(progn
(def-edebug-spec cc-eval-when-compile t)
(def-edebug-spec c-point t)
(def-edebug-spec c-set-region-active t)
(def-edebug-spec c-safe t)
(def-edebug-spec c-save-buffer-state let*)
(def-edebug-spec c-tentative-buffer-changes t)
(def-edebug-spec c-forward-syntactic-ws t)
(def-edebug-spec c-backward-syntactic-ws t)
(def-edebug-spec c-forward-sexp t)
(def-edebug-spec c-backward-sexp t)
(def-edebug-spec c-up-list-forward t)
(def-edebug-spec c-up-list-backward t)
(def-edebug-spec c-down-list-forward t)
(def-edebug-spec c-down-list-backward t)
(def-edebug-spec c-add-syntax t)
(def-edebug-spec c-add-class-syntax t)
(def-edebug-spec c-benign-error t)
(def-edebug-spec c-with-syntax-table t)
(def-edebug-spec c-skip-ws-forward t)
(def-edebug-spec c-skip-ws-backward t)
(def-edebug-spec c-major-mode-is t)
(def-edebug-spec c-put-char-property t)
(def-edebug-spec c-get-char-property t)
(def-edebug-spec c-clear-char-property t)
(def-edebug-spec c-clear-char-properties t)
(def-edebug-spec c-put-overlay t)
(def-edebug-spec c-delete-overlay t) ;))
;;; Functions.
@ -1738,9 +1739,10 @@ constant. A file is identified by its base name."
,@(and pre-files `(',pre-files))))))
(put 'c-lang-defconst 'lisp-indent-function 1)
(eval-after-load "edebug"
'(def-edebug-spec c-lang-defconst
(&define name [&optional stringp] [&rest sexp def-form])))
;(eval-after-load "edebug" ; 2006-07-09: def-edebug-spec is now in subr.el.
; '
(def-edebug-spec c-lang-defconst
(&define name [&optional stringp] [&rest sexp def-form]))
(defun c-define-lang-constant (name bindings &optional pre-files)
;; Used by `c-lang-defconst'.

View File

@ -348,15 +348,15 @@
highlights))))
nil)))
(eval-after-load "edebug"
'(progn
(def-edebug-spec c-fontify-types-and-refs let*)
(def-edebug-spec c-make-syntactic-matcher t)
;; If there are literal quoted or backquoted highlight specs in
;; the call to `c-make-font-lock-search-function' then let's
;; instrument the forms in them.
(def-edebug-spec c-make-font-lock-search-function
(form &rest &or ("quote" (&rest form)) ("`" (&rest form)) form)))))
; (eval-after-load "edebug" ; 2006-07-09: def-edebug-spec is now in subr.el.
; '(progn
(def-edebug-spec c-fontify-types-and-refs let*)
(def-edebug-spec c-make-syntactic-matcher t)
;; If there are literal quoted or backquoted highlight specs in
;; the call to `c-make-font-lock-search-function' then let's
;; instrument the forms in them.
(def-edebug-spec c-make-font-lock-search-function
(form &rest &or ("quote" (&rest form)) ("`" (&rest form)) form)));))
(defun c-fontify-recorded-types-and-refs ()
;; Convert the ranges recorded on `c-record-type-identifiers' and
@ -2268,101 +2268,7 @@ need for `pike-font-lock-extra-types'.")
autodoc-font-lock-doc-comments)))))
;; AWK.
;; Awk regexps written with help from Peter Galbraith
;; <galbraith@mixing.qc.dfo.ca>.
;; Take GNU Emacs's 'words out of the following regexp-opts. They dont work
;; in Xemacs 21.4.4. acm 2002/9/19.
(eval-after-load "cc-awk" ; Evaluate while loading cc-fonts
`(defconst awk-font-lock-keywords ; Evaluate after loading cc-awk
',(eval-when-compile ; Evaluate while compiling cc-fonts
(list
;; Function names.
'("^\\s *\\(func\\(tion\\)?\\)\\>\\s *\\(\\sw+\\)?"
(1 font-lock-keyword-face) (3 font-lock-function-name-face nil t))
;;
;; Variable names.
(cons
(concat "\\<"
(regexp-opt
'("ARGC" "ARGIND" "ARGV" "BINMODE" "CONVFMT" "ENVIRON"
"ERRNO" "FIELDWIDTHS" "FILENAME" "FNR" "FS" "IGNORECASE"
"LINT" "NF" "NR" "OFMT" "OFS" "ORS" "PROCINFO" "RLENGTH"
"RS" "RSTART" "RT" "SUBSEP" "TEXTDOMAIN") t) "\\>")
'font-lock-variable-name-face)
;; Special file names. (acm, 2002/7/22)
;; The following regexp was created by first evaluating this in GNU Emacs 21.1:
;; (regexp-opt '("/dev/stdin" "/dev/stdout" "/dev/stderr" "/dev/fd/n" "/dev/pid"
;; "/dev/ppid" "/dev/pgrpid" "/dev/user") 'words)
;; , removing the "?:" from each "\\(?:" (for backward compatibility with older Emacsen)
;; , replacing the "n" in "dev/fd/n" with "[0-9]+"
;; , removing the unwanted \\< at the beginning, and finally filling out the
;; regexp so that a " must come before, and either a " or heuristic stuff after.
;; The surrounding quotes are fontified along with the filename, since, semantically,
;; they are an indivisible unit.
'("\\(\"/dev/\\(fd/[0-9]+\\|p\\(\\(\\(gr\\)?p\\)?id\\)\\|\
std\\(err\\|in\\|out\\)\\|user\\)\\)\\>\
\\(\\(\"\\)\\|\\([^\"/\n\r][^\"\n\r]*\\)?$\\)"
(1 font-lock-variable-name-face t)
(8 font-lock-variable-name-face t t))
;; Do the same (almost) with
;; (regexp-opt '("/inet/tcp/lport/rhost/rport" "/inet/udp/lport/rhost/rport"
;; "/inet/raw/lport/rhost/rport") 'words)
;; This cannot be combined with the above pattern, because the match number
;; for the (optional) closing \" would then exceed 9.
'("\\(\"/inet/\\(\\(raw\\|\\(tc\\|ud\\)p\\)/lport/rhost/rport\\)\\)\\>\
\\(\\(\"\\)\\|\\([^\"/\n\r][^\"\n\r]*\\)?$\\)"
(1 font-lock-variable-name-face t)
(6 font-lock-variable-name-face t t))
;; Keywords.
(concat "\\<"
(regexp-opt
'("BEGIN" "END" "break" "continue" "delete" "do" "else"
"exit" "for" "getline" "if" "in" "next" "nextfile"
"return" "while")
t) "\\>")
;; Builtins.
`(eval . (list
,(concat
"\\<"
(regexp-opt
'("adump" "and" "asort" "atan2" "bindtextdomain" "close"
"compl" "cos" "dcgettext" "exp" "extension" "fflush"
"gensub" "gsub" "index" "int" "length" "log" "lshift"
"match" "mktime" "or" "print" "printf" "rand" "rshift"
"sin" "split" "sprintf" "sqrt" "srand" "stopme"
"strftime" "strtonum" "sub" "substr" "system"
"systime" "tolower" "toupper" "xor") t)
"\\>")
0 c-preprocessor-face-name))
;; gawk debugging keywords. (acm, 2002/7/21)
;; (Removed, 2003/6/6. These functions are now fontified as built-ins)
;; (list (concat "\\<" (regexp-opt '("adump" "stopme") t) "\\>")
;; 0 'font-lock-warning-face)
;; User defined functions with an apparent spurious space before the
;; opening parenthesis. acm, 2002/5/30.
`(,(concat "\\(\\w\\|_\\)" c-awk-escaped-nls* "\\s "
c-awk-escaped-nls*-with-space* "(")
(0 'font-lock-warning-face))
;; Space after \ in what looks like an escaped newline. 2002/5/31
'("\\\\\\s +$" 0 font-lock-warning-face t)
;; Unbalanced string (") or regexp (/) delimiters. 2002/02/16.
'("\\s|" 0 font-lock-warning-face t nil)
;; gawk 3.1 localizable strings ( _"translate me!"). 2002/5/21
'("\\(_\\)\\s|" 1 font-lock-warning-face)
'("\\(_\\)\\s\"" 1 font-lock-string-face) ; FIXME! not for XEmacs. 2002/10/6
))
"Default expressions to highlight in AWK mode."))
;; 2006-07-10: awk-font-lock-keywords has been moved back to cc-awk.el.
(cc-provide 'cc-fonts)
;;; arch-tag: 2f65f405-735f-4da5-8d4b-b957844c5203

View File

@ -173,9 +173,10 @@ the evaluated constant value at compile time."
`',var)
(put 'c-lang-defvar 'lisp-indent-function 'defun)
(eval-after-load "edebug"
'(def-edebug-spec c-lang-defvar
(&define name def-form &optional stringp)))
; (eval-after-load "edebug" ; 2006-07-09: def-edebug-spec is now in subr.el.
; '
(def-edebug-spec c-lang-defvar
(&define name def-form &optional stringp)) ;)
(eval-and-compile
;; Some helper functions used when building the language constants.

View File

@ -114,8 +114,9 @@
;; Load cc-fonts first after font-lock is loaded, since it isn't
;; necessary until font locking is requested.
(eval-after-load "font-lock"
'(require 'cc-fonts))
; (eval-after-load "font-lock" ; 2006-07-09: font-lock is now preloaded.
; '
(require 'cc-fonts) ;)
;; cc-langs isn't loaded when we're byte compiled, so add autoload
;; directives for the interface functions.

View File

@ -223,10 +223,15 @@ of[ \t]+\"?\\([a-zA-Z]?:?[^\":\n]+\\)\"?:" 3 2 nil (1))
\\(.+\\):\\([0-9]+\\)\\(?:\\(:\\)\\|\\(,\\)\\)?" 1 2 nil (3 . 4))
(gnu
;; I have no idea what this first line is supposed to match, but it
;; makes things ambiguous with output such as "foo:344:50:blabla" since
;; the "foo" part can match this first line (in which case the file
;; name as "344"). To avoid this, we disallow filenames exclusively
;; composed of digits. --Stef
"^\\(?:[[:alpha:]][-[:alnum:].]+: ?\\)?\
\\([/.]*[a-zA-Z]:?[^ \t\n:]*\\|{standard input}\\): ?\
\\([0-9]+\\)\\([.:]?\\)\\([0-9]+\\)?\
\\(?:-\\(?:\\([0-9]+\\)\\3\\)?\\.?\\([0-9]+\\)?\\)?:\
\\([0-9]*[^0-9\n].*?\\): ?\
\\([0-9]+\\)\\(?:\\([.:]\\)\\([0-9]+\\)\\)?\
\\(?:-\\([0-9]+\\)?\\(?:\\3\\([0-9]+\\)\\)?\\)?:\
\\(?: *\\(\\(?:Future\\|Runtime\\)?[Ww]arning\\|W:\\)\\|\
*\\([Ii]nfo\\(?:\\>\\|rmationa?l?\\)\\|I:\\|instantiated from\\)\\)?"
1 (2 . 5) (4 . 6) (7 . 8))
@ -293,7 +298,7 @@ File = \\(.+\\), Line = \\([0-9]+\\)\\(?:, Column = \\([0-9]+\\)\\)?"
\\(?:: \\(warning:\\)?\\|$\\| ),\\)" 1 2 nil (3))
(gcov-file
"^ *-: *\\(0\\):Source:\\(.+\\)$"
"^ *-: *\\(0\\):Source:\\(.+\\)$"
2 1 nil 0 nil
(1 compilation-line-face prepend) (2 compilation-info-face prepend))
(gcov-header
@ -312,11 +317,11 @@ File = \\(.+\\), Line = \\([0-9]+\\)\\(?:, Column = \\([0-9]+\\)\\)?"
(1 compilation-line-face prepend))
(gcov-called-line
"^ *\\([0-9]+\\): *\\([0-9]+\\):.*$"
nil 2 nil 0 nil
nil 2 nil 0 nil
(0 'default t)
(1 compilation-info-face prepend) (2 compilation-line-face prepend))
(gcov-never-called
"^ *\\(#####\\): *\\([0-9]+\\):.*$"
"^ *\\(#####\\): *\\([0-9]+\\):.*$"
nil 2 nil 2 nil
(0 'default t)
(1 compilation-error-face prepend) (2 compilation-line-face prepend))
@ -400,7 +405,12 @@ you may also want to change `compilation-page-delimiter'.")
"Value of `page-delimiter' in Compilation mode.")
(defvar compilation-mode-font-lock-keywords
'(;; configure output lines.
'(;; Don't highlight this as a compilation message.
("^Compilation started at.*"
(0 '(face nil message nil help-echo nil mouse-face nil) t))
("^Compiling file .*"
(0 '(face nil message nil help-echo nil mouse-face nil) t))
;; configure output lines.
("^[Cc]hecking \\(?:[Ff]or \\|[Ii]f \\|[Ww]hether \\(?:to \\)?\\)?\\(.+\\)\\.\\.\\. *\\(?:(cached) *\\)?\\(\\(yes\\(?: .+\\)?\\)\\|no\\|\\(.*\\)\\)$"
(1 font-lock-variable-name-face)
(2 (compilation-face '(4 . 3))))
@ -408,9 +418,11 @@ you may also want to change `compilation-page-delimiter'.")
("^\\([[:alnum:]_/.+-]+\\)\\(\\[\\([0-9]+\\)\\]\\)?[ \t]*:"
(1 font-lock-function-name-face) (3 compilation-line-face nil t))
(" --?o\\(?:utfile\\|utput\\)?[= ]?\\(\\S +\\)" . 1)
("^Compilation \\(finished\\)"
("^Compilation \\(finished\\).*"
(0 '(face nil message nil help-echo nil mouse-face nil) t)
(1 compilation-info-face))
("^Compilation \\(exited abnormally\\|interrupt\\|killed\\|terminated\\)\\(?:.*with code \\([0-9]+\\)\\)?"
("^Compilation \\(exited abnormally\\|interrupt\\|killed\\|terminated\\)\\(?:.*with code \\([0-9]+\\)\\)?.*"
(0 '(face nil message nil help-echo nil mouse-face nil) t)
(1 compilation-error-face)
(2 compilation-error-face nil t)))
"Additional things to highlight in Compilation mode.
@ -1791,49 +1803,67 @@ 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."
(or formats (setq formats '("%s")))
(save-excursion
(let ((dirs compilation-search-path)
(spec-dir (if directory
(expand-file-name directory)
default-directory))
buffer thisdir fmts name)
(if (file-name-absolute-p filename)
;; The file name is absolute. Use its explicit directory as
;; the first in the search path, and strip it from FILENAME.
(setq filename (abbreviate-file-name (expand-file-name filename))
dirs (cons (file-name-directory filename) dirs)
filename (file-name-nondirectory filename)))
;; Now search the path.
(while (and dirs (null buffer))
(setq thisdir (or (car dirs) spec-dir)
fmts formats)
;; For each directory, try each format string.
(while (and fmts (null buffer))
(setq name (expand-file-name (format (car fmts) filename) thisdir)
buffer (and (file-exists-p name)
(find-file-noselect name))
fmts (cdr fmts)))
(setq dirs (cdr dirs)))
(or buffer
;; The file doesn't exist. Ask the user where to find it.
(let ((pop-up-windows t))
(compilation-set-window (display-buffer (marker-buffer marker))
marker)
(let ((name (expand-file-name
(read-file-name
(format "Find this %s in (default %s): "
compilation-error filename)
spec-dir filename t))))
(if (file-directory-p name)
(setq name (expand-file-name filename name)))
(setq buffer (and (file-exists-p name)
(find-file name))))))
;; Make intangible overlays tangible.
(mapcar (function (lambda (ov)
(when (overlay-get ov 'intangible)
(overlay-put ov 'intangible nil))))
(overlays-in (point-min) (point-max)))
buffer)))
(let ((dirs compilation-search-path)
(spec-dir (if directory
(expand-file-name directory)
default-directory))
buffer thisdir fmts name)
(if (file-name-absolute-p filename)
;; The file name is absolute. Use its explicit directory as
;; the first in the search path, and strip it from FILENAME.
(setq filename (abbreviate-file-name (expand-file-name filename))
dirs (cons (file-name-directory filename) dirs)
filename (file-name-nondirectory filename)))
;; Now search the path.
(while (and dirs (null buffer))
(setq thisdir (or (car dirs) spec-dir)
fmts formats)
;; For each directory, try each format string.
(while (and fmts (null buffer))
(setq name (expand-file-name (format (car fmts) filename) thisdir)
buffer (and (file-exists-p name)
(find-file-noselect name))
fmts (cdr fmts)))
(setq dirs (cdr dirs)))
(while (null buffer) ;Repeat until the user selects an existing file.
;; The file doesn't exist. Ask the user where to find it.
(save-excursion ;This save-excursion is probably not right.
(let ((pop-up-windows t))
(compilation-set-window (display-buffer (marker-buffer marker))
marker)
(let* ((name (read-file-name
(format "Find this %s in (default %s): "
compilation-error filename)
spec-dir filename t nil
;; Try to make sure the user can only select
;; a valid answer. This predicate may be ignored,
;; tho, so we still have to double-check afterwards.
;; TODO: We should probably fix read-file-name so
;; that it never ignores this predicate, even when
;; using popup dialog boxes.
(lambda (name)
(if (file-directory-p name)
(setq name (expand-file-name filename name)))
(file-exists-p name))))
(origname name))
(cond
((not (file-exists-p name))
(message "Cannot find file `%s'" name)
(ding) (sit-for 2))
((and (file-directory-p name)
(not (file-exists-p
(setq name (expand-file-name filename name)))))
(message "No `%s' in directory %s" filename origname)
(ding) (sit-for 2))
(t
(setq buffer (find-file-noselect name))))))))
;; Make intangible overlays tangible.
;; This is weird: it's not even clear which is the current buffer,
;; so the code below can't be expected to DTRT here. -- Stef
(dolist (ov (overlays-in (point-min) (point-max)))
(when (overlay-get ov 'intangible)
(overlay-put ov 'intangible nil)))
buffer))
(defun compilation-get-file-structure (file &optional fmt)
"Retrieve FILE's file-structure or create a new one.

View File

@ -2734,24 +2734,24 @@ means the member buffer is standalone. CLASS is its class."
;; is on if not specified as an argument.
(unless class
(setq class (ebrowse-tree-at-point)))
(with-output-to-temp-buffer ebrowse-member-buffer-name
(save-excursion
(set-buffer standard-output)
(save-selected-window
(if temp-buffer
(pop-to-buffer temp-buffer)
(pop-to-buffer (get-buffer-create ebrowse-member-buffer-name))
;; If new buffer, set the mode and initial values of locals
(unless temp-buffer
(ebrowse-member-mode))
;; Set local variables
(setq ebrowse--member-list (funcall list class)
ebrowse--displayed-class class
ebrowse--accessor list
ebrowse--tree-obarray classes
ebrowse--frozen-flag stand-alone
ebrowse--tags-file-name tags-file-name
ebrowse--header header
ebrowse--tree tree
buffer-read-only t)
(ebrowse-redisplay-member-buffer)
(current-buffer)))))
(ebrowse-member-mode))
;; Set local variables
(setq ebrowse--member-list (funcall list class)
ebrowse--displayed-class class
ebrowse--accessor list
ebrowse--tree-obarray classes
ebrowse--frozen-flag stand-alone
ebrowse--tags-file-name tags-file-name
ebrowse--header header
ebrowse--tree tree
buffer-read-only t)
(ebrowse-redisplay-member-buffer)
(current-buffer))))
(defun ebrowse-member-display-p (member)

View File

@ -1019,7 +1019,7 @@ The key should be one of the cars in `gdb-buffer-rules-assoc'."
(interactive)
(if gdb-use-separate-io-buffer
(gdb-display-buffer
(gdb-get-buffer-create 'gdb-inferior-io))))
(gdb-get-buffer-create 'gdb-inferior-io) t)))
(defconst gdb-frame-parameters
'((height . 14) (width . 80)
@ -1556,7 +1556,7 @@ happens to be appropriate."
(goto-char (point-max))
(insert-before-markers string))
(if (not (string-equal string ""))
(gdb-display-buffer (gdb-get-buffer-create 'gdb-inferior-io))))
(gdb-display-buffer (gdb-get-buffer-create 'gdb-inferior-io) t)))
(defun gdb-clear-inferior-io ()
(with-current-buffer (gdb-get-buffer-create 'gdb-inferior-io)
@ -1865,7 +1865,7 @@ static char *magick[] = {
"Display status of user-settable breakpoints."
(interactive)
(gdb-display-buffer
(gdb-get-buffer-create 'gdb-breakpoints-buffer)))
(gdb-get-buffer-create 'gdb-breakpoints-buffer) t))
(defun gdb-frame-breakpoints-buffer ()
"Display status of user-settable breakpoints in a new frame."
@ -2041,7 +2041,7 @@ static char *magick[] = {
"Display backtrace of current stack."
(interactive)
(gdb-display-buffer
(gdb-get-buffer-create 'gdb-stack-buffer)))
(gdb-get-buffer-create 'gdb-stack-buffer) t))
(defun gdb-frame-stack-buffer ()
"Display backtrace of current stack in a new frame."
@ -2122,7 +2122,7 @@ static char *magick[] = {
"Display IDs of currently known threads."
(interactive)
(gdb-display-buffer
(gdb-get-buffer-create 'gdb-threads-buffer)))
(gdb-get-buffer-create 'gdb-threads-buffer) t))
(defun gdb-frame-threads-buffer ()
"Display IDs of currently known threads in a new frame."
@ -2256,7 +2256,7 @@ static char *magick[] = {
"Display integer register contents."
(interactive)
(gdb-display-buffer
(gdb-get-buffer-create 'gdb-registers-buffer)))
(gdb-get-buffer-create 'gdb-registers-buffer) t))
(defun gdb-frame-registers-buffer ()
"Display integer register contents in a new frame."
@ -2580,7 +2580,7 @@ corresponding to the mode line clicked."
"Display memory contents."
(interactive)
(gdb-display-buffer
(gdb-get-buffer-create 'gdb-memory-buffer)))
(gdb-get-buffer-create 'gdb-memory-buffer) t))
(defun gdb-frame-memory-buffer ()
"Display memory contents in a new frame."
@ -2687,7 +2687,7 @@ corresponding to the mode line clicked."
"Display local variables of current stack and their values."
(interactive)
(gdb-display-buffer
(gdb-get-buffer-create 'gdb-locals-buffer)))
(gdb-get-buffer-create 'gdb-locals-buffer) t))
(defun gdb-frame-locals-buffer ()
"Display local variables of current stack and their values in a new frame."
@ -2698,7 +2698,7 @@ corresponding to the mode line clicked."
;;;; Window management
(defun gdb-display-buffer (buf &optional size)
(defun gdb-display-buffer (buf dedicated &optional size)
(let ((answer (get-buffer-window buf 0))
(must-split nil))
(if answer
@ -2707,7 +2707,8 @@ corresponding to the mode line clicked."
(pop-to-buffer gud-comint-buffer) ;Select the right frame.
(let ((window (get-lru-window)))
(if (and window
(not (eq window (get-buffer-window gud-comint-buffer))))
(not (memq window `(,(get-buffer-window gud-comint-buffer)
,gdb-source-window))))
(progn
(set-window-buffer window buf)
(setq answer window))
@ -2718,7 +2719,7 @@ corresponding to the mode line clicked."
(new-size (and size (< size cur-size) (- cur-size size))))
(setq answer (split-window largest new-size))
(set-window-buffer answer buf)
(set-window-dedicated-p answer t)))
(set-window-dedicated-p answer dedicated)))
answer)))
@ -3162,7 +3163,7 @@ BUFFER nil or omitted means use the current buffer."
(interactive)
(setq gdb-previous-frame nil)
(gdb-display-buffer
(gdb-get-buffer-create 'gdb-assembler-buffer)))
(gdb-get-buffer-create 'gdb-assembler-buffer) t))
(defun gdb-frame-assembler-buffer ()
"Display disassembly view in a new frame."

View File

@ -232,8 +232,7 @@ See `compilation-error-screen-columns'"
;; override compilation-last-buffer
(defvar grep-last-buffer nil
"The most recent grep buffer.
A grep buffer becomes most recent when its process is started
or when it is used with \\[grep-next-match].
A grep buffer becomes most recent when you select Grep mode in it.
Notice that using \\[next-error] or \\[compile-goto-error] modifies
`complation-last-buffer' rather than `grep-last-buffer'.")

View File

@ -2763,7 +2763,8 @@ Obeying it means displaying in another window the specified file and line."
(gud-find-file true-file)))
(window (and buffer (or (get-buffer-window buffer)
(if (memq gud-minor-mode '(gdbmi gdba))
(gdb-display-source-buffer buffer))
(unless (gdb-display-source-buffer buffer)
(gdb-display-buffer buffer nil)))
(display-buffer buffer))))
(pos))
(if buffer
@ -2793,7 +2794,10 @@ Obeying it means displaying in another window the specified file and line."
(cond ((or (< pos (point-min)) (> pos (point-max)))
(widen)
(goto-char pos))))
(if window (set-window-point window gud-overlay-arrow-position))))))
(when window
(set-window-point window gud-overlay-arrow-position)
(if (memq gud-minor-mode '(gdbmi gdba))
(setq gdb-source-window window)))))))
;; The gud-call function must do the right thing whether its invoking
;; keystroke is from the GUD buffer itself (via major-mode binding)

View File

@ -4384,7 +4384,7 @@ idlwave-shell-electric-debug-mode-map)
["Edit Default Cmd" idlwave-shell-edit-default-command-line t])
("Breakpoints"
["Set Breakpoint" idlwave-shell-break-here
:keys "C-c C-d C-c" :active (eq major-mode 'idlwave-mode)]
:keys "C-c C-d C-b" :active (eq major-mode 'idlwave-mode)]
("Set Special Breakpoint"
["Set After Count Breakpoint"
(progn

View File

@ -37,18 +37,18 @@
:group 'octave)
(defcustom inferior-octave-program "octave"
"*Program invoked by `inferior-octave'."
"Program invoked by `inferior-octave'."
:type 'string
:group 'octave-inferior)
(defcustom inferior-octave-prompt
"\\(^octave\\(\\|.bin\\)\\(-[.0-9]+\\)?\\(:[0-9]+\\)?\\|^debug\\|^\\)>+ "
"*Regexp to match prompts for the inferior Octave process."
"Regexp to match prompts for the inferior Octave process."
:type 'regexp
:group 'octave-inferior)
(defcustom inferior-octave-startup-file nil
"*Name of the inferior Octave startup file.
"Name of the inferior Octave startup file.
The contents of this file are sent to the inferior Octave process on
startup."
:type '(choice (const :tag "None" nil)
@ -56,34 +56,31 @@ startup."
:group 'octave-inferior)
(defcustom inferior-octave-startup-args nil
"*List of command line arguments for the inferior Octave process.
"List of command line arguments for the inferior Octave process.
For example, for suppressing the startup message and using `traditional'
mode, set this to (\"-q\" \"--traditional\")."
:type '(repeat string)
:group 'octave-inferior)
(defvar inferior-octave-mode-map nil
"Keymap used in Inferior Octave mode.")
(if inferior-octave-mode-map
()
(let ((map (copy-keymap comint-mode-map)))
(defvar inferior-octave-mode-map
(let ((map (make-sparse-keymap)))
(set-keymap-parent map comint-mode-map)
(define-key map "\t" 'comint-dynamic-complete)
(define-key map "\M-?" 'comint-dynamic-list-filename-completions)
(define-key map "\C-c\C-l" 'inferior-octave-dynamic-list-input-ring)
(define-key map [menu-bar inout list-history]
'("List Input History" . inferior-octave-dynamic-list-input-ring))
(define-key map "\C-c\C-h" 'octave-help)
(setq inferior-octave-mode-map map)))
map)
"Keymap used in Inferior Octave mode.")
(defvar inferior-octave-mode-syntax-table nil
"Syntax table in use in inferior-octave-mode buffers.")
(if inferior-octave-mode-syntax-table
()
(defvar inferior-octave-mode-syntax-table
(let ((table (make-syntax-table)))
(modify-syntax-entry ?\` "w" table)
(modify-syntax-entry ?\# "<" table)
(modify-syntax-entry ?\n ">" table)
(setq inferior-octave-mode-syntax-table table)))
table)
"Syntax table in use in inferior-octave-mode buffers.")
(defcustom inferior-octave-mode-hook nil
"*Hook to be run when Inferior Octave mode is started."
@ -154,9 +151,9 @@ Entry to this mode successively runs the hooks `comint-mode-hook' and
(setq comint-input-ring-file-name
(or (getenv "OCTAVE_HISTFILE") "~/.octave_hist")
comint-input-ring-size (or (getenv "OCTAVE_HISTSIZE") 1024)
comint-input-filter-functions '(inferior-octave-directory-tracker)
comint-dynamic-complete-functions
inferior-octave-dynamic-complete-functions)
comint-input-filter-functions '(inferior-octave-directory-tracker))
(set (make-local-variable 'comint-dynamic-complete-functions)
inferior-octave-dynamic-complete-functions)
(comint-read-input-ring t)
(run-mode-hooks 'inferior-octave-mode-hook))
@ -272,8 +269,7 @@ is NOT available with versions of Octave prior to 2.0."
(save-excursion
(skip-syntax-backward "w_" (comint-line-beginning-position))
(buffer-substring-no-properties (point) end)))
(proc (get-buffer-process inferior-octave-buffer))
(filter (process-filter proc)))
(proc (get-buffer-process inferior-octave-buffer)))
(cond (inferior-octave-complete-impossible
(error (concat
"Your Octave does not have `completion_matches'. "
@ -299,7 +295,7 @@ is NOT available with versions of Octave prior to 2.0."
command inferior-octave-output-list)))))
(defun inferior-octave-dynamic-list-input-ring ()
"List the buffer's input history in a help buffer"
"List the buffer's input history in a help buffer."
;; We cannot use `comint-dynamic-list-input-ring', because it replaces
;; "completion" by "history reference" ...
(interactive)
@ -394,5 +390,5 @@ directory and makes this the current buffer's default directory."
(provide 'octave-inf)
;;; arch-tag: bdce0395-24d1-4bb4-bfba-6fb1eeb1a660
;; arch-tag: bdce0395-24d1-4bb4-bfba-6fb1eeb1a660
;;; octave-inf.el ends here

View File

@ -982,7 +982,10 @@ Point is at the beginning of the next line."
(defun sh-quoted-subshell (limit)
"Search for a subshell embedded in a string. Find all the unescaped
\" characters within said subshell, remembering that subshells can nest."
(if (re-search-forward "\"\\(?:.\\|\n\\)*?\\(\\$(\\|`\\)" limit t)
;; FIXME: This can (and often does) match multiple lines, yet it makes no
;; effort to handle multiline cases correctly, so it ends up being
;; rather flakey.
(if (re-search-forward "\"\\(?:\\(?:.\\|\n\\)*?[^\\]\\(\\\\\\\\\\)*\\)?\\(\\$(\\|`\\)" limit t)
;; bingo we have a $( or a ` inside a ""
(let ((char (char-after (point)))
(continue t)
@ -1002,23 +1005,27 @@ Point is at the beginning of the next line."
;; ( [preceeded by $ ] => increase nesting
;; " [nesting <= 0 ] => terminate, we're done.
;; " [nesting > 0 ] => remember this, it's not a proper "
(if (eq ?\\ last) nil
(if (eq ?\` char) (setq nest (+ nest (if bq -1 1)) bq (not bq))
(if (and (> nest 0) (eq ?\) char)) (setq nest (1- nest))
(if (and (eq ?$ last) (eq ?\( char)) (setq nest (1+ nest))
(if (and (> nest 0) (eq ?\( char)) (setq nest (1+ nest))
(if (eq char ?\")
(if (>= 0 nest) (setq continue nil)
(setq seen (cons pos seen)) ) ))))))
;; FIXME: don't count parens that appear within quotes.
(cond
((eq ?\\ last) nil)
((eq ?\` char) (setq nest (+ nest (if bq -1 1)) bq (not bq)))
((and (> nest 0) (eq ?\) char)) (setq nest (1- nest)))
((and (eq ?$ last) (eq ?\( char)) (setq nest (1+ nest)))
((and (> nest 0) (eq ?\( char)) (setq nest (1+ nest)))
((eq char ?\")
(if (>= 0 nest) (setq continue nil) (push pos seen))))
;;(message "POS: %d [%d]" pos nest)
(setq last char
pos (1+ pos)
char (char-after pos)) )
;; FIXME: why construct a costly match data to pass to
;; sh-apply-quoted-subshell rather than apply the highlight
;; directly here? -- Stef
(when seen
;;(message "SEEN: %S" seen)
(setq data (list (current-buffer)))
(mapc (lambda (P)
(setq data (cons P (cons (1+ P) data)) ) ) seen)
(dolist(P seen)
(setq data (cons P (cons (1+ P) data))))
(store-match-data data))
data) ))

View File

@ -203,18 +203,14 @@ are done with it in the server.")
(dolist (frame (frame-list))
(when (equal (frame-parameter frame 'display) display)
(select-frame frame)))
;; If there's no frame on that display yet, create a dummy one
;; and select it.
;; If there's no frame on that display yet, create and select one.
(unless (equal (frame-parameter (selected-frame) 'display) display)
(select-frame
(make-frame-on-display
display
;; This frame is only there in place of an actual "current display"
;; setting, so we want it to be as unobtrusive as possible. That's
;; what the invisibility is for. The minibuffer setting is so that
;; we don't end up displaying a buffer in it (which noone would
;; notice).
'((visibility . nil) (minibuffer . only)))))))
;; This frame may be deleted later (see server-process-filter)
;; so we want it to be as unobtrusive as possible.
'((visibility . nil)))))))
(defun server-unquote-arg (arg)
(replace-regexp-in-string
@ -383,8 +379,14 @@ PROC is the server process. Format of STRING is \"PATH PATH PATH... \\n\"."
(unless nowait
(message "%s" (substitute-command-keys
"When done with a buffer, type \\[server-edit]")))))
;; Avoid preserving the connection after the last real frame is deleted.
(if tmp-frame (delete-frame tmp-frame))))
;; If the temporary frame is still the selected frame, make it
;; real. If not (which can happen if the user's customizations
;; call pop-to-buffer etc.), delete it to avoid preserving the
;; connection after the last real frame is deleted.
(if tmp-frame
(if (eq (selected-frame) tmp-frame)
(set-frame-parameter tmp-frame 'visibility t)
(delete-frame tmp-frame)))))
;; Save for later any partial line that remains.
(when (> (length string) 0)
(process-put proc 'previous-string string)))

View File

@ -423,7 +423,8 @@ buffer."
(setq comint-delimiter-argument-list shell-delimiter-argument-list)
(setq comint-file-name-chars shell-file-name-chars)
(setq comint-file-name-quote-list shell-file-name-quote-list)
(setq comint-dynamic-complete-functions shell-dynamic-complete-functions)
(set (make-local-variable 'comint-dynamic-complete-functions)
shell-dynamic-complete-functions)
(set (make-local-variable 'paragraph-separate) "\\'")
(make-local-variable 'paragraph-start)
(setq paragraph-start comint-prompt-regexp)

View File

@ -1669,7 +1669,7 @@ is not *inside* the region START...END."
'(0 . 0)))
'(0 . 0)))
(defcustom undo-ask-before-discard t
(defcustom undo-ask-before-discard nil
"If non-nil ask about discarding undo info for the current command.
Normally, Emacs discards the undo info for the current command if
it exceeds `undo-outer-limit'. But if you set this option

View File

@ -53,6 +53,12 @@ This is the global do-nothing version. There is also `testcover-1value'
that complains if FORM ever does return differing values."
form)
(defmacro def-edebug-spec (symbol spec)
"Set the `edebug-form-spec' property of SYMBOL according to SPEC.
Both SYMBOL and SPEC are unevaluated. The SPEC can be 0, t, a symbol
\(naming a function), or a list."
`(put (quote ,symbol) 'edebug-form-spec (quote ,spec)))
(defmacro lambda (&rest cdr)
"Return a lambda expression.
A call of the form (lambda ARGS DOCSTRING INTERACTIVE BODY) is
@ -1693,6 +1699,45 @@ by doing (clear-string STRING)."
(sit-for 1)
t)))
n))
(defun sit-for (seconds &optional nodisp obsolete)
"Perform redisplay, then wait for SECONDS seconds or until input is available.
SECONDS may be a floating-point value.
\(On operating systems that do not support waiting for fractions of a
second, floating-point values are rounded down to the nearest integer.)
If optional arg NODISP is t, don't redisplay, just wait for input.
Redisplay does not happen if input is available before it starts.
Value is t if waited the full time with no input arriving, and nil otherwise.
An obsolete, but still supported form is
\(sit-for SECONDS &optional MILLISECONDS NODISP)
where the optional arg MILLISECONDS specifies an additional wait period,
in milliseconds; this was useful when Emacs was built without
floating point support.
\(fn SECONDS &optional NODISP)"
(when (or obsolete (numberp nodisp))
(setq seconds (+ seconds (* 1e-3 nodisp)))
(setq nodisp obsolete))
(if noninteractive
(progn (sleep-for seconds) t)
(unless nodisp (redisplay))
(or (<= seconds 0)
(let ((timer (timer-create))
(echo-keystrokes 0))
(if (catch 'sit-for-timeout
(timer-set-time timer (timer-relative-time
(current-time) seconds))
(timer-set-function timer 'with-timeout-handler
'(sit-for-timeout))
(timer-activate timer)
(push (read-event) unread-command-events)
nil)
t
(cancel-timer timer)
nil)))))
;;; Atomic change groups.

View File

@ -182,9 +182,13 @@
initial-frame-alist)))
(defvar x-display-name nil
"The X display name specifying server and X frame.")
"The name of the X display on which Emacs was started.
For the X display name of individual frames, see the `display'
frame parameter.")
(defun x-handle-display (switch)
"Handle -display DISPLAY option."
(setq x-display-name (car x-invocation-args)
x-invocation-args (cdr x-invocation-args))
;; Make subshell programs see the same DISPLAY value Emacs really uses.

View File

@ -408,18 +408,19 @@ Point is moved to just past the fill prefix on the first line."
"\\)?[ \t]*")
"[ \t]*")))
(goto-char from)
(if (>= (+ (current-left-margin) (length prefix))
(current-fill-column))
(error "fill-prefix too long for specified width"))
;; Why signal an error here? The problem needs to be caught elsewhere.
;; (if (>= (+ (current-left-margin) (length prefix))
;; (current-fill-column))
;; (error "fill-prefix too long for specified width"))
(forward-line 1)
(while (< (point) to)
(if (looking-at fpre)
(delete-region (point) (match-end 0)))
(delete-region (point) (match-end 0)))
(forward-line 1))
(goto-char from)
(if (looking-at fpre)
(goto-char (match-end 0)))
(setq from (point))))
(point)))
;; The `fill-space' property carries the string with which a newline
;; should be replaced when unbreaking a line (in fill-delete-newlines).
@ -628,7 +629,12 @@ space does not end a sentence, so don't break a line there."
(oneleft nil))
(beginning-of-line)
(setq from (point))
;; We used to round up to whole line, but that prevents us from
;; correctly handling filling of mixed code-and-comment where we do want
;; to fill the comment but not the code. So only use (point) if it's
;; further than `from', which means that `from' is followed by some
;; number of empty lines.
(setq from (max (point) from))
;; Delete all but one soft newline at end of region.
;; And leave TO before that one.
@ -799,7 +805,7 @@ If `fill-paragraph-function' is nil, return the `fill-prefix' used for filling."
If we're not in a comment, just return nil so that the caller
can take care of filling. JUSTIFY is used as in `fill-paragraph'."
(comment-normalize-vars)
(let (has-code-and-comment ; Non-nil if it contains code and a comment.
(let (has-code-and-comment ; Non-nil if it contains code and a comment.
comin comstart)
;; Figure out what kind of comment we are looking at.
(save-excursion
@ -857,12 +863,13 @@ can take care of filling. JUSTIFY is used as in `fill-paragraph'."
(or (comment-search-forward (line-end-position) t)
(point)))
(looking-at comment-re))
1 2))))
;; Find the beginning of the first line past the region to fill.
(save-excursion
(while (progn (forward-line 1)
(looking-at comment-re)))
(point)))
(progn (setq comstart (point)) 1)
(progn (setq comstart (point)) 2)))))
;; Find the beginning of the first line past the region to fill.
(save-excursion
(while (progn (forward-line 1)
(looking-at comment-re)))
(point)))
;; Obey paragraph starters and boundaries within comments.
(let* ((paragraph-separate
;; Use the default values since they correspond to
@ -874,7 +881,7 @@ can take care of filling. JUSTIFY is used as in `fill-paragraph'."
(concat paragraph-start "\\|[ \t]*\\(?:"
comment-start-skip "\\)\\(?:"
(default-value 'paragraph-start) "\\)"))
;; We used to reply on fill-prefix to break paragraph at
;; We used to rely on fill-prefix to break paragraph at
;; comment-starter changes, but it did not work for the
;; first line (mixed comment&code).
;; We now use comment-re instead to "manually" make sure
@ -893,7 +900,7 @@ can take care of filling. JUSTIFY is used as in `fill-paragraph'."
;; Find the fill-prefix to use.
(cond
(fill-prefix) ; Use the user-provided fill prefix.
(fill-prefix) ; Use the user-provided fill prefix.
((and adaptive-fill-mode ; Try adaptive fill mode.
(setq fill-prefix (fill-context-prefix beg end))
(string-match comment-start-skip fill-prefix)))
@ -903,7 +910,7 @@ can take care of filling. JUSTIFY is used as in `fill-paragraph'."
;; Don't fill with narrowing.
(or
(fill-region-as-paragraph
beg end justify nil
(max comstart beg) end justify nil
;; Don't canonicalize spaces within the code just before
;; the comment.
(save-excursion

View File

@ -5,7 +5,7 @@
;; Author: Carsten Dominik <dominik at science dot uva dot nl>
;; Keywords: outlines, hypermedia, calendar, wp
;; Homepage: http://www.astro.uva.nl/~dominik/Tools/org/
;; Version: 4.42
;; Version: 4.43
;;
;; This file is part of GNU Emacs.
;;
@ -90,6 +90,9 @@
;;
;; Recent changes
;; --------------
;; Version 4.43
;; - Big fixes
;;
;; Version 4.42
;; - Bug fixes
;; - `s' key in the agenda saves all org-mode buffers.
@ -209,7 +212,7 @@
;;; Customization variables
(defvar org-version "4.42"
(defvar org-version "4.43"
"The version number of the file org.el.")
(defun org-version ()
(interactive)
@ -4700,12 +4703,13 @@ the children that do not contain any open TODO items."
(pc '(:org-comment t))
(pall '(:org-archived t :org-comment t))
(rea (concat ":" org-archive-tag ":"))
file re)
bmp file re)
(save-excursion
(while (setq file (pop files))
(org-check-agenda-file file)
(set-buffer (org-get-agenda-file-buffer file))
(widen)
(setq bmp (buffer-modified-p))
(save-excursion
(remove-text-properties (point-min) (point-max) pall)
(when org-agenda-skip-archived-trees
@ -4717,7 +4721,8 @@ the children that do not contain any open TODO items."
(setq re (concat "^\\*+ +" org-comment-string "\\>"))
(while (re-search-forward re nil t)
(add-text-properties
(match-beginning 0) (org-end-of-subtree t) pc)))))))
(match-beginning 0) (org-end-of-subtree t) pc)))
(set-buffer-modified-p bmp)))))
(defun org-agenda-skip ()
"Throw to `:skip' in places that should be skipped."
@ -7432,9 +7437,11 @@ the documentation of `org-diary'."
(goto-char (point-min))
(while (re-search-forward regexp nil t)
(catch :skip
(and org-agenda-todo-ignore-scheduled
(looking-at sched-re)
(throw :skip nil))
(when (and org-agenda-todo-ignore-scheduled
(looking-at sched-re))
;; FIXME: the following test also happens below, but we need it here
(or org-agenda-todo-list-sublevels (org-end-of-subtree 'invisible))
(throw :skip nil))
(org-agenda-skip)
(goto-char (match-beginning 1))
(setq marker (org-agenda-new-marker (1+ (match-beginning 0)))
@ -8696,7 +8703,7 @@ With prefix ARG, realign all tags in headings in the current buffer."
nil nil current 'org-tags-history))))
(while (string-match "[-+&]+" tags)
(setq tags (replace-match ":" t t tags))))
(unless (setq empty (string-match "\\`[\t ]*\\'" tags))
(unless (string-match ":$" tags) (setq tags (concat tags ":")))
(unless (string-match "^:" tags) (setq tags (concat ":" tags))))

View File

@ -37,7 +37,7 @@
(defmacro defcustom (var value doc &rest ignore)
`(defvar ,var ,value ,doc)))
(defvar texinfmt-version "2.41 of 1 Mar 2005")
(defvar texinfmt-version "2.42 of 7 Jul 2006")
(defun texinfmt-version (&optional here)
"Show the version of texinfmt.el in the minibuffer.
@ -1555,7 +1555,9 @@ The node is constructed automatically."
" Node: " node-name "-Footnotes, Up: " node-name "\n")
(setq start (point))
(insert (format "\n(%d) %s\n" texinfo-footnote-number arg))
(fill-region start (point))))))
(narrow-to-region (save-excursion (goto-char start) (point)) (point))
(fill-region (point-min) (point-max))
(widen)))))
(defun texinfo-format-end-node ()
"Format footnote in the End of node style, with notes at end of node."
@ -2118,11 +2120,18 @@ This command is executed when texinfmt sees @item inside @multitable."
(insert unformated-row)
(goto-char (point-min))
;; 1. Check for correct number of @tab in line.
(let ((tab-number 1)) ; one @tab between two columns
(let ((tab-number 1)) ; one @tab between two columns
(while (search-forward "@tab" nil t)
(setq tab-number (1+ tab-number)))
(if (/= tab-number (length table-widths))
(error "Wrong number of @tab's in a @multitable row")))
(let ((needed-tabs (- (length table-widths) tab-number)))
(when (> needed-tabs 0)
(goto-char (point-min))
(end-of-line)
(while (> needed-tabs 0)
(insert "@w{ }\n@tab")
(setq needed-tabs (1- needed-tabs))
(message
"Added @tabs and empty spaces to a @multitable row")))))
(goto-char (point-min))
;; 2. Format each cell, and copy to a rectangle
;; buffer looks like this: A1 @tab A2 @tab A3

View File

@ -256,7 +256,7 @@ ACTION-PREFIX is the symbol to place before the ACTION command
filein
(or output-format "jpeg")
fileout)))
(call-process shell-file-name nil nil nil "-c" command)))
(call-process shell-file-name nil nil nil shell-command-switch command)))
(defun thumbs-new-image-size (s increment)
"New image (a cons of width x height)."

View File

@ -491,7 +491,8 @@ with the comment."
:group 'tumme)
(defcustom tumme-external-viewer
;; TODO: use mailcap, dired-guess-shell-alist-default, dired-view-command-alist
;; TODO: Use mailcap, dired-guess-shell-alist-default,
;; dired-view-command-alist.
(cond ((executable-find "display"))
((executable-find "xli"))
((executable-find "qiv") "qiv -t"))
@ -627,7 +628,7 @@ according to the Thumbnail Managing Standard."
(setq thumbnail-dir (file-name-directory thumbnail-file))))
(message "Creating thumbnail directory.")
(make-directory thumbnail-dir))
(shell-command command nil)))
(call-process shell-file-name nil nil nil shell-command-switch command)))
;;;###autoload
(defun tumme-dired-insert-marked-thumbs ()
@ -643,8 +644,10 @@ according to the Thumbnail Managing Standard."
;; Can't use (overlays-at (point)), BUG?
(overlays-in (point) (1+ (point)))))
(put-image thumb-file image-pos)
(setq overlay (car (delq nil (mapcar (lambda (o) (and (overlay-get o 'put-image) o))
(overlays-in (point) (1+ (point)))))))
(setq
overlay
(car (delq nil (mapcar (lambda (o) (and (overlay-get o 'put-image) o))
(overlays-in (point) (1+ (point)))))))
(overlay-put overlay 'image-file image-file)
(overlay-put overlay 'thumb-file thumb-file)))
nil)
@ -716,8 +719,7 @@ Otherwise, delete overlays."
(defun tumme-create-thumbnail-buffer ()
"Create thumb buffer and set `tumme-thumbnail-mode'."
(let ((buf (get-buffer-create tumme-thumbnail-buffer)))
(save-excursion
(set-buffer buf)
(with-current-buffer buf
(setq buffer-read-only t)
(if (not (eq major-mode 'tumme-thumbnail-mode))
(tumme-thumbnail-mode)))
@ -729,8 +731,7 @@ Otherwise, delete overlays."
(defun tumme-create-display-image-buffer ()
"Create image display buffer and set `tumme-display-image-mode'."
(let ((buf (get-buffer-create tumme-display-image-buffer)))
(save-excursion
(set-buffer buf)
(with-current-buffer buf
(setq buffer-read-only t)
(if (not (eq major-mode 'tumme-display-image-mode))
(tumme-display-image-mode)))
@ -812,8 +813,7 @@ thumbnail buffer to be selected."
(setq files (list (dired-get-filename)))
(setq files (dired-get-marked-files)))
(setq dired-buf (current-buffer))
(save-excursion
(set-buffer buf)
(with-current-buffer buf
(let ((inhibit-read-only t))
(if (not append)
(erase-buffer)
@ -1170,10 +1170,9 @@ dired."
(dired-buf (tumme-associated-dired-buffer)))
(if (not (and dired-buf file-name))
(message "No image, or image with correct properties, at point.")
(save-excursion
(with-current-buffer dired-buf
(message file-name)
(setq file-name (file-name-nondirectory file-name))
(set-buffer dired-buf)
(goto-char (point-min))
(if (search-forward file-name nil t)
(cond ((eq command 'mark) (dired-mark 1))
@ -1294,7 +1293,8 @@ You probably want to use this together with
(define-key tumme-thumbnail-mode-map "L" 'tumme-rotate-original-left)
(define-key tumme-thumbnail-mode-map "R" 'tumme-rotate-original-right)
(define-key tumme-thumbnail-mode-map "D" 'tumme-thumbnail-set-image-description)
(define-key tumme-thumbnail-mode-map "D"
'tumme-thumbnail-set-image-description)
(define-key tumme-thumbnail-mode-map "\C-d" 'tumme-delete-char)
(define-key tumme-thumbnail-mode-map " "
@ -1686,25 +1686,22 @@ Ask user how many thumbnails should be displayed per row."
(defun tumme-thumbnail-display-external ()
"Display original image for thumbnail at point using external viewer."
(interactive)
(let ((file (tumme-original-file-name)))
(if (not (tumme-image-at-point-p))
(message "No thumbnail at point")
(if (not file)
(message "No original file name found")
(shell-command (format "%s \"%s\""
tumme-external-viewer
file))))))
(call-process shell-file-name nil nil nil shell-command-switch
(format "%s \"%s\"" tumme-external-viewer file))))))
;;;###autoload
(defun tumme-dired-display-external ()
"Display file at point using an external viewer."
(interactive)
(let ((file (dired-get-filename)))
(shell-command (format "%s \"%s\""
tumme-external-viewer
file))))
(call-process shell-file-name nil nil nil shell-command-switch
(format "%s \"%s\"" tumme-external-viewer file))))
(defun tumme-window-width-pixels (window)
"Calculate WINDOW width in pixels."
@ -1776,12 +1773,12 @@ original size."
(cons ?h height)
(cons ?f file)
(cons ?t new-file))))
(setq ret (shell-command command nil))
(setq ret (call-process shell-file-name nil nil nil
shell-command-switch command))
(if (not (= 0 ret))
(error "Could not resize image")))
(copy-file file new-file t))
(save-excursion
(set-buffer (tumme-create-display-image-buffer))
(with-current-buffer (tumme-create-display-image-buffer)
(let ((inhibit-read-only t))
(erase-buffer)
(clear-image-cache)
@ -1829,7 +1826,7 @@ With prefix argument ARG, display image in its original size."
(cons ?p tumme-cmd-rotate-thumbnail-program)
(cons ?d degrees)
(cons ?t (expand-file-name file)))))
(shell-command command nil)
(call-process shell-file-name nil nil nil shell-command-switch command)
;; Clear the cache to refresh image. I wish I could just refresh
;; the current file but I do not know how to do that. Yet...
(clear-image-cache))))
@ -1874,11 +1871,13 @@ overwritten. This confirmation can be turned off using
(cons ?d degrees)
(cons ?o (expand-file-name file))
(cons ?t tumme-temp-rotate-image-file))))
(if (not (= 0 (shell-command command nil)))
(if (not (= 0 (call-process shell-file-name nil nil nil
shell-command-switch command)))
(error "Could not rotate image")
(tumme-display-image tumme-temp-rotate-image-file)
(if (or (and tumme-rotate-original-ask-before-overwrite
(y-or-n-p "Rotate to temp file OK. Overwrite original image? "))
(y-or-n-p
"Rotate to temp file OK. Overwrite original image? "))
(not tumme-rotate-original-ask-before-overwrite))
(progn
(copy-file tumme-temp-rotate-image-file file t)
@ -1910,7 +1909,8 @@ YYYY_MM_DD_HH_MM_DD_ORIG_FILE_NAME.jpg. Used from
(format-time-string
"%Y:%m:%d %H:%M:%S"
(nth 5 (file-attributes (expand-file-name file))))))
(setq data (tumme-get-exif-data (expand-file-name file) "DateTimeOriginal")))
(setq data (tumme-get-exif-data (expand-file-name file)
"DateTimeOriginal")))
(while (string-match "[ :]" data)
(setq data (replace-match "_" nil nil data)))
(format "%s%s%s" data
@ -1930,7 +1930,8 @@ default value at the prompt."
(old-value (tumme-get-exif-data file "ImageDescription")))
(if (eq 0
(tumme-set-exif-data file "ImageDescription"
(read-string "Value of ImageDescription: " old-value)))
(read-string "Value of ImageDescription: "
old-value)))
(message "Successfully wrote ImageDescription tag.")
(error "Could not write ImageDescription tag")))))
@ -1944,7 +1945,7 @@ default value at the prompt."
(cons ?f (expand-file-name file))
(cons ?t tag-name)
(cons ?v tag-value))))
(shell-command command nil)))
(call-process shell-file-name nil nil nil shell-command-switch command)))
(defun tumme-get-exif-data (file tag-name)
"From FILE, return EXIF tag TAG-NAME."
@ -1956,10 +1957,10 @@ default value at the prompt."
(cons ?p tumme-cmd-read-exif-data-program)
(cons ?f file)
(cons ?t tag-name))))
(save-excursion
(set-buffer buf)
(with-current-buffer buf
(delete-region (point-min) (point-max))
(if (not (eq (shell-command command buf) 0))
(if (not (eq (call-process shell-file-name nil t nil
shell-command-switch command) 0))
(error "Could not get EXIF tag")
(goto-char (point-min))
;; Clean buffer from newlines and carriage returns before
@ -2084,11 +2085,11 @@ as initial value."
(defun tumme-get-comment (file)
"Get comment for file FILE."
(save-excursion
(let (end buf comment-beg comment (base-name (file-name-nondirectory file)))
(let (end buf comment-beg comment)
(setq buf (find-file tumme-db-file))
(goto-char (point-min))
(when (search-forward-regexp
(format "^%s" base-name) nil t)
(format "^%s" file) nil t)
(end-of-line)
(setq end (point))
(beginning-of-line)
@ -2377,7 +2378,8 @@ when using per-directory thumbnail file storage"))
;; Insert thumbnail with link to full image
(insert
(format "<a href=\"%s/%s\"><img src=\"%s/%s\"%s></a>\n"
tumme-gallery-image-root-url (file-name-nondirectory file)
tumme-gallery-image-root-url
(file-name-nondirectory file)
tumme-gallery-thumb-image-root-url
(file-name-nondirectory (tumme-thumb-name file)) file))
;; Insert comment, if any

View File

@ -1,8 +1,23 @@
2006-07-12 Michael Olson <mwolson@gnu.org>
* url-irc.el (url-irc-erc): Call erc-handle-irc-url.
2006-07-11 Stefan Monnier <monnier@iro.umontreal.ca>
* url-cookie.el: Remove spurious * in docstrings.
(url-cookie-write-file): Don't use versioned backups.
(url-cookie-host-can-set-p): Remove unused var `tmp'.
2006-07-04 Andreas Seltenreich <uwi7@rz.uni-karlsruhe.de>
* url-cookie.el (url-cookie-save-interval): Move to url-cookie group.
(url-cookie-write-file): Reset url-cookies-changed-since-last-save.
2006-05-12 Reiner Steib <Reiner.Steib@gmx.de>
* url-http.el (url-http-file-exists-p): Test if status is integer.
2006-05-05 Andreas Seltenreich <seltenreich@gmx.de> (tiny change)
2006-05-05 Andreas Seltenreich <seltenreich@gmx.de>
* url-http.el (url-http-parse-headers): Don't reuse connection if
"Connection: close" header was seen.

View File

@ -88,18 +88,18 @@ A cookie vector object is a vector of 7 slots:
(defvar url-cookie-storage nil "Where cookies are stored.")
(defvar url-cookie-secure-storage nil "Where secure cookies are stored.")
(defcustom url-cookie-file nil
"*File where cookies are stored on disk."
"File where cookies are stored on disk."
:type '(choice (const :tag "Default" :value nil) file)
:group 'url-file
:group 'url-cookie)
(defcustom url-cookie-confirmation nil
"*If non-nil, confirmation by the user is required to accept HTTP cookies."
"If non-nil, confirmation by the user is required to accept HTTP cookies."
:type 'boolean
:group 'url-cookie)
(defcustom url-cookie-multiple-line nil
"*If nil, HTTP requests put all cookies for the server on one line.
"If nil, HTTP requests put all cookies for the server on one line.
Some web servers, such as http://www.hotmail.com/, only accept cookies
when they are on one line. This is broken behavior, but just try
telling Microsoft that."
@ -168,7 +168,13 @@ telling Microsoft that."
(insert ")\n(setq url-cookie-secure-storage\n '")
(pp url-cookie-secure-storage (current-buffer))
(insert ")\n")
(insert " ;; Local Variables:\n"
";; version-control: never\n"
";; no-byte-compile: t\n"
";; End:\n")
(set (make-local-variable 'version-control) t)
(write-file fname)
(setq url-cookies-changed-since-last-save nil)
(kill-buffer (current-buffer))))))
(defun url-cookie-store (name value &optional expires domain localpart secure)
@ -313,18 +319,17 @@ telling Microsoft that."
'.'s in the domain name in order to set a cookie.")
(defcustom url-cookie-trusted-urls nil
"*A list of regular expressions matching URLs to always accept cookies from."
"A list of regular expressions matching URLs to always accept cookies from."
:type '(repeat regexp)
:group 'url-cookie)
(defcustom url-cookie-untrusted-urls nil
"*A list of regular expressions matching URLs to never accept cookies from."
"A list of regular expressions matching URLs to never accept cookies from."
:type '(repeat regexp)
:group 'url-cookie)
(defun url-cookie-host-can-set-p (host domain)
(let ((numdots 0)
(tmp domain)
(last nil)
(case-fold-search t)
(mindots 3))
@ -444,7 +449,7 @@ telling Microsoft that."
(defvar url-cookie-timer nil)
(defcustom url-cookie-save-interval 3600
"*The number of seconds between automatic saves of cookies.
"The number of seconds between automatic saves of cookies.
Default is 1 hour. Note that if you change this variable outside of
the `customize' interface after `url-do-setup' has been run, you need
to run the `url-cookie-setup-save-timer' function manually."
@ -453,7 +458,7 @@ to run the `url-cookie-setup-save-timer' function manually."
(if (bound-and-true-p url-setup-done)
(url-cookie-setup-save-timer)))
:type 'integer
:group 'url)
:group 'url-cookie)
(defun url-cookie-setup-save-timer ()
"Reset the cookie saver timer."

View File

@ -68,9 +68,7 @@ PASSWORD - What password to use"
(switch-to-buffer (concat chan "@" host)))))
(defun url-irc-erc (host port channel user password)
(erc-select :server host :port port :nick user :password password)
(when channel
(erc-join-channel channel)))
(erc-handle-irc-url host port channel user password))
;;;###autoload
(defun url-irc (url)

View File

@ -934,11 +934,12 @@ Else, add CODE to the process' sentinel."
(let ((proc (get-buffer-process (current-buffer))))
(cond
;; If there's no background process, just execute the code.
((null proc) (eval code))
;; If the background process has exited, reap it and try again
((eq (process-status proc) 'exit)
(delete-process proc)
(vc-exec-after code))
;; We used to explicitly call delete-process on exited processes,
;; but this led to timing problems causing process output to be
;; lost. Terminated processes get deleted automatically
;; anyway. -- cyd
((or (null proc) (eq (process-status proc) 'exit))
(eval code))
;; If a process is running, add CODE to the sentinel
((eq (process-status proc) 'run)
(let ((sentinel (process-sentinel proc)))
@ -2446,9 +2447,9 @@ If FOCUS-REV is non-nil, leave the point at that revision."
(vc-call print-log file)
(set-buffer "*vc*"))))
(pop-to-buffer (current-buffer))
(log-view-mode)
(vc-exec-after
`(let ((inhibit-read-only t))
(log-view-mode)
(goto-char (point-max)) (forward-line -1)
(while (looking-at "=*\n")
(delete-char (- (match-end 0) (match-beginning 0)))
@ -2456,7 +2457,7 @@ If FOCUS-REV is non-nil, leave the point at that revision."
(goto-char (point-min))
(if (looking-at "[\b\t\n\v\f\r ]+")
(delete-char (- (match-end 0) (match-beginning 0))))
(shrink-window-if-larger-than-buffer)
;; (shrink-window-if-larger-than-buffer)
;; move point to the log entry for the current version
(vc-call-backend ',(vc-backend file)
'show-log-entry

View File

@ -1,3 +1,176 @@
2006-07-18 Kim F. Storm <storm@cua.dk>
* display.texi (Forcing Redisplay): redisplay-preemption-period
only used on window systems. Add xref to Terminal Output.
* os.texi (Terminal Output): baud-rate only controls preemption on
non-window systems. Add xref to Forcing Redisplay.
* processes.texi (Low-Level Network): Rename node "Make Network"
to "Network Processes".
2006-07-18 Karl Berry <karl@gnu.org>
* variables.texi, functions.texi, customize.texi, loading.texi:
* edebug.texi, minibuf.texi: Fix page breaks through chapter 20.
2006-07-17 Chong Yidong <cyd@stupidchicken.com>
* commands.texi (Waiting): Document batch-mode sit-for behavior.
2006-07-17 Richard Stallman <rms@gnu.org>
* eval.texi, elisp.texi, text.texi: Use real doublequote inside menus.
Put period and comma inside quotes.
* loading.texi, markers.texi: Use real doublequote inside menus.
* windows.texi: Put point and comma inside quotes.
(Textual Scrolling): Use @samp for error message.
* variables.texi, tips.texi, syntax.texi, symbols.texi:
* strings.texi, streams.texi, processes.texi, os.texi:
* objects.texi, numbers.texi, modes.texi, minibuf.texi:
* lists.texi, keymaps.texi, intro.texi, hash.texi, internals.texi:
* gpl.texi, functions.texi, files.texi, frames.texi, doclicense.texi:
* display.texi, control.texi, commands.texi, buffers.texi, anti.texi:
Put point and comma inside quotes.
* control.texi (Processing of Errors): Add command-error-function.
* variables.texi (File Local Variables): Clarify that
file local variables make buffer-local bindings.
* modes.texi (Syntactic Font Lock): Give default for
font-lock-syntax-table.
2006-07-17 Nick Roberts <nickrob@snap.net.nz>
* text.texi (Special Properties): Clean up previous change.
2006-07-16 Karl Berry <karl@gnu.org>
* objects.texi, numbers.texi, strings.texi, lists.texi, hash.texi:
* control.texi: Fix bad page breaks through chapter 10 (control).
* anti.texi (Antinews): Reorder face-attribute fns to avoid
underfull hbox.
2006-07-15 Nick Roberts <nickrob@snap.net.nz>
* text.texi (Special Properties): Describe fontified text property
in relation to a character (not text).
2006-07-15 Kim F. Storm <storm@cua.dk>
* maps.texi (Standard Keymaps): Add xref for minibuffer maps.
Add apropos-mode-map, custom-mode-map, esc-map, global-map,
grep-mode-map, help-map, help-mode-map, kmacro-map, and tool-bar-map.
* anti.texi (Antinews): Mention redisplay function.
The kbd macro existed, but was not documented, before 22.x.
Function pos-visible-in-window-p is not new in 22.x, just enhanced.
2006-07-14 Nick Roberts <nickrob@snap.net.nz>
* display.texi (Displaying Messages): Add anchor.
* frames.texi (Dialog Boxes): Use it.
2006-07-12 Richard Stallman <rms@gnu.org>
* objects.texi (Frame Type): Explain nature of frames better.
* frames.texi (Frames): Explain nature of frames better.
2006-07-12 Ken Manheimer <ken.manheimer@gmail.com>
* tips.texi (Coding Conventions): Explain why use cl at compile time.
2006-07-12 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
* frames.texi (Window System Selections): Mention scrap support for Mac.
Default value of x-select-enable-clipboard is t on Mac.
* os.texi (Getting Out): Suspending is not allowed on Mac, either.
2006-07-11 Kim F. Storm <storm@cua.dk>
* display.texi (Forcing Redisplay): Add `redisplay' function.
Don't mention (sit-for -1) -- use (redisplay t) instead.
* commands.texi (Waiting): (sit-for -1) is no longer special.
(sit-for 0) is equivalent to (redisplay).
Iconifying/deiconifying no longer makes sit-for return.
2006-07-10 Nick Roberts <nickrob@snap.net.nz>
* display.texi (Buttons): Fix typo.
* index.texi, elisp.texi (New Symbols): Comment node out.
2006-07-09 Richard Stallman <rms@gnu.org>
* display.texi (Truncation): Clean up previous change.
2006-07-08 Richard Stallman <rms@gnu.org>
* commands.texi (Interactive Call): Use 3 as prefix in example
for execute-extended-command.
* display.texi (Attribute Functions): Move paragraph about
compatibility with Emacs < 21.
2006-07-09 Kim F. Storm <storm@cua.dk>
* display.texi (Refresh Screen): Clarify force-window-update.
(Truncation): "Normally" indicated by fringe arrows.
2006-07-08 Eli Zaretskii <eliz@gnu.org>
* windows.texi (Textual Scrolling, Resizing Windows):
* variables.texi (Constant Variables):
* text.texi (Buffer Contents, Deletion, Changing Properties)
(Property Search, Special Properties, Sticky Properties)
(Links and Mouse-1, Fields, Change Hooks):
* syntax.texi (Syntax Table Functions, Parsing Expressions)
(Categories):
* symbols.texi (Other Plists):
* streams.texi (Output Variables):
* processes.texi (Input to Processes, Query Before Exit):
* positions.texi (Word Motion, Text Lines, List Motion):
* os.texi (Init File, System Environment, Sound Output)
(Session Management):
* nonascii.texi (Text Representations, Character Sets)
(Chars and Bytes, Locales):
* modes.texi (Defining Minor Modes, Header Lines):
* minibuf.texi (Minibuffer Contents):
* markers.texi (Information from Markers):
* lists.texi (List Elements, Building Lists, Association Lists):
* keymaps.texi (Tool Bar):
* hash.texi (Creating Hash, Hash Access, Defining Hash, Other Hash):
* functions.texi (What Is a Function, Mapping Functions):
* frames.texi (Creating Frames, Parameter Access, Pointer Shape)
(Color Names, Text Terminal Colors, Display Feature Testing):
* files.texi (Visiting Functions, File Name Components)
(Unique File Names, Contents of Directories):
* display.texi (Forcing Redisplay, Displaying Messages)
(Temporary Displays, Font Selection, Auto Faces)
(Font Lookup, Fringe Indicators, Display Margins)
(Image Descriptors, Showing Images, Image Cache, Button Types)
(Making Buttons, Manipulating Buttons, Button Buffer Commands)
(Display Table Format, Glyphs):
* control.texi (Iteration):
* commands.texi (Command Loop Info, Adjusting Point):
* backups.texi (Making Backups, Auto-Saving):
Remove @tindex entries.
2006-07-07 Kim F. Storm <storm@cua.dk>
* display.texi (Fringe Cursors): Fix typo.
(Customizing Bitmaps): Fix define-fringe-bitmap entry.
(Overlay Arrow): Default is overlay-arrow fringe indicator.
2006-07-05 Richard Stallman <rms@gnu.org>
* text.texi (Buffer Contents): Add example of text props
@ -15,13 +188,13 @@
2006-07-05 Karl Berry <karl@gnu.org>
* elisp.texi: use @fonttextsize 10pt, a la emacs.texi.
and remove @setchapternewpage odd.
* elisp.texi: Use @fonttextsize 10pt, a la emacs.texi.
Remove @setchapternewpage odd.
Result is 1013 pages, down from 1100.
* anti.texi, customize.texi, display.texi,
internals.texi, minibuf.texi, modes.texi tips.texi:
fix overfull/underfull boxes.
* anti.texi, customize.texi, display.texi, internals.texi:
* minibuf.texi, modes.texi, tips.texi:
Fix overfull/underfull boxes.
2006-07-05 Thien-Thi Nguyen <ttn@gnu.org>

View File

@ -23,6 +23,12 @@ earlier major release, Emacs 20, will have a completely rewritten
redisplay engine, which will be even simpler.)
@itemize @minus
@item
The function @code{redisplay} has been removed. To update the display
without delay, call @code{(sit-for 0)}. Since it is generally
considered wasteful to update the display if there are any pending
input events, no replacement for @code{(redisplay t)} is provided.
@item
The function @code{force-window-update} has been removed. It
shouldn't be needed, since changes in window contents are detected
@ -80,8 +86,8 @@ removed. In @code{defface} specifications, the @code{supports}
predicate is no longer supported.
@item
@code{face-attribute-relative-p} and @code{merge-face-attribute} have
been removed.
The functions @code{merge-face-attribute} and
@code{face-attribute-relative-p} have been removed.
@item
The priority of faces in a list supplied by the @code{:inherit} face
@ -91,7 +97,7 @@ in a while, to keep Emacs Lisp programmers on their toes.
@item
The @code{min-colors} face attribute, used for tailoring faces to
limited-color displays, does not exist. If in doubt, use colors like
``white'' and ``black'', which ought to be defined everywhere.
``white'' and ``black,'' which ought to be defined everywhere.
@item
The @code{tty-color-mode} frame parameter does not exist. You should
@ -126,9 +132,9 @@ and key sequences:
@itemize @minus
@item
The @code{kbd} macro has been removed. It isn't that difficult to
write key sequences using the string and vector representations, and
we want to encourage users to learn.
The @code{kbd} macro is now obsolete and is no longer documented.
It isn't that difficult to write key sequences using the string and
vector representations, and we want to encourage users to learn.
@item
Emacs no longer supports key remapping. You can do pretty much the
@ -164,7 +170,7 @@ the sentinel.
@item
Many programming shortcuts have been deleted, to provide you with the
enjoyment of ``rolling your own''. The macros @code{while-no-input},
enjoyment of ``rolling your own.'' The macros @code{while-no-input},
@code{with-local-quit}, and @code{with-selected-window}, along with
@code{dynamic-completion-table} and @code{lazy-completion-table} no
longer exist. Also, there are no built-in progress reporters;
@ -304,7 +310,7 @@ In @code{replace-match}, the replacement text now inherits properties
from the surrounding text.
@item
@code{mode-line-format} no longer supports the @code{:propertize},
The variable @code{mode-line-format} no longer supports the @code{:propertize},
@code{%i}, and @code{%I} constructs. The function
@code{format-mode-line} has been removed.
@ -319,8 +325,9 @@ The functions @code{window-pixel-edges} and
think in terms of lines and columns, not pixel coordinates. (Sometime
in the distant past, we will do away with graphical terminals
entirely, in favor of text terminals.) For similar reasons, the
functions @code{posn-at-point}, @code{posn-at-x-y}, and
@code{pos-visible-in-window-p} have been removed.
functions @code{posn-at-point} and @code{posn-at-x-y} have been removed, and
@code{pos-visible-in-window-p} no longer worries about partially
visible rows.
@item
The macro @code{save-selected-window} only saves the selected window

Some files were not shown because too many files have changed in this diff Show More