mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-02-16 09:14:18 +00:00
Merged from emacs@sv.gnu.org. Last-minute emacsclient rewrites be damned!
Patches applied: * emacs@sv.gnu.org/emacs--devo--0--patch-490 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-491 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-492 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-493 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-494 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-495 Merge from gnus--rel--5.10 * emacs@sv.gnu.org/emacs--devo--0--patch-496 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-497 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-498 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-499 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-500 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-501 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-502 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-503 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-504 Merge from gnus--rel--5.10 * emacs@sv.gnu.org/emacs--devo--0--patch-505 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-506 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-507 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-508 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-509 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-510 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-511 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-512 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-513 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-514 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-515 Merge from gnus--rel--5.10 * emacs@sv.gnu.org/emacs--devo--0--patch-516 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-517 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-518 Merge from gnus--rel--5.10 * emacs@sv.gnu.org/emacs--devo--0--patch-519 Update from CVS: etc/TUTORIAL.cn: Updated. * emacs@sv.gnu.org/emacs--devo--0--patch-520 Merge from erc--emacs--22 * emacs@sv.gnu.org/emacs--devo--0--patch-521 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-522 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-523 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-524 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-525 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-526 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-527 Merge from gnus--rel--5.10 * emacs@sv.gnu.org/emacs--devo--0--patch-528 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-529 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-530 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-531 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-532 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-533 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-534 Merge from gnus--rel--5.10 * emacs@sv.gnu.org/emacs--devo--0--patch-535 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-161 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-162 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-163 Merge from emacs--devo--0 * emacs@sv.gnu.org/gnus--rel--5.10--patch-164 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-165 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-166 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-167 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-168 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-169 Merge from emacs--devo--0 * emacs@sv.gnu.org/gnus--rel--5.10--patch-170 Update from CVS git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-588
This commit is contained in:
commit
974b73e838
356 changed files with 19046 additions and 10728 deletions
147
AUTHORS
147
AUTHORS
|
|
@ -3,6 +3,8 @@ Foundation's distribution of GNU Emacs. To show our appreciation for
|
|||
their public spirit, we list here in alphabetical order a condensed
|
||||
list of their contributions.
|
||||
|
||||
"$,1 a(Bukasz Demianiuk": changed erc.el
|
||||
|
||||
Aaron Larson: changed bibtex.el
|
||||
|
||||
Aaron S. Hawley: changed files.texi files.el isearch.el misc.texi
|
||||
|
|
@ -35,7 +37,7 @@ Alan Mackenzie: wrote cc-awk.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
|
||||
buffers.texi cc-fix.el cc-mode-19.el ebrowse.el and 15 other files
|
||||
|
||||
Alan Shutko: changed diary-lib.el calendar.el bindings.el cal-hebrew.el
|
||||
easy-mmode.el gnus-sum.el ibuf-ext.el ibuffer.el lunar.el macros.el
|
||||
|
|
@ -120,11 +122,11 @@ Andreas Luik: changed xfns.c xterm.c
|
|||
Andreas Schwab: changed Makefile.in files.el lisp.h xdisp.c alloc.c
|
||||
configure.in fns.c print.c coding.c dired.el editfns.c info.el eval.c
|
||||
fileio.c simple.el buffer.c minibuf.c xterm.c emacs.c keyboard.c
|
||||
process.c and 444 other files
|
||||
process.c and 446 other files
|
||||
|
||||
Andreas Seltenreich: changed nnweb.el gnus.texi gnus-art.el gnus-ml.el
|
||||
gnus-srvr.el gnus-start.el gnus-util.el gnus.el mm-url.el mm-uu.el
|
||||
nnslashdot.el url-cookie.el url-http.el
|
||||
Andreas Seltenreich: changed nnweb.el gnus.texi battery.el gnus-art.el
|
||||
gnus-ml.el gnus-srvr.el gnus-start.el gnus-util.el gnus.el mm-url.el
|
||||
mm-uu.el nnslashdot.el 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
|
||||
|
|
@ -190,7 +192,7 @@ Ben Harris: changed configure.in
|
|||
Ben Key: changed w32.c w32fns.c w32menu.c makefile.w32-in w32.h w32term.c
|
||||
emacs.c gmake.defs ms-w32.h nmake.defs sound.c
|
||||
|
||||
Ben North: changed fill.el isearch.el lisp-mode.el
|
||||
Ben North: changed fill.el isearch.el lisp-mode.el w32term.c xfaces.c
|
||||
|
||||
Benjamin Drieu: wrote pong.el
|
||||
|
||||
|
|
@ -325,9 +327,9 @@ Cheng Gao: changed MORE.STUFF flymake.el tips.texi url-dired.el
|
|||
|
||||
Chong Yidong: changed cus-edit.el simple.el custom.el display.texi
|
||||
longlines.el files.el text.texi custom.texi files.texi keyboard.c
|
||||
wid-edit.el cus-theme.el frames.texi info.el xterm.c compile.el
|
||||
image-mode.el keymaps.texi misc.texi mouse.el sendmail.el
|
||||
and 162 other files
|
||||
wid-edit.el compile.el cus-theme.el frames.texi info.el misc.texi
|
||||
mouse.el xterm.c image-mode.el keymaps.texi sendmail.el
|
||||
and 176 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
|
||||
|
|
@ -492,8 +494,8 @@ David J. Mackenzie: changed configure.in etags.c fakemail.c movemail.c
|
|||
|
||||
David Kastrup: changed greek.el replace.el search.c ange-ftp.el faq.texi
|
||||
help.el mouse.el Makefile.in calc.el desktop.el keymaps.texi
|
||||
meta-mode.el process.c search.texi DEBUG DEVEL.HUMOR MAILINGLISTS
|
||||
autoload.el browse-url.el buffer.c building.texi and 32 other files
|
||||
meta-mode.el process.c search.texi subr.el DEBUG DEVEL.HUMOR
|
||||
MAILINGLISTS autoload.el browse-url.el buffer.c and 32 other files
|
||||
|
||||
David K,Ae(Bgedal: wrote tempo.el
|
||||
and changed sendmail.el xmenu.c
|
||||
|
|
@ -531,8 +533,8 @@ and changed w32menu.c w32term.c close.png close.xpm empty.png empty.xpm
|
|||
no-handle.xpm open.png open.xpm and 20 other files
|
||||
|
||||
David Reitter: wrote mailclient.el
|
||||
and changed commands.h easy-mmode.el emacsbug.el keymap.c macterm.c
|
||||
menu-bar.el minibuf.c sendmail.el url-http.el
|
||||
and changed commands.h easy-mmode.el emacsbug.el emacsclient.c keymap.c
|
||||
macterm.c menu-bar.el minibuf.c sendmail.el url-http.el
|
||||
|
||||
David Robinson: changed menu-bar.el x-win.el
|
||||
|
||||
|
|
@ -626,9 +628,9 @@ Eli Tziperman: wrote rmail-spam-filter.el
|
|||
|
||||
Eli Zaretskii: wrote codepage.el rxvt.el tty-colors.el
|
||||
and changed msdos.c Makefile.in makefile.w32-in files.el info.el fileio.c
|
||||
startup.el mainmake.v2 config.bat menu-bar.el pc-win.el simple.el
|
||||
internal.el msdos.h rmail.el xfaces.c frame.c dosfns.c faces.el
|
||||
frame.el emacs.c and 517 other files
|
||||
startup.el mainmake.v2 config.bat menu-bar.el pc-win.el rmail.el
|
||||
simple.el internal.el msdos.h xfaces.c frame.c dosfns.c faces.el
|
||||
frame.el emacs.c and 518 other files
|
||||
|
||||
Emanuele Giaquinta: changed rxvt.el configure.in etags.c frame.el
|
||||
sh-script.el text.texi
|
||||
|
|
@ -826,17 +828,17 @@ Germano Caronni: changed ralloc.c
|
|||
|
||||
Gernot Heiser: changed refer.el
|
||||
|
||||
Giorgos Keramidas: changed amdx86-64.h apropos.el configure.in
|
||||
display.texi fringe.c fringe.el lisp.h windows.texi
|
||||
Giorgos Keramidas: changed configure.in amdx86-64.h apropos.el
|
||||
display.texi fringe.c fringe.el lisp.h windows.texi xmenu.c
|
||||
|
||||
Giuseppe Scrivano: changed buffer.c configure configure.in sysdep.c
|
||||
xsmfns.c
|
||||
|
||||
Glenn Morris: changed f90.el diary-lib.el calendar.el fortran.el
|
||||
Glenn Morris: changed f90.el calendar.el diary-lib.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 41 other files
|
||||
|
||||
Glynn Clements: wrote gamegrid.el snake.el tetris.el
|
||||
|
||||
|
|
@ -1011,9 +1013,9 @@ and changed bytecode.c mail-extr.el subr.el
|
|||
|
||||
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 keyboard.c Makefile.in config.in frames.texi x-win.el
|
||||
configure xselect.c emacs.c alloc.c xlwmenu.c startup.el xdisp.c
|
||||
xresources.texi cus-start.el and 172 other files
|
||||
configure.in x-win.el Makefile.in frames.texi keyboard.c config.in
|
||||
configure xselect.c emacs.c alloc.c xlwmenu.c xresources.texi frame.c
|
||||
startup.el xdisp.c and 174 other files
|
||||
|
||||
Jan Nieuwenhuizen: changed info.el TUTORIAL.nl emacs.c emacsclient.c
|
||||
gnus-start.el gud.el nnmh.el server.el startup.el
|
||||
|
|
@ -1037,7 +1039,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 79 other files
|
||||
w32inevt.c config.nt configure.bat and 80 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
|
||||
|
|
@ -1078,6 +1080,8 @@ Jens Toivo Berger Thielemann: changed word-help.el
|
|||
|
||||
Jens-Ulrik Holger Petersen: changed cus-edit.el find-func.el gnus.el
|
||||
|
||||
Jeramey Crawford: changed amdx86-64.h configure.in
|
||||
|
||||
Jeremy Bertram Maitin-Shepard: changed erc.el erc-backend.el
|
||||
erc-button.el mml.el
|
||||
|
||||
|
|
@ -1258,9 +1262,9 @@ Juan Le,As(Bn Lahoz Garc,Am(Ba: wrote wdired.el
|
|||
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 ada-mode.el comint.el org.el w32-win.el
|
||||
xdisp.c allout.el bs.el desktop.el idlwave.el and 554 other files
|
||||
files.el w32fns.c bs.el cperl-mode.el eval.c org.el replace.el
|
||||
simple.el sh-script.el vhdl-mode.el ada-mode.el allout.el comint.el
|
||||
emacsclient.c idlwave.el process.c w32-win.el and 584 other files
|
||||
|
||||
Juergen Hoetzel: changed url-handlers.el
|
||||
|
||||
|
|
@ -1277,7 +1281,7 @@ Jure Cuhalev: changed ispell.el
|
|||
Juri Linkov: changed info.el simple.el isearch.el replace.el compile.el
|
||||
faces.el display.texi grep.el descr-text.el cus-edit.el dired.el
|
||||
dired-aux.el edebug.el files.el lisp-mode.el lisp.el modes.texi mule.el
|
||||
compare-w.el desktop.el files.texi and 220 other files
|
||||
compare-w.el desktop.el files.texi and 221 other files
|
||||
|
||||
Justin Sheehy: changed gnus-sum.el nntp.el
|
||||
|
||||
|
|
@ -1341,7 +1345,7 @@ Katsumi Yamaoka: wrote canlock.el
|
|||
and changed gnus-art.el message.el gnus-sum.el gnus.texi mm-decode.el
|
||||
mm-view.el gnus-util.el gnus-msg.el mm-util.el gnus.el lpath.el
|
||||
gnus-group.el gnus-start.el rfc2047.el dgnushack.el mm-uu.el
|
||||
gnus-agent.el nntp.el mml.el nnrss.el rfc2231.el and 71 other files
|
||||
gnus-agent.el mml.el nntp.el nnrss.el rfc2231.el and 71 other files
|
||||
|
||||
Kaveh R. Ghazi: changed delta88k.h xterm.c
|
||||
|
||||
|
|
@ -1473,8 +1477,8 @@ Lars Balker Rasmussen: changed gnus-art.el gnus-agent.el message.el
|
|||
Lars Brinkhoff: changed building.texi config.in configure configure.in
|
||||
editfns.c fns.c os.texi
|
||||
|
||||
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
|
||||
Lars Hansen: changed desktop.el info.el mh-e.el tramp.el dired-x.el
|
||||
dired-x.texi dired.el ls-lisp.el rmail.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 39 other files
|
||||
|
||||
|
|
@ -1518,7 +1522,8 @@ and changed fortran.el ispell.el sendmail.el cmuscheme.el comint.el
|
|||
Leigh Stoller: changed emacsclient.c emacsserver.c server.el
|
||||
|
||||
Lennart Borgman: changed window.el ada-xref.el filesets.el flymake.el
|
||||
mouse.el recentf.el shell.el texinfmt.el w32term.c w32term.h
|
||||
help-fns.el mouse.el recentf.el shell.el texinfmt.el tutorial.el
|
||||
w32term.c w32term.h
|
||||
|
||||
Lennart Staflin: changed dired.el diary-ins.el diary-lib.el tq.el xdisp.c
|
||||
|
||||
|
|
@ -1554,8 +1559,8 @@ and changed emacsclient.c emacsserver.c etags.c lisp.h movemail.c
|
|||
|
||||
Maciek Pasternacki: changed nnrss.el
|
||||
|
||||
Magnus Henoch: changed ispell.el url-http.el autoinsert.el rcirc.el
|
||||
url-gw.el url-https.el url-parse.el url.el
|
||||
Magnus Henoch: changed url-http.el ispell.el url-gw.el url-parse.el
|
||||
url.el autoinsert.el rcirc.el url-https.el
|
||||
|
||||
Manuel Serrano: wrote flyspell.el
|
||||
|
||||
|
|
@ -1602,6 +1607,8 @@ Mark D. Baushke: changed mh-e.el mh-utils.el mh-mime.el mh-comp.el
|
|||
mh-seq.el mh-speed.el mh-funcs.el mh-alias.el MH-E-NEWS etags.c
|
||||
mh-junk.el mh-pick.el mh-tool-bar.el mh-xemacs-compat.el
|
||||
|
||||
Mark Davies: changed Makefile.in netbsd.h ralloc.c sort.el
|
||||
|
||||
Mark Diekhans: changed compile.el
|
||||
|
||||
Mark H. Weaver: changed comint.el
|
||||
|
|
@ -1640,7 +1647,7 @@ and changed cus-edit.el Makefile.in files.el compile.el rmail.el
|
|||
mule-cmds.el rmailout.el checkdoc.el configure.in custom.el emacsbug.el
|
||||
gnus.el help-fns.el ls-lisp.el mwheel.el and 122 other files
|
||||
|
||||
Markus Triska: changed doctor.el
|
||||
Markus Triska: changed doctor.el handwrite.el
|
||||
|
||||
Marshall T. Vandegrift: changed gnus-fun.el
|
||||
|
||||
|
|
@ -1660,9 +1667,9 @@ Martin Lorentzon: changed vc.el vc-cvs.el vc-hooks.el vc-rcs.el
|
|||
Martin Neitzel: changed sc.el
|
||||
|
||||
Martin Rudalics: changed cus-edit.el wid-edit.el flyspell.el cus-start.el
|
||||
files.el font-lock.el insdel.c syntax.c buffer.c buffer.h casefiddle.c
|
||||
cperl-mode.el custom.el dispextern.h dnd.el editfns.c eldoc.el fileio.c
|
||||
find-func.el help-at-pt.el hideif.el and 20 other files
|
||||
files.el font-lock.el insdel.c macmenu.c syntax.c w32menu.c window.el
|
||||
xdisp.c xmenu.c buffer.c buffer.h casefiddle.c cperl-mode.el custom.el
|
||||
dispextern.h dnd.el editfns.c and 25 other files
|
||||
|
||||
Martin Stjernholm: wrote cc-bytecomp.el
|
||||
and changed cc-engine.el cc-cmds.el cc-langs.el cc-defs.el cc-mode.el
|
||||
|
|
@ -1731,8 +1738,6 @@ and changed tramp.el tramp.texi tramp-vc.el tramp-util.el ange-ftp.el
|
|||
Michael Ben-Gershon: changed acorn.h configure.in riscix1-1.h riscix1-2.h
|
||||
unexec.c
|
||||
|
||||
Michael Cadilhac: changed blackbox.el rect.el subr.el zone.el
|
||||
|
||||
Michael Cook: changed gnus-sum.el
|
||||
|
||||
Michael D. Ernst: wrote reposition.el
|
||||
|
|
@ -1800,9 +1805,9 @@ Michal Jankowski: changed insdel.c keyboard.c
|
|||
|
||||
Michal Nazarewicz: changed ispell.el
|
||||
|
||||
Micha,Ak(Bl Cadilhac: changed ido.el ispell.el cus-edit.el dispnew.c info.el
|
||||
life.el lpr.el make-mode.el pong.el print.c process.c startup.el
|
||||
uni-input.el
|
||||
Micha,Ak(Bl Cadilhac: changed ido.el ispell.el battery.el blackbox.el
|
||||
cus-edit.el dispnew.c info.el life.el lpr.el make-mode.el pong.el
|
||||
print.c process.c rect.el startup.el subr.el uni-input.el zone.el
|
||||
|
||||
Michelangelo Grigni: wrote ffap.el
|
||||
and changed gnus-score.el
|
||||
|
|
@ -1898,6 +1903,8 @@ and changed gud.el building.texi tooltip.el speedbar.el bindings.el
|
|||
|
||||
Nico Francois: changed w32fns.c w32inevt.c w32menu.c
|
||||
|
||||
Niimi Satoshi: changed pp.el search.c
|
||||
|
||||
Niklas Morberg: changed nnweb.el gnus-art.el nnimap.el spam.el
|
||||
|
||||
Noah Friedman: wrote eldoc.el rlogin.el rsz-mini.el type-break.el
|
||||
|
|
@ -1910,8 +1917,8 @@ Nobuyuki Hikichi: changed news-risc.h
|
|||
|
||||
Noel Cragg: changed mh-junk.el
|
||||
|
||||
Nozomu Ando: changed buffer.c mips.h pmax.h smtpmail.el sysselect.h
|
||||
unexelf.c unexmacosx.c
|
||||
Nozomu Ando: changed unexmacosx.c alloc.c buffer.c mips.h pmax.h
|
||||
smtpmail.el sysselect.h unexelf.c
|
||||
|
||||
Nuutti Kotivuori: changed gnus-sum.el flow-fill.el gnus-cache.el
|
||||
|
||||
|
|
@ -1948,6 +1955,8 @@ Oscar Figueiredo: wrote eudc-bob.el eudc-export.el eudc-hotlist.el
|
|||
eudc-vars.el eudc.el eudcb-bbdb.el eudcb-ldap.el eudcb-ph.el ldap.el
|
||||
and changed ph.el
|
||||
|
||||
,bS(Bscar Fuentes: changed emacsclient.c
|
||||
|
||||
Oystein Viggen: changed dgnushack.el
|
||||
|
||||
P. E. Jareth Hein: changed gnus-util.el
|
||||
|
|
@ -2120,9 +2129,9 @@ and changed gnus-art.el gnus-msg.el gnus.texi message.el nnmail.el
|
|||
|
||||
Reiner Steib: wrote gmm-utils.el
|
||||
and changed gnus-art.el message.el gnus.texi gnus-sum.el gnus.el
|
||||
gnus-group.el gnus-faq.texi mml.el gnus-start.el gnus-util.el
|
||||
gnus-msg.el gnus-score.el message.texi mm-util.el files.el
|
||||
gnus-agent.el spam-report.el mm-decode.el nnweb.el spam.el deuglify.el
|
||||
gnus-group.el gnus-faq.texi gnus-util.el mml.el gnus-start.el
|
||||
mm-util.el gnus-agent.el gnus-msg.el gnus-score.el message.texi
|
||||
files.el spam-report.el mm-decode.el nnweb.el spam.el deuglify.el
|
||||
and 162 other files
|
||||
|
||||
Remek Trzaska: changed gnus-ems.el
|
||||
|
|
@ -2149,7 +2158,7 @@ Richard L. Pieri: wrote pop3.el
|
|||
|
||||
Richard M. Heiberger: changed tex-mode.el
|
||||
|
||||
Richard M. Stallman: wrote [The original GNU emacs and numerous files]
|
||||
Richard M. Stallman: wrote [The original GNU Emacs and numerous files]
|
||||
easymenu.el font-lock.el image-mode.el menu-bar.el paren.el
|
||||
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
|
||||
|
|
@ -2183,14 +2192,14 @@ Robert Bihlmeyer: changed gnus-score.el gnus-util.el message.el
|
|||
Robert Fenk: changed desktop.el
|
||||
|
||||
Robert J. Chassell: wrote makeinfo.el texinfo.el texnfo-upd.el
|
||||
and changed texinfmt.el page-ext.el emacs.tex emacs-lisp-intro.texi
|
||||
and changed texinfmt.el emacs-lisp-intro.texi page-ext.el emacs.tex
|
||||
info.el loaddefs.el texinfo-update.el texinfo.tex INSTALL case-table.el
|
||||
cl.texinfo history.el informat.el latin-1.el latin-2.el latin-3.el
|
||||
latin-4.el page.el tex-mode.el texinfo.texinfo vip.texinfo
|
||||
|
||||
Robert Thorpe: changed cus-start.el
|
||||
|
||||
Roberto Rodr,Am(Bguez: changed ada-mode.texi widget.texi
|
||||
Roberto Rodr,Am(Bguez: changed ada-mode.texi glossary.texi widget.texi
|
||||
|
||||
Roderick Schertler: changed dgux.h dgux4.h gud.el sysdep.c
|
||||
|
||||
|
|
@ -2217,11 +2226,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 dired-x.el ibuf-ext.el compile.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
|
||||
Romain Francoise: changed faq.texi dired-x.el ibuf-ext.el Makefile.in
|
||||
compile.el message.el puresize.h replace.el subr.el files.texi
|
||||
gnus-fun.el gnus.texi help-fns.el make-dist rcirc.el antlr-mode.el
|
||||
bookmark.el buffer.c comint.el diary-lib.el dired.el
|
||||
and 124 other files
|
||||
and 126 other files
|
||||
|
||||
Roman Belenov: changed which-func.el
|
||||
|
||||
|
|
@ -2317,6 +2326,8 @@ Shinichirou Sugou: changed etags.c
|
|||
Shuhei Kobayashi: wrote hex-util.el sha1.el
|
||||
and changed gnus-group.el message.el nnmail.el
|
||||
|
||||
Shun-Ichi Goto: changed url-http.el
|
||||
|
||||
Sidney Markowitz: changed doctor.el
|
||||
|
||||
Sigbjorn Finne: changed gnus-srvr.el
|
||||
|
|
@ -2339,12 +2350,12 @@ Simon Marshall: wrote fast-lock.el lazy-lock.el regexp-opt.el
|
|||
and changed comint.el font-lock.el shell.el rmail.el fortran.el
|
||||
sendmail.el subr.el dired.el sh-script.el texinfo.el add-log.el
|
||||
compile.el outline.el help.el menu-bar.el perl-mode.el ps-print.el
|
||||
rmailsum.el bytecomp.el data.c faces.el and 56 other files
|
||||
rmailsum.el bytecomp.el data.c faces.el and 57 other files
|
||||
|
||||
Skip Collins: changed w32fns.c w32term.c w32term.h
|
||||
|
||||
Slawomir Nowaczyk: changed python.el TUTORIAL.pl emacs.py flyspell.el
|
||||
ls-lisp.el
|
||||
Slawomir Nowaczyk: changed emacs.py python.el TUTORIAL.pl flyspell.el
|
||||
ls-lisp.el w32proc.c
|
||||
|
||||
Spencer Thomas: changed dabbrev.el emacsclient.c emacsserver.c gnus.texi
|
||||
server.el tcp.c unexec.c
|
||||
|
|
@ -2378,11 +2389,14 @@ 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-comp.el mh-utils.el mh-customize.el
|
||||
fileio.c files.el fortran.el mh-e.texi mh-junk.el mh-mime.el mwheel.el
|
||||
mh-junk.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
|
||||
|
||||
Stephen Leake: changed ada-mode.el ada-xref.el ada-stmt.el ada-mode.texi
|
||||
ada-prj.el
|
||||
|
||||
Steve Fisk: wrote cal-tex.el
|
||||
|
||||
Steve Nygard: changed unexnext.c
|
||||
|
|
@ -2467,6 +2481,8 @@ Terrence Brannon: wrote landmark.el
|
|||
|
||||
Terry Jones: wrote shadow.el
|
||||
|
||||
Tetsurou Okazaki: changed xterm.c
|
||||
|
||||
Theodore Jump: changed w32-win.el w32faces.c
|
||||
|
||||
Thien-Thi Nguyen: wrote hideshow.el make-mms-derivative.el
|
||||
|
|
@ -2503,7 +2519,8 @@ Tijs Van Bakel: changed erc.el
|
|||
|
||||
Tim Fleehart: wrote makefile.nt
|
||||
|
||||
Tim Van Holder: changed Makefile.in compile.el configure.in which-func.el
|
||||
Tim Van Holder: changed emacsclient.c Makefile.in compile.el configure.in
|
||||
which-func.el
|
||||
|
||||
Tobias C. Rittweiler: changed font-lock.el
|
||||
|
||||
|
|
@ -2642,7 +2659,7 @@ and changed latin-pre.el pl-refcard.ps pl-refcard.tex refcard-pl.ps
|
|||
|
||||
Wolfgang Glas: changed unexsgi.c
|
||||
|
||||
Wolfgang Jenkner: changed conf-mode.el pcvs.el
|
||||
Wolfgang Jenkner: changed conf-mode.el gnus-sum.el pcvs.el
|
||||
|
||||
Wolfgang Rupprecht: wrote float-sup.el floatfns.c sup-mouse.el
|
||||
and changed process.c alloc.c callint.c config.h.in config.in
|
||||
|
|
@ -2660,15 +2677,15 @@ Xavier Maillard: changed gnus-faq.texi gnus-score.el spam.el
|
|||
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 config.h macos.texi xfaces.c Makefile.in darwin.h dispextern.h
|
||||
dispnew.c w32term.c and 69 other files
|
||||
macgui.h macmenu.c image.c macselect.c keyboard.c xdisp.c makefile.MPW
|
||||
emacs.c config.h macos.texi xfaces.c Makefile.in darwin.h INSTALL
|
||||
dispextern.h dispnew.c and 71 other files
|
||||
|
||||
Yann Dirson: changed imenu.el
|
||||
|
||||
Yoichi Nakayama: changed browse-url.el finder.el man.el rfc2368.el
|
||||
|
||||
Yoni Rabkin Katzenell: changed whitespace.el
|
||||
Yoni Rabkin Katzenell: changed faces.el whitespace.el
|
||||
|
||||
Yoshiki Hayashi: changed texinfmt.el nnheader.el
|
||||
|
||||
|
|
|
|||
138
ChangeLog
138
ChangeLog
|
|
@ -1,3 +1,41 @@
|
|||
2006-11-27 Chris Moore <christopher.ian.moore@gmail.com> (tiny change)
|
||||
|
||||
* Makefile.in: Touch only the parts of the share/emacs directory
|
||||
specific to this version.
|
||||
|
||||
2006-11-26 Chong Yidong <cyd@stupidchicken.com>
|
||||
|
||||
* configure.in (HAVE_X86_64_LIB64_DIR): New test.
|
||||
|
||||
* configure: Regenerate.
|
||||
|
||||
2006-11-14 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
|
||||
|
||||
* configure.in (HAVE_CANCELMENUTRACKING): Remove test.
|
||||
|
||||
* configure: Regenerate.
|
||||
|
||||
2006-11-08 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
|
||||
|
||||
* configure.in: Prefer X11 to Carbon only when some X-specific
|
||||
option is specified (Thanks to Jan Dj,Ad(Brv and Andreas Schwab).
|
||||
|
||||
* configure: Regenerate.
|
||||
|
||||
2006-11-04 Romain Francoise <romain@orebokech.com>
|
||||
|
||||
* Makefile.in (bootstrap-clean-before): Fix typo.
|
||||
Use new target `bootstrap-clean' in the leim subdirectory.
|
||||
|
||||
2006-11-03 Giorgos Keramidas <keramida@ceid.upatras.gr> (tiny change)
|
||||
|
||||
* configure.in: Enable sparc64/ia64/powerpc FreeBSD builds.
|
||||
|
||||
2006-10-30 Chong Yidong <cyd@stupidchicken.com>
|
||||
|
||||
* make-dist: Add makefile.w32-in to the man, lispref and lispintro
|
||||
directories.
|
||||
|
||||
2006-10-29 Chong Yidong <cyd@stupidchicken.com>
|
||||
|
||||
* configure: Regenerate using autoconf 2.59.
|
||||
|
|
@ -23,16 +61,6 @@
|
|||
|
||||
* configure: Regenerate.
|
||||
|
||||
2006-10-23 Michael Kifer <kifer@cs.stonybrook.edu>
|
||||
|
||||
* viper-cmd.el (viper-prefix-arg-com): define gg as G0
|
||||
|
||||
* viper-ex.el (ex-read): quote file argument.
|
||||
|
||||
* ediff-diff.el (ediff-same-file-contents): expand file names.
|
||||
|
||||
* ediff-mult.el (ediff-append-custom-diff): quote shell file arguments.
|
||||
|
||||
2006-10-23 Andreas Schwab <schwab@suse.de>
|
||||
|
||||
* configure.in: Make sure x_default_search_path is always set even
|
||||
|
|
@ -47,7 +75,7 @@
|
|||
|
||||
2006-09-30 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* configure: Regenerated.
|
||||
* configure: Regenerate.
|
||||
|
||||
2006-09-28 Kenichi Handa <handa@m17n.org>
|
||||
|
||||
|
|
@ -81,7 +109,7 @@
|
|||
|
||||
* configure.in (PKG_CHECK_MODULES): Redirect the output of
|
||||
$PKG_CONFIG --exists "$2" to config.log.
|
||||
* configure: Regenerated.
|
||||
* configure: Regenerate.
|
||||
|
||||
2006-07-14 Kim F. Storm <storm@cua.dk>
|
||||
|
||||
|
|
@ -106,8 +134,8 @@
|
|||
|
||||
2006-07-07 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* CONTRIBUTE: Slight formatting changes and typo fixes. Add
|
||||
description of NEWS markings.
|
||||
* CONTRIBUTE: Slight formatting changes and typo fixes.
|
||||
Add description of NEWS markings.
|
||||
|
||||
2006-07-07 Kim F. Storm <storm@cua.dk>
|
||||
|
||||
|
|
@ -148,7 +176,7 @@
|
|||
|
||||
* info/dir: Remove the Emacs-Xtra entry.
|
||||
|
||||
2006-04-20 Ramprasad B <ramprasad_i82@yahoo.com>
|
||||
2006-04-20 Ramprasad B <ramprasad_i82@yahoo.com>
|
||||
|
||||
* Copyright (sources/emacs): Update copyright year(s).
|
||||
|
||||
|
|
@ -299,12 +327,12 @@
|
|||
Remove the MAXPATHLEN limitations:
|
||||
|
||||
* configure.in (AC_CHECK_FUNCS): Check for get_current_dir_name.
|
||||
* configure: Regenerated.
|
||||
* configure: Regenerate.
|
||||
|
||||
2005-09-09 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* configure.in <lynxsos*>: Support for LynxOS on PPC.
|
||||
* configure: Regenerated.
|
||||
* configure: Regenerate.
|
||||
|
||||
2005-09-05 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
|
|
@ -339,7 +367,7 @@
|
|||
|
||||
Update FSF's address in GPL notices.
|
||||
|
||||
2005-06-19 J,bi(Br,bt(Bme Marant <jerome@marant.org>
|
||||
2005-06-19 J,Ai(Br,At(Bme Marant <jerome@marant.org>
|
||||
|
||||
* Makefile.in (epaths-force): Protect both lisppath and
|
||||
buildlisppath from whitespace.
|
||||
|
|
@ -428,7 +456,7 @@
|
|||
* Makefile.in (install-arch-indep, uninstall): Add url and org
|
||||
manuals.
|
||||
|
||||
2004-12-07 Stefan <monnier@iro.umontreal.ca>
|
||||
2004-12-07 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* configure.in (INLINE, RE_TRANSLATE_P): Move patches mistakenly
|
||||
committed to src/config.in.
|
||||
|
|
@ -498,7 +526,7 @@
|
|||
* configure.in (HAVE_RANDOM_HEAPSTART): Change AC_MSG_ERROR to
|
||||
AC_MSG_WARN. Move output of warning message to end of configure run.
|
||||
|
||||
2004-10-05 Jan Dj,Ad(Brv. <jan.h.d@swipnet.se>
|
||||
2004-10-05 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
|
||||
|
||||
* configure.in (HAVE_RANDOM_HEAPSTART): Rename HAVE_EXECSHIELD.
|
||||
Run test to see if heap start address is random.
|
||||
|
|
@ -620,7 +648,7 @@
|
|||
|
||||
* configure.in <darwin>: Use fink packages if available.
|
||||
|
||||
2004-01-25 Jerome Marant <jmarant@free.fr> (tiny change)
|
||||
2004-01-25 J,Ai(Br,At(Bme Marant <jmarant@free.fr> (tiny change)
|
||||
|
||||
* make-dist (lispref): Do include lispref/index.texi.
|
||||
|
||||
|
|
@ -841,7 +869,7 @@
|
|||
|
||||
2003-01-29 Kim F. Storm <storm@cua.dk>
|
||||
|
||||
* AUTHORS: Regenerated using new format (after fixing numerous
|
||||
* AUTHORS: Regenerate using new format (after fixing numerous
|
||||
formatting errors in the ChangeLog files).
|
||||
|
||||
2003-01-22 Andreas Schwab <schwab@suse.de>
|
||||
|
|
@ -929,7 +957,7 @@
|
|||
|
||||
* configure.in (*-sunos5*, *-solaris*): Use sol2-8.
|
||||
|
||||
2002-11-14 Francesco Potorti` <pot@gnu.org>
|
||||
2002-11-14 Francesco Potort,Al(B <pot@gnu.org>
|
||||
|
||||
* configure.in (*-sunos5.8*, *-solaris2.8*): New configurations.
|
||||
|
||||
|
|
@ -1183,7 +1211,7 @@
|
|||
|
||||
These changes make Leim part of the standard distribution:
|
||||
|
||||
* README: Add info about the `leim' directory
|
||||
* README: Add info about the `leim' directory.
|
||||
|
||||
* INSTALL: Remove text that describes Leim as a separate package.
|
||||
|
||||
|
|
@ -1751,8 +1779,7 @@
|
|||
2000-08-24 Gerd Moellmann <gerd@gnu.org>
|
||||
|
||||
* configure.in <making srcdir absolute>: Unset CDPATH in case $PWD
|
||||
contains a relative path. Protect against unusable values of
|
||||
$PWD.
|
||||
contains a relative path. Protect against unusable values of $PWD.
|
||||
|
||||
2000-08-08 Eli Zaretskii <eliz@is.elta.co.il>
|
||||
|
||||
|
|
@ -1763,8 +1790,7 @@
|
|||
|
||||
2000-08-07 Gerd Moellmann <gerd@gnu.org>
|
||||
|
||||
* Makefile.in (config.status): Prepend `$(srcdir)/' to
|
||||
`configure'.
|
||||
* Makefile.in (config.status): Prepend `$(srcdir)/' to `configure'.
|
||||
|
||||
2000-08-03 Gerd Moellmann <gerd@gnu.org>
|
||||
|
||||
|
|
@ -2130,7 +2156,7 @@
|
|||
|
||||
1999-08-18 Dave Love <fx@gnu.org>
|
||||
|
||||
* configure.in: : Check for termcap.h.
|
||||
* configure.in: Check for termcap.h.
|
||||
|
||||
1999-08-15 Gerd Moellmann <gerd@gnu.org>
|
||||
|
||||
|
|
@ -2243,8 +2269,8 @@
|
|||
|
||||
1998-12-04 Andreas Schwab <schwab@delysid.gnu.org>
|
||||
|
||||
* Makefile.in: Don't install customize info file. Run
|
||||
install-info on viper info file.
|
||||
* Makefile.in: Don't install customize info file.
|
||||
Run install-info on viper info file.
|
||||
|
||||
1998-11-29 Richard Stallman <rms@psilocin.ai.mit.edu>
|
||||
|
||||
|
|
@ -2464,7 +2490,7 @@
|
|||
|
||||
1997-09-30 Karl Eichwalder <ke@suse.de>
|
||||
|
||||
* Makefile.in (install-arch-indep): install the widget info file.
|
||||
* Makefile.in (install-arch-indep): Install the widget info file.
|
||||
|
||||
1997-09-24 Jonathan I. Kamens <jik@kamens.brookline.ma.us>
|
||||
|
||||
|
|
@ -2476,8 +2502,7 @@
|
|||
|
||||
1997-09-21 Erik Naggum <erik@naggum.no>
|
||||
|
||||
* make-dist (making links to `src'): Keep timestamp on copied
|
||||
files.
|
||||
* make-dist (making links to `src'): Keep timestamp on copied files.
|
||||
|
||||
* make-delta: New script to produce delta distributions.
|
||||
|
||||
|
|
@ -2638,7 +2663,7 @@
|
|||
* make-dist (etc): Really avoid symlinks now.
|
||||
(lisp): Don't delete from subdirs the things we never copy.
|
||||
|
||||
1997-07-07 Ken'ichi Handa <handa@psilocin.gnu.ai.mit.edu>
|
||||
1997-07-07 Kenichi Handa <handa@psilocin.gnu.ai.mit.edu>
|
||||
|
||||
* Makefile.in (install-arch-indep): Correct the target name.
|
||||
The first letter `i' was dropped by the previous change of mine.
|
||||
|
|
@ -2663,12 +2688,12 @@
|
|||
|
||||
* Makefile.in (install-leim): Correct previous change.
|
||||
|
||||
1997-07-02 Ken'ichi Handa <handa@psilocin.gnu.ai.mit.edu>
|
||||
1997-07-02 Kenichi Handa <handa@psilocin.gnu.ai.mit.edu>
|
||||
|
||||
* Makefile.in (install-leim): New target.
|
||||
(install): Depend on install-leim.
|
||||
|
||||
1997-07-01 Ken'ichi Handa <handa@psilocin.gnu.ai.mit.edu>
|
||||
1997-07-01 Kenichi Handa <handa@psilocin.gnu.ai.mit.edu>
|
||||
|
||||
* Makefile.in (SUBDIR): Add leim.
|
||||
(SUBDIR_MAKEFILES): Add leim/Makefile.
|
||||
|
|
@ -2704,16 +2729,14 @@
|
|||
|
||||
1997-06-22 Dave Love <d.love@dl.ac.uk>
|
||||
|
||||
* Makefile.in (lib-src): Depend on src/config.h (e.g. for
|
||||
movemail.o).
|
||||
(src/config.h): New target to re-configure if src/config.in
|
||||
is patched.
|
||||
* Makefile.in (lib-src): Depend on src/config.h (e.g. for movemail.o).
|
||||
(src/config.h): New target to re-configure if src/config.in is patched.
|
||||
|
||||
1997-06-18 Richard Stallman <rms@psilocin.gnu.ai.mit.edu>
|
||||
|
||||
* configure.in (shutdown): Check for `shutdown' function.
|
||||
|
||||
1997-06-18 Ken'ichi Handa <handa@psilocin.gnu.ai.mit.edu>
|
||||
1997-06-18 Kenichi Handa <handa@psilocin.gnu.ai.mit.edu>
|
||||
|
||||
* update-subdirs: Include the directory "language" in subdirs.
|
||||
|
||||
|
|
@ -2750,15 +2773,14 @@
|
|||
1997-04-09 Marcus G. Daniels <marcus@cathcart.sysc.pdx.edu>
|
||||
|
||||
* configure.in (doug_lea_malloc): First check for SYSTEM_MALLOC,
|
||||
in case it is desirable to disable the GNU malloc features with
|
||||
glibc.
|
||||
in case it is desirable to disable the GNU malloc features with glibc.
|
||||
|
||||
1997-04-08 Marcus G. Daniels <marcus@cathcart.sysc.pdx.edu>
|
||||
|
||||
* configure.in (DOUG_LEA_MALLOC):
|
||||
Define if malloc_{get,set}_state exist.
|
||||
|
||||
1997-03-05 Ken'ichi Handa <handa@etl.go.jp>
|
||||
1997-03-05 Kenichi Handa <handa@etl.go.jp>
|
||||
|
||||
* make-dist: Make links for files under lisp/language.
|
||||
|
||||
|
|
@ -2950,7 +2972,7 @@
|
|||
|
||||
1996-07-11 Bill Mann <dvmann@dvncr.praxisint.com>
|
||||
|
||||
* configure.in: Use s/usg5-4-3.h for ncr-i[3456]86-sysv4.3
|
||||
* configure.in: Use s/usg5-4-3.h for ncr-i[3456]86-sysv4.3.
|
||||
|
||||
1996-07-07 Karl Heuer <kwzh@gnu.ai.mit.edu>
|
||||
|
||||
|
|
@ -3473,8 +3495,8 @@
|
|||
|
||||
1995-06-22 Paul Eggert <eggert@twinsun.com>
|
||||
|
||||
* configure.in: Treat SunOS 4.1.4 like SunOS 4.1.3.
|
||||
(Likewise for SunOS 4.1.5 thorugh 4.1.9, should they ever exist.)
|
||||
* configure.in: Treat SunOS 4.1.4 like SunOS 4.1.3. (Likewise for
|
||||
SunOS 4.1.5 thorugh 4.1.9, should they ever exist.)
|
||||
|
||||
1995-06-22 Paul Eggert <eggert@twinsun.com>
|
||||
|
||||
|
|
@ -3546,7 +3568,7 @@
|
|||
|
||||
1995-05-22 enami tsugutomo <enami@sys.ptg.sony.co.jp>
|
||||
|
||||
* configure.in: pass arg to sqrt.
|
||||
* configure.in: Pass arg to sqrt.
|
||||
|
||||
1995-05-18 Karl Heuer <kwzh@hal.gnu.ai.mit.edu>
|
||||
|
||||
|
|
@ -3558,8 +3580,7 @@
|
|||
|
||||
1995-05-09 David J. MacKenzie <djm@geech.gnu.ai.mit.edu>
|
||||
|
||||
* configure.in: Use sqrt (more portable) instead of fmod in -lm
|
||||
check.
|
||||
* configure.in: Use sqrt (more portable) instead of fmod in -lm check.
|
||||
|
||||
1995-05-09 Richard Stallman <rms@mole.gnu.ai.mit.edu>
|
||||
|
||||
|
|
@ -3576,9 +3597,9 @@
|
|||
|
||||
1995-05-06 David J. MacKenzie <djm@geech.gnu.ai.mit.edu>
|
||||
|
||||
* configure.in: Make sure CDPATH doesn't mess up PWD check. Check
|
||||
whether X bitmaps are in X11/bitmaps instead of bitmaps. Use fmod
|
||||
instead of logb in -lm check.
|
||||
* configure.in: Make sure CDPATH doesn't mess up PWD check.
|
||||
Check whether X bitmaps are in X11/bitmaps instead of bitmaps.
|
||||
Use fmod instead of logb in -lm check.
|
||||
|
||||
1995-05-03 Richard Stallman <rms@mole.gnu.ai.mit.edu>
|
||||
|
||||
|
|
@ -3598,7 +3619,7 @@
|
|||
* configure.in (*-sun-sunos4.1.3*): Use shared libraries,
|
||||
since that's what the header file expects.
|
||||
|
||||
1995-04-24 Francesco Potorti` (pot@cnuce.cnr.it)
|
||||
1995-04-24 Francesco Potort,Al(B (pot@cnuce.cnr.it)
|
||||
|
||||
* configure.in (m68k-motorola-sysv*): Distinguish between 68030
|
||||
and 68040 based machines when choosing options for gnucc.
|
||||
|
|
@ -3627,7 +3648,7 @@
|
|||
1995-04-06 Simon Leinen <simon@lia.di.epfl.ch>
|
||||
|
||||
* Makefile.in (install-arch-indep, dist):
|
||||
look for `update-subdir' in $(srcdir).
|
||||
Look for `update-subdir' in $(srcdir).
|
||||
|
||||
1995-04-06 Richard Stallman <rms@mole.gnu.ai.mit.edu>
|
||||
|
||||
|
|
@ -3663,8 +3684,8 @@
|
|||
|
||||
1995-02-02 David J. MacKenzie <djm@geech.gnu.ai.mit.edu>
|
||||
|
||||
* configure.in: Create a .gdbinit that sources the real one, if
|
||||
using a different build directory.
|
||||
* configure.in: Create a .gdbinit that sources the real one,
|
||||
if using a different build directory.
|
||||
|
||||
1995-01-23 Karl Heuer <kwzh@hal.gnu.ai.mit.edu>
|
||||
|
||||
|
|
@ -6376,6 +6397,7 @@
|
|||
|
||||
;; Local Variables:
|
||||
;; coding: iso-2022-7bit
|
||||
;; add-log-time-zone-rule: t
|
||||
;; End:
|
||||
|
||||
Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2001, 2002, 2006
|
||||
|
|
|
|||
|
|
@ -280,7 +280,7 @@ epaths-force: FRC
|
|||
-e 's;/[*] *arch-tag:.*;/*;') && \
|
||||
${srcdir}/move-if-change epaths.h.$$$$ src/epaths.h
|
||||
|
||||
# For parallel make, src should be build before leim.
|
||||
# For parallel make, src should be built before leim.
|
||||
# "export PARALLEL=0" is for SGI's Make, to prevent it from
|
||||
# running more than 1 process in the leim directory, especially for
|
||||
# the $TIT files there.
|
||||
|
|
@ -518,7 +518,7 @@ install-arch-indep: mkdir info
|
|||
${INSTALL_INFO} --info-dir=$(DESTDIR)${infodir} $(DESTDIR)${infodir}/$$elt); \
|
||||
done; \
|
||||
else true; fi
|
||||
-chmod -R a+r $(DESTDIR)${datadir}/emacs ${COPYDESTS} $(DESTDIR)${infodir}
|
||||
-chmod -R a+r $(DESTDIR)${datadir}/emacs/${version} $(DESTDIR)${datadir}/emacs/site-lisp ${COPYDESTS} $(DESTDIR)${infodir}
|
||||
thisdir=`/bin/pwd`; \
|
||||
cd ${srcdir}/etc; \
|
||||
for page in emacs emacsclient etags ctags ; do \
|
||||
|
|
@ -790,6 +790,7 @@ bootstrap-build: FRC
|
|||
### Used for `bootstrap' to avoid deleting existing dumped Emacs executables.
|
||||
bootstrap-clean-before: bootstrap-clean-before-fast FRC
|
||||
(cd lisp; $(MAKE) $(MFLAGS) bootstrap-clean)
|
||||
(cd leim; $(MAKE) $(MFLAGS) bootstrap-clean)
|
||||
|
||||
### Used for `bootfast' to avoid deleting existing dumped Emacs executables
|
||||
### and compiled .elc files.
|
||||
|
|
|
|||
50
README
50
README
|
|
@ -1,28 +1,29 @@
|
|||
This directory tree holds version 22.0.91 of GNU Emacs, the extensible,
|
||||
This directory tree holds version 23.0.51 of GNU Emacs, the extensible,
|
||||
customizable, self-documenting real-time display editor.
|
||||
|
||||
You may encounter bugs in this release. If you do, please report
|
||||
them; your bug reports are valuable contributions to the FSF, since
|
||||
they allow us to notice and fix problems on machines we don't have, or
|
||||
in code we don't use often. See the file BUGS for more information on
|
||||
how to report bugs.
|
||||
The file INSTALL in this directory says how to build and install GNU
|
||||
Emacs on various systems, once you have unpacked or checked out the
|
||||
entire Emacs file tree.
|
||||
|
||||
See the file etc/NEWS for information on new features and other
|
||||
user-visible changes in recent versions of Emacs.
|
||||
|
||||
The file INSTALL in this directory says how to bring up GNU Emacs on
|
||||
various systems, once you have loaded the entire subtree of this
|
||||
directory.
|
||||
|
||||
The file etc/PROBLEMS contains information on many common problems that
|
||||
occur in building, installing and running Emacs.
|
||||
|
||||
Reports of bugs in Emacs should be sent to the mailing list
|
||||
bug-gnu-emacs@gnu.org. See the "Bugs" section of the Emacs
|
||||
manual for more information on how to report bugs. (The file `BUGS'
|
||||
in this directory explains how you can find and read that section
|
||||
using the Info files that come with Emacs.) See `etc/MAILINGLISTS'
|
||||
for more information on mailing lists relating to GNU packages.
|
||||
You may encounter bugs in this release. If you do, please report
|
||||
them; your bug reports are valuable contributions to the FSF, since
|
||||
they allow us to notice and fix problems on machines we don't have, or
|
||||
in code we don't use often. Please send bug reports for released
|
||||
versions of Emacs sent to the mailing list bug-gnu-emacs@gnu.org.
|
||||
Please send bug reports for pretest versions of Emacs, and versions
|
||||
from the Savannah.gnu.org repository, to emacs-pretest-bugs@gnu.org.
|
||||
|
||||
See the "Bugs" section of the Emacs manual for more information on how
|
||||
to report bugs. (The file `BUGS' in this directory explains how you
|
||||
can find and read that section using the Info files that come with
|
||||
Emacs.) See `etc/MAILINGLISTS' for more information on mailing lists
|
||||
relating to GNU packages.
|
||||
|
||||
The `etc' subdirectory contains several other files, named in capital
|
||||
letters, which you might consider looking at when installing GNU
|
||||
|
|
@ -86,20 +87,3 @@ There are several subdirectories:
|
|||
that aren't part of the standard distribution of the OS. The
|
||||
platform-specific README files and installation instructions should
|
||||
list the required tools.
|
||||
|
||||
VMS info:
|
||||
|
||||
Emacs 19.x and above do not compile out of the box on OpenVMS.
|
||||
Richard Levitte <levitte@lp.se> is distributing and maintaining a
|
||||
version of Emacs (currently based on version 19.28, but soon moving to
|
||||
19.34 and then 20.1) that compiles and works on OpenVMS 5.5 and above
|
||||
on both VAX and Alpha architectures. For more information see
|
||||
|
||||
http://www.lp.se/gnu-vms/software/released1/emacs.html
|
||||
|
||||
There is also some effort going on with Emacs 21. Source code is
|
||||
available at ftp://ftp.nvg.ntnu.no/pub/vms/emacs/. Look for most
|
||||
recent stuff with ls -lta.
|
||||
|
||||
It is a working "development" version (editing and much more works).
|
||||
More developers are needed; contact roart@nvg.ntnu.no.
|
||||
|
|
|
|||
|
|
@ -1,3 +1,13 @@
|
|||
2006-11-25 Juanma Barranquero <lekktu@gmail.com>
|
||||
|
||||
* admin.el (set-version): Set version number in
|
||||
lib-src/makefile.w32-in.
|
||||
|
||||
2006-11-06 Reiner Steib <Reiner.Steib@gmx.de>
|
||||
|
||||
* FOR-RELEASE (BUGS): Remove "Build failure under Suse 10.0" was
|
||||
due to a local miss-configuration.
|
||||
|
||||
2006-10-28 Chong Yidong <cyd@stupidchicken.com>
|
||||
|
||||
* make-announcement (OLD): Remove LEIM references in announcement
|
||||
|
|
@ -387,6 +397,7 @@
|
|||
|
||||
;; Local Variables:
|
||||
;; coding: iso-2022-7bit
|
||||
;; add-log-time-zone-rule: t
|
||||
;; End:
|
||||
|
||||
Copyright (C) 2001 Free Software Foundation, Inc.
|
||||
|
|
|
|||
|
|
@ -43,7 +43,19 @@ to the hack introduced on 2005-07-01 to fix some other Cleartype problem.
|
|||
|
||||
* BUGS
|
||||
|
||||
** david.reitter@gmail.com, Oct 16: url-retrieve may cause hang
|
||||
** Document use of gpg-agent
|
||||
|
||||
** monnier@iro.umontreal.ca, Nov 24:
|
||||
gnus-summary-tick-article-forward doesn't work any more?
|
||||
|
||||
** jpff@codemist.co.uk, Nov 23: Problem in reading mail
|
||||
Error is Invalid search bound
|
||||
|
||||
** rgm@gnu.org, Nov 29: mouse and horizontal scrolling with long lines
|
||||
|
||||
** christopher.ian.moore@gmail.com, Nov 30: too much recursion in gnus-sort-threads-1.
|
||||
|
||||
** rmg@gnu.org, Nov 29: saved user abbrevs and system abbrevs
|
||||
|
||||
* DOCUMENTATION
|
||||
|
||||
|
|
|
|||
|
|
@ -88,6 +88,9 @@ Root must be the root of an Emacs source tree."
|
|||
(set-version-in-file root "lispref/elisp.texi" version
|
||||
(rx (and "EMACSVER" (1+ space)
|
||||
(submatch (1+ (in "0-9."))))))
|
||||
(set-version-in-file root "lib-src/makefile.w32-in" version
|
||||
(rx (and "VERSION" (0+ space) "=" (0+ space)
|
||||
(submatch (1+ (in "0-9."))))))
|
||||
;; nt/emacs.rc also contains the version number, but in an awkward
|
||||
;; format. It must contain four components, separated by commas, and
|
||||
;; in two places those commas are followed by space, in two other
|
||||
|
|
|
|||
|
|
@ -21,11 +21,12 @@ For each step, check for possible errors.
|
|||
|
||||
5. rm configure; make bootstrap
|
||||
|
||||
6. Commit configure, README, AUTHORS, lisp/cus-load.el,
|
||||
lisp/finder-inf.el, lisp/version.el, man/emacs.texi,
|
||||
lispref/elisp.texi. Copy lisp/loaddefs.el to lisp/ldefs-boot.el
|
||||
and commit lisp/ldefs-boot.el. For a release, also commit the
|
||||
ChangeLog files in all directories.
|
||||
6. Commit configure, README, AUTHORS, lisp/finder-inf.el,
|
||||
lisp/version.el, man/emacs.texi, lispref/elisp.texi,
|
||||
mac/Emacs.app/Contents/Resources/English.lproj/InfoPlist.strings,
|
||||
mac/src/Emacs.r, nt/emacs.rc. Copy lisp/loaddefs.el to
|
||||
lisp/ldefs-boot.el and commit lisp/ldefs-boot.el. For a release,
|
||||
also commit the ChangeLog files in all directories.
|
||||
|
||||
7. make-dist --snapshot. Check the contents of the new tar with
|
||||
admin/diff-tar-files against an older tar file. Some old pretest
|
||||
|
|
|
|||
122
configure
vendored
122
configure
vendored
|
|
@ -2198,6 +2198,9 @@ case "${canonical}" in
|
|||
opsys=freebsd
|
||||
case "${canonical}" in
|
||||
alpha*-*-freebsd*) machine=alpha ;;
|
||||
ia64-*-freebsd*) machine=ia64 ;;
|
||||
sparc64-*-freebsd*) machine=sparc ;;
|
||||
powerpc-*-freebsd*) machine=macppc ;;
|
||||
i[3456]86-*-freebsd*) machine=intel386 ;;
|
||||
amd64-*-freebsd*|x86_64-*-freebsd*) machine=amdx86-64 ;;
|
||||
esac
|
||||
|
|
@ -5776,6 +5779,19 @@ fi
|
|||
|
||||
|
||||
|
||||
### The standard library on x86-64 GNU/Linux distributions can
|
||||
### be located in either /usr/lib64 or /usr/lib.
|
||||
case "${canonical}" in
|
||||
x86_64-*-linux-gnu* )
|
||||
if test -d /usr/lib64; then
|
||||
|
||||
cat >>confdefs.h <<\_ACEOF
|
||||
#define HAVE_X86_64_LIB64_DIR 1
|
||||
_ACEOF
|
||||
|
||||
fi
|
||||
esac
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -9333,7 +9349,13 @@ fi
|
|||
if test "${window_system}" = x11 && test "${HAVE_CARBON}" = yes; then
|
||||
if test "${with_carbon+set}" != set \
|
||||
&& test "${carbon_appdir_x+set}" != set; then
|
||||
HAVE_CARBON=no
|
||||
for var in with_x with_x_toolkit with_gtk with_xim \
|
||||
with_xpm with_jpeg with_tiff with_gif with_png; do
|
||||
if eval test \"\${$var+set}\" = set; then
|
||||
HAVE_CARBON=no
|
||||
break
|
||||
fi
|
||||
done
|
||||
fi
|
||||
fi
|
||||
if test "${HAVE_CARBON}" = yes; then
|
||||
|
|
@ -13404,104 +13426,6 @@ _ACEOF
|
|||
fi
|
||||
# We also have mouse menus.
|
||||
HAVE_MENUS=yes
|
||||
|
||||
tmp_CFLAGS="$CFLAGS"
|
||||
CFLAGS="$CFLAGS -framework Carbon"
|
||||
{ echo "$as_me:$LINENO: checking for CancelMenuTracking" >&5
|
||||
echo $ECHO_N "checking for CancelMenuTracking... $ECHO_C" >&6; }
|
||||
if test "${ac_cv_func_CancelMenuTracking+set}" = set; then
|
||||
echo $ECHO_N "(cached) $ECHO_C" >&6
|
||||
else
|
||||
cat >conftest.$ac_ext <<_ACEOF
|
||||
/* confdefs.h. */
|
||||
_ACEOF
|
||||
cat confdefs.h >>conftest.$ac_ext
|
||||
cat >>conftest.$ac_ext <<_ACEOF
|
||||
/* end confdefs.h. */
|
||||
/* Define CancelMenuTracking to an innocuous variant, in case <limits.h> declares CancelMenuTracking.
|
||||
For example, HP-UX 11i <limits.h> declares gettimeofday. */
|
||||
#define CancelMenuTracking innocuous_CancelMenuTracking
|
||||
|
||||
/* System header to define __stub macros and hopefully few prototypes,
|
||||
which can conflict with char CancelMenuTracking (); below.
|
||||
Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
|
||||
<limits.h> exists even on freestanding compilers. */
|
||||
|
||||
#ifdef __STDC__
|
||||
# include <limits.h>
|
||||
#else
|
||||
# include <assert.h>
|
||||
#endif
|
||||
|
||||
#undef CancelMenuTracking
|
||||
|
||||
/* Override any GCC internal prototype to avoid an error.
|
||||
Use char because int might match the return type of a GCC
|
||||
builtin and then its argument prototype would still apply. */
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
#endif
|
||||
char CancelMenuTracking ();
|
||||
/* The GNU C library defines this for functions which it implements
|
||||
to always fail with ENOSYS. Some functions are actually named
|
||||
something starting with __ and the normal name is an alias. */
|
||||
#if defined __stub_CancelMenuTracking || defined __stub___CancelMenuTracking
|
||||
choke me
|
||||
#endif
|
||||
|
||||
int
|
||||
main ()
|
||||
{
|
||||
return CancelMenuTracking ();
|
||||
;
|
||||
return 0;
|
||||
}
|
||||
_ACEOF
|
||||
rm -f conftest.$ac_objext conftest$ac_exeext
|
||||
if { (ac_try="$ac_link"
|
||||
case "(($ac_try" in
|
||||
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
|
||||
*) ac_try_echo=$ac_try;;
|
||||
esac
|
||||
eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
|
||||
(eval "$ac_link") 2>conftest.er1
|
||||
ac_status=$?
|
||||
grep -v '^ *+' conftest.er1 >conftest.err
|
||||
rm -f conftest.er1
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(exit $ac_status); } && {
|
||||
test -z "$ac_c_werror_flag" ||
|
||||
test ! -s conftest.err
|
||||
} && test -s conftest$ac_exeext &&
|
||||
$as_test_x conftest$ac_exeext; then
|
||||
ac_cv_func_CancelMenuTracking=yes
|
||||
else
|
||||
echo "$as_me: failed program was:" >&5
|
||||
sed 's/^/| /' conftest.$ac_ext >&5
|
||||
|
||||
ac_cv_func_CancelMenuTracking=no
|
||||
fi
|
||||
|
||||
rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
|
||||
conftest$ac_exeext conftest.$ac_ext
|
||||
fi
|
||||
{ echo "$as_me:$LINENO: result: $ac_cv_func_CancelMenuTracking" >&5
|
||||
echo "${ECHO_T}$ac_cv_func_CancelMenuTracking" >&6; }
|
||||
if test $ac_cv_func_CancelMenuTracking = yes; then
|
||||
have_cmt=yes
|
||||
else
|
||||
have_cmt=no
|
||||
fi
|
||||
|
||||
if test "$have_cmt" = yes; then
|
||||
|
||||
cat >>confdefs.h <<\_ACEOF
|
||||
#define HAVE_CANCELMENUTRACKING 1
|
||||
_ACEOF
|
||||
|
||||
fi
|
||||
CFLAGS="$tmp_CFLAGS"
|
||||
fi
|
||||
|
||||
### Use session management (-lSM -lICE) if available
|
||||
|
|
|
|||
30
configure.in
30
configure.in
|
|
@ -237,6 +237,9 @@ case "${canonical}" in
|
|||
opsys=freebsd
|
||||
case "${canonical}" in
|
||||
alpha*-*-freebsd*) machine=alpha ;;
|
||||
ia64-*-freebsd*) machine=ia64 ;;
|
||||
sparc64-*-freebsd*) machine=sparc ;;
|
||||
powerpc-*-freebsd*) machine=macppc ;;
|
||||
i[3456]86-*-freebsd*) machine=intel386 ;;
|
||||
amd64-*-freebsd*|x86_64-*-freebsd*) machine=amdx86-64 ;;
|
||||
esac
|
||||
|
|
@ -1482,6 +1485,16 @@ dnl Do this early because it can frob feature test macros for Unix-98 &c.
|
|||
AC_SYS_LARGEFILE
|
||||
|
||||
|
||||
### The standard library on x86-64 GNU/Linux distributions can
|
||||
### be located in either /usr/lib64 or /usr/lib.
|
||||
case "${canonical}" in
|
||||
x86_64-*-linux-gnu* )
|
||||
if test -d /usr/lib64; then
|
||||
AC_DEFINE(HAVE_X86_64_LIB64_DIR, 1,
|
||||
[Define to 1 if the file /usr/lib64 exists.])
|
||||
fi
|
||||
esac
|
||||
|
||||
dnl This function defintion taken from Gnome 2.0
|
||||
dnl PKG_CHECK_MODULES(GSTUFF, gtk+-2.0 >= 1.3 glib = 1.3.4, action-if, action-not)
|
||||
dnl defines GSTUFF_LIBS, GSTUFF_CFLAGS, see pkg-config man page
|
||||
|
|
@ -1776,7 +1789,13 @@ fi
|
|||
if test "${window_system}" = x11 && test "${HAVE_CARBON}" = yes; then
|
||||
if test "${with_carbon+set}" != set \
|
||||
&& test "${carbon_appdir_x+set}" != set; then
|
||||
HAVE_CARBON=no
|
||||
for var in with_x with_x_toolkit with_gtk with_xim \
|
||||
with_xpm with_jpeg with_tiff with_gif with_png; do
|
||||
if eval test \"\${$var+set}\" = set; then
|
||||
HAVE_CARBON=no
|
||||
break
|
||||
fi
|
||||
done
|
||||
fi
|
||||
fi
|
||||
if test "${HAVE_CARBON}" = yes; then
|
||||
|
|
@ -2410,15 +2429,6 @@ if test "${HAVE_CARBON}" = "yes"; then
|
|||
fi
|
||||
# We also have mouse menus.
|
||||
HAVE_MENUS=yes
|
||||
|
||||
tmp_CFLAGS="$CFLAGS"
|
||||
CFLAGS="$CFLAGS -framework Carbon"
|
||||
AC_CHECK_FUNC(CancelMenuTracking, have_cmt=yes, have_cmt=no)
|
||||
if test "$have_cmt" = yes; then
|
||||
AC_DEFINE(HAVE_CANCELMENUTRACKING, 1,
|
||||
[Define to 1 if CancelMenuTracking is available (Mac OSX).])
|
||||
fi
|
||||
CFLAGS="$tmp_CFLAGS"
|
||||
fi
|
||||
|
||||
### Use session management (-lSM -lICE) if available
|
||||
|
|
|
|||
|
|
@ -1,3 +1,53 @@
|
|||
2006-12-01 Juanma Barranquero <lekktu@gmail.com>
|
||||
|
||||
* DEVEL.HUMOR: Another entry.
|
||||
|
||||
2006-08-14 Masatake YAMATO <jet@gyve.org>
|
||||
|
||||
* etags.1: Added / to the end of DEVAR regex.
|
||||
|
||||
2006-11-22 Juanma Barranquero <lekktu@gmail.com>
|
||||
|
||||
* emacsclient.1 (DESCRIPTION): Suggest also `server-mode'.
|
||||
(OPTIONS): Document `-f', `--server-file' and EMACS_SERVER_FILE.
|
||||
|
||||
2006-11-20 Michael Olson <mwolson@gnu.org>
|
||||
|
||||
* NEWS: Change M-x erc-select to M-x erc.
|
||||
|
||||
2006-11-20 Sun Yijiang <sunyijiang@gmail.com>
|
||||
|
||||
* TUTORIAL.cn: Updated.
|
||||
|
||||
2006-11-17 Carsten Dominik <dominik@science.uva.nl>
|
||||
|
||||
* orgcard.tex (section{Agenda Views}): Document `C-k'.
|
||||
|
||||
2006-11-13 Carsten Dominik <dominik@science.uva.nl>
|
||||
|
||||
* orgcard.tex: Version number change.
|
||||
|
||||
2006-11-13 Bill Wohler <wohler@newt.com>
|
||||
|
||||
Release MH-E version 8.0.3.
|
||||
|
||||
* NEWS, MH-E-NEWS: Update for MH-E release 8.0.3.
|
||||
|
||||
2006-11-10 Juanma Barranquero <lekktu@gmail.com>
|
||||
|
||||
* DEVEL.HUMOR: Two more entries.
|
||||
|
||||
2006-11-10 Carsten Dominik <carsten.dominik@gmail.com>
|
||||
|
||||
* orgcard.tex (section{Archiving}): Document C-TAB.
|
||||
(section{TODO Items and Checkboxes}): Checkbox keys moved to this
|
||||
section, added documentation for the key `C-c #'.
|
||||
|
||||
2006-11-05 Slawomir Nowaczyk <slawek@cs.lth.se> (tiny change)
|
||||
|
||||
* emacs.py (eargs): Provide eldoc message for builtin types.
|
||||
Make sure eargs always outputs sentinel, to avoid Emacs freeze.
|
||||
|
||||
2006-10-22 Chong Yidong <cyd@stupidchicken.com>
|
||||
|
||||
* emacs.py (eargs): Return expected _emacs_out string even if
|
||||
|
|
@ -59,6 +109,11 @@
|
|||
* PROBLEMS (are): Emacs compiled with Gtk+ crashes when closing a
|
||||
display (x-close-connection).
|
||||
|
||||
2006-09-03 Diane Murray <disumu@x3y2z1.net>
|
||||
|
||||
* erc.texi (Getting Started, Connecting): Changed erc-select to
|
||||
erc.
|
||||
|
||||
2006-09-02 Juri Linkov <juri@jurta.org>
|
||||
|
||||
* HELLO: Regroup Europe Non-ASCII examples by similar scripts.
|
||||
|
|
@ -3115,6 +3170,7 @@
|
|||
|
||||
;; Local Variables:
|
||||
;; coding: iso-2022-7bit
|
||||
;; add-log-time-zone-rule: t
|
||||
;; End:
|
||||
|
||||
Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2001
|
||||
|
|
|
|||
|
|
@ -136,3 +136,35 @@ without attempting any course of action that requires an advance
|
|||
course in divination.
|
||||
There'd be quite a sensational market for that, you know."
|
||||
-- Emilio Lopes and David Kastrup
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
"[T]here may be a good reason since the code explicitly checks for
|
||||
this; see keyboard.c:789 [...]"
|
||||
"I think I understand, but I can't find the code in keyboard.c. Do
|
||||
you really mean 'line 789'? Of which revision?"
|
||||
"Sorry; by 789, I mean 3262 :-P"
|
||||
-- Chong Yidong and Stefan Monnier
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
"[...] In my opinion, your change does not either increase or
|
||||
decrease readability. It's a tossup."
|
||||
"Uh, setting tem to '', an artificial empty string, in order to have
|
||||
j incremented once again before breaking out of the finished loop is
|
||||
readable?
|
||||
Is this kind of 'readable' synonymous to 'comprehensible with
|
||||
serious effort', reminiscent of mathematicians' use of 'trivial' as
|
||||
synonymous with 'provable with serious effort'?"
|
||||
-- RMS and David Kastrup
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
Re: New Emacs Icon and Tango
|
||||
|
||||
"What about using the 'happy face' with gnu horns?"
|
||||
"It would make Emacs the object of ridicule until the end of time."
|
||||
"Isn't it already?"
|
||||
"It's the object of ridicule until the end of _tape_. The jury is
|
||||
still out about that end of time thing."
|
||||
-- Kim F. Storm, Miles Bader, RMS and David Kastrup
|
||||
|
|
|
|||
16
etc/ERC-NEWS
16
etc/ERC-NEWS
|
|
@ -1,5 +1,21 @@
|
|||
ERC NEWS -*- outline -*-
|
||||
|
||||
* Changes in ERC 5.2 (stable pre-release for Emacs 22)
|
||||
|
||||
** M-x erc RET now starts ERC.
|
||||
`erc-select' has been changed to `erc'. `erc-select' still remains as
|
||||
an alias of `erc'. Likewise, `erc-select-ssl' has been renamed to
|
||||
`erc-ssl' with `erc-select-ssl' as its alias. The function that was
|
||||
known as `erc' is now `erc-open'.
|
||||
|
||||
** Changes and additions to modules
|
||||
|
||||
*** Channel tracking (erc-track.el)
|
||||
|
||||
**** Use mouse-face and help-echo for channel names in the mode-line.
|
||||
This helps people using a mouse know that they are buttons and can be
|
||||
clicked on.
|
||||
|
||||
* Changes in ERC 5.1.4
|
||||
|
||||
** Make find-function and find-variable work in Emacs 22 for
|
||||
|
|
|
|||
|
|
@ -6,6 +6,33 @@ Copying and distribution of this file, with or without modification,
|
|||
are permitted in any medium without royalty provided the copyright
|
||||
notice and this notice are preserved.
|
||||
|
||||
* Changes in MH-E 8.0.3
|
||||
|
||||
Version 8.0.3 fixes errors in sending messages and in running spam
|
||||
filter commands in certain circumstances.
|
||||
|
||||
** Bug Fixes in MH-E 8.0.3
|
||||
|
||||
*** mh-send-args Cannot Be nil
|
||||
|
||||
If `mh-send-uses-spost-flag' was set, an error would prevent the
|
||||
sending of messages. This has been fixed (closes SF #1564742).
|
||||
|
||||
*** Missing Quotes in sa-learn Command Line
|
||||
|
||||
This has been fixed (closes SF #1565460).
|
||||
|
||||
*** Errors Associated with mh-junk-background
|
||||
|
||||
The Spamassassin filter commands were used inconsistently and
|
||||
incorrectly; if `mh-junk-background' were nil, not all of the updating
|
||||
would happen correctly. In the other back-ends such as bogofilter and
|
||||
SpamProbe, a value of t for `mh-junk-background' would cause the
|
||||
commands associated with these filters to fail. These problems have
|
||||
been fixed (closes SF #1594802).
|
||||
|
||||
|
||||
|
||||
* Changes in MH-E 8.0.2
|
||||
|
||||
Version 8.0.2 fixes the tool bar and `F n' on XEmacs, and `K a' on GNU
|
||||
|
|
|
|||
33
etc/NEWS
33
etc/NEWS
|
|
@ -299,7 +299,8 @@ have been moved to C-h F, C-h K and C-h S.
|
|||
See below under "incremental search changes".
|
||||
|
||||
---
|
||||
** C-x C-f RET, typing nothing in the minibuffer, is no longer a special case.
|
||||
** C-x C-f RET (find-file), typing nothing in the minibuffer, is no longer
|
||||
a special case.
|
||||
|
||||
Since the default input is the current directory, this has the effect
|
||||
of specifying the current directory. Normally that means to visit the
|
||||
|
|
@ -1033,6 +1034,21 @@ jit-lock-defer-contextually is renamed jit-lock-contextually and
|
|||
jit-lock-context-time determines the delay after which contextual
|
||||
refontification takes place.
|
||||
|
||||
---
|
||||
*** lazy-lock is considered obsolete.
|
||||
|
||||
The `lazy-lock' package is superseded by `jit-lock' and is considered
|
||||
obsolete. `jit-lock' is activated by default; if you wish to continue
|
||||
using `lazy-lock', activate it in your ~/.emacs like this:
|
||||
|
||||
(setq font-lock-support-mode 'lazy-lock-mode)
|
||||
|
||||
If you invoke `lazy-lock-mode' directly rather than through
|
||||
`font-lock-support-mode', it now issues a warning:
|
||||
|
||||
"Use font-lock-support-mode rather than calling lazy-lock-mode"
|
||||
|
||||
|
||||
** Menu support:
|
||||
|
||||
---
|
||||
|
|
@ -1184,7 +1200,7 @@ characters instead, depending on how the terminal (or terminal
|
|||
emulator) works. Use `set-keyboard-coding-system' (or customize
|
||||
keyboard-coding-system) if you prefer META to work (the old default)
|
||||
or if the locale doesn't describe the character set actually generated
|
||||
by the keyboard. See Info node `Single-Byte Character Support'.
|
||||
by the keyboard. See Info node `Unibyte Mode'.
|
||||
|
||||
+++
|
||||
*** The new command `revert-buffer-with-coding-system' (C-x RET r)
|
||||
|
|
@ -1454,8 +1470,11 @@ otherwise behaves quite similarly to the bash version.
|
|||
but declared obsolete.
|
||||
|
||||
+++
|
||||
*** The EMACS environment variable now defaults to Emacs's absolute
|
||||
file name, instead of to "t".
|
||||
*** The new INSIDE_EMACS environment variable is set to "t" in
|
||||
subshells running inside Emacs. This supersedes the EMACS environment
|
||||
variable, which will be removed in a future Emacs release. Programs
|
||||
that need to know whether they are started inside Emacs should check
|
||||
INSIDE_EMACS instead of EMACS.
|
||||
|
||||
** M-x Compile changes:
|
||||
|
||||
|
|
@ -1686,8 +1705,8 @@ ERC is a powerful, modular, and extensible IRC client for Emacs.
|
|||
To see what modules are available, type
|
||||
M-x customize-option erc-modules RET.
|
||||
|
||||
To start an IRC session, type M-x erc-select, and follow the prompts
|
||||
for server, port, and nick.
|
||||
To start an IRC session, type M-x erc, and follow the prompts for
|
||||
server, port, and nick.
|
||||
|
||||
---
|
||||
** Rcirc is now part of the Emacs distribution.
|
||||
|
|
@ -3279,7 +3298,7 @@ See the file GNUS-NEWS or the node "Oort Gnus" in the Gnus manual for details.
|
|||
---
|
||||
** MH-E changes.
|
||||
|
||||
Upgraded to MH-E version 8.0.2. There have been major changes since
|
||||
Upgraded to MH-E version 8.0.3. There have been major changes since
|
||||
version 5.0.2; see MH-E-NEWS for details.
|
||||
|
||||
** Calendar changes:
|
||||
|
|
|
|||
16
etc/PROBLEMS
16
etc/PROBLEMS
|
|
@ -1280,6 +1280,11 @@ be carried out at the same time:
|
|||
For more about lbxproxy, see:
|
||||
http://www.xfree86.org/4.3.0/lbxproxy.1.html
|
||||
|
||||
5) If copying and killing is slow, try to disable the interaction with the
|
||||
native system's clipboard by adding these lines to your .emacs file:
|
||||
(setq interprogram-cut-function nil)
|
||||
(setq interprogram-paste-function nil)
|
||||
|
||||
*** Emacs gives the error, Couldn't find per display information.
|
||||
|
||||
This can result if the X server runs out of memory because Emacs uses
|
||||
|
|
@ -2322,7 +2327,16 @@ This results from a bug in a VERY old version of GNU Sed. To solve
|
|||
the problem, install the current version of GNU Sed, then rerun
|
||||
Emacs's configure script.
|
||||
|
||||
*** Building the MS-Windows port with Cygwin GCC can fail.
|
||||
*** Building the Cygwin port for MS-Windows can fail with some GCC version
|
||||
|
||||
Building Emacs 22 with Cygwin builds of GCC 3.4.4-1 and 3.4.4-2 is
|
||||
reported to either fail or cause Emacs to segfault at run time. In
|
||||
addition, the Cygwin GCC 3.4.4-2 has problems with generating debug
|
||||
info. Cygwin users are advised not to use these versions of GCC for
|
||||
compiling Emacs. GCC versions 4.0.3 and 4.1.1 reportedly build a
|
||||
working Cygwin binary of Emacs, so we recommend these GCC versions.
|
||||
|
||||
*** Building the native MS-Windows port with Cygwin GCC can fail.
|
||||
|
||||
Emacs may not build using recent Cygwin builds of GCC, such as Cygwin
|
||||
version 1.1.8, using the default configure settings. It appears to be
|
||||
|
|
|
|||
4
etc/TODO
4
etc/TODO
|
|
@ -487,6 +487,10 @@ but which can also be used as a modifier).
|
|||
<http://lists.gnu.org/archive/html/emacs-devel/2006-02/msg01034.html>.
|
||||
[rgm@gnu.org will look at this after 22.1]
|
||||
|
||||
** Possibly make cal-dst use the system timezone database directly.
|
||||
See thread
|
||||
<http://lists.gnu.org/archive/html/emacs-pretest-bug/2006-11/msg00060.html>
|
||||
|
||||
* Internal changes
|
||||
|
||||
** Replace gmalloc.c with the modified Doug Lea code from the current
|
||||
|
|
|
|||
464
etc/TUTORIAL.cn
464
etc/TUTORIAL.cn
|
|
@ -17,7 +17,7 @@ META
|
|||
重要提示:要退出 Emacs,请用 C-x C-c(两个连续的组合键)。下文中左边顶
|
||||
行的“>>”字样用来提示你尝试键盘命令。比如:
|
||||
<<Blank lines inserted around following line by help-with-tutorial>>
|
||||
[本页当中特意留出一些空白是出于教学目的,请继续往后看]
|
||||
[本页当中特意留出一些空白是出于教学目的,请继续往后阅读]
|
||||
>> 现在输入 C-v (查看下一屏文字)移动到下一屏。
|
||||
(别紧张,在输入字符 v 的同时注意要按住 CONTROL 键)
|
||||
从现在开始,每读完当前一屏你都需要这样做一次。
|
||||
|
|
@ -129,8 +129,8 @@ P
|
|||
C-f 向右移动一个字符
|
||||
C-b 向左移动一个字符
|
||||
|
||||
M-f 向右移动一个词【中文是移动到下一个标点符号】
|
||||
M-b 向左移动一个词【中文是移动到上一个标点符号】
|
||||
M-f 向右移动一个词【对中文是移动到下一个标点符号】
|
||||
M-b 向左移动一个词【对中文是移动到上一个标点符号】
|
||||
|
||||
C-n 移动到下一行
|
||||
C-p 移动到上一行
|
||||
|
|
@ -212,14 +212,14 @@ C-g
|
|||
|
||||
如果你不小心按了一下 <ESC>,你也可以用 C-g 来取消它。
|
||||
【这个说法似乎有问题,因为按照这个按键顺序输入的应该是 C-M-g。
|
||||
取消<ESC> 的正确做法是再连按两次 <ESC>。】
|
||||
取消 <ESC> 的正确做法是再连按两次 <ESC>。】
|
||||
|
||||
|
||||
* 被禁用的命令(DISABLED COMMANDS)
|
||||
-----------------------------------
|
||||
|
||||
有一些 Emacs 命令被“禁用”了,以避免初学者在不了解其确切功能的情况下误
|
||||
用它们,造成麻烦。
|
||||
用而造成麻烦。
|
||||
|
||||
如果你用到了一个被禁用的命令,Emacs 会显示一个提示消息,告诉你这个命令
|
||||
到底是干什么的,询问你是否要继续,并在得到你的肯定之后再执行这命令。
|
||||
|
|
@ -234,10 +234,10 @@ C-g
|
|||
* 窗格(WINDOWS)
|
||||
-----------------
|
||||
|
||||
Emacs 可以有多个窗格,每个窗格都显示不同的文字。我们后面再介绍怎么对付
|
||||
多个窗格,现在先让我们先搞明白如何关掉多余的窗格。其实也很简单:
|
||||
Emacs 可以有多个窗格,每个窗格显示不同的文字。后面会介绍怎么对付多个窗
|
||||
格,现在我们先学会如何关掉多余的窗格。其实也很简单:
|
||||
|
||||
C-x 1 只保留一个窗格(也就是关掉其他所有的窗格)。
|
||||
C-x 1 只保留一个窗格(也就是关掉其它所有窗格)。
|
||||
|
||||
也就是先按 CONTROL-x 然后再按 1。C-x 1 会保留光标所在的窗格,并将其扩大
|
||||
到整个屏幕,同时关掉所有其它的窗格。
|
||||
|
|
@ -245,33 +245,34 @@ Emacs
|
|||
>> 把光标移到本行然后输入 C-u 0 C-l。
|
||||
|
||||
>> 输入 CONTROL-h k CONTROL-f。观察当一个新窗格出现时当前窗格(用来显示
|
||||
CONTROL-f 命令的文档)是如何变小的。
|
||||
CONTROL-f 命令的文档)是如何缩小的。
|
||||
|
||||
>> 输入 C-x 1 关掉文档窗格。
|
||||
|
||||
这个命令跟先前学到的命令不太一样,因为它包含了两个字符,以 CONTROL-x 开
|
||||
这个命令跟先前学过的命令不太一样,因为它包含了两个字符,以 CONTROL-x 开
|
||||
始。有一系列命令都是以 CONTROL-x 开始的,这些命令许多都跟“窗格、文件、
|
||||
缓冲区【缓冲区(buffer)会在后文详细介绍】”等等诸如此类的东西有关,其
|
||||
中有些命令可能有 2 个、3 个或者 4 个字符长。
|
||||
中有些命令可能包含了 2 个、3 个或者 4 个字符。
|
||||
|
||||
|
||||
* 插入与删除(INSERTING AND DELETING)
|
||||
--------------------------------------
|
||||
|
||||
插入文字很简单,敲键盘就行了。你能看到的字符,比如 A、7、* 等等,都被
|
||||
Emacs 视为文字并且可以直接插入。敲 <Return>(回车键)会插入一个换行符。
|
||||
插入文字很简单,直接敲键盘就可以了。你能看到的字符,比如 A、7、* 等等,
|
||||
都被 Emacs 视为文字并且可以直接插入。敲 <Return>(回车键)会插入一个换
|
||||
行符。
|
||||
|
||||
你可以用 <Delback> 来删除最后输入的的一个字符,这个跟你在 Emacs 之外的
|
||||
用法应该一样。一般来说 <Delback> 就是位于 <Return> 键上方某处的一个大号
|
||||
键,通常被标示为“Delete”、“Del”或者“Backspace”。
|
||||
你可以用 <Delback> 来删除最后输入的一个字符,这个跟你在 Emacs 之外的用
|
||||
法应该一样。一般来说 <Delback> 就是位于 <Return> 键上方某处的一个大块头
|
||||
的键,通常被标示为“Delete”、“Del”或者“Backspace”。
|
||||
|
||||
如果你找到了“Backspace”键,那么它应该就是 <Delback>;哪怕你又在别的地
|
||||
方找到了一个“Del”键,那么它也应该不是 <Delback>。
|
||||
如果你找到了“Backspace”键,那么它应该就是 <Delback>;这时哪怕你又在别
|
||||
的地方找到了一个“Del”键,那么它也应该不是 <Delback>。
|
||||
|
||||
一种更通用的说法是,<Delback> 将删除位于光标前的一个字符。
|
||||
|
||||
>> 现在就试试——敲点字,然后按几下 <Delback> 删除它们。
|
||||
不用担心你会修改文件,你干什么都没关系,这里就是专给你练习用的。
|
||||
>> 现在就来试试——敲点字,然后按几下 <Delback> 删除它们。
|
||||
不用担心文件被修改,你做什么都没关系,这里就是专给你练习用的。
|
||||
|
||||
如果一行文字很长、超出了窗格的宽度,显示不下的部分会在紧邻的下一行继续
|
||||
显示。这时会有一个反斜线(在控制台下是反斜线,如果你用图形窗口系统,则
|
||||
|
|
@ -281,7 +282,7 @@ Emacs
|
|||
|
||||
>> 用 <Delback> 删掉一些文字,直到此行长度小于窗格宽度,接续行就消失了。
|
||||
|
||||
换行符跟其他字符一样可以被删除。两行中间的换行符被删除后,这两行将会合
|
||||
换行符跟其它字符一样可以被删除。两行中间的换行符被删除后,这两行将会合
|
||||
并成一行。如果合并后的这一行太长,超出了窗格宽度,它就会以一个接续行来
|
||||
显示。
|
||||
|
||||
|
|
@ -315,24 +316,24 @@ Emacs
|
|||
和 M-k 的关系在某种程度上与 C-e 和 M-e 一样——如果把“一行”和“一句”
|
||||
作一个类比的话。
|
||||
|
||||
你也可以用一种统一的办法来移除缓冲区里的任何一部分:首先把光标移动到你
|
||||
你也可以用一种通用的办法来移除缓冲区里的任何一部分:首先把光标移动到你
|
||||
想要移除的区域的一端,然后按 C-@ 或 C-SPC(任一即可,SPC指空格)【注意,
|
||||
C-SPC 往往被中文用户设定成输入法热键,如果这样,C-SPC 就被系统拦截而无
|
||||
法输入给 Emacs 了,因此这里还是推荐使用C-@。】,然后再移动到另一端,再
|
||||
按 C-w 就可以把位于这两点之间的所有文字移除了。
|
||||
法传递给 Emacs 了,因此这里还是推荐使用C-@。】,然后将光标移动到另一端,
|
||||
再按 C-w 就可以把位于这两点之间的所有文字移除了。
|
||||
|
||||
>> 移动光标到上一段开头的“你”字。
|
||||
>> 输入 C-@ 。Emacs 应该会在屏幕的下方显示一个“Mark set”的消息。
|
||||
>> 移动光标到第二行中的“端”字。
|
||||
>> 输入 C-w,就会把从“你”开始到“端”之前的文字全部移除。
|
||||
>> 输入 C-w,从“你”开始到“端”之前的文字被全部移除。
|
||||
|
||||
注意,“移除(kill)”和“删除(delete)”的不同在于被移除的东西可以找回
|
||||
来,而被删除的就不行了。【实际上,移除掉的东西虽然看起来“消失”了,但
|
||||
实际上被 Emacs 记录了下来,因此还可以找回来;而删除掉的东西虽然也可能还
|
||||
在内存里,但是已经被 Emacs“抛弃”了,所以就找不回来了。】重新插入被移
|
||||
除的文字称为“召回(yank)”。一般而言,那些会去除很多文字的命令会把去
|
||||
除掉的文字储存起来(它们被设定成了“可召回”),而那些只是去除一个字符
|
||||
或者只是去除空白的命令就不会储存被去除掉的东西(自然你就无法召回了)。
|
||||
除的文字称为“召回(yank)”。一般而言,那些可能消除很多文字的命令会把
|
||||
消除掉的文字记录下来(它们被设定成了“可召回”),而那些只消除一个字符
|
||||
或者只消除空白的命令就不会记录被消除的内容(自然你也就无法召回了)。
|
||||
|
||||
>> 移动光标到一非空白行的行头,然后输入 C-k 移除那一行上的文字。
|
||||
|
||||
|
|
@ -344,9 +345,9 @@ C-SPC
|
|||
C-k 会把两行以及它们的换行符移除;而如果只是输入 C-k 两次显然不是这个结
|
||||
果。
|
||||
|
||||
将被移除的文字恢复的动作称为“召回(yanking)”。(就好像你把别人从你身
|
||||
边移走的东西又猛力地拉回来。)你可以在你删除文字的地方召回,也可以在别
|
||||
的地方召回,还可以多次召回同样的文字以得到它的多个拷贝。
|
||||
将被移除的文字恢复的动作称为“召回(yanking)”。(就好像把别人从你身边
|
||||
移走的东西又猛力地拉回来。)你可以在你删除文字的地方召回,也可以在别的
|
||||
地方召回,还可以多次召回同样的文字以得到它的多个拷贝。
|
||||
|
||||
召回的命令是 C-y。它会在光标所在处插入你最后移除的文字。
|
||||
|
||||
|
|
@ -362,13 +363,13 @@ C-y
|
|||
>> 按 C-y。然后把光标往下移动几行,再按一次 C-y。
|
||||
现在你应该知道怎么复制文字了。
|
||||
|
||||
C-y 可以把最近移除的文字召回,但如果你想召回的东西不是最近移除的,该怎
|
||||
么办呢?它们当然没有丢,你可以用 M-y 来召回它们。在用 C-y 召回最近移除
|
||||
的文字之后,紧接着再用 M-y 就可以召回再前一次被移除的文字,再按一次
|
||||
M-y 又可以召回再上一次的,因此只要多按几次 M-y 就可以找到你想要召回的东
|
||||
西了。找到了之后,你什么也不用做,把它们晾在那里,继续你的编辑就行了。
|
||||
C-y 可以召回最近一次移除的内容,那如何召回前几次移除的内容呢?它们当然
|
||||
没有丢,你可以用 M-y 来召回它们。在用 C-y 召回最近移除的文字之后,紧接
|
||||
着再按 M-y 就可以召回再前一次被移除的内容,再按一次 M-y 又可以召回再上
|
||||
一次的……连续使用 M-y 直到找到你想要召回的东西,然后什么也不用做,继续
|
||||
编辑就行了。
|
||||
|
||||
如果你一次按 M-y 按了很多下,你可能会回到起始点,也就是最近移除的文字。
|
||||
如果连续按 M-y 很多次,你可能会回到起始点,也就是最近移除的文字。
|
||||
【看得出这实际上是一个环。】
|
||||
|
||||
>> 移除一行,移动一下光标,然后再移除另外一行。
|
||||
|
|
@ -376,7 +377,7 @@ M-y
|
|||
紧接着再按 M-y,它将会被第一次移除的那行取代。
|
||||
试着再按几下 M-y 看看会发生什么。
|
||||
再继续,直到第二行被召回来,然后再做个几次。
|
||||
如果你愿意,你可以试着给 M-y 指定一个正的或负的参数。
|
||||
如果感兴趣,你可以试着给 M-y 指定一个正的或负的参数。
|
||||
|
||||
|
||||
* 撤销(UNDO)
|
||||
|
|
@ -405,24 +406,24 @@ C-_ Ҳ
|
|||
* 文件(FILE)
|
||||
--------------
|
||||
|
||||
想保存工作成果就要记得存盘,否则一旦退出 Emacs 你编辑的文字就都丢了。要
|
||||
想保存工作成果就要记得存盘,否则一旦退出 Emacs 你编辑的文字就会丢失。要
|
||||
存盘,就要在编辑前“寻找”到一个存盘文件。(这个过程通常也被称为“访问”
|
||||
文件。)
|
||||
|
||||
寻找到一个文件意味着你可以在 Emacs 里查看这个文件的内容。从很多方面讲,
|
||||
这就等于你在直接编辑这个文件。但是你所做的修改只有在“存盘”的时候才会
|
||||
被写入文件。也正因为如此,你可以丢弃一个改到一半的文件而不必把这个残缺
|
||||
文件也保存到计算机上。最后就算你真正存了盘,Emacs 也会把存盘前的文件重
|
||||
命名保存,以防你改完之后又想反悔。
|
||||
寻找到一个文件意味着你可以在 Emacs 里查看这个文件的内容。从许多角度看,
|
||||
这就等于你在直接编辑这个文件,只是你所做的修改只有在“存盘”的时候才会
|
||||
被写入文件。也正因为如此,你可以丢弃一个写到一半的文件而不必把这个残缺
|
||||
文件也保存到计算机上。在存盘的时候,Emacs 会把存盘前的文件重命名保存,
|
||||
以防你改完之后又想反悔。
|
||||
|
||||
在屏幕的下方,你应该能够看到头尾都是短线“-”的一行,其开头通常都是诸如
|
||||
“--:-- TUTORIAL.cn”这样的东西,这些文字就代表了你当前正在访问的文件。
|
||||
现在你访问的文件叫“TUTORIAL.cn”,它只是给你个人临时使用的一个拷贝。只
|
||||
要你用 Emacs 寻找到一个文件,文件名就会出现在上述位置。
|
||||
在屏幕的下方,你应该能够看到头尾都是短线“-”的一行,行首通常是一些诸如
|
||||
“--:-- TUTORIAL.cn”的文字,这些文字代表了你当前正在访问的文件。比如你
|
||||
现在正在访问的文件叫“TUTORIAL.cn”,它只是一个给你临时使用的拷贝。每当
|
||||
Emacs 寻找到一个文件,文件名就会出现在这个位置。
|
||||
|
||||
寻找文件的命令有一个特别之处,那就是你必须给出文件名。我们称这个命令
|
||||
“从终端读入了一个参数”(在这里,这个参数显然就是文件名)。当你输入了
|
||||
这个命令之后:
|
||||
寻找文件的命令有一个特点,那就是你必须给出文件名。我们称这个命令“从终
|
||||
端读入了一个参数”(在这里,这个参数显然就是文件名)。在你输入这条命令
|
||||
之后:
|
||||
|
||||
C-x C-f 寻找一个文件
|
||||
|
||||
|
|
@ -430,50 +431,51 @@ Emacs
|
|||
行被称为小缓冲(minibuffer),在小缓冲里你可以使用通常的 Emacs 编辑命令
|
||||
来编辑文件名。
|
||||
|
||||
在小缓冲里输入文件名(其实输入别的东西也一样)时可以用 C-g 取消。
|
||||
在小缓冲里输入文件名(其实输入其它东西也一样)时可以用 C-g 取消。
|
||||
|
||||
>> 输入 C-x C-f,然后输入 C-g
|
||||
这会关掉小缓冲,同时也会取消使用小缓冲的 C-x C-f 命令。
|
||||
当然了,你也没有找任何文件。
|
||||
|
||||
输入完文件名之后用 <Return> 结束,然后 C-x C-f 命令开始工作并找到你指定
|
||||
的文件。小缓冲在 C-x C-f 命令结束之后也会消失。
|
||||
用 <Return> 结束文件名的输入。这之后 C-x C-f 命令开始工作并找到你指定的
|
||||
文件。小缓冲在 C-x C-f 命令结束之后也会消失。
|
||||
|
||||
眨眼间文件就会显示在屏幕上,你可以开始编辑了。存盘用这个命令:
|
||||
眨眼间文件就被显示在屏幕上,你可以开始编辑了。存盘用这条命令:
|
||||
|
||||
C-x C-s 储存这个文件
|
||||
|
||||
这个命令把 Emacs 中的文字存储到文件中。第一次存盘的时候 Emacs 会将原文
|
||||
件重命名以保留原文。重命名的规则通常是在原文件名之后添加一个“~”字符。
|
||||
这条命令把 Emacs 中的文字存储到文件中。第一次存盘的时候 Emacs 会将原文
|
||||
件重命名以备份。重命名的规则通常是在原文件名之后添加一个“~”字符。
|
||||
【对许多人来说,这是一个烦人的特性,关掉文件备份可以用如下命令:
|
||||
M-x customize-variable <Return> make-backup-files <Return>】
|
||||
|
||||
存盘结束后,Emacs 会显示写入文件的文件名。你最好养成经常存盘的习惯,这
|
||||
样在系统崩溃或者死机的时候你不会损失太多。
|
||||
可以减少系统崩溃和死机给你带来的损失。
|
||||
|
||||
>> 输入 C-x C-s 把本快速指南存下来。
|
||||
你会看到“Wrote ...TUTORIAL.cn”这样的消息显示在屏幕的下方。
|
||||
你会在屏幕的下方看到一条消息:“Wrote ...TUTORIAL.cn”。
|
||||
|
||||
注意:使用某些终端的时候,输入 C-x C-s 会冻结屏幕【屏幕没有任何输出】,
|
||||
这样你就看不到 Emacs 的任何变化。其原因是操作系统的“流量控制”功能把
|
||||
C-s 拦截了,并且冻结了屏幕,Emacs 自然也就看不到这个输入了。用 C-q 可以
|
||||
解除屏幕冻结。要解决这个问题,请参考 Emacs 手册里的“Spontaneous Entry
|
||||
to Incremental Search”一节【Emacs 手册可能还没有中文翻译】,那里可能有
|
||||
一些有用的建议。
|
||||
注意:在某些终端下,输入 C-x C-s 会冻结屏幕【屏幕没有任何输出】,使你看
|
||||
不到 Emacs 的任何变化。其原因是操作系统的“流量控制”功能拦截了 C-s 并
|
||||
冻结了屏幕。用 C-q 可以解除屏幕冻结。要解决这个问题,请参考 Emacs 手册
|
||||
里的“Spontaneous Entry to Incremental Search”一节【Emacs 手册可能还没
|
||||
有中文翻译】,那里提供了一些有用的建议。
|
||||
|
||||
你可以寻找一个已有的文件然后查看或者编辑,你还可以寻找一个不存在的文件。
|
||||
实际上这正是用 Emacs 创建新文件的方法:找到不存在的新文件,然后从零开始。
|
||||
在存盘的时候,Emacs 才真正创建这个文件然后再存盘。在这之后一切就跟你编
|
||||
辑一个已有文件一样了。
|
||||
你不但可以寻找一个已有的文件来查看或编辑,还可以寻找一个不存在的文件。
|
||||
实际上这正是 Emacs 创建新文件的方法:找到不存在的新文件。只有在存盘的时
|
||||
候,Emacs 才会真正创建这个文件。而在这之后的一切就跟编辑一个已有文件没
|
||||
有区别了。
|
||||
|
||||
|
||||
* 缓冲区(BUFFER)
|
||||
------------------
|
||||
|
||||
如果你用 C-x C-f 找到第二个文件,第一个文件仍然会在 Emacs 里。要切回第
|
||||
一个文件,你可以 C-x C-f 再次寻找它。这样,你可以在 Emacs 里同时打开很
|
||||
多文件。
|
||||
你可以用 C-x C-f 找到并打开第二个文件,但第一个文件仍然在 Emacs 中。要
|
||||
切回第一个文件,一种办法是再用一次 C-x C-f。这样,你就可以在 Emacs 中同
|
||||
时打开多个文件。
|
||||
|
||||
>> 用 C-x C-f foo <Return> 的方式建立一个名为“foo”的文件。
|
||||
然后敲入一些文字,再用 C-x C-s 保存文件“foo”。
|
||||
输入一些文字,再用 C-x C-s 保存文件“foo”。
|
||||
最后,输入 C-x C-f TUTORIAL.cn <Return> 回到这里。
|
||||
|
||||
Emacs 把每个编辑中的文件都放在一个称为“缓冲区(buffer)”的地方。每寻
|
||||
|
|
@ -484,40 +486,38 @@ Emacs
|
|||
|
||||
>> 现在就试一下 C-x C-b
|
||||
|
||||
观察一下缓冲区是如何命名的,它很可能跟其对应的文件同名。事实上,你在一
|
||||
个 Emacs 窗格里看到的任何文字都是某个缓冲区的一部分。
|
||||
观察一下缓冲区是如何被命名的,它很可能跟与其对应的文件同名。实际上,一
|
||||
个 Emacs 窗格里的任何文字都是某个缓冲区的一部分。
|
||||
|
||||
>> 输入 C-x 1 离开缓冲区列表
|
||||
|
||||
不管存在多少缓冲区,任何时候都只能有一个是“当前”缓冲区,也就是你正在
|
||||
编辑的这个。如果你想编辑另外一个缓冲区,那么你必须“切换”过去。上面讲
|
||||
过,用 C-x C-f 可以切换到某个文件对应的缓冲区。不过还有一个更简单点的办
|
||||
法,那就是用 C-x b。用这个命令,你必须输入缓冲区的名称。
|
||||
不管存在多少缓冲区,任何时候都只能有一个“当前”缓冲区,也就是你正在编
|
||||
辑的这个。如果你想编辑其它的缓冲区,就必须“切换”过去。上面讲过,用
|
||||
C-x C-f 是一种办法。不过还有一个更简单的办法,那就是用 C-x b。用这条命
|
||||
令,你必须输入缓冲区的名称。
|
||||
|
||||
>> 输入 C-x b foo <Return> 以回到文件“foo”的缓冲区。
|
||||
然后输入 C-x b TUTORIAL.cn <Return> 回到这里。
|
||||
|
||||
大多数情况下,缓冲区和与其对应的文件是同名的(不包括目录名),不过这也
|
||||
不是绝对的。用 C-x C-b 得到的缓冲区列表中显示的总是缓冲区的名称。
|
||||
大多数情况下,缓冲区与跟其对应的文件是同名的(不包括目录名),不过这也
|
||||
不是绝对的。用 C-x C-b 得到的缓冲区列表总是显示缓冲区名。
|
||||
|
||||
你在 Emacs 窗格里看到的“任何”文字都一定是属于某个缓冲区的。也有些缓冲
|
||||
区并没有对应文件:比如显示缓冲区列表的缓冲区就是这样,再比如一个名叫
|
||||
“*Messages*”的缓冲区也没有对应的文件,这个缓冲区里存放的都是在 Emacs
|
||||
底部出现的消息。
|
||||
你在 Emacs 窗格里看到的“任何”文字都一定属于某个缓冲区。然而,缓冲区未
|
||||
必有对应文件:比如显示缓冲区列表的缓冲区就是这样。再比如“*Messages*”
|
||||
缓冲区也没有对应文件,这个缓冲区里存放的都是在 Emacs 底部出现的消息。
|
||||
|
||||
>> 输入 C-x b *Messages* <Return> 瞅瞅消息缓冲区里都有什么东西。
|
||||
然后再输入 C-x b TUTORIAL.cn <Return> 回到这里。
|
||||
|
||||
如果你对文件做了修改,然后切换到另一个文件,这个动作并不会帮你把第一个
|
||||
文件存盘,对第一个文件的修改仍然仅限于 Emacs 中,也就是在它对应的缓冲区
|
||||
里。同时对第二个文件的修改也不会影响到第一个文件。这很有用,但是也挺麻
|
||||
烦,因为如果你又想要存储第一个文件,你还需要先用 C-x C-f 切换回去,然后
|
||||
再用 C-x C-s 存盘,这显然太麻烦了。你需要一个更简便的方法,而 Emacs 当
|
||||
然已经替你想到了:
|
||||
如果你对某个文件做了些修改,然后切换到另一个文件,这个动作并不会帮你把
|
||||
前一个文件存盘。对第一个文件的修改仍然仅存在于 Emacs 中,也就是在它对应
|
||||
的缓冲区里。并且,对第二个文件的修改也不会影响到第一个文件。这很有用,
|
||||
但是也挺麻烦:因为如果你想要存储第一个文件,还需要先 C-x C-f 切换回去再
|
||||
用 C-x C-s 存盘。你需要一个更简便的方法,而 Emacs 已经为你准备好了:
|
||||
|
||||
C-x s 保存多个缓冲区
|
||||
|
||||
C-x s 会找到所有已被修改但尚未存盘的缓冲区,然后向你逐个询问,是否需要
|
||||
C-x s 会找出所有已被修改但尚未存盘的缓冲区,然后向你逐个询问:是否需要
|
||||
存盘?
|
||||
|
||||
>> 插入一行文字,然后输入 C-x s。
|
||||
|
|
@ -529,28 +529,28 @@ C-x s
|
|||
-----------------------------------------
|
||||
|
||||
Emacs 的命令就像天上的星星,数也数不清。把它们都对应到 CONTROL 和 META
|
||||
组合键上显然是不可能的事情。Emacs 用扩展(eXtend)命令来解决这个问题,
|
||||
扩展命令有两种风格:
|
||||
组合键上显然是不可能的。Emacs 用扩展(eXtend)命令来解决这个问题,扩展
|
||||
命令有两种风格:
|
||||
|
||||
C-x 字符扩展。 C-x 之后输入另一个字符或者组合键。
|
||||
M-x 命令名扩展。M-x 之后输入一个命令名。
|
||||
|
||||
很多扩展命令都很有用,虽然与你已经学过的命令比起来,他们可能不那么常用。
|
||||
你应该已经见过一些扩展命令了,比如用 C-x C-f 寻找文件和用 C-x C-s 保存
|
||||
文件。退出 Emacs 用的 C-x C-c 也是扩展命令。(不用担心退出 Emacs 会给你
|
||||
带来什么损失,Emacs 会在退出之前提醒你保存文件的)
|
||||
很多扩展命令都相当有用,虽然与你已经学过的命令比起来,他们可能不那么常
|
||||
用。我们早已经见过一些扩展命令了,比如用 C-x C-f 寻找文件和用 C-x C-s
|
||||
保存文件;退出 Emacs 用的 C-x C-c 也是扩展命令。(不用担心退出 Emacs 会
|
||||
给你带来什么损失,Emacs 会在退出之前提醒你存盘的)
|
||||
|
||||
在控制台下,C-z 可以暂时离开 Emacs——当然,你还可以再回来。
|
||||
|
||||
在允许 C-z 的系统中,C-z 会把 Emacs“挂起”,也就是说,它会回到 shell
|
||||
但不退出 Emacs。在那些最常用的 shell 中,通常可以用“fg”或者“%emacs”
|
||||
命令再次回到 Emacs 中。
|
||||
但不退出 Emacs。在常用的 shell 中,通常可以用“fg”或者“%emacs”命令再
|
||||
次回到 Emacs 中。
|
||||
|
||||
在没有提供挂起功能的系统中,C-z 会在 Emacs 之下创建一个子 shell 来让你
|
||||
运行其它程序,并且再次“回到” Emacs 中——虽然我们并没有真正离开过。这
|
||||
种情况下,通常用shell 命令“exit”从子 shell 回到 Emacs。
|
||||
运行其它程序,并且再次“回到”Emacs 中——虽然我们并没有真正离开过。这
|
||||
种情况下,通常用 shell 命令“exit”从子 shell 回到 Emacs。
|
||||
|
||||
C-x C-c 最好在你打算退出登陆的时候再用。在 Emacs 被诸如邮件处理程序之类
|
||||
你最好在打算退出登陆的时候再用 C-x C-c。在 Emacs 被诸如邮件处理程序之类
|
||||
的外部程序调用之后,也可以用 C-x C-c 退出。不过一般来讲,如果你不想退出
|
||||
登录,最好还是把 Emacs 挂起而不是退出。
|
||||
|
||||
|
|
@ -563,50 +563,50 @@ C-x
|
|||
C-x 1 关掉其它所有窗格,只保留一个。
|
||||
C-x u 撤销。
|
||||
|
||||
用命令名扩展的命令一般都不太常用,或者只在部分模式下被用到。比如
|
||||
replace-string(字符串替换)这个命令,它会在全文范围内把一个字符串替换
|
||||
成另一个。在你输入 M-x 的时候,Emacs 会在屏幕底端向你询问,然后你应该输
|
||||
入命令名。如果你想输入“replace-string”,其实只需要敲“repl s<TAB>”就
|
||||
行了,Emacs 会帮你自动补齐的。输入完之后按 <Return> 。
|
||||
用命令名扩展的命令通常并不常用,或只用在部分模式下。比如 replace-string
|
||||
(字符串替换)这个命令,它会在全文范围内把一个字符串替换成另一个。在输
|
||||
入 M-x 之后,Emacs 会在屏幕底端向你询问并等待你输入命令名。如果你想输入
|
||||
“replace-string”,其实只需要敲“repl s<TAB>”就行了,Emacs 会帮你自动
|
||||
补齐。输入完之后按 <Return> 。
|
||||
|
||||
字符串替换命令需要两个参数——被替换的字符串和用来替换它的字符串。每个
|
||||
参数的输入用换行符来结束。
|
||||
参数的输入都以换行符来结束。
|
||||
|
||||
>> 将光标移到本行下面第二行的空白处,然后输入
|
||||
M-x repl s<Return>changed<Return>altered<Return>。
|
||||
|
||||
【以下保留一行原文,以应练习之需:
|
||||
Notice how this line has changed: you've replaced... 】
|
||||
【以下保留一行原文,以应练习之需:】
|
||||
Notice how this line has changed: you've replaced...
|
||||
|
||||
请注意这一行是怎么改变的:在光标之后的范围内,你已经将“changed”这个
|
||||
词——不管它在哪里出现——全部用“altered”替换掉了。
|
||||
请注意这一行的变化:在光标之后的范围内,你已经将“changed”这个词——不
|
||||
论它在哪里出现——全部用“altered”替换掉了。
|
||||
|
||||
|
||||
* 自动保存(AUTO SAVE)
|
||||
-----------------------
|
||||
|
||||
如果你修改了一个文件但是还没来得及存盘,然后你的计算机罢工了,那么你编
|
||||
辑的东西很可能就找不回来了。为了避免这样的不幸一再发生,Emacs 会定期将
|
||||
你正在编辑的文件存入一个“自动保存”文件中。自动保存的文件名的头尾各有
|
||||
一个“#”字符,比如你正在编辑“hello.c”,那么它的自动保存文件就叫
|
||||
“#hello.c#”。在你正常存盘之后,Emacs 会删除自动保存文件。
|
||||
如果你已经修改了一个文件,但是还没来得及存盘你的计算机就罢工了,那么你
|
||||
所做的修改就很可能会丢失。为了避免这样的不幸发生,Emacs 会定期将正在编
|
||||
辑的文件写入一个“自动保存”文件中。自动保存文件的文件名的头尾各有一个
|
||||
“#”字符,比如你正在编辑的文件叫“hello.c”,那么它的自动保存文件就叫
|
||||
“#hello.c#”。这个文件会在正常存盘之后被 Emacs 删除。
|
||||
|
||||
假如不幸真的发生了,你大可以从容的打开原来的文件(注意不是自动保存文件)
|
||||
然后输入 M-x recover file<Return> 来恢复你的自动保存文件。在提示确认的
|
||||
时候,输入 yes<Return> 就行了。
|
||||
所以,假如不幸真的发生了,你大可以从容地打开原来的文件(注意不是自动保
|
||||
存文件)然后输入 M-x recover file<Return> 来恢复你的自动保存文件。在提
|
||||
示确认的时候,输入 yes<Return>。
|
||||
|
||||
|
||||
* 回显区(ECHO AREA)
|
||||
---------------------
|
||||
|
||||
如果 Emacs 发现你输入多字符命令的节奏很慢,它会在窗格的下方称为“回显区”
|
||||
的地方给你提示。回显区位于屏幕的最后一行。
|
||||
的地方给你提示。回显区位于屏幕的最下面一行。
|
||||
|
||||
|
||||
* 状态栏(MODE LINE)
|
||||
---------------------
|
||||
|
||||
位于回显区的正上方的一行被称为“状态栏”。状态栏上会显示一些信息,比如:
|
||||
位于回显区正上方的一行被称为“状态栏”。状态栏上会显示一些信息,比如:
|
||||
|
||||
--:** TUTORIAL.cn (Fundamental)--L670--54%----------------
|
||||
|
||||
|
|
@ -627,58 +627,58 @@ Fundamental
|
|||
|
||||
Emacs 的主模式林林总总。有用来编辑程序代码的——比如 Lisp 模式;也有用
|
||||
来编辑各种自然语言文本的——比如 Text 模式。任何情况下只能应用一个主模
|
||||
式,其名称会显示在状态栏上,就在现在显示“Fundamental”的地方。
|
||||
式,其名称会显示在状态栏上,也就是现在显示“Fundamental”的地方。
|
||||
|
||||
主模式有时会改变一些命令的行为。比如说,不管编辑什么样的程序代码,你都
|
||||
可以用一个统一的命令来添加注释,但是在不同的语言中注释的语法往往是不同
|
||||
的,这时相应的主模式就会分别用各自的语法规则来添加注释。主模式都是可以
|
||||
用 M-x 启动的命令,所以 M-x fundamental-mode 就可以切换到 Fundamental
|
||||
主模式通常会改变一些命令的行为。比方说,不管编辑什么语言的程序代码,你
|
||||
都可以用一个相同的命令来添加注释。但是在不同的语言中注释的语法往往是不
|
||||
同的,这时不同的主模式就会用各自不同的语法规则来添加注释。主模式都是可
|
||||
以用 M-x 启动的扩展命令,M-x fundamental-mode 就可以切换到 Fundamental
|
||||
模式。
|
||||
|
||||
如果你要编辑自然语言文本——比如现在——你应该用 Text 模式。
|
||||
编辑自然语言文本——比如现在——应该用 Text 模式。
|
||||
|
||||
>> 输入 M-x text mode<Return>。
|
||||
|
||||
别害怕,没有什么命令会改变功能。不过你可以发现,M-f 和 M-b 现在把单引号
|
||||
(')视为词的一部分了。而在先前,在 Fundamental 模式中,M-f 和 M-b 都将
|
||||
单引号视为分隔单词的符号。
|
||||
别担心,什么都没变。不过细心一些可以发现,M-f 和 M-b 现在把单引号(')
|
||||
视为词的一部分了。而在先前的 Fundamental 模式中,M-f 和 M-b 都将单引号
|
||||
视为分隔单词的符号。
|
||||
|
||||
主模式通常都会搞一些类似的小动作,因为很多命令其实完成的是“相同的工
|
||||
作”,只是在不同情况下会有不同的工作方式而已。【所谓“求同存异”,在
|
||||
作”,只是在不同环境下会有不同的工作方式而已。【所谓“求同存异”,在
|
||||
Emacs 里得到了很好的体现】
|
||||
|
||||
用 C-h m 可以查看当前主模式的文档。
|
||||
|
||||
>> 用 C-u C-v 将本行带到靠近屏幕的上方。
|
||||
>> 用 C-u C-v 将本行带到屏幕的最上方。
|
||||
>> 输入 C-h m,看看 Text 模式与 Fundamental 模式有哪些不同。
|
||||
>> 输入 C-x 1 关掉文档窗格。
|
||||
|
||||
主模式之所以称之为“主(major)”模式,是因为同时还有“辅模式”(minor
|
||||
mode)存在。辅模式并不能替代主模式,而是在主模式之外再做一些辅助的修改。
|
||||
每个辅模式都可以独立地开启和关闭,跟其它辅模式无关,跟主模式也无关。所
|
||||
以你可以不用辅模式,也可以用一个或者多个辅模式。
|
||||
mode)存在。辅模式并不能替代主模式,而是提供一些辅助的功能。每个辅模式
|
||||
都可以独立地开启和关闭,跟其它辅模式无关,跟主模式也无关。所以你可以不
|
||||
使用辅模式,也可以只使用一个或同时使用多个辅模式。
|
||||
|
||||
有一个叫做自动折行(Auto Fill)的辅模式用处很大,特别是在编辑自然语言文
|
||||
本的时候。这个辅模式启动后,Emacs 会在你打字超出一行边界时自动替你换行。
|
||||
有一个叫做自动折行(Auto Fill)的辅模式很有用,特别是在编辑自然语言文本
|
||||
的时候。启用自动折行后,Emacs 会在你打字超出一行边界时自动替你换行。
|
||||
|
||||
用 M-x auto fill mode<Return> 启动自动折行模式。启动之后,如果我们再用
|
||||
一次 M-x auto fill mode<Return>,自动折行模式就被关闭了。也就是说,如果
|
||||
自动折行模式没有开启,这个命令会开启它;而如果已经开启了,这个命令会关
|
||||
闭它。我们说这个命令用来“开关(toggle)”模式。
|
||||
用 M-x auto fill mode<Return> 启动自动折行模式。再用一次这条命令,自动
|
||||
折行模式会被关闭。也就是说,如果自动折行模式没有被开启,这个命令会开启
|
||||
它;如果已经开启了,这个命令会关闭它。所以我们说,这个命令可以用来“开
|
||||
关(toggle)”模式。
|
||||
|
||||
>> 现在输入 M-x auto fill mode<Return>。然后随便敲点什么,直到你看到它
|
||||
分成两行。必须敲一些空格,因为 Auto Fill 只在空白处进行断行。【空格
|
||||
对英文来说是必须的,而对中文则不必。】
|
||||
分成两行。你必须敲一些空格,因为 Auto Fill 只在空白处进行断行。
|
||||
【输入空格对英文来说是必须的,而对中文则不必。】
|
||||
|
||||
行边界通常被设定为 70 个字符【这里指英文字符】,你可以用 C-x f 命令来重
|
||||
新设定之。指定新行边界可以用数字参数来进行传递。
|
||||
行边界通常被设定为 70 个字符【这里指英文字符】,你可以用 C-x f 命令配合
|
||||
数字参数来重新设定它。
|
||||
|
||||
>> 输入 C-x f 并传递参数 20: C-u 2 0 C-x f。
|
||||
然后输入一些文字,观察 Emacs 的自动折行动作
|
||||
最后再用 C-x f 将边界设回 70。
|
||||
|
||||
如果你在段落的中间做了一些修改,那么自动折行模式不会替你把整个段落重新
|
||||
折行。重新自动折行用 M-q,注意使用的时候光标必须位于你想折行的那一段里。
|
||||
折行,你需要用 M-q 手动折行。注意,光标必须位于你需要折行的那一段里。
|
||||
|
||||
>> 移动光标到前一段中,然后输入 M-q。
|
||||
|
||||
|
|
@ -686,49 +686,47 @@ mode
|
|||
* 搜索(SEARCHING)
|
||||
-------------------
|
||||
|
||||
Emacs 可以向前或者向后搜索字符串。搜索命令是一个移动光标的命令:搜索成
|
||||
功后,光标会停留在搜索目标出现的地方。
|
||||
Emacs 可以向前或向后搜索字符串。搜索命令是一个移动光标的命令:搜索成功
|
||||
后,光标会停留在搜索目标出现的地方。
|
||||
|
||||
Emacs 的搜索命令的独特之处在于,它是“渐进的(incremental)”,意思是搜
|
||||
Emacs 的搜索命令的独特之处在于,它是“渐进的(incremental)”。意思是搜
|
||||
索与输入同时进行:你在键盘上一字一句地输入搜索词的过程中,Emacs 就已经
|
||||
开始替你搜索了。
|
||||
|
||||
C-s 是向前搜索,C-r 是向后搜索。不过手别这么快!先等等别着急试。
|
||||
C-s 是向前搜索,C-r 是向后搜索。不过手别这么快!别着急试。
|
||||
|
||||
在你按下 C-s 之后,你会发现回显区里有“I-search”字样出现,提示你目前
|
||||
Emacs 正处于“渐进搜索”状态,正在等待你输入搜索字串。按 <Return> 会结
|
||||
束搜索。
|
||||
在按下 C-s 之后,回显区里会有“I-search”字样出现,表明目前 Emacs 正处
|
||||
于“渐进搜索”状态,并等待你输入搜索字串。按 <Return> 可以结束搜索。
|
||||
|
||||
>> 输入 C-s 开始一个搜索。注意敲慢一点,一次输入一个字符。
|
||||
慢慢输入“cursor”整个词,每敲一个字就暂停一下,注意观察光标。
|
||||
慢慢输入“cursor”这个词,每敲一个字都停顿一下并观察光标。
|
||||
现在你应该已曾经找到“cursor”这个词了。
|
||||
>> 再按一次 C-s,搜索下一个“cursor”出现的位置。
|
||||
>> 现在按四次退格键,看看光标是如何移动的。
|
||||
>> 敲 <Return> 结束搜索。
|
||||
|
||||
刚才看仔细了么?在一个渐进式搜索中,Emacs 会尝试跳到你输入的字符串的出
|
||||
现位置。想跳到下一个搜索目标出现的位置,只要再按一次 C-s 就行了。如果找
|
||||
不到,Emacs 会发出“哔”的一声,告诉你搜索失败。在整个过程中,都可以用
|
||||
C-g 来终止搜索。【你会发现 C-g 之后光标回到了搜索开始前的地方,而
|
||||
<Return> 会让光标留在搜索结果上,这是很有用的功能。】
|
||||
看仔细了么?在一次渐进式搜索中,Emacs 会尝试跳到搜索目标出现的位置。要
|
||||
跳到下一个命中位置,就再按一次 C-s。如果找不到目标,Emacs 会发出“哔”
|
||||
的一声,告诉你搜索失败。在整个过程中,都可以用 C-g 来终止搜索。【你会发
|
||||
现 C-g 会让光标回到搜索开始的位置,而 <Return> 则让光标留在搜索结果上,
|
||||
这是很有用的功能。】
|
||||
|
||||
注意:使用某些终端的时候,输入 C-x C-s 会冻结屏幕【屏幕没有任何输出】,
|
||||
这样你就看不到 Emacs 的任何变化。其原因是操作系统的“流量控制”功能把
|
||||
C-s 拦截了,并且冻结了屏幕,Emacs 自然也就看不到这个输入了。用 C-q 可以
|
||||
解除屏幕冻结。要解决这个问题,请参考 Emacs 手册里的“Spontaneous Entry
|
||||
to Incremental Search”一节【Emacs 手册可能还没有中文翻译】,那里可能有
|
||||
一些有用的建议。
|
||||
注意:在某些终端下,输入 C-x C-s 会冻结屏幕【屏幕没有任何输出】,使你看
|
||||
不到 Emacs 的任何变化。其原因是操作系统的“流量控制”功能拦截了 C-s 并
|
||||
冻结了屏幕。用 C-q 可以解除屏幕冻结。要解决这个问题,请参考 Emacs 手册
|
||||
里的“Spontaneous Entry to Incremental Search”一节【Emacs 手册可能还没
|
||||
有中文翻译】,那里提供了一些有用的建议。
|
||||
|
||||
如果你正在渐进式搜索中,按退格键会删除目标字符串的最后一个字符,并且光
|
||||
标会回到最近一次搜索的命中位置。比如你已经输入了“c”,光标就停在“c”
|
||||
第一次出现的地方,再输入“u”,光标停在“cu”第一次出现的地方,这时再按
|
||||
退格键,“u”就从搜索字串中消失了,然后光标会回到“c”第一次出现的地方。
|
||||
在渐进式搜索中,按退格键会删除目标字符串的最后一个字符,并且光标会回到
|
||||
最近一次搜索的命中位置。比如你已经输入了“c”,光标就停在“c”第一次出
|
||||
现的位置,再输入“u”,光标停在“cu”第一次出现的位置,这时再按退格键,
|
||||
“u”就从搜索字串中消失了,然后光标会回到“c”第一次出现的位置。
|
||||
|
||||
另外如果你在搜索的时候输入了 CONTROL 或者 META 组合键的话,搜索可能会
|
||||
结束。(也有例外,比如 C-s 和 M-r 这些对搜索有特别意义的组合键。)
|
||||
另外,如果你在搜索的时候输入了 CONTROL 或者 META 组合键的话,搜索可能会
|
||||
结束。(也有例外,比如 C-s 和 M-r 这些用于搜索的命令。)
|
||||
|
||||
前面说的都是“向下”搜索,如果想“向上”搜索,可以用 C-r。C-r 与 C-s
|
||||
相比除了搜索方向相反之外,其它的操作都一样。
|
||||
相比除了搜索方向相反之外,其余的操作都一样。
|
||||
|
||||
|
||||
* 多窗格(MULTIPLE WINDOWS)
|
||||
|
|
@ -759,29 +757,29 @@ Emacs
|
|||
窗口下缺省显示为镂空光标。】一般所有的编辑命令都作用于这个光标所在的窗
|
||||
格,我们称这个窗格为“被选中的窗格”。
|
||||
|
||||
当你在一个窗格中编辑,但是想用另一个窗格作参考的时候,C-M-v 是很有用的
|
||||
命令。你可以保持光标始终处于编辑窗格中,然后用 C-M-v 命令在另外一个窗格
|
||||
里滚动。【翻译和校对就很适合用这种方式进行。】
|
||||
当你在一个窗格中编辑,但用另一个窗格作为参考的时候,C-M-v 是很有用的命
|
||||
令。你可以始终处于编辑窗格中,然后用 C-M-v 命令滚动另外一个窗格。【比如
|
||||
翻译和校对就很适合用这种方式进行。】
|
||||
|
||||
C-M-v 是一个 CONTROL-META 组合键。如果你有 META 键,你可以同时按住
|
||||
CONTROL 和 META 键然后输入 v。CONTROL 和 META 键哪个先按没有关系,因为
|
||||
它们只是用来“修饰(modify)”你输入的字符的。
|
||||
C-M-v 是一个 CONTROL-META 组合键。如果你有 META 键的话,可以同时按住
|
||||
CONTROL 和 META 键并输入 v。CONTROL 和 META 键先按哪个都可以,因为它们
|
||||
只是用来“修饰(modify)”你输入的字符的。
|
||||
|
||||
如果你并没有 META 键,你也可以用 ESC 来代替,不过这样子按键顺序就有关系
|
||||
了:你必须输入 ESC ,然后再输入 CONTROL-v。CONTROL-ESC v 是没用的,因为
|
||||
ESC 本身是一个字符键,而不是一个修饰键(modifier key)。
|
||||
如果你并没有 META 键,你也可以用 ESC 来代替,不过这样的话就要注意按键顺
|
||||
序了:你必须先输入 ESC ,然后再输入 CONTROL-v。CONTROL-ESC v 是没用的,
|
||||
因为 ESC 本身是一个字符键,而不是一个修饰键(modifier key)。
|
||||
|
||||
>> (在上方窗格里)输入 C-x 1 关掉下方窗格。
|
||||
|
||||
(如果你在下方的窗格里输入 C-x 1,那么就会关掉上方的窗格。你可以把这个
|
||||
命令看成是“只保留一个窗格”——就是我正在编辑的这个。)
|
||||
命令看成是“只保留一个窗格”——就是我们正在编辑的这个。)
|
||||
|
||||
不同的窗格里可以显示不同的缓冲区。如果你在一个窗格里用 C-x C-f 打开了
|
||||
一个文件,另一个窗格并不会有什么变化。在任何一个窗格里都可以打开文件。
|
||||
不同的窗格可以显示不同的缓冲区。如果你在一个窗格里用 C-x C-f 打开了一个
|
||||
文件,另一个窗格并不会发生什么变化。任何一个窗格里都可以用来打开文件。
|
||||
|
||||
有一种方式可以让你在另一个窗格里打开文件:
|
||||
用下面的方法可以在一个新开窗格里打开文件:
|
||||
|
||||
>> 输入 C-x 4 C-f,后面紧跟着输入一个文件名,用 <Return> 结束。
|
||||
>> 输入 C-x 4 C-f,紧跟着输入一个文件名,再用 <Return> 结束。
|
||||
可以看到你指定的文件出现在下方的窗格中,同时光标也跳到了那里。
|
||||
|
||||
>> 输入 C-x o 回到上方的窗格,然后再用 C-x 1 关掉下方窗格。
|
||||
|
|
@ -801,29 +799,29 @@ ESC
|
|||
|
||||
>> 输入 M-x 进入小缓冲;然后输入 ESC ESC ESC 离开。
|
||||
|
||||
你不能用 C-g 来离开递归编辑,因为 C-g 的作用是取消命令和“参数
|
||||
(arguments)”,而这些东西都位于本层递归编辑“之内”。
|
||||
你不能用 C-g 退出递归编辑,因为 C-g 的作用是取消“本层递归编辑之内”的
|
||||
命令和其参数(arguments)。
|
||||
|
||||
|
||||
* 获得更多帮助(GETTING MORE HELP)
|
||||
-----------------------------------
|
||||
|
||||
本快速指南的目的仅仅是帮助你学会在 Emacs 的大海里游泳,不至于一上来就淹
|
||||
死。有关 Emacs 的话题三天三夜也讲不完,这里自然是写不下了。Emacs 很理解
|
||||
你求知若渴的心情,因为它提供的强劲功能实在是太多了。Emacs 提供了一些命
|
||||
令来查看 Emacs 命令的文档,这些命令都以 CONTROL-h 开头,这个字符也因此
|
||||
被称为“Help(帮助)字符”。
|
||||
本快速指南的目的仅仅是帮助你在 Emacs 的海洋里下水,不至于束手无策望洋兴
|
||||
叹。有关 Emacs 的话题可谓汗牛充栋,这里自然是难尽万一。不过 Emacs 很理
|
||||
解你求知若渴的心情,因为它提供的强大功能实在是太多了。为此,Emacs 提供
|
||||
了一些命令来查看 Emacs 的命令文档,这些命令都以 CONTROL-h 开头,这个字
|
||||
符也因此被称为“帮助(Help)字符”。
|
||||
|
||||
要使用帮助(Help)功能,请先输入 C-h,然后再输入一个说明你需求的字符。
|
||||
如果你晕到连需要什么帮助都不知道,那么就输入 C-h ?,Emacs 会告诉你它能
|
||||
提供哪些帮助。如果你已经按了 C-h 又想反悔,那么用 C-g 取消它就是了。
|
||||
要使用帮助(Help)功能,请先输入 C-h,然后再输入一个字符以说明你需要什
|
||||
么帮助。如果你连自己到底需要什么帮助都不知道,那么就输入 C-h ?,Emacs
|
||||
会告诉你它能提供了哪些帮助。如果你按了 C-h 又想反悔,可以用 C-g 取消。
|
||||
|
||||
(有些站点改变了 C-h 的意思,他们这种以己度人外加一刀切的做法让倒是让你
|
||||
可以义正辞严的抱怨系统管理员,真的不是太好。话说回来,如果你按 C-h 之后
|
||||
没有任何帮助信息显示出来,那么试试 F1 键或者 M-x help <Return>。)
|
||||
(有些主机改变了 C-h 的意义,这种以己度人外加一刀切的做法确实不太好,不
|
||||
过倒是让你可以义正辞严地抱怨他们的系统管理员。话说回来,如果你按 C-h 之
|
||||
后没有任何帮助信息显示出来,那么试试 F1 键或者 M-x help <Return> 。)
|
||||
|
||||
最基本的帮助功能是 C-h c。输入 C-h c 之后在输入一个组合键,Emacs 会很简
|
||||
要地给出这个命令的说明。
|
||||
最基本的帮助功能是 C-h c。输入 C-h c 之后再输入一个组合键,Emacs 会给出
|
||||
这个命令的简要说明。
|
||||
|
||||
>> 输入 C-h c C-p。
|
||||
|
||||
|
|
@ -833,7 +831,7 @@ ESC
|
|||
|
||||
这条消息显示了 C-p 命令对应的函数名,函数名主要用来定制和扩展 Emacs。命
|
||||
令的功能由函数完成,所以函数名本身也可以被看成是最简单的文档——至少对
|
||||
于你已经学过的命令来说,它们的函数名足以解释它们所完成的工作了。
|
||||
于你已经学过的命令来说,它们的函数名足以解释它们的功能了。
|
||||
|
||||
多字符命令一样可以用 C-h c 来查看。
|
||||
|
||||
|
|
@ -841,18 +839,18 @@ ESC
|
|||
|
||||
>> 输入 C-h k C-p。
|
||||
|
||||
上面的命令会新打开一个 Emacs 窗格,并在其中显示函数的名称及其文档。你读
|
||||
完之后,可以用 C-x 1 关掉这个帮助窗格。当然你并不需要在 C-h k 之后立即
|
||||
这样做,你完全可以先在编辑窗格里做点别的事情,然后再用 C-x 1 关掉帮助。
|
||||
上面的命令会新打开一个 Emacs 窗格以显示函数的名称及其文档。你读完之后可
|
||||
以用 C-x 1 关掉这个帮助窗格。当然你并不需要立即这样做,你完全可以先在编
|
||||
辑窗格里做点别的事情,然后再关掉帮助窗格。
|
||||
|
||||
还有一些其他有用的 C-h 命令:
|
||||
还有一些其它有用的 C-h 命令:
|
||||
|
||||
C-h f 解释一个函数。你要输入函数名。
|
||||
C-h f 解释一个函数。需要输入函数名。
|
||||
|
||||
>> 试试看,输入 C-h f previous-line<Return>。
|
||||
Emacs 会给出它所知道的所有有关“实现 C-p 命令功能的函数”的信息。
|
||||
|
||||
C-h v 用来显示 Emacs 变量的文档,Emacs 变量可以被用来“定制 Emacs 的行
|
||||
C-h v 用来显示 Emacs 变量的文档。Emacs 变量可以被用来“定制 Emacs 的行
|
||||
为”。同样,你需要输入变量的名称。
|
||||
|
||||
C-h a 相关命令搜索(Command Apropos)。
|
||||
|
|
@ -882,21 +880,21 @@ Emacs
|
|||
* 更多精彩(MORE FEATURES)
|
||||
---------------------------
|
||||
|
||||
想了解更多使用 Emacs 的知识,应该去读一读 Emacs 使用手册——可以是纸版
|
||||
的书,也可以是电子版的联机帮助(可以从 Help 菜单进入或者按 F10 h r)。
|
||||
提两个你可能会很感兴趣的功能吧,一个是可以帮你少敲键盘的 completion(自
|
||||
动补全),一个是方便文件处理的 dired(目录编辑)。
|
||||
想学习更多的使用技巧,Emacs 使用手册(manual)值得一读。你可以读纸版的
|
||||
书,也可以看电子版的联机手册(可以从 Help 菜单进入或者按 F10 h r)。提
|
||||
两个你可能会很感兴趣的功能吧,一个是可以帮你少敲键盘的 completion(自动
|
||||
补全),另一个是方便文件处理的 dired(目录编辑)。
|
||||
|
||||
Completion 可以替你节省不必要的键盘输入。比如说你想切换到 *Message* 缓
|
||||
冲区,你就可以用 C-x b *M<Tab> 来完成,只要 Emacs 能够从你已经输入的文
|
||||
字中判断出你想要输入的东西,它会自动帮你补齐余下的。有关 Completion 的
|
||||
详细解释可以在 Emacs Info 中的“Completion”一节里找到。
|
||||
冲区,你就可以用 C-x b *M<Tab> 来完成。只要 Emacs 能够根据你已经输入的
|
||||
文字确定你想要输入的内容,它就会自动帮你补齐。有关 Completion 的详细说
|
||||
明可以在 Emacs Info 中的“Completion”一节里找到。
|
||||
|
||||
Dired 可以在一个缓冲区里列出一个目录里的所有文件(可以选择是否也列出子
|
||||
目录),然后你可以在这个文件列表上完成对文件的移动、访问、改名或者删除
|
||||
等等操作。Dired 也在 Emacs Info 中有详细说明,就在“Dired”一节。
|
||||
Dired 能够在一个缓冲区里列出一个目录下的所有文件(可以选择是否也列出子
|
||||
目录),然后你可以在这个文件列表上完成对文件的移动、访问、重命名或删除
|
||||
等等操作。Dired 也在 Emacs Info 中有详细介绍,参见“Dired”一节。
|
||||
|
||||
Emacs 使用手册里还有很多很多的精彩功能等着你来了解。
|
||||
Emacs 使用手册里还有许许多多的精彩功能等着你来了解。
|
||||
|
||||
|
||||
* 总结(CONCLUSION)
|
||||
|
|
@ -905,15 +903,15 @@ Emacs ʹ
|
|||
记住,要退出 Emacs 请用 C-x C-c。要暂时切换到 shell 并且稍后再回到
|
||||
Emacs 里来,请用 C-z。【切换到 shell 仅对控制台下的 Emacs 有效】
|
||||
|
||||
本文完全是为零起点新手写的傻瓜教程。如果你觉得哪里还看不明白,千万不要
|
||||
觉得不好意思,那一定是我们没有写好。我们永远欢迎你的不满和抱怨。
|
||||
本文完全是为零起点新手所写的起步教程。如果你觉得哪里还看不明白,千万不
|
||||
要怀疑自己,那一定是我们没有写好。我们永远欢迎你的不满和抱怨。
|
||||
|
||||
|
||||
* 翻译(TRANSLATION)
|
||||
---------------------
|
||||
|
||||
翻译:孙 一江 <sunyijiang@gmail.com>
|
||||
校对:水木社区(www.newsmth.net)Emacs 板众多网友
|
||||
翻译:孙一江 <sunyijiang@gmail.com>
|
||||
校对:水木社区(www.newsmth.net)Emacs 板众多网友及众多 Emacs 中文用户
|
||||
|
||||
Emacs 快速指南(Tutorial)早有两个刘昭宏的中文译本,繁简各一。其简体版本
|
||||
(TUTORIAL.cn)基本由繁体版本(TUTORIAL.zh)经词语替换而得。然而繁简中文
|
||||
|
|
@ -924,10 +922,12 @@ Emacs
|
|||
表示感谢。
|
||||
|
||||
翻译过程中最大的挑战莫过于术语译词的选择了。经过水木社区 Emacs 板热心网
|
||||
友小范围内的讨论,我们选择了现在的译法。用户的广泛参与是自由软件生命力的
|
||||
源泉,所以如果你有任何建议、勘误或更好的想法,请用你喜欢的方式向我们提出
|
||||
。你可以直接给我发电子邮件,也可以放到 GNU Emacs 的开发邮件列表或者水木
|
||||
社区的 Emacs 板上进行讨论。下面列出主要术语的译词对照,并给出注释说明:
|
||||
友小范围内的讨论,我们选择了现在的译法。用户的广泛参与是自由软件生命力
|
||||
的源泉,所以如果你有任何建议、勘误或想法,请用你喜欢的方式向我们提出。
|
||||
你可以通过电子邮件直接联系译者,也可以放到 GNU Emacs 的开发邮件列表或者
|
||||
水木社区的 Emacs 板上进行讨论。
|
||||
|
||||
下面列出主要术语的译词对照,并给出注释说明:
|
||||
|
||||
command 命令
|
||||
cursor 光标
|
||||
|
|
@ -956,7 +956,7 @@ Emacs
|
|||
|
||||
《学习GNU Emacs》(第二版)一书对“window”和“frame”的翻译与本教程
|
||||
刚好相反(分别译作“窗口”和“窗格”)。在此特别注明,以消除可能产生
|
||||
的疑惑。
|
||||
的疑惑。(感谢李旭章 <lixuzhang@gmail.com> 指出)
|
||||
|
||||
[2] 对于“delete”和“kill”的区别,正文已经给出了详细的说明。“删除”和
|
||||
“移除”相比较起来,前者更多地隐含着“破坏”和“不可恢复”的意思,而
|
||||
|
|
@ -968,7 +968,7 @@ Emacs
|
|||
|
||||
[3] “incremental”一词在计算机著作中广泛出现,被广泛接受的中文译词有两
|
||||
个:“增量的”和“渐进的”。“incremental search”翻译成“增量式搜索
|
||||
”或者“渐进式搜索”都讲的通,且都有各自的形象之处。还是参考原文对其
|
||||
”或者“渐进式搜索”都讲得通,且都有各自的形象之处。还是参考原文对其
|
||||
的解释:“... means that the search happens while you type in the
|
||||
string to search for”。意思是之所以称其为“incremental search”,是
|
||||
因为“在你输入搜索字符串的过程中,搜索就已经在进行了”。我们认为“增
|
||||
|
|
@ -1012,7 +1012,7 @@ GNU Emacs to your friends. Help stamp out software obstructionism
|
|||
|
||||
本篇文档与 GNU Emacs 一样拥有版权,并允许在下列条件的约束下发行其拷贝:
|
||||
|
||||
Copyright (C) 1985, 1996, 1998, 2001, 2002, 2003, 2004, 2005
|
||||
Copyright (C) 1985, 1996, 1998, 2001, 2002, 2003, 2004, 2005, 2006
|
||||
Free Software Foundation, Inc.
|
||||
|
||||
本文档允许在不变更文档内容的情况下由任何人发布在任何媒体上,同时必须
|
||||
|
|
|
|||
|
|
@ -50,11 +50,11 @@ def eargs (name, imports):
|
|||
if len (parts) > 1:
|
||||
exec 'import ' + parts[0] # might fail
|
||||
func = eval (name)
|
||||
if inspect.isbuiltin (func):
|
||||
if inspect.isbuiltin (func) or type(func) is type:
|
||||
doc = func.__doc__
|
||||
if doc.find (' ->') != -1:
|
||||
print '_emacs_out', doc.split (' ->')[0]
|
||||
elif doc.find ('\n') != -1:
|
||||
else:
|
||||
print '_emacs_out', doc.split ('\n')[0]
|
||||
return
|
||||
if inspect.ismethod (func):
|
||||
|
|
|
|||
|
|
@ -29,10 +29,10 @@ default editor.
|
|||
|
||||
For
|
||||
.B emacsclient
|
||||
to work, you need an already running Emacs with a server. Within Emacs, call
|
||||
the function
|
||||
`server-start'. (Your `.emacs' file can do this automatically if you
|
||||
add the expression `(server-start)' to it.)
|
||||
to work, you need an already running Emacs with a server. Within Emacs,
|
||||
call the functions `server-start' or `server-mode'. (Your `.emacs' file
|
||||
can do this automatically if you add either `(server-start)' or
|
||||
`(server-mode 1)' to it.)
|
||||
|
||||
When you've finished editing the buffer, type `C-x #'
|
||||
(`server-edit'). This saves the file and sends a message back to the
|
||||
|
|
@ -57,7 +57,11 @@ do not visit files but instead evaluate the arguments as Emacs
|
|||
Lisp expressions.
|
||||
.TP
|
||||
.B \-s, \-\-socket-name=FILENAME
|
||||
Use socket named FILENAME for communication.
|
||||
use socket named FILENAME for communication.
|
||||
.TP
|
||||
.B \-f, \-\-server-file=FILENAME
|
||||
use TCP configuration file FILENAME for communication.
|
||||
This can also be specified via the `EMACS_SERVER_FILE' environment variable.
|
||||
.TP
|
||||
.B \-a, \-\-alternate-editor=EDITOR
|
||||
if the Emacs server is not running, run the specified editor instead.
|
||||
|
|
|
|||
|
|
@ -205,7 +205,7 @@ from shell interpretation.
|
|||
|
||||
Tag the DEFVAR macros in the emacs source files:
|
||||
.br
|
||||
\fI\-\-regex\='/[ \\t]*DEFVAR_[A-Z_ \\t(]+"\\([^"]+\\)"\/'\fP
|
||||
\fI\-\-regex\='/[ \\t]*DEFVAR_[A-Z_ \\t(]+"\\([^"]+\\)"/'\fP
|
||||
.\"" This comment is to avoid confusion to Emacs syntax highlighting
|
||||
.br
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
% Reference Card for Org Mode
|
||||
\def\orgversionnumber{4.44}
|
||||
\def\orgversionnumber{4.56}
|
||||
\def\year{2006}
|
||||
%
|
||||
%**start of header
|
||||
|
|
@ -284,6 +284,7 @@ \section{Visibility Cycling}
|
|||
\key{rotate current subtree between states}{TAB}
|
||||
\key{rotate entire buffer between states}{S-TAB}
|
||||
\key{show the whole file}{C-c C-a}
|
||||
\key{reveal context around point}{C-c C-r}
|
||||
%\key{show branches}{C-c C-k}
|
||||
|
||||
\section{Motion}
|
||||
|
|
@ -298,8 +299,6 @@ \section{Structure Editing}
|
|||
|
||||
\key{insert new heading/item at current level}{M-RET}
|
||||
\key{insert new TODO entry/checkbox item}{M-S-RET}
|
||||
\key{toggle checkbox(es) in region/entry/at point}{C-c C-x C-b}
|
||||
\key{toggle checkbox at point}{C-c C-c}
|
||||
|
||||
\key{promote current heading up one level}{M-LEFT}
|
||||
\key{demote current heading down one level}{M-RIGHT}
|
||||
|
|
@ -315,8 +314,9 @@ \section{Structure Editing}
|
|||
\section{Archiving}
|
||||
|
||||
\key{toggle ARCHIVE tag}{C-c C-x C-a}
|
||||
\metax{mark fully dine children}{C-u C-c C-x C-a}
|
||||
\key{move subtree to achive file}{C-c \$}
|
||||
\metax{mark fully done children}{C-u C-c C-x C-a}
|
||||
\key{force cycling of an ARCHIVEd tree}{C-TAB}
|
||||
\key{move subtree to archive file}{C-c \$}
|
||||
\key{move all fully done children}{C-u C-c \$}
|
||||
To set archive location for current file, add a line like$^2$:
|
||||
\vskip -1mm
|
||||
|
|
@ -330,7 +330,7 @@ \section{Filtering and Sparse Trees}
|
|||
\key{view TODO's in sparse tree}{C-c C-v}
|
||||
\key{global TODO list in agenda mode}{C-c t$^1$}
|
||||
\key{create sparse tree with all deadlines due}{C-c C-w}
|
||||
\key{time sorted view of current org file}{C-c C-r}
|
||||
\key{time sorted view of current org file}{C-c a L}
|
||||
%\key{agenda for the week}{C-c a$^1$}
|
||||
%\key{agenda for date at cursor}{C-c C-o}
|
||||
|
||||
|
|
@ -425,10 +425,11 @@ \section{Links}
|
|||
\key{insert file link with file name completion}{C-u C-c C-l}
|
||||
\key{edit (also hidden part of) link at point}{C-c C-l}
|
||||
|
||||
\key{open file links in emacs (\kbd{C-u} : in emacs)}{C-c C-o}
|
||||
\key{open link at point (3: in emacs)}{mouse-2/3}
|
||||
%\key{open file links in emacs}{mouse-3}
|
||||
%\key{record a position in mark ring}{C-c \%}
|
||||
\key{open file links in emacs}{C-c C-o}
|
||||
\key{...force open in emacs/other window}{C-u C-c C-o}
|
||||
\key{open link at point}{mouse-1/2}
|
||||
\key{...force open in emacs/other window}{mouse-3}
|
||||
\key{record a position in mark ring}{C-c \%}
|
||||
\key{jump back to last followed link(s)}{C-c \&}
|
||||
|
||||
{\bf Internal Links}
|
||||
|
|
@ -444,10 +445,10 @@ \section{Links}
|
|||
\key{\kbd{file:/home/dominik/img/mars.jpg}}{\rm file, absolute}
|
||||
\key{\kbd{file:papers/last.pdf}}{\rm file, relative}
|
||||
\key{\kbd{file:projects.org::*that text}}{\rm find headline}
|
||||
\key{\kbd{file:projects.org::find me}}{\rm find tgt/string}
|
||||
\key{\kbd{file:projects.org::find me}}{\rm find trgt/string}
|
||||
%\key{\kbd{file:projects.org::/regexp/}}{\rm regexp search}
|
||||
\key{\kbd{http://www.astro.uva.nl/~dominik}}{\rm on the web}
|
||||
\key{\kbd{mailto:adent@galaxy.net}}{\rm EMail address}
|
||||
\key{\kbd{mailto:adent@galaxy.net}}{\rm Email address}
|
||||
\key{\kbd{news:comp.emacs}}{\rm Usenet group}
|
||||
\key{\kbd{bbdb:Richard Stallman}}{\rm BBDB person}
|
||||
\key{\kbd{gnus:group}}{\rm GNUS group}
|
||||
|
|
@ -494,7 +495,7 @@ \section{Completion}
|
|||
|
||||
\centerline{(for version \orgversionnumber)}
|
||||
|
||||
\section{TODO Items}
|
||||
\section{TODO Items and Checkboxes}
|
||||
|
||||
\key{rotate the state of the current item}{C-c C-t}
|
||||
\key{view TODO items in a sparse tree}{C-c C-v}
|
||||
|
|
@ -508,6 +509,12 @@ \section{TODO Items}
|
|||
\key{\kbd{\#+SEQ_TODO: TODO TRY BLUFF DONE}}{\rm todo workflow}
|
||||
\key{\kbd{\#+TYP_TODO: Phil home work DONE}}{\rm todo types}
|
||||
|
||||
\key{insert new checkbox item in plain list}{M-S-RET}
|
||||
\key{toggle checkbox(es) in region/entry/at point}{C-c C-x C-b}
|
||||
\key{toggle checkbox at point}{C-c C-c}
|
||||
\metax{checkbox statistics cookies: insert {\tt [/]} or {\tt [\%]}}{}
|
||||
\key{update checkbox statistics (\kbd{C-u} : whole file)}{C-c \#}
|
||||
|
||||
\section{Tags}
|
||||
|
||||
\key{set tags for current heading}{C-c C-c}
|
||||
|
|
@ -535,6 +542,7 @@ \section{Timestamps}
|
|||
%\key{... forward/backward one day}{S-LEFT/RIGHT}
|
||||
%\key{... forward/backward one week}{S-UP/DOWN}
|
||||
%\key{... forward/backward one month}{M-S-LEFT/RIGT}
|
||||
\key{Toggle custom format display for dates/times}{C-c C-x C-t}
|
||||
|
||||
|
||||
\section{Clocking Time}
|
||||
|
|
@ -547,11 +555,6 @@ \section{Clocking Time}
|
|||
\key{remove displayed times}{C-c C-c}
|
||||
\key{insert/update table with clock report}{C-c C-x C-r}
|
||||
|
||||
\section{Dynamic Blocks}
|
||||
|
||||
\key{update dynamic block at point}{C-c C-x C-u}
|
||||
\metax{update all dynamic blocks}{C-u C-c C-x C-u}
|
||||
|
||||
\section{LaTeX and cdlatex-mode}
|
||||
|
||||
\key{preview LaTeX fragment}{C-c C-x C-l}
|
||||
|
|
@ -568,8 +571,10 @@ \section{Agenda Views}
|
|||
\key{compile global TODO list}{C-c a t$^1$}
|
||||
\key{compile TODO list for specific keyword}{C-c a T$^1$}
|
||||
\key{match tags in agenda files}{C-c a m$^1$}
|
||||
\key{match tags in TODO entries}{C-c a M$^1$}
|
||||
\key{show timeline of current org file}{C-c a L$^1$}
|
||||
\key{configure custom commands}{C-c a C$^1$}
|
||||
\key{agenda for date at cursor}{C-c C-o}
|
||||
\key{show timeline of current org file}{C-c C-r}
|
||||
|
||||
\vskip 1mm
|
||||
To set categories, add lines like$^2$:
|
||||
|
|
@ -582,11 +587,11 @@ \section{Agenda Views}
|
|||
|
||||
{\bf View Org file}
|
||||
|
||||
\key{show original location of item}{SPC}
|
||||
\key{... also available with}{mouse-3}
|
||||
\key{show original location of item}{SPC/mouse-3}
|
||||
%\key{... also available with}{mouse-3}
|
||||
\key{show and recenter window}{L}
|
||||
\key{goto original location in other window}{TAB}
|
||||
\key{... also available with}{mouse-2}
|
||||
\key{goto original location in other window}{TAB/mouse-2}
|
||||
%\key{... also available with}{mouse-2}
|
||||
\key{goto original location, delete other windows}{RET}
|
||||
\key{toggle follow-mode}{f}
|
||||
|
||||
|
|
@ -607,6 +612,7 @@ \section{Agenda Views}
|
|||
|
||||
\key{digit argument}{0-9}
|
||||
\key{change state of current TODO item}{t}
|
||||
\key{kill item and source}{C-k}
|
||||
\key{show tags of current headline}{T}
|
||||
\key{set tags for current headline}{:}
|
||||
\key{toggle ARCHIVE tag}{a}
|
||||
|
|
@ -718,6 +724,11 @@ \section{Exporting and Publishing}
|
|||
%S-RET $\to$ C-S-RET
|
||||
%\endexample
|
||||
|
||||
\section{Dynamic Blocks}
|
||||
|
||||
\key{update dynamic block at point}{C-c C-x C-u}
|
||||
\metax{update all dynamic blocks}{C-u C-c C-x C-u}
|
||||
|
||||
\section{Notes}
|
||||
$^1$ This is only a suggestion for a binding of this command. Choose
|
||||
you own key as shown under INSTALLATION.
|
||||
|
|
|
|||
|
|
@ -1,3 +1,12 @@
|
|||
2006-11-29 Juanma Barranquero <lekktu@gmail.com>
|
||||
|
||||
* quail/greek.el ("greek-mizuochi"): Remove spurious initial newline
|
||||
in docstring.
|
||||
|
||||
2006-11-04 Romain Francoise <romain@orebokech.com>
|
||||
|
||||
* Makefile.in (bootstrap-clean): New target.
|
||||
|
||||
2006-10-12 Kenichi Handa <handa@m17n.org>
|
||||
|
||||
* Makefile.in (install): Be sure to make ${INSTALLDIR} before `cd'
|
||||
|
|
@ -94,19 +103,16 @@
|
|||
|
||||
2005-06-04 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* makefile.w32-in (distclean): Fix a typo (colon was after
|
||||
"clean").
|
||||
* makefile.w32-in (distclean): Fix a typo (colon was after "clean").
|
||||
(extraclean): New target, emulates Makefile.in.
|
||||
|
||||
2005-04-06 Kenichi Handa <handa@m17n.org>
|
||||
|
||||
* quail/sgml-input.el ("sgml"): Enable quail-completion by typing
|
||||
TAB.
|
||||
* quail/sgml-input.el ("sgml"): Enable quail-completion by typing TAB.
|
||||
|
||||
2005-03-26 Kenichi Handa <handa@m17n.org>
|
||||
|
||||
* quail/latin-ltx.el ("TeX"): Enable quail-completion by typing
|
||||
TAB.
|
||||
* quail/latin-ltx.el ("TeX"): Enable quail-completion by typing TAB.
|
||||
|
||||
2005-03-18 Kenichi Handa <handa@m17n.org>
|
||||
|
||||
|
|
@ -166,7 +172,7 @@
|
|||
|
||||
2004-07-01 David Kastrup <dak@gnu.org>
|
||||
|
||||
* quail/greek.el ("((") ("))"): add quotation mark shorthands.
|
||||
* quail/greek.el ("((") ("))"): Add quotation mark shorthands.
|
||||
|
||||
2004-06-30 Andreas Schwab <schwab@suse.de>
|
||||
|
||||
|
|
@ -217,7 +223,7 @@
|
|||
|
||||
2004-05-01 Kenichi Handa <handa@m17n.org>
|
||||
|
||||
* Makefile.in (OTHERS): Raname from MISC.
|
||||
* Makefile.in (OTHERS): Rename from MISC.
|
||||
(MISC): Rename from MISC-DIC.
|
||||
(WORLD): Adjute for the above changes.
|
||||
(TIT-MISC, NON-TIT-MISC): New targets.
|
||||
|
|
@ -1626,6 +1632,7 @@
|
|||
|
||||
;; Local Variables:
|
||||
;; coding: iso-2022-7bit
|
||||
;; add-log-time-zone-rule: t
|
||||
;; End:
|
||||
|
||||
Copyright (C) 1997, 1998, 1999, 2001 Free Software Foundation, Inc.
|
||||
|
|
|
|||
|
|
@ -255,6 +255,12 @@ clean mostlyclean:
|
|||
rm -f ${TIT-MISC} ${TIT-MISC:.elc=.el} \
|
||||
leim-list.el changed.tit changed.misc
|
||||
|
||||
# The following target is needed because the `clean' target only removes
|
||||
# TIT-generated files and doesn't touch compiled Quail packages. But
|
||||
# bootstrapping should not leave non-fresh .elc files behind.
|
||||
bootstrap-clean: clean
|
||||
rm -f ${WORLD}
|
||||
|
||||
distclean: clean
|
||||
if test -f stamp-subdir; then rm -rf ${SUBDIRS} stamp-subdir; fi
|
||||
rm -f Makefile
|
||||
|
|
|
|||
|
|
@ -137,8 +137,8 @@ Sorry, accents and terminal sigma are not supported in JIS."
|
|||
|
||||
;;
|
||||
|
||||
(quail-define-package "greek-mizuochi" "Greek" "CG" t "
|
||||
The Mizuochi input method for Classical Greek using mule-unicode-0100-24ff.
|
||||
(quail-define-package "greek-mizuochi" "Greek" "CG" t
|
||||
"The Mizuochi input method for Classical Greek using mule-unicode-0100-24ff.
|
||||
|
||||
-------------------------------------
|
||||
character capital small
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -94,6 +94,7 @@ gameuser=@gameuser@
|
|||
INSTALL = @INSTALL@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||
# By default, we uphold the dignity of our programs.
|
||||
INSTALL_STRIP =
|
||||
|
||||
|
|
@ -319,7 +320,7 @@ $(DESTDIR)${archlibdir}: all
|
|||
if [ `(cd $(DESTDIR)${archlibdir} && /bin/pwd)` \
|
||||
!= `(cd ${srcdir} && /bin/pwd)` ]; then \
|
||||
for file in ${SCRIPTS}; do \
|
||||
$(INSTALL_PROGRAM) ${srcdir}/$$file $(DESTDIR)${archlibdir}/$$file; \
|
||||
$(INSTALL_SCRIPT) ${srcdir}/$$file $(DESTDIR)${archlibdir}/$$file; \
|
||||
done ; \
|
||||
fi
|
||||
|
||||
|
|
@ -331,7 +332,7 @@ install: $(DESTDIR)${archlibdir}
|
|||
chmod a+rx $(DESTDIR)${bindir}/`echo $${file} | sed '$(TRANSFORM)'`; \
|
||||
done
|
||||
for file in ${INSTALLABLE_SCRIPTS} ; do \
|
||||
$(INSTALL_PROGRAM) ${srcdir}/$${file} $(DESTDIR)${bindir}/`echo $${file} | sed '$(TRANSFORM)'` ; \
|
||||
$(INSTALL_SCRIPT) ${srcdir}/$${file} $(DESTDIR)${bindir}/`echo $${file} | sed '$(TRANSFORM)'` ; \
|
||||
chmod a+rx $(DESTDIR)${bindir}/`echo $${file} | sed '$(TRANSFORM)'`; \
|
||||
done
|
||||
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -41,7 +41,7 @@
|
|||
* configuration file containing regexp definitions for etags.
|
||||
*/
|
||||
|
||||
char pot_etags_version[] = "@(#) pot revision number is 17.20";
|
||||
char pot_etags_version[] = "@(#) pot revision number is $Revision: 3.61 $";
|
||||
|
||||
#define TRUE 1
|
||||
#define FALSE 0
|
||||
|
|
@ -4955,7 +4955,7 @@ Lua_functions (inf)
|
|||
if (bp[0] != 'f' && bp[0] != 'l')
|
||||
continue;
|
||||
|
||||
LOOKING_AT (bp, "local"); /* skip possible "local" */
|
||||
(void)LOOKING_AT (bp, "local"); /* skip possible "local" */
|
||||
|
||||
if (LOOKING_AT (bp, "function"))
|
||||
get_tag (bp, NULL);
|
||||
|
|
@ -5137,7 +5137,7 @@ TeX_commands (inf)
|
|||
if (!opgrp || *p == TEX_clgrp)
|
||||
{
|
||||
while (*p != '\0' && *p != TEX_opgrp && *p != TEX_clgrp)
|
||||
*p++;
|
||||
p++;
|
||||
linelen = p - lb.buffer + 1;
|
||||
}
|
||||
make_tag (cp, namelen, TRUE,
|
||||
|
|
@ -6256,15 +6256,14 @@ readline (lbp, stream)
|
|||
/* Check whether this is a #line directive. */
|
||||
if (result > 12 && strneq (lbp->buffer, "#line ", 6))
|
||||
{
|
||||
int start, lno;
|
||||
unsigned int lno;
|
||||
int start = 0;
|
||||
|
||||
if (DEBUG) start = 0; /* shut up the compiler */
|
||||
if (sscanf (lbp->buffer, "#line %d %n\"", &lno, &start) >= 1
|
||||
&& lbp->buffer[start] == '"')
|
||||
if (sscanf (lbp->buffer, "#line %u \"%n", &lno, &start) >= 1
|
||||
&& start > 0) /* double quote character found */
|
||||
{
|
||||
char *endp = lbp->buffer + ++start;
|
||||
char *endp = lbp->buffer + start;
|
||||
|
||||
assert (start > 0);
|
||||
while ((endp = etags_strchr (endp, '"')) != NULL
|
||||
&& endp[-1] == '\\')
|
||||
endp++;
|
||||
|
|
|
|||
|
|
@ -36,22 +36,33 @@ use vars qw($author $regexp $exclude $from_date $to_date
|
|||
@entries);
|
||||
|
||||
use Getopt::Long;
|
||||
my $result = GetOptions ("author=s" => \$author,
|
||||
"text=s" => \$regexp,
|
||||
"exclude=s" => \$exclude,
|
||||
"from-date=s" => \$from_date,
|
||||
"to-date=s" => \$to_date,
|
||||
"rcs-log" => \$rcs_log,
|
||||
"with-date" => \$with_date,
|
||||
"reverse!" => \$reverse,
|
||||
"version" => \$version,
|
||||
"help" => \$help);
|
||||
|
||||
# If date options are specified, check that they have the format
|
||||
# YYYY-MM-DD.
|
||||
my $result;
|
||||
|
||||
$result = 0 if $from_date && $from_date !~ /^\d\d\d\d-\d\d-\d\d$/;
|
||||
$result = 0 if $to_date && $to_date !~ /^\d\d\d\d-\d\d-\d\d$/;
|
||||
if (@ARGV == 0) {
|
||||
|
||||
# No arguments cannot posibly mean "show everything"!!
|
||||
$result = 0;
|
||||
|
||||
} else {
|
||||
|
||||
$result = GetOptions ("author=s" => \$author,
|
||||
"text=s" => \$regexp,
|
||||
"exclude=s" => \$exclude,
|
||||
"from-date=s" => \$from_date,
|
||||
"to-date=s" => \$to_date,
|
||||
"rcs-log" => \$rcs_log,
|
||||
"with-date" => \$with_date,
|
||||
"reverse!" => \$reverse,
|
||||
"version" => \$version,
|
||||
"help" => \$help);
|
||||
|
||||
# If date options are specified, check that they have the format
|
||||
# YYYY-MM-DD.
|
||||
|
||||
$result = 0 if $from_date && $from_date !~ /^\d\d\d\d-\d\d-\d\d$/;
|
||||
$result = 0 if $to_date && $to_date !~ /^\d\d\d\d-\d\d-\d\d$/;
|
||||
}
|
||||
|
||||
# Print usage information and exit when necessary.
|
||||
|
||||
|
|
@ -77,7 +88,7 @@ Valid options are:
|
|||
--help Print this help
|
||||
|
||||
If no CHANGELOG is specified scan the files "ChangeLog" and
|
||||
"ChangeLog.1+" in the current directory. Old-style dates in ChangeLogs
|
||||
"ChangeLog.N+" in the current directory. Old-style dates in ChangeLogs
|
||||
are not recognized.
|
||||
USAGE
|
||||
exit !$help;
|
||||
|
|
@ -86,7 +97,7 @@ USAGE
|
|||
# Print version info and exit if `--version' was specified.
|
||||
|
||||
if ($version) {
|
||||
print "0.2\n";
|
||||
print "0.3\n";
|
||||
exit 0;
|
||||
}
|
||||
|
||||
|
|
@ -233,7 +244,7 @@ sub parse_changelog {
|
|||
|
||||
# If files were specified on the command line, parse those files in the
|
||||
# order supplied by the user; otherwise parse default files ChangeLog and
|
||||
# ChangeLog.1+ according to $reverse.
|
||||
# ChangeLog.NNN according to $reverse.
|
||||
unless (@ARGV > 0) {
|
||||
@ARGV = ("ChangeLog");
|
||||
|
||||
|
|
|
|||
|
|
@ -20,22 +20,17 @@
|
|||
# Boston, MA 02110-1301, USA.
|
||||
#
|
||||
|
||||
ALL = make-docfile hexl ctags etags movemail ebrowse sorted-doc digest-doc
|
||||
ALL = make-docfile hexl ctags etags movemail ebrowse sorted-doc digest-doc emacsclient
|
||||
|
||||
.PHONY: $(ALL)
|
||||
|
||||
VERSION = 22.0.91
|
||||
|
||||
LOCAL_FLAGS = -DWINDOWSNT -DDOS_NT -DSTDC_HEADERS=1 -DNO_LDAV=1 \
|
||||
-DNO_ARCHIVES=1 -DHAVE_CONFIG_H=1 -I../nt/inc \
|
||||
-I../src
|
||||
-I../src
|
||||
|
||||
# don't know what (if) to do with these yet...
|
||||
#
|
||||
# $(BLD)/server.exe \
|
||||
# $(BLD)/emacstool.exe \
|
||||
# $(BLD)/emacsclient.exe \
|
||||
# $(BLD)/cvtmail.exe \
|
||||
|
||||
LIBS = $(BASE_LIBS) $(ADVAPI32)
|
||||
LIBS = $(BASE_LIBS) $(ADVAPI32)
|
||||
|
||||
$(BLD)/make-docfile.exe: $(BLD)/make-docfile.$(O) $(BLD)/ntlib.$(O)
|
||||
$(LINK) $(LINK_OUT)$@ $(LINK_FLAGS) $(BLD)/make-docfile.$(O) $(BLD)/ntlib.$(O) $(LIBS)
|
||||
|
|
@ -59,6 +54,7 @@ movemail: $(BLD) $(BLD)/movemail.exe
|
|||
fakemail: $(BLD) $(BLD)/fakemail.exe
|
||||
sorted-doc: $(BLD) $(BLD)/sorted-doc.exe
|
||||
digest-doc: $(BLD) $(BLD)/digest-doc.exe
|
||||
emacsclient: $(BLD) $(BLD)/emacsclient.exe $(BLD)/emacsclientw.exe
|
||||
|
||||
test-distrib: $(BLD) $(BLD)/test-distrib.exe
|
||||
"$(BLD)/test-distrib.exe" "$(SRC)/testfile"
|
||||
|
|
@ -74,6 +70,29 @@ $(BLD)/movemail.exe: $(MOVEMAILOBJS) getopt.h
|
|||
# put wsock32.lib before $(LIBS) to ensure we don't link to ws2_32.lib
|
||||
$(LINK) $(LINK_OUT)$@ $(LINK_FLAGS) $(MOVEMAILOBJS) $(WSOCK32) $(LIBS)
|
||||
|
||||
ECLIENT_CFLAGS = -DHAVE_GETCWD -DHAVE_STRERROR -DVERSION="\"$(VERSION)\""
|
||||
ECLIENTOBJS = $(BLD)/emacsclient.$(O) \
|
||||
$(BLD)/getopt.$(O) \
|
||||
$(BLD)/getopt1.$(O) \
|
||||
$(BLD)/ntlib.$(O)
|
||||
TRES = ../nt/$(BLD)/emacs.res
|
||||
|
||||
$(TRES): ../nt/emacs.rc
|
||||
$(RC) $(RC_OUT)../nt/$(BLD)/emacs.res $(ALL_DEPS)
|
||||
|
||||
$(BLD)/emacsclient.exe: $(ECLIENTOBJS)
|
||||
# put wsock32.lib before $(LIBS) to ensure we don't link to ws2_32.lib
|
||||
$(LINK) $(LINK_OUT)$@ $(LINK_FLAGS) $(ECLIENTOBJS) $(WSOCK32) $(LIBS)
|
||||
|
||||
$(BLD)/emacsclientw.exe: $(ECLIENTOBJS) $(TRES)
|
||||
# put wsock32.lib before $(LIBS) to ensure we don't link to ws2_32.lib
|
||||
$(LINK) $(LINK_OUT)$@ $(TRES) -mwindows $(LINK_FLAGS) $(ECLIENTOBJS) $(WSOCK32) $(LIBS)
|
||||
|
||||
# emacsclient.$(O) depends on makefile.w32-in because makefile.w32-in
|
||||
# can be edited to define VERSION string, which is part of ECLIENT_CFLAGS.
|
||||
$(BLD)/emacsclient.$(O): emacsclient.c makefile.w32-in
|
||||
$(CC) $(CFLAGS) $(ECLIENT_CFLAGS) $(CC_OUT)$@ emacsclient.c
|
||||
|
||||
ETAGSOBJ = $(BLD)/etags.$(O) \
|
||||
$(BLD)/getopt.$(O) \
|
||||
$(BLD)/getopt1.$(O) \
|
||||
|
|
@ -85,9 +104,9 @@ $(BLD)/etags.exe: $(ETAGSOBJ)
|
|||
|
||||
|
||||
EBROWSEOBJ = $(BLD)/ebrowse.$(O) \
|
||||
$(BLD)/getopt.$(O) \
|
||||
$(BLD)/getopt1.$(O) \
|
||||
$(BLD)/ntlib.$(O)
|
||||
$(BLD)/getopt.$(O) \
|
||||
$(BLD)/getopt1.$(O) \
|
||||
$(BLD)/ntlib.$(O)
|
||||
|
||||
$(BLD)/ebrowse.exe: $(EBROWSEOBJ)
|
||||
$(LINK) $(LINK_OUT)$@ $(LINK_FLAGS) $(EBROWSEOBJ) $(LIBS)
|
||||
|
|
@ -117,14 +136,6 @@ CTAGS_CFLAGS = -DCTAGS $(ETAGS_CFLAGS)
|
|||
$(BLD)/ctags.$(O): ctags.c
|
||||
$(CC) $(CFLAGS) $(CTAGS_CFLAGS) $(CC_OUT)$@ ctags.c
|
||||
|
||||
#
|
||||
# don't know what to do with these yet...
|
||||
#
|
||||
# $(BLD)/emacstool.exe: $(BLD)/emacstool.$(O)
|
||||
# $(BLD)/server.exe: $(BLD)/server.$(O)
|
||||
# $(BLD)/cvtmail.exe: $(BLD)/cvtmail.$(O)
|
||||
# $(BLD)/emacsclient.exe: $(BLD)/emacsclient.$(O)
|
||||
|
||||
#
|
||||
# From ..\src\Makefile.in
|
||||
# It doesn't matter if the real name is *.obj for the files in this list,
|
||||
|
|
@ -263,6 +274,15 @@ lisp2 = \
|
|||
$(lispsource)window.elc \
|
||||
$(lispsource)version.el
|
||||
|
||||
# This is needed the first time we build the tree, since temacs.exe
|
||||
# does not exist yet, and the DOC rule needs it to rebuild DOC whenever
|
||||
# Emacs is rebuilt.
|
||||
../src/$(BLD)/temacs.exe:
|
||||
- mkdir "../src/$(OBJDIR)"
|
||||
- mkdir "../src/$(BLD)"
|
||||
@echo temacs > temacs.exe
|
||||
$(CP) temacs.exe ../src/$(BLD)
|
||||
- $(DEL) temacs.exe
|
||||
|
||||
DOC = DOC
|
||||
$(DOC): $(BLD) $(BLD)/make-docfile.exe ../src/$(BLD)/temacs.exe $(lisp1) $(lisp2)
|
||||
|
|
@ -296,6 +316,8 @@ install: $(INSTALL_FILES)
|
|||
$(CP) $(BLD)/movemail.exe $(INSTALL_DIR)/bin
|
||||
$(CP) $(BLD)/sorted-doc.exe $(INSTALL_DIR)/bin
|
||||
$(CP) $(BLD)/digest-doc.exe $(INSTALL_DIR)/bin
|
||||
$(CP) $(BLD)/emacsclient.exe $(INSTALL_DIR)/bin
|
||||
$(CP) $(BLD)/emacsclientw.exe $(INSTALL_DIR)/bin
|
||||
- mkdir "$(INSTALL_DIR)/etc"
|
||||
$(CP) $(DOC) $(INSTALL_DIR)/etc
|
||||
|
||||
|
|
@ -351,9 +373,6 @@ $(BLD)/ctags.$(O) : \
|
|||
$(SRC)/ntlib.h \
|
||||
$(SRC)/getopt.h
|
||||
|
||||
$(BLD)/cvtmail.$(O) : \
|
||||
$(SRC)/cvtmail.c
|
||||
|
||||
$(BLD)/digest-doc.$(O) : \
|
||||
$(SRC)/digest-doc.c
|
||||
|
||||
|
|
@ -363,10 +382,6 @@ $(BLD)/emacsclient.$(O) : \
|
|||
$(EMACS_ROOT)/src/m/intel386.h \
|
||||
$(EMACS_ROOT)/lib-src/../src/config.h
|
||||
|
||||
$(BLD)/emacstool.$(O) : \
|
||||
$(SRC)/emacstool.c \
|
||||
$(EMACS_ROOT)/nt/inc/sys/file.h
|
||||
|
||||
$(BLD)/etags.$(O) : \
|
||||
$(SRC)/etags.c \
|
||||
$(EMACS_ROOT)/nt/inc/sys/param.h \
|
||||
|
|
@ -428,7 +443,7 @@ $(BLD)/movemail.$(O) : \
|
|||
$(EMACS_ROOT)/lib-src/../src/syswait.h \
|
||||
$(EMACS_ROOT)/nt/inc/pwd.h \
|
||||
$(SRC)/ntlib.h
|
||||
$(CC) $(CFLAGS) -DUSG $(CC_OUT)$@ movemail.c
|
||||
$(CC) $(CFLAGS) -DUSG $(CC_OUT)$@ movemail.c
|
||||
|
||||
$(BLD)/ntlib.$(O) : \
|
||||
$(SRC)/ntlib.c \
|
||||
|
|
|
|||
1375
lisp/ChangeLog
1375
lisp/ChangeLog
File diff suppressed because it is too large
Load diff
|
|
@ -11829,7 +11829,7 @@
|
|||
* dbx.el (run-dbx): Set dbx-process.
|
||||
(dbx-stop-at): Use that to decide where to send the string.
|
||||
|
||||
1989-02-13 Marc Shapiro (shapiro@sor.inria.fr)
|
||||
1989-02-13 Marc Shapiro (marc.shapiro@acm.org)
|
||||
|
||||
* bibtex.el (bibtex-clean-entry, bibtex-empty-field, bibtex-find-text,
|
||||
bibtex-kill-optional-field, bibtex-next-field, bibtex-pop-next,
|
||||
|
|
|
|||
|
|
@ -74,6 +74,8 @@ setwins=subdirs=`(cd $$wd; find . -type d -print)`; \
|
|||
esac; \
|
||||
done
|
||||
|
||||
# Find all subdirectories except `obsolete'.
|
||||
|
||||
setwins_almost=subdirs=`(cd $$wd; find . -type d -print)`; \
|
||||
for file in $$subdirs; do \
|
||||
case $$file in */Old | */RCS | */CVS | */CVS/* | */.* | */.*/* | */=* | */obsolete | */term ) ;; \
|
||||
|
|
@ -106,7 +108,7 @@ $(lisp)/loaddefs.el:
|
|||
echo ";; End:" >> $@
|
||||
echo ";;; loaddefs.el ends here" >> $@
|
||||
autoloads: $(lisp)/loaddefs.el doit
|
||||
wd=$(lisp); $(setwins); \
|
||||
wd=$(lisp); $(setwins_almost); \
|
||||
echo Directories: $$wins; \
|
||||
$(EMACS) $(EMACSOPT) -l autoload --eval '(setq generated-autoload-file "$(lisp)/loaddefs.el")' -f batch-update-autoloads $$wins
|
||||
|
||||
|
|
|
|||
|
|
@ -293,6 +293,8 @@ Note: The search is conducted only within 10%, at the beginning of the file."
|
|||
It takes the same format as the TZ argument of `set-time-zone-rule'.
|
||||
If nil, use local time.
|
||||
If t, use universal time.")
|
||||
(put 'add-log-time-zone-rule 'safe-local-variable
|
||||
'(lambda (x) (or (booleanp x) (stringp x))))
|
||||
|
||||
(defun add-log-iso8601-time-zone (&optional time)
|
||||
(let* ((utc-offset (or (car (current-time-zone time)) 0))
|
||||
|
|
|
|||
400
lisp/allout.el
400
lisp/allout.el
|
|
@ -66,7 +66,7 @@
|
|||
;;
|
||||
;; The outline menubar additions provide quick reference to many of
|
||||
;; the features, and see the docstring of the variable `allout-init'
|
||||
;; for instructions on priming your emacs session for automatic
|
||||
;; for instructions on priming your Emacs session for automatic
|
||||
;; activation of allout-mode.
|
||||
;;
|
||||
;; See the docstring of the variables `allout-layout' and
|
||||
|
|
@ -891,12 +891,12 @@ This is properly set by `set-allout-regexp'.")
|
|||
(make-variable-buffer-local 'allout-plain-bullets-string-len)
|
||||
|
||||
;;;_ = allout-doublecheck-at-and-shallower
|
||||
(defconst allout-doublecheck-at-and-shallower 3
|
||||
"Verify apparent topics of this depth and shallower as being non-aberrant.
|
||||
(defconst allout-doublecheck-at-and-shallower 2
|
||||
"Validate apparent topics of this depth and shallower as being non-aberrant.
|
||||
|
||||
Verified with `allout-aberrant-container-p'. This check's usefulness is
|
||||
limited to shallow prospects, because the determination of aberrance
|
||||
depends on the mistaken item being followed by a legitimate item of
|
||||
limited to shallow depths, because the determination of aberrance
|
||||
is according to the mistaken item being followed by a legitimate item of
|
||||
excessively greater depth.")
|
||||
;;;_ X allout-reset-header-lead (header-lead)
|
||||
(defun allout-reset-header-lead (header-lead)
|
||||
|
|
@ -1380,7 +1380,7 @@ are random binary characters to avoid exposing greater susceptibility to
|
|||
search attacks.
|
||||
|
||||
The verifier string is retained as an Emacs file variable, as well as in
|
||||
the emacs buffer state, if file variable adjustments are enabled. See
|
||||
the Emacs buffer state, if file variable adjustments are enabled. See
|
||||
`allout-enable-file-variable-adjustment' for details about that.")
|
||||
(make-variable-buffer-local 'allout-passphrase-verifier-string)
|
||||
;;;###autoload
|
||||
|
|
@ -1392,7 +1392,7 @@ the emacs buffer state, if file variable adjustments are enabled. See
|
|||
See the description of `allout-passphrase-hint-handling' for details about how
|
||||
the reminder is deployed.
|
||||
|
||||
The hint is retained as an Emacs file variable, as well as in the emacs buffer
|
||||
The hint is retained as an Emacs file variable, as well as in the Emacs buffer
|
||||
state, if file variable adjustments are enabled. See
|
||||
`allout-enable-file-variable-adjustment' for details about that.")
|
||||
(make-variable-buffer-local 'allout-passphrase-hint-string)
|
||||
|
|
@ -1506,6 +1506,18 @@ and the place for the cursor after the decryption is done."
|
|||
(goto-char (cadr allout-after-save-decrypt))
|
||||
(setq allout-after-save-decrypt nil))
|
||||
)
|
||||
;;;_ = allout-inhibit-aberrance-doublecheck nil
|
||||
;; In some exceptional moments, disparate topic depths need to be allowed
|
||||
;; momentarily, eg when one topic is being yanked into another and they're
|
||||
;; about to be reconciled. let-binding allout-inhibit-aberrance-doublecheck
|
||||
;; prevents the aberrance doublecheck to allow, eg, the reconciliation
|
||||
;; processing to happen in the presence of such discrepancies. It should
|
||||
;; almost never be needed, however.
|
||||
(defvar allout-inhibit-aberrance-doublecheck nil
|
||||
"Internal state, for momentarily inhibits aberrance doublecheck.
|
||||
|
||||
This should only be momentarily let-bound non-nil, not set
|
||||
non-nil in a lasting way.")
|
||||
|
||||
;;;_ #2 Mode activation
|
||||
;;;_ = allout-explicitly-deactivated
|
||||
|
|
@ -2194,27 +2206,16 @@ to return the current depth of the most recently matched topic."
|
|||
|
||||
;;;_ - Position Assessment
|
||||
;;;_ : Location Predicates
|
||||
;;;_ > allout-on-current-heading-p ()
|
||||
(defun allout-on-current-heading-p ()
|
||||
"Return non-nil if point is on current visible topics' header line.
|
||||
|
||||
Actually, returns prefix beginning point."
|
||||
(save-excursion
|
||||
(allout-beginning-of-current-line)
|
||||
(and (looking-at allout-regexp)
|
||||
(allout-prefix-data)
|
||||
(or (> allout-recent-depth allout-doublecheck-at-and-shallower)
|
||||
(not (allout-aberrant-container-p))))))
|
||||
;;;_ > allout-on-heading-p ()
|
||||
(defalias 'allout-on-heading-p 'allout-on-current-heading-p)
|
||||
;;;_ > allout-e-o-prefix-p ()
|
||||
(defun allout-e-o-prefix-p ()
|
||||
"True if point is located where current topic prefix ends, heading begins."
|
||||
(and (save-excursion (let ((inhibit-field-text-motion t))
|
||||
(beginning-of-line))
|
||||
(looking-at allout-regexp))
|
||||
(= (point)(save-excursion (allout-end-of-prefix)(point)))))
|
||||
;;;_ > allout-aberrant-container-p ()
|
||||
;;;_ > allout-do-doublecheck ()
|
||||
(defsubst allout-do-doublecheck ()
|
||||
"True if current item conditions qualify for checking on topic aberrance."
|
||||
(and
|
||||
;; presume integrity of outline and yanked content during yank - necessary,
|
||||
;; to allow for level disparity of yank location and yanked text:
|
||||
(not allout-inhibit-aberrance-doublecheck)
|
||||
;; allout-doublecheck-at-and-shallower is ceiling for doublecheck:
|
||||
(<= allout-recent-depth allout-doublecheck-at-and-shallower)))
|
||||
;;;_ > allout-aberrant-container-p ()
|
||||
(defun allout-aberrant-container-p ()
|
||||
"True if topic, or next sibling with children, contains them discontinuously.
|
||||
|
||||
|
|
@ -2247,7 +2248,7 @@ exceeds the topic by more than one."
|
|||
(goto-char allout-recent-prefix-beginning)
|
||||
(cond
|
||||
;; sibling - continue:
|
||||
((eq allout-recent-depth depth))
|
||||
((eq allout-recent-depth depth))
|
||||
;; first offspring is excessive - aberrant:
|
||||
((> allout-recent-depth (1+ depth))
|
||||
(setq done t aberrant t))
|
||||
|
|
@ -2259,6 +2260,26 @@ exceeds the topic by more than one."
|
|||
;; recalibrate allout-recent-*
|
||||
(allout-depth)
|
||||
nil)))
|
||||
;;;_ > allout-on-current-heading-p ()
|
||||
(defun allout-on-current-heading-p ()
|
||||
"Return non-nil if point is on current visible topics' header line.
|
||||
|
||||
Actually, returns prefix beginning point."
|
||||
(save-excursion
|
||||
(allout-beginning-of-current-line)
|
||||
(and (looking-at allout-regexp)
|
||||
(allout-prefix-data)
|
||||
(or (not (allout-do-doublecheck))
|
||||
(not (allout-aberrant-container-p))))))
|
||||
;;;_ > allout-on-heading-p ()
|
||||
(defalias 'allout-on-heading-p 'allout-on-current-heading-p)
|
||||
;;;_ > allout-e-o-prefix-p ()
|
||||
(defun allout-e-o-prefix-p ()
|
||||
"True if point is located where current topic prefix ends, heading begins."
|
||||
(and (save-excursion (let ((inhibit-field-text-motion t))
|
||||
(beginning-of-line))
|
||||
(looking-at allout-regexp))
|
||||
(= (point)(save-excursion (allout-end-of-prefix)(point)))))
|
||||
;;;_ : Location attributes
|
||||
;;;_ > allout-depth ()
|
||||
(defun allout-depth ()
|
||||
|
|
@ -2390,8 +2411,7 @@ Outermost is first."
|
|||
(allout-depth)
|
||||
(let ((beginning-of-body
|
||||
(save-excursion
|
||||
(while (and (<= allout-recent-depth
|
||||
allout-doublecheck-at-and-shallower)
|
||||
(while (and (allout-do-doublecheck)
|
||||
(allout-aberrant-container-p)
|
||||
(allout-previous-visible-heading 1)))
|
||||
(allout-beginning-of-current-entry)
|
||||
|
|
@ -2443,7 +2463,7 @@ We skip anomolous low-level topics, a la `allout-aberrant-container-p'."
|
|||
|
||||
(when (re-search-forward allout-line-boundary-regexp nil 0)
|
||||
(allout-prefix-data)
|
||||
(and (<= allout-recent-depth allout-doublecheck-at-and-shallower)
|
||||
(and (allout-do-doublecheck)
|
||||
;; this will set allout-recent-* on the first non-aberrant topic,
|
||||
;; whether it's the current one or one that disqualifies it:
|
||||
(allout-aberrant-container-p))
|
||||
|
|
@ -2464,13 +2484,13 @@ We skip anomolous low-level topics, a la `allout-aberrant-container-p'."
|
|||
|
||||
(if (bobp)
|
||||
nil
|
||||
;; allout-goto-prefix-doublechecked calls us, so we can't use it here.
|
||||
(let ((start-point (point)))
|
||||
;; allout-goto-prefix-doublechecked calls us, so we can't use it here.
|
||||
(allout-goto-prefix)
|
||||
(when (or (re-search-backward allout-line-boundary-regexp nil 0)
|
||||
(looking-at allout-bob-regexp))
|
||||
(goto-char (allout-prefix-data))
|
||||
(if (and (<= allout-recent-depth allout-doublecheck-at-and-shallower)
|
||||
(if (and (allout-do-doublecheck)
|
||||
(allout-aberrant-container-p))
|
||||
(or (allout-previous-heading)
|
||||
(and (goto-char start-point)
|
||||
|
|
@ -2705,11 +2725,11 @@ Like `allout-goto-prefix', but shallow topics \(according to
|
|||
`allout-doublecheck-at-and-shallower') are checked and
|
||||
disqualified for child containment discontinuity, according to
|
||||
`allout-aberrant-container-p'."
|
||||
(allout-goto-prefix)
|
||||
(if (and (<= allout-recent-depth allout-doublecheck-at-and-shallower)
|
||||
(allout-aberrant-container-p))
|
||||
(allout-previous-heading)
|
||||
(point)))
|
||||
(if (allout-goto-prefix)
|
||||
(if (and (allout-do-doublecheck)
|
||||
(allout-aberrant-container-p))
|
||||
(allout-previous-heading)
|
||||
(point))))
|
||||
|
||||
;;;_ > allout-end-of-prefix ()
|
||||
(defun allout-end-of-prefix (&optional ignore-decorations)
|
||||
|
|
@ -2745,13 +2765,13 @@ of (before any) topics, in which case we return nil."
|
|||
|
||||
(allout-beginning-of-current-line)
|
||||
(let ((bol-point (point)))
|
||||
(allout-goto-prefix-doublechecked)
|
||||
(if (<= (point) bol-point)
|
||||
(if (interactive-p)
|
||||
(allout-end-of-prefix)
|
||||
(point))
|
||||
(goto-char (point-min))
|
||||
nil)))
|
||||
(if (allout-goto-prefix-doublechecked)
|
||||
(if (<= (point) bol-point)
|
||||
(if (interactive-p)
|
||||
(allout-end-of-prefix)
|
||||
(point))
|
||||
(goto-char (point-min))
|
||||
nil))))
|
||||
;;;_ > allout-back-to-heading ()
|
||||
(defalias 'allout-back-to-heading 'allout-back-to-current-heading)
|
||||
;;;_ > allout-pre-next-prefix ()
|
||||
|
|
@ -2871,7 +2891,15 @@ collapsed."
|
|||
"Ascend one level, returning t if successful, nil if not."
|
||||
(prog1
|
||||
(if (allout-beginning-of-level)
|
||||
(allout-previous-heading))
|
||||
(let ((bolevel (point))
|
||||
(bolevel-depth allout-recent-depth))
|
||||
(allout-previous-heading)
|
||||
(if (< allout-recent-depth bolevel-depth)
|
||||
allout-recent-depth
|
||||
;; some topic after file's first is at lower depth than first:
|
||||
(goto-char bolevel)
|
||||
(allout-depth)
|
||||
nil)))
|
||||
(if (interactive-p) (allout-end-of-prefix))))
|
||||
;;;_ > allout-descend-to-depth (depth)
|
||||
(defun allout-descend-to-depth (depth)
|
||||
|
|
@ -2918,6 +2946,7 @@ Return the start point of the new topic if successful, nil otherwise."
|
|||
nil
|
||||
(let ((target-depth (or depth (allout-depth)))
|
||||
(start-point (point))
|
||||
(start-prefix-beginning allout-recent-prefix-beginning)
|
||||
(count 0)
|
||||
leaping
|
||||
last-depth)
|
||||
|
|
@ -2941,7 +2970,9 @@ Return the start point of the new topic if successful, nil otherwise."
|
|||
nil)))
|
||||
((and (not (eobp))
|
||||
(and (> (or last-depth (allout-depth)) 0)
|
||||
(= allout-recent-depth target-depth)))
|
||||
(= allout-recent-depth target-depth))
|
||||
(not (= start-prefix-beginning
|
||||
allout-recent-prefix-beginning)))
|
||||
allout-recent-prefix-beginning)
|
||||
(t
|
||||
(goto-char start-point)
|
||||
|
|
@ -3067,8 +3098,7 @@ Move to buffer limit in indicated direction if headings are exhausted."
|
|||
;; not a header line, keep looking:
|
||||
t
|
||||
(allout-prefix-data)
|
||||
(if (and (<= allout-recent-depth
|
||||
allout-doublecheck-at-and-shallower)
|
||||
(if (and (allout-do-doublecheck)
|
||||
(allout-aberrant-container-p))
|
||||
;; skip this aberrant prospective header line:
|
||||
t
|
||||
|
|
@ -3480,8 +3510,6 @@ case.)
|
|||
|
||||
If OFFER-RECENT-BULLET is true, offer to use the bullet of the prior sibling.
|
||||
|
||||
Runs
|
||||
|
||||
Nuances:
|
||||
|
||||
- Creation of new topics is with respect to the visible topic
|
||||
|
|
@ -3828,6 +3856,7 @@ this function."
|
|||
(mb allout-recent-prefix-beginning)
|
||||
(me allout-recent-prefix-end)
|
||||
(current-bullet (buffer-substring-no-properties (- me 1) me))
|
||||
(has-annotation (get-text-property mb 'allout-was-hidden))
|
||||
(new-prefix (allout-make-topic-prefix current-bullet
|
||||
nil
|
||||
new-depth
|
||||
|
|
@ -3854,6 +3883,11 @@ this function."
|
|||
(allout-unprotected
|
||||
(delete-region (match-beginning 0)(match-end 0))))
|
||||
|
||||
;; convey 'allout-was-hidden annotation, if original had it:
|
||||
(if has-annotation
|
||||
(put-text-property 0 (length new-prefix) 'allout-was-hidden t
|
||||
new-prefix))
|
||||
|
||||
; Put in new prefix:
|
||||
(allout-unprotected (insert new-prefix))
|
||||
|
||||
|
|
@ -4117,7 +4151,10 @@ the file can be adjusted to any positive depth, however."
|
|||
(> (1+ current-depth)
|
||||
(1+ predecessor-depth)))
|
||||
(error (concat "Disallowed shift deeper than"
|
||||
" containing topic's children."))))))
|
||||
" containing topic's children."))
|
||||
(allout-back-to-current-heading)
|
||||
(if (< allout-recent-depth (1+ current-depth))
|
||||
(allout-show-children))))))
|
||||
(let ((where (point)))
|
||||
(allout-rebullet-topic 1 (and (> arg 1) 'sans-offspring))
|
||||
(run-hook-with-args 'allout-structure-shifted-hook arg where))))
|
||||
|
|
@ -4183,10 +4220,11 @@ subtopics into siblings of the item."
|
|||
(depth (allout-depth)))
|
||||
|
||||
(allout-annotate-hidden beg end)
|
||||
|
||||
(if (and (not beg-hidden) (not end-hidden))
|
||||
(allout-unprotected (kill-line arg))
|
||||
(kill-line arg))
|
||||
(allout-deannotate-hidden beg end)
|
||||
|
||||
(if allout-numbered-bullet
|
||||
(save-excursion ; Renumber subsequent topics if needed:
|
||||
(if (not (looking-at allout-regexp))
|
||||
|
|
@ -4218,6 +4256,7 @@ allout-yank-processing for exposure recovery."
|
|||
(interactive)
|
||||
(let* ((inhibit-field-text-motion t)
|
||||
(beg (prog1 (allout-back-to-current-heading) (beginning-of-line)))
|
||||
end
|
||||
(depth allout-recent-depth))
|
||||
(allout-end-of-current-subtree)
|
||||
(if (and (/= (current-column) 0) (not (eobp)))
|
||||
|
|
@ -4231,9 +4270,13 @@ allout-yank-processing for exposure recovery."
|
|||
(string= (buffer-substring (- beg 2) beg) "\n\n"))))
|
||||
(forward-char 1)))
|
||||
|
||||
(allout-annotate-hidden beg (point))
|
||||
(allout-annotate-hidden beg (setq end (point)))
|
||||
(unwind-protect
|
||||
(allout-unprotected (kill-region beg end))
|
||||
(if buffer-read-only
|
||||
;; eg, during copy-as-kill.
|
||||
(allout-deannotate-hidden beg end)))
|
||||
|
||||
(allout-unprotected (kill-region beg (point)))
|
||||
(save-excursion
|
||||
(allout-renumber-to-depth depth))
|
||||
(run-hook-with-args 'allout-structure-deleted-hook depth (point))))
|
||||
|
|
@ -4251,8 +4294,7 @@ allout-yank-processing for exposure recovery."
|
|||
|
||||
(let ((was-modified (buffer-modified-p))
|
||||
(buffer-read-only nil))
|
||||
(allout-unprotected
|
||||
(remove-text-properties begin end '(allout-was-hidden t)))
|
||||
(allout-deannotate-hidden begin end)
|
||||
(save-excursion
|
||||
(goto-char begin)
|
||||
(let (done next prev overlay)
|
||||
|
|
@ -4279,9 +4321,19 @@ allout-yank-processing for exposure recovery."
|
|||
(when next
|
||||
(goto-char next)
|
||||
(allout-unprotected
|
||||
(put-text-property (overlay-start overlay) next
|
||||
'allout-was-hidden t))))))))
|
||||
(let ((buffer-undo-list t))
|
||||
(put-text-property (overlay-start overlay) next
|
||||
'allout-was-hidden t)))))))))
|
||||
(set-buffer-modified-p was-modified)))
|
||||
;;;_ > allout-deannotate-hidden (begin end)
|
||||
(defun allout-deannotate-hidden (begin end)
|
||||
"Remove allout hidden-text annotation between BEGIN and END."
|
||||
|
||||
(allout-unprotected
|
||||
(let ((inhibit-read-only t)
|
||||
(buffer-undo-list t))
|
||||
;(remove-text-properties begin end '(allout-was-hidden t))
|
||||
)))
|
||||
;;;_ > allout-hide-by-annotation (begin end)
|
||||
(defun allout-hide-by-annotation (begin end)
|
||||
"Translate text properties indicating exposure status into actual exposure."
|
||||
|
|
@ -4309,16 +4361,10 @@ allout-yank-processing for exposure recovery."
|
|||
nil end))
|
||||
(overlay-put (make-overlay prev next)
|
||||
'category 'allout-exposure-category)
|
||||
(allout-unprotected
|
||||
(remove-text-properties prev next '(allout-was-hidden t)))
|
||||
(allout-deannotate-hidden prev next)
|
||||
(setq prev next)
|
||||
(if next (goto-char next)))))
|
||||
(set-buffer-modified-p was-modified))))
|
||||
;;;_ > allout-remove-exposure-annotation (begin end)
|
||||
(defun allout-remove-exposure-annotation (begin end)
|
||||
"Remove text properties indicating exposure status."
|
||||
(remove-text-properties begin end '(allout-was-hidden t)))
|
||||
|
||||
;;;_ > allout-yank-processing ()
|
||||
(defun allout-yank-processing (&optional arg)
|
||||
|
||||
|
|
@ -4345,108 +4391,117 @@ however, are left exactly like normal, non-allout-specific yanks."
|
|||
; region around subject:
|
||||
(if (< (allout-mark-marker t) (point))
|
||||
(exchange-point-and-mark))
|
||||
(allout-unprotected
|
||||
(let* ((subj-beg (point))
|
||||
(into-bol (bolp))
|
||||
(subj-end (allout-mark-marker t))
|
||||
;; 'resituate' if yanking an entire topic into topic header:
|
||||
(resituate (and (allout-e-o-prefix-p)
|
||||
(looking-at allout-regexp)
|
||||
(allout-prefix-data)))
|
||||
;; `rectify-numbering' if resituating (where several topics may
|
||||
;; be resituating) or yanking a topic into a topic slot (bol):
|
||||
(rectify-numbering (or resituate
|
||||
(and into-bol (looking-at allout-regexp)))))
|
||||
(if resituate
|
||||
; The yanked stuff is a topic:
|
||||
(let* ((prefix-len (- (match-end 1) subj-beg))
|
||||
(subj-depth allout-recent-depth)
|
||||
(prefix-bullet (allout-recent-bullet))
|
||||
(adjust-to-depth
|
||||
;; Nil if adjustment unnecessary, otherwise depth to which
|
||||
;; adjustment should be made:
|
||||
(save-excursion
|
||||
(and (goto-char subj-end)
|
||||
(eolp)
|
||||
(goto-char subj-beg)
|
||||
(and (looking-at allout-regexp)
|
||||
(progn
|
||||
(beginning-of-line)
|
||||
(not (= (point) subj-beg)))
|
||||
(looking-at allout-regexp)
|
||||
(allout-prefix-data))
|
||||
allout-recent-depth)))
|
||||
(more t))
|
||||
(setq rectify-numbering allout-numbered-bullet)
|
||||
(if adjust-to-depth
|
||||
(let* ((subj-beg (point))
|
||||
(into-bol (bolp))
|
||||
(subj-end (allout-mark-marker t))
|
||||
;; 'resituate' if yanking an entire topic into topic header:
|
||||
(resituate (and (let ((allout-inhibit-aberrance-doublecheck t))
|
||||
(allout-e-o-prefix-p))
|
||||
(looking-at allout-regexp)
|
||||
(allout-prefix-data)))
|
||||
;; `rectify-numbering' if resituating (where several topics may
|
||||
;; be resituating) or yanking a topic into a topic slot (bol):
|
||||
(rectify-numbering (or resituate
|
||||
(and into-bol (looking-at allout-regexp)))))
|
||||
(if resituate
|
||||
;; Yanking a topic into the start of a topic - reconcile to fit:
|
||||
(let* ((inhibit-field-text-motion t)
|
||||
(prefix-len (if (not (match-end 1))
|
||||
1
|
||||
(- (match-end 1) subj-beg)))
|
||||
(subj-depth allout-recent-depth)
|
||||
(prefix-bullet (allout-recent-bullet))
|
||||
(adjust-to-depth
|
||||
;; Nil if adjustment unnecessary, otherwise depth to which
|
||||
;; adjustment should be made:
|
||||
(save-excursion
|
||||
(and (goto-char subj-end)
|
||||
(eolp)
|
||||
(goto-char subj-beg)
|
||||
(and (looking-at allout-regexp)
|
||||
(progn
|
||||
(beginning-of-line)
|
||||
(not (= (point) subj-beg)))
|
||||
(looking-at allout-regexp)
|
||||
(allout-prefix-data))
|
||||
allout-recent-depth)))
|
||||
(more t))
|
||||
(setq rectify-numbering allout-numbered-bullet)
|
||||
(if adjust-to-depth
|
||||
; Do the adjustment:
|
||||
(progn
|
||||
(save-restriction
|
||||
(narrow-to-region subj-beg subj-end)
|
||||
(progn
|
||||
(save-restriction
|
||||
(narrow-to-region subj-beg subj-end)
|
||||
; Trim off excessive blank
|
||||
; line at end, if any:
|
||||
(goto-char (point-max))
|
||||
(if (looking-at "^$")
|
||||
(allout-unprotected (delete-char -1)))
|
||||
(goto-char (point-max))
|
||||
(if (looking-at "^$")
|
||||
(allout-unprotected (delete-char -1)))
|
||||
; Work backwards, with each
|
||||
; shallowest level,
|
||||
; successively excluding the
|
||||
; last processed topic from
|
||||
; the narrow region:
|
||||
(while more
|
||||
(allout-back-to-current-heading)
|
||||
(while more
|
||||
(allout-back-to-current-heading)
|
||||
; go as high as we can in each bunch:
|
||||
(while (allout-ascend))
|
||||
(save-excursion
|
||||
(while (allout-ascend))
|
||||
(save-excursion
|
||||
(allout-unprotected
|
||||
(allout-rebullet-topic-grunt (- adjust-to-depth
|
||||
subj-depth))
|
||||
(allout-depth))
|
||||
(if (setq more (not (bobp)))
|
||||
(progn (widen)
|
||||
(forward-char -1)
|
||||
(narrow-to-region subj-beg (point))))))
|
||||
;; Preserve new bullet if it's a distinctive one, otherwise
|
||||
;; use old one:
|
||||
(if (string-match (regexp-quote prefix-bullet)
|
||||
allout-distinctive-bullets-string)
|
||||
subj-depth)))
|
||||
(allout-depth))
|
||||
(if (setq more (not (bobp)))
|
||||
(progn (widen)
|
||||
(forward-char -1)
|
||||
(narrow-to-region subj-beg (point))))))
|
||||
;; Preserve new bullet if it's a distinctive one, otherwise
|
||||
;; use old one:
|
||||
(if (string-match (regexp-quote prefix-bullet)
|
||||
allout-distinctive-bullets-string)
|
||||
; Delete from bullet of old to
|
||||
; before bullet of new:
|
||||
(progn
|
||||
(beginning-of-line)
|
||||
(delete-region (point) subj-beg)
|
||||
(set-marker (allout-mark-marker t) subj-end)
|
||||
(goto-char subj-beg)
|
||||
(allout-end-of-prefix))
|
||||
(progn
|
||||
(beginning-of-line)
|
||||
(allout-unprotected
|
||||
(delete-region (point) subj-beg))
|
||||
(set-marker (allout-mark-marker t) subj-end)
|
||||
(goto-char subj-beg)
|
||||
(allout-end-of-prefix))
|
||||
; Delete base subj prefix,
|
||||
; leaving old one:
|
||||
(delete-region (point) (+ (point)
|
||||
prefix-len
|
||||
(- adjust-to-depth subj-depth)))
|
||||
(allout-unprotected
|
||||
(progn
|
||||
(delete-region (point) (+ (point)
|
||||
prefix-len
|
||||
(- adjust-to-depth
|
||||
subj-depth)))
|
||||
; and delete residual subj
|
||||
; prefix digits and space:
|
||||
(while (looking-at "[0-9]") (delete-char 1))
|
||||
(if (looking-at " ") (delete-char 1))))
|
||||
(exchange-point-and-mark))))
|
||||
(if rectify-numbering
|
||||
(progn
|
||||
(save-excursion
|
||||
(while (looking-at "[0-9]") (delete-char 1))
|
||||
(if (looking-at " ") (delete-char 1))))))
|
||||
(exchange-point-and-mark))))
|
||||
(if rectify-numbering
|
||||
(progn
|
||||
(save-excursion
|
||||
; Give some preliminary feedback:
|
||||
(message "... reconciling numbers")
|
||||
(message "... reconciling numbers")
|
||||
; ... and renumber, in case necessary:
|
||||
(goto-char subj-beg)
|
||||
(if (allout-goto-prefix-doublechecked)
|
||||
(goto-char subj-beg)
|
||||
(if (allout-goto-prefix-doublechecked)
|
||||
(allout-unprotected
|
||||
(allout-rebullet-heading nil ;;; solicit
|
||||
(allout-depth) ;;; depth
|
||||
nil ;;; number-control
|
||||
nil ;;; index
|
||||
t))
|
||||
(message ""))))
|
||||
(if (or into-bol resituate)
|
||||
(allout-hide-by-annotation (point) (allout-mark-marker t))
|
||||
(allout-remove-exposure-annotation (allout-mark-marker t) (point)))
|
||||
(if (not resituate)
|
||||
(exchange-point-and-mark))
|
||||
(run-hook-with-args 'allout-structure-added-hook subj-beg subj-end))))
|
||||
(allout-depth) ;;; depth
|
||||
nil ;;; number-control
|
||||
nil ;;; index
|
||||
t)))
|
||||
(message ""))))
|
||||
(if (or into-bol resituate)
|
||||
(allout-hide-by-annotation (point) (allout-mark-marker t))
|
||||
(allout-deannotate-hidden (allout-mark-marker t) (point)))
|
||||
(if (not resituate)
|
||||
(exchange-point-and-mark))
|
||||
(run-hook-with-args 'allout-structure-added-hook subj-beg subj-end)))
|
||||
;;;_ > allout-yank (&optional arg)
|
||||
(defun allout-yank (&optional arg)
|
||||
"`allout-mode' yank, with depth and numbering adjustment of yanked topics.
|
||||
|
|
@ -5671,7 +5726,7 @@ If allout customization var `allout-passphrase-verifier-handling' is
|
|||
non-nil, an entry for `allout-passphrase-verifier-string' and its value is
|
||||
added to an Emacs 'local variables' section at the end of the file, which
|
||||
is created if necessary. That setting is for retention of the passphrase
|
||||
verifier across emacs sessions.
|
||||
verifier across Emacs sessions.
|
||||
|
||||
Similarly, `allout-passphrase-hint-string' stores a user-provided reminder
|
||||
about their passphrase, and `allout-passphrase-hint-handling' specifies
|
||||
|
|
@ -5711,7 +5766,7 @@ See `allout-toggle-current-subtree-encryption' for more details."
|
|||
" shift it in to make it encryptable")))
|
||||
|
||||
(let* ((allout-buffer (current-buffer))
|
||||
;; Asses location:
|
||||
;; Assess location:
|
||||
(bullet-pos allout-recent-prefix-beginning)
|
||||
(after-bullet-pos (point))
|
||||
(was-encrypted
|
||||
|
|
@ -5745,7 +5800,29 @@ See `allout-toggle-current-subtree-encryption' for more details."
|
|||
'(symmetric nil)))
|
||||
(for-key-type (car key-info))
|
||||
(for-key-identity (cadr key-info))
|
||||
(fetch-pass (and fetch-pass (member fetch-pass '(16 (16))))))
|
||||
(fetch-pass (and fetch-pass (member fetch-pass '(16 (16)))))
|
||||
(was-coding-system buffer-file-coding-system))
|
||||
|
||||
(when (not was-encrypted)
|
||||
;; ensure that non-ascii chars pending encryption are noticed before
|
||||
;; they're encrypted, so the coding system is set to accomodate
|
||||
;; them.
|
||||
(setq buffer-file-coding-system
|
||||
(select-safe-coding-system subtree-beg subtree-end))
|
||||
;; if the coding system for the text being encrypted is different
|
||||
;; than that prevailing, then there a real risk that the coding
|
||||
;; system can't be noticed by emacs when the file is visited. to
|
||||
;; mitigate that, offer to preserve the coding system using a file
|
||||
;; local variable.
|
||||
(if (and (not (equal buffer-file-coding-system
|
||||
was-coding-system))
|
||||
(yes-or-no-p
|
||||
(format (concat "Register coding system %s as file local"
|
||||
" var? Necessary when only encrypted text"
|
||||
" is in that coding system. ")
|
||||
buffer-file-coding-system)))
|
||||
(allout-adjust-file-variable "buffer-file-coding-system"
|
||||
buffer-file-coding-system)))
|
||||
|
||||
(setq result-text
|
||||
(allout-encrypt-string subject-text was-encrypted
|
||||
|
|
@ -5834,6 +5911,10 @@ Returns the resulting string, or nil if the transformation fails."
|
|||
target-prompt-id
|
||||
(or (buffer-file-name allout-buffer)
|
||||
target-prompt-id))))
|
||||
(encoding (with-current-buffer allout-buffer
|
||||
buffer-file-coding-system))
|
||||
(multibyte (with-current-buffer allout-buffer
|
||||
enable-multibyte-characters))
|
||||
(strip-plaintext-regexps
|
||||
(if (not decrypt)
|
||||
(allout-get-configvar-values
|
||||
|
|
@ -5870,6 +5951,13 @@ Returns the resulting string, or nil if the transformation fails."
|
|||
|
||||
(insert text)
|
||||
|
||||
;; convey the text characteristics of the original buffer:
|
||||
(set-buffer-multibyte multibyte)
|
||||
(when encoding
|
||||
(set-buffer-file-coding-system encoding)
|
||||
(if (not decrypt)
|
||||
(encode-coding-region (point-min) (point-max) encoding)))
|
||||
|
||||
(when (and strip-plaintext-regexps (not decrypt))
|
||||
(dolist (re strip-plaintext-regexps)
|
||||
(let ((re (if (listp re) (car re) re))
|
||||
|
|
@ -6356,7 +6444,7 @@ setup for auto-startup."
|
|||
|
||||
(save-excursion
|
||||
(goto-char (point-min))
|
||||
(if (looking-at allout-regexp)
|
||||
(if (allout-goto-prefix)
|
||||
t
|
||||
(allout-open-topic 2)
|
||||
(insert (concat "Dummy outline topic header - see"
|
||||
|
|
@ -6393,7 +6481,7 @@ Returns list `(beginning-point prefix-string suffix-string)'."
|
|||
)
|
||||
;;;_ > allout-adjust-file-variable (varname value)
|
||||
(defun allout-adjust-file-variable (varname value)
|
||||
"Adjust the setting of an emacs file variable named VARNAME to VALUE.
|
||||
"Adjust the setting of an Emacs file variable named VARNAME to VALUE.
|
||||
|
||||
This activity is inhibited if either `enable-local-variables'
|
||||
`allout-enable-file-variable-adjustment' are nil.
|
||||
|
|
@ -6404,7 +6492,7 @@ variables, itself, is created if not already present. When created, the
|
|||
section lines \(including the section line) exist as second-level topics in
|
||||
a top-level topic at the end of the file.
|
||||
|
||||
enable-local-variables must be true for any of this to happen."
|
||||
`enable-local-variables' must be true for any of this to happen."
|
||||
(if (not (and enable-local-variables
|
||||
allout-enable-file-variable-adjustment))
|
||||
nil
|
||||
|
|
|
|||
|
|
@ -171,7 +171,7 @@ If value is `verbose', the computed score is shown for each match."
|
|||
("yank" "paste")
|
||||
("region" "selection"))
|
||||
"List of synonyms known by apropos.
|
||||
Each element is a list of words where the first word is the standard emacs
|
||||
Each element is a list of words where the first word is the standard Emacs
|
||||
term, and the rest of the words are alternative terms.")
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -119,7 +119,7 @@ then invokes the normal binding of \\[autoarg-terminate].
|
|||
With ARG, turn Autoarg mode on if ARG is positive, off otherwise.
|
||||
\\<autoarg-kp-mode-map>
|
||||
This is similar to \\[autoarg-mode] but rebinds the keypad keys `kp-1'
|
||||
&c to supply digit arguments.
|
||||
etc. to supply digit arguments.
|
||||
|
||||
\\{autoarg-kp-mode-map}"
|
||||
nil " Aakp" autoarg-kp-mode-map :global t :group 'keyboard
|
||||
|
|
|
|||
|
|
@ -49,8 +49,8 @@
|
|||
(file-directory-p "/proc/acpi/battery"))
|
||||
'battery-linux-proc-acpi)
|
||||
((and (eq system-type 'darwin)
|
||||
(condition-case nil
|
||||
(with-temp-buffer
|
||||
(condition-case nil
|
||||
(with-temp-buffer
|
||||
(and (eq (call-process "pmset" nil t nil "-g" "ps") 0)
|
||||
(> (buffer-size) 0)))
|
||||
(error nil)))
|
||||
|
|
@ -355,45 +355,19 @@ The following %-sequences are provided:
|
|||
60)))
|
||||
hours (/ minutes 60)))
|
||||
(list (cons ?c (or (and capacity (number-to-string capacity)) "N/A"))
|
||||
(cons ?L (or (when (file-exists-p "/proc/acpi/ac_adapter/AC/state")
|
||||
(with-temp-buffer
|
||||
(insert-file-contents
|
||||
"/proc/acpi/ac_adapter/AC/state")
|
||||
(when (re-search-forward "state: +\\(.*\\)$" nil t)
|
||||
(match-string 1))))
|
||||
(cons ?L (or (battery-search-for-one-match-in-files
|
||||
(mapcar (lambda (e) (concat e "/state"))
|
||||
(directory-files "/proc/acpi/ac_adapter/"
|
||||
t "\\`[^.]"))
|
||||
"state: +\\(.*\\)$" 1)
|
||||
|
||||
"N/A"))
|
||||
(cons ?d (or (when (file-exists-p
|
||||
"/proc/acpi/thermal_zone/THRM/temperature")
|
||||
(with-temp-buffer
|
||||
(insert-file-contents
|
||||
"/proc/acpi/thermal_zone/THRM/temperature")
|
||||
(when (re-search-forward
|
||||
"temperature: +\\([0-9]+\\) C$" nil t)
|
||||
(match-string 1))))
|
||||
(when (file-exists-p
|
||||
"/proc/acpi/thermal_zone/THM/temperature")
|
||||
(with-temp-buffer
|
||||
(insert-file-contents
|
||||
"/proc/acpi/thermal_zone/THM/temperature")
|
||||
(when (re-search-forward
|
||||
"temperature: +\\([0-9]+\\) C$" nil t)
|
||||
(match-string 1))))
|
||||
(when (file-exists-p
|
||||
"/proc/acpi/thermal_zone/THM0/temperature")
|
||||
(with-temp-buffer
|
||||
(insert-file-contents
|
||||
"/proc/acpi/thermal_zone/THM0/temperature")
|
||||
(when (re-search-forward
|
||||
"temperature: +\\([0-9]+\\) C$" nil t)
|
||||
(match-string 1))))
|
||||
(when (file-exists-p
|
||||
"/proc/acpi/thermal_zone/THR2/temperature")
|
||||
(with-temp-buffer
|
||||
(insert-file-contents
|
||||
"/proc/acpi/thermal_zone/THR2/temperature")
|
||||
(when (re-search-forward
|
||||
"temperature: +\\([0-9]+\\) C$" nil t)
|
||||
(match-string 1))))
|
||||
(cons ?d (or (battery-search-for-one-match-in-files
|
||||
(mapcar (lambda (e) (concat e "/temperature"))
|
||||
(directory-files "/proc/acpi/thermal_zone/"
|
||||
t "\\`[^.]"))
|
||||
"temperature: +\\([0-9]+\\) C$" 1)
|
||||
|
||||
"N/A"))
|
||||
(cons ?r (or (and rate (concat (number-to-string rate) " "
|
||||
rate-type)) "N/A"))
|
||||
|
|
@ -408,6 +382,7 @@ The following %-sequences are provided:
|
|||
(format "%d:%02d" hours (- minutes (* 60 hours))))
|
||||
"N/A"))
|
||||
(cons ?p (or (and full-capacity capacity
|
||||
(> full-capacity 0)
|
||||
(number-to-string
|
||||
(floor (/ capacity
|
||||
(/ (float full-capacity) 100)))))
|
||||
|
|
@ -478,6 +453,17 @@ The following %-sequences are provided:
|
|||
(or (cdr (assoc char alist)) ""))))
|
||||
format t t))
|
||||
|
||||
(defun battery-search-for-one-match-in-files (files regexp match-num)
|
||||
"Search REGEXP in the content of the files listed in FILES.
|
||||
If a match occured, return the parenthesized expression numbered by
|
||||
MATCH-NUM in the match. Otherwise, return nil."
|
||||
(with-temp-buffer
|
||||
(catch 'found
|
||||
(dolist (file files)
|
||||
(and (ignore-errors (insert-file-contents file nil nil nil 'replace))
|
||||
(re-search-forward regexp nil t)
|
||||
(throw 'found (match-string match-num)))))))
|
||||
|
||||
|
||||
(provide 'battery)
|
||||
|
||||
|
|
|
|||
|
|
@ -285,7 +285,7 @@ Keymap to display on minor modes.")
|
|||
;; "\
|
||||
;; mouse-1: select window, mouse-2: delete others, mouse-3: delete,
|
||||
;; drag-mouse-1: resize, C-mouse-2: split horizontally"
|
||||
"mouse-1: select (drag to resize), mouse-2: delete others, mouse-3: delete this")
|
||||
"mouse-1: select (drag to resize), mouse-2 = C-x 1, mouse-3 = C-x 0")
|
||||
(dashes (propertize "--" 'help-echo help-echo))
|
||||
(standard-mode-line-format
|
||||
(list
|
||||
|
|
|
|||
52
lisp/bs.el
52
lisp/bs.el
|
|
@ -441,11 +441,12 @@ naming a sort behavior. Default is \"by nothing\" which means no sorting."
|
|||
|
||||
(defvar bs--show-all nil
|
||||
"Flag whether showing all buffers regardless of current configuration.
|
||||
Non nil means to show all buffers. Otherwise show buffers
|
||||
Non-nil means to show all buffers. Otherwise show buffers
|
||||
defined by current configuration `bs-current-configuration'.")
|
||||
|
||||
(defvar bs--window-config-coming-from nil
|
||||
"Window configuration before starting Buffer Selection Menu.")
|
||||
(make-variable-frame-local 'bs--window-config-coming-from)
|
||||
|
||||
(defvar bs--intern-show-never "^ \\|\\*buffer-selection\\*"
|
||||
"Regular expression specifying which buffers never to show.
|
||||
|
|
@ -583,8 +584,8 @@ a special function. SORT-DESCRIPTION is an element of `bs-sort-functions'."
|
|||
|
||||
(defun bs--redisplay (&optional keep-line-p sort-description)
|
||||
"Redisplay whole Buffer Selection Menu.
|
||||
If KEEP-LINE-P is non nil the point will stay on current line.
|
||||
SORT-DESCRIPTION is an element of `bs-sort-functions'"
|
||||
If KEEP-LINE-P is non-nil the point will stay on current line.
|
||||
SORT-DESCRIPTION is an element of `bs-sort-functions'."
|
||||
(let ((line (1+ (count-lines 1 (point)))))
|
||||
(bs-show-in-buffer (bs-buffer-list nil sort-description))
|
||||
(if keep-line-p
|
||||
|
|
@ -661,11 +662,17 @@ to show always.
|
|||
font-lock-verbose nil)
|
||||
(run-mode-hooks 'bs-mode-hook))
|
||||
|
||||
(defun bs--restore-window-config ()
|
||||
"Restore window configuration on the current frame."
|
||||
(when bs--window-config-coming-from
|
||||
(set-window-configuration bs--window-config-coming-from)
|
||||
(setq bs--window-config-coming-from nil)))
|
||||
|
||||
(defun bs-kill ()
|
||||
"Let buffer disappear and reset window-configuration."
|
||||
(interactive)
|
||||
(bury-buffer (current-buffer))
|
||||
(set-window-configuration bs--window-config-coming-from))
|
||||
(bs--restore-window-config))
|
||||
|
||||
(defun bs-abort ()
|
||||
"Ding and leave Buffer Selection Menu without a selection."
|
||||
|
|
@ -685,17 +692,6 @@ Refresh whole Buffer Selection Menu."
|
|||
(interactive)
|
||||
(bs--redisplay t))
|
||||
|
||||
(defun bs--window-for-buffer (buffer-name)
|
||||
"Return a window showing a buffer with name BUFFER-NAME.
|
||||
Take only windows of current frame into account.
|
||||
Return nil if there is no such buffer."
|
||||
(let ((window nil))
|
||||
(walk-windows (lambda (wind)
|
||||
(if (string= (buffer-name (window-buffer wind))
|
||||
buffer-name)
|
||||
(setq window wind))))
|
||||
window))
|
||||
|
||||
(defun bs--set-window-height ()
|
||||
"Change the height of the selected window to suit the current buffer list."
|
||||
(unless (one-window-p t)
|
||||
|
|
@ -736,7 +732,7 @@ Leave Buffer Selection Menu."
|
|||
(interactive)
|
||||
(let ((buffer (bs--current-buffer)))
|
||||
(bury-buffer (current-buffer))
|
||||
(set-window-configuration bs--window-config-coming-from)
|
||||
(bs--restore-window-config)
|
||||
(switch-to-buffer buffer)
|
||||
(if bs--marked-buffers
|
||||
;; Some marked buffers for selection
|
||||
|
|
@ -760,7 +756,7 @@ Leave Buffer Selection Menu."
|
|||
(interactive)
|
||||
(let ((buffer (bs--current-buffer)))
|
||||
(bury-buffer (current-buffer))
|
||||
(set-window-configuration bs--window-config-coming-from)
|
||||
(bs--restore-window-config)
|
||||
(switch-to-buffer-other-window buffer)))
|
||||
|
||||
(defun bs-tmp-select-other-window ()
|
||||
|
|
@ -776,7 +772,7 @@ Leave Buffer Selection Menu."
|
|||
(interactive)
|
||||
(let ((buffer (bs--current-buffer)))
|
||||
(bury-buffer (current-buffer))
|
||||
(set-window-configuration bs--window-config-coming-from)
|
||||
(bs--restore-window-config)
|
||||
(switch-to-buffer-other-frame buffer)))
|
||||
|
||||
(defun bs-mouse-select-other-frame (event)
|
||||
|
|
@ -1234,7 +1230,6 @@ by buffer configuration `bs-cycle-configuration-name'."
|
|||
(or (cdr bs--cycle-list)
|
||||
"this buffer"))))))
|
||||
|
||||
|
||||
;;;###autoload
|
||||
(defun bs-cycle-previous ()
|
||||
"Select previous buffer defined by buffer cycling.
|
||||
|
|
@ -1426,17 +1421,20 @@ for buffer selection."
|
|||
(unless (string= "*buffer-selection*" (buffer-name))
|
||||
;; Only when not in buffer *buffer-selection*
|
||||
;; we have to set the buffer we started the command
|
||||
(progn
|
||||
(setq bs--buffer-coming-from (current-buffer))
|
||||
(setq bs--window-config-coming-from (current-window-configuration))))
|
||||
(setq bs--buffer-coming-from (current-buffer)))
|
||||
(let ((liste (bs-buffer-list))
|
||||
(active-window (bs--window-for-buffer "*buffer-selection*")))
|
||||
(active-window (get-window-with-predicate
|
||||
(lambda (w)
|
||||
(string= (buffer-name (window-buffer w))
|
||||
"*buffer-selection*")))))
|
||||
(if active-window
|
||||
(select-window active-window)
|
||||
(if (> (window-height (selected-window)) 7)
|
||||
(progn
|
||||
(split-window-vertically)
|
||||
(other-window 1))))
|
||||
(modify-frame-parameters nil
|
||||
(list (cons 'bs--window-config-coming-from
|
||||
(current-window-configuration))))
|
||||
(when (> (window-height (selected-window)) 7)
|
||||
(split-window-vertically)
|
||||
(other-window 1)))
|
||||
(bs-show-in-buffer liste)
|
||||
(bs-message-without-log "%s" (bs--current-config-message)))))
|
||||
|
||||
|
|
|
|||
|
|
@ -42,6 +42,16 @@
|
|||
(require 'calendar)
|
||||
(require 'cal-persia)
|
||||
|
||||
(defcustom calendar-dst-check-each-year-flag t
|
||||
"Non-nil means to check each year for DST transitions as needed.
|
||||
Otherwise assume the next two transitions found after the
|
||||
current date apply to all years. This is faster, but not always
|
||||
correct, since the dates of Daylight Saving transitions sometimes
|
||||
change."
|
||||
:type 'boolean
|
||||
:version "22.1"
|
||||
:group 'calendar)
|
||||
|
||||
(defvar calendar-current-time-zone-cache nil
|
||||
"Cache for result of calendar-current-time-zone.")
|
||||
|
||||
|
|
@ -199,6 +209,74 @@ The result has the proper form for calendar-daylight-savings-starts'."
|
|||
(cdr candidate-rules)))
|
||||
(car candidate-rules)))
|
||||
|
||||
;; TODO it might be better to extract this information directly from
|
||||
;; the system timezone database. But cross-platform...?
|
||||
;; See thread
|
||||
;; http://lists.gnu.org/archive/html/emacs-pretest-bug/2006-11/msg00060.html
|
||||
(defun calendar-dst-find-data (&optional time)
|
||||
"Find data on the first Daylight Saving Time transitions after TIME.
|
||||
TIME defaults to `current-time'. Return value is as described
|
||||
for `calendar-current-time-zone'."
|
||||
(let* ((t0 (or time (current-time)))
|
||||
(t0-zone (current-time-zone t0))
|
||||
(t0-utc-diff (car t0-zone))
|
||||
(t0-name (car (cdr t0-zone))))
|
||||
(if (not t0-utc-diff)
|
||||
;; Little or no time zone information is available.
|
||||
(list nil nil t0-name t0-name nil nil nil nil)
|
||||
(let* ((t1 (calendar-next-time-zone-transition t0))
|
||||
(t2 (and t1 (calendar-next-time-zone-transition t1))))
|
||||
(if (not t2)
|
||||
;; This locale does not have daylight savings time.
|
||||
(list (/ t0-utc-diff 60) 0 t0-name t0-name nil nil 0 0)
|
||||
;; Use heuristics to find daylight savings parameters.
|
||||
(let* ((t1-zone (current-time-zone t1))
|
||||
(t1-utc-diff (car t1-zone))
|
||||
(t1-name (car (cdr t1-zone)))
|
||||
(t1-date-sec (calendar-absolute-from-time t1 t0-utc-diff))
|
||||
(t2-date-sec (calendar-absolute-from-time t2 t1-utc-diff))
|
||||
;; TODO When calendar-dst-check-each-year-flag is non-nil,
|
||||
;; the rules can be simpler than they currently are.
|
||||
(t1-rules (calendar-time-zone-daylight-rules
|
||||
(car t1-date-sec) t0-utc-diff))
|
||||
(t2-rules (calendar-time-zone-daylight-rules
|
||||
(car t2-date-sec) t1-utc-diff))
|
||||
(t1-time (/ (cdr t1-date-sec) 60))
|
||||
(t2-time (/ (cdr t2-date-sec) 60)))
|
||||
(cons
|
||||
(/ (min t0-utc-diff t1-utc-diff) 60)
|
||||
(cons
|
||||
(/ (abs (- t0-utc-diff t1-utc-diff)) 60)
|
||||
(if (< t0-utc-diff t1-utc-diff)
|
||||
(list t0-name t1-name t1-rules t2-rules t1-time t2-time)
|
||||
(list t1-name t0-name t2-rules t1-rules t2-time t1-time)
|
||||
)))))))))
|
||||
|
||||
(defvar calendar-dst-transition-cache nil
|
||||
"Internal cal-dst variable storing date of Daylight Saving Time transitions.
|
||||
Value is a list with elements of the form (YEAR START END), where
|
||||
START and END are expressions that when evaluated return the
|
||||
start and end dates (respectively) for DST in YEAR. Used by the
|
||||
function `calendar-dst-find-startend'.")
|
||||
|
||||
(defun calendar-dst-find-startend (year)
|
||||
"Find the dates in YEAR on which Daylight Saving Time starts and ends.
|
||||
Returns a list (YEAR START END), where START and END are
|
||||
expressions that when evaluated return the start and end dates,
|
||||
respectively. This function first attempts to use pre-calculated
|
||||
data from `calendar-dst-transition-cache', otherwise it calls
|
||||
`calendar-dst-find-data' (and adds the results to the cache)."
|
||||
(let ((e (assoc year calendar-dst-transition-cache))
|
||||
f)
|
||||
(or e
|
||||
(progn
|
||||
(setq e (calendar-dst-find-data (encode-time 1 0 0 1 1 year))
|
||||
f (nth 4 e)
|
||||
e (list year f (nth 5 e))
|
||||
calendar-dst-transition-cache
|
||||
(append calendar-dst-transition-cache (list e)))
|
||||
e))))
|
||||
|
||||
(defun calendar-current-time-zone ()
|
||||
"Return UTC difference, dst offset, names and rules for current time zone.
|
||||
|
||||
|
|
@ -226,42 +304,8 @@ DST-ZONE are equal, and all the DST-* integer variables are 0.
|
|||
Some operating systems cannot provide all this information to Emacs; in this
|
||||
case, `calendar-current-time-zone' returns a list containing nil for the data
|
||||
it can't find."
|
||||
(or
|
||||
calendar-current-time-zone-cache
|
||||
(setq
|
||||
calendar-current-time-zone-cache
|
||||
(let* ((t0 (current-time))
|
||||
(t0-zone (current-time-zone t0))
|
||||
(t0-utc-diff (car t0-zone))
|
||||
(t0-name (car (cdr t0-zone))))
|
||||
(if (not t0-utc-diff)
|
||||
;; Little or no time zone information is available.
|
||||
(list nil nil t0-name t0-name nil nil nil nil)
|
||||
(let* ((t1 (calendar-next-time-zone-transition t0))
|
||||
(t2 (and t1 (calendar-next-time-zone-transition t1))))
|
||||
(if (not t2)
|
||||
;; This locale does not have daylight savings time.
|
||||
(list (/ t0-utc-diff 60) 0 t0-name t0-name nil nil 0 0)
|
||||
;; Use heuristics to find daylight savings parameters.
|
||||
(let* ((t1-zone (current-time-zone t1))
|
||||
(t1-utc-diff (car t1-zone))
|
||||
(t1-name (car (cdr t1-zone)))
|
||||
(t1-date-sec (calendar-absolute-from-time t1 t0-utc-diff))
|
||||
(t2-date-sec (calendar-absolute-from-time t2 t1-utc-diff))
|
||||
(t1-rules (calendar-time-zone-daylight-rules
|
||||
(car t1-date-sec) t0-utc-diff))
|
||||
(t2-rules (calendar-time-zone-daylight-rules
|
||||
(car t2-date-sec) t1-utc-diff))
|
||||
(t1-time (/ (cdr t1-date-sec) 60))
|
||||
(t2-time (/ (cdr t2-date-sec) 60)))
|
||||
(cons
|
||||
(/ (min t0-utc-diff t1-utc-diff) 60)
|
||||
(cons
|
||||
(/ (abs (- t0-utc-diff t1-utc-diff)) 60)
|
||||
(if (< t0-utc-diff t1-utc-diff)
|
||||
(list t0-name t1-name t1-rules t2-rules t1-time t2-time)
|
||||
(list t1-name t0-name t2-rules t1-rules t2-time t1-time)
|
||||
)))))))))))
|
||||
(unless calendar-current-time-zone-cache
|
||||
(setq calendar-current-time-zone-cache (calendar-dst-find-data))))
|
||||
|
||||
;;; The following eight defvars relating to daylight savings time should NOT be
|
||||
;;; marked to go into loaddefs.el where they would be evaluated when Emacs is
|
||||
|
|
@ -293,12 +337,32 @@ For example, \"EST\" in New York City, \"PST\" for Los Angeles.")
|
|||
"*Abbreviated name of daylight-savings time zone at `calendar-location-name'.
|
||||
For example, \"EDT\" in New York City, \"PDT\" for Los Angeles.")
|
||||
|
||||
|
||||
(defun calendar-dst-starts (year)
|
||||
"Return the date of YEAR on which Daylight Saving Time starts.
|
||||
This function respects the value of `calendar-dst-check-each-year-flag'."
|
||||
(or (let ((expr (if calendar-dst-check-each-year-flag
|
||||
(cadr (calendar-dst-find-startend year))
|
||||
(nth 4 calendar-current-time-zone-cache))))
|
||||
(if expr (eval expr)))
|
||||
(and (not (zerop calendar-daylight-time-offset))
|
||||
(calendar-nth-named-day 1 0 4 year))))
|
||||
|
||||
(defun calendar-dst-ends (year)
|
||||
"Return the date of YEAR on which Daylight Saving Time ends.
|
||||
This function respects the value of `calendar-dst-check-each-year-flag'."
|
||||
(or (let ((expr (if calendar-dst-check-each-year-flag
|
||||
(nth 2 (calendar-dst-find-startend year))
|
||||
(nth 5 calendar-current-time-zone-cache))))
|
||||
(if expr (eval expr)))
|
||||
(and (not (zerop calendar-daylight-time-offset))
|
||||
(calendar-nth-named-day -1 0 10 year))))
|
||||
|
||||
|
||||
;;;###autoload
|
||||
(put 'calendar-daylight-savings-starts 'risky-local-variable t)
|
||||
(defvar calendar-daylight-savings-starts
|
||||
(or (car (nthcdr 4 calendar-current-time-zone-cache))
|
||||
(and (not (zerop calendar-daylight-time-offset))
|
||||
'(calendar-nth-named-day 1 0 4 year)))
|
||||
'(calendar-dst-starts year)
|
||||
"*Sexp giving the date on which daylight savings time starts.
|
||||
This is an expression in the variable `year' whose value gives the Gregorian
|
||||
date in the form (month day year) on which daylight savings time starts. It is
|
||||
|
|
@ -319,9 +383,7 @@ If the locale never uses daylight savings time, set this to nil.")
|
|||
;;;###autoload
|
||||
(put 'calendar-daylight-savings-ends 'risky-local-variable t)
|
||||
(defvar calendar-daylight-savings-ends
|
||||
(or (car (nthcdr 5 calendar-current-time-zone-cache))
|
||||
(and (not (zerop calendar-daylight-time-offset))
|
||||
'(calendar-nth-named-day -1 0 10 year)))
|
||||
'(calendar-dst-ends year)
|
||||
"*Sexp giving the date on which daylight savings time ends.
|
||||
This is an expression in the variable `year' whose value gives the Gregorian
|
||||
date in the form (month day year) on which daylight savings time ends. It is
|
||||
|
|
|
|||
|
|
@ -769,7 +769,8 @@ buffer. The hook `comint-exec-hook' is run after each exec."
|
|||
(list "TERM=emacs"
|
||||
(format "TERMCAP=emacs:co#%d:tc=unknown:" (window-width))))
|
||||
(unless (getenv "EMACS")
|
||||
(list (concat "EMACS=" invocation-directory invocation-name)))
|
||||
(list "EMACS=t"))
|
||||
(list (format "INSIDE_EMACS=%s,comint" emacs-version))
|
||||
process-environment))
|
||||
(default-directory
|
||||
(if (file-accessible-directory-p default-directory)
|
||||
|
|
|
|||
|
|
@ -466,6 +466,37 @@
|
|||
:version "22.1"
|
||||
:prefix "mac-")
|
||||
|
||||
;;; Custom mode keymaps
|
||||
|
||||
(defvar custom-mode-map
|
||||
;; This keymap should be dense, but a dense keymap would prevent inheriting
|
||||
;; "\r" bindings from the parent map.
|
||||
;; Actually, this misfeature of dense keymaps was fixed on 2001-11-26.
|
||||
(let ((map (make-keymap)))
|
||||
(set-keymap-parent map widget-keymap)
|
||||
(define-key map [remap self-insert-command] 'Custom-no-edit)
|
||||
(define-key map "\^m" 'Custom-newline)
|
||||
(define-key map " " 'scroll-up)
|
||||
(define-key map "\177" 'scroll-down)
|
||||
(define-key map "\C-c\C-c" 'Custom-set)
|
||||
(define-key map "\C-x\C-s" 'Custom-save)
|
||||
(define-key map "q" 'Custom-buffer-done)
|
||||
(define-key map "u" 'Custom-goto-parent)
|
||||
(define-key map "n" 'widget-forward)
|
||||
(define-key map "p" 'widget-backward)
|
||||
map)
|
||||
"Keymap for `custom-mode'.")
|
||||
|
||||
(defvar custom-mode-link-map
|
||||
(let ((map (make-keymap)))
|
||||
(set-keymap-parent map custom-mode-map)
|
||||
(define-key map [down-mouse-2] nil)
|
||||
(define-key map [down-mouse-1] 'mouse-drag-region)
|
||||
(define-key map [mouse-2] 'widget-move-and-invoke)
|
||||
map)
|
||||
"Local keymap for links in `custom-mode'.")
|
||||
|
||||
|
||||
;;; Utilities.
|
||||
|
||||
(defun custom-split-regexp-maybe (regexp)
|
||||
|
|
@ -521,7 +552,7 @@ WIDGET is the widget to apply the filter entries of MENU on."
|
|||
"List of prefixes that should be ignored by `custom-unlispify'.")
|
||||
|
||||
(defcustom custom-unlispify-menu-entries t
|
||||
"Display menu entries as words instead of symbols if non nil."
|
||||
"Display menu entries as words instead of symbols if non-nil."
|
||||
:group 'custom-menu
|
||||
:type 'boolean)
|
||||
|
||||
|
|
@ -568,7 +599,7 @@ WIDGET is the widget to apply the filter entries of MENU on."
|
|||
(buffer-string)))))
|
||||
|
||||
(defcustom custom-unlispify-tag-names t
|
||||
"Display tag names as words instead of symbols if non nil."
|
||||
"Display tag names as words instead of symbols if non-nil."
|
||||
:group 'custom-buffer
|
||||
:type 'boolean)
|
||||
|
||||
|
|
@ -846,7 +877,7 @@ it were the arg to `interactive' (which see) to interactively read the value.
|
|||
If the variable has a `custom-type' property, it must be a widget and the
|
||||
`:prompt-value' property of that widget will be used for reading the value.
|
||||
|
||||
If optional COMMENT argument is non nil, also prompt for a comment and return
|
||||
If optional COMMENT argument is non-nil, also prompt for a comment and return
|
||||
it as the third element in the list."
|
||||
(let* ((var (read-variable prompt-var))
|
||||
(minibuffer-help-form '(describe-variable var))
|
||||
|
|
@ -1781,6 +1812,8 @@ item in another window.\n\n"))
|
|||
(define-widget 'custom-manual 'info-link
|
||||
"Link to the manual entry for this customization option."
|
||||
:help-echo "Read the manual entry for this option."
|
||||
:keymap custom-mode-link-map
|
||||
:follow-link 'mouse-face
|
||||
:button-face 'custom-link
|
||||
:mouse-face 'highlight
|
||||
:pressed-face 'highlight
|
||||
|
|
@ -3631,7 +3664,7 @@ restoring it to the state of a face that has never been customized."
|
|||
;;; The `hook' Widget.
|
||||
|
||||
(define-widget 'hook 'list
|
||||
"A emacs lisp hook"
|
||||
"An Emacs Lisp hook."
|
||||
:value-to-internal (lambda (widget value)
|
||||
(if (and value (symbolp value))
|
||||
(list value)
|
||||
|
|
@ -3673,6 +3706,8 @@ restoring it to the state of a face that has never been customized."
|
|||
:mouse-face 'highlight
|
||||
:pressed-face 'highlight
|
||||
:help-echo "Create customization buffer for this group."
|
||||
:keymap custom-mode-link-map
|
||||
:follow-link 'mouse-face
|
||||
:action 'custom-group-link-action)
|
||||
|
||||
(defun custom-group-link-action (widget &rest ignore)
|
||||
|
|
@ -4149,6 +4184,8 @@ if only the first line of the docstring is shown."))
|
|||
;;;###autoload
|
||||
(defun custom-save-all ()
|
||||
"Save all customizations in `custom-file'."
|
||||
(when (and (null custom-file) init-file-had-error)
|
||||
(error "Cannot save customizations; init file was not fully loaded"))
|
||||
(let* ((filename (custom-file))
|
||||
(recentf-exclude (if recentf-mode
|
||||
(cons (concat "\\`"
|
||||
|
|
@ -4156,7 +4193,8 @@ if only the first line of the docstring is shown."))
|
|||
"\\'")
|
||||
recentf-exclude)))
|
||||
(old-buffer (find-buffer-visiting filename)))
|
||||
(with-current-buffer (or old-buffer (find-file-noselect filename))
|
||||
(with-current-buffer (let ((find-file-visit-truename t))
|
||||
(or old-buffer (find-file-noselect filename)))
|
||||
(unless (eq major-mode 'emacs-lisp-mode)
|
||||
(emacs-lisp-mode))
|
||||
(let ((inhibit-read-only t))
|
||||
|
|
@ -4267,7 +4305,7 @@ This function does not save the buffer."
|
|||
(eq (get symbol 'force-value)
|
||||
'rogue))))
|
||||
(comment (get symbol 'saved-variable-comment)))
|
||||
;; Check REQUESTS for validity.
|
||||
;; Check REQUESTS for validity.
|
||||
(dolist (request requests)
|
||||
(when (and (symbolp request) (not (featurep request)))
|
||||
(message "Unknown requested feature: %s" request)
|
||||
|
|
@ -4449,25 +4487,6 @@ The format is suitable for use with `easy-menu-define'."
|
|||
|
||||
;;; The Custom Mode.
|
||||
|
||||
(defvar custom-mode-map
|
||||
;; This keymap should be dense, but a dense keymap would prevent inheriting
|
||||
;; "\r" bindings from the parent map.
|
||||
;; Actually, this misfeature of dense keymaps was fixed on 2001-11-26.
|
||||
(let ((map (make-keymap)))
|
||||
(set-keymap-parent map widget-keymap)
|
||||
(define-key map [remap self-insert-command] 'Custom-no-edit)
|
||||
(define-key map "\^m" 'Custom-newline)
|
||||
(define-key map " " 'scroll-up)
|
||||
(define-key map "\177" 'scroll-down)
|
||||
(define-key map "\C-c\C-c" 'Custom-set)
|
||||
(define-key map "\C-x\C-s" 'Custom-save)
|
||||
(define-key map "q" 'Custom-buffer-done)
|
||||
(define-key map "u" 'Custom-goto-parent)
|
||||
(define-key map "n" 'widget-forward)
|
||||
(define-key map "p" 'widget-backward)
|
||||
map)
|
||||
"Keymap for `custom-mode'.")
|
||||
|
||||
(defun Custom-no-edit (pos &optional event)
|
||||
"Invoke button at POS, or refuse to allow editing of Custom buffer."
|
||||
(interactive "@d")
|
||||
|
|
|
|||
|
|
@ -185,13 +185,13 @@ otherwise."
|
|||
|
||||
(defcustom describe-char-unicodedata-file nil
|
||||
"Location of Unicode data file.
|
||||
This is the UnicodeData.txt file from the Unicode consortium, used for
|
||||
This is the UnicodeData.txt file from the Unicode Consortium, used for
|
||||
diagnostics. If it is non-nil `describe-char' will print data
|
||||
looked up from it. This facility is mostly of use to people doing
|
||||
multilingual development.
|
||||
|
||||
This is a fairly large file, not typically present on GNU systems. At
|
||||
the time of writing it is at the URL
|
||||
This is a fairly large file, not typically present on GNU systems.
|
||||
At the time of writing it is at the URL
|
||||
`http://www.unicode.org/Public/UNIDATA/UnicodeData.txt'."
|
||||
:group 'mule
|
||||
:version "22.1"
|
||||
|
|
|
|||
|
|
@ -120,8 +120,8 @@ when editing big diffs)."
|
|||
("\C-m" . diff-goto-source)
|
||||
([mouse-2] . diff-goto-source)
|
||||
;; From XEmacs' diff-mode.
|
||||
;; Standard M-w is useful, so don't change M-W.
|
||||
;; ("W" . widen)
|
||||
;; Standard M-w is useful, so don't change M-W.
|
||||
;;("W" . widen)
|
||||
;;("." . diff-goto-source) ;display-buffer
|
||||
;;("f" . diff-goto-source) ;find-file
|
||||
("o" . diff-goto-source) ;other-window
|
||||
|
|
@ -153,6 +153,8 @@ when editing big diffs)."
|
|||
("\C-c\C-s" . diff-split-hunk)
|
||||
("\C-c\C-t" . diff-test-hunk)
|
||||
("\C-c\C-u" . diff-context->unified)
|
||||
;; `d' because it duplicates the context :-( --Stef
|
||||
("\C-c\C-d" . diff-unified->context)
|
||||
("\C-c\C-w" . diff-refine-hunk)
|
||||
("\C-c\C-f" . next-error-follow-minor-mode))
|
||||
"Keymap for `diff-mode'. See also `diff-mode-shared-map'.")
|
||||
|
|
|
|||
|
|
@ -1182,12 +1182,20 @@ Special value `always' suppresses confirmation."
|
|||
dired-create-files-failures)
|
||||
(setq files nil)
|
||||
(dired-log "Copying error for %s:\n%s\n" from err)))))
|
||||
(while files
|
||||
(dired-copy-file-recursive
|
||||
(expand-file-name (car files) from)
|
||||
(expand-file-name (car files) to)
|
||||
ok-flag preserve-time nil recursive)
|
||||
(pop files)))
|
||||
(dolist (file files)
|
||||
(let ((thisfrom (expand-file-name file from))
|
||||
(thisto (expand-file-name file to)))
|
||||
;; Catch errors copying within a directory,
|
||||
;; and report them through the dired log mechanism
|
||||
;; just as our caller will do for the top level files.
|
||||
(condition-case err
|
||||
(dired-copy-file-recursive
|
||||
thisfrom thisto
|
||||
ok-flag preserve-time nil recursive)
|
||||
(file-error
|
||||
(push (dired-make-relative thisfrom)
|
||||
dired-create-files-failures)
|
||||
(dired-log "Copying error for %s:\n%s\n" thisfrom err))))))
|
||||
;; Not a directory.
|
||||
(or top (dired-handle-overwrite to))
|
||||
(condition-case err
|
||||
|
|
@ -1198,11 +1206,7 @@ Special value `always' suppresses confirmation."
|
|||
(file-date-error
|
||||
(push (dired-make-relative from)
|
||||
dired-create-files-failures)
|
||||
(dired-log "Can't set date on %s:\n%s\n" from err))
|
||||
(file-error
|
||||
(push (dired-make-relative from)
|
||||
dired-create-files-failures)
|
||||
(dired-log "Copying error for %s:\n%s\n" from err))))))
|
||||
(dired-log "Can't set date on %s:\n%s\n" from err))))))
|
||||
|
||||
;;;###autoload
|
||||
(defun dired-rename-file (file newname ok-if-already-exists)
|
||||
|
|
|
|||
|
|
@ -791,6 +791,9 @@ wildcards, erases the buffer, and builds the subdir-alist anew
|
|||
(run-hooks 'dired-before-readin-hook)
|
||||
(if (consp buffer-undo-list)
|
||||
(setq buffer-undo-list nil))
|
||||
(make-local-variable 'file-name-coding-system)
|
||||
(setq file-name-coding-system
|
||||
(or coding-system-for-read file-name-coding-system))
|
||||
(let (buffer-read-only
|
||||
;; Don't make undo entries for readin.
|
||||
(buffer-undo-list t))
|
||||
|
|
|
|||
|
|
@ -117,7 +117,7 @@ Valid symbols are `truncation', `wrap', `escape', `control',
|
|||
(or standard-display-table
|
||||
(setq standard-display-table (make-display-table)))
|
||||
(while (<= l h)
|
||||
(aset standard-display-table l (if (or (< l ?\ ) (>= l 127)) (vector l)))
|
||||
(aset standard-display-table l (if (or (< l ?\s) (>= l 127)) (vector l)))
|
||||
(setq l (1+ l))))
|
||||
|
||||
;;;###autoload
|
||||
|
|
@ -126,7 +126,7 @@ Valid symbols are `truncation', `wrap', `escape', `control',
|
|||
(or standard-display-table
|
||||
(setq standard-display-table (make-display-table)))
|
||||
(while (<= l h)
|
||||
(if (and (>= l ?\ ) (char-valid-p l))
|
||||
(if (and (>= l ?\s) (char-valid-p l))
|
||||
(aset standard-display-table l nil))
|
||||
(setq l (1+ l))))
|
||||
|
||||
|
|
|
|||
|
|
@ -73,7 +73,7 @@ Run hooks in `electric-buffer-menu-mode-hook' on entry.
|
|||
(catch 'electric-buffer-menu-select
|
||||
(message "<<< Press Return to bury the buffer list >>>")
|
||||
(if (eq (setq unread-command-events (list (read-event)))
|
||||
?\ )
|
||||
?\s)
|
||||
(progn (setq unread-command-events nil)
|
||||
(throw 'electric-buffer-menu-select nil)))
|
||||
(let ((start-point (point))
|
||||
|
|
|
|||
|
|
@ -1274,9 +1274,7 @@ delimiter regions"))
|
|||
;; Similarly for Windows-*
|
||||
;; In DOS, must synchronize because DOS doesn't have
|
||||
;; asynchronous processes.
|
||||
(condition-case nil
|
||||
(apply 'call-process program nil buffer nil args)
|
||||
(error (format "Cannot execute program %S." program)))
|
||||
(apply 'call-process program nil buffer nil args)
|
||||
;; On other systems, do it asynchronously.
|
||||
(setq proc (get-buffer-process buffer))
|
||||
(if proc (kill-process proc))
|
||||
|
|
@ -1447,14 +1445,12 @@ arguments to `skip-chars-forward'."
|
|||
"Return t if files F1 and F2 have identical contents."
|
||||
(if (and (not (file-directory-p f1))
|
||||
(not (file-directory-p f2)))
|
||||
(condition-case nil
|
||||
(let ((res
|
||||
(apply 'call-process ediff-cmp-program nil nil nil
|
||||
(append ediff-cmp-options (list (expand-file-name f1)
|
||||
(expand-file-name f2))))
|
||||
))
|
||||
(and (numberp res) (eq res 0)))
|
||||
(error (format "Cannot execute program %S." ediff-cmp-program)))
|
||||
(let ((res
|
||||
(apply 'call-process ediff-cmp-program nil nil nil
|
||||
(append ediff-cmp-options (list (expand-file-name f1)
|
||||
(expand-file-name f2))))
|
||||
))
|
||||
(and (numberp res) (eq res 0)))
|
||||
))
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -1401,8 +1401,8 @@ Uses `vc.el' or `rcs.el' depending on `ediff-version-control-package'."
|
|||
'no-dirs)))
|
||||
(find-file file)
|
||||
(if (and (buffer-modified-p)
|
||||
(y-or-n-p (message "Buffer %s is modified. Save buffer? "
|
||||
(buffer-name))))
|
||||
(y-or-n-p (format "Buffer %s is modified. Save buffer? "
|
||||
(buffer-name))))
|
||||
(save-buffer (current-buffer)))
|
||||
(let (rev1 rev2)
|
||||
(setq rev1
|
||||
|
|
|
|||
|
|
@ -197,7 +197,7 @@ BUFFER is put into `default-major-mode' (or `fundamental-mode') when we exit."
|
|||
(if (pos-visible-in-window-p (point-max))
|
||||
(progn (message "%s" (substitute-command-keys "<<< Press Space to bury the help buffer, Press \\[electric-help-retain] to retain it >>>"))
|
||||
(if (equal (setq unread-command-events (list (read-event)))
|
||||
'(?\ ))
|
||||
'(?\s))
|
||||
(progn (setq unread-command-events nil)
|
||||
(throw 'exit t)))))
|
||||
(let (up down both neither
|
||||
|
|
|
|||
|
|
@ -43,6 +43,7 @@ files.")
|
|||
(defconst authors-aliases
|
||||
'(
|
||||
("Andrew Csillag" "Drew Csillag")
|
||||
("Anna M. Bigatti" "Anna Bigatti")
|
||||
("Barry A. Warsaw" "Barry A. Warsaw, Century Computing, Inc."
|
||||
"Barry A. Warsaw, ITB" "Barry Warsaw")
|
||||
("Bj,Av(Brn Torkelsson" "Bjorn Torkelsson")
|
||||
|
|
@ -176,7 +177,7 @@ listed.")
|
|||
Changes to files in this list are not listed.")
|
||||
|
||||
(defconst authors-fixed-entries
|
||||
'(("Richard M. Stallman" :wrote "[The original GNU emacs and numerous files]")
|
||||
'(("Richard M. Stallman" :wrote "[The original GNU Emacs and numerous files]")
|
||||
("Joseph Arceneaux" :wrote "xrdb.c")
|
||||
("Blitz Product Development Corporation" :wrote "ispell.el")
|
||||
("Frank Bresz" :wrote "diff.el")
|
||||
|
|
|
|||
|
|
@ -264,11 +264,12 @@ facilities that have been added more recently."
|
|||
;; this way can never be run in Emacs 18, and may even cause it to crash.")
|
||||
|
||||
(defcustom byte-optimize t
|
||||
"*Enables optimization in the byte compiler.
|
||||
nil means don't do any optimization.
|
||||
t means do all optimizations.
|
||||
`source' means do source-level optimizations only.
|
||||
`byte' means do code-level optimizations only."
|
||||
"*Enable optimization in the byte compiler.
|
||||
Possible values are:
|
||||
nil - no optimization
|
||||
t - all optimizations
|
||||
`source' - source-level optimizations only
|
||||
`byte' - code-level optimizations only"
|
||||
:group 'bytecomp
|
||||
:type '(choice (const :tag "none" nil)
|
||||
(const :tag "all" t)
|
||||
|
|
@ -336,7 +337,7 @@ If it is 'byte, then only byte-level optimizations will be logged."
|
|||
(defcustom byte-compile-warnings t
|
||||
"*List of warnings that the byte-compiler should issue (t for all).
|
||||
|
||||
Elements of the list may be be:
|
||||
Elements of the list may be:
|
||||
|
||||
free-vars references to variables not in the current lexical scope.
|
||||
unresolved calls to unknown functions.
|
||||
|
|
@ -2864,8 +2865,12 @@ That command is designed for interactive use only" fn))
|
|||
|
||||
(defmacro byte-compile-get-constant (const)
|
||||
`(or (if (stringp ,const)
|
||||
(assoc-default ,const byte-compile-constants
|
||||
'equal-including-properties nil)
|
||||
;; In a string constant, treat properties as significant.
|
||||
(let (result)
|
||||
(dolist (elt byte-compile-constants)
|
||||
(if (equal-including-properties (car elt) ,const)
|
||||
(setq result elt)))
|
||||
result)
|
||||
(assq ,const byte-compile-constants))
|
||||
(car (setq byte-compile-constants
|
||||
(cons (list ,const) byte-compile-constants)))))
|
||||
|
|
|
|||
|
|
@ -2155,7 +2155,7 @@ before using the Ispell engine on it."
|
|||
(defun checkdoc-rogue-space-check-engine (&optional start end interact)
|
||||
"Return a message list if there is a line with white space at the end.
|
||||
If `checkdoc-autofix-flag' permits, delete that whitespace instead.
|
||||
If optional arguments START and END are non nil, bound the check to
|
||||
If optional arguments START and END are non-nil, bound the check to
|
||||
this region.
|
||||
Optional argument INTERACT may permit the user to fix problems on the fly."
|
||||
(let ((p (point))
|
||||
|
|
|
|||
|
|
@ -256,7 +256,7 @@ Any pair that has the same PREDICATE is first removed."
|
|||
|
||||
(defun custom-print-install ()
|
||||
"Replace print functions with general, customizable, Lisp versions.
|
||||
The emacs subroutines are saved away, and you can reinstall them
|
||||
The Emacs subroutines are saved away, and you can reinstall them
|
||||
by running `custom-print-uninstall'."
|
||||
(interactive)
|
||||
(mapcar 'cust-print-set-function-cell
|
||||
|
|
@ -271,7 +271,7 @@ by running `custom-print-uninstall'."
|
|||
t)
|
||||
|
||||
(defun custom-print-uninstall ()
|
||||
"Reset print functions to their emacs subroutines."
|
||||
"Reset print functions to their Emacs subroutines."
|
||||
(interactive)
|
||||
(mapcar 'cust-print-set-function-cell
|
||||
'((prin1 cust-print-original-prin1)
|
||||
|
|
@ -375,7 +375,7 @@ The argument used by %s must be a string or a symbol;
|
|||
the argument used by %d, %b, %o, %x or %c must be a number.
|
||||
|
||||
This is the custom-print replacement for the standard `format'. It
|
||||
calls the emacs `format' after first making strings for list,
|
||||
calls the Emacs `format' after first making strings for list,
|
||||
vector, or symbol args. The format specification for such args should
|
||||
be `%s' in any case, so a string argument will also work. The string
|
||||
is generated with `custom-prin1-to-string', which quotes quotable
|
||||
|
|
|
|||
|
|
@ -500,7 +500,7 @@ found, do widen first and then call NARROWFUN with no args after moving."
|
|||
,(concat "^No \\(previous\\|next\\) " (regexp-quote name)))
|
||||
(defun ,next-sym (&optional count)
|
||||
,(format "Go to the next COUNT'th %s." name)
|
||||
(interactive)
|
||||
(interactive "p")
|
||||
(unless count (setq count 1))
|
||||
(if (< count 0) (,prev-sym (- count))
|
||||
(if (looking-at ,re) (setq count (1+ count)))
|
||||
|
|
@ -523,7 +523,7 @@ found, do widen first and then call NARROWFUN with no args after moving."
|
|||
(put ',next-sym 'definition-name ',base)
|
||||
(defun ,prev-sym (&optional count)
|
||||
,(format "Go to the previous COUNT'th %s" (or name base-name))
|
||||
(interactive)
|
||||
(interactive "p")
|
||||
(unless count (setq count 1))
|
||||
(if (< count 0) (,next-sym (- count))
|
||||
(let (was-narrowed)
|
||||
|
|
|
|||
|
|
@ -147,9 +147,9 @@ See the functions `find-function' and `find-variable'."
|
|||
|
||||
(defun find-library-name (library)
|
||||
"Return the absolute file name of the Lisp source of LIBRARY."
|
||||
;; Strip off the extension to take advantage of library suffixes in
|
||||
;; the call to `locate-file'.
|
||||
(if (string-match "\\.el\\(c\\(\\..*\\)?\\)?\\'" library)
|
||||
;; If the library is byte-compiled, try to find a source library by
|
||||
;; the same name.
|
||||
(if (string-match "\\.el\\(c\\(\\..*\\)?\\)\\'" library)
|
||||
(setq library (replace-match "" t t library)))
|
||||
(or (locate-file library
|
||||
(or find-function-source-path load-path)
|
||||
|
|
@ -264,7 +264,7 @@ 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
|
||||
searched for in `find-function-source-path' if non-nil, otherwise
|
||||
in `load-path'."
|
||||
(if (not function)
|
||||
(error "You didn't specify a function"))
|
||||
|
|
@ -357,7 +357,7 @@ places point before the definition.
|
|||
Set mark before moving, if the buffer already existed.
|
||||
|
||||
The library where FUNCTION is defined is searched for in
|
||||
`find-function-source-path', if non nil, otherwise in `load-path'.
|
||||
`find-function-source-path', if non-nil, otherwise in `load-path'.
|
||||
See also `find-function-recenter-line' and `find-function-after-hook'."
|
||||
(interactive (find-function-read))
|
||||
(find-function-do-it function nil 'switch-to-buffer))
|
||||
|
|
@ -387,7 +387,7 @@ 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'."
|
||||
`find-function-source-path', if non-nil, otherwise in `load-path'."
|
||||
(if (not variable)
|
||||
(error "You didn't specify a variable")
|
||||
(let ((library (or file
|
||||
|
|
@ -406,7 +406,7 @@ places point before the definition.
|
|||
Set mark before moving, if the buffer already existed.
|
||||
|
||||
The library where VARIABLE is defined is searched for in
|
||||
`find-function-source-path', if non nil, otherwise in `load-path'.
|
||||
`find-function-source-path', if non-nil, otherwise in `load-path'.
|
||||
See also `find-function-recenter-line' and `find-function-after-hook'."
|
||||
(interactive (find-function-read 'defvar))
|
||||
(find-function-do-it variable 'defvar 'switch-to-buffer))
|
||||
|
|
@ -436,7 +436,7 @@ variable, `defface' for a face. This function does not switch to the
|
|||
buffer nor display it.
|
||||
|
||||
The library where SYMBOL is defined is searched for in FILE or
|
||||
`find-function-source-path', if non nil, otherwise in `load-path'."
|
||||
`find-function-source-path', if non-nil, otherwise in `load-path'."
|
||||
(cond
|
||||
((not symbol)
|
||||
(error "You didn't specify a symbol"))
|
||||
|
|
@ -461,7 +461,7 @@ places point before the definition.
|
|||
Set mark before moving, if the buffer already existed.
|
||||
|
||||
The library where FACE is defined is searched for in
|
||||
`find-function-source-path', if non nil, otherwise in `load-path'.
|
||||
`find-function-source-path', if non-nil, otherwise in `load-path'.
|
||||
See also `find-function-recenter-line' and `find-function-after-hook'."
|
||||
(interactive (find-function-read 'defface))
|
||||
(find-function-do-it face 'defface 'switch-to-buffer))
|
||||
|
|
|
|||
|
|
@ -208,22 +208,64 @@ is non-nil.
|
|||
|
||||
If variable `beginning-of-defun-function' is non-nil, its value
|
||||
is called as a function to find the defun's beginning."
|
||||
(interactive "p")
|
||||
(if beginning-of-defun-function
|
||||
(if (> (setq arg (or arg 1)) 0)
|
||||
(dotimes (i arg)
|
||||
(funcall beginning-of-defun-function))
|
||||
;; Better not call end-of-defun-function directly, in case
|
||||
;; it's not defined.
|
||||
(end-of-defun (- arg)))
|
||||
(and arg (< arg 0) (not (eobp)) (forward-char 1))
|
||||
(interactive "p") ; change this to "P", maybe, if we ever come to pass ARG
|
||||
; to beginning-of-defun-function.
|
||||
(unless arg (setq arg 1)) ; The call might not be interactive.
|
||||
(cond
|
||||
(beginning-of-defun-function
|
||||
(if (> arg 0)
|
||||
(dotimes (i arg)
|
||||
(funcall beginning-of-defun-function))
|
||||
;; Better not call end-of-defun-function directly, in case
|
||||
;; it's not defined.
|
||||
(end-of-defun (- arg))))
|
||||
|
||||
((or defun-prompt-regexp open-paren-in-column-0-is-defun-start)
|
||||
(and (< arg 0) (not (eobp)) (forward-char 1))
|
||||
(and (re-search-backward (if defun-prompt-regexp
|
||||
(concat (if open-paren-in-column-0-is-defun-start
|
||||
"^\\s(\\|" "")
|
||||
"\\(?:" defun-prompt-regexp "\\)\\s(")
|
||||
"^\\s(")
|
||||
nil 'move (or arg 1))
|
||||
(progn (goto-char (1- (match-end 0)))) t)))
|
||||
nil 'move arg)
|
||||
(progn (goto-char (1- (match-end 0)))) t))
|
||||
|
||||
(t
|
||||
;; Column 0 has no significance - so scan forward from BOB to see how
|
||||
;; nested point is, then carry on from there.
|
||||
(let* ((floor (point-min))
|
||||
(ceiling (point-max))
|
||||
(pps-state (let (syntax-begin-function
|
||||
font-lock-beginning-of-syntax-function)
|
||||
(syntax-ppss)))
|
||||
(nesting-depth (nth 0 pps-state)))
|
||||
(save-restriction
|
||||
(widen)
|
||||
;; Get outside of any string or comment.
|
||||
(if (nth 8 pps-state)
|
||||
(goto-char (nth 8 pps-state)))
|
||||
|
||||
(cond
|
||||
((> arg 0)
|
||||
(when (> nesting-depth 0)
|
||||
(up-list (- nesting-depth))
|
||||
(setq arg (1- arg)))
|
||||
;; We're now outside of any defun.
|
||||
(backward-list arg)
|
||||
(if (< (point) floor) (goto-char floor)))
|
||||
|
||||
((< arg 0)
|
||||
(cond
|
||||
((> nesting-depth 0)
|
||||
(up-list nesting-depth)
|
||||
(setq arg (1+ arg)))
|
||||
((not (looking-at "\\s("))
|
||||
;; We're between defuns, and not at the start of one.
|
||||
(setq arg (1+ arg))))
|
||||
(forward-list (- arg))
|
||||
(down-list)
|
||||
(backward-char)
|
||||
(if (> (point) ceiling) (goto-char ceiling)))))))))
|
||||
|
||||
(defvar end-of-defun-function nil
|
||||
"If non-nil, function for function `end-of-defun' to call.
|
||||
|
|
|
|||
|
|
@ -191,7 +191,7 @@ secondary selection instead of the primary selection."
|
|||
"If there is a selection, delete the text it covers, and copy it to
|
||||
both the kill ring and the Clipboard."
|
||||
(interactive)
|
||||
(or (x-selection-owner-p) (error "emacs does not own the primary selection"))
|
||||
(or (x-selection-owner-p) (error "Emacs does not own the primary selection"))
|
||||
(setq last-command nil)
|
||||
(or primary-selection-extent
|
||||
(error "the primary selection is not an extent?"))
|
||||
|
|
@ -205,7 +205,7 @@ both the kill ring and the Clipboard."
|
|||
"If there is a selection, delete the text it covers *without* copying it to
|
||||
the kill ring or the Clipboard."
|
||||
(interactive)
|
||||
(or (x-selection-owner-p) (error "emacs does not own the primary selection"))
|
||||
(or (x-selection-owner-p) (error "Emacs does not own the primary selection"))
|
||||
(setq last-command nil)
|
||||
(or primary-selection-extent
|
||||
(error "the primary selection is not an extent?"))
|
||||
|
|
@ -219,7 +219,7 @@ the kill ring or the Clipboard."
|
|||
"If there is a selection, copy it to both the kill ring and the Clipboard."
|
||||
(interactive)
|
||||
(setq last-command nil)
|
||||
(or (x-selection-owner-p) (error "emacs does not own the primary selection"))
|
||||
(or (x-selection-owner-p) (error "Emacs does not own the primary selection"))
|
||||
(or primary-selection-extent
|
||||
(error "the primary selection is not an extent?"))
|
||||
(save-excursion
|
||||
|
|
|
|||
|
|
@ -161,7 +161,7 @@ Ignores leading comment characters."
|
|||
(set-syntax-table stab)
|
||||
(if arg
|
||||
(insert (pp-to-string (eval exp)))
|
||||
(pp-eval-expression exp))))
|
||||
(pp-eval-expression (eval exp)))))
|
||||
|
||||
;;; Test cases for quote
|
||||
;; (pp-eval-expression ''(quote quote))
|
||||
|
|
|
|||
|
|
@ -253,6 +253,7 @@ Except for Lisp syntax this is the same as `reb-regexp'.")
|
|||
(kill-all-local-variables)
|
||||
(setq major-mode 'reb-mode
|
||||
mode-name "RE Builder")
|
||||
(set (make-local-variable 'blink-matching-paren) nil)
|
||||
(use-local-map reb-mode-map)
|
||||
(reb-mode-common)
|
||||
(run-mode-hooks 'reb-mode-hook))
|
||||
|
|
|
|||
|
|
@ -88,7 +88,7 @@
|
|||
|
||||
;;;###autoload
|
||||
(defun regexp-opt (strings &optional paren)
|
||||
"Return a regexp to match a string in STRINGS.
|
||||
"Return a regexp to match a string in the list STRINGS.
|
||||
Each string should be unique in STRINGS and should not contain any regexps,
|
||||
quoted or not. If optional PAREN is non-nil, ensure that the returned regexp
|
||||
is enclosed by at least one regexp grouping construct.
|
||||
|
|
|
|||
|
|
@ -184,17 +184,17 @@ and that each of these directories contains a file called XXX.el. Then
|
|||
XXX.el in the site-lisp directory is referred to by all of:
|
||||
\(require 'XXX\), \(autoload .... \"XXX\"\), \(load-library \"XXX\"\) etc.
|
||||
|
||||
The first XXX.el file prevents emacs from seeing the second \(unless
|
||||
the second is loaded explicitly via load-file\).
|
||||
The first XXX.el file prevents Emacs from seeing the second \(unless
|
||||
the second is loaded explicitly via `load-file'\).
|
||||
|
||||
When not intended, such shadowings can be the source of subtle
|
||||
problems. For example, the above situation may have arisen because the
|
||||
XXX package was not distributed with versions of emacs prior to
|
||||
19.30. An emacs maintainer downloaded XXX from elsewhere and installed
|
||||
it. Later, XXX was updated and included in the emacs distribution.
|
||||
Unless the emacs maintainer checks for this, the new version of XXX
|
||||
XXX package was not distributed with versions of Emacs prior to
|
||||
19.30. An Emacs maintainer downloaded XXX from elsewhere and installed
|
||||
it. Later, XXX was updated and included in the Emacs distribution.
|
||||
Unless the Emacs maintainer checks for this, the new version of XXX
|
||||
will be hidden behind the old \(which may no longer work with the new
|
||||
emacs version\).
|
||||
Emacs version\).
|
||||
|
||||
This function performs these checks and flags all possible
|
||||
shadowings. Because a .el file may exist without a corresponding .elc
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
;;; emacs-lock.el --- prevents you from exiting emacs if a buffer is locked
|
||||
;;; emacs-lock.el --- prevents you from exiting Emacs if a buffer is locked
|
||||
|
||||
;; Copyright (C) 1994, 1997, 2002, 2003, 2004,
|
||||
;; 2005, 2006 Free Software Foundation, Inc
|
||||
|
|
@ -27,18 +27,18 @@
|
|||
;;; Commentary:
|
||||
|
||||
;; This code sets a buffer-local variable to t if toggle-emacs-lock is run,
|
||||
;; then if the user attempts to exit emacs, the locked buffer name will be
|
||||
;; then if the user attempts to exit Emacs, the locked buffer name will be
|
||||
;; displayed and the exit aborted. This is just a way of protecting
|
||||
;; yourself from yourself. For example, if you have a shell running a big
|
||||
;; program and exiting emacs would abort that program, you may want to lock
|
||||
;; program and exiting Emacs would abort that program, you may want to lock
|
||||
;; that buffer, then if you forget about it after a while, you won't
|
||||
;; accidentally exit emacs. To unlock the buffer, just goto the buffer and
|
||||
;; accidentally exit Emacs. To unlock the buffer, just goto the buffer and
|
||||
;; run toggle-emacs-lock again.
|
||||
|
||||
;;; Code:
|
||||
|
||||
(defvar emacs-lock-from-exiting nil
|
||||
"Whether emacs is locked to prevent exiting. See `check-emacs-lock'.")
|
||||
"Whether Emacs is locked to prevent exiting. See `check-emacs-lock'.")
|
||||
(make-variable-buffer-local 'emacs-lock-from-exiting)
|
||||
|
||||
(defvar emacs-lock-buffer-locked nil
|
||||
|
|
@ -48,34 +48,30 @@
|
|||
|
||||
(defun check-emacs-lock ()
|
||||
"Check if variable `emacs-lock-from-exiting' is t for any buffer.
|
||||
If any t is found, signal error and display the locked buffer name."
|
||||
(let ((buffers (buffer-list)))
|
||||
(save-excursion
|
||||
(while buffers
|
||||
(set-buffer (car buffers))
|
||||
(if emacs-lock-from-exiting
|
||||
(error "Emacs is locked from exit due to buffer: %s" (buffer-name))
|
||||
(setq buffers (cdr buffers)))))))
|
||||
If any locked buffer is found, signal error and display the buffer's name."
|
||||
(save-excursion
|
||||
(dolist (buffer (buffer-list))
|
||||
(set-buffer buffer)
|
||||
(when emacs-lock-from-exiting
|
||||
(error "Emacs is locked from exit due to buffer: %s" (buffer-name))))))
|
||||
|
||||
(defun toggle-emacs-lock ()
|
||||
"Toggle `emacs-lock-from-exiting' between t and nil for the current buffer.
|
||||
"Toggle `emacs-lock-from-exiting' for the current buffer.
|
||||
See `check-emacs-lock'."
|
||||
(interactive)
|
||||
(if emacs-lock-from-exiting
|
||||
(setq emacs-lock-from-exiting nil)
|
||||
(setq emacs-lock-from-exiting t))
|
||||
(setq emacs-lock-from-exiting (not emacs-lock-from-exiting))
|
||||
(if emacs-lock-from-exiting
|
||||
(message "Buffer is now locked")
|
||||
(message "Buffer is now unlocked")))
|
||||
|
||||
(defun emacs-lock-check-buffer-lock ()
|
||||
"Check if variable `emacs-lock-from-exiting' is t for a buffer.
|
||||
If t is found, signal error and display the locked buffer name."
|
||||
(if emacs-lock-from-exiting
|
||||
(error "Buffer `%s' is locked, can't delete it" (buffer-name))))
|
||||
If the buffer is locked, signal error and display its name."
|
||||
(when emacs-lock-from-exiting
|
||||
(error "Buffer `%s' is locked, can't delete it" (buffer-name))))
|
||||
|
||||
; These next defuns make it so if you exit a shell that is locked, the lock
|
||||
; is shut off for that shell so you can exit emacs. Same for telnet.
|
||||
; is shut off for that shell so you can exit Emacs. Same for telnet.
|
||||
; Also, if a shell or a telnet buffer was locked and the process killed,
|
||||
; turn the lock back on again if the process is restarted.
|
||||
|
||||
|
|
|
|||
|
|
@ -202,7 +202,7 @@
|
|||
|
||||
Sometimes, edt-mapper will ignore a key you press, and just continue to
|
||||
prompt for the same key. This can happen when your window manager sucks
|
||||
up the key and doesn't pass it on to emacs, or it could be an emacs bug.
|
||||
up the key and doesn't pass it on to Emacs, or it could be an Emacs bug.
|
||||
Either way, there's nothing that edt-mapper can do about it. You must
|
||||
press RETURN, to skip the current key and continue. Later, you and/or
|
||||
your local system guru can try to figure out why the key is being ignored.
|
||||
|
|
|
|||
|
|
@ -432,7 +432,7 @@ CSI is DEC's name for the sequence <ESC>[.")
|
|||
(let ((map (make-keymap)))
|
||||
(define-key map "\e[" GOLD-CSI-map) ; GOLD-CSI map
|
||||
(define-key map "\eO" GOLD-SS3-map) ; GOLD-SS3 map
|
||||
;;
|
||||
;;
|
||||
(define-key map "\C-A" 'tpu-toggle-overwrite-mode) ; ^A
|
||||
(define-key map "\C-B" 'nil) ; ^B
|
||||
(define-key map "\C-C" 'nil) ; ^C
|
||||
|
|
@ -557,7 +557,7 @@ GOLD is the ASCII 7-bit escape sequence <ESC>OP.")
|
|||
(defvar SS3-map
|
||||
(let ((map (make-sparse-keymap)))
|
||||
(define-key map "P" GOLD-map) ; GOLD map
|
||||
;;
|
||||
;;
|
||||
(define-key map "A" 'tpu-previous-line) ; up
|
||||
(define-key map "B" 'tpu-next-line) ; down
|
||||
(define-key map "C" 'tpu-forward-char) ; right
|
||||
|
|
@ -1141,7 +1141,7 @@ This is useful for inserting control characters."
|
|||
R Toggle rectangular mode for remove and insert
|
||||
S Search and substitute - line mode REPLACE command
|
||||
|
||||
^T Toggle control key bindings between TPU and emacs
|
||||
^T Toggle control key bindings between TPU and Emacs
|
||||
U Undo - undo the last edit
|
||||
W Write - save current buffer
|
||||
X Exit - save all modified buffers and exit
|
||||
|
|
@ -1292,7 +1292,7 @@ kills modified buffers without asking."
|
|||
(kill-buffer (current-buffer)))
|
||||
|
||||
(defun tpu-save-all-buffers-kill-emacs nil
|
||||
"Save all buffers and exit emacs."
|
||||
"Save all buffers and exit Emacs."
|
||||
(interactive)
|
||||
(let ((delete-old-versions t))
|
||||
(save-buffers-kill-emacs t)))
|
||||
|
|
@ -1852,8 +1852,8 @@ A negative argument means replace all occurrences of the search string."
|
|||
(message "Replaced %s occurrence%s." strings (if (not (= 1 strings)) "s" ""))))
|
||||
|
||||
(defun tpu-emacs-replace (&optional dont-ask)
|
||||
"A TPU-edt interface to the emacs replace functions. If TPU-edt is
|
||||
currently in regular expression mode, the emacs regular expression
|
||||
"A TPU-edt interface to the Emacs replace functions. If TPU-edt is
|
||||
currently in regular expression mode, the Emacs regular expression
|
||||
replace functions are used. If an argument is supplied, replacements
|
||||
are performed without asking. Only works in forward direction."
|
||||
(interactive "P")
|
||||
|
|
@ -2285,7 +2285,7 @@ Accepts a prefix argument for the number of tpu-pan-columns to scroll."
|
|||
(setq tpu-control-keys t))
|
||||
|
||||
(defun tpu-reset-control-keys (tpu-style)
|
||||
"Set control keys to TPU or emacs style functions."
|
||||
"Set control keys to TPU or Emacs style functions."
|
||||
(let* ((tpu (and tpu-style (not tpu-control-keys)))
|
||||
(emacs (and (not tpu-style) tpu-control-keys))
|
||||
(doit (or tpu emacs)))
|
||||
|
|
|
|||
|
|
@ -45,7 +45,7 @@
|
|||
;; external variables
|
||||
|
||||
(defvar vip-emacs-local-map nil
|
||||
"Local map used in emacs mode. (Buffer-specific.)")
|
||||
"Local map used in Emacs mode. (Buffer-specific.)")
|
||||
|
||||
(defvar vip-insert-local-map nil
|
||||
"Local map used in insert command mode. (Buffer-specific.)")
|
||||
|
|
@ -447,7 +447,7 @@ Type `n' to quit this window for now.\n")
|
|||
(vip-change-mode 'insert-mode))
|
||||
|
||||
(defun vip-change-mode-to-emacs ()
|
||||
"Change mode to emacs mode."
|
||||
"Change mode to Emacs mode."
|
||||
(interactive)
|
||||
(vip-change-mode 'emacs-mode))
|
||||
|
||||
|
|
|
|||
|
|
@ -438,7 +438,7 @@ delete the text being replaced, as in standard Vi."
|
|||
;; confused in some cases. So, this var is nulled for now.
|
||||
;; (defcustom viper-emacs-state-cursor-color "Magenta"
|
||||
(defcustom viper-emacs-state-cursor-color nil
|
||||
"Cursor color when Viper is in emacs state."
|
||||
"Cursor color when Viper is in Emacs state."
|
||||
:type 'string
|
||||
:group 'viper)
|
||||
(if (fboundp 'make-variable-frame-local)
|
||||
|
|
|
|||
|
|
@ -144,7 +144,7 @@ viper-insert-basic-map. Not recommended, except for novice users.")
|
|||
"Auxiliary map for global user-defined bindings in Emacs state.")
|
||||
|
||||
(defvar viper-emacs-kbd-map (make-sparse-keymap)
|
||||
"This keymap keeps Vi-style kbd macros for emacs mode.")
|
||||
"This keymap keeps Vi-style kbd macros for Emacs mode.")
|
||||
|
||||
(viper-deflocalvar viper-emacs-local-user-map (make-sparse-keymap)
|
||||
"Auxiliary map for local user-defined bindings in Emacs state.")
|
||||
|
|
@ -160,10 +160,10 @@ viper-insert-basic-map. Not recommended, except for novice users.")
|
|||
|
||||
;; Some important keys used in viper
|
||||
(defcustom viper-toggle-key [(control ?z)] ; "\C-z"
|
||||
"The key used to change states from emacs to Vi and back.
|
||||
"The key used to change states from Emacs to Vi and back.
|
||||
In insert mode, this key also functions as Meta.
|
||||
|
||||
Enter as a sexp. Examples: \"\\C-z\", [(control ?z)]."
|
||||
Enter as a sexp. Examples: \"\\C-z\", [(control ?z)]."
|
||||
:type 'sexp
|
||||
:group 'viper
|
||||
:set (lambda (symbol value)
|
||||
|
|
|
|||
|
|
@ -359,7 +359,7 @@ user decide when to invoke Viper in a major mode."
|
|||
(defcustom viper-mode (cond (noninteractive nil)
|
||||
(t 'ask))
|
||||
"To Viperize or not to Viperize.
|
||||
If t, viperize emacs. If nil -- don't. If `ask', ask the user.
|
||||
If t, viperize Emacs. If nil -- don't. If `ask', ask the user.
|
||||
This variable is used primatily when Viper is being loaded.
|
||||
|
||||
Must be set in `~/.emacs' before Viper is loaded.
|
||||
|
|
@ -502,10 +502,10 @@ unless it is coming up in a wrong Viper state."
|
|||
The list has the structure: ((mode viper-state keymap) (mode viper-state
|
||||
keymap) ...). If `mode' is on the list, the `kemap' will be made active (on
|
||||
the minor-mode-map-alist) in the specified viper state.
|
||||
If you change this list, have to restart emacs for the change to take effect.
|
||||
However, if you did the change through the customization widget, then emacs
|
||||
If you change this list, have to restart Emacs for the change to take effect.
|
||||
However, if you did the change through the customization widget, then Emacs
|
||||
needs to be restarted only if you deleted a triple mode-state-keymap from the
|
||||
list. No need to restart emacs in case of insertion or modification of an
|
||||
list. No need to restart Emacs in case of insertion or modification of an
|
||||
existing triple."
|
||||
:type '(repeat
|
||||
(list symbol
|
||||
|
|
@ -891,7 +891,7 @@ It also can't undo some Viper settings."
|
|||
(eval-after-load
|
||||
"passwd"
|
||||
'(defadvice read-passwd-1 (before viper-passwd-ad activate)
|
||||
"Switch to emacs state while reading password."
|
||||
"Switch to Emacs state while reading password."
|
||||
(viper-change-state-to-emacs)))
|
||||
|
||||
(defadvice self-insert-command (around viper-self-insert-ad activate)
|
||||
|
|
@ -939,7 +939,7 @@ It also can't undo some Viper settings."
|
|||
(eval-after-load
|
||||
"rmailedit"
|
||||
'(defadvice rmail-cease-edit (after viper-rmail-advice activate)
|
||||
"Switch to emacs state when done editing message."
|
||||
"Switch to Emacs state when done editing message."
|
||||
(viper-change-state-to-emacs)))
|
||||
;; In case RMAIL was loaded before Viper.
|
||||
(defadvice rmail-cease-edit (after viper-rmail-advice activate)
|
||||
|
|
@ -1121,7 +1121,7 @@ It also can't undo some Viper settings."
|
|||
(save-window-excursion
|
||||
(with-output-to-temp-buffer " *viper-info*"
|
||||
(princ "
|
||||
You have loaded Viper, and are about to Viperize your emacs!
|
||||
You have loaded Viper, and are about to Viperize your Emacs!
|
||||
|
||||
Viper is a Package for Emacs Rebels and a venomous VI PERil,
|
||||
|
||||
|
|
|
|||
|
|
@ -1,8 +1,228 @@
|
|||
2006-11-28 Juanma Barranquero <lekktu@gmail.com>
|
||||
|
||||
* erc.el (erc-cmd-BANLIST, erc-cmd-MASSUNBAN): Simplify.
|
||||
(erc-prompt-for-channel-key, erc-ignore-reply-list, erc-send-post-hook)
|
||||
(erc-active-buffer, erc-join-buffer, erc-frame-alist, erc-with-buffer)
|
||||
(erc-modules, erc-display-message-highlight, erc-process-input-line)
|
||||
(erc-cmd-HELP, erc-server-hooks, erc-echo-notice-in-user-buffers)
|
||||
(erc-format-my-nick, erc-echo-notice-in-user-and-target-buffers)
|
||||
(erc-echo-notice-in-first-user-buffer, erc-connection-established)
|
||||
(erc-update-user-nick, erc-update-channel-member, erc-highlight-notice)
|
||||
(erc-command-symbol, erc-add-query, erc-process-script-line)
|
||||
(erc-determine-parameters, erc-client-info, erc-popup-input-buffer):
|
||||
(erc-script-echo): Fix typos in docstrings.
|
||||
(erc-channel-user-op-p, erc-channel-user-voice-p, erc-startup-file-list)
|
||||
(define-erc-module, erc-once-with-server-event)
|
||||
(erc-once-with-server-event-global, erc-debug-irc-protocol)
|
||||
(erc-log-irc-protocol, erc-cmd-LOAD, erc-update-user)
|
||||
(erc-update-current-channel-member, erc-load-script):
|
||||
(erc-mode-line-away-status-format): Doc fixes.
|
||||
|
||||
2006-11-24 Juanma Barranquero <lekktu@gmail.com>
|
||||
|
||||
* erc.el (erc-after-connect, erc-open-ssl-stream)
|
||||
(erc-display-line-1, erc-display-line):
|
||||
* erc-backend.el (005): Fix space/tab mixup in docstrings.
|
||||
|
||||
2006-11-20 Michael Olson <mwolson@gnu.org>
|
||||
|
||||
* erc.el (erc-version-string): Call this Version 5.2 stable
|
||||
pre-release, since it diverges slightly from our 5.2 branch, in
|
||||
that unstable features are not included.
|
||||
(erc-update-modules): Display better error message when module not
|
||||
found.
|
||||
|
||||
2006-11-12 Michael Olson <mwolson@gnu.org>
|
||||
|
||||
* erc-log.el: Save all log buffers when Emacs exits, in case
|
||||
someone ignores the warning about open processes. Remove the
|
||||
advice code in the commentary.
|
||||
(erc-save-query-buffers): Docfix.
|
||||
(erc-log-save-all-buffers): New function that saves all ERC
|
||||
buffers to logs.
|
||||
(erc-current-logfile): Fix bug in filename selection, where the
|
||||
current buffer was erroneously being preferred over the given
|
||||
buffer.
|
||||
|
||||
2006-11-08 Michael Olson <mwolson@gnu.org>
|
||||
|
||||
* erc.el (erc-string-to-port): Avoid error when a numerical port
|
||||
is passed. Thanks to Zekeriya KOÇ for the report.
|
||||
|
||||
2006-11-08 Łukasz Demianiuk <ldemianiuk@gmail.com> (tiny change)
|
||||
|
||||
* erc.el (erc-header-line): Fix typo.
|
||||
|
||||
2006-11-06 Juanma Barranquero <lekktu@gmail.com>
|
||||
|
||||
* erc-dcc.el (erc-dcc-send-file): Fix typo in error message.
|
||||
|
||||
* erc.el (read-passwd):
|
||||
* erc-autoaway.el (erc-autoaway-reestablish-idletimer):
|
||||
* erc-truncate.el (truncate): Fix typo in docstring.
|
||||
|
||||
2006-10-21 Michael Olson <mwolson@gnu.org>
|
||||
|
||||
* erc.el (erc-iswitchb): Fix bug when hitting C-c C-b without
|
||||
first loading iswitchb. Thanks to Leo for the report.
|
||||
|
||||
2006-10-10 Michael Olson <mwolson@gnu.org>
|
||||
|
||||
* erc.el (erc-default-port): Make the default be 6667 instead of
|
||||
ircd. since Mac OS X apparently has problems with looking up that
|
||||
port name.
|
||||
|
||||
* erc-backend.el (353): Receive names after displaying the initial
|
||||
message, instead of before.
|
||||
|
||||
2006-10-05 Diane Murray <disumu@x3y2z1.net>
|
||||
|
||||
* erc.el (erc-my-nick-face): New face.
|
||||
(erc): Use FULL-NAME argument, not `erc-user-full-name'. This
|
||||
fixes a bug where the :full-name argument passed to the function
|
||||
was not respected.
|
||||
(erc-format-my-nick): Use `erc-my-nick-face'. This should help
|
||||
make it easier to find messages you sent in conversations when
|
||||
`erc-show-my-nick' is non-nil.
|
||||
(erc-compute-server): Doc fix.
|
||||
|
||||
2006-09-11 Michael Olson <mwolson@gnu.org>
|
||||
|
||||
* erc-nicklist.el (erc-nicklist-insert-contents): Add missing
|
||||
parenthesis. Thanks to Stephan Stahl for the report.
|
||||
|
||||
2006-09-10 Eric Hanchrow <offby1@blarg.net>
|
||||
|
||||
* erc.el (erc-cmd-IGNORE): Prompt user if this might be a regexp
|
||||
instead of a single user.
|
||||
|
||||
2006-09-10 Michael Olson <mwolson@gnu.org>
|
||||
|
||||
* erc.el (erc-generate-new-buffer-name): If this is a server
|
||||
buffer and a process exists already, create a new buffer.
|
||||
(erc-open): If the IRC session was continued, restore the old
|
||||
point. Thanks to Stephan Stahl for the report.
|
||||
(erc-member-ignore-case): Coding style tweak.
|
||||
(erc-cmd-UNIGNORE): Quote the user before comparison. If we don't
|
||||
find the user listed verbatim, try to match them against the list
|
||||
using string-match. In this case, prompt as to whether the regexp
|
||||
should be removed.
|
||||
(erc-ignored-user-p): Remove CL-ism.
|
||||
|
||||
* erc-autoaway.el (erc-autoaway-possibly-set-away): Check to see
|
||||
whether we are already away.
|
||||
|
||||
* erc-menu.el: Fix potential compiler warning.
|
||||
|
||||
2006-09-07 Diane Murray <disumu@x3y2z1.net>
|
||||
|
||||
* erc.el: Updated Commentary and URL.
|
||||
(erc-iswitchb, erc-display-line, erc-set-modes, erc-update-modes)
|
||||
(erc-arrange-session-in-multiple-windows): No need to check if
|
||||
`erc-server-process' is bound.
|
||||
(erc-server-buffer-live-p): Doc fix.
|
||||
(erc-part-from-channel): Don't use any initial contents at prompt.
|
||||
(erc-format-nick, erc-format-@nick): Doc fix. Use `when'.
|
||||
(s367): Fixed to support only banmask and channel which is the
|
||||
standard. Also, there's no reason to add a message to each banned
|
||||
user entry trying to persuade the user to use /banlist instead of
|
||||
/mode #channel +b. That part of the message was a little
|
||||
confusing, anyways.
|
||||
(s367-set-by): New catalog entry. The user who set the ban and
|
||||
the time of ban seem to be specific to only certain servers such
|
||||
as freenode.
|
||||
|
||||
* erc-autoaway.el (erc-autoaway-idletimer): Doc fix.
|
||||
|
||||
* erc-backend.el (erc-server-process-alive): No need to check if
|
||||
`erc-server-process' is bound.
|
||||
(367): Use s367 or s367-set-by where appropriate.
|
||||
|
||||
* erc-compat.el: Fixed URL.
|
||||
|
||||
* erc-dcc.el: Updated copyright years. Added Usage section.
|
||||
Changed supported Emacs version number from 21.3.50 to 22 in
|
||||
Commentary.
|
||||
|
||||
* erc-ibuffer.el (erc-server-name, erc-target, erc-away): No need
|
||||
to check if `erc-server-process' is bound.
|
||||
|
||||
* erc-nicklist.el: Added to the Commentary section an explanation
|
||||
that `erc-nicklist-quit' should be called from within the nicklist
|
||||
buffer. Set file coding to utf-8 so a contributor's name is
|
||||
displayed correctly.
|
||||
(erc-nicklist-icons-directory): Use customize type directory
|
||||
instead of string.
|
||||
(erc-nicklist-insert-contents): Set bbdb-nick to an empty string
|
||||
if it wasn't found. This fixes a bug where an error would occur
|
||||
when using `string=' on bbdb-nick if it was nil.
|
||||
|
||||
* erc-replace.el: Removed URL from file information since it
|
||||
doesn't exist.
|
||||
|
||||
* erc-sound.el: Updated copyright years. Fixed Commentary and
|
||||
added Usage section.
|
||||
(define-erc-module): Add and remove `erc-ctcp-query-SOUND' to
|
||||
`erc-ctcp-query-SOUND-hook' here. Removed the keybinding
|
||||
definitions.
|
||||
(erc-play-sound, erc-default-sound, erc-cmd-SOUND)
|
||||
(erc-ctcp-query-SOUND): Doc fix.
|
||||
(erc-play-command): Removed, not necessary anymore.
|
||||
(erc-ctcp-query-SOUND-hook): Set to nil as default. Moved up
|
||||
higher in code, added docstring.
|
||||
(erc-play-sound): Use `play-sound-file'. It exists in GNU Emacs
|
||||
as well since version 21 or earlier. Removed commented-out older
|
||||
version of function.
|
||||
|
||||
* NEWS: Fixed formatting, added channel tracking change.
|
||||
|
||||
2006-09-03 Diane Murray <disumu@x3y2z1.net>
|
||||
|
||||
* erc.el: M-x erc RET can now be used to start ERC.
|
||||
(erc-open): Renamed from `erc'.
|
||||
(erc-before-connect): Change erc-select to erc.
|
||||
(erc): Renamed from `erc-select'. Use `erc-open'.
|
||||
(erc-select): Defined as alias of `erc'.
|
||||
(erc-ssl): Renamed from `erc-select-ssl'. Use `erc'.
|
||||
(erc-select-ssl): Defined as alias of `erc-ssl'.
|
||||
(erc-cmd-SERVER): Use `erc'.
|
||||
(erc-query, erc-handle-irc-url): Use `erc-open'.
|
||||
|
||||
* erc-backend.el (erc-process-sentinel-1, JOIN): Use `erc-open'.
|
||||
|
||||
* erc-menu.el (erc-menu-definition): Use `erc'.
|
||||
|
||||
* erc-networks.el: Updated copyright years.
|
||||
(erc-server-select): Use keyword arguments when calling `erc'.
|
||||
|
||||
* erc.texi (Getting Started, Connecting): Changed erc-select to
|
||||
erc.
|
||||
|
||||
* NEWS: Added note about these changes.
|
||||
|
||||
2006-08-21 Diane Murray <disumu@x3y2z1.net>
|
||||
|
||||
* erc-track.el (erc-track-mode-line-mouse-face): New variable.
|
||||
(erc-make-mode-line-buffer-name): Add help-echo and mouse-face
|
||||
properties to channel name.
|
||||
|
||||
2006-08-14 Diane Murray <disumu@x3y2z1.net>
|
||||
|
||||
* erc-menu.el: Updated copyright years. Removed EmacsWiki URL.
|
||||
(erc-menu-definition): Name the menu "ERC" instead of "IRC" to
|
||||
avoid confusion with rcirc and other clients.
|
||||
|
||||
2006-08-13 Romain Francoise <romain@orebokech.com>
|
||||
|
||||
* erc-match.el (erc-log-matches-make-buffer): End `y-or-n-p'
|
||||
prompt with a space.
|
||||
|
||||
2006-08-11 Michael Olson <mwolson@gnu.org>
|
||||
|
||||
* erc-fill.el (erc-fill): Skip any initial empty lines so that we
|
||||
avoid errors when inserting disconnect messages and other messages
|
||||
that begin with newlines.
|
||||
|
||||
2006-08-07 Michael Olson <mwolson@gnu.org>
|
||||
|
||||
* erc-backend.el (erc-process-sentinel-1): Use erc-display-message
|
||||
|
|
@ -20,6 +240,9 @@
|
|||
|
||||
2006-08-06 Michael Olson <mwolson@gnu.org>
|
||||
|
||||
* erc-backend.el (erc-server-send-queue): Update from Circe
|
||||
version of this function.
|
||||
|
||||
* erc.el (erc-arrange-session-in-multiple-windows): Fix bug with
|
||||
multi-tty Emacs.
|
||||
(erc-select-startup-file): Fix bug introduced by recent change.
|
||||
|
|
@ -256,7 +479,7 @@
|
|||
|
||||
2006-05-01 Edward O'Connor <ted@oconnor.cx>
|
||||
|
||||
* erc-goodies.el: (erc-handle-irc-url): New function, suitable as
|
||||
* 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>
|
||||
|
|
@ -360,14 +583,14 @@
|
|||
|
||||
2006-02-12 Michael Olson <mwolson@gnu.org>
|
||||
|
||||
* erc-autoaway.el, erc-dcc.el, erc-ezbounce.el, erc-fill.el,
|
||||
erc-goodies.el, erc-hecomplete.el, erc-ibuffer.el, erc-identd.el,
|
||||
erc-imenu.el, erc-join.el, erc-lang.el, erc-list.el, erc-log.el,
|
||||
erc-match.el, erc-menu.el, erc-netsplit.el, erc-networks.el,
|
||||
erc-notify.el, erc-page.el, erc-pcomplete.el, erc-replace.el,
|
||||
erc-ring.el, erc-services.el, erc-sound.el, erc-speedbar.el,
|
||||
erc-spelling.el, erc-track.el, erc-truncate.el, erc-xdcc.el: Add
|
||||
2006 to copyright years, to comply with the changed guidelines.
|
||||
* erc-autoaway.el, erc-dcc.el, erc-ezbounce.el, erc-fill.el
|
||||
* erc-goodies.el, erc-hecomplete.el, erc-ibuffer.el, erc-identd.el
|
||||
* erc-imenu.el, erc-join.el, erc-lang.el, erc-list.el, erc-log.el
|
||||
* erc-match.el, erc-menu.el, erc-netsplit.el, erc-networks.el
|
||||
* erc-notify.el, erc-page.el, erc-pcomplete.el, erc-replace.el
|
||||
* erc-ring.el, erc-services.el, erc-sound.el, erc-speedbar.el
|
||||
* erc-spelling.el, erc-track.el, erc-truncate.el, erc-xdcc.el:
|
||||
Add 2006 to copyright years, to comply with the changed guidelines.
|
||||
|
||||
2006-02-11 Michael Olson <mwolson@gnu.org>
|
||||
|
||||
|
|
@ -528,7 +751,7 @@
|
|||
|
||||
2006-01-29 Edward O'Connor <ted@oconnor.cx>
|
||||
|
||||
* erc-viper.el: Remove. Now that ERC is included in Emacs, these
|
||||
* erc-viper.el: Remove. Now that ERC is included in Emacs, these
|
||||
work-arounds live in Viper itself.
|
||||
|
||||
2006-01-28 Michael Olson <mwolson@gnu.org>
|
||||
|
|
@ -669,10 +892,10 @@
|
|||
2006-01-22 Johan Bockgård <bojohan@users.sourceforge.net>
|
||||
|
||||
* erc-track.el: Use `(eval-when-compile (require 'cl))' (for
|
||||
`case'). Doc fixes.
|
||||
`case'). Doc fixes.
|
||||
(erc-find-parsed-property): Simplify.
|
||||
(erc-track-get-active-buffer): Fix logic. Simplify.
|
||||
(erc-track-switch-buffer): Remove unused variable `dir'. Simplify.
|
||||
(erc-track-get-active-buffer): Fix logic. Simplify.
|
||||
(erc-track-switch-buffer): Remove unused variable `dir'. Simplify.
|
||||
|
||||
* erc-speak.el: Doc fixes.
|
||||
(erc-speak-region): `propertize' --> `erc-propertize'.
|
||||
|
|
@ -863,6 +1086,7 @@ See ChangeLog.05 for earlier changes.
|
|||
|
||||
;; Local Variables:
|
||||
;; coding: utf-8
|
||||
;; add-log-time-zone-rule: t
|
||||
;; End:
|
||||
|
||||
;; arch-tag: 865a75f6-2bcb-46df-bf0c-b514dadf688a
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@ yourself back when you type something."
|
|||
|
||||
(defvar erc-autoaway-idletimer nil
|
||||
"The Emacs idletimer.
|
||||
This is only used when `erc-autoaway-use-emacs-idle' is non-nil.")
|
||||
This is only used when `erc-autoaway-idle-method' is set to 'emacs.")
|
||||
|
||||
;;;###autoload (autoload 'erc-autoaway-mode "erc-autoaway")
|
||||
(define-erc-module autoaway nil
|
||||
|
|
@ -136,7 +136,7 @@ See `erc-auto-discard-away'."
|
|||
(eval-when-compile (defvar erc-autoaway-idle-seconds))
|
||||
|
||||
(defun erc-autoaway-reestablish-idletimer ()
|
||||
"Reestablish the emacs idletimer.
|
||||
"Reestablish the Emacs idletimer.
|
||||
If `erc-autoaway-idle-method' is 'emacs, you must call this
|
||||
function each time you change `erc-autoaway-idle-seconds'."
|
||||
(interactive)
|
||||
|
|
@ -206,6 +206,7 @@ exceeds `erc-autoaway-idle-seconds'."
|
|||
;; this function is called from `erc-timer-hook', which is called
|
||||
;; whenever the server sends something to the client.
|
||||
(when (and erc-auto-set-away
|
||||
(not erc-autoaway-caused-away)
|
||||
(not (erc-away-p)))
|
||||
(let ((idle-time (erc-time-diff erc-autoaway-last-sent-time
|
||||
current-time)))
|
||||
|
|
|
|||
|
|
@ -416,7 +416,7 @@ Currently this is called by `erc-send-input'."
|
|||
|
||||
(defun erc-server-process-alive ()
|
||||
"Return non-nil when `erc-server-process' is open or running."
|
||||
(and (boundp 'erc-server-process)
|
||||
(and erc-server-process
|
||||
(processp erc-server-process)
|
||||
(memq (process-status erc-server-process) '(run open))))
|
||||
|
||||
|
|
@ -512,8 +512,8 @@ action."
|
|||
(not (string-match "^failed with code 111" event)))
|
||||
;; Yuck, this should perhaps funcall
|
||||
;; erc-server-reconnect-function with no args
|
||||
(erc erc-session-server erc-session-port erc-server-current-nick
|
||||
erc-session-user-full-name t erc-session-password)
|
||||
(erc-open erc-session-server erc-session-port erc-server-current-nick
|
||||
erc-session-user-full-name t erc-session-password)
|
||||
;; terminate, do not reconnect
|
||||
(erc-display-message nil 'error (current-buffer)
|
||||
'terminated ?e event))))
|
||||
|
|
@ -673,7 +673,8 @@ protection algorithm."
|
|||
(error nil)))))
|
||||
(when erc-server-flood-queue
|
||||
(setq erc-server-flood-timer
|
||||
(run-at-time 2 nil #'erc-server-send-queue buffer))))))
|
||||
(run-at-time (+ 0.2 erc-server-flood-penalty)
|
||||
nil #'erc-server-send-queue buffer))))))
|
||||
|
||||
(defun erc-message (message-command line &optional force)
|
||||
"Send LINE to the server as a privmsg or a notice.
|
||||
|
|
@ -1038,11 +1039,11 @@ add things to `%s' instead."
|
|||
(let* ((str (cond
|
||||
;; If I have joined a channel
|
||||
((erc-current-nick-p nick)
|
||||
(setq buffer (erc erc-session-server erc-session-port
|
||||
nick erc-session-user-full-name
|
||||
nil nil
|
||||
erc-default-recipients chnl
|
||||
erc-server-process))
|
||||
(setq buffer (erc-open erc-session-server erc-session-port
|
||||
nick erc-session-user-full-name
|
||||
nil nil
|
||||
erc-default-recipients chnl
|
||||
erc-server-process))
|
||||
(when buffer
|
||||
(set-buffer buffer)
|
||||
(erc-add-default-channel chnl)
|
||||
|
|
@ -1225,7 +1226,7 @@ add things to `%s' instead."
|
|||
(when buffer
|
||||
(with-current-buffer buffer
|
||||
;; update the chat partner info. Add to the list if private
|
||||
;; message. We will accumulate private identities indefinitely
|
||||
;; message. We will accumulate private identities indefinitely
|
||||
;; at this point.
|
||||
(erc-update-channel-member (if privp nick tgt) nick nick
|
||||
privp nil nil host login nil nil t)
|
||||
|
|
@ -1340,7 +1341,7 @@ add things to `%s' instead."
|
|||
According to RFC 2812, suggests alternate servers on the network.
|
||||
Many servers, however, use this code to show which parameters they have set,
|
||||
for example, the network identifier, maximum allowed topic length, whether
|
||||
certain commands are accepted and more. See documentation for
|
||||
certain commands are accepted and more. See documentation for
|
||||
`erc-server-parameters' for more information on the parameters sent.
|
||||
|
||||
A server may send more than one 005 message."
|
||||
|
|
@ -1583,11 +1584,11 @@ See `erc-display-server-message'." nil
|
|||
"NAMES notice." nil
|
||||
(let ((channel (third (erc-response.command-args parsed)))
|
||||
(users (erc-response.contents parsed)))
|
||||
(erc-with-buffer (channel proc)
|
||||
(erc-channel-receive-names users))
|
||||
(erc-display-message parsed 'notice (or (erc-get-buffer channel proc)
|
||||
'active)
|
||||
's353 ?c channel ?u users)))
|
||||
's353 ?c channel ?u users)
|
||||
(erc-with-buffer (channel proc)
|
||||
(erc-channel-receive-names users))))
|
||||
|
||||
(define-erc-response-handler (366)
|
||||
"End of NAMES." nil
|
||||
|
|
@ -1598,11 +1599,16 @@ See `erc-display-server-message'." nil
|
|||
"Channel ban list entries" nil
|
||||
(multiple-value-bind (channel banmask setter time)
|
||||
(cdr (erc-response.command-args parsed))
|
||||
(erc-display-message parsed 'notice 'active 's367
|
||||
?c channel
|
||||
?b banmask
|
||||
?s setter
|
||||
?t time)))
|
||||
;; setter and time are not standard
|
||||
(if setter
|
||||
(erc-display-message parsed 'notice 'active 's367-set-by
|
||||
?c channel
|
||||
?b banmask
|
||||
?s setter
|
||||
?t (or time ""))
|
||||
(erc-display-message parsed 'notice 'active 's367
|
||||
?c channel
|
||||
?b banmask))))
|
||||
|
||||
(define-erc-response-handler (368)
|
||||
"End of channel ban list" nil
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
;; Copyright (C) 2002, 2003, 2005, 2006 Free Software Foundation, Inc.
|
||||
|
||||
;; Author: Alex Schroeder <alex@gnu.org>
|
||||
;; URL: http://www.emacswiki.org/cgi-bin/wiki.pl?EmacsIRCClient
|
||||
;; URL: http://www.emacswiki.org/cgi-bin/wiki/ERC
|
||||
|
||||
;; This file is part of GNU Emacs.
|
||||
|
||||
|
|
|
|||
|
|
@ -35,7 +35,9 @@
|
|||
;; rewritten to support the way how ERC operates. Server socket support
|
||||
;; was added for DCC CHAT and SEND afterwards. Thanks
|
||||
;; to the original authors for their work.
|
||||
;;
|
||||
|
||||
;;; Usage:
|
||||
|
||||
;; To use this file, put
|
||||
;; (require 'erc-dcc)
|
||||
;; in your .emacs.
|
||||
|
|
@ -49,7 +51,7 @@
|
|||
;; /dcc send nick file - Offer DCC SEND to nick
|
||||
;;
|
||||
;; Please note that offering DCC connections (offering chats and sending
|
||||
;; files) is only supported with Emacs 21.3.50 (CVS).
|
||||
;; files) is only supported with Emacs 22.
|
||||
|
||||
;;; Code:
|
||||
|
||||
|
|
@ -808,7 +810,7 @@ other client."
|
|||
(erc-ip-to-decimal (nth 0 contact))
|
||||
(nth 1 contact)
|
||||
size)))
|
||||
(error "`make-network-process' not supported by your emacs.")))
|
||||
(error "`make-network-process' not supported by your Emacs")))
|
||||
|
||||
;;; GET handling
|
||||
|
||||
|
|
|
|||
|
|
@ -122,7 +122,15 @@ characters. Set to nil to disable."
|
|||
You can put this on `erc-insert-modify-hook' and/or `erc-send-modify-hook'."
|
||||
(unless (erc-string-invisible-p (buffer-substring (point-min) (point-max)))
|
||||
(when erc-fill-function
|
||||
(funcall erc-fill-function))))
|
||||
;; skip initial empty lines
|
||||
(goto-char (point-min))
|
||||
(save-match-data
|
||||
(while (and (looking-at "[ \t\n]*$")
|
||||
(= (forward-line 1) 0))))
|
||||
(unless (eobp)
|
||||
(save-restriction
|
||||
(narrow-to-region (point) (point-max))
|
||||
(funcall erc-fill-function))))))
|
||||
|
||||
(defun erc-fill-static ()
|
||||
"Fills a text such that messages start at column `erc-fill-static-center'."
|
||||
|
|
|
|||
|
|
@ -91,14 +91,14 @@
|
|||
" "))
|
||||
|
||||
(define-ibuffer-column erc-server-name (:name "Server")
|
||||
(if (and (boundp 'erc-server-process) (processp erc-server-process))
|
||||
(if (and erc-server-process (processp erc-server-process))
|
||||
(with-current-buffer (process-buffer erc-server-process)
|
||||
(or erc-server-announced-name erc-session-server))
|
||||
""))
|
||||
|
||||
(define-ibuffer-column erc-target (:name "Target")
|
||||
(if (eq major-mode 'erc-mode)
|
||||
(cond ((and (boundp 'erc-server-process) (processp erc-server-process)
|
||||
(cond ((and erc-server-process (processp erc-server-process)
|
||||
(eq (current-buffer) (process-buffer erc-server-process)))
|
||||
(concat "Server " erc-session-server ":"
|
||||
(erc-port-to-string erc-session-port)))
|
||||
|
|
@ -125,7 +125,7 @@
|
|||
""))
|
||||
|
||||
(define-ibuffer-column erc-away (:name "A")
|
||||
(if (and (boundp 'erc-server-process)
|
||||
(if (and erc-server-process
|
||||
(processp erc-server-process)
|
||||
(with-current-buffer (process-buffer erc-server-process)
|
||||
erc-away))
|
||||
|
|
|
|||
|
|
@ -43,14 +43,6 @@
|
|||
;;
|
||||
;; (require 'erc-log)
|
||||
;;
|
||||
;; You may optionally want the following code, to save all ERC buffers
|
||||
;; without confirmation when exiting emacs:
|
||||
;;
|
||||
;; (defadvice save-buffers-kill-emacs (before save-logs (&rest args) activate)
|
||||
;; (save-some-buffers t (lambda ()
|
||||
;; (when (and (eq major-mode 'erc-mode)
|
||||
;; (not (null buffer-file-name))) t))))
|
||||
;;
|
||||
;; If you only want to save logs for some buffers, customise the
|
||||
;; variable `erc-enable-logging'.
|
||||
|
||||
|
|
@ -213,6 +205,7 @@ also be a predicate function. To only log when you are not set away, use:
|
|||
(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 'kill-emacs-hook 'erc-log-save-all-buffers)
|
||||
(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
|
||||
|
|
@ -225,6 +218,7 @@ also be a predicate function. To only log when you are not set away, use:
|
|||
(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 'kill-emacs-hook 'erc-log-save-all-buffers)
|
||||
(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)
|
||||
|
|
@ -263,7 +257,7 @@ Returns nil iff `erc-server-buffer-p' returns t."
|
|||
(not (erc-server-buffer-p)))))
|
||||
|
||||
(defun erc-save-query-buffers (process)
|
||||
"Save all buffers process."
|
||||
"Save all buffers of the given PROCESS."
|
||||
(erc-with-all-buffers-of-server process
|
||||
nil
|
||||
(erc-save-buffer-in-logs)))
|
||||
|
|
@ -278,6 +272,12 @@ Returns nil iff `erc-server-buffer-p' returns t."
|
|||
(when erc-save-queries-on-quit
|
||||
(erc-save-query-buffers process)))
|
||||
|
||||
;; Make sure that logs get saved, even if someone overrides the active
|
||||
;; process prompt for a quick exit from Emacs
|
||||
(defun erc-log-save-all-buffers ()
|
||||
(dolist (buffer (erc-buffer-list))
|
||||
(erc-save-buffer-in-logs buffer)))
|
||||
|
||||
;;;###autoload
|
||||
(defun erc-logging-enabled (&optional buffer)
|
||||
"Return non-nil if logging is enabled for BUFFER.
|
||||
|
|
@ -309,7 +309,7 @@ The result is converted to lowercase, as IRC is case-insensitive"
|
|||
(erc-log-standardize-name
|
||||
(funcall erc-generate-log-file-name-function
|
||||
(or buffer (current-buffer))
|
||||
(or (erc-default-target) (buffer-name buffer))
|
||||
(or (buffer-name buffer) (erc-default-target))
|
||||
(erc-current-nick)
|
||||
erc-session-server erc-session-port))
|
||||
erc-log-channels-directory))
|
||||
|
|
|
|||
|
|
@ -4,7 +4,6 @@
|
|||
|
||||
;; Author: Mario Lang <mlang@delysid.org>
|
||||
;; Keywords: comm, processes, menu
|
||||
;; URL: http://www.emacswiki.org/cgi-bin/wiki.pl?ErcMenu
|
||||
|
||||
;; This file is part of GNU Emacs.
|
||||
|
||||
|
|
@ -29,11 +28,12 @@
|
|||
|
||||
;;; Code:
|
||||
|
||||
;(require 'erc)
|
||||
(require 'easymenu)
|
||||
|
||||
(defvar erc-menu-definition
|
||||
(list "IRC"
|
||||
["Connect to server..." erc-select t]
|
||||
(list "ERC"
|
||||
["Connect to server..." erc t]
|
||||
["Disconnect from server..." erc-quit-server erc-server-connected]
|
||||
"-"
|
||||
["List channels..." erc-list-channels
|
||||
|
|
|
|||
|
|
@ -809,7 +809,7 @@ As an example:
|
|||
(erc-ports-list (nth 3 srv))
|
||||
(list (nth 3 srv))))
|
||||
(port (nth (random (length ports)) ports)))
|
||||
(erc host port erc-nick erc-user-full-name t)))
|
||||
(erc :server host :port port)))
|
||||
|
||||
;;; The following experimental
|
||||
;; It does not work yet, help me with it if you
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@
|
|||
;; This provides a minimal mIRC style nicklist buffer for ERC. To
|
||||
;; activate, do M-x erc-nicklist RET in the channel buffer you want
|
||||
;; the nicklist to appear for. To close and quit the nicklist
|
||||
;; buffer, do M-x erc-nicklist-quit RET.
|
||||
;; buffer, do M-x erc-nicklist-quit RET from within the nicklist buffer.
|
||||
;;
|
||||
;; TODO:
|
||||
;; o Somehow associate nicklist windows with channel windows so they
|
||||
|
|
@ -97,7 +97,7 @@ By \"chat medium\", we mean IRC, AOL, MSN, ICQ, etc."
|
|||
"*Directory of the PNG files for chat icons.
|
||||
Icons are displayed if `erc-nicklist-use-icons' is non-nil."
|
||||
:group 'erc-nicklist
|
||||
:type 'string)
|
||||
:type 'directory)
|
||||
|
||||
(defcustom erc-nicklist-voiced-position 'bottom
|
||||
"*Position of voiced nicks in the nicklist.
|
||||
|
|
@ -207,7 +207,9 @@ Seach for the BBDB record of this contact. If not found, return nil."
|
|||
(channels (erc-server-user-buffers server-user))
|
||||
(op (erc-channel-user-op channel-user))
|
||||
(voice (erc-channel-user-voice channel-user))
|
||||
(bbdb-nick (erc-nicklist-search-for-nick (concat login "@" host)))
|
||||
(bbdb-nick (or (erc-nicklist-search-for-nick
|
||||
(concat login "@" host))
|
||||
""))
|
||||
(away-status (if voice "" "\n(Away)"))
|
||||
(balloon-text (concat bbdb-nick (if (string= "" bbdb-nick)
|
||||
"" "\n")
|
||||
|
|
@ -406,6 +408,7 @@ list has all the voiced users according to
|
|||
;; Local Variables:
|
||||
;; indent-tabs-mode: t
|
||||
;; tab-width: 8
|
||||
;; coding: utf-8
|
||||
;; End:
|
||||
|
||||
;; arch-tag: db37a256-87a7-4544-bd90-e5f16c9f5ca5
|
||||
|
|
|
|||
|
|
@ -5,7 +5,6 @@
|
|||
;; Author: Andreas Fuchs <asf@void.at>
|
||||
;; Maintainer: Mario Lang (mlang@delysid.org)
|
||||
;; Keywords: IRC, client, Internet
|
||||
;; URL: http://www.emacswiki.org/cgi-bin/wiki.pl?ErcReplace
|
||||
|
||||
;; This file is part of GNU Emacs.
|
||||
|
||||
|
|
|
|||
|
|
@ -21,9 +21,26 @@
|
|||
|
||||
;;; Commentary:
|
||||
|
||||
;; This used to be in erc.el, I (Jorgen) just extracted it from there
|
||||
;; and put it in this file. Bugs and features are those of the
|
||||
;; original author.
|
||||
;; Play sounds when users send you CTCP SOUND messages.
|
||||
|
||||
;; This file also defines the command /sound so that you can send
|
||||
;; sound requests to other users.
|
||||
|
||||
;;; Usage:
|
||||
|
||||
;; Add the following to your .emacs if you want to play sounds.
|
||||
;;
|
||||
;; (require 'erc-soud)
|
||||
;; (erc-sound-enable)
|
||||
;;
|
||||
;; To send requests to other users from within query buffers, type the
|
||||
;; following:
|
||||
;;
|
||||
;; /sound filename optional-message-text
|
||||
;;
|
||||
;; You can also type the following:
|
||||
;;
|
||||
;; /ctcp nickname sound filename optional-message
|
||||
|
||||
;;; Code:
|
||||
|
||||
|
|
@ -34,9 +51,11 @@
|
|||
"In ERC sound mode, the client will respond to CTCP SOUND requests
|
||||
and play sound files as requested."
|
||||
;; Enable:
|
||||
((define-key erc-mode-map "\C-c\C-s" 'erc-toggle-sound))
|
||||
((add-hook 'erc-ctcp-query-SOUND-hook 'erc-ctcp-query-SOUND)
|
||||
(define-key erc-mode-map "\C-c\C-s" 'erc-toggle-sound))
|
||||
;; Disable:
|
||||
((define-key erc-mode-map "\C-c\C-s" 'undefined)))
|
||||
((remove-hook 'erc-ctcp-query-SOUND-hook 'erc-ctcp-query-SOUND)
|
||||
(define-key erc-mode-map "\C-c\C-s" 'undefined)))
|
||||
|
||||
(erc-define-catalog-entry 'english 'CTCP-SOUND "%n (%u@%h) plays %s:%m")
|
||||
|
||||
|
|
@ -45,7 +64,7 @@ and play sound files as requested."
|
|||
:group 'erc)
|
||||
|
||||
(defcustom erc-play-sound t
|
||||
"*Play sound on SOUND ctcp requests (used in ICQ chat)."
|
||||
"*Play sounds when you receive CTCP SOUND requests."
|
||||
:group 'erc-sound
|
||||
:type 'boolean)
|
||||
|
||||
|
|
@ -55,18 +74,22 @@ and play sound files as requested."
|
|||
:type '(repeat directory))
|
||||
|
||||
(defcustom erc-default-sound nil
|
||||
"Play this sound if the requested file was not found."
|
||||
"Play this sound if the requested file was not found.
|
||||
If this is set to nil or the file doesn't exist a beep will sound."
|
||||
:group 'erc-sound
|
||||
:type '(choice (const nil)
|
||||
file))
|
||||
|
||||
(defcustom erc-play-command "play"
|
||||
"Command for playing sound samples."
|
||||
:group 'erc-sound
|
||||
:type 'string)
|
||||
(defvar erc-ctcp-query-SOUND-hook nil
|
||||
"Hook to run after receiving a CTCP SOUND request.")
|
||||
|
||||
(defun erc-cmd-SOUND (line &optional force)
|
||||
"Play the sound given in LINE."
|
||||
"Send a CTCP SOUND message to the default target.
|
||||
If `erc-play-sound' is non-nil, play the sound as well.
|
||||
|
||||
/sound filename optional-message-text
|
||||
|
||||
LINE is the text entered, including the command."
|
||||
(cond
|
||||
((string-match "^\\s-*\\(\\S-+\\)\\(\\s-.*\\)?$" line)
|
||||
(let ((file (match-string 1 line))
|
||||
|
|
@ -84,8 +107,8 @@ and play sound files as requested."
|
|||
t))
|
||||
(t nil)))
|
||||
|
||||
(defvar erc-ctcp-query-SOUND-hook '(erc-ctcp-query-SOUND))
|
||||
(defun erc-ctcp-query-SOUND (proc nick login host to msg)
|
||||
"Display a CTCP SOUND message and play sound if `erc-play-sound' is non-nil."
|
||||
(when (string-match "^SOUND\\s-+\\(\\S-+\\)\\(\\(\\s-+.*\\)\\|\\(\\s-*\\)\\)$" msg)
|
||||
(let ((sound (match-string 1 msg))
|
||||
(comment (match-string 2 msg)))
|
||||
|
|
@ -96,42 +119,16 @@ and play sound files as requested."
|
|||
nil)
|
||||
|
||||
(defun erc-play-sound (file)
|
||||
"Plays a sound file located in one of the directories in `erc-sound-path'
|
||||
with a command `erc-play-command'."
|
||||
"Play a sound file located in one of the directories in `erc-sound-path'.
|
||||
See also `play-sound-file'."
|
||||
(let ((filepath (erc-find-file file erc-sound-path)))
|
||||
(if (and (not filepath) erc-default-sound)
|
||||
(setq filepath erc-default-sound))
|
||||
(cond ((and filepath (file-exists-p filepath))
|
||||
(if (and (fboundp 'device-sound-enabled-p)
|
||||
(device-sound-enabled-p))
|
||||
; For XEmacs
|
||||
(play-sound-file filepath)
|
||||
; (start-process "erc-sound" nil erc-play-command filepath)
|
||||
(start-process "erc-sound" nil "/bin/tcsh" "-c"
|
||||
(concat erc-play-command " " filepath))))
|
||||
(play-sound-file filepath))
|
||||
(t (beep)))
|
||||
(erc-log (format "Playing sound file %S" filepath))))
|
||||
|
||||
;(defun erc-play-sound (file)
|
||||
; "Plays a sound file located in one of the directories in `erc-sound-path'
|
||||
; with a command `erc-play-command'."
|
||||
; (let ((filepath nil)
|
||||
; (paths erc-sound-path))
|
||||
; (while (and paths
|
||||
; (progn (setq filepath (expand-file-name file (car paths)))
|
||||
; (not (file-exists-p filepath))))
|
||||
; (setq paths (cdr paths)))
|
||||
; (if (and (not (and filepath (file-exists-p filepath)))
|
||||
; erc-default-sound)
|
||||
; (setq filepath erc-default-sound))
|
||||
; (cond ((and filepath (file-exists-p filepath))
|
||||
;; (start-process "erc-sound" nil erc-play-command filepath)
|
||||
; (start-process "erc-sound" nil "/bin/tcsh" "-c"
|
||||
; (concat erc-play-command " " filepath))
|
||||
; )
|
||||
; (t (beep)))
|
||||
; (erc-log (format "Playing sound file %S" filepath))))
|
||||
|
||||
(defun erc-toggle-sound (&optional arg)
|
||||
"Toggles playing sounds on and off. With positive argument,
|
||||
turns them on. With any other argument turns sounds off."
|
||||
|
|
|
|||
|
|
@ -580,6 +580,11 @@ ARGS are ignored."
|
|||
(erc-modified-channels-display)
|
||||
(force-mode-line-update t))))
|
||||
|
||||
(defvar erc-track-mouse-face (if (featurep 'xemacs)
|
||||
'modeline-mousable
|
||||
'mode-line-highlight)
|
||||
"The face to use when mouse is over channel names in the mode line.")
|
||||
|
||||
(defun erc-make-mode-line-buffer-name (string buffer &optional faces count)
|
||||
"Return STRING as a button that switches to BUFFER when clicked.
|
||||
If FACES are provided, color STRING with them."
|
||||
|
|
@ -609,6 +614,12 @@ If FACES are provided, color STRING with them."
|
|||
(posn-window (event-start e)))
|
||||
(switch-to-buffer-other-window ,buffer))))
|
||||
(put-text-property 0 (length name) 'local-map map name)
|
||||
(put-text-property
|
||||
0 (length name)
|
||||
'help-echo (concat "mouse-2: switch to buffer, "
|
||||
"mouse-3: switch to buffer in other window")
|
||||
name)
|
||||
(put-text-property 0 (length name) 'mouse-face erc-track-mouse-face name)
|
||||
(when (and faces erc-track-use-faces)
|
||||
(put-text-property 0 (length name) 'face faces name))
|
||||
name))
|
||||
|
|
|
|||
|
|
@ -48,7 +48,7 @@ Used only when auto-truncation is enabled.
|
|||
(define-erc-module truncate nil
|
||||
"Truncate a query buffer if it gets too large.
|
||||
This prevents the query buffer from getting too large, which can
|
||||
bring any grown emacs to its knees after a few days worth of
|
||||
bring any grown Emacs to its knees after a few days worth of
|
||||
tracking heavy-traffic channels."
|
||||
;;enable
|
||||
((add-hook 'erc-insert-post-hook 'erc-truncate-buffer))
|
||||
|
|
|
|||
320
lisp/erc/erc.el
320
lisp/erc/erc.el
|
|
@ -33,11 +33,11 @@
|
|||
|
||||
;;; Commentary:
|
||||
|
||||
;; ERC is an IRC client for Emacs.
|
||||
;; ERC is a powerful, modular, and extensible IRC client for Emacs.
|
||||
|
||||
;; For more information, see the following URLs:
|
||||
;; * http://sv.gnu.org/projects/erc/
|
||||
;; * http://www.emacswiki.org/cgi-bin/wiki.pl?EmacsIRCClient
|
||||
;; * http://www.emacswiki.org/cgi-bin/wiki/ERC
|
||||
|
||||
;; As of 2006-06-13, ERC development is now hosted on Savannah
|
||||
;; (http://sv.gnu.org/projects/erc). I invite everyone who wants to
|
||||
|
|
@ -57,17 +57,17 @@
|
|||
|
||||
;; To connect to an IRC server, do
|
||||
;;
|
||||
;; M-x erc-select RET
|
||||
;; M-x erc RET
|
||||
;;
|
||||
;; After you are connected to a server, you can use C-h m or have a look at
|
||||
;; the IRC menu.
|
||||
;; the ERC menu.
|
||||
|
||||
;;; History:
|
||||
;;
|
||||
|
||||
;;; Code:
|
||||
|
||||
(defconst erc-version-string "Version 5.1.4"
|
||||
(defconst erc-version-string "Version 5.2 stable pre-release"
|
||||
"ERC version. This is used by function `erc-version'.")
|
||||
|
||||
(eval-when-compile (require 'cl))
|
||||
|
|
@ -474,7 +474,7 @@ Removes all users in the current channel. This is called by
|
|||
(clrhash erc-channel-users)))
|
||||
|
||||
(defsubst erc-channel-user-op-p (nick)
|
||||
"Return `t' if NICK is an operator in the current channel."
|
||||
"Return t if NICK is an operator in the current channel."
|
||||
(and nick
|
||||
(hash-table-p erc-channel-users)
|
||||
(let ((cdata (erc-get-channel-user nick)))
|
||||
|
|
@ -482,7 +482,7 @@ Removes all users in the current channel. This is called by
|
|||
(erc-channel-user-op (cdr cdata))))))
|
||||
|
||||
(defsubst erc-channel-user-voice-p (nick)
|
||||
"Return `t' if NICK has voice in the current channel."
|
||||
"Return t if NICK has voice in the current channel."
|
||||
(and nick
|
||||
(hash-table-p erc-channel-users)
|
||||
(let ((cdata (erc-get-channel-user nick)))
|
||||
|
|
@ -774,7 +774,7 @@ set if some hacker is trying to flood you away."
|
|||
:type 'boolean)
|
||||
|
||||
(defcustom erc-prompt-for-channel-key nil
|
||||
"Prompt for channel key when using `erc-join-channel' interactively"
|
||||
"Prompt for channel key when using `erc-join-channel' interactively."
|
||||
:group 'erc
|
||||
:type 'boolean)
|
||||
|
||||
|
|
@ -807,7 +807,7 @@ whose identifier matches, the message will not be processed.
|
|||
CAVEAT: ERC doesn't know about the user and host of anyone who
|
||||
was already in the channel when you joined, but never said
|
||||
anything, so it won't be able to match the user and host of those
|
||||
people. You can update the ERC internal info using /WHO *."
|
||||
people. You can update the ERC internal info using /WHO *."
|
||||
:group 'erc-ignore
|
||||
:type '(repeat regexp))
|
||||
|
||||
|
|
@ -827,9 +827,9 @@ See `erc-server-flood-margin' for other flood-related parameters.")
|
|||
"List of files to try for a startup script.
|
||||
The first existent and readable one will get executed.
|
||||
|
||||
If the filename ends with `.el' it is presumed to be an emacs-lisp
|
||||
If the filename ends with `.el' it is presumed to be an Emacs Lisp
|
||||
script and it gets (load)ed. Otherwise is is treated as a bunch of
|
||||
regular IRC commands"
|
||||
regular IRC commands."
|
||||
:group 'erc-scripts
|
||||
:type '(repeat file))
|
||||
|
||||
|
|
@ -841,7 +841,7 @@ directory in the list."
|
|||
:type '(repeat directory))
|
||||
|
||||
(defcustom erc-script-echo t
|
||||
"*If not-NIL, echo the IRC script commands locally."
|
||||
"*If non-nil, echo the IRC script commands locally."
|
||||
:group 'erc-scripts
|
||||
:type 'boolean)
|
||||
|
||||
|
|
@ -1042,7 +1042,7 @@ At this point, all modifications from prior hook functions are done.
|
|||
NOTE: The functions on this hook are called _before_ sending a command
|
||||
to the server.
|
||||
|
||||
This function is called with narrowing, ala `erc-send-modify-hook'"
|
||||
This function is called with narrowing, ala `erc-send-modify-hook'."
|
||||
:group 'erc-hooks
|
||||
:type 'hook
|
||||
:options '(erc-make-read-only))
|
||||
|
|
@ -1164,6 +1164,12 @@ See the variable `erc-command-indicator'."
|
|||
"ERC face for errors."
|
||||
:group 'erc-faces)
|
||||
|
||||
;; same default color as `erc-input-face'
|
||||
(defface erc-my-nick-face '((t (:bold t :foreground "brown")))
|
||||
"ERC face for your current nickname in messages sent by you.
|
||||
See also `erc-show-my-nick'."
|
||||
:group 'erc-faces)
|
||||
|
||||
(defface erc-nick-default-face '((t (:bold t)))
|
||||
"ERC nickname default face."
|
||||
:group 'erc-faces)
|
||||
|
|
@ -1192,7 +1198,7 @@ DOC is the documentation string to use for the minor mode.
|
|||
ENABLE-BODY is a list of expressions used to enable the mode.
|
||||
DISABLE-BODY is a list of expressions used to disable the mode.
|
||||
If LOCAL-P is non-nil, the mode will be created as a buffer-local
|
||||
mode. Rather than a global one.
|
||||
mode, rather than a global one.
|
||||
|
||||
This will define a minor mode called erc-NAME-mode, possibly
|
||||
an alias erc-ALIAS-mode, as well as the helper functions
|
||||
|
|
@ -1260,7 +1266,7 @@ You should make sure that `current-buffer' is a server buffer.
|
|||
This function temporarily adds a function to EVENT's hook to
|
||||
execute FORMS. After FORMS are run, the function is removed from
|
||||
EVENT's hook. The last expression of FORMS should be either nil
|
||||
or t. nil indicates that the other functions on EVENT's hook
|
||||
or t, where nil indicates that the other functions on EVENT's hook
|
||||
should be run too, and t indicates that other functions should
|
||||
not be run.
|
||||
|
||||
|
|
@ -1288,7 +1294,7 @@ capabilities."
|
|||
This function temporarily prepends a function to EVENT's hook to
|
||||
execute FORMS. After FORMS are run, the function is removed from
|
||||
EVENT's hook. The last expression of FORMS should be either nil
|
||||
or t. nil indicates that the other functions on EVENT's hook
|
||||
or t, where nil indicates that the other functions on EVENT's hook
|
||||
should be run too, and t indicates that other functions should
|
||||
not be run.
|
||||
|
||||
|
|
@ -1316,8 +1322,7 @@ the process buffer."
|
|||
(process-buffer erc-server-process)))
|
||||
|
||||
(defun erc-server-buffer-live-p ()
|
||||
"Return t if the buffer associated with `erc-server-process'
|
||||
has not been killed."
|
||||
"Return t if the server buffer has not been killed."
|
||||
(and (processp erc-server-process)
|
||||
(buffer-live-p (process-buffer erc-server-process))))
|
||||
|
||||
|
|
@ -1385,7 +1390,7 @@ If BUFFER is nil, the current buffer is used."
|
|||
(defvar erc-active-buffer nil
|
||||
"The current active buffer, the one where the user typed the last command.
|
||||
Defaults to the server buffer, and should only be set in the
|
||||
server buffer")
|
||||
server buffer.")
|
||||
(make-variable-buffer-local 'erc-active-buffer)
|
||||
|
||||
(defun erc-active-buffer ()
|
||||
|
|
@ -1433,7 +1438,7 @@ Turning on `erc-mode' runs the hook `erc-mode-hook'."
|
|||
(defconst erc-default-server "irc.freenode.net"
|
||||
"IRC server to use if it cannot be detected otherwise.")
|
||||
|
||||
(defconst erc-default-port "ircd"
|
||||
(defconst erc-default-port "6667"
|
||||
"IRC port to use if it cannot be detected otherwise.")
|
||||
|
||||
(defcustom erc-join-buffer 'buffer
|
||||
|
|
@ -1442,7 +1447,7 @@ Turning on `erc-mode' runs the hook `erc-mode-hook'."
|
|||
'window-noselect - in another window, but don't select that one,
|
||||
'frame - in another frame,
|
||||
'bury - bury it in a new buffer,
|
||||
any other value - in place of the current buffer"
|
||||
any other value - in place of the current buffer."
|
||||
:group 'erc-buffers
|
||||
:type '(choice (const window)
|
||||
(const window-noselect)
|
||||
|
|
@ -1452,7 +1457,7 @@ any other value - in place of the current buffer"
|
|||
|
||||
(defcustom erc-frame-alist nil
|
||||
"*Alist of frame parameters for creating erc frames.
|
||||
A value of `nil means to use `default-frame-alist'."
|
||||
A value of nil means to use `default-frame-alist'."
|
||||
:group 'erc-buffers
|
||||
:type '(repeat (cons :format "%v"
|
||||
(symbol :tag "Parameter")
|
||||
|
|
@ -1534,7 +1539,7 @@ symbol, it may have these values:
|
|||
(or target
|
||||
(with-current-buffer (get-buffer buf-name)
|
||||
(and (erc-server-buffer-p)
|
||||
(not erc-server-connected))))
|
||||
(not (erc-server-process-alive)))))
|
||||
(with-current-buffer (get-buffer buf-name)
|
||||
(and (string= erc-session-server server)
|
||||
(erc-port-equal erc-session-port port))))
|
||||
|
|
@ -1555,7 +1560,8 @@ All strings are compared according to IRC protocol case rules, see
|
|||
(catch 'result
|
||||
(while list
|
||||
(if (string= string (erc-downcase (car list)))
|
||||
(throw 'result list) (setq list (cdr list))))))
|
||||
(throw 'result list)
|
||||
(setq list (cdr list))))))
|
||||
|
||||
(defmacro erc-with-buffer (spec &rest body)
|
||||
"Execute BODY in the buffer associated with SPEC.
|
||||
|
|
@ -1567,7 +1573,7 @@ SPEC should have the form
|
|||
If TARGET is a buffer, use it. Otherwise, use the buffer
|
||||
matching TARGET in the process specified by PROCESS.
|
||||
|
||||
If PROCESS is nil, use the current `erc-server-process'
|
||||
If PROCESS is nil, use the current `erc-server-process'.
|
||||
See `erc-get-buffer' for details.
|
||||
|
||||
See also `with-current-buffer'.
|
||||
|
|
@ -1663,7 +1669,7 @@ If `erc-track-mode' is in enabled, put the last element of
|
|||
Due to some yet unresolved reason, global function `iswitchb-mode'
|
||||
needs to be active for this function to work."
|
||||
(interactive "P")
|
||||
(eval-when-compile
|
||||
(eval-and-compile
|
||||
(require 'iswitchb))
|
||||
(let ((iswitchb-make-buflist-hook
|
||||
(lambda ()
|
||||
|
|
@ -1671,8 +1677,7 @@ needs to be active for this function to work."
|
|||
(mapcar 'buffer-name
|
||||
(erc-buffer-list
|
||||
nil
|
||||
(when (and arg (boundp 'erc-server-process))
|
||||
erc-server-process)))))))
|
||||
(when arg erc-server-process)))))))
|
||||
(switch-to-buffer
|
||||
(iswitchb-read-buffer
|
||||
"Switch-to: "
|
||||
|
|
@ -1757,7 +1762,7 @@ all channel buffers on all servers."
|
|||
(defcustom erc-modules '(netsplit fill button match track completion readonly
|
||||
ring autojoin noncommands irccontrols
|
||||
stamp list)
|
||||
"A list of modules which erc should enable.
|
||||
"A list of modules which ERC should enable.
|
||||
If you set the value of this without using `customize' remember to call
|
||||
\(erc-update-modules) after you change it. When using `customize', modules
|
||||
removed from the list will be disabled."
|
||||
|
|
@ -1833,9 +1838,10 @@ removed from the list will be disabled."
|
|||
(condition-case nil
|
||||
(require (intern req))
|
||||
(error nil))
|
||||
(funcall (or (intern-soft (concat "erc-" (symbol-name mod) "-mode"))
|
||||
(error "`%s' is not a known ERC module" mod))
|
||||
1))))
|
||||
(let ((sym (intern-soft (concat "erc-" (symbol-name mod) "-mode"))))
|
||||
(if (fboundp sym)
|
||||
(funcall sym 1)
|
||||
(error "`%s' is not a known ERC module" mod))))))
|
||||
|
||||
(defun erc-setup-buffer (buffer)
|
||||
"Consults `erc-join-buffer' to find out how to display `BUFFER'."
|
||||
|
|
@ -1861,8 +1867,8 @@ removed from the list will be disabled."
|
|||
(display-buffer buffer)
|
||||
(switch-to-buffer buffer)))))
|
||||
|
||||
(defun erc (&optional server port nick full-name
|
||||
connect passwd tgt-list channel process)
|
||||
(defun erc-open (&optional server port nick full-name
|
||||
connect passwd tgt-list channel process)
|
||||
"ERC is a powerful, modular, and extensible IRC client.
|
||||
|
||||
Connect to SERVER on PORT as NICK with FULL-NAME.
|
||||
|
|
@ -1881,6 +1887,7 @@ Returns the buffer for the given server or channel."
|
|||
(connected-p (unless connect erc-server-connected))
|
||||
(buffer (erc-get-buffer-create server port channel))
|
||||
(old-buffer (current-buffer))
|
||||
(old-point (point))
|
||||
continued-session)
|
||||
(erc-update-modules)
|
||||
(set-buffer buffer)
|
||||
|
|
@ -1959,7 +1966,7 @@ Returns the buffer for the given server or channel."
|
|||
(insert "\n"))
|
||||
(set-marker (process-mark erc-server-process) (point))
|
||||
(if continued-session
|
||||
(goto-char (point-max))
|
||||
(goto-char old-point)
|
||||
(set-marker erc-insert-marker (point))
|
||||
(erc-display-prompt)
|
||||
(goto-char (point-max)))
|
||||
|
|
@ -2002,12 +2009,12 @@ If no buffer matches, return nil."
|
|||
|
||||
(if (not (fboundp 'read-passwd))
|
||||
(defun read-passwd (prompt)
|
||||
"Substitute for read-passwd in early emacsen"
|
||||
"Substitute for `read-passwd' in early emacsen."
|
||||
(read-from-minibuffer prompt)))
|
||||
|
||||
(defcustom erc-before-connect nil
|
||||
"Hook called before connecting to a server.
|
||||
This hook gets executed before `erc-select' actually invokes `erc-mode'
|
||||
This hook gets executed before `erc' actually invokes `erc-mode'
|
||||
with your input data. The functions in here get called with three
|
||||
parameters, SERVER, PORT and NICK."
|
||||
:group 'erc-hooks
|
||||
|
|
@ -2015,7 +2022,7 @@ parameters, SERVER, PORT and NICK."
|
|||
|
||||
(defcustom erc-after-connect nil
|
||||
"Hook called after connecting to a server.
|
||||
This hook gets executed when an end of MOTD has been received. All
|
||||
This hook gets executed when an end of MOTD has been received. All
|
||||
functions in here get called with the parameters SERVER and NICK."
|
||||
:group 'erc-hooks
|
||||
:type 'hook)
|
||||
|
|
@ -2073,11 +2080,11 @@ functions in here get called with the parameters SERVER and NICK."
|
|||
(list :server server :port port :nick nick :password passwd)))
|
||||
|
||||
;;;###autoload
|
||||
(defun* erc-select (&key (server (erc-compute-server))
|
||||
(port (erc-compute-port))
|
||||
(nick (erc-compute-nick))
|
||||
password
|
||||
(full-name (erc-compute-full-name)))
|
||||
(defun* erc (&key (server (erc-compute-server))
|
||||
(port (erc-compute-port))
|
||||
(nick (erc-compute-nick))
|
||||
password
|
||||
(full-name (erc-compute-full-name)))
|
||||
"Select connection parameters and run ERC.
|
||||
Non-interactively, it takes keyword arguments
|
||||
(server (erc-compute-server))
|
||||
|
|
@ -2088,7 +2095,7 @@ Non-interactively, it takes keyword arguments
|
|||
|
||||
That is, if called with
|
||||
|
||||
(erc-select :server \"irc.freenode.net\" :full-name \"Harry S Truman\")
|
||||
(erc :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
|
||||
|
|
@ -2096,20 +2103,23 @@ be invoked for the values of the other parameters."
|
|||
(interactive (erc-select-read-args))
|
||||
|
||||
(run-hook-with-args 'erc-before-connect server port nick)
|
||||
(erc server port nick erc-user-full-name t password))
|
||||
(erc-open server port nick full-name t password))
|
||||
|
||||
(defalias 'erc-select 'erc)
|
||||
|
||||
(defun erc-select-ssl (&rest r)
|
||||
(defun erc-ssl (&rest r)
|
||||
"Interactively select SSL connection parameters and run ERC.
|
||||
Arguments are as to erc-select."
|
||||
Arguments are the same as for `erc'."
|
||||
(interactive (erc-select-read-args))
|
||||
(let ((erc-server-connect-function 'erc-open-ssl-stream))
|
||||
(apply 'erc-select r)))
|
||||
(apply 'erc r)))
|
||||
|
||||
(defalias 'erc-select-ssl 'erc-ssl)
|
||||
|
||||
(defun erc-open-ssl-stream (name buffer host port)
|
||||
"Open an SSL stream to an IRC server.
|
||||
The process will be given the name NAME, its target buffer will be
|
||||
BUFFER. HOST and PORT specify the connection target."
|
||||
BUFFER. HOST and PORT specify the connection target."
|
||||
(when (require 'tls)
|
||||
(let ((proc (open-tls-stream name buffer host port)))
|
||||
;; Ugly hack, but it works for now. Problem is it is
|
||||
|
|
@ -2127,7 +2137,7 @@ BUFFER. HOST and PORT specify the connection target."
|
|||
|
||||
The buffer is created if it doesn't exist.
|
||||
|
||||
NOTE: If this variable is non-nil, and you kill the the only
|
||||
NOTE: If this variable is non-nil, and you kill the only
|
||||
visible \"*erc-protocol*\" buffer, it will be recreated shortly,
|
||||
but you won't see it.
|
||||
|
||||
|
|
@ -2142,7 +2152,7 @@ This only has any effect if `erc-debug-irc-protocol' is non-nil.
|
|||
The buffer is created if it doesn't exist.
|
||||
|
||||
If OUTBOUND is non-nil, STRING is being sent to the IRC server
|
||||
and appears in erc-input-face in the buffer."
|
||||
and appears in face `erc-input-face' in the buffer."
|
||||
(when erc-debug-irc-protocol
|
||||
(let ((network-name (or (ignore-errors (erc-network-name))
|
||||
"???")))
|
||||
|
|
@ -2226,7 +2236,7 @@ I.e. any char in it has the `invisible' property set."
|
|||
|
||||
(defun erc-display-line-1 (string buffer)
|
||||
"Display STRING in `erc-mode' BUFFER.
|
||||
Auxiliary function used in `erc-display-line'. The line gets filtered to
|
||||
Auxiliary function used in `erc-display-line'. The line gets filtered to
|
||||
interpret the control characters. Then, `erc-insert-pre-hook' gets called.
|
||||
If `erc-insert-this' is still t, STRING gets inserted into the buffer.
|
||||
Afterwards, `erc-insert-modify' and `erc-insert-post-hook' get called.
|
||||
|
|
@ -2310,8 +2320,8 @@ or omitted, the default ERC buffer for the `erc-session-server' is used.
|
|||
The BUFFER can be an actual buffer, a list of buffers, 'all or 'active.
|
||||
If BUFFER = 'all, the string is displayed in all the ERC buffers for the
|
||||
current session. 'active means the current active buffer
|
||||
\(`erc-active-buffer'). If the buffer can't be resolved, the current
|
||||
buffer is used. `erc-display-line-1' is used to display STRING.
|
||||
\(`erc-active-buffer'). If the buffer can't be resolved, the current
|
||||
buffer is used. `erc-display-line-1' is used to display STRING.
|
||||
|
||||
If STRING is nil, the function does nothing."
|
||||
(let ((inhibit-point-motion-hooks t)
|
||||
|
|
@ -2321,9 +2331,8 @@ If STRING is nil, the function does nothing."
|
|||
((listp buffer) buffer)
|
||||
((processp buffer) (list (process-buffer buffer)))
|
||||
((eq 'all buffer)
|
||||
(and (boundp 'erc-server-process)
|
||||
;; Hmm, or all of the same session server?
|
||||
(erc-buffer-list nil erc-server-process)))
|
||||
;; Hmm, or all of the same session server?
|
||||
(erc-buffer-list nil erc-server-process))
|
||||
((and (eq 'active buffer) (erc-active-buffer))
|
||||
(list (erc-active-buffer)))
|
||||
((erc-server-buffer-live-p)
|
||||
|
|
@ -2338,9 +2347,9 @@ If STRING is nil, the function does nothing."
|
|||
(erc-display-line-1 string (current-buffer))))))
|
||||
|
||||
(defun erc-display-message-highlight (type string)
|
||||
"Highlight STRING according to TYPE, where erc-TYPE-face is an erc face.
|
||||
"Highlight STRING according to TYPE, where erc-TYPE-face is an ERC face.
|
||||
|
||||
See also `erc-make-notice'"
|
||||
See also `erc-make-notice'."
|
||||
(cond ((eq type 'notice)
|
||||
(erc-make-notice string))
|
||||
(t
|
||||
|
|
@ -2426,7 +2435,7 @@ Returns non-nil if the command is actually sent to the server, and nil
|
|||
otherwise.
|
||||
|
||||
If the command in the LINE is not bound as a function `erc-cmd-<COMMAND>',
|
||||
it is passed to `erc-cmd-default'. If LINE is not a command (ie. doesn't
|
||||
it is passed to `erc-cmd-default'. If LINE is not a command (i.e. doesn't
|
||||
start with /<COMMAND>) then it is sent as a message.
|
||||
|
||||
An optional FORCE argument forces sending the line when flood
|
||||
|
|
@ -2536,7 +2545,11 @@ therefore has to contain the command itself as well."
|
|||
"Ignore USER. This should be a regexp matching nick!user@host.
|
||||
If no USER argument is specified, list the contents of `erc-ignore-list'."
|
||||
(if user
|
||||
(progn
|
||||
(let ((quoted (regexp-quote user)))
|
||||
(when (and (not (string= user quoted))
|
||||
(y-or-n-p (format "Use regexp-quoted form (%s) instead? "
|
||||
quoted)))
|
||||
(setq user quoted))
|
||||
(erc-display-line
|
||||
(erc-make-notice (format "Now ignoring %s" user))
|
||||
'active)
|
||||
|
|
@ -2554,16 +2567,22 @@ If no USER argument is specified, list the contents of `erc-ignore-list'."
|
|||
(defun erc-cmd-UNIGNORE (user)
|
||||
"Remove the user specified in USER from the ignore list."
|
||||
(let ((ignored-nick (car (with-current-buffer (erc-server-buffer)
|
||||
(erc-member-ignore-case user erc-ignore-list)))))
|
||||
(if (null ignored-nick)
|
||||
(erc-member-ignore-case (regexp-quote user)
|
||||
erc-ignore-list)))))
|
||||
(unless ignored-nick
|
||||
(if (setq ignored-nick (erc-ignored-user-p user))
|
||||
(unless (y-or-n-p (format "Remove this regexp (%s)? "
|
||||
ignored-nick))
|
||||
(setq ignored-nick nil))
|
||||
(erc-display-line
|
||||
(erc-make-notice (format "%s is not currently ignored!" user))
|
||||
'active)
|
||||
'active)))
|
||||
(when ignored-nick
|
||||
(erc-display-line
|
||||
(erc-make-notice (format "No longer ignoring %s" user))
|
||||
'active))
|
||||
(with-current-buffer (erc-server-buffer)
|
||||
(setq erc-ignore-list (delete ignored-nick erc-ignore-list))))
|
||||
'active)
|
||||
(with-current-buffer (erc-server-buffer)
|
||||
(setq erc-ignore-list (delete ignored-nick erc-ignore-list)))))
|
||||
t)
|
||||
|
||||
(defun erc-cmd-CLEAR ()
|
||||
|
|
@ -2642,7 +2661,7 @@ VERSION and so on. It is called with ARGS."
|
|||
|
||||
If FUNC contains a valid function or variable, help about that
|
||||
will be displayed. If FUNC is empty, display an apropos about
|
||||
erc commands. Otherwise, do apropos in the erc namespace
|
||||
ERC commands. Otherwise, do `apropos' in the ERC namespace
|
||||
\(\"erc-.*LINE\"\).
|
||||
|
||||
Examples:
|
||||
|
|
@ -2768,9 +2787,9 @@ LINE has the format: \"#CHANNEL NICK REASON\" or \"NICK REASON\"."
|
|||
|
||||
(defun erc-cmd-LOAD (line)
|
||||
"Load the script provided in the LINE.
|
||||
If LINE continues beyond the file name,
|
||||
the rest of it is put in a (local) variable
|
||||
`erc-script-args', which can be used in elisp scripts.
|
||||
If LINE continues beyond the file name, the rest of
|
||||
it is put in a (local) variable `erc-script-args',
|
||||
which can be used in Emacs Lisp scripts.
|
||||
|
||||
The optional FORCE argument is ignored here - you can't force loading
|
||||
a script after exceeding the flood threshold."
|
||||
|
|
@ -3149,7 +3168,7 @@ the message given by REASON."
|
|||
"Connect to SERVER, leaving existing connection intact."
|
||||
(erc-log (format "cmd: SERVER: %s" server))
|
||||
(condition-case nil
|
||||
(erc-select :server server :nick (erc-current-nick))
|
||||
(erc :server server :nick (erc-current-nick))
|
||||
(error
|
||||
(message "Cannot find host %s." server)
|
||||
(beep)))
|
||||
|
|
@ -3337,7 +3356,7 @@ The ban list is fetched from the server if necessary."
|
|||
(and (boundp 'fill-column)
|
||||
fill-column)
|
||||
(1- (window-width))))
|
||||
(separator (make-string erc-fill-column (string-to-char "=")))
|
||||
(separator (make-string erc-fill-column ?=))
|
||||
(fmt (concat
|
||||
"%-" (number-to-string (/ erc-fill-column 2)) "s"
|
||||
"%" (number-to-string (/ erc-fill-column 2)) "s")))
|
||||
|
|
@ -3403,7 +3422,7 @@ Unban all currently banned users in the current channel."
|
|||
(lambda (x)
|
||||
(erc-server-send
|
||||
(format "MODE %s -%s %s" (erc-default-target)
|
||||
(make-string (length x) (string-to-char "b"))
|
||||
(make-string (length x) ?b)
|
||||
(mapconcat 'identity x " "))))
|
||||
(erc-group-list bans 3))))
|
||||
t))))
|
||||
|
|
@ -3534,9 +3553,8 @@ If `point' is at the beginning of a channel name, use that as default."
|
|||
(list
|
||||
(if (and (boundp 'reason) (stringp reason) (not (string= reason "")))
|
||||
reason
|
||||
(read-from-minibuffer (concat "Leave " (erc-default-target)
|
||||
", Reason? ")
|
||||
(cons "No reason" 0)))))
|
||||
(read-from-minibuffer (concat "Reason for leaving " (erc-default-target)
|
||||
": ")))))
|
||||
(erc-cmd-PART (concat (erc-default-target)" " reason)))
|
||||
|
||||
(defun erc-set-topic (topic)
|
||||
|
|
@ -3666,15 +3684,15 @@ To change how this query window is displayed, use `let' to bind
|
|||
(buffer-live-p server)
|
||||
(set-buffer server))
|
||||
(error "Couldn't switch to server buffer"))
|
||||
(let ((buf (erc erc-session-server
|
||||
erc-session-port
|
||||
(erc-current-nick)
|
||||
erc-session-user-full-name
|
||||
nil
|
||||
nil
|
||||
(list target)
|
||||
target
|
||||
erc-server-process)))
|
||||
(let ((buf (erc-open erc-session-server
|
||||
erc-session-port
|
||||
(erc-current-nick)
|
||||
erc-session-user-full-name
|
||||
nil
|
||||
nil
|
||||
(list target)
|
||||
target
|
||||
erc-server-process)))
|
||||
(unless buf
|
||||
(error "Couldn't open query window"))
|
||||
(erc-update-mode-line)
|
||||
|
|
@ -3782,7 +3800,7 @@ See also `erc-display-error-notice'."
|
|||
|
||||
(defgroup erc-server-hooks nil
|
||||
"Server event callbacks.
|
||||
Every server event - like numeric replies - has it's own hook.
|
||||
Every server event - like numeric replies - has its own hook.
|
||||
Those hooks are all called using `run-hook-with-args-until-success'.
|
||||
They receive as first argument the process object from where the event
|
||||
originated from,
|
||||
|
|
@ -3846,32 +3864,29 @@ and as second argument the event parsed as a vector."
|
|||
:type 'function)
|
||||
|
||||
(defun erc-format-nick (&optional user channel-data)
|
||||
"Standard nickname formatting function. Only returns the value
|
||||
of NICK."
|
||||
(if user
|
||||
(erc-server-user-nickname user)))
|
||||
"Return the nickname of USER.
|
||||
See also `erc-format-nick-function'."
|
||||
(when user (erc-server-user-nickname user)))
|
||||
|
||||
(defun erc-format-@nick (&optional user channel-data)
|
||||
"Format a nickname such that @ or + are prefix for the NICK
|
||||
if OP or VOICE are t respectively."
|
||||
(if user
|
||||
(let (op voice)
|
||||
(if channel-data
|
||||
(setq op (erc-channel-user-op channel-data)
|
||||
voice (erc-channel-user-voice channel-data)))
|
||||
(concat (if voice "+" "")
|
||||
(if op "@" "")
|
||||
(erc-server-user-nickname user)))))
|
||||
"Format the nickname of USER showing if USER is an operator or has voice.
|
||||
Operators have \"@\" and users with voice have \"+\" as a prefix.
|
||||
Use CHANNEL-DATA to determine op and voice status.
|
||||
See also `erc-format-nick-function'."
|
||||
(when user
|
||||
(let ((op (and channel-data (erc-channel-user-op channel-data) "@"))
|
||||
(voice (and channel-data (erc-channel-user-voice channel-data) "+")))
|
||||
(concat voice op (erc-server-user-nickname user)))))
|
||||
|
||||
(defun erc-format-my-nick ()
|
||||
"Return the beginning of this user's message, correctly propertized"
|
||||
"Return the beginning of this user's message, correctly propertized."
|
||||
(if erc-show-my-nick
|
||||
(let ((open "<")
|
||||
(close "> ")
|
||||
(nick (erc-current-nick)))
|
||||
(concat
|
||||
(erc-propertize open 'face 'erc-default-face)
|
||||
(erc-propertize nick 'face 'erc-nick-default-face)
|
||||
(erc-propertize nick 'face 'erc-my-nick-face)
|
||||
(erc-propertize close 'face 'erc-default-face)))
|
||||
(let ((prefix "> "))
|
||||
(erc-propertize prefix 'face 'erc-default-face))))
|
||||
|
|
@ -3933,7 +3948,7 @@ returns non-nil iff there is at least one buffer for which the
|
|||
sender is a member.
|
||||
|
||||
See also: `erc-echo-notice-in-first-user-buffer',
|
||||
`erc-buffer-list-with-nick'"
|
||||
`erc-buffer-list-with-nick'."
|
||||
(let ((buffers (erc-buffer-list-with-nick sender erc-server-process)))
|
||||
(if buffers
|
||||
(progn (erc-display-message parsed nil buffers s) t)
|
||||
|
|
@ -3948,7 +3963,7 @@ at least one buffer for which the sender is a member or the
|
|||
default target.
|
||||
|
||||
See also: `erc-echo-notice-in-user-buffers',
|
||||
`erc-buffer-list-with-nick'"
|
||||
`erc-buffer-list-with-nick'."
|
||||
(let ((buffers (erc-buffer-list-with-nick sender erc-server-process)))
|
||||
(add-to-list 'buffers buffer)
|
||||
(if buffers
|
||||
|
|
@ -3963,7 +3978,7 @@ returns non-nil iff there is at least one buffer for which the
|
|||
sender is a member.
|
||||
|
||||
See also: `erc-echo-notice-in-user-buffers',
|
||||
`erc-buffer-list-with-nick'"
|
||||
`erc-buffer-list-with-nick'."
|
||||
(let ((buffers (erc-buffer-list-with-nick sender erc-server-process)))
|
||||
(if buffers
|
||||
(progn (erc-display-message parsed nil (car buffers) s) t)
|
||||
|
|
@ -4046,7 +4061,7 @@ See also: `erc-echo-notice-in-user-buffers',
|
|||
(defun erc-connection-established (proc parsed)
|
||||
"Run just after connection.
|
||||
|
||||
Set user modes and run `erc-after-connect hook'."
|
||||
Set user modes and run `erc-after-connect' hook."
|
||||
(unless erc-server-connected ; only once per session
|
||||
(let ((server (or erc-server-announced-name (erc-response.sender parsed)))
|
||||
(nick (car (erc-response.command-args parsed ))))
|
||||
|
|
@ -4376,7 +4391,7 @@ The buffer where the change happened is current while this hook is called."
|
|||
"Updates the stored user information for the user with nickname
|
||||
NICK.
|
||||
|
||||
See also: `erc-update-user'"
|
||||
See also: `erc-update-user'."
|
||||
(erc-update-user (erc-get-server-user nick) new-nick
|
||||
host login full-name info))
|
||||
|
||||
|
|
@ -4387,9 +4402,9 @@ struct. Any of NEW-NICK, HOST, LOGIN, FULL-NAME, INFO which are
|
|||
non-nil and not equal to the existing values for USER are used to
|
||||
replace the stored values in USER.
|
||||
|
||||
If, any only if a change is made,
|
||||
If, and only if, a change is made,
|
||||
`erc-channel-members-changed-hook' is run for each channel for
|
||||
which USER is a member, and `t' is returned."
|
||||
which USER is a member, and t is returned."
|
||||
(let (changed)
|
||||
(when user
|
||||
(when (and new-nick
|
||||
|
|
@ -4426,10 +4441,10 @@ which USER is a member, and `t' is returned."
|
|||
update-message-time)
|
||||
"Updates the stored user information for the user with nickname
|
||||
NICK. `erc-update-user' is called to handle changes to nickname,
|
||||
host, login, full-name, and info. If `op' or `voice' are
|
||||
non-nil, they must be equal to either `on' or `off', in which
|
||||
case the operator or voice status of USER in the current channel
|
||||
is changed accordingly. If `update-message-time' is non-nil, the
|
||||
HOST, LOGIN, FULL-NAME, and INFO. If OP or VOICE are non-nil,
|
||||
they must be equal to either `on' or `off', in which case the
|
||||
operator or voice status of the user in the current channel is
|
||||
changed accordingly. If UPDATE-MESSAGE-TIME is non-nil, the
|
||||
last-message-time of the user in the current channel is set
|
||||
to (current-time).
|
||||
|
||||
|
|
@ -4438,7 +4453,7 @@ information if it is not already present in the user or channel
|
|||
lists.
|
||||
|
||||
If, and only if, changes are made, or the user is added,
|
||||
`erc-channel-members-updated-hook' is run, and `t' is returned.
|
||||
`erc-channel-members-updated-hook' is run, and t is returned.
|
||||
|
||||
See also: `erc-update-user' and `erc-update-channel-member'."
|
||||
(let* (changed user-changed
|
||||
|
|
@ -4504,7 +4519,7 @@ See also: `erc-update-user' and `erc-update-channel-member'."
|
|||
"Updates user and channel information for the user with
|
||||
nickname NICK in channel CHANNEL.
|
||||
|
||||
See also: `erc-update-current-channel-member'"
|
||||
See also: `erc-update-current-channel-member'."
|
||||
(erc-with-buffer
|
||||
(channel)
|
||||
(erc-update-current-channel-member nick new-nick add op voice host
|
||||
|
|
@ -4512,8 +4527,8 @@ See also: `erc-update-current-channel-member'"
|
|||
update-message-time)))
|
||||
|
||||
(defun erc-remove-current-channel-member (nick)
|
||||
"Remove NICK from current channel membership list. Runs
|
||||
`erc-channel-members-changed-hook'."
|
||||
"Remove NICK from current channel membership list.
|
||||
Runs `erc-channel-members-changed-hook'."
|
||||
(let ((channel-data (erc-get-channel-user nick)))
|
||||
(when channel-data
|
||||
(erc-remove-channel-user nick)
|
||||
|
|
@ -4548,7 +4563,7 @@ TOPIC string to the current topic."
|
|||
;; list of triples: (mode-char 'on/'off argument)
|
||||
(arg-modes (nth 2 modes)))
|
||||
(cond ((erc-channel-p tgt); channel modes
|
||||
(let ((buf (and (boundp 'erc-server-process) erc-server-process
|
||||
(let ((buf (and erc-server-process
|
||||
(erc-get-buffer tgt erc-server-process))))
|
||||
(when buf
|
||||
(with-current-buffer buf
|
||||
|
|
@ -4640,7 +4655,7 @@ person who changed the modes."
|
|||
(arg-modes (nth 2 modes)))
|
||||
;; now parse the modes changes and do the updates
|
||||
(cond ((erc-channel-p tgt); channel modes
|
||||
(let ((buf (and (boundp 'erc-server-process) erc-server-process
|
||||
(let ((buf (and erc-server-process
|
||||
(erc-get-buffer tgt erc-server-process))))
|
||||
(when buf
|
||||
;; FIXME! This used to have an original buffer
|
||||
|
|
@ -4718,7 +4733,7 @@ So far the following TYPE/L pairs are supported:
|
|||
|
||||
(defun erc-highlight-notice (s)
|
||||
"Highlight notice message S and return it.
|
||||
See also variable `erc-notice-highlight-type'"
|
||||
See also variable `erc-notice-highlight-type'."
|
||||
(cond
|
||||
((eq erc-notice-highlight-type 'prefix)
|
||||
(erc-put-text-property 0 (length erc-notice-prefix)
|
||||
|
|
@ -4935,7 +4950,7 @@ current position."
|
|||
(run-hooks 'erc-send-post-hook))))))
|
||||
|
||||
(defun erc-command-symbol (command)
|
||||
"Return the erc command symbol for COMMAND if it exists and is bound."
|
||||
"Return the ERC command symbol for COMMAND if it exists and is bound."
|
||||
(let ((cmd (intern-soft (format "erc-cmd-%s" (upcase command)))))
|
||||
(when (fboundp cmd) cmd)))
|
||||
|
||||
|
|
@ -5034,7 +5049,7 @@ See also `erc-downcase'."
|
|||
(defun erc-add-query (nickname)
|
||||
"Add QUERY'd NICKNAME to the default channel list.
|
||||
|
||||
The previous default target of QUERY type gets removed"
|
||||
The previous default target of QUERY type gets removed."
|
||||
(let ((d1 (car erc-default-recipients))
|
||||
(d2 (cdr erc-default-recipients))
|
||||
(qt (cons 'QUERY (downcase nickname))))
|
||||
|
|
@ -5059,10 +5074,10 @@ The previous default target of QUERY type gets removed"
|
|||
Takes a full SPEC of a user in the form \"nick!login@host\", and
|
||||
matches against all the regexp's in `erc-ignore-list'. If any
|
||||
match, returns that regexp."
|
||||
(dolist (ignored (with-current-buffer (erc-server-buffer) erc-ignore-list))
|
||||
(if (string-match ignored spec)
|
||||
;; We have `require'd cl, so we can return from the block named nil
|
||||
(return ignored))))
|
||||
(catch 'found
|
||||
(dolist (ignored (with-current-buffer (erc-server-buffer) erc-ignore-list))
|
||||
(if (string-match ignored spec)
|
||||
(throw 'found ignored)))))
|
||||
|
||||
(defun erc-ignored-reply-p (msg tgt proc)
|
||||
;; FIXME: this docstring needs fixing -- Lawrence 2004-01-08
|
||||
|
|
@ -5259,8 +5274,8 @@ See also `erc-startup-file-list'."
|
|||
|
||||
FILE must be the full name, it is not searched in the
|
||||
`erc-script-path'. If the filename ends with `.el', then load it
|
||||
as a emacs-lisp program. Otherwise, treat it as a regular IRC
|
||||
script"
|
||||
as an Emacs Lisp program. Otherwise, treat it as a regular IRC
|
||||
script."
|
||||
(erc-log (concat "erc-load-script: " file))
|
||||
(cond
|
||||
((string-match "\\.el$" file)
|
||||
|
|
@ -5272,13 +5287,13 @@ script"
|
|||
"Process an IRC script LINE.
|
||||
|
||||
Does script-specific substitutions (script arguments, current nick,
|
||||
server, etc.) in LINE and returns it.
|
||||
server, etc.) in LINE and returns it.
|
||||
|
||||
Substitutions are: %C and %c = current target (channel or nick),
|
||||
%S %s = current server, %N %n = my current nick, and %x is x verbatim,
|
||||
where x is any other character;
|
||||
$* = the entire argument string, $1 = the first argument, $2 = the second,
|
||||
end so on."
|
||||
and so on."
|
||||
(if (not args) (setq args ""))
|
||||
(let* ((arg-esc-regexp "\\(\\$\\(\\*\\|[1-9][0-9]*\\)\\)\\([^0-9]\\|$\\)")
|
||||
(percent-regexp "\\(%.\\)")
|
||||
|
|
@ -5403,10 +5418,10 @@ user input."
|
|||
"Determine the connection and authentication parameters.
|
||||
Sets the buffer local variables:
|
||||
|
||||
- erc-session-server
|
||||
- erc-session-port
|
||||
- erc-session-full-name
|
||||
- erc-server-current-nick"
|
||||
- `erc-session-server'
|
||||
- `erc-session-port'
|
||||
- `erc-session-full-name'
|
||||
- `erc-server-current-nick'"
|
||||
(setq erc-session-server (erc-compute-server server)
|
||||
erc-session-port (or port erc-default-port)
|
||||
erc-session-user-full-name (erc-compute-full-name name))
|
||||
|
|
@ -5418,7 +5433,7 @@ Sets the buffer local variables:
|
|||
This tries a number of increasingly more default methods until a
|
||||
non-nil value is found.
|
||||
|
||||
- SERVER (the argument passwd to this function)
|
||||
- SERVER (the argument passed to this function)
|
||||
- The `erc-server' option
|
||||
- The value of the IRCSERVER environment variable
|
||||
- The `erc-default-server' variable"
|
||||
|
|
@ -5548,7 +5563,7 @@ See also `erc-emacs-time-to-erc-time'."
|
|||
|
||||
(defun erc-client-info (s)
|
||||
"Return CTCP CLIENTINFO on command S.
|
||||
If S is NIL or an empty string then return general CLIENTINFO"
|
||||
If S is nil or an empty string then return general CLIENTINFO."
|
||||
(if (or (not s) (string= s ""))
|
||||
(concat
|
||||
(apply #'concat
|
||||
|
|
@ -5686,7 +5701,7 @@ displayed hostnames."
|
|||
"(AWAY since %a %b %d %H:%M) "
|
||||
"When you're away on a server, this is shown in the mode line.
|
||||
This should be a string with substitution variables recognized by
|
||||
format-time-message."
|
||||
`format-time-string'."
|
||||
:group 'erc-mode-line-and-header
|
||||
:type 'string)
|
||||
|
||||
|
|
@ -5779,7 +5794,7 @@ if `erc-away' is non-nil."
|
|||
((functionp erc-header-line-face-method)
|
||||
(funcall erc-header-line-face-method))
|
||||
(t
|
||||
erc-header-line))))
|
||||
'erc-header-line))))
|
||||
(cond ((featurep 'xemacs)
|
||||
(setq modeline-buffer-identification
|
||||
(list (format-spec erc-mode-line-format spec)))
|
||||
|
|
@ -5833,10 +5848,12 @@ P may be an integer or a service name."
|
|||
|
||||
(defun erc-string-to-port (s)
|
||||
"Convert string S to either an integer port number or a service name."
|
||||
(let ((n (string-to-number s)))
|
||||
(if (= n 0)
|
||||
s
|
||||
n)))
|
||||
(if (numberp s)
|
||||
s
|
||||
(let ((n (string-to-number s)))
|
||||
(if (= n 0)
|
||||
s
|
||||
n))))
|
||||
|
||||
(defun erc-version (&optional here)
|
||||
"Show the version number of ERC in the minibuffer.
|
||||
|
|
@ -5886,8 +5903,8 @@ If optional argument HERE is non-nil, insert version number at point."
|
|||
|
||||
All windows are opened in the current frame."
|
||||
(interactive)
|
||||
(unless (boundp 'erc-server-process)
|
||||
(error "No erc-process found in current buffer"))
|
||||
(unless erc-server-process
|
||||
(error "No erc-server-process found in current buffer"))
|
||||
(let ((bufs (erc-buffer-list nil erc-server-process)))
|
||||
(when bufs
|
||||
(delete-other-windows)
|
||||
|
|
@ -5901,7 +5918,7 @@ All windows are opened in the current frame."
|
|||
(balance-windows)))))
|
||||
|
||||
(defun erc-popup-input-buffer ()
|
||||
"Provide a input buffer."
|
||||
"Provide an input buffer."
|
||||
(interactive)
|
||||
(let ((buffer-name (generate-new-buffer-name "*ERC input*"))
|
||||
(mode (intern
|
||||
|
|
@ -6019,7 +6036,8 @@ All windows are opened in the current frame."
|
|||
(s341 . "Inviting %n to channel %c")
|
||||
(s352 . "%-11c %-10n %-4a %u@%h (%f)")
|
||||
(s353 . "Users on %c: %u")
|
||||
(s367 . "Ban on %b on %c set by %s on %t (Use /banlist!)")
|
||||
(s367 . "Ban for %b on %c")
|
||||
(s367-set-by . "Ban for %b on %c set by %s on %t")
|
||||
(s368 . "Banlist of %c ends.")
|
||||
(s379 . "%c: Forwarded to %f")
|
||||
(s391 . "The time at %s is %t")
|
||||
|
|
@ -6194,10 +6212,10 @@ Otherwise, connect to HOST:PORT as USER and /join CHANNEL."
|
|||
(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)))))))
|
||||
(erc-open 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)
|
||||
|
||||
|
|
|
|||
|
|
@ -296,7 +296,7 @@ If ARG is omitted, point is placed at the end of the expanded text."
|
|||
(defvar expand-list nil "Temporary variable used by the Expand package.")
|
||||
|
||||
(defvar expand-pos nil
|
||||
"If non nil, stores a vector containing markers to positions defined by the last expansion.
|
||||
"If non-nil, stores a vector containing markers to positions defined by the last expansion.
|
||||
This variable is local to a buffer.")
|
||||
(make-variable-buffer-local 'expand-pos)
|
||||
|
||||
|
|
|
|||
|
|
@ -685,8 +685,11 @@ This is called whenever you create a new face, and at other times."
|
|||
symbol (intern name)))
|
||||
(setq menu 'facemenu-face-menu)
|
||||
(setq docstring
|
||||
(format "Select face `%s' for subsequent insertion."
|
||||
name))
|
||||
(format "Select face `%s' for subsequent insertion.
|
||||
If the mark is active and there is no prefix argument,
|
||||
apply face `%s' to the region instead.
|
||||
This command was defined by `facemenu-add-new-face'."
|
||||
name name))
|
||||
(cond ((facemenu-iterate ; check if equivalent face is already in the menu
|
||||
(lambda (m) (and (listp m)
|
||||
(symbolp (car m))
|
||||
|
|
|
|||
|
|
@ -1293,6 +1293,7 @@ If FRAME is omitted or nil, use the selected frame."
|
|||
(insert " undefined face.\n")
|
||||
(let ((customize-label "customize this face")
|
||||
file-name)
|
||||
(insert (concat " (" (propertize "sample" 'font-lock-face f) ")"))
|
||||
(princ (concat " (" customize-label ")\n"))
|
||||
(insert "Documentation: "
|
||||
(or (face-documentation f)
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
;; 2005, 2006 Free Software Foundation, Inc.
|
||||
|
||||
;; Author: Michelangelo Grigni <mic@mathcs.emory.edu>
|
||||
;; Maintainer: Rajesh Vaidheeswarran <rv@gnu.org>
|
||||
;; Maintainer: FSF
|
||||
;; Created: 29 Mar 1993
|
||||
;; Keywords: files, hypermedia, matching, mouse, convenience
|
||||
;; X-URL: ftp://ftp.mathcs.emory.edu/pub/mic/emacs/
|
||||
|
|
|
|||
|
|
@ -1533,7 +1533,7 @@ the various files."
|
|||
(not (eq major-mode 'hexl-mode)))
|
||||
(if (buffer-modified-p)
|
||||
(if (y-or-n-p
|
||||
(format
|
||||
(format
|
||||
(if rawfile
|
||||
"The file %s is already visited normally,
|
||||
and you have edited the buffer. Now you have asked to visit it literally,
|
||||
|
|
@ -1553,7 +1553,7 @@ Do you want to save the file, and visit it normally instead? ")
|
|||
(find-file-noselect-1 buf filename nowarn
|
||||
rawfile truename number))
|
||||
(if (y-or-n-p
|
||||
(format
|
||||
(format
|
||||
(if rawfile
|
||||
"\
|
||||
Do you want to discard your changes, and visit the file literally now? "
|
||||
|
|
@ -1563,8 +1563,8 @@ Do you want to discard your changes, and visit the file normally now? ")))
|
|||
rawfile truename number)
|
||||
(error (if rawfile "File already visited non-literally"
|
||||
"File already visited literally"))))
|
||||
(if (y-or-n-p
|
||||
(format
|
||||
(if (y-or-n-p
|
||||
(format
|
||||
(if rawfile
|
||||
"The file %s is already visited normally.
|
||||
You have asked to visit it literally,
|
||||
|
|
@ -2821,8 +2821,8 @@ the old visited file has been renamed to the new name FILENAME."
|
|||
(let ((buffer (and filename (find-buffer-visiting filename))))
|
||||
(and buffer (not (eq buffer (current-buffer)))
|
||||
(not no-query)
|
||||
(not (y-or-n-p (message "A buffer is visiting %s; proceed? "
|
||||
filename)))
|
||||
(not (y-or-n-p (format "A buffer is visiting %s; proceed? "
|
||||
filename)))
|
||||
(error "Aborted")))
|
||||
(or (equal filename buffer-file-name)
|
||||
(progn
|
||||
|
|
@ -4082,6 +4082,11 @@ non-nil, it is called instead of rereading visited file contents."
|
|||
"File %s no longer exists!"
|
||||
"Cannot revert nonexistent file %s")
|
||||
file-name))
|
||||
((not (file-readable-p file-name))
|
||||
(error (if buffer-file-number
|
||||
"File %s no longer readable!"
|
||||
"Cannot revert unreadable file %s")
|
||||
file-name))
|
||||
(t
|
||||
;; Bind buffer-file-name to nil
|
||||
;; so that we don't try to lock the file.
|
||||
|
|
@ -4095,6 +4100,16 @@ non-nil, it is called instead of rereading visited file contents."
|
|||
(if auto-save-p 'auto-save-coding
|
||||
(or coding-system-for-read
|
||||
buffer-file-coding-system-explicit))))
|
||||
(if (and (not enable-multibyte-characters)
|
||||
coding-system-for-read
|
||||
(not (memq (coding-system-base
|
||||
coding-system-for-read)
|
||||
'(no-conversion raw-text))))
|
||||
;; As a coding system suitable for multibyte
|
||||
;; buffer is specified, make the current
|
||||
;; buffer multibyte.
|
||||
(set-buffer-multibyte t))
|
||||
|
||||
;; This force after-insert-file-set-coding
|
||||
;; (called from insert-file-contents) to set
|
||||
;; buffer-file-coding-system to a proper value.
|
||||
|
|
|
|||
|
|
@ -449,7 +449,7 @@ After that, changing the prefix key requires manipulating keymaps."
|
|||
(if follow-mode
|
||||
menu
|
||||
'(["Activate " follow-mode t]))))
|
||||
|
||||
|
||||
mainmap)
|
||||
"Minor mode keymap for Follow mode.")
|
||||
|
||||
|
|
@ -473,7 +473,7 @@ are \" Fw\", or simply \"\"."
|
|||
:group 'follow)
|
||||
|
||||
(defvar follow-avoid-tail-recenter-p (not (featurep 'xemacs))
|
||||
"*When non-nil, patch emacs so that tail windows won't be recentered.
|
||||
"*When non-nil, patch Emacs so that tail windows won't be recentered.
|
||||
|
||||
A \"tail window\" is a window that displays only the end of
|
||||
the buffer. Normally it is practical for the user that empty
|
||||
|
|
|
|||
|
|
@ -149,7 +149,7 @@ your own function which is called when `font-lock-mode' is toggled via
|
|||
nil nil nil
|
||||
;; Don't turn on Font Lock mode if we don't have a display (we're running a
|
||||
;; batch job) or if the buffer is invisible (the name starts with a space).
|
||||
(when (or noninteractive (eq (aref (buffer-name) 0) ?\ ))
|
||||
(when (or noninteractive (eq (aref (buffer-name) 0) ?\s))
|
||||
(setq font-lock-mode nil))
|
||||
(funcall font-lock-function font-lock-mode)
|
||||
;; Arrange to unfontify this buffer if we change major mode later.
|
||||
|
|
|
|||
|
|
@ -1,7 +1,101 @@
|
|||
2006-11-30 Katsumi Yamaoka <yamaoka@jpl.org>
|
||||
|
||||
* mml2015.el (mml2015-pgg-clear-verify): Replace encode-coding-string
|
||||
with mm-encode-coding-string.
|
||||
|
||||
2006-11-29 Katsumi Yamaoka <yamaoka@jpl.org>
|
||||
|
||||
* nneething.el (nneething-decode-file-name): Replace
|
||||
decode-coding-string with mm-decode-coding-string.
|
||||
|
||||
2006-11-24 Juanma Barranquero <lekktu@gmail.com>
|
||||
|
||||
* gnus-agent.el (gnus-agent-expire-unagentized-dirs)
|
||||
(gnus-agent-regenerate-group): Fix space/tab mixup in messages.
|
||||
|
||||
* gnus-art.el (gnus-article-x-face-command, gnus-numeric-save-name):
|
||||
* gnus-group.el (gnus-group-sort-function, gnus-group-line-format)
|
||||
(gnus-group-mode, gnus-group-read-group, gnus-group-delete-group)
|
||||
(gnus-group-make-directory-group, gnus-group-transpose-groups):
|
||||
* gnus-start.el (gnus-options-subscribe, gnus-options-not-subscribe)
|
||||
(gnus-subscribe-newsgroup, gnus-1):
|
||||
* gnus-sum.el (gnus-summary-make-false-root, gnus-make-threads):
|
||||
* gnus.el (gnus-nntp-server, gnus-use-cross-reference)
|
||||
(gnus-valid-select-methods, total-expire, gnus-summary-line-format)
|
||||
(gnus-group-read-only-p): Fix space/tab mixup in docstrings.
|
||||
|
||||
2006-11-21 Katsumi Yamaoka <yamaoka@jpl.org>
|
||||
|
||||
* mm-util.el (mm-string-to-multibyte): Alias to identity in XEmacs.
|
||||
|
||||
2006-11-18 Andreas Seltenreich <uwi7@rz.uni-karlsruhe.de>
|
||||
|
||||
* mm-uu.el (mm-uu-pgp-signed-extract-1): Make last fix more thorough
|
||||
and comment it.
|
||||
|
||||
* nnslashdot.el (nnslashdot-retrieve-headers-1): Update regexp.
|
||||
|
||||
2006-11-15 Reiner Steib <Reiner.Steib@gmx.de>
|
||||
|
||||
* gnus-util.el (gnus-extract-address-components): Improve comment.
|
||||
|
||||
2006-11-14 Katsumi Yamaoka <yamaoka@jpl.org>
|
||||
|
||||
* gnus-util.el (gnus-extract-address-components): Work with address in
|
||||
which the name portion contains @.
|
||||
|
||||
2006-11-14 Reiner Steib <Reiner.Steib@gmx.de>
|
||||
|
||||
* gnus.el (gnus-start): Move custom group up.
|
||||
(gnus-select-method): Don't autoload, but make it available for
|
||||
`customize-variable'.
|
||||
(gnus-getenv-nntpserver): Don't autoload.
|
||||
|
||||
2006-11-14 Katsumi Yamaoka <yamaoka@jpl.org>
|
||||
|
||||
* mml.el (mml-generate-mime-1): Use mm-string-as-unibyte instead of
|
||||
mm-with-unibyte-current-buffer to make string unibyte.
|
||||
|
||||
* mm-decode.el (mm-insert-part): Use mm-string-to-multibyte instead of
|
||||
mm-string-as-multibyte.
|
||||
|
||||
2006-11-09 Reiner Steib <Reiner.Steib@gmx.de>
|
||||
|
||||
* message.el: Merge from the trunk to fix the bug WRT double encoded
|
||||
subjects.
|
||||
(message-replacement-char): New variable.
|
||||
(message-fix-before-sending): Use it.
|
||||
(message-simplify-subject): New function to remove duplicate code.
|
||||
(message-reply, message-followup): Use it.
|
||||
(message-simplify-subject-functions): New variable.
|
||||
(message-strip-subject-encoded-words): New function
|
||||
|
||||
2006-11-08 Wolfgang Jenkner <wjenkner@inode.at> (tiny change)
|
||||
|
||||
* gnus-sum.el (gnus-summary-catchup): Use gnus-sorted-intersection
|
||||
instead of gnus-intersection because arguments of gnus-sorted-nunion
|
||||
must be sorted. This avoids corruption of gnus-newsgroup-unreads.
|
||||
|
||||
2006-11-03 Juanma Barranquero <lekktu@gmail.com>
|
||||
|
||||
* gnus-diary.el (gnus-diary-delay-format-function):
|
||||
* nndiary.el (nndiary-reminders):
|
||||
* nnsoup.el (nnsoup-always-save): Use "non-nil" in docstrings.
|
||||
|
||||
2006-11-01 Reiner Steib <Reiner.Steib@gmx.de>
|
||||
|
||||
* gnus-art.el (article-hide-boring-headers): Fetch date from
|
||||
gnus-original-article-buffer to avoid problems with localized date
|
||||
strings.
|
||||
|
||||
2006-10-30 Katsumi Yamaoka <yamaoka@jpl.org>
|
||||
|
||||
* html2text.el (html2text-format-tags): Avoid infloop on open tags.
|
||||
|
||||
2006-10-29 Reiner Steib <Reiner.Steib@gmx.de>
|
||||
|
||||
* mm-util.el (mm-codepage-iso-8859-list, mm-codepage-ibm-list): New
|
||||
variables.
|
||||
* mm-util.el (mm-codepage-iso-8859-list, mm-codepage-ibm-list):
|
||||
New variables.
|
||||
(mm-setup-codepage-iso-8859, mm-setup-codepage-ibm): New functions.
|
||||
(mm-charset-synonym-alist): Move some entries to
|
||||
mm-codepage-iso-8859-list.
|
||||
|
|
@ -610,7 +704,7 @@
|
|||
(rfc2231-encode-string): Be sure to work on multibyte buffer at
|
||||
first, and after mm-encode-body, change the buffer to unibyte.
|
||||
|
||||
2006-03-21 Daniel Pittman <daniel@rimspace.net>
|
||||
2006-03-21 Daniel Pittman <daniel@rimspace.net>
|
||||
|
||||
* nnimap.el (nnimap-request-update-info-internal): Optimize.
|
||||
Don't `gnus-uncompress-range' to avoid excessive memory usage.
|
||||
|
|
@ -4484,6 +4578,7 @@ See ChangeLog.2 for earlier changes.
|
|||
;; Local Variables:
|
||||
;; coding: iso-2022-7bit
|
||||
;; fill-column: 79
|
||||
;; add-log-time-zone-rule: t
|
||||
;; End:
|
||||
|
||||
;;; arch-tag: 3f33a3e7-090d-492b-bedd-02a1417d32b4
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@
|
|||
|
||||
;; GNU Emacs is distributed in the hope that it will be useful,
|
||||
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;; GNU General Public License for more details.
|
||||
|
||||
;; You should have received a copy of the GNU General Public License
|
||||
|
|
@ -1167,7 +1167,7 @@ downloadable."
|
|||
;; For each article that I processed that is no longer
|
||||
;; undownloaded, remove its processable mark.
|
||||
|
||||
(mapc #'gnus-summary-remove-process-mark
|
||||
(mapc #'gnus-summary-remove-process-mark
|
||||
(gnus-sorted-ndifference gnus-newsgroup-processable gnus-newsgroup-undownloaded))
|
||||
|
||||
;; The preceeding call to (gnus-agent-summary-fetch-group)
|
||||
|
|
@ -1972,11 +1972,11 @@ doesn't exist, to valid the overview buffer."
|
|||
;; First, we'll fix the sort.
|
||||
(sort-numeric-fields 1 (point-min) (point-max))
|
||||
|
||||
;; but now we have to consider that we may have duplicate rows...
|
||||
;; but now we have to consider that we may have duplicate rows...
|
||||
;; so reset to beginning of file
|
||||
(goto-char (point-min))
|
||||
(setq last -134217728)
|
||||
|
||||
|
||||
;; and throw a code that restarts this scan
|
||||
(throw 'problems t))
|
||||
nil))))))
|
||||
|
|
@ -3470,7 +3470,7 @@ articles in every agentized group? "))
|
|||
(or gnus-expert-user
|
||||
(gnus-y-or-n-p
|
||||
"gnus-agent-expire has identified local directories that are\
|
||||
not currently required by any agentized group. Do you wish to consider\
|
||||
not currently required by any agentized group. Do you wish to consider\
|
||||
deleting them?")))
|
||||
(while to-remove
|
||||
(let ((dir (pop to-remove)))
|
||||
|
|
@ -3756,7 +3756,7 @@ If REREAD is not nil, downloaded articles are marked as unread."
|
|||
(dir (file-name-directory file))
|
||||
point
|
||||
(downloaded (if (file-exists-p dir)
|
||||
(sort (delq nil (mapcar (lambda (name)
|
||||
(sort (delq nil (mapcar (lambda (name)
|
||||
(and (not (file-directory-p (nnheader-concat dir name)))
|
||||
(string-to-number name)))
|
||||
(directory-files dir nil "^[0-9]+$" t)))
|
||||
|
|
@ -3802,7 +3802,7 @@ If REREAD is not nil, downloaded articles are marked as unread."
|
|||
((= l1 l2)
|
||||
(forward-line -1)
|
||||
(gnus-message 4 "gnus-agent-regenerate-group: NOV\
|
||||
entries contained duplicate of article %s. Duplicate deleted." l1)
|
||||
entries contained duplicate of article %s. Duplicate deleted." l1)
|
||||
(gnus-delete-line)
|
||||
(setq nov-arts (cdr nov-arts))))))
|
||||
(t
|
||||
|
|
@ -3923,7 +3923,7 @@ If REREAD is not nil, downloaded articles are marked as unread."
|
|||
(gnus-agent-possibly-alter-active group group-active)))))
|
||||
|
||||
(when (and reread gnus-agent-article-alist)
|
||||
(gnus-agent-synchronize-group-flags
|
||||
(gnus-agent-synchronize-group-flags
|
||||
group
|
||||
(list (list
|
||||
(if (listp reread)
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@
|
|||
|
||||
;; GNU Emacs is distributed in the hope that it will be useful,
|
||||
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;; GNU General Public License for more details.
|
||||
|
||||
;; You should have received a copy of the GNU General Public License
|
||||
|
|
@ -265,7 +265,7 @@ regexp. If it matches, the text in question is not a signature."
|
|||
display -"))
|
||||
"*String or function to be executed to display an X-Face header.
|
||||
If it is a string, the command will be executed in a sub-shell
|
||||
asynchronously. The compressed face will be piped to this command."
|
||||
asynchronously. The compressed face will be piped to this command."
|
||||
:type `(choice string
|
||||
(function-item gnus-display-x-face-in-from)
|
||||
function)
|
||||
|
|
@ -1917,7 +1917,11 @@ always hide."
|
|||
'string<))))
|
||||
(gnus-article-hide-header "reply-to")))))
|
||||
((eq elem 'date)
|
||||
(let ((date (message-fetch-field "date")))
|
||||
(let ((date (with-current-buffer gnus-original-article-buffer
|
||||
;; If date in `gnus-article-buffer' is localized
|
||||
;; (`gnus-treat-date-user-defined'),
|
||||
;; `days-between' might fail.
|
||||
(message-fetch-field "date"))))
|
||||
(when (and date
|
||||
(< (days-between (current-time-string) date)
|
||||
4))
|
||||
|
|
@ -3637,7 +3641,7 @@ Otherwise, it is like ~/News/news/group/num."
|
|||
(defun gnus-numeric-save-name (newsgroup headers &optional last-file)
|
||||
"Generate file name from NEWSGROUP, HEADERS, and optional LAST-FILE.
|
||||
If variable `gnus-use-long-file-name' is non-nil, it is
|
||||
~/News/news.group/num. Otherwise, it is like ~/News/news/group/num."
|
||||
~/News/news.group/num. Otherwise, it is like ~/News/news/group/num."
|
||||
(let ((default
|
||||
(expand-file-name
|
||||
(concat (if (gnus-use-long-file-name 'not-save)
|
||||
|
|
|
|||
|
|
@ -121,7 +121,7 @@ Please refer to `format-time-string' for information on possible values."
|
|||
|
||||
(defcustom gnus-diary-delay-format-function 'gnus-diary-delay-format-english
|
||||
"*Function called to format a diary delay string.
|
||||
It is passed two arguments. The first one is non nil if the delay is in
|
||||
It is passed two arguments. The first one is non-nil if the delay is in
|
||||
the past. The second one is of the form ((NUM . UNIT) ...) where NUM is
|
||||
an integer and UNIT is one of 'year 'month 'week 'day 'hour or 'minute.
|
||||
It should return strings like \"In 2 months, 3 weeks\", \"3 hours,
|
||||
|
|
|
|||
|
|
@ -131,7 +131,7 @@ for the groups to be sorted. Pre-made functions include
|
|||
`gnus-group-sort-by-score', `gnus-group-sort-by-method',
|
||||
`gnus-group-sort-by-server', and `gnus-group-sort-by-rank'.
|
||||
|
||||
This variable can also be a list of sorting functions. In that case,
|
||||
This variable can also be a list of sorting functions. In that case,
|
||||
the most significant sort function should be the last function in the
|
||||
list."
|
||||
:group 'gnus-group-listing
|
||||
|
|
@ -193,7 +193,7 @@ with some simple extensions.
|
|||
|
||||
Note that this format specification is not always respected. For
|
||||
reasons of efficiency, when listing killed groups, this specification
|
||||
is ignored altogether. If the spec is changed considerably, your
|
||||
is ignored altogether. If the spec is changed considerably, your
|
||||
output may end up looking strange when listing both alive and killed
|
||||
groups.
|
||||
|
||||
|
|
@ -1115,7 +1115,7 @@ When FORCE, rebuild the tool bar."
|
|||
|
||||
All normal editing commands are switched off.
|
||||
\\<gnus-group-mode-map>
|
||||
The group buffer lists (some of) the groups available. For instance,
|
||||
The group buffer lists (some of) the groups available. For instance,
|
||||
`\\[gnus-group-list-groups]' will list all subscribed groups with unread articles, while `\\[gnus-group-list-zombies]'
|
||||
lists all zombie groups.
|
||||
|
||||
|
|
@ -2006,7 +2006,7 @@ and with point over the group in question."
|
|||
If the prefix argument ALL is non-nil, already read articles become
|
||||
readable. IF ALL is a number, fetch this number of articles. If the
|
||||
optional argument NO-ARTICLE is non-nil, no article will be
|
||||
auto-selected upon group entry. If GROUP is non-nil, fetch that
|
||||
auto-selected upon group entry. If GROUP is non-nil, fetch that
|
||||
group."
|
||||
(interactive "P")
|
||||
(let ((no-display (eq all 0))
|
||||
|
|
@ -2446,7 +2446,7 @@ ADDRESS."
|
|||
"Delete the current group. Only meaningful with editable groups.
|
||||
If FORCE (the prefix) is non-nil, all the articles in the group will
|
||||
be deleted. This is \"deleted\" as in \"removed forever from the face
|
||||
of the Earth\". There is no undo. The user will be prompted before
|
||||
of the Earth\". There is no undo. The user will be prompted before
|
||||
doing the deletion.
|
||||
Note that you also have to specify FORCE if you want the group to
|
||||
be removed from the server, even when it's empty."
|
||||
|
|
@ -2825,7 +2825,7 @@ Given a prefix, create a full group."
|
|||
(defun gnus-group-make-directory-group (dir)
|
||||
"Create an nndir group.
|
||||
The user will be prompted for a directory. The contents of this
|
||||
directory will be used as a newsgroup. The directory should contain
|
||||
directory will be used as a newsgroup. The directory should contain
|
||||
mail messages or news articles in files that have numeric names."
|
||||
(interactive
|
||||
(list (read-file-name "Create group from directory: ")))
|
||||
|
|
@ -3495,7 +3495,7 @@ group line."
|
|||
|
||||
(defun gnus-group-transpose-groups (n)
|
||||
"Move the current newsgroup up N places.
|
||||
If given a negative prefix, move down instead. The difference between
|
||||
If given a negative prefix, move down instead. The difference between
|
||||
N and the number of steps taken is returned."
|
||||
(interactive "p")
|
||||
(unless (gnus-group-group-name)
|
||||
|
|
@ -4211,7 +4211,7 @@ and the second element is the address."
|
|||
(unless entry
|
||||
(error "Trying to change non-existent group %s" method-only-group))
|
||||
;; We have received parts of the actual group info - either the
|
||||
;; select method or the group parameters. We first check
|
||||
;; select method or the group parameters. We first check
|
||||
;; whether we have to extend the info, and if so, do that.
|
||||
(let ((len (length info))
|
||||
(total (if (eq part 'method) 5 6)))
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue