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:
commit
63db3c1b3f
141
AUTHORS
141
AUTHORS
@ -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
|
||||
|
||||
|
211
CONTRIBUTE
211
CONTRIBUTE
@ -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.
|
||||
|
36
ChangeLog
36
ChangeLog
@ -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
16
INSTALL
@ -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
|
||||
|
@ -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>
|
||||
|
||||
|
@ -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
|
||||
|
76
admin/README
76
admin/README
@ -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
4
configure
vendored
@ -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
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
110
etc/ERC-NEWS
110
etc/ERC-NEWS
@ -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.
|
||||
|
@ -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!");
|
||||
|
38
etc/NEWS
38
etc/NEWS
@ -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
|
||||
|
17
etc/PROBLEMS
17
etc/PROBLEMS
@ -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.
|
||||
|
||||
|
17
etc/TODO
17
etc/TODO
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
6943
etc/ru-refcard.ps
6943
etc/ru-refcard.ps
File diff suppressed because it is too large
Load Diff
@ -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)
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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.
|
||||
|
@ -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;
|
||||
|
||||
|
||||
|
||||
|
@ -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[] =
|
||||
{
|
||||
|
129
lib-src/etags.c
129
lib-src/etags.c
@ -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;
|
||||
}
|
||||
|
371
lisp/ChangeLog
371
lisp/ChangeLog
@ -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>
|
||||
|
||||
|
@ -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.
|
||||
#
|
||||
|
633
lisp/allout.el
633
lisp/allout.el
@ -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.
|
||||
|
@ -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))
|
||||
|
@ -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."
|
||||
|
@ -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)
|
||||
|
@ -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))
|
||||
|
198
lisp/dirtrack.el
198
lisp/dirtrack.el
@ -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
|
||||
|
@ -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.")
|
||||
|
||||
|
@ -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
|
||||
|
@ -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))))
|
||||
|
@ -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):
|
||||
|
@ -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)
|
||||
|
@ -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.
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
|
@ -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" "")
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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)
|
||||
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
|
@ -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."
|
||||
|
@ -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."
|
||||
|
@ -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."
|
||||
|
@ -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
|
||||
|
232
lisp/erc/erc.el
232
lisp/erc/erc.el
@ -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.
|
||||
|
@ -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)
|
||||
|
||||
|
@ -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."
|
||||
|
@ -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>
|
||||
|
||||
|
@ -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)
|
||||
|
@ -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.")
|
||||
|
||||
|
@ -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)))))))
|
||||
|
@ -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"))
|
||||
|
||||
|
||||
|
@ -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))
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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\"`({<>})']+\\)")
|
||||
|
@ -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
|
||||
|
@ -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.
|
||||
|
2074
lisp/ldefs-boot.el
2074
lisp/ldefs-boot.el
File diff suppressed because it is too large
Load Diff
@ -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))
|
||||
|
@ -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.")
|
||||
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
|
||||
|
@ -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'.
|
||||
|
@ -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
|
||||
|
@ -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.
|
||||
|
@ -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.
|
||||
|
@ -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.
|
||||
|
@ -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)
|
||||
|
@ -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."
|
||||
|
@ -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'.")
|
||||
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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) ))
|
||||
|
||||
|
@ -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)))
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
|
45
lisp/subr.el
45
lisp/subr.el
@ -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.
|
||||
|
||||
|
@ -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.
|
||||
|
@ -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
|
||||
|
@ -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))))
|
||||
|
@ -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
|
||||
|
@ -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)."
|
||||
|
@ -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
|
||||
|
@ -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.
|
||||
|
@ -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."
|
||||
|
@ -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)
|
||||
|
15
lisp/vc.el
15
lisp/vc.el
@ -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
|
||||
|
@ -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>
|
||||
|
||||
|
@ -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
Loading…
Reference in New Issue
Block a user