1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-18 11:50:38 -08:00
Patches applied:

 * emacs@sv.gnu.org/emacs--devo--0--patch-413
   Update from CVS

 * emacs@sv.gnu.org/emacs--devo--0--patch-414
   Update from CVS

 * emacs@sv.gnu.org/emacs--devo--0--patch-415
   Update from CVS

 * emacs@sv.gnu.org/emacs--devo--0--patch-416
   Update from CVS

 * emacs@sv.gnu.org/emacs--devo--0--patch-417
   Update from CVS

 * emacs@sv.gnu.org/emacs--devo--0--patch-418
   Merge from gnus--rel--5.10

 * emacs@sv.gnu.org/emacs--devo--0--patch-419
   Update from CVS

 * emacs@sv.gnu.org/emacs--devo--0--patch-420
   Update from CVS

 * emacs@sv.gnu.org/emacs--devo--0--patch-421
   Merge from gnus--rel--5.10

 * emacs@sv.gnu.org/emacs--devo--0--patch-422
   Update from CVS

 * emacs@sv.gnu.org/emacs--devo--0--patch-423
   Update from CVS

 * emacs@sv.gnu.org/emacs--devo--0--patch-424
   Merge from gnus--rel--5.10

 * emacs@sv.gnu.org/emacs--devo--0--patch-425
   Update from CVS

 * emacs@sv.gnu.org/emacs--devo--0--patch-426
   Update from CVS

 * emacs@sv.gnu.org/emacs--devo--0--patch-427
   Update from CVS

 * emacs@sv.gnu.org/emacs--devo--0--patch-428
   Merge from gnus--rel--5.10

 * emacs@sv.gnu.org/emacs--devo--0--patch-429
   Update from CVS

 * emacs@sv.gnu.org/emacs--devo--0--patch-430
   Update from CVS

 * emacs@sv.gnu.org/emacs--devo--0--patch-431
   Merge from gnus--rel--5.10

 * emacs@sv.gnu.org/emacs--devo--0--patch-432
   Update from CVS

 * emacs@sv.gnu.org/emacs--devo--0--patch-433
   Update from CVS

 * emacs@sv.gnu.org/emacs--devo--0--patch-434
   Update from CVS

 * emacs@sv.gnu.org/emacs--devo--0--patch-435
   Update from CVS

 * emacs@sv.gnu.org/emacs--devo--0--patch-436
   Update from CVS

 * emacs@sv.gnu.org/emacs--devo--0--patch-437
   Update from CVS

 * emacs@sv.gnu.org/emacs--devo--0--patch-438
   Update from CVS

 * emacs@sv.gnu.org/emacs--devo--0--patch-439
   Update from CVS

 * emacs@sv.gnu.org/emacs--devo--0--patch-440
   Update from CVS

 * emacs@sv.gnu.org/emacs--devo--0--patch-441
   lisp/url/url-methods.el: Fix format error when http_proxy is empty string

 * emacs@sv.gnu.org/emacs--devo--0--patch-442
   Update from CVS

 * emacs@sv.gnu.org/emacs--devo--0--patch-443
   Update from CVS

 * emacs@sv.gnu.org/emacs--devo--0--patch-444
   Update from CVS

 * emacs@sv.gnu.org/emacs--devo--0--patch-445
   Update from CVS

 * emacs@sv.gnu.org/emacs--devo--0--patch-446
   Merge from gnus--rel--5.10

 * emacs@sv.gnu.org/emacs--devo--0--patch-447
   Update from CVS

 * emacs@sv.gnu.org/emacs--devo--0--patch-448
   Update from CVS

 * emacs@sv.gnu.org/emacs--devo--0--patch-449
   Update from CVS

 * emacs@sv.gnu.org/emacs--devo--0--patch-450
   Update from CVS

 * emacs@sv.gnu.org/emacs--devo--0--patch-451
   Update from CVS

 * emacs@sv.gnu.org/emacs--devo--0--patch-452
   Update from CVS

 * emacs@sv.gnu.org/emacs--devo--0--patch-453
   Update from CVS

 * emacs@sv.gnu.org/emacs--devo--0--patch-454
   Update from CVS

 * emacs@sv.gnu.org/emacs--devo--0--patch-455
   Update from CVS

 * emacs@sv.gnu.org/emacs--devo--0--patch-456
   Update from CVS

 * emacs@sv.gnu.org/emacs--devo--0--patch-457
   Update from CVS

 * emacs@sv.gnu.org/emacs--devo--0--patch-458
   Update from CVS

 * emacs@sv.gnu.org/emacs--devo--0--patch-459
   Merge from gnus--rel--5.10

 * emacs@sv.gnu.org/emacs--devo--0--patch-460
   Update from CVS

 * emacs@sv.gnu.org/emacs--devo--0--patch-461
   Update from CVS

 * emacs@sv.gnu.org/emacs--devo--0--patch-462
   Update from CVS

 * emacs@sv.gnu.org/emacs--devo--0--patch-463
   Update from CVS

 * emacs@sv.gnu.org/emacs--devo--0--patch-464
   Update from CVS

 * emacs@sv.gnu.org/emacs--devo--0--patch-465
   Update from CVS

 * emacs@sv.gnu.org/emacs--devo--0--patch-466
   Merge from gnus--rel--5.10

 * emacs@sv.gnu.org/emacs--devo--0--patch-467
   Update from CVS

 * emacs@sv.gnu.org/emacs--devo--0--patch-468
   Merge from gnus--rel--5.10

 * emacs@sv.gnu.org/emacs--devo--0--patch-469
   Update from CVS

 * emacs@sv.gnu.org/emacs--devo--0--patch-470
   Update from CVS

 * emacs@sv.gnu.org/emacs--devo--0--patch-471
   Update from CVS

 * emacs@sv.gnu.org/emacs--devo--0--patch-472
   Update from CVS

 * emacs@sv.gnu.org/emacs--devo--0--patch-473
   Update from CVS

 * emacs@sv.gnu.org/gnus--rel--5.10--patch-128
   Update from CVS

 * emacs@sv.gnu.org/gnus--rel--5.10--patch-129
   Merge from emacs--devo--0

 * emacs@sv.gnu.org/gnus--rel--5.10--patch-130
   Update from CVS

 * emacs@sv.gnu.org/gnus--rel--5.10--patch-131
   Update from CVS

 * emacs@sv.gnu.org/gnus--rel--5.10--patch-132
   Update from CVS

 * emacs@sv.gnu.org/gnus--rel--5.10--patch-133
   Update from CVS

 * emacs@sv.gnu.org/gnus--rel--5.10--patch-134
   Merge from emacs--devo--0

 * emacs@sv.gnu.org/gnus--rel--5.10--patch-135
   Update from CVS

 * emacs@sv.gnu.org/gnus--rel--5.10--patch-136
   Update from CVS

 * emacs@sv.gnu.org/gnus--rel--5.10--patch-137
   Update from CVS

 * emacs@sv.gnu.org/gnus--rel--5.10--patch-138
   Update from CVS

 * emacs@sv.gnu.org/gnus--rel--5.10--patch-139
   Update from CVS

 * emacs@sv.gnu.org/gnus--rel--5.10--patch-140
   Update from CVS

 * emacs@sv.gnu.org/gnus--rel--5.10--patch-141
   Merge from emacs--devo--0

 * emacs@sv.gnu.org/gnus--rel--5.10--patch-142
   Update from CVS

 * emacs@sv.gnu.org/gnus--rel--5.10--patch-143
   Update from CVS

 * emacs@sv.gnu.org/gnus--rel--5.10--patch-144
   Update from CVS

 * emacs@sv.gnu.org/gnus--rel--5.10--patch-145
   Merge from emacs--devo--0

 * emacs@sv.gnu.org/gnus--rel--5.10--patch-146
   Update from CVS

 * emacs@sv.gnu.org/gnus--rel--5.10--patch-147
   Update from CVS

 * emacs@sv.gnu.org/gnus--rel--5.10--patch-148
   Update from CVS

 * emacs@sv.gnu.org/gnus--rel--5.10--patch-149
   Update from CVS


git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-582
This commit is contained in:
Karoly Lorentey 2006-10-14 17:36:28 +00:00
commit 12b6af5c7e
312 changed files with 18192 additions and 8333 deletions

317
AUTHORS
View file

@ -12,7 +12,7 @@ Abraham Nahum: changed configure.in dgux4.h sysdep.c
Abramo Bagnara: changed term.c Abramo Bagnara: changed term.c
Adrian Aichner: changed erc-log.el erc.el erc-autojoin.el erc-backend.el Adrian Aichner: changed erc-log.el erc.el erc-autojoin.el erc-backend.el
erc-dcc.el erc-members.el erc-nets.el erc-sound.el erc-dcc.el erc-members.el erc-nets.el erc-sound.el etags.c
Adrian Colley: changed aix3-2.h Adrian Colley: changed aix3-2.h
@ -46,7 +46,7 @@ Albert L. Ting: changed gnus-group.el mail-hist.el
Alex Coventry: changed files.el Alex Coventry: changed files.el
Alex Ott: changed TUTORIAL.ru ispell.el ru-refcard.ps ru-refcard.tex Alex Ott: changed TUTORIAL.ru ru-refcard.tex ispell.el ru-refcard.ps
Alex Rezinsky: wrote which-func.el Alex Rezinsky: wrote which-func.el
@ -56,8 +56,8 @@ Alex Schroeder: wrote ansi-color.el cus-theme.el erc-compat.el
and changed erc.el erc-track.el erc-button.el erc-stamp.el erc-match.el and changed erc.el erc-track.el erc-button.el erc-stamp.el erc-match.el
erc-autoaway.el erc-nickserv.el Makefile erc-autojoin.el erc-fill.el erc-autoaway.el erc-nickserv.el Makefile erc-autojoin.el erc-fill.el
erc-pcomplete.el erc-complete.el erc-ibuffer.el erc-members.el erc-pcomplete.el erc-complete.el erc-ibuffer.el erc-members.el
comint.el custom.el erc-bbdb.el erc-chess.el erc-ezbounce.el rcirc.texi comint.el custom.el erc-bbdb.el erc-chess.el erc-ezbounce.el
erc-imenu.el erc-page.el and 24 other files erc-imenu.el and 24 other files
Alexander Klimov: changed man.el Alexander Klimov: changed man.el
@ -80,6 +80,8 @@ Alfred Correira: changed generic-x.el
Alfred M. Szmidt: changed compile.el html2text.el Alfred M. Szmidt: changed compile.el html2text.el
Alfredo Finelli: changed TUTORIAL.it
Ami Fischman: changed calendar.el diary-lib.el Ami Fischman: changed calendar.el diary-lib.el
Anders Holst: wrote hippie-exp.el Anders Holst: wrote hippie-exp.el
@ -110,11 +112,12 @@ Andreas Leue: changed artist.el
Andreas Luik: changed xfns.c xterm.c Andreas Luik: changed xfns.c xterm.c
Andreas Schwab: changed Makefile.in files.el lisp.h xdisp.c alloc.c Andreas Schwab: changed Makefile.in files.el lisp.h xdisp.c alloc.c
configure.in fns.c coding.c dired.el editfns.c info.el eval.c fileio.c configure.in fns.c print.c coding.c dired.el editfns.c info.el eval.c
print.c simple.el buffer.c minibuf.c xterm.c emacs.c keyboard.c fileio.c simple.el buffer.c minibuf.c xterm.c emacs.c keyboard.c
process.c and 443 other files process.c and 444 other files
Andreas Seltenreich: changed nnweb.el gnus-art.el gnus-ml.el gnus.texi Andreas Seltenreich: changed nnweb.el gnus-art.el gnus-ml.el gnus-srvr.el
gnus-start.el gnus-util.el gnus.el gnus.texi mm-url.el nnslashdot.el
url-cookie.el url-http.el url-cookie.el url-http.el
Andrew Choi: wrote mac-win.el Andrew Choi: wrote mac-win.el
@ -189,6 +192,8 @@ Benjamin Riefenstahl: changed emacs.c mac-win.el macterm.c ms-w32.h
Benjamin Rutt: changed vc.el diff-mode.el ffap.el nnmbox.el simple.el Benjamin Rutt: changed vc.el diff-mode.el ffap.el nnmbox.el simple.el
vc-cvs.el vc-cvs.el
Bill Atkins: changed wdired.el
Bill Burton: changed ptx.h sequent-ptx.h Bill Burton: changed ptx.h sequent-ptx.h
Bill Carpenter: wrote feedmail.el (public domain) Bill Carpenter: wrote feedmail.el (public domain)
@ -231,6 +236,8 @@ and changed isearch.el sendmail.el
Bob Halley: changed esh-io.el Bob Halley: changed esh-io.el
Bob Rogers: changed ffap.el
Bob Weiner: changed info.el quail.el Bob Weiner: changed info.el quail.el
Boris Goldowsky: wrote avoid.el descr-text.el enriched.el facemenu.el Boris Goldowsky: wrote avoid.el descr-text.el enriched.el facemenu.el
@ -304,17 +311,18 @@ Charlie Martin: wrote autoinsert.el
Cheng Gao: changed MORE.STUFF flymake.el tips.texi url-dired.el Cheng Gao: changed MORE.STUFF flymake.el tips.texi url-dired.el
url-file.el url-handlers.el url-http.el url-nfs.el url-file.el url-handlers.el url-http.el url-nfs.el
Chong Yidong: changed custom.el cus-edit.el longlines.el display.texi Chong Yidong: changed cus-edit.el custom.el simple.el display.texi
files.el files.texi simple.el text.texi custom.texi cus-theme.el longlines.el files.el text.texi custom.texi files.texi wid-edit.el
wid-edit.el xterm.c frames.texi info.el misc.texi mouse.el xfns.c cus-theme.el info.el keyboard.c xterm.c compile.el frames.texi
anti.texi dired.texi image.c keymaps.texi and 131 other files image-mode.el keymaps.texi misc.texi mouse.el sendmail.el
and 156 other files
Chris Hanson: changed xscheme.el scheme.el xterm.c hpux.h x11term.c 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 hp9000s300.h keyboard.c process.c texinfmt.el emacsclient.c sort.el
syntax.c texnfo-upd.el x11fns.c xfns.c dired.el fileio.c hp9000s800.h syntax.c texnfo-upd.el x11fns.c xfns.c dired.el fileio.c hp9000s800.h
indent.c info.el man.el and 17 other files indent.c info.el man.el and 17 other files
Chris Moore: changed wdired.el Chris Moore: changed dired.el wdired.el
Chris Prince: changed w32term.c Chris Prince: changed w32term.c
@ -378,10 +386,10 @@ Dan Christensen: changed gnus-sum.el nnfolder.el gnus-art.el
gnus-group.el gnus-score.el nnmail.el gnus-group.el gnus-score.el nnmail.el
Dan Nicolaescu: wrote iris-ansi.el romanian.el Dan Nicolaescu: wrote iris-ansi.el romanian.el
and changed term.el hideshow.el xterm.el isearch.el icon.el cus-edit.el and changed term.el xterm.el hideshow.el isearch.el icon.el lisp.h
font-lock.el lisp.h sh-script.el eterm-color.ti faces.el rxvt.el cus-edit.el font-lock.el sh-script.el eterm-color.ti faces.el
vhdl-mode.el bindings.el compile.el dabbrev.el grep.el ibuffer.el ibuffer.el rxvt.el vhdl-mode.el xterm.c bindings.el compile.el
imenu.el outline.el replace.el and 153 other files dabbrev.el grep.el imenu.el outline.el and 159 other files
Daniel Brockman: changed cus-start.el format-spec.el ibuffer.el rcirc.el Daniel Brockman: changed cus-start.el format-spec.el ibuffer.el rcirc.el
@ -425,7 +433,7 @@ Dave Love: wrote autoarg.el autoconf.el benchmark.el cfengine.el
welsh.el welsh.el
and changed configure.in Makefile.in help.el fortran.el browse-url.el and changed configure.in Makefile.in help.el fortran.el browse-url.el
mule-cmds.el simple.el xterm.c cus-edit.el files.el info.el mule.el mule-cmds.el simple.el xterm.c cus-edit.el files.el info.el mule.el
wid-edit.el vc.el fns.c rfc2047.el bindings.el cus-start.el buffer.c wid-edit.el fns.c vc.el rfc2047.el bindings.el cus-start.el buffer.c
byte-opt.el bytecomp.el and 729 other files byte-opt.el bytecomp.el and 729 other files
Dave Pearson: wrote 5x5.el quickurl.el Dave Pearson: wrote 5x5.el quickurl.el
@ -470,10 +478,9 @@ David J. Mackenzie: changed configure.in etags.c fakemail.c movemail.c
etags-vmslib.c fortran.el hexl.c isearch.el and 12 other files etags-vmslib.c fortran.el hexl.c isearch.el and 12 other files
David Kastrup: changed greek.el replace.el search.c ange-ftp.el faq.texi David Kastrup: changed greek.el replace.el search.c ange-ftp.el faq.texi
calc.el meta-mode.el process.c search.texi DEBUG MAILINGLISTS help.el mouse.el Makefile.in calc.el desktop.el keymaps.texi
Makefile.in autoload.el browse-url.el buffer.c building.texi meta-mode.el process.c search.texi DEBUG MAILINGLISTS autoload.el
calc-alg.el configure.in cus-theme.el desktop.el dispnew.c browse-url.el buffer.c building.texi calc-alg.el and 30 other files
and 21 other files
David K,Ae(Bgedal: wrote tempo.el David K,Ae(Bgedal: wrote tempo.el
and changed sendmail.el xmenu.c and changed sendmail.el xmenu.c
@ -530,6 +537,8 @@ Deepak Goel: changed README ada-mode.el ada-xref.el appt.el apropos.el
Denis Howe: wrote browse-url.el Denis Howe: wrote browse-url.el
Denis St,A|(Bnkel: changed ibuf-ext.el
Derek Atkins: changed pgg-pgp.el Derek Atkins: changed pgg-pgp.el
Derek L. Davies: changed gud.el Derek L. Davies: changed gud.el
@ -542,7 +551,7 @@ Diane Murray: changed erc.el erc-button.el erc-menu.el erc-match.el
erc-track.el erc-nets.el erc-backend.el erc-list.el erc-nickserv.el erc-track.el erc-nets.el erc-backend.el erc-list.el erc-nickserv.el
erc-autoaway.el erc-stamp.el erc-compat.el erc-goodies.el erc-log.el erc-autoaway.el erc-stamp.el erc-compat.el erc-goodies.el erc-log.el
Makefile erc-fill.el erc-ibuffer.el erc-notify.el erc-ring.el Makefile erc-fill.el erc-ibuffer.el erc-notify.el erc-ring.el
erc-speak.el erc-speedbar.el and 22 other files erc-speak.el erc-speedbar.el and 25 other files
Dick King: wrote uniquify.el Dick King: wrote uniquify.el
@ -584,8 +593,8 @@ and changed diary.el tex-mode.el cal-tex.el cal-mayan.el holiday.el
Edward O'connor: changed erc.el erc-viper.el erc-log.el erc-track.el Edward O'connor: changed erc.el erc-viper.el erc-log.el erc-track.el
viper.el erc-backend.el erc-chess.el erc-dcc.el erc-ezbounce.el viper.el erc-backend.el erc-chess.el erc-dcc.el erc-ezbounce.el
erc-list.el erc-macs.el erc-match.el erc-ring.el erc-stamp.el erc-goodies.el erc-list.el erc-macs.el erc-match.el erc-ring.el
goto-addr.el erc-stamp.el goto-addr.el
Edwin Steiner: changed gnus-nocem.el Edwin Steiner: changed gnus-nocem.el
@ -601,8 +610,8 @@ Eli Tziperman: wrote rmail-spam-filter.el
Eli Zaretskii: wrote codepage.el rxvt.el tty-colors.el Eli Zaretskii: wrote codepage.el rxvt.el tty-colors.el
and changed msdos.c Makefile.in files.el makefile.w32-in info.el fileio.c and changed msdos.c Makefile.in files.el makefile.w32-in info.el fileio.c
startup.el mainmake.v2 config.bat menu-bar.el pc-win.el simple.el startup.el mainmake.v2 config.bat menu-bar.el pc-win.el simple.el
internal.el msdos.h xfaces.c rmail.el dosfns.c frame.c faces.el emacs.c internal.el msdos.h xfaces.c frame.c rmail.el dosfns.c faces.el
frame.el and 512 other files frame.el emacs.c and 517 other files
Emanuele Giaquinta: changed rxvt.el configure.in etags.c frame.el Emanuele Giaquinta: changed rxvt.el configure.in etags.c frame.el
sh-script.el text.texi sh-script.el text.texi
@ -628,8 +637,8 @@ Eric Decker: changed hp9000s800.h hpux.h sysdep.c
Eric Ding: wrote goto-addr.el Eric Ding: wrote goto-addr.el
and changed mh-utils.el mh-e.el mh-comp.el mh-mime.el and changed mh-utils.el mh-e.el mh-comp.el mh-mime.el
Eric Hanchrow: changed TUTORIAL.es abbrev.el autorevert.el dired.el Eric Hanchrow: changed TUTORIAL.es abbrev.el autorevert.el delphi.el
emacsclient.c ispell.el make-dist dired.el emacsclient.c ispell.el make-dist
Eric M. Ludlam: wrote checkdoc.el dframe.el ezimage.el sb-image.el Eric M. Ludlam: wrote checkdoc.el dframe.el ezimage.el sb-image.el
speedbar.el speedbar.el
@ -686,6 +695,8 @@ Flemming Hoejstrup Hansen: changed forms.el
Florian Weimer: changed message.el coding.c gnus-art.el gnus.el gnus.texi Florian Weimer: changed message.el coding.c gnus-art.el gnus.el gnus.texi
mm-util.el mm-util.el
Francesc Rocher: changed cus-start.el macterm.c w32term.c xdisp.c xterm.c
Francesco Potort,Al(B: wrote cmacexp.el Francesco Potort,Al(B: wrote cmacexp.el
and changed etags.c man.el delta.h undigest.el comint.el configure.in and changed etags.c man.el delta.h undigest.el comint.el configure.in
uniquify.el etags.1 latin-post.el rmail.el etags.el latin-alt.el uniquify.el etags.1 latin-post.el rmail.el etags.el latin-alt.el
@ -699,7 +710,7 @@ Francis Litterio: changed erc.el erc-list.el erc-dcc.el erc-notify.el
erc-button.el erc-goodies.el erc-nets.el erc-ring.el Makefile erc-button.el erc-goodies.el erc-nets.el erc-ring.el Makefile
erc-pcomplete.el erc-backend.el erc-ibuffer.el erc-match.el erc-pcomplete.el erc-backend.el erc-ibuffer.el erc-match.el
erc-nickserv.el erc-page.el erc-speedbar.el keymaps.texi message.el erc-nickserv.el erc-page.el erc-speedbar.el keymaps.texi message.el
os.texi saveplace.el xterm.c xterm.h os.texi saveplace.el w32term.c and 3 other files
Francois Felix Ingrand: changed gnus-salt.el Francois Felix Ingrand: changed gnus-salt.el
@ -795,7 +806,7 @@ Glenn Morris: changed f90.el diary-lib.el calendar.el fortran.el
calendar.texi appt.el sh-script.el timeclock.el cal-menu.el calendar.texi appt.el sh-script.el timeclock.el cal-menu.el
cal-hebrew.el cal-islam.el files.el holidays.el programs.texi 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 scroll-all.el startup.el cal-coptic.el cal-julian.el cal-move.el
cal-tex.el cal-x.el and 36 other files cal-tex.el cal-x.el and 37 other files
Glynn Clements: wrote gamegrid.el snake.el tetris.el Glynn Clements: wrote gamegrid.el snake.el tetris.el
@ -824,7 +835,7 @@ Guillermo J. Rozas: wrote fakemail.c
Gunnar Horrigmo: changed gnus-sum.el Gunnar Horrigmo: changed gnus-sum.el
Gustav H,Ae(Bllberg: changed compile.el Gustav H,Ae(Bllberg: changed compile.el rect.el
Guy Geens: changed gnus-score.el Guy Geens: changed gnus-score.el
@ -959,9 +970,9 @@ and changed bytecode.c mail-extr.el subr.el
Jan Dj,Ad(Brv: wrote dnd.el x-dnd.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 and changed gtkutil.c xterm.c xfns.c xmenu.c xterm.h gtkutil.h
configure.in Makefile.in config.in configure frames.texi keyboard.c configure.in keyboard.c Makefile.in config.in frames.texi configure
emacs.c x-win.el xselect.c xlwmenu.c alloc.c startup.el xdisp.c x-win.el emacs.c xselect.c alloc.c xlwmenu.c startup.el xdisp.c
xresources.texi fileio.c and 168 other files xresources.texi cus-start.el and 172 other files
Jan Nieuwenhuizen: changed info.el TUTORIAL.nl emacs.c emacsclient.c Jan Nieuwenhuizen: changed info.el TUTORIAL.nl emacs.c emacsclient.c
gnus-start.el gud.el nnmh.el server.el startup.el gnus-start.el gud.el nnmh.el server.el startup.el
@ -983,13 +994,13 @@ Jason Rumney: wrote w32-vars.el
and changed w32fns.c w32term.c w32menu.c w32-win.el w32term.h 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 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 w32gui.h w32proc.c keyboard.c mule-cmds.el emacs.c fileio.c w32bdf.h
w32inevt.c config.nt configure.bat and 77 other files w32inevt.c config.nt configure.bat and 79 other files
Jay Belanger: changed calc.texi calc.el calc-ext.el calc-embed.el 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 calc-aent.el calc-prog.el calc-arith.el calc-help.el calc-lang.el
calcalg2.el calc-graph.el calc-store.el calc-units.el calc-misc.el calcalg2.el COPYING calc-graph.el calc-store.el calc-units.el
calc-yank.el calc-alg.el calc-poly.el calccomp.el calc-mode.el calc-misc.el calc-yank.el calc-alg.el calc-poly.el calccomp.el
calc-vec.el calc-forms.el and 26 other files calc-mode.el calc-rewr.el and 34 other files
Jay K. Adams: wrote jka-cmpr-hook.el jka-compr.el Jay K. Adams: wrote jka-cmpr-hook.el jka-compr.el
@ -999,6 +1010,8 @@ Jean-Philippe Theberge: wrote thumbs.el
Jeff Dwork: changed ehelp.el facemenu.el Jeff Dwork: changed ehelp.el facemenu.el
Jeff Miller: changed appt.el
Jeff Morgenthaler: changed flow-ctrl.el vt200.el vt201.el vt220.el Jeff Morgenthaler: changed flow-ctrl.el vt200.el vt201.el vt220.el
vt240.el vt240.el
@ -1056,6 +1069,8 @@ Jim Thompson: wrote ps-print.el
Jim Wilson: changed Makefile.in alloca.c Jim Wilson: changed Makefile.in alloca.c
Jindrich Makovicka: changed eval.c fns.c
Jirka Kosek: changed mule.el Jirka Kosek: changed mule.el
Joakim Hove: wrote html2text.el Joakim Hove: wrote html2text.el
@ -1092,10 +1107,10 @@ Joel Ray Holveck: changed gnus-sum.el info.el
Joev Dubach: changed nntp.el Joev Dubach: changed nntp.el
Johan Bockg,Ae(Brd: changed erc.el erc-backend.el cl-macs.el erc-match.el Johan Bockg,Ae(Brd: changed erc.el erc-backend.el cl-macs.el erc-match.el
erc-nickserv.el erc-ring.el erc-speak.el erc-track.el align.el erc-nickserv.el erc-ring.el erc-speak.el erc-track.el simple.el
calendar.el cl.texi custom.el dired-aux.el display.texi erc-bbdb.el align.el calendar.el cl.texi custom.el dired-aux.el display.texi
erc-button.el erc-compat.el erc-dcc.el erc-list.el erc-log.el erc-bbdb.el erc-button.el erc-compat.el erc-dcc.el erc-list.el
erc-nicklist.el and 9 other files erc-log.el and 10 other files
Johan Vromans: wrote forms-d2.el forms.el iso-acc.el Johan Vromans: wrote forms-d2.el forms.el iso-acc.el
and changed complete.el and changed complete.el
@ -1110,7 +1125,7 @@ John Grabowski: changed xfaces.c xfns.c
John H. Palmieri: changed gnus-fun.el John H. Palmieri: changed gnus-fun.el
John Heidemann: wrote mouse-copy.el mouse-drag.el zone-mode.el John Heidemann: wrote mouse-copy.el mouse-drag.el
John Hughes: changed term.c John Hughes: changed term.c
@ -1118,8 +1133,8 @@ John Mongan: changed f90.el
John Paul Wallington: changed ibuffer.el ibuf-ext.el subr.el files.el John Paul Wallington: changed ibuffer.el ibuf-ext.el subr.el files.el
help-fns.el thumbs.el fns.c rmail.el bindings.el bytecomp.el help-fns.el thumbs.el fns.c rmail.el bindings.el bytecomp.el
cus-theme.el info.el re-builder.el startup.el xfns.c apropos.el cus-theme.el info.el re-builder.el simple.el startup.el xfns.c
arc-mode.el browse-url.el comint.el cus-start.el display.texi apropos.el arc-mode.el browse-url.el comint.el cus-start.el
and 115 other files and 115 other files
John Robinson: wrote bg-mouse.el John Robinson: wrote bg-mouse.el
@ -1166,7 +1181,7 @@ and changed erc.el erc-track.el erc-backend.el erc-match.el erc-stamp.el
erc-button.el erc-fill.el erc-truncate.el erc-compat.el erc-members.el erc-button.el erc-fill.el erc-truncate.el erc-compat.el erc-members.el
Makefile erc-dcc.el erc-ibuffer.el erc-page.el erc-pcomplete.el Makefile erc-dcc.el erc-ibuffer.el erc-page.el erc-pcomplete.el
erc-sound.el erc-bbdb.el erc-imenu.el erc-lang.el erc-list.el erc-sound.el erc-bbdb.el erc-imenu.el erc-lang.el erc-list.el
erc-macs.el and 8 other files erc-macs.el and 9 other files
Jose E. Marchesi: changed smtpmail.el Jose E. Marchesi: changed smtpmail.el
@ -1194,7 +1209,7 @@ and changed files.el perl-mode.el
Juanma Barranquero: changed makefile.w32-in help-fns.el subr.el faces.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 files.el w32fns.c cperl-mode.el replace.el simple.el eval.c
sh-script.el vhdl-mode.el comint.el org.el xdisp.c allout.el bs.el sh-script.el vhdl-mode.el comint.el org.el xdisp.c allout.el bs.el
desktop.el idlwave.el keyboard.c process.c and 549 other files desktop.el idlwave.el keyboard.c process.c and 550 other files
Juergen Hoetzel: changed url-handlers.el Juergen Hoetzel: changed url-handlers.el
@ -1208,8 +1223,8 @@ Jure Cuhalev: changed ispell.el
Juri Linkov: changed info.el simple.el isearch.el replace.el compile.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 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 mule.el dired-aux.el edebug.el files.el lisp-mode.el lisp.el modes.texi mule.el
compare-w.el desktop.el files.texi font-lock.el and 218 other files compare-w.el desktop.el files.texi and 220 other files
Justin Sheehy: changed gnus-sum.el nntp.el Justin Sheehy: changed gnus-sum.el nntp.el
@ -1236,10 +1251,10 @@ Kailash C. Chowksey: changed HELLO Makefile.in ind-util.el kannada.el
knd-util.el loadup.el makefile.w32-in knd-util.el loadup.el makefile.w32-in
Karl Berry: changed info.texi emacs.texi elisp.texi emacs-xtra.texi Karl Berry: changed info.texi emacs.texi elisp.texi emacs-xtra.texi
filelock.c building.texi cmdargs.texi copyright.el dired.c faq.texi filelock.c anti.texi building.texi cmdargs.texi copyright.el
gnu.texi help.texi macos.texi msdog.texi mule.texi sending.texi custom.texi customize.texi dired.c display.texi faq.texi frames.texi
texinfo.el texinfo.tex abbrevs.texi ada-mode.texi anti.texi gnu.texi help.texi macos.texi minibuf.texi msdog.texi mule.texi
and 54 other files and 65 other files
Karl Chen: changed files.el align.el cc-vars.el gnus-art.el help-mode.el Karl Chen: changed files.el align.el cc-vars.el gnus-art.el help-mode.el
jka-cmpr-hook.el make-mode.el perl-mode.el python.el tex-mode.el jka-cmpr-hook.el make-mode.el perl-mode.el python.el tex-mode.el
@ -1249,8 +1264,8 @@ Karl Eichwalder: changed Makefile.in add-log.el bookmark.el dired-aux.el
dired.el info.el menu-bar.el midnight.el po.el dired.el info.el menu-bar.el midnight.el po.el
Karl Fogel: wrote bookmark.el mail-hist.el saveplace.el Karl Fogel: wrote bookmark.el mail-hist.el saveplace.el
and changed isearch.el menu-bar.el autogen.sh editfns.c vc-svn.el and changed isearch.el menu-bar.el autogen.sh editfns.c nnmail.el
window.c vc-svn.el window.c
Karl Heuer: changed keyboard.c lisp.h xdisp.c buffer.c xfns.c xterm.c Karl Heuer: changed keyboard.c lisp.h xdisp.c buffer.c xfns.c xterm.c
alloc.c files.el frame.c configure.in window.c data.c minibuf.c alloc.c files.el frame.c configure.in window.c data.c minibuf.c
@ -1269,8 +1284,8 @@ Katsuhiro Hermit Endo: changed gnus-spec.el
Katsumi Yamaoka: wrote canlock.el Katsumi Yamaoka: wrote canlock.el
and changed gnus-art.el message.el gnus-sum.el gnus.texi mm-decode.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 gnus.el mm-util.el lpath.el mm-view.el gnus-util.el gnus-msg.el gnus.el mm-util.el lpath.el
gnus-start.el gnus-group.el mm-uu.el dgnushack.el gnus-agent.el nntp.el gnus-start.el rfc2047.el gnus-group.el mm-uu.el dgnushack.el
mml.el nnrss.el rfc2047.el rfc2231.el and 69 other files gnus-agent.el nntp.el mml.el nnrss.el nnheader.el and 71 other files
Kaveh R. Ghazi: changed delta88k.h xterm.c Kaveh R. Ghazi: changed delta88k.h xterm.c
@ -1307,9 +1322,9 @@ Ken Stevens: wrote ispell.el
Kenichi Handa: wrote cyrillic.el isearch-x.el py-punct.el pypunct-b5.el Kenichi Handa: wrote cyrillic.el isearch-x.el py-punct.el pypunct-b5.el
quail.el thai-word.el quail.el thai-word.el
and changed coding.c mule-cmds.el mule.el charset.c fileio.c xterm.c and changed coding.c mule-cmds.el mule.el charset.c fileio.c xterm.c
fns.c ccl.c mule-conf.el Makefile.in fontset.c charset.h coding.h fns.c ccl.c Makefile.in mule-conf.el fontset.c charset.h coding.h
fontset.el mule-diag.el xdisp.c editfns.c process.c insdel.c fontset.el mule-diag.el xdisp.c editfns.c process.c insdel.c
japanese.el characters.el and 276 other files japanese.el characters.el and 277 other files
Kenneth Stailey: changed alpha.h configure.in ns32000.h openbsd.h pmax.h Kenneth Stailey: changed alpha.h configure.in ns32000.h openbsd.h pmax.h
sparc.h unexalpha.c unexelf.c sparc.h unexalpha.c unexelf.c
@ -1345,17 +1360,17 @@ Kevin Rodgers: changed compile.el mailabbrev.el dired-x.el simple.el
Kevin Ryde: wrote info-xref.el Kevin Ryde: wrote info-xref.el
and changed info-look.el info.el gnus-art.el gnus-sum.el mailcap.el and changed info-look.el info.el gnus-art.el gnus-sum.el mailcap.el
text.texi MORE.STUFF cc-align.el cmdargs.texi compile.texi display.texi os.texi text.texi MORE.STUFF cc-align.el cmdargs.texi compile.texi
em-alias.el em-dirs.el em-hist.el em-unix.el emacs-lisp-intro.texi display.texi em-alias.el em-dirs.el em-hist.el em-unix.el
ffap.el frames.texi glossary.texi gnus.texi makeinfo.el emacs-lisp-intro.texi ffap.el frames.texi glossary.texi gnus.texi
and 12 other files and 12 other files
Kim F. Storm: wrote animage.el bindat.el cua-base.el cua-gmrk.el Kim F. Storm: wrote bindat.el cua-base.el cua-gmrk.el cua-rect.el
cua-rect.el ido.el keypad.el kmacro.el ido.el keypad.el kmacro.el
and changed xdisp.c dispextern.h simple.el xterm.c process.c window.c and changed xdisp.c dispextern.h simple.el window.c xterm.c keyboard.c
keyboard.c w32term.c subr.el dispnew.c fringe.c lisp.h macterm.c process.c w32term.c dispnew.c subr.el lisp.h fringe.c macterm.c
display.texi fns.c xfaces.c alloc.c xterm.h info.el xfns.c .gdbinit display.texi fns.c alloc.c xfaces.c xfns.c xterm.h keymap.c .gdbinit
and 226 other files and 238 other files
Kim-Minh Kaplan: changed gnus-picon.el gnus-sum.el gnus-start.el Kim-Minh Kaplan: changed gnus-picon.el gnus-sum.el gnus-start.el
gnus-win.el gnus-xmas.el gnus.texi message.el nndraft.el nnml.el gnus-win.el gnus-xmas.el gnus.texi message.el nndraft.el nnml.el
@ -1389,7 +1404,9 @@ and changed saveconf.el buffer.c mail-utils.el sendmail.el
Kyotaro Horiguchi: changed coding.c indent.c Kyotaro Horiguchi: changed coding.c indent.c
K,Aa(Broly L$,1 q(Brentey: changed keyboard.c coding.c xfns.c xterm.c xterm.h K,Aa(Broly L$,1 q(Brentey: changed xfns.c bindings.el keyboard.c HELLO authors.el
buff-menu.el buffer.c buffers.texi cmds.c coding.c editfns.c frame.el
menu-bar.el print.c simple.el xdisp.c xterm.c xterm.h
Larry Kolodney: wrote cvtmail.c Larry Kolodney: wrote cvtmail.c
@ -1440,8 +1457,8 @@ and changed fortran.el ispell.el sendmail.el cmuscheme.el comint.el
Leigh Stoller: changed emacsclient.c emacsserver.c server.el Leigh Stoller: changed emacsclient.c emacsserver.c server.el
Lennart Borgman: changed mouse.el recentf.el texinfmt.el w32term.c Lennart Borgman: changed window.el mouse.el recentf.el texinfmt.el
w32term.h window.el w32term.c w32term.h
Lennart Staflin: changed dired.el diary-ins.el diary-lib.el tq.el xdisp.c Lennart Staflin: changed dired.el diary-ins.el diary-lib.el tq.el xdisp.c
@ -1461,17 +1478,13 @@ Lucid, Inc.: changed byte-opt.el byte-run.el bytecode.c bytecomp.el
mailabbrev.el select.el xfaces.c xselect.c mailabbrev.el select.el xfaces.c xselect.c
Lute Kamstra: changed modes.texi generic.el debug.el generic-x.el Lute Kamstra: changed modes.texi generic.el debug.el generic-x.el
font-lock.el subr.el debugging.texi easy-mmode.el elisp.texi hl-line.el font-lock.el subr.el Makefile.in debugging.texi easy-mmode.el
simple.el Makefile.in battery.el bindings.el calc.el cmdargs.texi elisp.texi hl-line.el simple.el battery.el bindings.el calc.el
edebug.texi emacs.texi info.el make-tarball.txt octave-inf.el cmdargs.texi edebug.texi emacs.texi info.el make-tarball.txt
and 217 other files octave-inf.el and 217 other files
Lynn Slater: wrote help-macro.el Lynn Slater: wrote help-macro.el
L$,1 q(Brentey K,Aa(Broly: changed bindings.el xfns.c buff-menu.el buffer.c
buffers.texi cmds.c editfns.c frame.el menu-bar.el print.c simple.el
xdisp.c
MCC: wrote xmenu.c MCC: wrote xmenu.c
and changed emacsclient.c emacsserver.c etags.c lisp.h movemail.c and changed emacsclient.c emacsserver.c etags.c lisp.h movemail.c
rmail.el rmailedit.el rmailkwd.el rmailmsc.el rmailout.el rmailsum.el rmail.el rmailedit.el rmailkwd.el rmailmsc.el rmailout.el rmailsum.el
@ -1479,7 +1492,7 @@ and changed emacsclient.c emacsserver.c etags.c lisp.h movemail.c
Maciek Pasternacki: changed nnrss.el Maciek Pasternacki: changed nnrss.el
Magnus Henoch: changed ispell.el Magnus Henoch: changed ispell.el rcirc.el
Manuel Serrano: wrote flyspell.el Manuel Serrano: wrote flyspell.el
@ -1577,9 +1590,10 @@ Martin Lorentzon: changed vc.el vc-cvs.el vc-hooks.el vc-rcs.el
Martin Neitzel: changed sc.el Martin Neitzel: changed sc.el
Martin Rudalics: changed cus-edit.el wid-edit.el font-lock.el syntax.c Martin Rudalics: changed cus-edit.el wid-edit.el cus-start.el files.el
custom.el fileio.c files.el find-func.el hideif.el info.el insdel.c font-lock.el insdel.c syntax.c buffer.c buffer.h casefiddle.c custom.el
lisp-mode.el midnight.el mouse.el mwheel.el re-builder.el widget.el dispextern.h editfns.c eldoc.el fileio.c find-func.el hideif.el info.el
jit-lock.el lisp-mode.el lisp.h and 13 other files
Martin Stjernholm: wrote cc-bytecomp.el Martin Stjernholm: wrote cc-bytecomp.el
and changed cc-engine.el cc-cmds.el cc-langs.el cc-defs.el cc-mode.el and changed cc-engine.el cc-cmds.el cc-langs.el cc-defs.el cc-mode.el
@ -1596,9 +1610,9 @@ and changed gnuspost.el
Masatake Yamato: wrote cc-subword.el ld-script.el Masatake Yamato: wrote cc-subword.el ld-script.el
and changed etags.el asm-mode.el xdisp.c bindings.el hexl.el man.el and changed etags.el asm-mode.el xdisp.c bindings.el hexl.el man.el
simple.el wid-edit.el compile.el faces.el pcvs.el register.el simple.el wid-edit.el add-log.el compile.el faces.el pcvs.el
ruler-mode.el add-log.el buffer.c cus-face.el dired-x.el display.texi register.el ruler-mode.el buffer.c cus-face.el dired-x.el display.texi
font-lock.el gdb-ui.el gud.el and 56 other files etags.c font-lock.el gdb-ui.el and 57 other files
Masayuki Ataka: changed texinfmt.el texinfo.el characters.el make-mode.el Masayuki Ataka: changed texinfmt.el texinfo.el characters.el make-mode.el
@ -1679,18 +1693,18 @@ and changed ediff-merge.el ediff*.el viper*.el ediff-hooks.el menu-bar.el
viper-utils.el appt.el desktop.el ediff-meta.el ediff-nult.el viper-utils.el appt.el desktop.el ediff-meta.el ediff-nult.el
ediff.texi viper-mouse.el viper.texi ediff.texi viper-mouse.el viper.texi
Michael Olson: changed erc.el erc-backend.el Makefile erc-stamp.el Michael Olson: changed erc.el erc-backend.el Makefile erc.texi
erc-track.el erc-dcc.el erc-identd.el erc-match.el erc-notify.el erc-stamp.el erc-log.el erc-autoaway.el erc-identd.el erc-track.el
erc.texi erc-ibuffer.el erc-list.el erc-autoaway.el erc-bbdb.el erc-match.el erc-dcc.el erc-notify.el erc-goodies.el erc-ibuffer.el
erc-compat.el erc-goodies.el erc-log.el erc-nicklist.el erc-list.el erc-pcomplete.el erc-spelling.el erc-bbdb.el erc-compat.el
erc-pcomplete.el erc-spelling.el erc-*.el and 39 other files erc-nicklist.el and 42 other files
Michael Piotrowski: changed ps-print.el Michael Piotrowski: changed ps-print.el
Michael R. Cook: changed gnus-topic.el gnus-art.el gnus-sum.el Michael R. Cook: changed gnus-topic.el gnus-art.el gnus-sum.el
Michael R. Mauger: changed sql.el cua-base.el facemenu.el recentf.el Michael R. Mauger: changed sql.el cua-base.el custom.el facemenu.el
replace.el tramp.el w32fns.c recentf.el replace.el tramp.el w32fns.c
Michael R. Wolf: changed ange-ftp.el Michael R. Wolf: changed ange-ftp.el
@ -1705,14 +1719,17 @@ Michael Sperber [Mr. Preprocessor]: changed aix3-1.h aix4-2.h
Michael Staats: wrote pc-select.el Michael Staats: wrote pc-select.el
Michael Welsh Duggan: changed lisp.h w32term.c buffer.c gnus-spec.el Michael Welsh Duggan: changed lisp.h sh-script.el w32term.c buffer.c
keyboard.c nnmail.el termhooks.h url-http.el w32-win.el w32fns.c gnus-spec.el keyboard.c nnmail.el termhooks.h url-http.el w32-win.el
w32menu.c w32term.h xdisp.c xterm.c w32fns.c w32menu.c w32term.h xdisp.c xterm.c
Michal Jankowski: changed insdel.c keyboard.c Michal Jankowski: changed insdel.c keyboard.c
Micha,Ak(Bl Cadilhac: changed ispell.el dispnew.c make-mode.el pong.el Michal Nazarewicz: changed ispell.el
print.c process.c
Micha,Ak(Bl Cadilhac: changed ispell.el cus-edit.el dispnew.c ido.el info.el
life.el lpr.el make-mode.el pong.el print.c process.c startup.el
uni-input.el
Michelangelo Grigni: wrote ffap.el Michelangelo Grigni: wrote ffap.el
and changed gnus-score.el and changed gnus-score.el
@ -1742,8 +1759,8 @@ Mikio Nakajima: changed ring.el viper-util.el
Milan Zamazal: wrote czech.el glasses.el tildify.el Milan Zamazal: wrote czech.el glasses.el tildify.el
and changed slovak.el abbrev.el compile.el filecache.el files.el and changed slovak.el abbrev.el compile.el filecache.el files.el
Miles Bader: wrote button.el image-file.el macroexp.el mb-depth.el Miles Bader: wrote button.el image-file.el macroexp.el minibuf-eldef.el
minibuf-eldef.el rfn-eshadow.el rfn-eshadow.el
and changed comint.el faces.el simple.el editfns.c xfaces.c info.el and changed comint.el faces.el simple.el editfns.c xfaces.c info.el
xdisp.c minibuf.c wid-edit.el xterm.c subr.el window.el cus-edit.el xdisp.c minibuf.c wid-edit.el xterm.c subr.el window.el cus-edit.el
diff-mode.el dispextern.h xfns.c help.el lisp.h quick-install-emacs diff-mode.el dispextern.h xfns.c help.el lisp.h quick-install-emacs
@ -1752,7 +1769,7 @@ and changed comint.el faces.el simple.el editfns.c xfaces.c info.el
Miyashita Hisashi: changed ccl.c coding.c coding.h mule-cmds.el Miyashita Hisashi: changed ccl.c coding.c coding.h mule-cmds.el
mule-conf.el mule.el pop3.el mule-conf.el mule.el pop3.el
Miyoshi Masanori: changed mouse.el xdisp.c Miyoshi Masanori: changed mouse.el smtpmail.el xdisp.c
Morioka Tomohiko: changed rmail.el rmailout.el rmailsum.el fns.c Morioka Tomohiko: changed rmail.el rmailout.el rmailsum.el fns.c
message.el nnheader.el nnmail.el rmailkwd.el smiley.el message.el nnheader.el nnmail.el rmailkwd.el smiley.el
@ -1779,6 +1796,8 @@ Nachum Dershowitz: wrote cal-hebrew.el
Nagy Andras: wrote gnus-sieve.el Nagy Andras: wrote gnus-sieve.el
and changed imap.el and changed imap.el
Nakaji Hiroyuki: changed mm-util.el
Nakamura Toshikazu: changed w32fns.c Nakamura Toshikazu: changed w32fns.c
NeXT, Inc.: wrote unexnext.c NeXT, Inc.: wrote unexnext.c
@ -1799,10 +1818,10 @@ Nevin Kapur: changed nnmail.el gnus-group.el gnus-sum.el gnus.el
Niall Mansfield: changed etags.c Niall Mansfield: changed etags.c
Nick Roberts: wrote gdb-ui.el Nick Roberts: wrote gdb-ui.el
and changed gud.el building.texi tooltip.el speedbar.el thumbs.el and changed gud.el building.texi tooltip.el speedbar.el thumbs.el DEBUG
cc-mode.el DEBUG subr.el xt-mouse.el .gdbinit comint.el frames.texi cc-mode.el frames.texi subr.el xt-mouse.el .gdbinit bindings.el
bindings.el descr-text.el display.texi gud-display.pbm help-mode.el comint.el display.texi help-mode.el descr-text.el gud-display.pbm
speedbar.texi tumme.el xdisp.c byte-run.el and 105 other files speedbar.texi tumme.el xdisp.c byte-run.el and 112 other files
Nico Francois: changed w32fns.c w32inevt.c w32menu.c Nico Francois: changed w32fns.c w32inevt.c w32menu.c
@ -1848,6 +1867,8 @@ Olivier Lecarme: changed make-mode.el ange-ftp.el apropos.el bibtex.el
Olli Savia: changed etags.c syssignal.h Olli Savia: changed etags.c syssignal.h
Osamu Yamane: changed smtpmail.el
Oscar Figueiredo: wrote eudc-bob.el eudc-export.el eudc-hotlist.el 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 eudc-vars.el eudc.el eudcb-bbdb.el eudcb-ldap.el eudcb-ph.el ldap.el
and changed ph.el and changed ph.el
@ -1869,7 +1890,7 @@ Paul Eggert: wrote cal-dst.el rcs2log vcdiff
and changed editfns.c vc.el Makefile.in configure.in vc-hooks.el data.c and changed editfns.c vc.el Makefile.in configure.in vc-hooks.el data.c
emacs.c gnus.el calendar.el config.in floatfns.c process.c sysdep.c emacs.c gnus.el calendar.el config.in floatfns.c process.c sysdep.c
dired.el xterm.c callproc.c fileio.c filelock.c lread.c print.c dired.el xterm.c callproc.c fileio.c filelock.c lread.c print.c
rmail.el and 287 other files rmail.el and 290 other files
Paul Fisher: changed fns.c Paul Fisher: changed fns.c
@ -1976,6 +1997,8 @@ Pinku Surana: changed sql.el
Pmr-Sav: changed mail-utils.el rmail.el Pmr-Sav: changed mail-utils.el rmail.el
Primoz Peterlin: changed TUTORIAL.sl
R. Bernstein: changed gud.el R. Bernstein: changed gud.el
Rafael Sep,Az(Blveda: changed TUTORIAL.es Rafael Sep,Az(Blveda: changed TUTORIAL.es
@ -1993,8 +2016,9 @@ Rajesh Vaidheeswarran: wrote whitespace.el
and changed ffap.el and changed ffap.el
Ralf Angeli: wrote scroll-lock.el Ralf Angeli: wrote scroll-lock.el
and changed tex-mode.el comint.el flow-fill.el gnus-art.el killing.texi and changed w32fns.c tex-mode.el comint.el flow-fill.el frame.el
mm-view.el pcl-cvs.texi smtpmail.el w32fns.c w32term.c window.c gnus-art.el killing.texi mm-view.el pcl-cvs.texi smtpmail.el w32term.c
window.c
Ralf Fassel: changed dabbrev.el files.el fill.el iso-acc.el tar-mode.el Ralf Fassel: changed dabbrev.el files.el fill.el iso-acc.el tar-mode.el
@ -2015,11 +2039,11 @@ Raymond Scholz: wrote deuglify.el
and changed gnus-art.el gnus-msg.el gnus.texi message.el nnmail.el and changed gnus-art.el gnus-msg.el gnus.texi message.el nnmail.el
Reiner Steib: wrote gmm-utils.el Reiner Steib: wrote gmm-utils.el
and changed message.el gnus-art.el gnus.texi gnus-sum.el gnus.el and changed gnus-art.el message.el gnus.texi gnus-sum.el gnus.el
gnus-group.el mml.el gnus-faq.texi gnus-score.el gnus-start.el gnus-group.el mml.el gnus-faq.texi gnus-score.el gnus-start.el
gnus-util.el gnus-msg.el message.texi gnus-agent.el files.el mm-util.el gnus-util.el gnus-msg.el message.texi gnus-agent.el mm-util.el files.el
spam-report.el nnweb.el spam.el deuglify.el mm-decode.el spam-report.el nnweb.el spam.el deuglify.el mm-decode.el
and 155 other files and 161 other files
Remek Trzaska: changed gnus-ems.el Remek Trzaska: changed gnus-ems.el
@ -2029,6 +2053,8 @@ Ren,Ai(B Kyllingstad: changed pcomplete.el
Reto Zimmermann: changed vhdl-mode.el Reto Zimmermann: changed vhdl-mode.el
Richard Bielawski: changed modes.texi
Richard Dawe: changed Makefile.in config.in Richard Dawe: changed Makefile.in config.in
Richard G Bielawski: changed paren.el Richard G Bielawski: changed paren.el
@ -2045,8 +2071,8 @@ Richard M. Stallman: wrote [The original GNU emacs and numerous files]
easymenu.el font-lock.el image-mode.el menu-bar.el paren.el 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 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 fileio.c process.c sysdep.c xfns.c buffer.c Makefile.in window.c
configure.in subr.el emacs.c sendmail.el startup.el editfns.c info.el configure.in subr.el startup.el emacs.c editfns.c sendmail.el info.el
dispnew.c and 1322 other files dispnew.c and 1334 other files
Richard Mlynarik: wrote cl-indent.el ebuff-menu.el ehelp.el env.c Richard Mlynarik: wrote cl-indent.el ebuff-menu.el ehelp.el env.c
rfc822.el terminal.el yow.el rfc822.el terminal.el yow.el
@ -2075,11 +2101,12 @@ Robert Bihlmeyer: changed gnus-score.el gnus-util.el message.el
Robert Fenk: changed desktop.el Robert Fenk: changed desktop.el
Robert J. Chassell: wrote makeinfo.el texinfo.el texnfo-upd.el Robert J. Chassell: wrote makeinfo.el texinfo.el texnfo-upd.el
and changed texinfmt.el page-ext.el emacs.tex info.el loaddefs.el and changed texinfmt.el page-ext.el emacs.tex emacs-lisp-intro.texi
texinfo-update.el INSTALL case-table.el cl.texinfo info.el loaddefs.el texinfo-update.el texinfo.tex INSTALL case-table.el
emacs-lisp-intro.texi history.el informat.el latin-1.el latin-2.el cl.texinfo history.el informat.el latin-1.el latin-2.el latin-3.el
latin-3.el latin-4.el page.el tex-mode.el texinfo.tex texinfo.texinfo latin-4.el page.el tex-mode.el texinfo.texinfo vip.texinfo
vip.texinfo
Robert Thorpe: changed cus-start.el
Roderick Schertler: changed dgux.h dgux4.h gud.el sysdep.c Roderick Schertler: changed dgux.h dgux4.h gud.el sysdep.c
@ -2106,11 +2133,11 @@ Roland Winkler: changed bibtex.el appt.el artist.el conf-mode.el
Rolf Ebert: wrote ada-mode.el Rolf Ebert: wrote ada-mode.el
and changed files.el find-file.el and changed files.el find-file.el
Romain Francoise: changed faq.texi ibuf-ext.el compile.el dired-x.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 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 help-fns.el make-dist rcirc.el subr.el Makefile.in antlr-mode.el
bookmark.el buffer.c comint.el diary-lib.el dired.el bookmark.el buffer.c comint.el diary-lib.el dired.el
and 109 other files and 121 other files
Roman Belenov: changed which-func.el Roman Belenov: changed which-func.el
@ -2158,8 +2185,8 @@ Satyaki Das: wrote mh-acros.el mh-gnus.el mh-junk.el mh-search.el
and changed mh-e.el mh-utils.el mh-seq.el mh-index.el mh-comp.el and changed mh-e.el mh-utils.el mh-seq.el mh-index.el mh-comp.el
mh-mime.el mh-customize.el mh-loaddefs.el mh-funcs.el Makefile mh-mime.el mh-customize.el mh-loaddefs.el mh-funcs.el Makefile
mh-alias.el mh-pick.el mh-unit.el mh-init.el mh-identity.el mh-make.el mh-alias.el mh-pick.el mh-unit.el mh-init.el mh-identity.el mh-make.el
mh-xemacs-toolbar.el mh-xemacs-compat.el mh-inc.el highlight.xpm mh-xemacs-toolbar.el mh-xemacs-compat.el pgg-gpg.el mh-inc.el
mh-func.el and 7 other files highlight.xpm and 7 other files
Schlumberger Technology Corporation: changed gud.el Schlumberger Technology Corporation: changed gud.el
@ -2208,8 +2235,8 @@ Simon Josefsson: wrote dig.el dns-mode.el flow-fill.el fringe.el imap.el
mml-sec.el mml-smime.el nnfolder.el nnimap.el nnml.el rfc2104.el mml-sec.el mml-smime.el nnfolder.el nnimap.el nnml.el rfc2104.el
sieve-manage.el sieve-mode.el sieve.el smime.el starttls.el tls.el sieve-manage.el sieve-mode.el sieve.el smime.el starttls.el tls.el
url-imap.el url-imap.el
and changed message.el gnus-sum.el gnus-art.el smtpmail.el pgg-gpg.el and changed message.el gnus-sum.el gnus-art.el smtpmail.el pgg.el
pgg.el gnus-agent.el mml2015.el mml.el mm-decode.el mml1991.el pgg-gpg.el gnus-agent.el mml2015.el mml.el mm-decode.el mml1991.el
gnus-group.el gnus-msg.el gnus.el pgg-pgp5.el gnus-cache.el gnus-group.el gnus-msg.el gnus.el pgg-pgp5.el gnus-cache.el
gnus-sieve.el browse-url.el gnus-int.el mail-source.el pgg-parse.el gnus-sieve.el browse-url.el gnus-int.el mail-source.el pgg-parse.el
and 91 other files and 91 other files
@ -2226,7 +2253,8 @@ and changed comint.el font-lock.el shell.el rmail.el fortran.el
Skip Collins: changed w32fns.c w32term.c w32term.h Skip Collins: changed w32fns.c w32term.c w32term.h
Slawomir Nowaczyk: changed TUTORIAL.pl flyspell.el ls-lisp.el Slawomir Nowaczyk: changed python.el TUTORIAL.pl emacs.py flyspell.el
ls-lisp.el
Spencer Thomas: changed dabbrev.el emacsclient.c emacsserver.c gnus.texi Spencer Thomas: changed dabbrev.el emacsclient.c emacsserver.c gnus.texi
server.el tcp.c unexec.c server.el tcp.c unexec.c
@ -2237,15 +2265,17 @@ Stefan Monnier: wrote bibtex.el cvs-status.el diff-mode.el log-edit.el
log-view.el pcvs-defs.el pcvs-info.el pcvs-parse.el pcvs-util.el log-view.el pcvs-defs.el pcvs-info.el pcvs-parse.el pcvs-util.el
reveal.el smerge-mode.el reveal.el smerge-mode.el
and changed vc.el font-lock.el pcvs.el newcomment.el subr.el lisp.h and changed vc.el font-lock.el pcvs.el newcomment.el subr.el lisp.h
keyboard.c tex-mode.el fill.el keymap.c alloc.c compile.el keyboard.c keymap.c tex-mode.el fill.el alloc.c compile.el files.el
easy-mmode.el simple.el info.el regex.c syntax.c files.el vc-hooks.el regex.c easy-mmode.el simple.el info.el syntax.c xdisp.c vc-hooks.el
xdisp.c bytecomp.el and 505 other files sh-script.el and 511 other files
Stephan Stahl: changed which-func.el buff-menu.el buffer.c dired-x.texi Stephan Stahl: changed which-func.el buff-menu.el buffer.c dired-x.texi
ediff-mult.el ediff-mult.el
Stephen A. Wood: changed fortran.el Stephen A. Wood: changed fortran.el
Stephen Berman: changed allout.el
Stephen Eglen: wrote iswitchb.el mspools.el Stephen Eglen: wrote iswitchb.el mspools.el
and changed diary-lib.el locate.el octave-inf.el replace.el hexl.el and changed diary-lib.el locate.el octave-inf.el replace.el hexl.el
info-look.el sendmail.el spell.el uce.el MORE.STUFF add-log.el info-look.el sendmail.el spell.el uce.el MORE.STUFF add-log.el
@ -2253,8 +2283,9 @@ and changed diary-lib.el locate.el octave-inf.el replace.el hexl.el
bib-mode.el bruce.el c-mode.el ccl.el and 71 other files bib-mode.el bruce.el c-mode.el ccl.el and 71 other files
Stephen Gildea: wrote mh-funcs.el mh-pick.el refcard.tex Stephen Gildea: wrote mh-funcs.el mh-pick.el refcard.tex
and changed time-stamp.el mh-e.el mh-utils.el mh-comp.el mh-customize.el 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-mime.el mwheel.el tex-mode.el fileio.c files.el fortran.el mh-e.texi mh-junk.el mh-mime.el mwheel.el
tex-mode.el
Stephen J. Turnbull: changed ediff-init.el strings.texi subr.el Stephen J. Turnbull: changed ediff-init.el strings.texi subr.el
@ -2286,6 +2317,8 @@ Steven Tamm: changed macterm.c make-package mac.c macfns.c configure.in
Stewart M. Clamen: wrote cal-mayan.el Stewart M. Clamen: wrote cal-mayan.el
Stuart D. Herring: changed minibuf.c
Stuart Herring: changed isearch.el align.el allout.el comint.el edebug.el Stuart Herring: changed isearch.el align.el allout.el comint.el edebug.el
files.el files.el
@ -2300,7 +2333,7 @@ Sun Yijiang: changed TUTORIAL.cn
Sundar Narasimhan: changed rnews.el rnewspost.el Sundar Narasimhan: changed rnews.el rnewspost.el
Sven Joachim: changed arc-mode.el de-refcard.tex files.el files.texi Sven Joachim: changed arc-mode.el de-refcard.tex files.el files.texi
help.el sed3v2.inp sh-script.el help.el mule.texi sed3v2.inp sh-script.el
Svend Tollak Munkejord: changed deuglify.el Svend Tollak Munkejord: changed deuglify.el
@ -2342,9 +2375,9 @@ Theodore Jump: changed w32-win.el w32faces.c
Thien-Thi Nguyen: wrote hideshow.el make-mms-derivative.el Thien-Thi Nguyen: wrote hideshow.el make-mms-derivative.el
and changed ewoc.el info.el processes.texi zone.el Makefile.in vc.el and changed ewoc.el info.el processes.texi zone.el Makefile.in vc.el
fileio.c lisp-mode.el scheme.el dcl-mode.el display.texi files.el fileio.c lisp-mode.el scheme.el text.texi bindat.el dcl-mode.el
pcvs.el sysdep.c MORE.STUFF TUTORIAL.it TUTORIAL.ja bindat.el display.texi files.el pcvs.el sysdep.c MORE.STUFF TUTORIAL.it
diary-lib.el diff-mode.el dired.el and 121 other files TUTORIAL.ja diary-lib.el diff-mode.el and 125 other files
Thierry Emery: changed kinsoku.el timezone.el url-http.el wid-edit.el Thierry Emery: changed kinsoku.el timezone.el url-http.el wid-edit.el
@ -2378,7 +2411,7 @@ Tim Van Holder: changed Makefile.in compile.el configure.in which-func.el
Tobias C. Rittweiler: changed font-lock.el Tobias C. Rittweiler: changed font-lock.el
Toby Allsopp: changed eudc.el Toby Allsopp: changed ldap.el eudc.el
Toby Speight: changed window.el Toby Speight: changed window.el
@ -2476,7 +2509,7 @@ Wayne Mesard: wrote hscroll.el
Werner Benger: changed keyboard.c Werner Benger: changed keyboard.c
Werner Lemberg: wrote sisheng.el vntelex.el Werner Lemberg: wrote sisheng.el vntelex.el
and changed Makefile.in TUTORIAL.de calc.texi chinese.el czech.el and changed TUTORIAL.de Makefile.in calc.texi chinese.el czech.el
european.el idlwave.el reftex-vars.el reftex.el reftex.texi slovak.el european.el idlwave.el reftex-vars.el reftex.el reftex.texi slovak.el
supercite.el .cvsignore advice.el calc-forms.el calc-sel.el calendar.el supercite.el .cvsignore advice.el calc-forms.el calc-sel.el calendar.el
china-util.el cl-macs.el cl.texi complete.el and 43 other files china-util.el cl-macs.el cl.texi complete.el and 43 other files
@ -2509,7 +2542,7 @@ and changed latin-pre.el pl-refcard.ps pl-refcard.tex refcard-pl.ps
Wolfgang Glas: changed unexsgi.c Wolfgang Glas: changed unexsgi.c
Wolfgang Jenkner: changed pcvs.el Wolfgang Jenkner: changed conf-mode.el pcvs.el
Wolfgang Rupprecht: wrote float-sup.el floatfns.c sup-mouse.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 and changed process.c alloc.c callint.c config.h.in config.in
@ -2527,14 +2560,16 @@ Xavier Maillard: changed gnus-faq.texi gnus-score.el
Yagi Tatsuya: changed gnus-art.el gnus-start.el Yagi Tatsuya: changed gnus-art.el gnus-start.el
Yamamoto Mitsuharu: changed macterm.c macfns.c mac-win.el mac.c macterm.h 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 macgui.h image.c macmenu.c macselect.c keyboard.c makefile.MPW xdisp.c
emacs.c macos.texi xfaces.c Makefile.in config.h darwin.h dispextern.h emacs.c config.h macos.texi xfaces.c Makefile.in darwin.h dispextern.h
w32term.c Info.plist and 58 other files w32term.c INSTALL and 66 other files
Yann Dirson: changed imenu.el Yann Dirson: changed imenu.el
Yoichi Nakayama: changed browse-url.el finder.el man.el rfc2368.el Yoichi Nakayama: changed browse-url.el finder.el man.el rfc2368.el
Yoni Rabkin Katzenell: changed whitespace.el
Yoshiki Hayashi: changed texinfmt.el nnheader.el Yoshiki Hayashi: changed texinfmt.el nnheader.el
Yoshinori Koseki: changed fontset.el Yoshinori Koseki: changed fontset.el

View file

@ -147,13 +147,13 @@ giving you write access to the CVS repository.
Discussion about Emacs development takes place on emacs-devel@gnu.org. Discussion about Emacs development takes place on emacs-devel@gnu.org.
Bug reports for released versions are sent to emacs-bugs@gnu.org. Bug reports for released versions are sent to bug-gnu-emacs@gnu.org.
Bug reports for development versions are sent to emacs-pretest-bug@gnu.org. Bug reports for development versions are sent to emacs-pretest-bug@gnu.org.
You can subscribe to the mailing lists at savannah.gnu.org/projects/emacs. You can subscribe to the mailing lists at savannah.gnu.org/projects/emacs.
You can find the mailing lists archives at mail.gnu.org or gmane.org. You can find the mailing lists archives at lists.gnu.org or gmane.org.
** Document your changes. ** Document your changes.
@ -189,7 +189,7 @@ need to check whether *that file* was changed in those years.
It's sufficient that *Emacs* was changed in those years (and it was!). It's sufficient that *Emacs* was changed in those years (and it was!).
** For those files that have been added since then, we should add ** For those files that have been added since then, we should add
the year it was added to Emacs, and all subsequent years." the year it was added to Emacs, and all subsequent years.
** For the refcards under etc/, it's ok to simply use the latest year ** For the refcards under etc/, it's ok to simply use the latest year
(typically in a `\def\year{YEAR}' expression) for the rendered copyright (typically in a `\def\year{YEAR}' expression) for the rendered copyright

25
COPYING
View file

@ -1,8 +1,8 @@
GNU GENERAL PUBLIC LICENSE GNU GENERAL PUBLIC LICENSE
Version 2, June 1991 Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc. Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed. of this license document, but changing it is not allowed.
@ -15,7 +15,7 @@ software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by using it. (Some other Free Software Foundation software is covered by
the GNU Library General Public License instead.) You can apply it to the GNU Lesser General Public License instead.) You can apply it to
your programs, too. your programs, too.
When we speak of free software, we are referring to freedom, not When we speak of free software, we are referring to freedom, not
@ -55,7 +55,7 @@ patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and The precise terms and conditions for copying, distribution and
modification follow. modification follow.
GNU GENERAL PUBLIC LICENSE GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
@ -110,7 +110,7 @@ above, provided that you also meet all of these conditions:
License. (Exception: if the Program itself is interactive but License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on does not normally print such an announcement, your work based on
the Program is not required to print an announcement.) the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program, identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in and can be reasonably considered independent and separate works in
@ -168,7 +168,7 @@ access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not distribution of the source code, even though third parties are not
compelled to copy the source along with the object code. compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program 4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is otherwise to copy, modify, sublicense or distribute the Program is
@ -225,7 +225,7 @@ impose that choice.
This section is intended to make thoroughly clear what is believed to This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License. be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in 8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License original copyright holder who places the Program under this License
@ -278,7 +278,7 @@ PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES. POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest If you develop a new program, and you want it to be of the greatest
@ -303,10 +303,9 @@ the "copyright" line and a pointer to where the full notice is found.
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. GNU General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License along
along with this program; if not, write to the Free Software with this program; if not, write to the Free Software Foundation, Inc.,
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
Also add information on how to contact you by electronic and paper mail. Also add information on how to contact you by electronic and paper mail.
@ -336,5 +335,5 @@ necessary. Here is a sample; alter the names:
This General Public License does not permit incorporating your program into This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Library General library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License. Public License instead of this License.

View file

@ -1,3 +1,30 @@
2006-10-03 Kim F. Storm <storm@cua.dk>
* AUTHORS: Regenerate.
2006-09-30 Eli Zaretskii <eliz@gnu.org>
* configure: Regenerated.
2006-09-28 Kenichi Handa <handa@m17n.org>
* configure.in (locallisppath): Don't include leim dir.
(lisppath): Include leim dir.
2006-09-15 Jay Belanger <belanger@truman.edu>
* COPYING: Replace "Library Public License" by "Lesser Public
License" throughout.
2006-09-11 Paul Eggert <eggert@cs.ucla.edu>
* make-dist (EMACS): Exit and fail if the EMACS environment
variable is set to something other than an absolute file name.
2006-09-07 Kim F. Storm <storm@cua.dk>
* AUTHORS: Regenerate.
2006-08-16 Andreas Schwab <schwab@suse.de> 2006-08-16 Andreas Schwab <schwab@suse.de>
* configure.in (PKG_CHECK_MODULES): Use AS_MESSAGE_LOG_FD instead * configure.in (PKG_CHECK_MODULES): Use AS_MESSAGE_LOG_FD instead

View file

@ -60,8 +60,8 @@ Write access to the CVS repository requires using SSH v2.
If you execute cvs commands inside Emacs, specifically if you use If you execute cvs commands inside Emacs, specifically if you use
pcl-cvs, output from CVS may be lost due to a problem in the pcl-cvs, output from CVS may be lost due to a problem in the
interface between ssh, cvs, and libc. Corrupted checkins have interface between ssh, cvs, and libc. Corrupted checkins are
also been rumored to have happened. also known to have happened.
To fix the problem, save the following script into a file, make it To fix the problem, save the following script into a file, make it
executable, and set CVS_RSH to the file name of the script: executable, and set CVS_RSH to the file name of the script:

View file

@ -1,3 +1,7 @@
2006-10-03 Kenichi Handa <handa@m17n.org>
* FOR-RELEASE (BUGS): "An iso-8859-6 cannot be saved" fixed.
2006-08-13 Chong Yidong <cyd@stupidchicken.com> 2006-08-13 Chong Yidong <cyd@stupidchicken.com>
* FOR-RELEASE: Elisp manual checking completed. * FOR-RELEASE: Elisp manual checking completed.

View file

@ -2,12 +2,13 @@ Tasks needed before the next release.
* TO BE DONE SHORTLY BEFORE RELEASE * TO BE DONE SHORTLY BEFORE RELEASE
** Update release dates of manuals.
** Check for widow and orphan lines in manuals; ** Check for widow and orphan lines in manuals;
make sure all the pages really look ok in the manual as formatted. make sure all the pages really look ok in the manual as formatted.
** Check for text in manuals that assumes current version is 21.
** Update AUTHORS. ** Update AUTHORS.
[Done 2006-10-03]
** Regenerate the postscript files of the reference cards in etc. ** Regenerate the postscript files of the reference cards in etc.
@ -33,38 +34,26 @@ and KDE projects, to use the new Emacs icons in etc/images/icons.
These don't need to be fixed to start pretest, but we call the These don't need to be fixed to start pretest, but we call the
attention of Windows users to fixing them. attention of Windows users to fixing them.
** Markus Gritsch's report about Emacs looping on Windoze with the following
.emacs file, and then reduce Emacs frame width to "something quite narrow":
(setq-default truncate-lines t)
(custom-set-variables
'(hscroll-margin 20)
'(hscroll-step 1)
)
** Drew Adams 12 Aug bug rpt: overlay display artifact: trace left behind ** Drew Adams 12 Aug bug rpt: overlay display artifact: trace left behind
Windows only bug. Windows only bug. Bug appears only when Cleartype enabled, probably related
to the hack introduced on 2005-07-01 to fix some other Cleartype problem.
** henman@it.to-be.co.jp 09 Aug 2006: ispell.el problem on Cygwin.
(Did we decide that is unreproducible?)
* BUGS * BUGS
** Milan Zamazal's Aug 23 bug report about crashes with certain fonts. ** hashiz@tomba.meridiani.jp, Oct 6: bootstrap failure on FreeBSD 6.2
Can't be reproduced on GNU/Linux.
** C-g fails to interrupt accept-process-output in Gnus.
** Implement buffer-chars-modified-tick.
** henman@it.to-be.co.jp 09 Aug 2006: ispell.el problem.
** Make key-binding use the maps specified by positions given in the events.
* DOCUMENTATION * DOCUMENTATION
** Check the Emacs Tutorial. ** Check the Emacs Tutorial.
The first line of every tutorial must begin with text ending in a period The first line of every tutorial must begin with text ending in a
(".", ASCII 0x2E) saying "Emacs Tutorial" in the respective language. period (".", ASCII 0x2E) saying "Emacs Tutorial" in the respective
This should be followed by "See end for copying conditions", likewise language. This should be followed by "See end for copying
in the respective language. conditions", likewise in the respective language.
After each file name, on the same line or the following line, come the After each file name, on the same line or the following line, come the
names of the people who have checked it. names of the people who have checked it.

View file

@ -62,8 +62,11 @@ For each step, check for possible errors.
echo directory: emacs/pretest > FILE.directive (for a pretest) echo directory: emacs/pretest > FILE.directive (for a pretest)
echo directory: emacs > FILE.directive (for a release) echo directory: emacs > FILE.directive (for a release)
gpg --clearsign FILE.directive gpg --clearsign FILE.directive
Upload by anonymous ftp to ftp://ftp-upload.gnu.org/incoming/ftp/ Upload by anonymous ftp to ftp://ftp-upload.gnu.org/ the files FILE,
the files FILE, FILE.sig, FILE.directive.asc FILE.sig, FILE.directive.asc.
For a release, place the files in the /incoming/ftp directory.
For a pretest, place the files in /incoming/alpha instead, so that
they appear on ftp://alpha.gnu.org/.
13. After five minutes, verify that the files are visible at 13. After five minutes, verify that the files are visible at
ftp://alpha.gnu.org/gnu/emacs/pretest/ for a pretest, at ftp://alpha.gnu.org/gnu/emacs/pretest/ for a pretest, at

4
configure vendored
View file

@ -1354,8 +1354,8 @@ rm conftest.sed
lispdir='${datadir}/emacs/${version}/lisp' lispdir='${datadir}/emacs/${version}/lisp'
locallisppath='${datadir}/emacs/${version}/site-lisp:'\ locallisppath='${datadir}/emacs/${version}/site-lisp:'\
'${datadir}/emacs/site-lisp:${datadir}/emacs/${version}/leim' '${datadir}/emacs/site-lisp'
lisppath='${locallisppath}:${lispdir}' lisppath='${locallisppath}:${lispdir}:${datadir}/emacs/${version}/leim'
etcdir='${datadir}/emacs/${version}/etc' etcdir='${datadir}/emacs/${version}/etc'
archlibdir='${libexecdir}/emacs/${version}/${configuration}' archlibdir='${libexecdir}/emacs/${version}/${configuration}'
docdir='${datadir}/emacs/${version}/etc' docdir='${datadir}/emacs/${version}/etc'

View file

@ -33,8 +33,8 @@ AC_ARG_PROGRAM
lispdir='${datadir}/emacs/${version}/lisp' lispdir='${datadir}/emacs/${version}/lisp'
locallisppath='${datadir}/emacs/${version}/site-lisp:'\ locallisppath='${datadir}/emacs/${version}/site-lisp:'\
'${datadir}/emacs/site-lisp:${datadir}/emacs/${version}/leim' '${datadir}/emacs/site-lisp'
lisppath='${locallisppath}:${lispdir}' lisppath='${locallisppath}:${lispdir}:${datadir}/emacs/${version}/leim'
etcdir='${datadir}/emacs/${version}/etc' etcdir='${datadir}/emacs/${version}/etc'
archlibdir='${libexecdir}/emacs/${version}/${configuration}' archlibdir='${libexecdir}/emacs/${version}/${configuration}'
docdir='${datadir}/emacs/${version}/etc' docdir='${datadir}/emacs/${version}/etc'

View file

@ -1,8 +1,8 @@
GNU GENERAL PUBLIC LICENSE GNU GENERAL PUBLIC LICENSE
Version 2, June 1991 Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc. Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed. of this license document, but changing it is not allowed.
@ -15,7 +15,7 @@ software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by using it. (Some other Free Software Foundation software is covered by
the GNU Library General Public License instead.) You can apply it to the GNU Lesser General Public License instead.) You can apply it to
your programs, too. your programs, too.
When we speak of free software, we are referring to freedom, not When we speak of free software, we are referring to freedom, not
@ -55,7 +55,7 @@ patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and The precise terms and conditions for copying, distribution and
modification follow. modification follow.
GNU GENERAL PUBLIC LICENSE GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
@ -110,7 +110,7 @@ above, provided that you also meet all of these conditions:
License. (Exception: if the Program itself is interactive but License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on does not normally print such an announcement, your work based on
the Program is not required to print an announcement.) the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program, identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in and can be reasonably considered independent and separate works in
@ -168,7 +168,7 @@ access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not distribution of the source code, even though third parties are not
compelled to copy the source along with the object code. compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program 4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is otherwise to copy, modify, sublicense or distribute the Program is
@ -225,7 +225,7 @@ impose that choice.
This section is intended to make thoroughly clear what is believed to This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License. be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in 8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License original copyright holder who places the Program under this License
@ -278,7 +278,7 @@ PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES. POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest If you develop a new program, and you want it to be of the greatest
@ -303,10 +303,9 @@ the "copyright" line and a pointer to where the full notice is found.
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. GNU General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License along
along with this program; if not, write to the Free Software with this program; if not, write to the Free Software Foundation, Inc.,
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
Also add information on how to contact you by electronic and paper mail. Also add information on how to contact you by electronic and paper mail.
@ -336,5 +335,5 @@ necessary. Here is a sample; alter the names:
This General Public License does not permit incorporating your program into This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Library General library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License. Public License instead of this License.

View file

@ -1,3 +1,63 @@
2006-10-09 David Kastrup <dak@gnu.org>
* DEVEL.HUMOR: Add the topic line for last entry since that was
what the joke was about.
2006-10-07 Ognyan Kulev <ogi@fmi.uni-sofia.bg>
* TUTORIAL.bg: Synchronize with TUTORIAL.
2006-10-06 Juanma Barranquero <lekktu@gmail.com>
* DEVEL.HUMOR: New file.
2006-09-30 Chong Yidong <cyd@stupidchicken.com>
* PROBLEMS: Document Emacs/XIM/gnome-settings-terminal clash.
2006-09-26 Vinicius Jose Latorre <viniciusjl@ig.com.br>
* NEWS: ebnf2ps changes.
2006-09-26 Reiner Steib <Reiner.Steib@gmx.de>
* refcard.ps: Regenerate.
2006-09-18 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
* NEWS: Rename x-use-old-gtk-file-dialog to x-gtk-use-old-file-dialog.
2006-09-15 Jay Belanger <belanger@truman.edu>
* COPYING: Replace "Library Public License" by "Lesser Public
License" throughout.
2006-09-15 Richard Stallman <rms@gnu.org>
* THE-GNU-PROJECT: Update with the latest footnotes
from www.gnu.org/gnu/the-gnu-project.html
2006-09-15 David Kastrup <dak@gnu.org>
* NEWS: Explain new behavior and arguments of `key-binding' and
`command-remapping'.
2006-09-11 Paul Eggert <eggert@cs.ucla.edu>
* NEWS: In terminal-oriented subshells, the EMACS environment
variable now defaults to Emacs's absolute file name, instead of
to "t".
* PROBLEMS: Adjust tcsh advice for this.
2006-09-10 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
* PROBLEMS (are): Emacs compiled with Gtk+ crashes when closing a
display (x-close-connection).
2006-09-02 Juri Linkov <juri@jurta.org>
* HELLO: Regroup Europe Non-ASCII examples by similar scripts.
2006-08-25 Richard Stallman <rms@gnu.org> 2006-08-25 Richard Stallman <rms@gnu.org>
* TUTORIAL: Give priority to graphical terminals over text terminals * TUTORIAL: Give priority to graphical terminals over text terminals
@ -86,7 +146,7 @@
* PROBLEMS: Emacs now requires ws2_32.dll on Windows. * PROBLEMS: Emacs now requires ws2_32.dll on Windows.
2006-07-14 K,Aa(Broly L,Bu(Brentey <lorentey@elte.hu> 2006-07-14 K,Aa(Broly L$,1 q(Brentey <lorentey@elte.hu>
* HELLO: Update Hungarian sample. * HELLO: Update Hungarian sample.
@ -169,8 +229,7 @@
2006-06-19 Carsten Dominik <dominik@science.uva.nl> 2006-06-19 Carsten Dominik <dominik@science.uva.nl>
* orgcard.tex (section{Clocking Time}): Add new clocking * orgcard.tex (section{Clocking Time}): Add new clocking commands.
commands.
(section{Structure Editing}): Add global archiving command. (section{Structure Editing}): Add global archiving command.
2006-06-14 Thien-Thi Nguyen <ttn@gnu.org> 2006-06-14 Thien-Thi Nguyen <ttn@gnu.org>
@ -257,8 +316,7 @@
2006-05-24 Carsten Dominik <dominik@science.uva.nl> 2006-05-24 Carsten Dominik <dominik@science.uva.nl>
* orgcard.tex: (section{Motion}): Added the item navigation * orgcard.tex (section{Motion}): Added the item navigation commands.
commands.
(section{Publishing}): New section. (section{Publishing}): New section.
(section{Links}): Documented elisp and shell links. (section{Links}): Documented elisp and shell links.
@ -270,8 +328,7 @@
* pl-refcard.tex (Local variables): Add compile-command. * pl-refcard.tex (Local variables): Add compile-command.
* ru-refcard.tex (Local variables): Add compile-command and * ru-refcard.tex (Local variables): Add compile-command and coding.
coding.
* pt-br-refcard.tex: Don't \input psfig. * pt-br-refcard.tex: Don't \input psfig.
@ -285,7 +342,7 @@
* pl-refcard.tex (section{Info}): Ditto. Translation suggested by * pl-refcard.tex (section{Info}): Ditto. Translation suggested by
Slawomir Nowaczyk <slawomir.nowaczyk.847@student.lu.se>. Slawomir Nowaczyk <slawomir.nowaczyk.847@student.lu.se>.
* cs-refcard.tex (section{Info}): Use `s' instead of `M-s'. Entry * cs-refcard.tex (section{Info}): Use `s' instead of `M-s'. Entry
for `i' is not translated yet. for `i' is not translated yet.
* pt-br-refcard.tex (section{Info}): Ditto. * pt-br-refcard.tex (section{Info}): Ditto.
@ -366,7 +423,7 @@
2006-04-11 Carsten Dominik <dominik@science.uva.nl> 2006-04-11 Carsten Dominik <dominik@science.uva.nl>
* orgcard.tex: (section{Tables}): Document column narrowing. * orgcard.tex (section{Tables}): Document column narrowing.
(section{Links}): Document bracket links. (section{Links}): Document bracket links.
2006-04-11 Kenichi Handa <handa@m17n.org> 2006-04-11 Kenichi Handa <handa@m17n.org>
@ -395,11 +452,11 @@
New bitmaps for new images. New bitmaps for new images.
* images/refresh.xpm, images/sort-ascending.xpm, * images/refresh.xpm, images/sort-ascending.xpm,
* images/sort-descending.xpm: Update with GTK 2.x images. Note * images/sort-descending.xpm: Update with GTK 2.x images. Note
that the default GTK icons are not overridden by the GNOME theme that the default GTK icons are not overridden by the GNOME theme
due to a bug which was fixed in GNOME 2.15. Once GNOME 2.16 is in due to a bug which was fixed in GNOME 2.15. Once GNOME 2.16 is in
wide circulation, then the GTK icons should be replaced with the wide circulation, then the GTK icons should be replaced with the
equivalent GNOME icons. Until then, we should be consistent with equivalent GNOME icons. Until then, we should be consistent with
GTK first, then GNOME. GTK first, then GNOME.
* images/mail/repack.xpm, images/mail/reply-from.xpm: * images/mail/repack.xpm, images/mail/reply-from.xpm:
@ -457,9 +514,9 @@
2006-03-11 Bill Wohler <wohler@newt.com> 2006-03-11 Bill Wohler <wohler@newt.com>
* NEWS: Document `image-load-path-for-library'. Note that all * NEWS: Document `image-load-path-for-library'. Note that all
images have been moved from lisp into etc/images in `find-image' images have been moved from lisp into etc/images in `find-image'
item. Fix typo in `copy-tree'. item. Fix typo in `copy-tree'.
2006-03-09 Reiner Steib <Reiner.Steib@gmx.de> 2006-03-09 Reiner Steib <Reiner.Steib@gmx.de>
@ -481,7 +538,7 @@
2006-02-22 Carsten Dominik <dominik@science.uva.nl> 2006-02-22 Carsten Dominik <dominik@science.uva.nl>
* orgcard.tex: (section{Links}): Rewritten to cover the modified * orgcard.tex (section{Links}): Rewritten to cover the modified
link system. link system.
2006-02-18 Bill Wohler <wohler@newt.com> 2006-02-18 Bill Wohler <wohler@newt.com>
@ -555,11 +612,11 @@
2006-01-23 Michael Albinus <michael.albinus@gmx.de> 2006-01-23 Michael Albinus <michael.albinus@gmx.de>
* NEWS: tramp can be removed by M-x tramp-unload-tramp. * NEWS: Tramp can be removed by M-x tramp-unload-tramp.
2006-01-15 Dan Nicolaescu <dann@ics.uci.edu> 2006-01-15 Dan Nicolaescu <dann@ics.uci.edu>
* e/eterm-color.ti: Re-enable the ri entry. Add kich1. * e/eterm-color.ti: Re-enable the ri entry. Add kich1.
2006-01-13 Richard M. Stallman <rms@gnu.org> 2006-01-13 Richard M. Stallman <rms@gnu.org>
@ -664,7 +721,7 @@
2005-10-27 Dan Nicolaescu <dann@ics.uci.edu> 2005-10-27 Dan Nicolaescu <dann@ics.uci.edu>
* e/eterm-color.ti (el1): Undo 2005-10-23 change. * e/eterm-color.ti (el1): Undo 2005-10-23 change.
Add some comments on how to update this file. Add ri Add some comments on how to update this file. Add ri
capability that has long been supported by term.el. capability that has long been supported by term.el.
2005-10-25 Nick Roberts <nickrob@snap.net.nz> 2005-10-25 Nick Roberts <nickrob@snap.net.nz>
@ -691,7 +748,7 @@
2005-10-17 Bill Wohler <wohler@newt.com> 2005-10-17 Bill Wohler <wohler@newt.com>
Moved all remaining images from lisp/toolbar to etc/images. The Moved all remaining images from lisp/toolbar to etc/images. The
low resolution images were placed in their own directory (low-color). low resolution images were placed in their own directory (low-color).
* images/attach.*, images/cancel.*, images/close.*: * images/attach.*, images/cancel.*, images/close.*:
@ -838,7 +895,7 @@
* GNUS-NEWS: Fix IDNA notes. * GNUS-NEWS: Fix IDNA notes.
2005-09-27 Jay Belanger <belanger@truman.edu> 2005-09-27 Jay Belanger <belanger@truman.edu>
* calccard.tex: Update `versionnumber', remove `versiondate'. * calccard.tex: Update `versionnumber', remove `versiondate'.
(Error Recovery): Refer to "initial state" rather than "default state". (Error Recovery): Refer to "initial state" rather than "default state".
@ -1245,7 +1302,7 @@
2004-09-26 Dan Nicolaescu <dann@ics.uci.edu> 2004-09-26 Dan Nicolaescu <dann@ics.uci.edu>
* e/eterm.ti: Comment out smcup, rmcup. Add kbs, kdch1, rc, sc. * e/eterm.ti: Comment out smcup, rmcup. Add kbs, kdch1, rc, sc.
Reformat. Reformat.
* e/eterm: Regenerate. * e/eterm: Regenerate.
@ -1356,7 +1413,7 @@
2004-06-10 Lars Hansen <larsh@math.ku.dk> 2004-06-10 Lars Hansen <larsh@math.ku.dk>
* NEWS: Describe dired-omit-mode. Describe desktop package changes. * NEWS: Describe dired-omit-mode. Describe desktop package changes.
2004-05-29 Steven Tamm <steventamm@mac.com> 2004-05-29 Steven Tamm <steventamm@mac.com>
@ -1379,7 +1436,7 @@
2004-04-13 Marcelo Toledo <marcelo@gnu.org> 2004-04-13 Marcelo Toledo <marcelo@gnu.org>
* TUTORIAL.pt_BR: initial check-in. * TUTORIAL.pt_BR: Initial check-in.
2004-05-06 Dave Love <fx@gnu.org> 2004-05-06 Dave Love <fx@gnu.org>
@ -1743,7 +1800,7 @@
2001-08-05 Pavel Jan,Am(Bk <Pavel@Janik.cz> 2001-08-05 Pavel Jan,Am(Bk <Pavel@Janik.cz>
* TUTORIAL.cs, TUTORIAL.sk, cs-refcard.tex, sk-refcard.tex: e-mail * TUTORIAL.cs, TUTORIAL.sk, cs-refcard.tex, sk-refcard.tex: E-mail
address of Milan Zamazal changed. address of Milan Zamazal changed.
2001-08-04 Pavel Jan,Am(Bk <Pavel@Janik.cz> 2001-08-04 Pavel Jan,Am(Bk <Pavel@Janik.cz>
@ -1857,7 +1914,7 @@
2001-01-08 Kevin Gallagher <kevingal@onramp.net> 2001-01-08 Kevin Gallagher <kevingal@onramp.net>
* edt-user.doc: Updated to reflect EDT Emulation version 4.0 * edt-user.doc: Updated to reflect EDT Emulation version 4.0
enhancements. enhancements.
2000-12-29 Gerd Moellmann <gerd@gnu.org> 2000-12-29 Gerd Moellmann <gerd@gnu.org>
@ -2182,7 +2239,7 @@
1995-06-28 Eric S. Raymond <esr@spiff.gnu.ai.mit.edu> 1995-06-28 Eric S. Raymond <esr@spiff.gnu.ai.mit.edu>
* termcap.dat, termcap.ucb: deleted and replaced. * termcap.dat, termcap.ucb: Deleted and replaced.
* termcap: New termcap file from the ncurses project; bigger, * termcap: New termcap file from the ncurses project; bigger,
better, brighter, does away with waxy yellow buildup. Email better, brighter, does away with waxy yellow buildup. Email
@ -2275,7 +2332,7 @@
1993-06-16 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu) 1993-06-16 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu)
Bring mumbleclean targets into conformance with GNU coding standards. Bring mumbleclean targets into conformance with GNU coding standards.
* Makefile (distclean): Don't remove backup and autosave files. * Makefile (distclean): Don't remove backup and autosave files.
These are easy to get rid of in other ways, and a pain to lose. These are easy to get rid of in other ways, and a pain to lose.
(mostlyclean, realclean): New targets. (mostlyclean, realclean): New targets.
@ -2298,7 +2355,7 @@
1993-05-22 Jim Blandy (jimb@geech.gnu.ai.mit.edu) 1993-05-22 Jim Blandy (jimb@geech.gnu.ai.mit.edu)
* Version 19.7 released. * Version 19.7 released.
1993-05-19 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu) 1993-05-19 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu)
@ -2319,7 +2376,7 @@
out of date. This file referenced LNEWS when it should have out of date. This file referenced LNEWS when it should have
said news.texi; fixed. said news.texi; fixed.
news.texi: invocation-name now exists. * news.texi: invocation-name now exists.
1993-03-27 Eric S. Raymond (eric@geech.gnu.ai.mit.edu) 1993-03-27 Eric S. Raymond (eric@geech.gnu.ai.mit.edu)
@ -2339,7 +2396,7 @@
1993-03-19 Eric S. Raymond (eric@geech.gnu.ai.mit.edu) 1993-03-19 Eric S. Raymond (eric@geech.gnu.ai.mit.edu)
* MACHINES: Deleted some VMS caveats. If the src and lisp * MACHINES: Deleted some VMS caveats. If the src and lisp
ChangeLogs are correct, dired and mail and process control are now ChangeLogs are correct, dired and mail and process control are now
fully supported. fully supported.
@ -2361,7 +2418,7 @@
I nuked it. Let the file mod date serve. Merged in APOLLO and I nuked it. Let the file mod date serve. Merged in APOLLO and
SUNBUG files. Changed references to 18.* to past tense. SUNBUG files. Changed references to 18.* to past tense.
* emacs.names: merged into JOKES. I faked a mail header from the * emacs.names: Merged into JOKES. I faked a mail header from the
Unknown User to delimit the first (unheaded) bit. Unknown User to delimit the first (unheaded) bit.
* Makefile (relock, unlock): New productions. * Makefile (relock, unlock): New productions.
@ -2373,30 +2430,30 @@
the Emacs distribution, I have the following changes in the etc the Emacs distribution, I have the following changes in the etc
directory: directory:
* CHARACTERS: merged into TO-DO file under the heading "Long Range:" * CHARACTERS: Merged into TO-DO file under the heading "Long Range:"
* DIFF, CCADIFF and GOSDIFF: merged into a new outline file titled * DIFF, CCADIFF, GOSDIFF: Merged into a new outline file titled
OTHER.EMACSES. The present names don't really convey anything. OTHER.EMACSES. The present names don't really convey anything.
Various key bindings and feature descriptions have been updated. Various key bindings and feature descriptions have been updated.
* NICKLES.WORTH. Nuked. This is copyrighted material that could land * NICKLES.WORTH: Nuked. This is copyrighted material that could land
FSF in hot water. FSF in hot water.
* INTERVAL.IDEAS: Nuked. RMS's thinking, and indeed the * INTERVAL.IDEAS: Nuked. RMS's thinking, and indeed the
implementation of intervals, have progressed way beyond this. implementation of intervals, have progressed way beyond this.
* RCP: Nuked. It no longer said anything but "Ooops, sorry!" * RCP: Nuked. It no longer said anything but "Ooops, sorry!"
* ED.WORSHIP, GNU.JOKES: merged into a mailbox called JOKES. * ED.WORSHIP, GNU.JOKES: Merged into a mailbox called JOKES.
Future jokes can accumulate there. Future jokes can accumulate there.
* DISTRIB: the actual domestic order form is now ORDERS.USA. * DISTRIB: The actual domestic order form is now ORDERS.USA.
The DISTRIB text now mentions 19. The DISTRIB text now mentions 19.
* ORDERS.USA: created. This is just the order form. DISTRIB * ORDERS.USA: Created. This is just the order form. DISTRIB
has a pointer to it at the beginning. has a pointer to it at the beginning.
* EUROPE: renamed to ORDERS.EUROPE. DISTRIB now has a pointer * EUROPE: Renamed to ORDERS.EUROPE. DISTRIB now has a pointer
to it at the beginning. to it at the beginning.
* OOOONEWS, OOOONEWS: Nuked. It's version 19 --- nobody needs the * OOOONEWS, OOOONEWS: Nuked. It's version 19 --- nobody needs the
@ -2408,7 +2465,7 @@
1993-03-17 Eric S. Raymond (eric@mole.gnu.ai.mit.edu) 1993-03-17 Eric S. Raymond (eric@mole.gnu.ai.mit.edu)
* XENIX: nuked (moved to =XENIX). The hackery it describes is * XENIX: Nuked (moved to =XENIX). The hackery it describes is
no longer necessary in the presence of 19's function-key-map no longer necessary in the presence of 19's function-key-map
feature; I've added an explanation to the beginning of the file. feature; I've added an explanation to the beginning of the file.
@ -2513,7 +2570,7 @@
1992-03-31 Jim Blandy (jimb@pogo.cs.oberlin.edu) 1992-03-31 Jim Blandy (jimb@pogo.cs.oberlin.edu)
* lib-src/Makefile, etc/MACHINES, etc/NEWS: Changed references to * lib-src/Makefile, etc/MACHINES, etc/NEWS: Changed references to
`config.emacs' to `configure'. `config.emacs' to `configure'.
* lib-src/Makefile: Adjusted for renaming of share-lib to etc. * lib-src/Makefile: Adjusted for renaming of share-lib to etc.
@ -2609,7 +2666,7 @@
* etags.c (C_entries): Process token before handling end of line. * etags.c (C_entries): Process token before handling end of line.
When inner loops reach end of line, just back up. When inner loops reach end of line, just back up.
Let the real end of line processing happen in just one place. Let the real end of line processing happen in just one place.
(consider_token): Likewise. (consider_token): Likewise.
1991-04-11 Jim Blandy (jimb@geech.gnu.ai.mit.edu) 1991-04-11 Jim Blandy (jimb@geech.gnu.ai.mit.edu)
@ -2680,7 +2737,7 @@
1990-08-30 David Lawrence (tale@pogo.ai.mit.edu) 1990-08-30 David Lawrence (tale@pogo.ai.mit.edu)
* emacs.1: Add break before -nw option. * emacs.1: Add break before -nw option.
1990-08-19 David J. MacKenzie (djm@apple-gunkies) 1990-08-19 David J. MacKenzie (djm@apple-gunkies)
@ -2722,7 +2779,7 @@
1990-03-14 Joseph Arceneaux (jla@churchy.ai.mit.edu) 1990-03-14 Joseph Arceneaux (jla@churchy.ai.mit.edu)
* etags.c (getit): Recognize '$' as beginning identifiers. * etags.c (getit): Recognize '$' as beginning identifiers.
1990-02-22 David Lawrence (tale@pogo.ai.mit.edu) 1990-02-22 David Lawrence (tale@pogo.ai.mit.edu)
@ -2844,15 +2901,15 @@
1989-04-18 Richard Stallman (rms@sugar-bombs.ai.mit.edu) 1989-04-18 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
* loadst.c: on bsd4.3, use gettimeofday instead of CPUSTATES. * loadst.c: On bsd4.3, use gettimeofday instead of CPUSTATES.
1989-03-15 Jeff Peck (rms@sugar-bombs.ai.mit.edu) 1989-03-15 Jeff Peck (rms@sugar-bombs.ai.mit.edu)
* emacstool.c: setenv IN_EMACSTOOL=t, TERM=sun, TERMCAP=. * emacstool.c: setenv IN_EMACSTOOL=t, TERM=sun, TERMCAP=.
* emacsstool.1: update to document environment variables. * emacsstool.1: Update to document environment variables.
1989-02-21 Mosur Mohan (email@notavailable) 1989-02-21 Mosur Mohan (email@notavailable)
* etags.c (PAS_funcs): New function. * etags.c (PAS_funcs): New function.
@ -2866,7 +2923,7 @@
1989-02-15 Richard Stallman (rms@sugar-bombs.ai.mit.edu) 1989-02-15 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
* etags.c: Prolog support from Sunichirou Sugou * etags.c: Prolog support from Sunichirou Sugou.
1989-02-03 Richard Stallman (rms@sugar-bombs.ai.mit.edu) 1989-02-03 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
@ -2879,7 +2936,7 @@
1989-01-19 Sam Kendall (email@notavailable) 1989-01-19 Sam Kendall (email@notavailable)
* etags.c: Greatly rewritten for C++ support and for multiple tags * etags.c: Greatly rewritten for C++ support and for multiple tags
per line. per line.
1989-01-03 Richard Stallman (rms@sugar-bombs.ai.mit.edu) 1989-01-03 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
@ -2889,8 +2946,8 @@
1988-12-31 Richard Mlynarik (mly@rice-chex.ai.mit.edu) 1988-12-31 Richard Mlynarik (mly@rice-chex.ai.mit.edu)
* env.c: Add decl for my-index * env.c: Add decl for my-index.
* etags.c (file-entries): .oak => scheme * etags.c (file-entries): .oak => scheme
1988-12-30 Richard Stallman (rms@sugar-bombs.ai.mit.edu) 1988-12-30 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
@ -2934,8 +2991,8 @@
1988-11-29 Richard Mlynarik (mly@pickled-brain.ai.mit.edu) 1988-11-29 Richard Mlynarik (mly@pickled-brain.ai.mit.edu)
* movemail.c: Better error message when can't create tempname. * movemail.c: Better error message when can't create tempname.
This file needs a great deal of extra error-checking and lucid reporting... This file needs a great deal of extra error-checking and lucid reporting...
1988-11-16 Richard Stallman (rms@sugar-bombs.ai.mit.edu) 1988-11-16 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
@ -2953,7 +3010,7 @@
1988-09-24 Richard Stallman (rms@gluteus.ai.mit.edu) 1988-09-24 Richard Stallman (rms@gluteus.ai.mit.edu)
* etags.c (main): default setting of eflag was backwards. * etags.c (main): Default setting of eflag was backwards.
1988-09-23 Richard Stallman (rms@sugar-bombs.ai.mit.edu) 1988-09-23 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
@ -3018,8 +3075,8 @@
1988-05-13 Chris Hanson (cph@kleph) 1988-05-13 Chris Hanson (cph@kleph)
* emacsclient.c: Delete references to unused variable `out'. This * emacsclient.c: Delete references to unused variable `out'.
caused a bus error when used under hp-ux. This caused a bus error when used under hp-ux.
1988-05-06 Richard Stallman (rms@frosted-flakes.ai.mit.edu) 1988-05-06 Richard Stallman (rms@frosted-flakes.ai.mit.edu)
@ -3036,7 +3093,7 @@
1988-04-28 Richard Stallman (rms@frosted-flakes.ai.mit.edu) 1988-04-28 Richard Stallman (rms@frosted-flakes.ai.mit.edu)
* movemail.c: #undef close, since config can #define it on V.3. * movemail.c: #undef close, since config can #define it on V.3.
* emacsclient.c, fakemail.c, loadst.c, server.c: likewise. * emacsclient.c, fakemail.c, loadst.c, server.c: Likewise.
1988-04-26 Richard Stallman (rms@lucky-charms.ai.mit.edu) 1988-04-26 Richard Stallman (rms@lucky-charms.ai.mit.edu)
@ -3047,9 +3104,9 @@
1988-03-20 Richard M. Stallman (rms@wilson) 1988-03-20 Richard M. Stallman (rms@wilson)
* server.c [not BSD and not HAVE_SYSVIPC]: fix error message. * server.c [not BSD and not HAVE_SYSVIPC]: Fix error message.
* loadst.c (main) [XENIX]: use /usr/spool/mail, not /usr/mail. * loadst.c (main) [XENIX]: Use /usr/spool/mail, not /usr/mail.
;; Local Variables: ;; Local Variables:
;; coding: iso-2022-7bit ;; coding: iso-2022-7bit

138
etc/DEVEL.HUMOR Normal file
View file

@ -0,0 +1,138 @@
---------------- -*- mode: text; coding: utf-8; fill-column: 70 -*- --
-- --
-- Humor (sometimes unintended) on the Emacs developer's list --
-- --
----------------------------------------------------------------------
"Is it legal for a `struct interval' to have a total_length field of
zero?"
"We can't be arrested for it as far as I know, but it is definitely
invalid for an interval to have zero length."
-- Miles Bader and RMS
----------------------------------------------------------------------
Re: lost argument and doc string
I remember when I lost an argument. Boy did that hurt! ;-).
-- RMS
----------------------------------------------------------------------
"'Cowardly' is not an adverb, although it looks like one. It is an
adjective. It makes a statement about general temperament, rather
than a specific occasion. I don't think Emacs has a general
temperament."
"Mine does."
-- RMS and Eli Zaretskii
----------------------------------------------------------------------
"In order to bring the user's attention to the minibuffer when an
item such as 'Edit -> Search' is activated from the menu, I was just
thinking that we could draw a big rectangle around the minibuffer,
blinking (or zooming in-and-out) until some input is typed in."
"How about dancing elephants?"
"They don't fit in my office."
"Well once the elephants are done, your office will be much...
bigger."
-- Stefan Monnier, Miles Bader and Kai Grossjohann
----------------------------------------------------------------------
I remember these versions as yard-rocks (is that between inch-pebbles
and mile-stones?).
-- Kai Grossjohann
----------------------------------------------------------------------
"I think it depends on video drivers. I cannot reproduce it on my
home PC, but I can at work."
"Can you try to find a workaround at work? (I guess you don't need
a homearound at home. ;-)"
-- Jason Rumney and RMS
----------------------------------------------------------------------
By the way, I also really really hate this unibyte/multibyte problem.
Sometimes I think I should have opposed to the introduction of such a
concept more strongly.
imagine there's no unibyte
it's easy if you try
no bytes below us
above us only chars
imagine all the people living in multibyte
-- Kenichi Handa
----------------------------------------------------------------------
I try to uphold the ideals that I was taught to value as an American,
but every year I get less and less help from the United States.
-- RMS
----------------------------------------------------------------------
"If the terminfo entry is most likely wrong, and we know it, then it
doesn't make sense to follow it."
"Nevertheless, until now, we always did."
"So.... should we not fix old bugs?"
"Why fix an old bug if you can write three new ones in the same
time?"
-- Miles Bader, Eli Zaretskii and David Kastrup
----------------------------------------------------------------------
[...] As is well known, people who speak American English tend to
be more resource-conscious and try to avoid wasting precious bits
transferring those redundant "u"s.
Think of the number of occurrences of "color" and "behavior" in the
Emacs tarball, multiply that by the number of times it'll be
downloaded, stored on hard disks, archived, ...that's a substantial
saving.
-- Stefan Monnier
----------------------------------------------------------------------
Re: Parent of a derived mode's keymap.
"I can't decide whether the title of this thread is more fitting for
a blues song or a pulp fiction booklet. It certainly projects drama."
"Hey, it says derived, not deprived."
"Actually, for some keymaps 'depraved' would fit better."
"I knew it! You're one of them vi lovers! There is nothing wrong
with Emacs using escape, meta, alt, control, and shift!"
-- David Kastrup and Lute Kamstra
----------------------------------------------------------------------
"Aren't user-defined constants useful in other languages?"
"The only user-defined constant is ignorance. (With programmers,
this is a variable concept ;-)"
-- Juanma Barranquero and Thien-Thi Nguyen
----------------------------------------------------------------------
"Uh, 'archaic' and 'alive' is not a contradiction."
"Yes it is. 'Archaic' does not mean 'old' or 'early'. It means
'obsolete'."
"'He arche' in Greek means 'the beginning'. John 1 starts off with
'En arche en ho Logos': in the beginning, there was the word. Now of
course we all know that Emacs was there before Word, but this might
have escaped John's notice."
-- David Kastrup and RMS
----------------------------------------------------------------------
Re: patch for woman (woman-topic-at-point)
"Sorry for the long message. I wanted to make the problem clear
also for people not familiar with `woman'."
"Most hackers, I take?
For a moment there I thought you had a patch that you could put on
a woman, and it would make her come right to the topic at point
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

View file

@ -1,8 +1,8 @@
This is a list of ways to say hello in various languages. This is a list of ways to say hello in various languages.
Non-ASCII examples: Non-ASCII examples:
Europe: ,A!(BHola!, Hyv,Add(B p,Ad(Biv,Add(B, Gr,A|_(B Gott, Bon,Cu(Bu, Dobr,B}(B den, Tere p,Ad(Bevast Europe: ,A!(BHola!, Gr,A|_(B Gott, Hyv,Add(B p,Ad(Biv,Add(B, Tere ,Au(Bhtust, Bon,Cu(Bu
Cze,B6f(B!, ,FCei\(B ,Fsar(B, ,L7T`PRabRcYbU(B!, $,1J2J0J;J0J@JOJ=J1J0(B Cze,B6f(B!, Dobr,B}(B den, ,L7T`PRabRcYbU(B!, ,FCei\(B ,Fsar(B, $,1J2J0J;J0J@JOJ=J1J0(B
Africa: $(3!A!,!>(B Africa: $(3!A!,!>(B
Middle/Near East: ,Hylem(B, (38R(47d(3T!JSa(4W(3W(B Middle/Near East: ,Hylem(B, (38R(47d(3T!JSa(4W(3W(B
South Asia: 4$,4!8v#")0$,15h14$,4!hv#")0$,15n14$,4!zv#!)v#")v#"D0$,15x6-5d6'1(B, 4$,44Kv#4z0$,1?(14$,44hv#4zv#40$,1?.14$,44qv#4{v#3Q0$,1?8?M>u?>14$,44av#4z0$,1?01(B, 4$,46<0$,1@H14$,46A0$,1@N14$,46Kv#6Vv#6)v#6M0$,1@X@m@5@^14$,46Cv#6W0$,1@P@"1(B, 4$,4*U0$,1<U14$,4*M0$,1<C14$,4*Hv#)b0$,1<5<m14$,4*H0$,1<514$,4*Qv#)b0$,1<N<m1(B, 4$(7"70"714$P0"!#C"Q1!;4"Er'"S0"E"S14"G0"G1!;4"70"714"2r'"[0"2"[1!;4"Dr'"[0"D"[14"#0"#14"G0"G1!>(B South Asia: 4$,4!8v#")0$,15h14$,4!hv#")0$,15n14$,4!zv#!)v#")v#"D0$,15x6-5d6'1(B, 4$,44Kv#4z0$,1?(14$,44hv#4zv#40$,1?.14$,44qv#4{v#3Q0$,1?8?M>u?>14$,44av#4z0$,1?01(B, 4$,46<0$,1@H14$,46A0$,1@N14$,46Kv#6Vv#6)v#6M0$,1@X@m@5@^14$,46Cv#6W0$,1@P@"1(B, 4$,4*U0$,1<U14$,4*M0$,1<C14$,4*Hv#)b0$,1<5<m14$,4*H0$,1<514$,4*Qv#)b0$,1<N<m1(B, 4$(7"70"714$P0"!#C"Q1!;4"Er'"S0"E"S14"G0"G1!;4"70"714"2r'"[0"2"[1!;4"Dr'"[0"D"[14"#0"#14"G0"G1!>(B

177
etc/NEWS
View file

@ -336,6 +336,10 @@ by whitespace. This means you can now use them as shell wildcards
too. If you want to use just plain `*' as a wildcard, type `*""'; the too. If you want to use just plain `*' as a wildcard, type `*""'; the
doublequotes make no difference in the shell, but they prevent doublequotes make no difference in the shell, but they prevent
special treatment in `dired-do-shell-command'. special treatment in `dired-do-shell-command'.
** Adaptive filling misfeature removed.
It no longer treats `NNN.' or `(NNN)' as a prefix.
* Editing Changes in Emacs 22.1 * Editing Changes in Emacs 22.1
@ -904,6 +908,12 @@ Such individual settings are now preserved when windows are split
horizontally or vertically, a saved window configuration is restored, horizontally or vertically, a saved window configuration is restored,
or when the frame is resized. or when the frame is resized.
+++
*** The %c and %l constructs are now ignored in frame-title-format.
Due to technical limitations in how Emacs interacts with windowing
systems, these constructs often failed to render properly, and could
even cause Emacs to crash.
** Cursor display changes: ** Cursor display changes:
+++ +++
@ -953,6 +963,19 @@ so package-specific faces can inherit from it.
+++ +++
*** `vertical-border' face is used for the vertical divider between windows. *** `vertical-border' face is used for the vertical divider between windows.
** ebnf2ps changes:
+++
*** New option `ebnf-arrow-extra-width' which specify extra width for arrow
shape drawing.
The extra width is used to avoid that the arrowhead and the terminal border
overlap. It depens on `ebnf-arrow-shape' and `ebnf-line-width'.
+++
*** New option `ebnf-arrow-scale' which specify the arrow scale.
Values lower than 1.0, shrink the arrow.
Values greater than 1.0, expand the arrow.
** Font-Lock changes: ** Font-Lock changes:
+++ +++
@ -969,11 +992,12 @@ fontification in Info, remove `turn-on-font-lock' from
`Info-mode-hook'. `Info-mode-hook'.
+++ +++
*** font-lock: in modes like C and Lisp where the fontification assumes that *** Font-Lock mode: in major modes such as Lisp mode, where some Emacs
an open-paren in column 0 is always outside of any string or comment, features assume that an open-paren in column 0 is always outside of
font-lock now highlights any such open-paren-in-column-zero in bold-red any string or comment, Font-Lock now highlights any such open-paren in
if it is inside a string or a comment, to indicate that it can cause bold-red if it is inside a string or a comment, to indicate that it
trouble with fontification and/or indentation. can cause trouble. You should rewrite the string or comment so that
the open-paren is not in column 0.
+++ +++
*** New standard font-lock face `font-lock-preprocessor-face'. *** New standard font-lock face `font-lock-preprocessor-face'.
@ -1054,7 +1078,7 @@ ESC, like they do for Gtk+, Mac and W32.
+++ +++
*** For the Gtk+ version, you can make Emacs use the old file dialog *** For the Gtk+ version, you can make Emacs use the old file dialog
by setting the variable `x-use-old-gtk-file-dialog' to t. Default is to use by setting the variable `x-gtk-use-old-file-dialog' to t. Default is to use
the new dialog. the new dialog.
** Mouse changes: ** Mouse changes:
@ -1429,6 +1453,10 @@ otherwise behaves quite similarly to the bash version.
`comint-use-prompt-regexp'. The old name has been kept as an alias, `comint-use-prompt-regexp'. The old name has been kept as an alias,
but declared obsolete. but declared obsolete.
+++
*** The EMACS environment variable now defaults to Emacs's absolute
file name, instead of to "t".
** M-x Compile changes: ** M-x Compile changes:
--- ---
@ -1485,6 +1513,10 @@ it doesn't scroll the compilation output window. If there is no left fringe,
no arrow is displayed and a value of nil means display the message at the top no arrow is displayed and a value of nil means display the message at the top
of the window. of the window.
+++
*** The EMACS environment variable now defaults to Emacs's absolute
file name, instead of to "t".
** Occur mode changes: ** Occur mode changes:
+++ +++
@ -2003,6 +2035,34 @@ behavior in older versions of Emacs).
--- ---
** Changes in Allout ** Changes in Allout
*** Some previously rough topic-header format edge cases are reconciled.
Level 1 topics use the mode's comment format, and lines starting with the
asterisk - for instance, the comment close of some languages (eg, c's "*/"
or mathematica's "*)") - at the beginning of line are no longer are
interpreted as level 1 topics in those modes.
*** Many or most commonly occuring "accidental" topics are disqualified.
Text in item bodies that looks like a low-depth topic is no longer mistaken
for one unless its first offspring (or that of its next sibling with
offspring) is only one level deeper.
For example, pasting some text with a bunch of leading asterisks into a
topic that's followed by a level 3 or deeper topic will not cause the
pasted text to be mistaken for outline structure.
The same constraint is applied to any level 2 or 3 topics.
This settles an old issue where typed or pasted text needed to be carefully
reviewed, and sometimes doctored, to avoid accidentally disrupting the
outline structure. Now that should be generally unnecessary, as the most
prone-to-occur accidents are disqualified.
*** Allout now refuses to create "containment discontinuities", where a
topic is shifted deeper than the offspring-depth of its container. On the
other hand, allout now operates gracefully with existing containment
discontinuities, revealing excessively contained topics rather than either
leaving them hidden or raising an error.
*** Topic cryptography added, enabling easy gpg topic encryption and *** Topic cryptography added, enabling easy gpg topic encryption and
decryption. Per-topic basis enables interspersing encrypted-text and decryption. Per-topic basis enables interspersing encrypted-text and
clear-text within a single file to your heart's content, using symmetric clear-text within a single file to your heart's content, using symmetric
@ -2012,56 +2072,52 @@ pending topics on save, and more, make it easy to use encryption in
powerful ways. Encryption behavior customization is collected in the powerful ways. Encryption behavior customization is collected in the
allout-encryption customization group. allout-encryption customization group.
*** `allout-view-change-hook' marked as being deprecated - use *** Navigation within an item is easier. Repeated beginning-of-line and
`allout-exposure-change-hook' instead. Both are still invoked, but end-of-line key commands (usually, ^A and ^E) cycle through the
`allout-view-change-hook' will eventually be ignored. The new beginning/end-of-line and then beginning/end of topic, etc. See new
`allout-exposure-change-hook' is called with args that were passed to customization vars `allout-beginning-of-line-cycles' and
`allout-flag-region', making it easier to use. `allout-end-of-line-cycles'.
*** Other allout functions which change the outline structure also have *** New or revised allout-mode activity hooks enable creation of
hooks, enabling cooperative allout enhancements. See cooperative enhancements to allout mode without changes to the mode,
`allout-structure-added-hook', `allout-structure-deleted-hook', and itself.
`allout-structure-shifted-hook'.
*** Default command prefix changed to "\C-c " (control-c space), to avoid See `allout-exposure-change-hook', `allout-structure-added-hook',
intruding on user's keybinding space. Customize the `allout-structure-deleted-hook', and `allout-structure-shifted-hook'.
`allout-exposure-change-hook' replaces the existing
`allout-view-change-hook', which is being deprecated. Both are still
invoked, but `allout-view-change-hook' will eventually be ignored.
`allout-exposure-change-hook' is called with explicit arguments detailing
the specifics of each change (as are the other new hooks), making it easier
to use than the old version.
There is a new mode deactivation hook, `allout-mode-deactivate-hook', for
coordinating with deactivation of allout-mode. Both that and the mode
activation hook, `allout-mode-hook' are now run after the `allout-mode'
variable is changed, rather than before.
*** Default command prefix was changed to "\C-c " (control-c space), to
avoid intruding on user's keybinding space. Customize the
`allout-command-prefix' variable to your preference. `allout-command-prefix' variable to your preference.
*** Allout now uses text overlay's `invisible' property (and others) for *** Allout now uses text overlay's `invisible' property for concealed text,
concealed text, instead of selective-display. This simplifies the code, in instead of selective-display. This simplifies the code, in particular
particular avoiding the need for kludges for isearch dynamic-display, avoiding the need for kludges for isearch dynamic-display, discretionary
discretionary handling of edits of concealed text, undo concerns, etc. handling of edits of concealed text, undo concerns, etc.
*** Some previously rough topic-header format edge cases are reconciled. *** There are many other fixes and refinements, including:
Level 1 topics use the mode's comment format, and lines starting with the
asterisk - for instance, the comment close of some languages (eg, c's "*/"
or mathematica's "*)") - at the beginning of line are no longer are
interpreted as level 1 topics in those modes. (Yay!)
*** Many substantial fixes and refinements, including: - repaired inhibition of inadvertent edits to concealed text, without
inhibiting undo; we now reveal undo changes within concealed text.
- repaired regexp-quoting of custom header prefixes, so any literals
will now work (for instance, mathematica's "(*" is now properly
accepted).
- repaired inhibition of inadvertent edits to concealed text.
- refuse to create "containment discontinuities", where a
topic is shifted deeper than the offspring-depth of its' container
- auto-fill-mode is now left inactive when allout-mode starts, if it - auto-fill-mode is now left inactive when allout-mode starts, if it
already was inactive. also, `allout-inhibit-auto-fill' custom already was inactive. also, `allout-inhibit-auto-fill' custom
configuration variable makes it easy to disable auto fill in allout configuration variable makes it easy to disable auto fill in allout
outlines in general or on a per-buffer basis. outlines in general or on a per-buffer basis.
- mode hook changes: new hook `allout-mode-deactivate-hook', for
coordinating with deactivation of allout-mode. `allout-mode-hook' is
now run after the `allout-mode' variable is changed, as is the new
`allout-mode-deactivate-hook'.
- allout now tolerates fielded text in outlines without disruption. - allout now tolerates fielded text in outlines without disruption.
- hot-spot navigation now is modularized with a new function, - hot-spot navigation now is modularized with a new function,
`allout-hotspot-key-handler', enabling easier articulation and `allout-hotspot-key-handler', enabling easier use and enhancement of
enhancement of the functionality by allout addons. the functionality in allout addons.
- topic body navigation is easier, where repeated beginning of line and
end of line key commands cycle through the actually beginning/end of
line and then beginning/end of topic, etc. see new customization vars
`allout-beginning-of-line-cycles' and `allout-end-of-line-cycles'.
- repaired retention of topic body hanging indent upon topic depth shifts - repaired retention of topic body hanging indent upon topic depth shifts
- bulleting variation is simpler and more accommodating, both in the - bulleting variation is simpler and more accommodating, both in the
default behavior and in ability to vary when creating new topics default behavior and in ability to vary when creating new topics
@ -2072,8 +2128,7 @@ interpreted as level 1 topics in those modes. (Yay!)
- included a few unit-tests for interior functionality. developers can - included a few unit-tests for interior functionality. developers can
have them automatically run at the end of module load by customizing have them automatically run at the end of module load by customizing
the option `allout-run-unit-tests-on-load'. the option `allout-run-unit-tests-on-load'.
- many, many minor tweaks and fixes. many internal fixes and - many, many other, more minor tweaks, fixes, and refinements.
refinements of docstrings.
- version number incremented to 2.2 - version number incremented to 2.2
** The variable `woman-topic-at-point' was renamed ** The variable `woman-topic-at-point' was renamed
@ -3749,6 +3804,10 @@ negative, is now a float. For example: (expt 2 -2) => 0.25.
+++ +++
*** The function `eql' is now available without requiring the CL package. *** The function `eql' is now available without requiring the CL package.
+++
*** The new function `memql' is like `memq', but uses `eql' for comparison,
that is, floats are compared by value and other elements with `eq'.
+++ +++
*** `makehash' is now obsolete. Use `make-hash-table' instead. *** `makehash' is now obsolete. Use `make-hash-table' instead.
@ -4075,6 +4134,11 @@ give up and return LIMIT.
and partial visibility state of the corresponding row, if the PARTIALLY and partial visibility state of the corresponding row, if the PARTIALLY
arg is non-nil. arg is non-nil.
+++
*** New function `window-line-height' is an efficient way to get
information about a specific text line in a window provided that the
window's display is up-to-date.
+++ +++
*** New functions `posn-at-point' and `posn-at-x-y' return *** New functions `posn-at-point' and `posn-at-x-y' return
click-event-style position information for a given visible buffer click-event-style position information for a given visible buffer
@ -4082,6 +4146,13 @@ position or for a given window pixel coordinate.
** Text modification: ** Text modification:
+++
*** The new function `buffer-chars-modified-tick' returns a buffer's
tick counter for changes to characters. Each time text in that buffer
is inserted or deleted, the character-change counter is updated to the
tick counter (`buffer-modified-tick'). Text property changes leave it
unchanged.
+++ +++
*** The new function `insert-for-yank' normally works like `insert', but *** The new function `insert-for-yank' normally works like `insert', but
removes the text properties in the `yank-excluded-properties' list removes the text properties in the `yank-excluded-properties' list
@ -4646,6 +4717,12 @@ over minor mode keymaps.
text properties, according to their stickiness. This also means that it text properties, according to their stickiness. This also means that it
works with empty overlays. The same hold for the `local-map' property. works with empty overlays. The same hold for the `local-map' property.
*** `key-binding' will now look up mouse-specific bindings. The
keymaps consulted by `key-binding' will get adapted if the key
sequence is started with a mouse event. Instead of letting the click
position be determined from the key sequence itself, it is also
possible to specify it with an optional argument explicitly.
*** Dense keymaps now handle inheritance correctly. *** Dense keymaps now handle inheritance correctly.
Previously a dense keymap would hide all of the simple-char key Previously a dense keymap would hide all of the simple-char key
@ -4899,9 +4976,6 @@ be used in different windows showing different buffers.
*** New function `define-fringe-bitmap' can now be used to create new *** New function `define-fringe-bitmap' can now be used to create new
fringe bitmaps, as well as change the built-in fringe bitmaps. fringe bitmaps, as well as change the built-in fringe bitmaps.
To change a built-in bitmap, do (require 'fringe) and use the symbol
identifying the bitmap such as `left-truncation' or `continued-line'.
*** New function `destroy-fringe-bitmap' deletes a fringe bitmap *** New function `destroy-fringe-bitmap' deletes a fringe bitmap
or restores a built-in one to its default value. or restores a built-in one to its default value.
@ -5190,6 +5264,11 @@ external packages to save users from having to update
*** The new variable `max-image-size' defines the maximum size of *** The new variable `max-image-size' defines the maximum size of
images that Emacs will load and display. images that Emacs will load and display.
+++
*** The new variable `display-mm-dimensions-alist' can be used to
override incorrect graphical display dimensions returned by functions
`display-mm-height' and `display-mm-width'.
** Mouse pointer features: ** Mouse pointer features:
+++ (lispref) +++ (lispref)

View file

@ -202,6 +202,11 @@ necessary but missing, please report it via M-x report-emacs-bug.
On platforms such as Solaris, you can also work around this problem by On platforms such as Solaris, you can also work around this problem by
configuring your compiler to use the native linker instead of GNU ld. configuring your compiler to use the native linker instead of GNU ld.
** Emacs compiled with Gtk+ crashes when closing a display (x-close-connection).
This happens because of bugs in Gtk+. Gtk+ 2.10 seems to be OK. See bug
http://bugzilla.gnome.org/show_bug.cgi?id=85715.
* General runtime problems * General runtime problems
** Lisp problems ** Lisp problems
@ -535,7 +540,7 @@ on the flag to output ^M at the end of each line. You can fix the
problem by adding this to your .cshrc file: problem by adding this to your .cshrc file:
if ($?EMACS) then if ($?EMACS) then
if ($EMACS == "t") then if ("$EMACS" =~ /*) then
unset edit unset edit
stty -icrnl -onlcr -echo susp ^Z stty -icrnl -onlcr -echo susp ^Z
endif endif
@ -828,6 +833,11 @@ feature (in the font part of the configuration window).
* Internationalization problems * Internationalization problems
** M-{ does not work on a Spanish PC keyboard.
Many Spanish keyboards seem to ignore that combination. Emacs can't
do anything about it.
** Characters from the mule-unicode charsets aren't displayed under X. ** Characters from the mule-unicode charsets aren't displayed under X.
XFree86 4 contains many fonts in iso10646-1 encoding which have XFree86 4 contains many fonts in iso10646-1 encoding which have
@ -1081,6 +1091,15 @@ into Meta. This is because of the great importance of Meta in Emacs.
** Window-manager and toolkit-related problems ** Window-manager and toolkit-related problems
*** Gnome: Emacs receives input directly from the keyboard, bypassing XIM.
This seems to happen when gnome-settings-daemon version 2.12 or later
is running. If gnome-settings-daemon is not running, Emacs receives
input through XIM without any problem. Furthermore, this seems only
to happen in *.UTF-8 locales; zh_CN.GB2312 and zh_CN.GBK locales, for
example, work fine. A bug report has been filed in the Gnome
bugzilla: http://bugzilla.gnome.org/show_bug.cgi?id=357032
*** Gnome: Emacs' xterm-mouse-mode doesn't work on the Gnome terminal. *** Gnome: Emacs' xterm-mouse-mode doesn't work on the Gnome terminal.
A symptom of this bug is that double-clicks insert a control sequence A symptom of this bug is that double-clicks insert a control sequence

File diff suppressed because it is too large Load diff

View file

@ -48,6 +48,9 @@ current buffer.
It should not generate :require. Or :require in defcustom It should not generate :require. Or :require in defcustom
should not be recorded in the user's custom-set-variables call. should not be recorded in the user's custom-set-variables call.
** Feature to change cursor shape when Emacs is idle (for more than
a specified time).
** The buttons at the top of a custom buffer should not omit ** The buttons at the top of a custom buffer should not omit
variables whose values are currently hidden. variables whose values are currently hidden.

View file

@ -1,6 +1,6 @@
Въведение в Emacs. Условията за копиране са в края на текста. Въведението на Емакс. Условията за копиране са в края на текста.
Командите на Emacs най-често включват клавишите CONTROL (понякога Командите на Емакс най-често включват клавишите CONTROL (понякога
отбелязван с CTRL или CTL) и META (понякога отбелязван с EDIT или отбелязван с CTRL или CTL) и META (понякога отбелязван с EDIT или
ALT). Вместо да се изписват с пълно име всеки път, ние ще използваме ALT). Вместо да се изписват с пълно име всеки път, ние ще използваме
следните съкращения: следните съкращения:
@ -14,7 +14,7 @@ ALT).
клавиша ESC и след това въведете <знак>. Ние клавиша ESC и след това въведете <знак>. Ние
записваме <ESC>, за да отбележим клавиша ESC. записваме <ESC>, за да отбележим клавиша ESC.
Важна бележка: в края на Emacs сесията въведете двата знака C-x C-c. Важна бележка: в края на Емакс сесията въведете двата знака C-x C-c.
Знаците ">>" отляво ви дават указание да изпълните команда. Например: Знаците ">>" отляво ви дават указание да изпълните команда. Например:
<<Blank lines inserted here by startup of help-with-tutorial>> <<Blank lines inserted here by startup of help-with-tutorial>>
>> Сега въведете C-v (Покажи следващия екран), за да се придвижите към >> Сега въведете C-v (Покажи следващия екран), за да се придвижите към
@ -92,7 +92,7 @@ Next (
Всеки ред от текст завършва със знак за нов ред, който служи за Всеки ред от текст завършва със знак за нов ред, който служи за
отделянето на реда от следващия ред. Последният ред във вашия файл отделянето на реда от следващия ред. Последният ред във вашия файл
трябва да има знак за нов ред в края (но Emacs не изисква такъв, трябва да има знак за нов ред в края (но Емакс не изисква такъв,
когато прочита файла). когато прочита файла).
>> Опитайте C-b в началото на ред. Това трябва да ви придвижи в края >> Опитайте C-b в началото на ред. Това трябва да ви придвижи в края
@ -108,7 +108,7 @@ C-f
Когато се придвижвате след горния или долния край на екрана, текстът Когато се придвижвате след горния или долния край на екрана, текстът
отвъд края се измества към екрана. Това се нарича "скролиране". То отвъд края се измества към екрана. Това се нарича "скролиране". То
позволява на Emacs да придвижва курсора към зададеното място в текста, позволява на Емакс да придвижва курсора към зададеното място в текста,
без да го изкарва извън екрана. без да го изкарва извън екрана.
>> Опитайте се да придвижите курсора след долния край на екрана с C-n >> Опитайте се да придвижите курсора след долния край на екрана с C-n
@ -191,7 +191,7 @@ Shift
Вие можете също да се придвижвате с клавишите-стрелки, ако вашият Вие можете също да се придвижвате с клавишите-стрелки, ако вашият
терминал има такива. Ние препоръчваме да научите C-b, C-f, C-n и C-p терминал има такива. Ние препоръчваме да научите C-b, C-f, C-n и C-p
по три причини. Първо, те работят на всички видове терминали. Второ, по три причини. Първо, те работят на всички видове терминали. Второ,
веднъж след като добиете практика в използването на Emacs, ще веднъж след като добиете практика в използването на Емакс, ще
откриете, че въвеждането на тези Control-знаци е по-бързо от откриете, че въвеждането на тези Control-знаци е по-бързо от
въвеждането на клавишите стрелки, защото не трябва да премествате въвеждането на клавишите стрелки, защото не трябва да премествате
ръката си далеч от областта на клавишите с букви. Трето, веднъж след ръката си далеч от областта на клавишите с букви. Трето, веднъж след
@ -199,7 +199,7 @@ Shift
можете също така лесно да научите по-напредналите команди за движение можете също така лесно да научите по-напредналите команди за движение
на курсора. на курсора.
Повечето Emacs команди приемат числов аргумент; за повечето от тях той Повечето Емакс команди приемат числов аргумент; за повечето от тях той
служи като брояч на повторения. Начинът, по който давате числов служи като брояч на повторения. Начинът, по който давате числов
брояч, е с въвеждане на C-u, последвано от въвеждане на цифрите, и брояч, е с въвеждане на C-u, последвано от въвеждане на цифрите, и
всичко това преди въвеждане на самата команда. Ако имате клавиш META всичко това преди въвеждане на самата команда. Ако имате клавиш META
@ -231,7 +231,7 @@ C-v
Ако използвате графичен интерфейс, като X11 или MS-Windows, би Ако използвате графичен интерфейс, като X11 или MS-Windows, би
трябвало да има тънка правоъгълна област, наречена плъзгач (scroll трябвало да има тънка правоъгълна област, наречена плъзгач (scroll
bar), в лявата страна на прозореца на Emacs. Вие можете да скролирате bar), в лявата страна на прозореца на Емакс. Вие можете да скролирате
текста, щракайки с мишката в плъзгача. текста, щракайки с мишката в плъзгача.
>> Опитайте да натиснете средния бутон на върха на осветената област >> Опитайте да натиснете средния бутон на върха на осветената област
@ -243,10 +243,10 @@ bar),
нагоре и надолу, като движите мишката. нагоре и надолу, като движите мишката.
* КОГАТО EMACS Е БЛОКИРАЛ * КОГАТО ЕМАКС Е БЛОКИРАЛ
------------------------- -------------------------
Ако Emacs спре да отговаря на вашите команди, вие можете да го спрете Ако Емакс спре да отговаря на вашите команди, вие можете да го спрете
безопасно, като въведете C-g. Може да използвате C-g, за да спрете безопасно, като въведете C-g. Може да използвате C-g, за да спрете
команда, която се изпълнява твърде дълго. команда, която се изпълнява твърде дълго.
@ -263,15 +263,15 @@ bar),
* ЗАБРАНЕНИ КОМАНДИ * ЗАБРАНЕНИ КОМАНДИ
------------------- -------------------
Някои команди на Emacs са "забранени", така че начинаещите потребители Някои команди на Емакс са "забранени", така че начинаещите потребители
да не могат да ги употребят по погрешка. да не могат да ги употребят по погрешка.
Ако въведете някоя от забранените команди, Emacs извежда съобщение, Ако въведете някоя от забранените команди, Емакс извежда съобщение,
казвайки каква е била командата и питайки ви дали искате да продължите казвайки каква е била командата и питайки ви дали искате да продължите
напред и да изпълните командата. напред и да изпълните командата.
Ако наистина искате да изпробвате командата, въведете <SPC> (клавиша Ако наистина искате да изпробвате командата, въведете клавиша интервал
интервал) в отговор на въпроса. Обикновено ако не искате да изпълните в отговор на въпроса. Обикновено ако не искате да изпълните
забранената команда, отговаряте на въпроса с "n". забранената команда, отговаряте на въпроса с "n".
>> Въведете C-x C-l (която е забранена команда), и след това въведете >> Въведете C-x C-l (която е забранена команда), и след това въведете
@ -281,7 +281,7 @@ bar),
* ПРОЗОРЦИ * ПРОЗОРЦИ
---------- ----------
Emacs може да управлява няколко прозореца, всеки извеждайки свой Емакс може да управлява няколко прозореца, всеки извеждайки свой
собствен текст. Ние ще обясним по-късно как да използвате няколко собствен текст. Ние ще обясним по-късно как да използвате няколко
прозореца. Точно сега ние искаме да обясним как да се отървете от прозореца. Точно сега ние искаме да обясним как да се отървете от
допълнителни прозорци и да се върнете към основното редактиране с един допълнителни прозорци и да се върнете към основното редактиране с един
@ -311,13 +311,13 @@ Emacs
---------------------- ----------------------
Ако искате да вмъкнете текст, просто го въведете. Знаците, които Ако искате да вмъкнете текст, просто го въведете. Знаците, които
могат да се виждат, като А, 7, * и т.н., се възприемат от Emacs като могат да се виждат, като А, 7, * и т.н., се възприемат от Емакс като
текст и се вмъкват веднага. Въведете <Return> (клавишът за връщане в текст и се вмъкват веднага. Въведете <Return> (клавишът за връщане в
началото на реда), за да вмъкнете знак за нов ред. началото на реда), за да вмъкнете знак за нов ред.
Може да изтриете последния знак, който сте въвели, с въвеждане на Може да изтриете последния знак, който сте въвели, с въвеждане на
<Delback>. <Delback> е клавиш от клавиатурата -- същият, който <Delback>. <Delback> е клавиш от клавиатурата -- същият, който
обикновено използвате извън Emacs, за да изтриете последния въведен от обикновено използвате извън Емакс, за да изтриете последния въведен от
вас знак. Обикновено е голям клавиш, на няколко реда разстояние от вас знак. Обикновено е голям клавиш, на няколко реда разстояние от
клавиша <Return>, и обикновено е отбелязан с "Delete", "Del" или клавиша <Return>, и обикновено е отбелязан с "Delete", "Del" или
"Backspace". "Backspace".
@ -357,24 +357,24 @@ Emacs
>> Въведете <Return>, за да вмъкнете наново знака за нов ред, който >> Въведете <Return>, за да вмъкнете наново знака за нов ред, който
изтрихте. изтрихте.
Запомнете, че на повечето команди на Emacs може да бъде зададен брояч Запомнете, че на повечето команди на Емакс може да бъде зададен брояч
на повторенията; това включва вмъкването на текстови знаци. на повторенията; това включва вмъкването на текстови знаци.
Повтарянето на текстов знак го вмъква няколко пъти. Повтарянето на текстов знак го вмъква няколко пъти.
>> Опитайте това сега -- въведете C-u 8 *, за да вмъкнете ********. >> Опитайте това сега -- въведете C-u 8 *, за да вмъкнете ********.
Сега вие сте научили най-основните начини за въвеждане на нещо в Emacs Сега вие сте научили най-основните начини за въвеждане на нещо в Емакс
и поправяне на грешки. Можете също така да изтривате думи или редове. и поправяне на грешки. Можете също така да изтривате думи или редове.
Ето обобщение на изтриващите действия: Ето обобщение на изтриващите действия:
<Delback> Изтриване на знака точно преди курсора <Delback> изтриване на знака точно преди курсора
C-d Изтриване на знака точно след курсора C-d изтриване на знака точно след курсора
M-<Delback> Изтриване на думата непосредствено преди курсора M-<Delback> изтриване на думата непосредствено преди курсора
M-d Изтриване на думата след курсора M-d изтриване на думата след курсора
C-k Изтриване от мястото на курсора до края на реда C-k изтриване от мястото на курсора до края на реда
M-k Изтриване до края на текущото изречение M-k изтриване до края на текущото изречение
Забележете, че <Delback> и C-d, сравнени с M-<Delback> и M-d, Забележете, че <Delback> и C-d, сравнени с M-<Delback> и M-d,
разширяват подобието, започнато от C-f и M-f (добре, <Delback> не е разширяват подобието, започнато от C-f и M-f (добре, <Delback> не е
@ -384,12 +384,12 @@ M-k
Можете също да премахнете всяка част от буфера с един универсален Можете също да премахнете всяка част от буфера с един универсален
начин. Придвижете се до единия край на частта и въведете C-@ или начин. Придвижете се до единия край на частта и въведете C-@ или
C-<SPC> (което и да е от двете). (<SPC> е клавишът интервал.) C-интервал (което и да е от двете). Придвижете се до другия край на
Придвижете се до другия край на частта и въведете C-w. Това ще изреже частта и въведете C-w. Това ще изреже целия текст между тези два
целия текст между тези два края. края.
>> Придвижете курсора до знака "М" в началото на предишния абзац. >> Придвижете курсора до знака "М" в началото на предишния абзац.
>> Въведете C-<SPC>. Emacs трябва да изведе съобщение "Mark set" в >> Въведете C-интервал. Емакс трябва да изведе съобщение "Mark set" в
долния край на екрана. долния край на екрана.
>> Придвижете курсора до буквата "р" в "край" на втория ред от абзаца. >> Придвижете курсора до буквата "р" в "край" на втория ред от абзаца.
>> Въведете C-w. Това ще изреже текста, започващ от "М" и завършващ >> Въведете C-w. Това ще изреже текста, започващ от "М" и завършващ
@ -419,9 +419,9 @@ C-k
Връщането обратно на текст се нарича "вмъкване". (Мислете за него Връщането обратно на текст се нарича "вмъкване". (Мислете за него
като за изваждане обратно, или дръпване обратно, на текст, който е бил като за изваждане обратно, или дръпване обратно, на текст, който е бил
изрязан.) Можете да вмъквате изрязания текст или на същото място, изрязан.) Можете да вмъквате изрязания текст или на същото място,
откъдето е бил премахнат, или на друго място в редактирания текст, откъдето е бил премахнат, или на друго място в буфера, даже и в
даже и в различен файл. Можете да вмъквате един и същ текст няколко различен файл. Можете да вмъквате един и същ текст няколко пъти; това
пъти; това прави няколко копия от него. прави няколко копия от него.
Командата за вмъкване е C-y. Тя вмъква наново последния изрязан текст Командата за вмъкване е C-y. Тя вмъква наново последния изрязан текст
в текущото място на курсора. в текущото място на курсора.
@ -500,25 +500,25 @@ C_-
--------- ---------
За да направите текста, който редактирате, постоянен, трябва да го За да направите текста, който редактирате, постоянен, трябва да го
сложите във файл. В противен случай той ще изчезне, когато Emacs сложите във файл. В противен случай той ще изчезне, когато Емакс
приключи. За да сложите вашия текст във файл, трябва да "намерите" приключи. За да сложите вашия текст във файл, трябва да "намерите"
файла преди да въвеждате текст. (Това също се нарича "посещаване" на файла преди да въвеждате текст. (Това също се нарича "посещаване" на
файла.) файла.)
Намиране на файл означава, че виждате съдържанието му в Emacs. В Намиране на файл означава, че виждате съдържанието му в Емакс. В
много случаи това е като да редактирате самия файл. Обаче промените, много случаи това е като да редактирате самия файл. Обаче промените,
които правите, използвайки Emacs, не остават постоянни, докато не които правите, използвайки Емакс, не остават постоянни, докато не
"запишете" файла. Това е така, за да се предотврати оставянето на "запишете" файла. Това е така, за да се предотврати оставянето на
полупроменен файл в системата, когато не искате това. Дори когато полупроменен файл в системата, когато не искате това. Дори когато
записвате, Emacs оставя началния файл под променено име, в случай, че записвате, Емакс оставя началния файл под променено име, в случай, че
по-късно решите, че вашите промени са били грешка. по-късно решите, че вашите промени са били грешка.
Ако погледнете в дъното на екрана, ще видите ред, който започва и Ако погледнете в дъното на екрана, ще видите ред, който започва и
завършва с тирета и започва с "-R:-- TUTORIAL.bg" или нещо подобно. завършва с тирета и започва с "-b:-- TUTORIAL.bg" или нещо подобно.
Тази част от екрана показва името на файла, който сте посетили. Точно Тази част от екрана показва името на файла, който сте посетили. Точно
сега вие сте посетили файл, наречен "TUTORIAL.bg", който е вашето сега вие сте посетили файл, наречен "TUTORIAL.bg", който е вашето
лично копие-чернова на Emacs въведението. Когато намерите файл в лично копие-чернова на Емакс въведението. Когато намерите файл в
Emacs, името на този файл ще се появи на същото място. Емакс, името на този файл ще се появи на същото място.
Особеност на командата за намиране на файл е, че трябва да кажете Особеност на командата за намиране на файл е, че трябва да кажете
името на файла, който искате. Ние го наричаме "четене на аргумент от името на файла, който искате. Ние го наричаме "четене на аргумент от
@ -527,10 +527,10 @@ Emacs,
C-x C-f Намиране на файл C-x C-f Намиране на файл
Emacs ви подканя да въведете името на файла. Името на файла, което Емакс ви подканя да въведете името на файла. Името на файла, което
напишете, се появява в дъното на екрана. Редът в дъното на екрана се напишете, се появява в дъното на екрана. Редът в дъното на екрана се
нарича минибуфер, когато се използва за този вид вход. Можете да нарича минибуфер, когато се използва за този вид вход. Можете да
използвате обикновените команди за редактиране на Emacs, за да използвате обикновените команди за редактиране на Емакс, за да
редактирате името на файла. редактирате името на файла.
Когато въвеждате името на файла (или какъвто и да е вход в Когато въвеждате името на файла (или какъвто и да е вход в
@ -551,12 +551,12 @@ Emacs
C-x C-s Запазване на файла C-x C-s Запазване на файла
Това копира текста от Emacs във файла. Първия път, когато това се Това копира текста от Емакс във файла. Първия път, когато това се
направи, Emacs преименува началния файл с ново име, така че той да не направи, Емакс преименува началния файл с ново име, така че той да не
се изгуби. Новото име се построява с добавяне на "~" в края на името се изгуби. Новото име се построява с добавяне на "~" в края на името
на началния файл. на началния файл.
Когато запазването е свършило, Emacs извежда името на файла, който е Когато запазването е свършило, Емакс извежда името на файла, който е
бил записан. Трябва да записвате достатъчно често, така че да не бил записан. Трябва да записвате достатъчно често, така че да не
изгубите много работа, ако системата се срине по някаква причина. изгубите много работа, ако системата се срине по някаква причина.
@ -564,19 +564,19 @@ Emacs
Това трябва да изведе "Wrote ...TUTORIAL.bg" в дъното на екрана. Това трябва да изведе "Wrote ...TUTORIAL.bg" в дъното на екрана.
ЗАБЕЛЕЖКА: На някои системи въвеждането на C-x C-s ще замръзи екрана и ЗАБЕЛЕЖКА: На някои системи въвеждането на C-x C-s ще замръзи екрана и
вие няма да виждате повече изход от Emacs. Това показва, че една вие няма да виждате повече изход от Емакс. Това показва, че една
"способност" на операционната система, наричана "управление на потока" "способност" на операционната система, наричана "управление на потока"
(flow control), е прихванала C-s и не го пропуска към Emacs. За да (flow control), е прихванала C-s и не го пропуска към Емакс. За да
размразите екрана, въведете C-q. Тогава вижте секцията "Спонтанно размразите екрана, въведете C-q. Тогава вижте секцията "Спонтанно
включване на постъпково търсене" (Spontaneous Entry to Incremental включване на постъпково търсене" (Spontaneous Entry to Incremental
Search) в ръководството на Emacs за съвет как да се справите с тази Search) в ръководството на Емакс за съвет как да се справите с тази
"способност". "способност".
Може да намерите съществуващ файл, да го разгледате и да го Може да намерите съществуващ файл, да го разгледате и да го
редактирате. Можете също да намерите файл, който не съществува. Това редактирате. Можете също да намерите файл, който не съществува. Това
е начинът за създаване на нови файлове в Emacs: намирате файла, който е начинът за създаване на нови файлове в Емакс: намирате файла, който
ще бъде в началото празен, и тогава започвате вмъкването на текста за ще бъде в началото празен, и тогава започвате вмъкването на текста за
файла. Когато говорите за "записване" на файл, Emacs всъщност ще файла. Когато говорите за "записване" на файл, Емакс всъщност ще
създаде файла с текста, който сте въвели. Оттам нататък може да създаде файла с текста, който сте въвели. Оттам нататък може да
считате, че редактирате вече съществуващ файл. считате, че редактирате вече съществуващ файл.
@ -584,9 +584,9 @@ Search)
* БУФЕРИ * БУФЕРИ
-------- --------
Ако намерите втори файл с C-x C-f, първият файл остава в Emacs. Ако намерите втори файл с C-x C-f, първият файл остава в Емакс.
Можете да превключите обратно към него, като го намерите пак с C-x Можете да превключите обратно към него, като го намерите пак с C-x
C-f. По този начин може да получите доста на брой файлове в Emacs. C-f. По този начин може да получите доста на брой файлове в Емакс.
>> Създайте файл с име "foo", въвеждайки C-x C-f foo <Return>. >> Създайте файл с име "foo", въвеждайки C-x C-f foo <Return>.
Вмъкнете малко текст, редактирайте го и запазете "foo" с въвеждане Вмъкнете малко текст, редактирайте го и запазете "foo" с въвеждане
@ -594,16 +594,16 @@ C-f.
Накрая въведете C-x C-f TUTORIAL.bg <Return>, за да се върнете Накрая въведете C-x C-f TUTORIAL.bg <Return>, за да се върнете
обратно във въведението. обратно във въведението.
Emacs запазва текста на всеки файл в обект, наричан "буфер". Емакс запазва текста на всеки файл в обект, наричан "буфер".
Намирането на файл прави нов буфер в Emacs. За да видите списък на Намирането на файл прави нов буфер в Емакс. За да видите списък на
буферите, които в момента съществуват във вашия Emacs, въведете буферите, които в момента съществуват във вашия Емакс, въведете
C-x C-b Показване на буферите C-x C-b Показване на буферите
>> Опитайте C-x C-b сега. >> Опитайте C-x C-b сега.
Вижте как всеки буфер има име, а понякога и име на файл за файла, Вижте как всеки буфер има име, а понякога и име на файл за файла,
чието съдържание държи. ВСЕКИ текст, който виждате в Emacs прозорец, чието съдържание държи. ВСЕКИ текст, който виждате в Емакс прозорец,
е винаги част от някакъв буфер. е винаги част от някакъв буфер.
>> Въведете C-x 1, за да махнете списъка с буферите. >> Въведете C-x 1, за да махнете списъка с буферите.
@ -625,13 +625,13 @@ Emacs
Списъкът с буферите, който правите с C-x C-b, винаги ви показва името Списъкът с буферите, който правите с C-x C-b, винаги ви показва името
на всеки буфер. на всеки буфер.
ВСЕКИ текст, който виждате в Emacs прозорец, е винаги част от някакъв ВСЕКИ текст, който виждате в Емакс прозорец, е винаги част от някакъв
буфер. Някои буфери не съответстват на файлове. Например буферът, буфер. Някои буфери не съответстват на файлове. Например буферът,
именуван "*Buffer List*", не съответства на файл. Това е буферът, именуван "*Buffer List*", не съответства на файл. Това е буферът,
който съдържа списъка с буферите, които сте направили с C-x C-b. който съдържа списъка с буферите, които сте направили с C-x C-b.
Буферът, именуван "*Messages*", също не съответства на файл; той Буферът, именуван "*Messages*", също не съответства на файл; той
съдържа съобщенията, които се появяват в дъното на екрана по време на съдържа съобщенията, които се появяват в дъното на екрана по време на
Emacs сесията. Емакс сесията.
>> Въведете C-x b *Messages* <Return>, за да видите буфера със >> Въведете C-x b *Messages* <Return>, за да видите буфера със
съобщенията. След това въведете C-x C-b TUTORIAL <Return>, за да съобщенията. След това въведете C-x C-b TUTORIAL <Return>, за да
@ -639,7 +639,7 @@ Emacs
Ако направите промени в текста на един файл и тогава намерите друг Ако направите промени в текста на един файл и тогава намерите друг
файл, това няма да запише първия файл. Неговите промени остават вътре файл, това няма да запише първия файл. Неговите промени остават вътре
в Emacs, в буфера на файла. Създаването или редактирането на буфера в Емакс, в буфера на файла. Създаването или редактирането на буфера
на втория файл няма ефект върху буфера на първия файл. Това е много на втория файл няма ефект върху буфера на първия файл. Това е много
полезно, но също означава, че се нуждаете от удобен начин да запазите полезно, но също означава, че се нуждаете от удобен начин да запазите
буфера на първия файл. Ще е неудобно да превключите обратно с C-x буфера на първия файл. Ще е неудобно да превключите обратно с C-x
@ -658,8 +658,8 @@ C-x s
* РАЗШИРЯВАНЕ НА НАБОРА КОМАНДИ * РАЗШИРЯВАНЕ НА НАБОРА КОМАНДИ
------------------------------- -------------------------------
Има много, много повече команди на Emacs, отколкото могат да се сложат Има много, много повече команди на Емакс, отколкото могат да се сложат
на всички контролни и мета знаци. Emacs заобикаля това с X (eXtended) на всички контролни и мета знаци. Емакс заобикаля това с X (eXtended)
командата. Това става по два начина: командата. Това става по два начина:
C-x Знаково разширяване. Последвано от един знак. C-x Знаково разширяване. Последвано от един знак.
@ -667,49 +667,49 @@ C-x s
име. име.
Тези команди са общо взето полезни, но по-малко, отколкото командите, Тези команди са общо взето полезни, но по-малко, отколкото командите,
които досега сте научили. Вече видяхте няколко от тях: например които досега сте научили. Вече видяхте две от тях: командите върху
командите върху файлове C-x C-f за намиране (Find) и C-x C-s за файлове C-x C-f за намиране (Find) и C-x C-s за запазване (Save).
запазване (Save). Друг пример е командата за край на Emacs сесията -- Друг пример е командата за край на Емакс сесията -- това е командата
това е командата C-x C-c. (Не се безпокойте, че може да изгубите C-x C-c. (Не се безпокойте, че може да изгубите всички промени, които
всички промени, които сте направили; C-x C-c предлага да запази всеки сте направили; C-x C-c предлага да запази всеки променен файл, преди
променен файл, преди да премахне Emacs.) да премахне Емакс.)
C-z е командата за излизане от Emacs *временно* -- така че да можете C-z е командата за излизане от Емакс *временно* -- така че да можете
да се върнете към същата Emacs сесия по-късно. да се върнете към същата Емакс сесия по-късно.
На системи, които позволяват това, C-z "изоставя" (suspend) Emacs, На системи, които позволяват това, C-z "изоставя" (suspend) Емакс,
т.е. връща към обвивката, но не разрушава Emacs. В повечето обвивки т.е. връща към обвивката, но не разрушава Емакс. В повечето обвивки
можете да продължите Emacs сесията с командата "fg" или с "%emacs". можете да продължите Емакс сесията с командата "fg" или с "%emacs".
На системи, които не позволяват изоставяне, C-z създава нова На системи, които не позволяват изоставяне, C-z създава нова
подобвивка, която върви под Emacs, за да ви даде шанс да стартирате подобвивка, която върви под Емакс, за да ви даде шанс да стартирате
други програми и да се върнете към Emacs след това; това не е истинско други програми и да се върнете към Емакс след това; това не е истинско
"излизане" от Emacs. В този случай командата на обвивката "exit" е "излизане" от Емакс. В този случай командата на обвивката "exit" е
обикновеният начин да се върнете обратно към Emacs от подобвивката. обикновеният начин да се върнете обратно към Емакс от подобвивката.
Моментът да използвате C-x C-c е, когато искате да излезете от Моментът да използвате C-x C-c е, когато искате да излезете от
системата. Това е и правилната команда за излизане, когато Emacs е системата. Това е и правилната команда за излизане, когато Емакс е
извикан от пощенска програма или други странични програми, тъй като те извикан от пощенска програма или други странични програми, тъй като те
може и да не знаят как да се справят с изоставянето на Emacs. При може и да не знаят как да се справят с изоставянето на Емакс. При
обикновени обстоятелства, обаче, ако не сте тръгнали да излизате от обикновени обстоятелства, обаче, ако не сте тръгнали да излизате от
системата, по-добре е да изоставите Emacs с C-z, вместо да излизате от системата, по-добре е да изоставите Емакс с C-z, вместо да излизате от
Emacs. Емакс.
Има много команди C-x. Ето списък на тези, които сте научили: Има много команди C-x. Ето списък на тези, които сте научили:
C-x C-f Намиране на файл C-x C-f Намиране на файл.
C-x C-s Запазване на файл C-x C-s Запазване на файл.
C-x C-b Списък на буферите C-x C-b Списък на буферите.
C-x C-c Излизане от Emacs C-x C-c Излизане от Емакс.
C-x 1 Изтриване на всички прозорци, освен един C-x 1 Изтриване на всички прозорци освен един.
C-x u Отмяна C-x u Отмяна.
Именуваните разширени команди са команди, които се използват даже още Именуваните разширени команди са команди, които се използват даже още
по-рядко, или команди, които се използват само в определени режими. по-рядко, или команди, които се използват само в определени режими.
Пример е командата replace-string, която заменя глобално един низ с Пример е командата replace-string, която заменя глобално един низ с
друг. Когато въведете M-x, Emacs ви подсказва в дъното на екрана с друг. Когато въведете M-x, Емакс ви подсказва в дъното на екрана с
M-x и вие трябва да въведете името на командата, в този случай M-x и вие трябва да въведете името на командата, в този случай
"replace-string". Просто въведете "repl s<TAB>" и Emacs ще завърши "replace-string". Просто въведете "repl s<TAB>" и Емакс ще завърши
името. (<TAB> е клавишът Tab, обикновено намиращ се над клавиша името. (<TAB> е клавишът Tab, обикновено намиращ се над клавиша
CapsLock или клавиша Shift близо до левия край на клавиатурата.) CapsLock или клавиша Shift близо до левия край на клавиатурата.)
Завършете името на командата с <Return>. Завършете името на командата с <Return>.
@ -733,11 +733,11 @@ CapsLock
Когато сте направили промени във файл, но още не сте го запазили, те Когато сте направили промени във файл, но още не сте го запазили, те
могат да бъдат загубени, ако компютърът внезапно се изключи. За да ви могат да бъдат загубени, ако компютърът внезапно се изключи. За да ви
предпази от такива ситуации, Emacs периодично запазва "автоматично предпази от такива ситуации, Емакс периодично запазва "автоматично
запазван" файл за всеки файл, който редактирате. Името на автоматично запазван" файл за всеки файл, който редактирате. Името на автоматично
запазвания файл има # в началото и в края; например, ако вашият файл е запазвания файл има # в началото и в края; например, ако вашият файл е
с име "hello.c", името на неговия автоматично запазван файл ще бъде с име "hello.c", името на неговия автоматично запазван файл ще бъде
"#hello.c#". Когато запазвате файл по обикновения начин, Emacs "#hello.c#". Когато запазвате файл по обикновения начин, Емакс
изтрива неговия автоматично записван файл. изтрива неговия автоматично записван файл.
Ако компютърът зависне, може да възстановите вашата автоматично Ако компютърът зависне, може да възстановите вашата автоматично
@ -751,7 +751,7 @@ M-x recover file<Return>.
* ЕХО ОБЛАСТТА * ЕХО ОБЛАСТТА
-------------- --------------
Ако Emacs види, че въвеждате многознакови команди бавно, ще ви ги Ако Емакс види, че въвеждате многознакови команди бавно, ще ви ги
покаже в дъното на екрана, в област, наричана "ехо област". Ехо покаже в дъното на екрана, в област, наричана "ехо област". Ехо
областта обхваща последния ред от екрана. областта обхваща последния ред от екрана.
@ -762,18 +762,18 @@ M-x recover file<Return>.
Редът точно над ехо областта се нарича "ред на режима" (mode line). Редът точно над ехо областта се нарича "ред на режима" (mode line).
Той показва нещо като: Той показва нещо като:
-D:** TUTORIAL.bg 63% L749 (Fundamental)--------------------- -b:** TUTORIAL.bg (Fundamental)--L670--58%----------------
Този ред дава полезна информация за състоянието на Emacs и текста, Този ред дава полезна информация за състоянието на Емакс и текста,
който редактирате. който редактирате.
Вече знаете какво означава името на файла -- това е файлът, който сте Вече знаете какво означава името на файла -- това е файлът, който сте
намерили. NN% показва вашата текуща позиция в текста; това означава, намерили. -NN%-- показва вашата текуща позиция в текста; това
че NN процента от текста е над върха на екрана. Ако началото на файла означава, че NN процента от текста е над върха на екрана. Ако
е на екрана, ще се показва --Top-- (връх) вместо --00%--. Ако краят началото на файла е на екрана, ще се показва --Top-- (връх) вместо
на файла е на екрана, ще се показва --Bot-- (дъно). Ако гледате --00%--. Ако края на файла е на екрана, ще се показва --Bot-- (дъно).
текст, който е толкова малък, че се показва изцяло на екрана, редът на Ако гледате текст, който е толкова малък, че се показва изцяло на
режима ще изведе --All--. екрана, редът на режима ще изведе --All--.
Знакът L и цифрите показват мястото по друг начин: това е номерът на Знакът L и цифрите показват мястото по друг начин: това е номерът на
текущия ред на точката. текущия ред на точката.
@ -787,7 +787,7 @@ M-x recover file<Return>.
Fundamental (Основен), който използвате в момента. Това е пример за Fundamental (Основен), който използвате в момента. Това е пример за
"главен режим" (major mode). "главен режим" (major mode).
Emacs има много главни режими. Някои от тях са предвидени за Емакс има много главни режими. Някои от тях са предвидени за
редактиране на различни езици и/или видове текст, като например режим редактиране на различни езици и/или видове текст, като например режим
Лисп, режим Текст и други. Във всеки един момент от време точно един Лисп, режим Текст и други. Във всеки един момент от време точно един
главен режим е активен и неговото име може винаги да бъде намерено в главен режим е активен и неговото име може винаги да бъде намерено в
@ -806,7 +806,7 @@ Emacs
>> Въведете M-x text mode<Return>. >> Въведете M-x text mode<Return>.
Не се безпокойте, никоя от Emacs командите, които сте научили, няма да Не се безпокойте, никоя от Емакс командите, които сте научили, няма да
се промени по някакъв съществен начин. Но може да забележите, че M-f се промени по някакъв съществен начин. Но може да забележите, че M-f
и M-b сега възприемат апострофите (') като част от думите. Преди и M-b сега възприемат апострофите (') като част от думите. Преди
това, в основния режим (Fundamental), M-f и M-b се възприемаха като това, в основния режим (Fundamental), M-f и M-b се възприемаха като
@ -835,7 +835,7 @@ m.
Един главен режим, който е много полезен, особено за редактиране на Един главен режим, който е много полезен, особено за редактиране на
текст на естествен език, е режимът на автоматично запълване (Auto Fill текст на естествен език, е режимът на автоматично запълване (Auto Fill
mode). Когато този режим е включен, Emacs автоматично разделя реда mode). Когато този режим е включен, Емакс автоматично разделя реда
при мястото между думите, когато вмъквате текст и направите ред, който при мястото между думите, когато вмъквате текст и направите ред, който
е твърде дълъг. е твърде дълъг.
@ -855,7 +855,7 @@ auto fill mode<Return>.
аргумент на командата. аргумент на командата.
>> Въведете C-x f с аргумент 20. (C-u 2 0 C-x f). >> Въведете C-x f с аргумент 20. (C-u 2 0 C-x f).
Сега въведете някакъв текст и вижте как Emacs запълва редовете с по Сега въведете някакъв текст и вижте как Емакс запълва редовете с по
не повече от 20 знака. После върнете обратно границата на 70, не повече от 20 знака. После върнете обратно границата на 70,
използвайки C-x f отново. използвайки C-x f отново.
@ -870,12 +870,12 @@ auto fill mode<Return>.
* ТЪРСЕНЕ * ТЪРСЕНЕ
--------- ---------
Emacs може да извършва търсения на низове (това са последователности Емакс може да извършва търсения на низове (това са последователности
от знаци или думи) или напред в текста, или назад в него. Търсенето от знаци или думи) или напред в текста, или назад в него. Търсенето
на низ е придвижваща курсора команда; тя премества курсора на на низ е придвижваща курсора команда; тя премества курсора на
следващото място, където се среща низът. следващото място, където се среща низът.
Командата за търсене на Emacs се различава от командата за търсене на Командата за търсене на Емакс се различава от командата за търсене на
повечето редактори по това, че тя е "постъпкова". Това означава, че повечето редактори по това, че тя е "постъпкова". Това означава, че
търсенето се извършва още докато въвеждате текста, който търсите. търсенето се извършва още докато въвеждате текста, който търсите.
@ -883,7 +883,7 @@ Emacs
търсене назад. НО ПОЧАКАЙТЕ! Не ги пробвайте сега. търсене назад. НО ПОЧАКАЙТЕ! Не ги пробвайте сега.
Когато въведете C-s, ще забележите, че низът "I-search" се появява Когато въведете C-s, ще забележите, че низът "I-search" се появява
като подсказка в ехо областта. Това ви казва, че Emacs е в това, като подсказка в ехо областта. Това ви казва, че Емакс е в това,
което се нарича постъпково търсене, чакайки ви да въвеждате текста, което се нарича постъпково търсене, чакайки ви да въвеждате текста,
който искате да търсите. <Return> приключва търсенето. който искате да търсите. <Return> приключва търсенето.
@ -895,19 +895,19 @@ Emacs
>> Сега въведете <Delback> три пъти и вижте как се придвижва курсора. >> Сега въведете <Delback> три пъти и вижте как се придвижва курсора.
>> Въведете <Return>, за да прекратите търсенето. >> Въведете <Return>, за да прекратите търсенето.
Забелязахте ли какво стана? Emacs, когато търси постъпково, се опитва Забелязахте ли какво стана? Емакс, когато търси постъпково, се опитва
да намери следващото съвпадение на низа, който се въвежда. За да да намери следващото съвпадение на низа, който се въвежда. За да
отидете на следващото съвпадение на "търсне", просто отново въведете отидете на следващото съвпадение на "търсне", просто отново въведете
C-s. Ако няма такова съвпадение, Emacs бибипва и ви казва, че C-s. Ако няма такова съвпадение, Емакс бибипва и ви казва, че
търсенето е "провалено" (failing). C-g също прекратява търсенето. търсенето е "провалено" (failing). C-g също прекратява търсенето.
ЗАБЕЛЕЖКА: На някои системи въвеждането на C-s ще замрази екрана и вие ЗАБЕЛЕЖКА: На някои системи въвеждането на C-s ще замрази екрана и вие
няма да може да видите повече реакция от Emacs. Това показва, че няма да може да видите повече реакция от Емакс. Това показва, че
"способност" на операционната система, наречена "управление на потока" "способност" на операционната система, наречена "управление на потока"
(flow control), е прихванала C-s и не го пропуска до Emacs. За да (flow control), е прихванала C-s и не го пропуска до Емакс. За да
размразите екрана, въведете C-q. Тогава вижте секцията "Спонтанно размразите екрана, въведете C-q. Тогава вижте секцията "Спонтанно
включване на постъпковото търсене" (Spontaneous Entry to Incremental включване на постъпковото търсене" (Spontaneous Entry to Incremental
Search) в ръководството на Emacs за съвет как да се справите с тази Search) в ръководството на Емакс за съвет как да се справите с тази
"способност". "способност".
Ако сте в средата на постъпково търсене и въведете <Delback>, ще Ако сте в средата на постъпково търсене и въведете <Delback>, ще
@ -929,9 +929,9 @@ C-s
* МНОЖЕСТВО ПРОЗОРЦИ * МНОЖЕСТВО ПРОЗОРЦИ
-------------------- ----------------
Една от привлекателните способности на Emacs е тази, че може да Една от привлекателните способности на Емакс е тази, че може да
гледате повече от един прозорец на екрана в даден момент от време. гледате повече от един прозорец на екрана в даден момент от време.
>> Придвижете курсора до този ред и въведете C-u 0 C-l (това е >> Придвижете курсора до този ред и въведете C-u 0 C-l (това е
@ -942,7 +942,7 @@ C-s
остава на по-горния прозорец. остава на по-горния прозорец.
>> Въведете C-M-v, за да скролирате долния прозорец. (Ако нямате >> Въведете C-M-v, за да скролирате долния прозорец. (Ако нямате
истински клавиш META, въведете <ESC> C-v.) истински клавиш META, въведете ESC C-v.)
>> Въведете C-x o ("o" от "other" -- "друг"), за да придвижите >> Въведете C-x o ("o" от "other" -- "друг"), за да придвижите
курсора в долния прозорец. курсора в долния прозорец.
@ -971,10 +971,10 @@ C-M-v
първи", защото и двата клавиша действат, модифицирайки знака, който първи", защото и двата клавиша действат, модифицирайки знака, който
сте въвели. сте въвели.
Ако нямате истински клавиш META и използвате <ESC> вместо това, редът Ако нямате истински клавиш META и използвате ESC вместо това, редът
има значение: трябва да въвеждате <ESC>, последван от CONTROL-v, има значение: трябва да въвеждате ESC, последван от CONTROL-v, защото
защото CONTROL-<ESC> v няма да работи. Това е така, защото <ESC> е CONTROL-ESC v няма да работи. Това е така, защото ESC е собствен
собствен знак, а не модификатор. знак, а не модификатор.
>> Въведете C-x 1 (в горния прозорец), за да махнете долния прозорец. >> Въведете C-x 1 (в горния прозорец), за да махнете долния прозорец.
@ -1007,13 +1007,13 @@ C-M-v
на главния режим. Например, може да видите [(Fundamental)] вместо на главния режим. Например, може да видите [(Fundamental)] вместо
(Fundamental). (Fundamental).
За да се махнете от вложеното ниво на редактиране, въведете <ESC> За да се махнете от вложеното ниво на редактиране, въведете ESC ESC
<ESC> <ESC>. Това е обща команда за "излизане". Може и да я ESC. Това е обща команда за "излизане". Може и да я използвате за
използвате за махане (скриване) на допълнителни прозорци, както и за махане (скриване) на допълнителни прозорци, както и за да се махнете
да се махнете от минибуфера. от минибуфера.
>> Въведете M-x, за да влезете в минибуфер; тогава въведете <ESC> <ESC> >> Въведете M-x, за да влезете в минибуфер; тогава въведете ESC ESC
<ESC>, за да излезете. ESC, за да излезете.
Не можете да използвате C-g, за да излезете от вложено ниво на Не можете да използвате C-g, за да излезете от вложено ниво на
редактиране. Това е така, защото C-g се използва за прекратяване на редактиране. Това е така, защото C-g се използва за прекратяване на
@ -1024,16 +1024,16 @@ C-M-v
---------------------------------- ----------------------------------
В това въведение се опитахме да осигурим достатъчно информация, за да В това въведение се опитахме да осигурим достатъчно информация, за да
започнете да използвате Emacs. Има толкова много още в Emacs, че не е започнете да използвате Емакс. Има толкова много още в Емакс, че не е
възможно то да бъде обяснено всичкото тук. Обаче може да поискате да възможно то да бъде обяснено всичкото тук. Обаче може да поискате да
научите повече за Emacs, тъй като той притежава още много полезни научите повече за Емакс, тъй като той притежава още много полезни
способности. Emacs има команди за четене на документацията на Emacs способности. Емакс има команди за четене на документацията на Емакс
командите. Тези "помощни" команди всички започват със знака командите. Тези "помощни" команди всички започват със знака
CONTROL-h, който се нарича "знакът за помощ". CONTROL-h, който се нарича "знакът за помощ".
За да използвате възможностите на тази помощ, въведете знака C-h и За да използвате възможностите на тази помощ, въведете знака C-h и
след това знака, казващ какъв вид помощ искате. Ако НАИСТИНА сте се след това знака, казващ какъв вид помощ искате. Ако НАИСТИНА сте се
изгубили, въведете C-h ? и Emacs ще ви каже с какво може да ви изгубили, въведете C-h ? и Емакс ще ви каже с какво може да ви
помогне. Ако сте въвели C-h и решите, че не се нуждаете от помощ, помогне. Ако сте въвели C-h и решите, че не се нуждаете от помощ,
просто въведете C-g, за да я прекратите. просто въведете C-g, за да я прекратите.
@ -1045,7 +1045,7 @@ CONTROL-h,
Най-основното помощно средство е C-h c. Въведете C-h, знака c и Най-основното помощно средство е C-h c. Въведете C-h, знака c и
команден знак или последователност от знаци, образуващи команда; команден знак или последователност от знаци, образуващи команда;
тогава Emacs ще изведе много кратко описание на командата. тогава Емакс ще изведе много кратко описание на командата.
>> Type C-h c C-p. >> Type C-h c C-p.
@ -1055,7 +1055,7 @@ CONTROL-h,
(C-p изпълнява командата предишен-ред) (C-p изпълнява командата предишен-ред)
Това ви казва "името на функцията". Имената на функциите се използват Това ви казва "името на функцията". Имената на функциите се използват
най-вече за настройване и разширяване на Emacs. Но тъй като имената най-вече за настройване и разширяване на Емакс. Но тъй като имената
на функциите са избрани така, че да показват какво прави командата, те на функциите са избрани така, че да показват какво прави командата, те
могат да служат и за много кратка документация -- достатъчна, за да ви могат да служат и за много кратка документация -- достатъчна, за да ви
припомни команди, които вече сте учили. припомни команди, които вече сте учили.
@ -1069,7 +1069,7 @@ c.
>> Въведете C-h k C-p. >> Въведете C-h k C-p.
Това извежда документацията на функцията, както и нейното име, в Това извежда документацията на функцията, както и нейното име, в
отделен Emacs прозорец. Когато я прочетете, въведете C-x 1, за да отделен Емакс прозорец. Когато я прочетете, въведете C-x 1, за да
махнете помощния текст. Не е нужно да правите това точно сега. Може махнете помощния текст. Не е нужно да правите това точно сега. Може
да редактирате, докато се обръщате към помощния текст за справка, и да редактирате, докато се обръщате към помощния текст за справка, и
след това да въведете C-x 1. след това да въведете C-x 1.
@ -1080,14 +1080,14 @@ c.
функцията. функцията.
>> Опитайте с въвеждане на C-h f previous-line<Return>. >> Опитайте с въвеждане на C-h f previous-line<Return>.
Това извежда цялата информация, която Emacs знае за функцията, Това извежда цялата информация, която Емакс знае за функцията,
която осъществява командата C-p. която осъществява командата C-p.
Подобна команда, C-h v, извежда документацията на променливите, които Подобна команда, C-h v, извежда документацията на променливите, които
може да променяте, за да настройвате поведението на Emacs. Трябва да може да променяте, за да настройвате поведението на Емакс. Трябва да
въведете името на променливата, когато Emacs ви подскаже това. въведете името на променливата, когато Емакс ви подскаже това.
C-h a Команда Апропос. Въведете ключова дума и Emacs ще C-h a Команда Апропос. Въведете ключова дума и Емакс ще
покаже списък на всички команди, чието име съдържа покаже списък на всички команди, чието име съдържа
тази ключова дума. Тези команди могат всички да бъдат тази ключова дума. Тези команди могат всички да бъдат
извикани чрез META-x. За някои команди командата извикани чрез META-x. За някои команди командата
@ -1110,18 +1110,18 @@ C-f,
специален буфер, наричан "*info*", където може да специален буфер, наричан "*info*", където може да
четете ръководствата на инсталираните във вашата четете ръководствата на инсталираните във вашата
система пакети. Въведете m emacs <Return>, за да система пакети. Въведете m emacs <Return>, за да
четете ръководството на Emacs. Ако никога преди това четете ръководството на Емакс. Ако никога преди това
не сте използвали Info, въведете ? и Emacs ще включи не сте използвали Info, въведете ? и Емакс ще включи
въведение във възможностите на режима Инфо. Веднъж въведение във възможностите на режима Инфо. Веднъж
след като сте преминали това въведение, трябва да се след като сте преминали това въведение, трябва да се
консултирате с Emacs Инфо ръководството като ваша консултирате с Емакс Инфо ръководството като ваша
основна документация. основна документация.
* ОЩЕ ВЪЗМОЖНОСТИ * ОЩЕ ВЪЗМОЖНОСТИ
----------------- -----------------
Може да научите повече за Emacs с четене на неговото ръководство, или Може да научите повече за Емакс с четене на неговото ръководство, или
като книга, или в Инфо (използвайте менюто помощ (Help) или въведете като книга, или в Инфо (използвайте менюто помощ (Help) или въведете
F10 h r). Две възможности, които може да желаете в началото, са F10 h r). Две възможности, които може да желаете в началото, са
довършване (completion), което спестява писане, и dired, който довършване (completion), което спестява писане, и dired, който
@ -1129,26 +1129,26 @@ F10 h r).
Довършването е начин да избягвате ненужно писане. Например, ако Довършването е начин да избягвате ненужно писане. Например, ако
искате да превключите към буфера *Messages*, може да въведете C-x b искате да превключите към буфера *Messages*, може да въведете C-x b
*M<Tab> и Emacs ще запълни останалата част от името на буфера, *M<Tab> и Емакс ще запълни останалата част от името на буфера,
доколкото може да се определи от това, което сте въвели. Довършването доколкото може да се определи от това, което сте въвели. Довършването
е описано в Инфо-ръководството на Emacs в страницата "Довършване" е описано в Инфо-ръководството на Емакс в страницата "Довършване"
("Completion"). ("Completion").
Dired ви позволява да гледате списъка от файлове в директория (и като Dired ви позволява да гледате списъка от файлове в директория (и като
възможност: нейните поддиректории), да се придвижвате в този списък, възможност: нейните поддиректории), да се придвижвате в този списък,
да посещавате, преименувате, изтривате и изобщо действате върху да посещавате, преименувате, изтривате и изобщо действате върху
файловете. Dired е описан в Инфо-ръководството на Emacs в страницата файловете. Dired е описан в Инфо-ръководството на Емакс в страницата
"Dired". "Dired".
Ръководството на Emacs описва още много други възможности на Ръководството на Емакс описва още много други възможности на
редактора. редактора.
* ЗАКЛЮЧЕНИЕ * ЗАКЛЮЧЕНИЕ
------------ ------------
Запомнете: за да излезете безвъзвратно от Emacs, използвайте C-x C-c. Запомнете: за да излезете безвъзвратно от Емакс, използвайте C-x C-c.
За да излезете временно в обвивка, така че да се върнете в Emacs За да излезете временно в обвивка, така че да се върнете в Емакс
по-късно, използвайте C-z. по-късно, използвайте C-z.
Това въведение е предвидено да бъде разбираемо за всички нови Това въведение е предвидено да бъде разбираемо за всички нови
@ -1159,10 +1159,10 @@ Dired
* КОПИРАНЕ * КОПИРАНЕ
---------- ----------
Това въведение произлиза от дълга поредица въведения в Emacs, Това въведение произлиза от дълга поредица въведения в Емакс,
започвайки от едно, написано от Стюърт Кракрафт за началния Emacs. започвайки от едно, написано от Стюърт Кракрафт за началния Емакс.
Тази версия на въведението, както и GNU Emacs, е защитена с авторски Тази версия на въведението, както и ГНУ Емакс, е защитена с авторски
права и идва с разрешение да разпространявате копия при следните права и идва с разрешение да разпространявате копия при следните
условия: условия:
@ -1183,8 +1183,8 @@ Copyright (C) 1985, 1996, 1998, 2001, 2002, 2003, 2004,
under the above conditions, provided also that they under the above conditions, provided also that they
carry prominent notices stating who last altered them. carry prominent notices stating who last altered them.
Условията за копиране на самия Emacs са по-сложни, но в същия дух. Условията за копиране на самия Емакс са по-сложни, но в същия дух.
Моля, прочетете файла COPYING и тогава давайте копия на GNU Emacs на Моля, прочетете файла COPYING и тогава давайте копия на ГНУ Емакс на
свои приятели. Помогнете да спрем затвореността на програмите свои приятели. Помогнете да спрем затвореността на програмите
("притежанието"), като използваме, пишем и споделяме свободен софтуер! ("притежанието"), като използваме, пишем и споделяме свободен софтуер!

File diff suppressed because it is too large Load diff

View file

@ -1,8 +1,8 @@
GNU GENERAL PUBLIC LICENSE GNU GENERAL PUBLIC LICENSE
Version 2, June 1991 Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc. Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed. of this license document, but changing it is not allowed.
@ -15,7 +15,7 @@ software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by using it. (Some other Free Software Foundation software is covered by
the GNU Library General Public License instead.) You can apply it to the GNU Lesser General Public License instead.) You can apply it to
your programs, too. your programs, too.
When we speak of free software, we are referring to freedom, not When we speak of free software, we are referring to freedom, not
@ -55,7 +55,7 @@ patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and The precise terms and conditions for copying, distribution and
modification follow. modification follow.
GNU GENERAL PUBLIC LICENSE GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
@ -110,7 +110,7 @@ above, provided that you also meet all of these conditions:
License. (Exception: if the Program itself is interactive but License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on does not normally print such an announcement, your work based on
the Program is not required to print an announcement.) the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program, identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in and can be reasonably considered independent and separate works in
@ -168,7 +168,7 @@ access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not distribution of the source code, even though third parties are not
compelled to copy the source along with the object code. compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program 4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is otherwise to copy, modify, sublicense or distribute the Program is
@ -225,7 +225,7 @@ impose that choice.
This section is intended to make thoroughly clear what is believed to This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License. be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in 8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License original copyright holder who places the Program under this License
@ -278,7 +278,7 @@ PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES. POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest If you develop a new program, and you want it to be of the greatest
@ -303,10 +303,9 @@ the "copyright" line and a pointer to where the full notice is found.
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. GNU General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License along
along with this program; if not, write to the Free Software with this program; if not, write to the Free Software Foundation, Inc.,
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
Also add information on how to contact you by electronic and paper mail. Also add information on how to contact you by electronic and paper mail.
@ -336,5 +335,5 @@ necessary. Here is a sample; alter the names:
This General Public License does not permit incorporating your program into This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Library General library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License. Public License instead of this License.

View file

@ -1,3 +1,36 @@
2006-10-12 Kenichi Handa <handa@m17n.org>
* Makefile.in (install): Be sure to make ${INSTALLDIR} before `cd'
to it.
2006-10-05 Chong Yidong <cyd@stupidchicken.com>
* quail/latin-ltx.el: Fix typo in previous change.
2006-10-05 Stefan Monnier <monnier@iro.umontreal.ca>
* quail/latin-ltx.el: Remove rules that start with { since they are
redundant and hence impact the { key for no good reason.
2006-10-02 Kenichi Handa <handa@m17n.org>
* Makefile.in (install): Fix previous change.
2006-09-28 Kenichi Handa <handa@m17n.org>
* Makefile.in (install): Be sure to make ${INSTALLDIR}.
2006-09-15 Jay Belanger <belanger@truman.edu>
* COPYING: Replace "Library Public License" by "Lesser Public
License" throughout.
2006-09-06 Micha,Ak(Bl Cadilhac <michael.cadilhac@lrde.org>
* quail/uni-input.el (ucs-input-method): Don't make the action of
a key not in [0-9a-zA-Z] when it was expected to be. Let the Emacs
mechanism do it.
2006-07-12 David Kastrup <dak@gnu.org> 2006-07-12 David Kastrup <dak@gnu.org>
* quail/greek.el: Change iota subscriptum transliteration in * quail/greek.el: Change iota subscriptum transliteration in

View file

@ -216,6 +216,9 @@ leim-list.el: ${SUBDIRS} ${NON-TIT-MISC} changed.tit changed.misc ${srcdir}/leim
sed -n '/^[^;]/ p' < ${srcdir}/leim-ext.el >> $@ sed -n '/^[^;]/ p' < ${srcdir}/leim-ext.el >> $@
install: all install: all
if [ ! -d ${INSTALLDIR} ] ; then \
${srcdir}/${dot}${dot}/mkinstalldirs ${INSTALLDIR}; \
else true; fi
if [ x`(cd ${INSTALLDIR} && /bin/pwd)` != x`(/bin/pwd)` ] ; then \ if [ x`(cd ${INSTALLDIR} && /bin/pwd)` != x`(/bin/pwd)` ] ; then \
rm -rf ${INSTALLDIR}/leim-list.el; \ rm -rf ${INSTALLDIR}/leim-list.el; \
rm -rf ${INSTALLDIR}/quail ${INSTALLDIR}/ja-dic ; \ rm -rf ${INSTALLDIR}/quail ${INSTALLDIR}/ja-dic ; \

View file

@ -45,17 +45,17 @@ system, including many technical ones. Examples:
(quail-define-rules (quail-define-rules
("!`" ) ("!`" )
("{\\pounds}" ) ("\\pounds" ) ("\\pounds" ) ;; ("{\\pounds}" ?£)
("{\\S}" ) ("\\S" ) ("\\S" ) ;; ("{\\S}" ?§)
("\\\"{}" ) ("\\\"{}" )
("{\\copyright}" ) ("\\copyright" ) ("\\copyright" ) ;; ("{\\copyright}" ?©)
("$^a$" ) ("$^a$" )
("\\={}" ) ("\\={}" )
("$\\pm$" ) ("\\pm" ) ("$\\pm$" ) ("\\pm" )
("$^2$" ) ("$^2$" )
("$^3$" ) ("$^3$" )
("\\'{}" ?´) ("\\'{}" ?´)
("{\\P}" ) ("\\P" ) ("\\P" ) ;; ("{\\P}" ?¶)
;; Fixme: Yudit has the equivalent of ("\\cdot" ?⋅), for U+22C5, DOT ;; Fixme: Yudit has the equivalent of ("\\cdot" ?⋅), for U+22C5, DOT
;; OPERATOR, whereas · is MIDDLE DOT. JadeTeX translates both to ;; OPERATOR, whereas · is MIDDLE DOT. JadeTeX translates both to
;; \cdot. ;; \cdot.
@ -71,8 +71,8 @@ system, including many technical ones. Examples:
("\\~{A}" ) ("\\~A" ) ("\\~{A}" ) ("\\~A" )
("\\\"{A}" ) ("\\\"A" ) ("\\\"{A}" ) ("\\\"A" )
("\\\k{A}" ) ("\\\k{A}" )
("{\\AA}" ) ("\\AA" ) ("\\AA" ) ;; ("{\\AA}" ?Å)
("{\\AE}" ) ("\\AE" ) ("\\AE" ) ;; ("{\\AE}" ?Æ)
("\\c{C}" ) ("\\cC" ) ("\\c{C}" ) ("\\cC" )
("\\`{E}" ) ("\\`E" ) ("\\`{E}" ) ("\\`E" )
("\\'{E}" ) ("\\'E" ) ("\\'{E}" ) ("\\'E" )
@ -93,14 +93,14 @@ system, including many technical ones. Examples:
("\\\"{O}" ) ("\\\"O" ) ("\\\"{O}" ) ("\\\"O" )
("\\\k{O}" ) ("\\\k{O}" )
("$\\times$" ?×) ("\\times" ?×) ("$\\times$" ?×) ("\\times" ?×)
("{\\O}" ) ("\\O" ) ("\\O" ) ;; ("{\\O}" ?Ø)
("\\`{U}" ) ("\\`U" ) ("\\`{U}" ) ("\\`U" )
("\\'{U}" ) ("\\'U" ) ("\\'{U}" ) ("\\'U" )
("\\^{U}" ) ("\\^U" ) ("\\^{U}" ) ("\\^U" )
("\\\"{U}" ) ("\\\"U" ) ("\\\"{U}" ) ("\\\"U" )
("\\\k{U}" ) ("\\\k{U}" )
("\\'{Y}" ) ("\\'Y" ) ("\\'{Y}" ) ("\\'Y" )
("{\\ss}" ) ("\\ss" ) ("\\ss" ) ;; ("{\\ss}" ?ß)
("\\`{a}" ) ("\\`a" ) ("\\`{a}" ) ("\\`a" )
("\\'{a}" ) ("\\'a" ) ("\\'{a}" ) ("\\'a" )
@ -108,8 +108,8 @@ system, including many technical ones. Examples:
("\\~{a}" ) ("\\~a" ) ("\\~{a}" ) ("\\~a" )
("\\\"{a}" ) ("\\\"a" ) ("\\\"{a}" ) ("\\\"a" )
("\\\k{a}" ) ("\\\k{a}" )
("{\\aa}" ) ("\\aa" ) ("\\aa" ) ;; ("{\\aa}" ?å)
("{\\ae}" ) ("\\ae" ) ("\\ae" ) ;; ("{\\ae}" ?æ)
("\\c{c}" ) ("\\cc" ) ("\\c{c}" ) ("\\cc" )
("\\`{e}" ) ("\\`e" ) ("\\`{e}" ) ("\\`e" )
("\\'{e}" ) ("\\'e" ) ("\\'{e}" ) ("\\'e" )
@ -130,7 +130,7 @@ system, including many technical ones. Examples:
("\\\"{o}" ) ("\\\"o" ) ("\\\"{o}" ) ("\\\"o" )
("\\\k{o}" ) ("\\\k{o}" )
("$\\div$" ) ("\\div" ) ("$\\div$" ) ("\\div" )
("{\\o}" ) ("\\o" ) ("\\o" ) ;; ("{\\o}" ?ø)
("\\`{u}" ) ("\\`u" ) ("\\`{u}" ) ("\\`u" )
("\\'{u}" ) ("\\'u" ) ("\\'{u}" ) ("\\'u" )
("\\^{u}" ) ("\\^u" ) ("\\^{u}" ) ("\\^u" )
@ -181,7 +181,7 @@ system, including many technical ones. Examples:
("\\u{\\i}" ) ("\\ui" ) ("\\u{\\i}" ) ("\\ui" )
("\\.{I}" ) ("\\.I" ) ("\\.{I}" ) ("\\.I" )
("{\\i}" ?ı) ("\\i" ?ı) ("\\i" ?ı) ;; ("{\\i}" ?ı)
("\\^{J}" ) ("\\^J" ) ("\\^{J}" ) ("\\^J" )
("\\^{\\j}" ) ("\\^j" ) ("\\^{\\j}" ) ("\\^j" )
("\\c{K}" ) ("\\cK" ) ("\\c{K}" ) ("\\cK" )
@ -191,8 +191,8 @@ system, including many technical ones. Examples:
("\\c{L}" ) ("\\cL" ) ("\\c{L}" ) ("\\cL" )
("\\c{l}" ) ("\\cl" ) ("\\c{l}" ) ("\\cl" )
("{\\L}" ) ("\\L" ) ("\\L" ) ;; ("{\\L}" ?Ł)
("{\\l}" ) ("\\l" ) ("\\l" ) ;; ("{\\l}" ?ł)
("\\'{N}" ) ("\\'N" ) ("\\'{N}" ) ("\\'N" )
("\\'{n}" ) ("\\'n" ) ("\\'{n}" ) ("\\'n" )
("\\c{N}" ) ("\\cN" ) ("\\c{N}" ) ("\\cN" )
@ -206,8 +206,8 @@ system, including many technical ones. Examples:
("\\H{O}" ) ("\\HO" ) ("\\H{O}" ) ("\\HO" )
("\\U{o}" ) ("\\Uo" ) ("\\U{o}" ) ("\\Uo" )
("{\\OE}" ) ("\\OE" ) ("\\OE" ) ;; ("{\\OE}" ?Œ)
("{\\oe}" ) ("\\oe" ) ("\\oe" ) ;; ("{\\oe}" ?œ)
("\\'{R}" ) ("\\'R" ) ("\\'{R}" ) ("\\'R" )
("\\'{r}" ) ("\\'r" ) ("\\'{r}" ) ("\\'r" )
("\\c{R}" ) ("\\cR" ) ("\\c{R}" ) ("\\cR" )

View file

@ -100,11 +100,6 @@
(progn (progn
(push key events) (push key events)
(ucs-input-insert-char key)) (ucs-input-insert-char key))
(let ((last-command-char key)
(current-prefix-arg))
(condition-case err
(call-interactively (key-binding seq))
(quail-error (message "%s" (cdr err)) (beep))))
(quail-delete-region) (quail-delete-region)
(throw 'non-digit (append (reverse events) (throw 'non-digit (append (reverse events)
(listify-key-sequence seq)))))) (listify-key-sequence seq))))))

1
lib-src/.gitignore vendored
View file

@ -21,5 +21,6 @@ update-game-score
yow yow
Makefile Makefile
makefile makefile
blessmail
*-spd *-spd
*.pdb *.pdb

View file

@ -1,8 +1,8 @@
GNU GENERAL PUBLIC LICENSE GNU GENERAL PUBLIC LICENSE
Version 2, June 1991 Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc. Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed. of this license document, but changing it is not allowed.
@ -15,7 +15,7 @@ software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by using it. (Some other Free Software Foundation software is covered by
the GNU Library General Public License instead.) You can apply it to the GNU Lesser General Public License instead.) You can apply it to
your programs, too. your programs, too.
When we speak of free software, we are referring to freedom, not When we speak of free software, we are referring to freedom, not
@ -55,7 +55,7 @@ patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and The precise terms and conditions for copying, distribution and
modification follow. modification follow.
GNU GENERAL PUBLIC LICENSE GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
@ -110,7 +110,7 @@ above, provided that you also meet all of these conditions:
License. (Exception: if the Program itself is interactive but License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on does not normally print such an announcement, your work based on
the Program is not required to print an announcement.) the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program, identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in and can be reasonably considered independent and separate works in
@ -168,7 +168,7 @@ access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not distribution of the source code, even though third parties are not
compelled to copy the source along with the object code. compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program 4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is otherwise to copy, modify, sublicense or distribute the Program is
@ -225,7 +225,7 @@ impose that choice.
This section is intended to make thoroughly clear what is believed to This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License. be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in 8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License original copyright holder who places the Program under this License
@ -278,7 +278,7 @@ PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES. POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest If you develop a new program, and you want it to be of the greatest
@ -303,10 +303,9 @@ the "copyright" line and a pointer to where the full notice is found.
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. GNU General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License along
along with this program; if not, write to the Free Software with this program; if not, write to the Free Software Foundation, Inc.,
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
Also add information on how to contact you by electronic and paper mail. Also add information on how to contact you by electronic and paper mail.
@ -336,5 +335,5 @@ necessary. Here is a sample; alter the names:
This General Public License does not permit incorporating your program into This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Library General library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License. Public License instead of this License.

View file

@ -1,3 +1,16 @@
2006-10-09 Eli Zaretskii <eliz@gnu.org>
* makefile.w32-in (../src/config.h): Fix error message.
2006-09-30 Eli Zaretskii <eliz@gnu.org>
* .cvsignore: Add blessmail.
2006-09-15 Jay Belanger <belanger@truman.edu>
* COPYING: Replace "Library Public License" by "Lesser Public
License" throughout.
2006-08-09 Jan Dj,Ad(Brv <jan.h.d@swipnet.se> 2006-08-09 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
* etags.c (readline): expect sscanf returns >= 1. * etags.c (readline): expect sscanf returns >= 1.
@ -10,7 +23,7 @@
2006-08-07 Masatake YAMATO <jet@gyve.org> 2006-08-07 Masatake YAMATO <jet@gyve.org>
* etags.c (TEX_mode): Check getc retruns EOF. * etags.c (TEX_mode): Check getc returns EOF.
File ended without newline causes infinite loop. File ended without newline causes infinite loop.
2002-07-30 Adrian Aichner <adrian@xemacs.org> (tiny change) 2002-07-30 Adrian Aichner <adrian@xemacs.org> (tiny change)

View file

@ -318,7 +318,7 @@ cleanall: clean
# Headers we would preprocess if we could. # Headers we would preprocess if we could.
# #
../src/config.h: ../nt/$(CONFIG_H) ../src/config.h: ../nt/$(CONFIG_H)
echo config.h has changed. Re-run configure.bat. echo $(CONFIG_H) has changed. Re-run configure.bat.
exit -1 exit -1
getopt.h: getopt_.h getopt.h: getopt_.h

View file

@ -1,8 +1,8 @@
GNU GENERAL PUBLIC LICENSE GNU GENERAL PUBLIC LICENSE
Version 2, June 1991 Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc. Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed. of this license document, but changing it is not allowed.
@ -15,7 +15,7 @@ software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by using it. (Some other Free Software Foundation software is covered by
the GNU Library General Public License instead.) You can apply it to the GNU Lesser General Public License instead.) You can apply it to
your programs, too. your programs, too.
When we speak of free software, we are referring to freedom, not When we speak of free software, we are referring to freedom, not
@ -55,7 +55,7 @@ patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and The precise terms and conditions for copying, distribution and
modification follow. modification follow.
GNU GENERAL PUBLIC LICENSE GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
@ -110,7 +110,7 @@ above, provided that you also meet all of these conditions:
License. (Exception: if the Program itself is interactive but License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on does not normally print such an announcement, your work based on
the Program is not required to print an announcement.) the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program, identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in and can be reasonably considered independent and separate works in
@ -168,7 +168,7 @@ access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not distribution of the source code, even though third parties are not
compelled to copy the source along with the object code. compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program 4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is otherwise to copy, modify, sublicense or distribute the Program is
@ -225,7 +225,7 @@ impose that choice.
This section is intended to make thoroughly clear what is believed to This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License. be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in 8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License original copyright holder who places the Program under this License
@ -278,7 +278,7 @@ PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES. POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest If you develop a new program, and you want it to be of the greatest
@ -303,10 +303,9 @@ the "copyright" line and a pointer to where the full notice is found.
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. GNU General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License along
along with this program; if not, write to the Free Software with this program; if not, write to the Free Software Foundation, Inc.,
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
Also add information on how to contact you by electronic and paper mail. Also add information on how to contact you by electronic and paper mail.
@ -336,5 +335,5 @@ necessary. Here is a sample; alter the names:
This General Public License does not permit incorporating your program into This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Library General library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License. Public License instead of this License.

File diff suppressed because it is too large Load diff

View file

@ -914,7 +914,7 @@ Has a preference of looking backwards."
;; Include certain keywords if they ;; Include certain keywords if they
;; precede the name. ;; precede the name.
(setq middle (point)) (setq middle (point))
(forward-word -1) (forward-sexp -1)
;; Is this C++ method? ;; Is this C++ method?
(when (and (< 2 middle) (when (and (< 2 middle)
(string= (buffer-substring (- middle 2) (string= (buffer-substring (- middle 2)

File diff suppressed because it is too large Load diff

View file

@ -142,7 +142,7 @@ If value is `verbose', the computed score is shown for each match."
"Apropos pattern as entered by user.") "Apropos pattern as entered by user.")
(defvar apropos-pattern-quoted nil (defvar apropos-pattern-quoted nil
"Apropos pattern passed through `regexp-quoute'.") "Apropos pattern passed through `regexp-quote'.")
(defvar apropos-words () (defvar apropos-words ()
"Current list of apropos words extracted from `apropos-pattern'.") "Current list of apropos words extracted from `apropos-pattern'.")

View file

@ -215,7 +215,7 @@ If this contains a %s, that will be replaced by the matching rule."
;;; " (file-name-nondirectory (buffer-file-name)) " ends here\n")) ;;; " (file-name-nondirectory (buffer-file-name)) " ends here\n"))
"A list specifying text to insert by default into a new file. "A list specifying text to insert by default into a new file.
Elements look like (CONDITION . ACTION) or ((CONDITION . DESCRIPTION) . ACTION). Elements look like (CONDITION . ACTION) or ((CONDITION . DESCRIPTION) . ACTION).
CONDITION maybe a regexp that must match the new file's name, or it may be CONDITION may be a regexp that must match the new file's name, or it may be
a symbol that must match the major mode for this element to apply. a symbol that must match the major mode for this element to apply.
Only the first matching element is effective. Only the first matching element is effective.
Optional DESCRIPTION is a string for filling `auto-insert-prompt'. Optional DESCRIPTION is a string for filling `auto-insert-prompt'.

View file

@ -345,24 +345,21 @@ Keymap to display on minor modes.")
(put 'mode-line-position 'standard-value (put 'mode-line-position 'standard-value
(list `(quote ,standard-mode-line-position)))) (list `(quote ,standard-mode-line-position))))
(defvar mode-line-buffer-identification-keymap nil "\ (defvar mode-line-buffer-identification-keymap
;; Add menu of buffer operations to the buffer identification part
;; of the mode line.or header line.
(let ((map (make-sparse-keymap)))
;; Bind down- events so that the global keymap won't ``shine
;; through''.
(define-key map [mode-line mouse-1] 'mode-line-previous-buffer)
(define-key map [header-line down-mouse-1] 'ignore)
(define-key map [header-line mouse-1] 'mode-line-previous-buffer)
(define-key map [mode-line mouse-3] 'mode-line-next-buffer)
(define-key map [header-line down-mouse-3] 'ignore)
(define-key map [header-line mouse-3] 'mode-line-next-buffer)
map) "\
Keymap for what is displayed by `mode-line-buffer-identification'.") Keymap for what is displayed by `mode-line-buffer-identification'.")
;; Add menu of buffer operations to the buffer identification part
;; of the mode line.or header line.
;
(let ((map (make-sparse-keymap)))
;; Bind down- events so that the global keymap won't ``shine
;; through''.
(define-key map [mode-line mouse-1] 'mode-line-previous-buffer)
(define-key map [header-line down-mouse-1] 'ignore)
(define-key map [header-line mouse-1] 'mode-line-previous-buffer)
(define-key map [header-line down-mouse-3] 'ignore)
(define-key map [mode-line mouse-3] 'mode-line-next-buffer)
(define-key map [header-line down-mouse-3] 'ignore)
(define-key map [header-line mouse-3] 'mode-line-next-buffer)
(setq mode-line-buffer-identification-keymap map))
(defun propertized-buffer-identification (fmt) (defun propertized-buffer-identification (fmt)
"Return a list suitable for `mode-line-buffer-identification'. "Return a list suitable for `mode-line-buffer-identification'.
FMT is a format specifier such as \"%12b\". This function adds FMT is a format specifier such as \"%12b\". This function adds
@ -615,7 +612,7 @@ language you are using."
(let ((l (generic-character-list)) (let ((l (generic-character-list))
(table (nth 1 global-map))) (table (nth 1 global-map)))
(while l (while l
(set-char-table-default table (car l) 'self-insert-command) (aset table (car l) 'self-insert-command)
(setq l (cdr l)))) (setq l (cdr l))))
(setq help-event-list '(help f1)) (setq help-event-list '(help f1))

View file

@ -409,13 +409,54 @@
( \\mu . calcFunc-moebius ))) ( \\mu . calcFunc-moebius )))
(put 'tex 'math-variable-table (put 'tex 'math-variable-table
'( ( \\pi . var-pi ) '(
( \\infty . var-inf ) ;; The Greek letters
( \\infty . var-uinf ) ( \\alpha . var-alpha )
( \\phi . var-phi ) ( \\beta . var-beta )
( \\gamma . var-gamma ) ( \\gamma . var-gamma )
( \\sum . (math-parse-tex-sum calcFunc-sum) ) ( \\Gamma . var-Gamma )
( \\prod . (math-parse-tex-sum calcFunc-prod) ))) ( \\delta . var-delta )
( \\Delta . var-Delta )
( \\epsilon . var-epsilon )
( \\varepsilon . var-varepsilon)
( \\zeta . var-zeta )
( \\eta . var-eta )
( \\theta . var-theta )
( \\vartheta . var-vartheta )
( \\Theta . var-Theta )
( \\iota . var-iota )
( \\kappa . var-kappa )
( \\lambda . var-lambda )
( \\Lambda . var-Lambda )
( \\mu . var-mu )
( \\nu . var-nu )
( \\xi . var-xi )
( \\Xi . var-Xi )
( \\pi . var-pi )
( \\varpi . var-varpi )
( \\Pi . var-Pi )
( \\rho . var-rho )
( \\varrho . var-varrho )
( \\sigma . var-sigma )
( \\sigma . var-varsigma )
( \\Sigma . var-Sigma )
( \\tau . var-tau )
( \\upsilon . var-upsilon )
( \\Upsilon . var-Upsilon )
( \\phi . var-phi )
( \\varphi . var-varphi )
( \\Phi . var-Phi )
( \\chi . var-chi )
( \\psi . var-psi )
( \\Psi . var-Psi )
( \\omega . var-omega )
( \\Omega . var-Omega )
;; Others
( \\ell . var-ell )
( \\infty . var-inf )
( \\infty . var-uinf )
( \\sum . (math-parse-tex-sum calcFunc-sum) )
( \\prod . (math-parse-tex-sum calcFunc-prod) )))
(put 'tex 'math-complex-format 'i) (put 'tex 'math-complex-format 'i)

View file

@ -1101,7 +1101,7 @@ If nil, selections displayed but ignored.")
(defun calc-dispatch (&optional arg) (defun calc-dispatch (&optional arg)
"Invoke the GNU Emacs Calculator. See `calc-dispatch-help' for details." "Invoke the GNU Emacs Calculator. See `calc-dispatch-help' for details."
(interactive "P") (interactive "P")
(sit-for echo-keystrokes) ; (sit-for echo-keystrokes)
(condition-case err ; look for other keys bound to calc-dispatch (condition-case err ; look for other keys bound to calc-dispatch
(let ((keys (this-command-keys))) (let ((keys (this-command-keys)))
(unless (or (not (stringp keys)) (unless (or (not (stringp keys))

View file

@ -394,8 +394,8 @@ displayed in a window:
(if (and (< appt-comp-time appt-message-warning-time) (if (and (< appt-comp-time appt-message-warning-time)
(> (+ cur-comp-time appt-message-warning-time) (> (+ cur-comp-time appt-message-warning-time)
appt-max-time)) appt-max-time))
(setq min-to-app (+ (- (1+ appt-max-time) cur-comp-time)) (setq min-to-app (+ (- (1+ appt-max-time) cur-comp-time)
appt-comp-time)) appt-comp-time)))
;; issue warning if the appointment time is ;; issue warning if the appointment time is
;; within appt-message-warning time ;; within appt-message-warning time

View file

@ -568,11 +568,20 @@ are
Names can be capitalized or not, written in full (as specified by the Names can be capitalized or not, written in full (as specified by the
variable `calendar-day-name-array'), or abbreviated (as specified by variable `calendar-day-name-array'), or abbreviated (as specified by
`calendar-day-abbrev-array') with or without a period. To take effect, `calendar-day-abbrev-array') with or without a period.
this variable should be set before the calendar package and its associates
are loaded. Otherwise, use one of the functions `european-calendar' or Setting this variable directly does not take effect (if the
`american-calendar' to force the appropriate update." calendar package is already loaded). Rather, use either
\\[customize] or the functions `european-calendar' and
`american-calendar'."
:type 'boolean :type 'boolean
;; Without :initialize (require 'calendar) throws an error because
;; american-calendar is undefined at this point.
:initialize 'custom-initialize-default
:set (lambda (symbol value)
(if value
(european-calendar)
(american-calendar)))
:group 'diary) :group 'diary)
;;;###autoload ;;;###autoload
@ -1582,6 +1591,19 @@ See the documentation of that function for more information."
(calendar-only-one-frame-setup arg)) (calendar-only-one-frame-setup arg))
(t (calendar-basic-setup arg)))) (t (calendar-basic-setup arg))))
(autoload 'diary-view-entries "diary-lib"
"Prepare and display a buffer with diary entries.
Searches your diary file for entries that match ARG days starting with
the date indicated by the cursor position in the displayed three-month
calendar."
t)
(autoload 'list-calendar-holidays "holidays"
"Create a buffer containing the holidays for the current calendar window.
The holidays are those in the list `calendar-notable-days'. Returns t if any
holidays are found, nil if not."
t)
(defun calendar-basic-setup (&optional arg) (defun calendar-basic-setup (&optional arg)
"Display a three-month calendar in another window. "Display a three-month calendar in another window.
The three months appear side by side, with the current month in the middle The three months appear side by side, with the current month in the middle
@ -1649,13 +1671,6 @@ to be replaced by asterisks to highlight it whenever it is in the window."
(list-calendar-holidays))) (list-calendar-holidays)))
(run-hooks 'initial-calendar-window-hook)) (run-hooks 'initial-calendar-window-hook))
(autoload 'diary-view-entries "diary-lib"
"Prepare and display a buffer with diary entries.
Searches your diary file for entries that match ARG days starting with
the date indicated by the cursor position in the displayed three-month
calendar."
t)
(autoload 'view-other-diary-entries "diary-lib" (autoload 'view-other-diary-entries "diary-lib"
"Prepare and display buffer of diary entries from an alternative diary file. "Prepare and display buffer of diary entries from an alternative diary file.
Searches for entries that match ARG days, starting with the date indicated Searches for entries that match ARG days, starting with the date indicated
@ -1930,12 +1945,6 @@ to the date indicated by point."
to the date indicated by point." to the date indicated by point."
t) t)
(autoload 'list-calendar-holidays "holidays"
"Create a buffer containing the holidays for the current calendar window.
The holidays are those in the list `calendar-notable-days'. Returns t if any
holidays are found, nil if not."
t)
(autoload 'cal-tex-cursor-month "cal-tex" (autoload 'cal-tex-cursor-month "cal-tex"
"Make a buffer with LaTeX commands for the month cursor is on. "Make a buffer with LaTeX commands for the month cursor is on.
Optional prefix argument specifies number of months to be produced. Optional prefix argument specifies number of months to be produced.

View file

@ -650,7 +650,10 @@ Entry to this mode runs the hooks on `comint-mode-hook'."
(make-local-variable 'comint-process-echoes) (make-local-variable 'comint-process-echoes)
(make-local-variable 'comint-file-name-chars) (make-local-variable 'comint-file-name-chars)
(make-local-variable 'comint-file-name-quote-list) (make-local-variable 'comint-file-name-quote-list)
(set (make-local-variable 'comint-accum-marker) (make-marker)) (make-local-variable 'comint-accum-marker)
(setq comint-accum-marker (make-marker))
(make-local-variable 'font-lock-defaults)
(setq font-lock-defaults '(nil))
(add-hook 'change-major-mode-hook 'font-lock-defontify nil t) (add-hook 'change-major-mode-hook 'font-lock-defontify nil t)
;; This behavior is not useful in comint buffers, and is annoying ;; This behavior is not useful in comint buffers, and is annoying
(set (make-local-variable 'next-line-add-newlines) nil)) (set (make-local-variable 'next-line-add-newlines) nil))
@ -765,7 +768,8 @@ buffer. The hook `comint-exec-hook' is run after each exec."
(format "COLUMNS=%d" (window-width))) (format "COLUMNS=%d" (window-width)))
(list "TERM=emacs" (list "TERM=emacs"
(format "TERMCAP=emacs:co#%d:tc=unknown:" (window-width)))) (format "TERMCAP=emacs:co#%d:tc=unknown:" (window-width))))
(if (getenv "EMACS") nil (list "EMACS=t")) (unless (getenv "EMACS")
(list (concat "EMACS=" invocation-directory invocation-name)))
process-environment)) process-environment))
(default-directory (default-directory
(if (file-accessible-directory-p default-directory) (if (file-accessible-directory-p default-directory)

View file

@ -1885,7 +1885,7 @@ Prefix args ::
(save-excursion (save-excursion
(goto-char (point-min)) (goto-char (point-min))
(catch 'finish-add-completions (catch 'finish-add-completions
(with-syntax-table completion-c-def-syntax-table (with-syntax-table completion-c-def-syntax-table
(while t (while t
;; we loop here only when scan-sexps fails ;; we loop here only when scan-sexps fails
;; (i.e. unbalance exps.) ;; (i.e. unbalance exps.)
@ -1895,8 +1895,7 @@ Prefix args ::
(cond (cond
((= (preceding-char) ?#) ((= (preceding-char) ?#)
;; preprocessor macro, see if it's one we handle ;; preprocessor macro, see if it's one we handle
(setq string (buffer-substring (point) (+ (point) 6))) (cond ((looking-at "\\(define\\|ifdef\\)\\>")
(cond ((member string '("define" "ifdef "))
;; skip forward over definition symbol ;; skip forward over definition symbol
;; and add it to database ;; and add it to database
(and (forward-word 2) (and (forward-word 2)
@ -1944,9 +1943,9 @@ Prefix args ::
(throw 'finish-add-completions t)) (throw 'finish-add-completions t))
(error (error
;; Check for failure in scan-sexps ;; Check for failure in scan-sexps
(if (or (string-equal (nth 1 e) (if (member (nth 1 e)
"Containing expression ends prematurely") '("Containing expression ends prematurely"
(string-equal (nth 1 e) "Unbalanced parentheses")) "Unbalanced parentheses"))
;; unbalanced paren., keep going ;; unbalanced paren., keep going
;;(ding) ;;(ding)
(forward-line 1) (forward-line 1)

View file

@ -389,7 +389,7 @@
:link '(custom-manual "(emacs)Undo") :link '(custom-manual "(emacs)Undo")
:group 'editing) :group 'editing)
(defgroup modeline nil (defgroup mode-line nil
"Content of the modeline." "Content of the modeline."
:group 'environment) :group 'environment)
@ -1521,13 +1521,18 @@ Otherwise use brackets."
(widget-insert description)) (widget-insert description))
(widget-insert (format ". (widget-insert (format ".
%s buttons; type RET or click mouse-1 to actuate one. %s buttons; type RET or click mouse-1 to actuate one.
Editing a setting changes only the text in the buffer. Editing a setting changes only the text in the buffer."
Use the setting's State button to set it or save changes in it.
Saving a change normally works by editing your Emacs init file.
See "
(if custom-raised-buttons (if custom-raised-buttons
"`Raised' text indicates" "`Raised' text indicates"
"Square brackets indicate"))) "Square brackets indicate")))
(if init-file-user
(widget-insert "
Use the setting's State button to set it or save changes in it.
Saving a change normally works by editing your Emacs init file.")
(widget-insert "
\nSince you started Emacs with `-q', which inhibits use of the
Emacs init file, you cannot save settings into the Emacs init file."))
(widget-insert "\nSee ")
(widget-create 'custom-manual (widget-create 'custom-manual
:tag "Custom file" :tag "Custom file"
"(emacs)Saving Customizations") "(emacs)Saving Customizations")
@ -4152,6 +4157,8 @@ if only the first line of the docstring is shown."))
recentf-exclude))) recentf-exclude)))
(old-buffer (find-buffer-visiting filename))) (old-buffer (find-buffer-visiting filename)))
(with-current-buffer (or old-buffer (find-file-noselect filename)) (with-current-buffer (or old-buffer (find-file-noselect filename))
(unless (eq major-mode 'emacs-lisp-mode)
(emacs-lisp-mode))
(let ((inhibit-read-only t)) (let ((inhibit-read-only t))
(custom-save-variables) (custom-save-variables)
(custom-save-faces)) (custom-save-faces))
@ -4255,19 +4262,31 @@ This function does not save the buffer."
(let ((spec (car-safe (get symbol 'theme-value))) (let ((spec (car-safe (get symbol 'theme-value)))
(value (get symbol 'saved-value)) (value (get symbol 'saved-value))
(requests (get symbol 'custom-requests)) (requests (get symbol 'custom-requests))
(now (not (or (custom-variable-p symbol) (now (and (not (custom-variable-p symbol))
(and (not (boundp symbol)) (or (boundp symbol)
(not (eq (get symbol 'force-value) (eq (get symbol 'force-value)
'rogue)))))) 'rogue))))
(comment (get symbol 'saved-variable-comment))) (comment (get symbol 'saved-variable-comment)))
;; Check `requests'. ;; Check REQUESTS for validity.
(dolist (request requests) (dolist (request requests)
(when (and (symbolp request) (not (featurep request))) (when (and (symbolp request) (not (featurep request)))
(message "Unknown requested feature: %s" request) (message "Unknown requested feature: %s" request)
(setq requests (delq request requests)))) (setq requests (delq request requests))))
;; Is there anything customized about this variable?
(when (or (and spec (eq (car spec) 'user)) (when (or (and spec (eq (car spec) 'user))
comment comment
(and (null spec) (get symbol 'saved-value))) (and (null spec) (get symbol 'saved-value)))
;; Output an element for this variable.
;; It has the form (SYMBOL VALUE-FORM NOW REQUESTS COMMENT).
;; SYMBOL is the variable name.
;; VALUE-FORM is an expression to return the customized value.
;; NOW if non-nil means always set the variable immediately
;; when the customizations are reloaded. This is used
;; for rogue variables
;; REQUESTS is a list of packages to load before setting the
;; variable. Each element of it will be passed to `require'.
;; COMMENT is whatever comment the user has specified
;; with the customize facility.
(unless (bolp) (unless (bolp)
(princ "\n")) (princ "\n"))
(princ " '(") (princ " '(")
@ -4383,14 +4402,15 @@ This function does not save the buffer."
"Ignoring WIDGET, create a menu entry for customization group SYMBOL." "Ignoring WIDGET, create a menu entry for customization group SYMBOL."
`( ,(custom-unlispify-menu-entry symbol t) `( ,(custom-unlispify-menu-entry symbol t)
:filter (lambda (&rest junk) :filter (lambda (&rest junk)
(let ((menu (custom-menu-create ',symbol))) (let* ((menu (custom-menu-create ',symbol)))
(if (consp menu) (cdr menu) menu))))) (if (consp menu) (cdr menu) menu)))))
;;;###autoload ;;;###autoload
(defun custom-menu-create (symbol) (defun custom-menu-create (symbol)
"Create menu for customization group SYMBOL. "Create menu for customization group SYMBOL.
The menu is in a format applicable to `easy-menu-define'." The menu is in a format applicable to `easy-menu-define'."
(let* ((item (vector (custom-unlispify-menu-entry symbol) (let* ((deactivate-mark nil)
(item (vector (custom-unlispify-menu-entry symbol)
`(customize-group ',symbol) `(customize-group ',symbol)
t))) t)))
(if (and (or (not (boundp 'custom-menu-nesting)) (if (and (or (not (boundp 'custom-menu-nesting))
@ -4435,8 +4455,8 @@ The format is suitable for use with `easy-menu-define'."
;; Actually, this misfeature of dense keymaps was fixed on 2001-11-26. ;; Actually, this misfeature of dense keymaps was fixed on 2001-11-26.
(let ((map (make-keymap))) (let ((map (make-keymap)))
(set-keymap-parent map widget-keymap) (set-keymap-parent map widget-keymap)
(define-key map [remap self-insert-command] 'custom-no-edit) (define-key map [remap self-insert-command] 'Custom-no-edit)
(define-key map "\^m" 'custom-newline) (define-key map "\^m" 'Custom-newline)
(define-key map " " 'scroll-up) (define-key map " " 'scroll-up)
(define-key map "\177" 'scroll-down) (define-key map "\177" 'scroll-down)
(define-key map "\C-c\C-c" 'Custom-set) (define-key map "\C-c\C-c" 'Custom-set)
@ -4448,12 +4468,12 @@ The format is suitable for use with `easy-menu-define'."
map) map)
"Keymap for `custom-mode'.") "Keymap for `custom-mode'.")
(defun custom-no-edit (pos &optional event) (defun Custom-no-edit (pos &optional event)
"Invoke button at POS, or refuse to allow editing of Custom buffer." "Invoke button at POS, or refuse to allow editing of Custom buffer."
(interactive "@d") (interactive "@d")
(error "You can't edit this part of the Custom buffer")) (error "You can't edit this part of the Custom buffer"))
(defun custom-newline (pos &optional event) (defun Custom-newline (pos &optional event)
"Invoke button at POS, or refuse to allow editing of Custom buffer." "Invoke button at POS, or refuse to allow editing of Custom buffer."
(interactive "@d") (interactive "@d")
(let ((button (get-char-property pos 'button))) (let ((button (get-char-property pos 'button)))
@ -4535,6 +4555,13 @@ if that value is non-nil."
(setq widget-documentation-face 'custom-documentation) (setq widget-documentation-face 'custom-documentation)
(make-local-variable 'widget-button-face) (make-local-variable 'widget-button-face)
(setq widget-button-face custom-button) (setq widget-button-face custom-button)
;; We need this because of the "More" button on docstrings.
;; Otherwise clicking on "More" can push point offscreen, which
;; causes the window to recenter on point, which pushes the
;; newly-revealed docstring offscreen; which is annoying. -- cyd.
(set (make-local-variable 'widget-button-click-moves-point) t)
(set (make-local-variable 'widget-button-pressed-face) custom-button-pressed) (set (make-local-variable 'widget-button-pressed-face) custom-button-pressed)
(set (make-local-variable 'widget-mouse-face) custom-button-mouse) (set (make-local-variable 'widget-mouse-face) custom-button-mouse)

View file

@ -344,11 +344,11 @@ since it could result in memory overflow and make Emacs crash."
(scroll-step windows integer) (scroll-step windows integer)
(scroll-conservatively windows integer) (scroll-conservatively windows integer)
(scroll-margin windows integer) (scroll-margin windows integer)
(hscroll-margin windows integer "21.3") (hscroll-margin windows integer "22.1")
(hscroll-step windows number "21.3") (hscroll-step windows number "22.1")
(truncate-partial-width-windows display boolean) (truncate-partial-width-windows display boolean)
(mode-line-inverse-video modeline boolean) (mode-line-inverse-video modeline boolean)
(mode-line-in-non-selected-windows modeline boolean "21.3") (mode-line-in-non-selected-windows modeline boolean "22.1")
(line-number-display-limit display (line-number-display-limit display
(choice integer (choice integer
(const :tag "No limit" nil))) (const :tag "No limit" nil)))
@ -361,17 +361,22 @@ since it could result in memory overflow and make Emacs crash."
(unibyte-display-via-language-environment mule boolean) (unibyte-display-via-language-environment mule boolean)
(blink-cursor-alist cursor alist "22.1") (blink-cursor-alist cursor alist "22.1")
(overline-margin display integer "22.1") (overline-margin display integer "22.1")
(mouse-autoselect-window
display (choice
(const :tag "Off (nil)" :value nil)
(const :tag "Immediate" :value t)
(number :tag "Delay by secs" :value 0.5)) "22.1")
;; xfaces.c ;; xfaces.c
(scalable-fonts-allowed display boolean) (scalable-fonts-allowed display boolean)
;; xfns.c ;; xfns.c
(x-bitmap-file-path installation (x-bitmap-file-path installation
(repeat (directory :format "%v"))) (repeat (directory :format "%v")))
(x-use-old-gtk-file-dialog menu boolean "22.1") (x-gtk-use-old-file-dialog menu boolean "22.1")
(x-gtk-show-hidden-files menu boolean "22.1") (x-gtk-show-hidden-files menu boolean "22.1")
(x-gtk-file-dialog-help-text menu boolean "22.1")
(x-gtk-whole-detached-tool-bar x boolean "22.1") (x-gtk-whole-detached-tool-bar x boolean "22.1")
;; xterm.c ;; xterm.c
(mouse-autoselect-window display boolean "21.3") (x-use-underline-position-properties display boolean "22.1")
(x-use-underline-position-properties display boolean "21.3")
(x-underline-at-descent-line display boolean "22.1") (x-underline-at-descent-line display boolean "22.1")
(x-stretch-cursor display boolean "21.1"))) (x-stretch-cursor display boolean "21.1")))
this symbol group type standard version native-p this symbol group type standard version native-p

View file

@ -210,11 +210,11 @@ The following keywords are meaningful:
`custom-initialize-reset'. `custom-initialize-reset'.
:set VALUE should be a function to set the value of the symbol. :set VALUE should be a function to set the value of the symbol.
It takes two arguments, the symbol to set and the value to It takes two arguments, the symbol to set and the value to
give it. The default choice of function is `custom-set-default'. give it. The default choice of function is `set-default'.
:get VALUE should be a function to extract the value of symbol. :get VALUE should be a function to extract the value of symbol.
The function takes one argument, a symbol, and should return The function takes one argument, a symbol, and should return
the current value for that symbol. The default choice of function the current value for that symbol. The default choice of function
is `custom-default-value'. is `default-value'.
:require :require
VALUE should be a feature symbol. If you save a value VALUE should be a feature symbol. If you save a value
for this option, then when your `.emacs' file loads the value, for this option, then when your `.emacs' file loads the value,
@ -874,6 +874,18 @@ COMMENT is a comment string about SYMBOL.
EXP itself is saved unevaluated as SYMBOL property `saved-value' and EXP itself is saved unevaluated as SYMBOL property `saved-value' and
in SYMBOL's list property `theme-value' \(using `custom-push-theme')." in SYMBOL's list property `theme-value' \(using `custom-push-theme')."
(custom-check-theme theme) (custom-check-theme theme)
;; Process all the needed autoloads before anything else, so that the
;; subsequent code has all the info it needs (e.g. which var corresponds
;; to a minor mode), regardless of the ordering of the variables.
(dolist (entry args)
(let* ((symbol (indirect-variable (nth 0 entry))))
(unless (or (get symbol 'standard-value)
(memq (get symbol 'custom-autoload) '(nil noset)))
;; This symbol needs to be autoloaded, even just for a `set'.
(custom-load-symbol symbol))))
;; Move minor modes and variables with explicit requires to the end.
(setq args (setq args
(sort args (sort args
(lambda (a1 a2) (lambda (a1 a2)
@ -904,10 +916,6 @@ in SYMBOL's list property `theme-value' \(using `custom-push-theme')."
(when requests (when requests
(put symbol 'custom-requests requests) (put symbol 'custom-requests requests)
(mapc 'require requests)) (mapc 'require requests))
(unless (or (get symbol 'standard-value)
(memq (get symbol 'custom-autoload) '(nil noset)))
;; This symbol needs to be autoloaded, even just for a `set'.
(custom-load-symbol symbol))
(setq set (or (get symbol 'custom-set) 'custom-set-default)) (setq set (or (get symbol 'custom-set) 'custom-set-default))
(put symbol 'saved-value (list value)) (put symbol 'saved-value (list value))
(put symbol 'saved-variable-comment comment) (put symbol 'saved-variable-comment comment)

View file

@ -5,10 +5,10 @@
;; Author: Vinicius Jose Latorre <viniciusjl@ig.com.br> ;; Author: Vinicius Jose Latorre <viniciusjl@ig.com.br>
;; Maintainer: Vinicius Jose Latorre <viniciusjl@ig.com.br> ;; Maintainer: Vinicius Jose Latorre <viniciusjl@ig.com.br>
;; Time-stamp: <2006-02-06 13:37:10 ttn> ;; Time-stamp: <2006/09/15 17:35:06 vinicius>
;; Version: 2.1 ;; Version: 2.1
;; Keywords: internal ;; Keywords: internal
;; X-URL: http://www.cpqd.com.br/~vinicius/emacs/ ;; X-URL: http://www.emacswiki.org/cgi-bin/wiki/ViniciusJoseLatorre
;; This file is part of GNU Emacs. ;; This file is part of GNU Emacs.

View file

@ -862,8 +862,10 @@ It returns t if a desktop file was loaded, nil otherwise."
;; Desktop file found, process it. ;; Desktop file found, process it.
(let ((desktop-first-buffer nil) (let ((desktop-first-buffer nil)
(desktop-buffer-ok-count 0) (desktop-buffer-ok-count 0)
(desktop-buffer-fail-count 0)) (desktop-buffer-fail-count 0)
(setq desktop-lazy-timer nil) ;; Avoid desktop saving during evaluation of desktop buffer.
(desktop-save nil))
(desktop-lazy-abort)
;; Evaluate desktop buffer. ;; Evaluate desktop buffer.
(load (desktop-full-file-name) t t t) (load (desktop-full-file-name) t t t)
;; `desktop-create-buffer' puts buffers at end of the buffer list. ;; `desktop-create-buffer' puts buffers at end of the buffer list.

View file

@ -1259,6 +1259,7 @@ SWITCHED is non-nil if the patch is already applied."
(t "Hunk %s at offset %d lines")) (t "Hunk %s at offset %d lines"))
msg line-offset))) msg line-offset)))
(defvar diff-apply-hunk-to-backup-file nil)
(defun diff-apply-hunk (&optional reverse) (defun diff-apply-hunk (&optional reverse)
"Apply the current hunk to the source file and go to the next. "Apply the current hunk to the source file and go to the next.
@ -1275,6 +1276,17 @@ With a prefix argument, REVERSE the hunk."
(cond (cond
((null line-offset) ((null line-offset)
(error "Can't find the text to patch")) (error "Can't find the text to patch"))
((with-current-buffer buf
(and buffer-file-name
(backup-file-name-p buffer-file-name)
(not diff-apply-hunk-to-backup-file)
(not (set (make-local-variable 'diff-apply-hunk-to-backup-file)
(yes-or-no-p (format "Really apply this hunk to %s? "
(file-name-nondirectory
buffer-file-name)))))))
(error (substitute-command-keys
(format "Use %s\\[diff-apply-hunk] to apply it to the other file"
(if (not reverse) "\\[universal-argument] ")))))
((and switched ((and switched
;; A reversed patch was detected, perhaps apply it in reverse. ;; A reversed patch was detected, perhaps apply it in reverse.
(not (save-window-excursion (not (save-window-excursion

View file

@ -39,6 +39,11 @@
;; We need macros in dired.el to compile properly. ;; We need macros in dired.el to compile properly.
(eval-when-compile (require 'dired)) (eval-when-compile (require 'dired))
(defvar dired-create-files-failures nil
"Variable where `dired-create-files' records failing file names.
Functions that operate recursively can store additional names
into this list; they also should call `dired-log' to log the errors.")
;;; 15K ;;; 15K
;;;###begin dired-cmd.el ;;;###begin dired-cmd.el
;; Diffing and compressing ;; Diffing and compressing
@ -1145,37 +1150,59 @@ Special value `always' suppresses confirmation."
;;;###autoload ;;;###autoload
(defun dired-copy-file (from to ok-flag) (defun dired-copy-file (from to ok-flag)
(dired-handle-overwrite to) (dired-handle-overwrite to)
(condition-case () (dired-copy-file-recursive from to ok-flag dired-copy-preserve-time t
(dired-copy-file-recursive from to ok-flag dired-copy-preserve-time t dired-recursive-copies))
dired-recursive-copies)
(file-date-error (message "Can't set date")
(sit-for 1))))
(defun dired-copy-file-recursive (from to ok-flag &optional (defun dired-copy-file-recursive (from to ok-flag &optional
preserve-time top recursive) preserve-time top recursive)
(let ((attrs (file-attributes from))) (let ((attrs (file-attributes from))
dirfailed)
(if (and recursive (if (and recursive
(eq t (car attrs)) (eq t (car attrs))
(or (eq recursive 'always) (or (eq recursive 'always)
(yes-or-no-p (format "Recursive copies of %s? " from)))) (yes-or-no-p (format "Recursive copies of %s? " from))))
;; This is a directory. ;; This is a directory.
(let ((files (directory-files from nil dired-re-no-dot))) (let ((files
(condition-case err
(directory-files from nil dired-re-no-dot)
(file-error
(push (dired-make-relative from)
dired-create-files-failures)
(dired-log "Copying error for %s:\n%s\n" from err)
(setq dirfailed t)
nil))))
(if (eq recursive 'top) (setq recursive 'always)) ; Don't ask any more. (if (eq recursive 'top) (setq recursive 'always)) ; Don't ask any more.
(if (file-exists-p to) (unless dirfailed
(or top (dired-handle-overwrite to)) (if (file-exists-p to)
(make-directory to)) (or top (dired-handle-overwrite to))
(condition-case err
(make-directory to)
(file-error
(push (dired-make-relative from)
dired-create-files-failures)
(setq files nil)
(dired-log "Copying error for %s:\n%s\n" from err)))))
(while files (while files
(dired-copy-file-recursive (dired-copy-file-recursive
(expand-file-name (car files) from) (expand-file-name (car files) from)
(expand-file-name (car files) to) (expand-file-name (car files) to)
ok-flag preserve-time nil recursive) ok-flag preserve-time nil recursive)
(setq files (cdr files)))) (pop files)))
;; Not a directory. ;; Not a directory.
(or top (dired-handle-overwrite to)) (or top (dired-handle-overwrite to))
(if (stringp (car attrs)) (condition-case err
;; It is a symlink (if (stringp (car attrs))
(make-symbolic-link (car attrs) to ok-flag) ;; It is a symlink
(copy-file from to ok-flag dired-copy-preserve-time))))) (make-symbolic-link (car attrs) to ok-flag)
(copy-file from to ok-flag dired-copy-preserve-time))
(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))))))
;;;###autoload ;;;###autoload
(defun dired-rename-file (file newname ok-if-already-exists) (defun dired-rename-file (file newname ok-if-already-exists)
@ -1297,7 +1324,8 @@ Special value `always' suppresses confirmation."
;; newfile's entry, or t to use the current marker character if the ;; newfile's entry, or t to use the current marker character if the
;; oldfile was marked. ;; oldfile was marked.
(let (failures skipped (success-count 0) (total (length fn-list))) (let (dired-create-files-failures failures
skipped (success-count 0) (total (length fn-list)))
(let (to overwrite-query (let (to overwrite-query
overwrite-backup-query) ; for dired-handle-overwrite overwrite-backup-query) ; for dired-handle-overwrite
(mapcar (mapcar
@ -1340,16 +1368,25 @@ ESC or `q' to not overwrite any of the remaining files,
(dired-add-file to actual-marker-char)) (dired-add-file to actual-marker-char))
(file-error ; FILE-CREATOR aborted (file-error ; FILE-CREATOR aborted
(progn (progn
(setq failures (cons (dired-make-relative from) failures)) (push (dired-make-relative from)
failures)
(dired-log "%s `%s' to `%s' failed:\n%s\n" (dired-log "%s `%s' to `%s' failed:\n%s\n"
operation from to err)))))))) operation from to err))))))))
fn-list)) fn-list))
(cond (cond
(dired-create-files-failures
(setq failures (nconc failures dired-create-files-failures))
(dired-log-summary
(format "%s failed for %d file%s in %d requests"
operation (length failures)
(dired-plural-s (length failures))
total)
failures))
(failures (failures
(dired-log-summary (dired-log-summary
(format "%s failed for %d of %d file%s" (format "%s failed for %d of %d file%s"
operation (length failures) total operation (length failures)
(dired-plural-s total)) total (dired-plural-s total))
failures)) failures))
(skipped (skipped
(dired-log-summary (dired-log-summary

View file

@ -958,119 +958,132 @@ dired."
(defvar dired-guess-shell-alist-default (defvar dired-guess-shell-alist-default
(list (list
(list "\\.tar$" (list "\\.tar$"
'(if dired-guess-shell-gnutar '(if dired-guess-shell-gnutar
(concat dired-guess-shell-gnutar " xvf") (concat dired-guess-shell-gnutar " xvf")
"tar xvf") "tar xvf")
;; Extract files into a separate subdirectory ;; Extract files into a separate subdirectory
'(if dired-guess-shell-gnutar '(if dired-guess-shell-gnutar
(concat "mkdir " (file-name-sans-extension file) (concat "mkdir " (file-name-sans-extension file)
"; " dired-guess-shell-gnutar " -C " "; " dired-guess-shell-gnutar " -C "
(file-name-sans-extension file) " -xvf") (file-name-sans-extension file) " -xvf")
(concat "mkdir " (file-name-sans-extension file) (concat "mkdir " (file-name-sans-extension file)
"; tar -C " (file-name-sans-extension file) " -xvf"))) "; tar -C " (file-name-sans-extension file) " -xvf"))
;; List archive contents.
'(if dired-guess-shell-gnutar
(concat dired-guess-shell-gnutar " tvf")
"tar tvf"))
;; REGEXPS for compressed archives must come before the .Z rule to ;; REGEXPS for compressed archives must come before the .Z rule to
;; be recognized: ;; be recognized:
(list "\\.tar\\.Z$" (list "\\.tar\\.Z$"
;; Untar it. ;; Untar it.
'(if dired-guess-shell-gnutar '(if dired-guess-shell-gnutar
(concat dired-guess-shell-gnutar " zxvf") (concat dired-guess-shell-gnutar " zxvf")
(concat "zcat * | tar xvf -")) (concat "zcat * | tar xvf -"))
;; Optional conversion to gzip format. ;; Optional conversion to gzip format.
'(concat "znew" (if dired-guess-shell-gzip-quiet " -q") '(concat "znew" (if dired-guess-shell-gzip-quiet " -q")
" " dired-guess-shell-znew-switches)) " " dired-guess-shell-znew-switches))
;; gzip'ed archives ;; gzip'ed archives
(list "\\.t\\(ar\\.\\)?gz$" (list "\\.t\\(ar\\.\\)?gz$"
'(if dired-guess-shell-gnutar '(if dired-guess-shell-gnutar
(concat dired-guess-shell-gnutar " zxvf") (concat dired-guess-shell-gnutar " zxvf")
(concat "gunzip -qc * | tar xvf -")) (concat "gunzip -qc * | tar xvf -"))
;; Extract files into a separate subdirectory ;; Extract files into a separate subdirectory
'(if dired-guess-shell-gnutar '(if dired-guess-shell-gnutar
(concat "mkdir " (file-name-sans-extension file) (concat "mkdir " (file-name-sans-extension file)
"; " dired-guess-shell-gnutar " -C " "; " dired-guess-shell-gnutar " -C "
(file-name-sans-extension file) " -zxvf") (file-name-sans-extension file) " -zxvf")
(concat "mkdir " (file-name-sans-extension file) (concat "mkdir " (file-name-sans-extension file)
"; gunzip -qc * | tar -C " "; gunzip -qc * | tar -C "
(file-name-sans-extension file) " -xvf -")) (file-name-sans-extension file) " -xvf -"))
;; Optional decompression. ;; Optional decompression.
'(concat "gunzip" (if dired-guess-shell-gzip-quiet " -q" ""))) '(concat "gunzip" (if dired-guess-shell-gzip-quiet " -q" ""))
;; List archive contents.
'(if dired-guess-shell-gnutar
(concat dired-guess-shell-gnutar " ztvf")
(concat "gunzip -qc * | tar tvf -")))
;; bzip2'ed archives ;; bzip2'ed archives
(list "\\.t\\(ar\\.bz2\\|bz\\)$" (list "\\.t\\(ar\\.bz2\\|bz\\)$"
"bunzip2 -c * | tar xvf -" "bunzip2 -c * | tar xvf -"
;; Extract files into a separate subdirectory ;; Extract files into a separate subdirectory
'(concat "mkdir " (file-name-sans-extension file) '(concat "mkdir " (file-name-sans-extension file)
"; bunzip2 -c * | tar -C " "; bunzip2 -c * | tar -C "
(file-name-sans-extension file) " -xvf -") (file-name-sans-extension file) " -xvf -")
;; Optional decompression. ;; Optional decompression.
"bunzip2") "bunzip2")
'("\\.shar\\.Z$" "zcat * | unshar") '("\\.shar\\.Z$" "zcat * | unshar")
'("\\.shar\\.g?z$" "gunzip -qc * | unshar") '("\\.shar\\.g?z$" "gunzip -qc * | unshar")
'("\\.e?ps$" "ghostview" "xloadimage" "lpr") '("\\.e?ps$" "ghostview" "xloadimage" "lpr")
(list "\\.e?ps\\.g?z$" "gunzip -qc * | ghostview -" (list "\\.e?ps\\.g?z$" "gunzip -qc * | ghostview -"
;; Optional decompression. ;; Optional decompression.
'(concat "gunzip" (if dired-guess-shell-gzip-quiet " -q"))) '(concat "gunzip" (if dired-guess-shell-gzip-quiet " -q")))
(list "\\.e?ps\\.Z$" "zcat * | ghostview -" (list "\\.e?ps\\.Z$" "zcat * | ghostview -"
;; Optional conversion to gzip format. ;; Optional conversion to gzip format.
'(concat "znew" (if dired-guess-shell-gzip-quiet " -q") '(concat "znew" (if dired-guess-shell-gzip-quiet " -q")
" " dired-guess-shell-znew-switches)) " " dired-guess-shell-znew-switches))
'("\\.patch$" "cat * | patch") '("\\.patch$" "cat * | patch")
(list "\\.patch\\.g?z$" "gunzip -qc * | patch" (list "\\.patch\\.g?z$" "gunzip -qc * | patch"
;; Optional decompression. ;; Optional decompression.
'(concat "gunzip" (if dired-guess-shell-gzip-quiet " -q"))) '(concat "gunzip" (if dired-guess-shell-gzip-quiet " -q")))
(list "\\.patch\\.Z$" "zcat * | patch" (list "\\.patch\\.Z$" "zcat * | patch"
;; Optional conversion to gzip format. ;; Optional conversion to gzip format.
'(concat "znew" (if dired-guess-shell-gzip-quiet " -q") '(concat "znew" (if dired-guess-shell-gzip-quiet " -q")
" " dired-guess-shell-znew-switches)) " " dired-guess-shell-znew-switches))
;; The following four extensions are useful with dired-man ("N" key) ;; The following four extensions are useful with dired-man ("N" key)
(list "\\.\\(?:[0-9]\\|man\\)$" '(progn (require 'man) (list "\\.\\(?:[0-9]\\|man\\)$" '(progn (require 'man)
(if (Man-support-local-filenames) (if (Man-support-local-filenames)
"man -l" "man -l"
"cat * | tbl | nroff -man -h"))) "cat * | tbl | nroff -man -h")))
(list "\\.\\(?:[0-9]\\|man\\)\\.g?z$" '(progn (require 'man) (list "\\.\\(?:[0-9]\\|man\\)\\.g?z$" '(progn (require 'man)
(if (Man-support-local-filenames) (if (Man-support-local-filenames)
"man -l" "man -l"
"gunzip -qc * | tbl | nroff -man -h")) "gunzip -qc * | tbl | nroff -man -h"))
;; Optional decompression. ;; Optional decompression.
'(concat "gunzip" (if dired-guess-shell-gzip-quiet " -q"))) '(concat "gunzip" (if dired-guess-shell-gzip-quiet " -q")))
(list "\\.[0-9]\\.Z$" '(progn (require 'man) (list "\\.[0-9]\\.Z$" '(progn (require 'man)
(if (Man-support-local-filenames) (if (Man-support-local-filenames)
"man -l" "man -l"
"zcat * | tbl | nroff -man -h")) "zcat * | tbl | nroff -man -h"))
;; Optional conversion to gzip format. ;; Optional conversion to gzip format.
'(concat "znew" (if dired-guess-shell-gzip-quiet " -q") '(concat "znew" (if dired-guess-shell-gzip-quiet " -q")
" " dired-guess-shell-znew-switches)) " " dired-guess-shell-znew-switches))
'("\\.pod$" "perldoc" "pod2man * | nroff -man") '("\\.pod$" "perldoc" "pod2man * | nroff -man")
'("\\.dvi$" "xdvi" "dvips") ; preview and printing '("\\.dvi$" "xdvi" "dvips") ; preview and printing
'("\\.au$" "play") ; play Sun audiofiles '("\\.au$" "play") ; play Sun audiofiles
'("\\.mpg$" "mpeg_play") '("\\.mpe?g$\\|\\.avi$" "xine -p")
'("\\.uu$" "uudecode") ; for uudecoded files '("\\.wav$" "play")
'("\\.uu$" "uudecode") ; for uudecoded files
'("\\.hqx$" "mcvert") '("\\.hqx$" "mcvert")
'("\\.sh$" "sh") ; execute shell scripts '("\\.sh$" "sh") ; execute shell scripts
'("\\.xbm$" "bitmap") ; view X11 bitmaps '("\\.xbm$" "bitmap") ; view X11 bitmaps
'("\\.gp$" "gnuplot") '("\\.gp$" "gnuplot")
'("\\.p[bgpn]m$" "xloadimage") '("\\.p[bgpn]m$" "xloadimage")
'("\\.gif$" "xloadimage") ; view gif pictures '("\\.gif$" "xloadimage") ; view gif pictures
'("\\.tif$" "xloadimage") '("\\.tif$" "xloadimage")
'("\\.png$" "display") ; xloadimage 4.1 doesn't grok PNG '("\\.png$" "display") ; xloadimage 4.1 doesn't grok PNG
'("\\.jpe?g$" "xloadimage") '("\\.jpe?g$" "xloadimage")
'("\\.fig$" "xfig") ; edit fig pictures '("\\.fig$" "xfig") ; edit fig pictures
'("\\.out$" "xgraph") ; for plotting purposes. '("\\.out$" "xgraph") ; for plotting purposes.
'("\\.tex$" "latex" "tex") '("\\.tex$" "latex" "tex")
'("\\.texi\\(nfo\\)?$" "makeinfo" "texi2dvi") '("\\.texi\\(nfo\\)?$" "makeinfo" "texi2dvi")
'("\\.pdf$" "xpdf") ; edit PDF files '("\\.pdf$" "xpdf")
'("\\.doc$" "antiword" "strings")
'("\\.rpm$" "rpm -qilp" "rpm -ivh")
'("\\.dia$" "dia")
'("\\.mgp$" "mgp")
;; Some other popular archivers. ;; Some other popular archivers.
(list "\\.zip$" "unzip" (list "\\.zip$" "unzip" "unzip -l"
;; Extract files into a separate subdirectory ;; Extract files into a separate subdirectory
'(concat "unzip" (if dired-guess-shell-gzip-quiet " -q") '(concat "unzip" (if dired-guess-shell-gzip-quiet " -q")
" -d " (file-name-sans-extension file))) " -d " (file-name-sans-extension file)))
'("\\.zoo$" "zoo x//") '("\\.zoo$" "zoo x//")
'("\\.lzh$" "lharc x") '("\\.lzh$" "lharc x")
'("\\.arc$" "arc x") '("\\.arc$" "arc x")
@ -1081,10 +1094,11 @@ dired."
(list "\\.dz$" "dictunzip") (list "\\.dz$" "dictunzip")
(list "\\.bz2$" "bunzip2") (list "\\.bz2$" "bunzip2")
(list "\\.Z$" "uncompress" (list "\\.Z$" "uncompress"
;; Optional conversion to gzip format. ;; Optional conversion to gzip format.
'(concat "znew" (if dired-guess-shell-gzip-quiet " -q") '(concat "znew" (if dired-guess-shell-gzip-quiet " -q")
" " dired-guess-shell-znew-switches)) " " dired-guess-shell-znew-switches))
)
'("\\.sign?$" "gpg --verify"))
"Default alist used for shell command guessing. "Default alist used for shell command guessing.
See `dired-guess-shell-alist-user'.") See `dired-guess-shell-alist-user'.")

View file

@ -2204,40 +2204,40 @@ instead of `dired-actual-switches'."
(concat "\\`" (match-string 1 default-directory))))) (concat "\\`" (match-string 1 default-directory)))))
(goto-char (point-min)) (goto-char (point-min))
(setq dired-subdir-alist nil) (setq dired-subdir-alist nil)
(while (and (re-search-forward dired-subdir-regexp nil t) (while (re-search-forward dired-subdir-regexp nil t)
;; Avoid taking a file name ending in a colon ;; Avoid taking a file name ending in a colon
;; as a subdir name. ;; as a subdir name.
(not (save-excursion (unless (save-excursion
(goto-char (match-beginning 0)) (goto-char (match-beginning 0))
(beginning-of-line) (beginning-of-line)
(forward-char 2) (forward-char 2)
(save-match-data (looking-at dired-re-perms))))) (save-match-data (looking-at dired-re-perms)))
(save-excursion (save-excursion
(goto-char (match-beginning 1)) (goto-char (match-beginning 1))
(setq new-dir-name (setq new-dir-name
(buffer-substring-no-properties (point) (match-end 1)) (buffer-substring-no-properties (point) (match-end 1))
new-dir-name new-dir-name
(save-match-data (save-match-data
(if (and R-ftp-base-dir-regex (if (and R-ftp-base-dir-regex
(not (string= new-dir-name default-directory)) (not (string= new-dir-name default-directory))
(string-match R-ftp-base-dir-regex new-dir-name)) (string-match R-ftp-base-dir-regex new-dir-name))
(concat default-directory (concat default-directory
(substring new-dir-name (match-end 0))) (substring new-dir-name (match-end 0)))
(expand-file-name new-dir-name)))) (expand-file-name new-dir-name))))
(delete-region (point) (match-end 1)) (delete-region (point) (match-end 1))
(insert new-dir-name)) (insert new-dir-name))
(setq count (1+ count)) (setq count (1+ count))
(dired-alist-add-1 new-dir-name (dired-alist-add-1 new-dir-name
;; Place a sub directory boundary between lines. ;; Place a sub directory boundary between lines.
(save-excursion (save-excursion
(goto-char (match-beginning 0)) (goto-char (match-beginning 0))
(beginning-of-line) (beginning-of-line)
(point-marker)))) (point-marker)))))
(if (and (> count 1) (interactive-p)) (if (and (> count 1) (interactive-p))
(message "Buffer includes %d directories" count)) (message "Buffer includes %d directories" count)))
;; We don't need to sort it because it is in buffer order per ;; We don't need to sort it because it is in buffer order per
;; constructionem. Return new alist: ;; constructionem. Return new alist:
dired-subdir-alist))) dired-subdir-alist))
(defun dired-alist-add-1 (dir new-marker) (defun dired-alist-add-1 (dir new-marker)
;; Add new DIR at NEW-MARKER. Don't sort. ;; Add new DIR at NEW-MARKER. Don't sort.
@ -3043,6 +3043,10 @@ Thus, use \\[backward-page] to find the beginning of a group of errors."
(insert "\f\n"))))))) (insert "\f\n")))))))
(defun dired-log-summary (string failures) (defun dired-log-summary (string failures)
"State a summary of a command's failures, in echo area and log buffer.
STRING is an overall summary of the failures.
FAILURES is a list of file names that we failed to operate on,
or nil if file names are not applicable."
(if (= (length failures) 1) (if (= (length failures) 1)
(message "%s" (message "%s"
(with-current-buffer dired-log-buffer (with-current-buffer dired-log-buffer

View file

@ -37,11 +37,11 @@
;;;###autoload ;;;###autoload
(defcustom dnd-protocol-alist (defcustom dnd-protocol-alist
'( '(("^file:///" . dnd-open-local-file) ; XDND format.
("^file:///" . dnd-open-local-file) ; XDND format. ("^file://" . dnd-open-file) ; URL with host
("^file://" . dnd-open-file) ; URL with host ("^file:" . dnd-open-local-file) ; Old KDE, Motif, Sun
("^file:" . dnd-open-local-file) ; Old KDE, Motif, Sun ("^\\(https?\\|ftp\\|file\\|nfs\\)://" . dnd-open-file)
) )
"The functions to call for different protocols when a drop is made. "The functions to call for different protocols when a drop is made.
This variable is used by `dnd-handle-one-url' and `dnd-handle-file-name'. This variable is used by `dnd-handle-one-url' and `dnd-handle-file-name'.
@ -59,6 +59,22 @@ if some action was made, or nil if the URL is ignored."
:group 'dnd) :group 'dnd)
(defcustom dnd-open-remote-file-function
(if (eq system-type 'windows-nt)
'dnd-open-local-file
'dnd-open-remote-url)
"The function to call when opening a file on a remote machine.
The function will be called with two arguments; URI and ACTION. See
`dnd-open-file' for details.
If nil, then dragging remote files into Emacs will result in an error.
Predefined functions are `dnd-open-local-file' and `dnd-open-remote-url'.
`dnd-open-local-file' attempts to open a remote file using its UNC name and
is the default on MS-Windows. `dnd-open-remote-url' uses `url-handler-mode'
and is the default except for MS-Windows."
:version "22.1"
:type 'function
:group 'dnd)
(defcustom dnd-open-file-other-window nil (defcustom dnd-open-file-other-window nil
"If non-nil, always use find-file-other-window to open dropped files." "If non-nil, always use find-file-other-window to open dropped files."
@ -75,7 +91,7 @@ The handler is first located by looking at `dnd-protocol-alist'.
If no match is found here, and the value of `browse-url-browser-function' If no match is found here, and the value of `browse-url-browser-function'
is a pair of (REGEXP . FUNCTION), those regexps are tried for a match. is a pair of (REGEXP . FUNCTION), those regexps are tried for a match.
If no match is found, just call `dnd-insert-text'. If no match is found, just call `dnd-insert-text'.
WINDOW is where the drop happend, ACTION is the action for the drop, WINDOW is where the drop happened, ACTION is the action for the drop,
URL is what has been dropped. URL is what has been dropped.
Returns ACTION." Returns ACTION."
(require 'browse-url) (require 'browse-url)
@ -147,7 +163,11 @@ Return nil if URI is not a local file."
The file is opened in the current window, or a new window if The file is opened in the current window, or a new window if
`dnd-open-file-other-window' is set. URI is the url for the file, `dnd-open-file-other-window' is set. URI is the url for the file,
and must have the format file:file-name or file:///file-name. and must have the format file:file-name or file:///file-name.
The last / in file:/// is part of the file name. ACTION is ignored." The last / in file:/// is part of the file name. If the system
natively supports unc file names, then remote urls of the form
file://server-name/file-name will also be handled by this function.
An alternative for systems that do not support unc file names is
`dnd-open-remote-url'. ACTION is ignored."
(let* ((f (dnd-get-local-file-name uri t))) (let* ((f (dnd-get-local-file-name uri t)))
(if (and f (file-readable-p f)) (if (and f (file-readable-p f))
@ -158,6 +178,20 @@ The last / in file:/// is part of the file name. ACTION is ignored."
'private) 'private)
(error "Can not read %s" uri)))) (error "Can not read %s" uri))))
(defun dnd-open-remote-url (uri action)
"Open a remote file with `find-file' and `url-handler-mode'.
Turns `url-handler-mode' on if not on before. The file is opened in the
current window, or a new window if `dnd-open-file-other-window' is set.
URI is the url for the file. ACTION is ignored."
(progn
(require 'url-handlers)
(or url-handler-mode (url-handler-mode))
(if dnd-open-file-other-window
(find-file-other-window uri)
(find-file uri))
'private))
(defun dnd-open-file (uri action) (defun dnd-open-file (uri action)
"Open a local or remote file. "Open a local or remote file.
The file is opened in the current window, or a new window if The file is opened in the current window, or a new window if
@ -169,7 +203,9 @@ The last / in file://hostname/ is part of the file name."
;; file. Otherwise return nil. ;; file. Otherwise return nil.
(let ((local-file (dnd-get-local-file-uri uri))) (let ((local-file (dnd-get-local-file-uri uri)))
(if local-file (dnd-open-local-file local-file action) (if local-file (dnd-open-local-file local-file action)
(error "Remote files not supported")))) (if dnd-open-remote-file-function
(funcall dnd-open-remote-file-function uri action)
(error "Remote files not supported")))))
(defun dnd-insert-text (window action text) (defun dnd-insert-text (window action text)

View file

@ -4281,6 +4281,11 @@ Mail anyway? (y or n) ")
(setq lis1 (cdr lis1))) (setq lis1 (cdr lis1)))
(cdr result))) (cdr result)))
(defun ediff-add-to-history (history-var newelt)
(if (fboundp 'add-to-history)
(add-to-history history-var newelt)
(set history-var (cons newelt (symbol-value history-var)))))
(if (fboundp 'copy-sequence) (if (fboundp 'copy-sequence)
(defalias 'ediff-copy-list 'copy-sequence) (defalias 'ediff-copy-list 'copy-sequence)
(defun ediff-copy-list (list) (defun ediff-copy-list (list)

View file

@ -7,8 +7,8 @@
;; Created: February 2, 1994 ;; Created: February 2, 1994
;; Keywords: comparing, merging, patching, tools, unix ;; Keywords: comparing, merging, patching, tools, unix
(defconst ediff-version "2.81" "The current version of Ediff") (defconst ediff-version "2.81.1" "The current version of Ediff")
(defconst ediff-date "February 18, 2006" "Date of last update") (defconst ediff-date "September 18, 2006" "Date of last update")
;; This file is part of GNU Emacs. ;; This file is part of GNU Emacs.
@ -210,11 +210,12 @@
ediff-last-dir-B ediff-last-dir-B
(file-name-directory f))) (file-name-directory f)))
(progn (progn
(add-to-history 'file-name-history (ediff-add-to-history
(ediff-abbreviate-file-name 'file-name-history
(expand-file-name (ediff-abbreviate-file-name
(file-name-nondirectory f) (expand-file-name
dir-B))) (file-name-nondirectory f)
dir-B)))
(ediff-get-default-file-name f 1))) (ediff-get-default-file-name f 1)))
))) )))
(ediff-files-internal file-A (ediff-files-internal file-A
@ -245,22 +246,24 @@
ediff-last-dir-B ediff-last-dir-B
(file-name-directory f))) (file-name-directory f)))
(progn (progn
(add-to-history 'file-name-history (ediff-add-to-history
(ediff-abbreviate-file-name 'file-name-history
(expand-file-name (ediff-abbreviate-file-name
(file-name-nondirectory f) (expand-file-name
dir-B))) (file-name-nondirectory f)
dir-B)))
(ediff-get-default-file-name f 1)))) (ediff-get-default-file-name f 1))))
(ediff-read-file-name "File C to compare" (ediff-read-file-name "File C to compare"
(setq dir-C (if ediff-use-last-dir (setq dir-C (if ediff-use-last-dir
ediff-last-dir-C ediff-last-dir-C
(file-name-directory ff))) (file-name-directory ff)))
(progn (progn
(add-to-history 'file-name-history (ediff-add-to-history
(ediff-abbreviate-file-name 'file-name-history
(expand-file-name (ediff-abbreviate-file-name
(file-name-nondirectory ff) (expand-file-name
dir-C))) (file-name-nondirectory ff)
dir-C)))
(ediff-get-default-file-name ff 2))) (ediff-get-default-file-name ff 2)))
))) )))
(ediff-files-internal file-A (ediff-files-internal file-A
@ -1103,11 +1106,12 @@ lines. For small regions, use `ediff-regions-wordwise'."
ediff-last-dir-B ediff-last-dir-B
(file-name-directory f))) (file-name-directory f)))
(progn (progn
(add-to-history 'file-name-history (ediff-add-to-history
(ediff-abbreviate-file-name 'file-name-history
(expand-file-name (ediff-abbreviate-file-name
(file-name-nondirectory f) (expand-file-name
dir-B))) (file-name-nondirectory f)
dir-B)))
(ediff-get-default-file-name f 1))) (ediff-get-default-file-name f 1)))
))) )))
(setq startup-hooks (cons 'ediff-merge-on-startup startup-hooks)) (setq startup-hooks (cons 'ediff-merge-on-startup startup-hooks))
@ -1146,11 +1150,12 @@ lines. For small regions, use `ediff-regions-wordwise'."
ediff-last-dir-B ediff-last-dir-B
(file-name-directory f))) (file-name-directory f)))
(progn (progn
(add-to-history 'file-name-history (ediff-add-to-history
(ediff-abbreviate-file-name 'file-name-history
(expand-file-name (ediff-abbreviate-file-name
(file-name-nondirectory f) (expand-file-name
dir-B))) (file-name-nondirectory f)
dir-B)))
(ediff-get-default-file-name f 1)))) (ediff-get-default-file-name f 1))))
(ediff-read-file-name "Ancestor file" (ediff-read-file-name "Ancestor file"
(setq dir-ancestor (setq dir-ancestor
@ -1158,11 +1163,12 @@ lines. For small regions, use `ediff-regions-wordwise'."
ediff-last-dir-ancestor ediff-last-dir-ancestor
(file-name-directory ff))) (file-name-directory ff)))
(progn (progn
(add-to-history 'file-name-history (ediff-add-to-history
(ediff-abbreviate-file-name 'file-name-history
(expand-file-name (ediff-abbreviate-file-name
(file-name-nondirectory ff) (expand-file-name
dir-ancestor))) (file-name-nondirectory ff)
dir-ancestor)))
(ediff-get-default-file-name ff 2))) (ediff-get-default-file-name ff 2)))
))) )))
(setq startup-hooks (cons 'ediff-merge-on-startup startup-hooks)) (setq startup-hooks (cons 'ediff-merge-on-startup startup-hooks))

View file

@ -2409,7 +2409,7 @@ If such an advice was found it will be removed from the list of advices
in that CLASS." in that CLASS."
(interactive (ad-read-advice-specification "Remove advice of")) (interactive (ad-read-advice-specification "Remove advice of"))
(if (ad-is-advised function) (if (ad-is-advised function)
(let* ((advice-to-remove (ad-find-advice function class name))) (let ((advice-to-remove (ad-find-advice function class name)))
(if advice-to-remove (if advice-to-remove
(ad-set-advice-info-field (ad-set-advice-info-field
function class function class
@ -2747,7 +2747,7 @@ For that it has to be fbound with a non-autoload definition."
A three-element list is returned, where the 1st element is the list of A three-element list is returned, where the 1st element is the list of
required arguments, the 2nd is the list of optional arguments, and the 3rd required arguments, the 2nd is the list of optional arguments, and the 3rd
is the name of an optional rest parameter (or nil)." is the name of an optional rest parameter (or nil)."
(let* (required optional rest) (let (required optional rest)
(setq rest (car (cdr (memq '&rest arglist)))) (setq rest (car (cdr (memq '&rest arglist))))
(if rest (setq arglist (reverse (cdr (memq '&rest (reverse arglist)))))) (if rest (setq arglist (reverse (cdr (memq '&rest (reverse arglist))))))
(setq optional (cdr (memq '&optional arglist))) (setq optional (cdr (memq '&optional arglist)))
@ -2958,7 +2958,7 @@ Example: `(ad-map-arglists '(a &rest args) '(w x y z))' will return
(defun ad-make-mapped-call (source-arglist target-arglist target-function) (defun ad-make-mapped-call (source-arglist target-arglist target-function)
"Make form to call TARGET-FUNCTION with args from SOURCE-ARGLIST." "Make form to call TARGET-FUNCTION with args from SOURCE-ARGLIST."
(let* ((mapped-form (ad-map-arglists source-arglist target-arglist))) (let ((mapped-form (ad-map-arglists source-arglist target-arglist)))
(if (eq (car mapped-form) 'funcall) (if (eq (car mapped-form) 'funcall)
(cons target-function (cdr (cdr mapped-form))) (cons target-function (cdr (cdr mapped-form)))
(prog1 mapped-form (prog1 mapped-form

View file

@ -66,13 +66,13 @@
;; ;;
;; The corresponding Lisp bindat specification looks like this: ;; The corresponding Lisp bindat specification looks like this:
;; ;;
;; (setq header-spec ;; (setq header-bindat-spec
;; '((dest-ip ip) ;; '((dest-ip ip)
;; (src-ip ip) ;; (src-ip ip)
;; (dest-port u16) ;; (dest-port u16)
;; (src-port u16))) ;; (src-port u16)))
;; ;;
;; (setq data-spec ;; (setq data-bindat-spec
;; '((type u8) ;; '((type u8)
;; (opcode u8) ;; (opcode u8)
;; (length u16r) ;; little endian order ;; (length u16r) ;; little endian order
@ -80,12 +80,12 @@
;; (data vec (length)) ;; (data vec (length))
;; (align 4))) ;; (align 4)))
;; ;;
;; (setq packet-spec ;; (setq packet-bindat-spec
;; '((header struct header-spec) ;; '((header struct header-bindat-spec)
;; (items u8) ;; (items u8)
;; (fill 3) ;; (fill 3)
;; (item repeat (items) ;; (item repeat (items)
;; (struct data-spec)))) ;; (struct data-bindat-spec))))
;; ;;
;; ;;
;; A binary data representation may look like ;; A binary data representation may look like
@ -121,6 +121,9 @@
;; Binary Data Structure Specification Format ;; Binary Data Structure Specification Format
;; ------------------------------------------ ;; ------------------------------------------
;; We recommend using names that end in `-bindat-spec'; such names
;; are recognized automatically as "risky" variables.
;; The data specification is formatted as follows: ;; The data specification is formatted as follows:
;; SPEC ::= ( ITEM... ) ;; SPEC ::= ( ITEM... )
@ -342,8 +345,8 @@
(defun bindat-unpack (spec bindat-raw &optional bindat-idx) (defun bindat-unpack (spec bindat-raw &optional bindat-idx)
"Return structured data according to SPEC for binary data in BINDAT-RAW. "Return structured data according to SPEC for binary data in BINDAT-RAW.
BINDAT-RAW is a unibyte string or vector. Optional third arg BINDAT-IDX specifies BINDAT-RAW is a unibyte string or vector.
the starting offset in BINDAT-RAW." Optional third arg BINDAT-IDX specifies the starting offset in BINDAT-RAW."
(when (multibyte-string-p bindat-raw) (when (multibyte-string-p bindat-raw)
(error "String is multibyte")) (error "String is multibyte"))
(unless bindat-idx (setq bindat-idx 0)) (unless bindat-idx (setq bindat-idx 0))

View file

@ -2261,7 +2261,8 @@ Code:, and others referenced in the style guide."
(re-search-forward "^;;; Code" nil t) (re-search-forward "^;;; Code" nil t)
(re-search-forward "^(require" nil t) (re-search-forward "^(require" nil t)
(re-search-forward "^(" nil t)) (re-search-forward "^(" nil t))
(beginning-of-line))) (beginning-of-line))
(t (re-search-forward ";;; .* --- .*\n")))
(if (checkdoc-y-or-n-p (if (checkdoc-y-or-n-p
"You should have a \";;; Commentary:\", add one? ") "You should have a \";;; Commentary:\", add one? ")
(insert "\n;;; Commentary:\n;; \n\n") (insert "\n;;; Commentary:\n;; \n\n")

View file

@ -2578,21 +2578,7 @@ surrounded by (block NAME ...).
(cl-const-expr-val (nth 1 keys))))) (cl-const-expr-val (nth 1 keys)))))
(cond ((eq test 'eq) (list 'memq a list)) (cond ((eq test 'eq) (list 'memq a list))
((eq test 'equal) (list 'member a list)) ((eq test 'equal) (list 'member a list))
((or (null keys) (eq test 'eql)) ((or (null keys) (eq test 'eql)) (list 'memql a list))
(if (eq (cl-const-expr-p a) t)
(list (if (floatp-safe (cl-const-expr-val a)) 'member 'memq)
a list)
(if (eq (cl-const-expr-p list) t)
(let ((p (cl-const-expr-val list)) (mb nil) (mq nil))
(if (not (cdr p))
(and p (list 'eql a (list 'quote (car p))))
(while p
(if (floatp-safe (car p)) (setq mb t)
(or (integerp (car p)) (symbolp (car p)) (setq mq t)))
(setq p (cdr p)))
(if (not mb) (list 'memq a list)
(if (not mq) (list 'member a list) form))))
form)))
(t form)))) (t form))))
(define-compiler-macro assoc* (&whole form a list &rest keys) (define-compiler-macro assoc* (&whole form a list &rest keys)

View file

@ -155,7 +155,11 @@ Like (push X PLACE), except that the list is unmodified if X is `eql' to
an element already on the list. an element already on the list.
\nKeywords supported: :test :test-not :key \nKeywords supported: :test :test-not :key
\n(fn X PLACE [KEYWORD VALUE]...)" \n(fn X PLACE [KEYWORD VALUE]...)"
(if (symbolp place) (list 'setq place (list* 'adjoin x place keys)) (if (symbolp place)
(if (null keys)
`(let ((x ,x))
(if (memql x ,place) ,place (setq ,place (cons x ,place))))
(list 'setq place (list* 'adjoin x place keys)))
(list* 'callf2 'adjoin x place keys))) (list* 'callf2 'adjoin x place keys)))
(defun cl-set-elt (seq n val) (defun cl-set-elt (seq n val)

View file

@ -200,7 +200,8 @@ Use the command `%s' to change this variable." pretty-name mode))
See the command `%s' for a description of this minor-mode." See the command `%s' for a description of this minor-mode."
(if body " (if body "
Setting this variable directly does not take effect; Setting this variable directly does not take effect;
use either \\[customize] or the function `%s'.")))) either customize it (see the info node `Easy Customization')
or call the function `%s'."))))
`(defcustom ,mode ,init-value `(defcustom ,mode ,init-value
,(format base-doc-string pretty-name mode mode) ,(format base-doc-string pretty-name mode mode)
,@set ,@set

View file

@ -432,7 +432,7 @@ Emacs Lisp mode) that support Eldoc.")
;; Prime the command list. ;; Prime the command list.
(eldoc-add-command-completions (eldoc-add-command-completions
"backward-" "beginning-of-" "move-beginning-of-" "delete-other-windows" "backward-" "beginning-of-" "move-beginning-of-" "delete-other-windows"
"delete-window" "delete-window" "handle-select-window"
"end-of-" "move-end-of-" "exchange-point-and-mark" "forward-" "end-of-" "move-end-of-" "exchange-point-and-mark" "forward-"
"indent-for-tab-command" "goto-" "mark-page" "mark-paragraph" "indent-for-tab-command" "goto-" "mark-page" "mark-paragraph"
"mouse-set-point" "move-" "pop-global-mark" "next-" "other-window" "mouse-set-point" "move-" "pop-global-mark" "next-" "other-window"

View file

@ -64,7 +64,7 @@
(concat (concat
"^\\s-*(\\(def\\(ine-skeleton\\|ine-generic-mode\\|ine-derived-mode\\|\ "^\\s-*(\\(def\\(ine-skeleton\\|ine-generic-mode\\|ine-derived-mode\\|\
ine\\(?:-global\\)?-minor-mode\\|ine-compilation-mode\\|un-cvs-mode\\|\ ine\\(?:-global\\)?-minor-mode\\|ine-compilation-mode\\|un-cvs-mode\\|\
foo\\|[^cfgv]\\(\\w\\|\\s_\\)+\\*?\\)\\|easy-mmode-define-[a-z-]+\\|easy-menu-define\\|\ foo\\|[^icfgv]\\(\\w\\|\\s_\\)+\\*?\\)\\|easy-mmode-define-[a-z-]+\\|easy-menu-define\\|\
menu-bar-make-toggle\\)" menu-bar-make-toggle\\)"
find-function-space-re find-function-space-re
"\\('\\|\(quote \\)?%s\\(\\s-\\|$\\|\(\\|\)\\)") "\\('\\|\(quote \\)?%s\\(\\s-\\|$\\|\(\\|\)\\)")

View file

@ -32,9 +32,11 @@
;; Layout of a timer vector: ;; Layout of a timer vector:
;; [triggered-p high-seconds low-seconds usecs repeat-delay ;; [triggered-p high-seconds low-seconds usecs repeat-delay
;; function args idle-delay] ;; function args idle-delay]
;; triggered-p is nil if the timer is active (waiting to be triggered),
;; t if it is inactive ("already triggered", in theory)
(defun timer-create () (defun timer-create ()
"Create a timer object." "Create a timer object which can be passed to `timer-activate'."
(let ((timer (make-vector 8 nil))) (let ((timer (make-vector 8 nil)))
(aset timer 0 t) (aset timer 0 t)
timer)) timer))
@ -173,6 +175,10 @@ fire repeatedly that many seconds apart."
(defun timer-activate (timer &optional triggered-p reuse-cell) (defun timer-activate (timer &optional triggered-p reuse-cell)
"Put TIMER on the list of active timers. "Put TIMER on the list of active timers.
If TRIGGERED-P is t, that means to make the timer inactive
\(put it on the list, but mark it as already triggered).
To remove from the list, use `cancel-timer'.
REUSE-CELL, if non-nil, is a cons cell to reuse instead REUSE-CELL, if non-nil, is a cons cell to reuse instead
of allocating a new one." of allocating a new one."
(if (and (timerp timer) (if (and (timerp timer)
@ -256,10 +262,10 @@ of allocating a new one."
(setq timer-idle-list (delq timer timer-idle-list)) (setq timer-idle-list (delq timer timer-idle-list))
nil) nil)
;; Remove TIMER from the list of active timers or idle timers.
;; Only to be used in this file. It returns the cons cell
;; that was removed from the list.
(defun cancel-timer-internal (timer) (defun cancel-timer-internal (timer)
"Remove TIMER from the list of active timers or idle timers.
Only to be used in this file. It returns the cons cell
that was removed from the timer list."
(let ((cell1 (memq timer timer-list)) (let ((cell1 (memq timer timer-list))
(cell2 (memq timer timer-idle-list))) (cell2 (memq timer timer-idle-list)))
(if cell1 (if cell1
@ -270,7 +276,9 @@ of allocating a new one."
;;;###autoload ;;;###autoload
(defun cancel-function-timers (function) (defun cancel-function-timers (function)
"Cancel all timers scheduled by `run-at-time' which would run FUNCTION." "Cancel all timers which would run FUNCTION.
This affects ordinary timers such as are scheduled by `run-at-time',
and idle timers such as are scheduled by `run-with-idle-timer'."
(interactive "aCancel timers of function: ") (interactive "aCancel timers of function: ")
(let ((tail timer-list)) (let ((tail timer-list))
(while tail (while tail
@ -284,12 +292,19 @@ of allocating a new one."
(setq tail (cdr tail))))) (setq tail (cdr tail)))))
;; Record the last few events, for debugging. ;; Record the last few events, for debugging.
(defvar timer-event-last-2 nil) (defvar timer-event-last nil
(defvar timer-event-last-1 nil) "Last timer that was run.")
(defvar timer-event-last nil) (defvar timer-event-last-1 nil
"Next-to-last timer that was run.")
(defvar timer-event-last-2 nil
"Third-to-last timer that was run.")
(defvar timer-max-repeats 10 (defvar timer-max-repeats 10
"*Maximum number of times to repeat a timer, if real time jumps.") "*Maximum number of times to repeat a timer, if many repeats are delayed.
Timer invocations can be delayed because Emacs is suspended or busy,
or because the system's time changes. If such an occurrence makes it
appear that many invocations are overdue, this variable controls
how many will really happen.")
(defun timer-until (timer time) (defun timer-until (timer time)
"Calculate number of seconds from when TIMER will run, until TIME. "Calculate number of seconds from when TIMER will run, until TIME.
@ -440,6 +455,7 @@ This function returns a timer object which you can use in `cancel-timer'."
timer)) timer))
(defun with-timeout-handler (tag) (defun with-timeout-handler (tag)
"This is the timer function used for the timer made by `with-timeout'."
(throw tag 'timeout)) (throw tag 'timeout))
;;;###autoload (put 'with-timeout 'lisp-indent-function 1) ;;;###autoload (put 'with-timeout 'lisp-indent-function 1)

View file

@ -265,11 +265,14 @@ display oriented stuff, use `trace-function-background' instead."
;;;###autoload ;;;###autoload
(defun trace-function-background (function &optional buffer) (defun trace-function-background (function &optional buffer)
"Traces FUNCTION with trace output going quietly to BUFFER. "Traces FUNCTION with trace output going quietly to BUFFER.
For every call of FUNCTION Lisp-style trace messages that display argument When this tracing is enabled, every call to FUNCTION writes
and return values will be inserted into BUFFER. This function generates the a Lisp-style trace message (showing the arguments and return value)
trace advice for FUNCTION and activates it together with any other advice into BUFFER. This function generates advice to trace FUNCTION
there might be!! Trace output will quietly go to BUFFER without changing and activates it together with any other advice there might be.
the window or buffer configuration at all." The trace output goes to BUFFER quietly, without changing
the window or buffer configuration.
BUFFER defaults to `trace-buffer'."
(interactive (interactive
(list (list
(intern (intern

View file

@ -1097,73 +1097,79 @@ If ARG is the atom `-', scroll upward by nearly full screen."
;;; Pre-command hook ;;; Pre-command hook
(defun cua--pre-command-handler-1 () (defun cua--pre-command-handler-1 ()
(let ((movement (eq (get this-command 'CUA) 'move))) ;; Cancel prefix key timeout if user enters another key.
(when cua--prefix-override-timer
(if (timerp cua--prefix-override-timer)
(cancel-timer cua--prefix-override-timer))
(setq cua--prefix-override-timer nil))
;; Cancel prefix key timeout if user enters another key. (cond
(when cua--prefix-override-timer ;; Only symbol commands can have necessary properties
(if (timerp cua--prefix-override-timer) ((not (symbolp this-command))
(cancel-timer cua--prefix-override-timer)) nil)
(setq cua--prefix-override-timer nil))
;; Handle shifted cursor keys and other movement commands. ;; Handle delete-selection property on non-movement commands
;; If region is not active, region is activated if key is shifted. ((not (eq (get this-command 'CUA) 'move))
;; If region is active, region is cancelled if key is unshifted (and region not started with C-SPC). (when (and mark-active (not deactivate-mark))
;; If rectangle is active, expand rectangle in specified direction and ignore the movement. (let* ((ds (or (get this-command 'delete-selection)
(if movement (get this-command 'pending-delete)))
(cond (nc (cond
((if window-system ((not ds) nil)
(memq 'shift (event-modifiers ((eq ds 'yank)
(aref (this-single-command-raw-keys) 0))) 'cua-paste)
(or ((eq ds 'kill)
(memq 'shift (event-modifiers (if cua--rectangle
(aref (this-single-command-keys) 0))) 'cua-copy-rectangle
;; See if raw escape sequence maps to a shifted event, e.g. S-up or C-S-home. 'cua-copy-region))
(and (boundp 'local-function-key-map) ((eq ds 'supersede)
local-function-key-map (if cua--rectangle
(let ((ev (lookup-key local-function-key-map 'cua-delete-rectangle
(this-single-command-raw-keys)))) 'cua-delete-region))
(and (vector ev) (t
(symbolp (setq ev (aref ev 0))) (if cua--rectangle
(string-match "S-" (symbol-name ev))))))) 'cua-delete-rectangle ;; replace?
(unless mark-active 'cua-replace-region)))))
(push-mark-command nil t)) (if nc
(setq cua--last-region-shifted t) (setq this-original-command this-command
(setq cua--explicit-region-start nil)) this-command nc)))))
((or cua--explicit-region-start cua--rectangle)
(unless mark-active
(push-mark-command nil nil)))
(t
;; If we set mark-active to nil here, the region highlight will not be
;; removed by the direct_output_ commands.
(setq deactivate-mark t)))
;; Handle delete-selection property on other commands ;; Handle shifted cursor keys and other movement commands.
(if (and mark-active (not deactivate-mark)) ;; If region is not active, region is activated if key is shifted.
(let* ((ds (or (get this-command 'delete-selection) ;; If region is active, region is cancelled if key is unshifted (and region not started with C-SPC).
(get this-command 'pending-delete))) ;; If rectangle is active, expand rectangle in specified direction and ignore the movement.
(nc (cond ((if window-system
((not ds) nil) (memq 'shift (event-modifiers
((eq ds 'yank) (aref (this-single-command-raw-keys) 0)))
'cua-paste) (or
((eq ds 'kill) (memq 'shift (event-modifiers
(if cua--rectangle (aref (this-single-command-keys) 0)))
'cua-copy-rectangle ;; See if raw escape sequence maps to a shifted event, e.g. S-up or C-S-home.
'cua-copy-region)) (and (boundp 'local-function-key-map)
((eq ds 'supersede) local-function-key-map
(if cua--rectangle (let ((ev (lookup-key local-function-key-map
'cua-delete-rectangle (this-single-command-raw-keys))))
'cua-delete-region)) (and (vector ev)
(t (symbolp (setq ev (aref ev 0)))
(if cua--rectangle (string-match "S-" (symbol-name ev)))))))
'cua-delete-rectangle ;; replace? (unless mark-active
'cua-replace-region))))) (push-mark-command nil t))
(if nc (setq cua--last-region-shifted t)
(setq this-original-command this-command (setq cua--explicit-region-start nil))
this-command nc)))))
;; Detect extension of rectangles by mouse or other movement ;; Set mark if user explicitly said to do so
(setq cua--buffer-and-point-before-command ((or cua--explicit-region-start cua--rectangle)
(if cua--rectangle (cons (current-buffer) (point)))))) (unless mark-active
(push-mark-command nil nil)))
;; Else clear mark after this command.
(t
;; If we set mark-active to nil here, the region highlight will not be
;; removed by the direct_output_ commands.
(setq deactivate-mark t)))
;; Detect extension of rectangles by mouse or other movement
(setq cua--buffer-and-point-before-command
(if cua--rectangle (cons (current-buffer) (point)))))
(defun cua--pre-command-handler () (defun cua--pre-command-handler ()
(when cua-mode (when cua-mode

View file

@ -892,12 +892,17 @@ Vi's prefix argument will be used. Otherwise, the prefix argument passed to
(t (t
;;(setq ch (read-char-exclusive)) ;;(setq ch (read-char-exclusive))
(setq ch (aref (read-key-sequence nil) 0)) (setq ch (aref (read-key-sequence nil) 0))
(if viper-xemacs-p
(setq ch (event-to-character ch)))
;; replace ^M with the newline ;; replace ^M with the newline
(if (eq ch ?\C-m) (setq ch ?\n)) (if (eq ch ?\C-m) (setq ch ?\n))
;; Make sure ^V and ^Q work as quotation chars ;; Make sure ^V and ^Q work as quotation chars
(if (memq ch '(?\C-v ?\C-q)) (if (memq ch '(?\C-v ?\C-q))
;;(setq ch (read-char-exclusive)) (progn
(setq ch (aref (read-key-sequence nil) 0)) ;;(setq ch (read-char-exclusive))
(setq ch (aref (read-key-sequence nil) 0))
(if viper-xemacs-p
(setq ch (event-to-character ch))))
) )
(insert ch)) (insert ch))
) )
@ -1750,7 +1755,7 @@ invokes the command before that, etc."
;; Hook used in viper-undo ;; Hook used in viper-undo
(defun viper-after-change-undo-hook (beg end len) (defun viper-after-change-undo-hook (beg end len)
(if undo-in-progress (if (and (boundp 'undo-in-progress) undo-in-progress)
(setq undo-beg-posn beg (setq undo-beg-posn beg
undo-end-posn (or end beg)) undo-end-posn (or end beg))
;; some other hooks may be changing various text properties in ;; some other hooks may be changing various text properties in
@ -3093,7 +3098,7 @@ If point is on a widget or a button, simulate clicking on that widget/button."
(and (consp widget) (and (consp widget)
(get (widget-type widget) 'widget-type)))) (get (widget-type widget) 'widget-type))))
(widget-button-press (point)) (widget-button-press (point))
(if (button-at (point)) (if (and (fboundp 'button-at) (fboundp 'push-button) (button-at (point)))
(push-button) (push-button)
;; not a widget or a button ;; not a widget or a button
(viper-leave-region-active) (viper-leave-region-active)

View file

@ -9,7 +9,7 @@
;; Author: Michael Kifer <kifer@cs.stonybrook.edu> ;; Author: Michael Kifer <kifer@cs.stonybrook.edu>
;; Keywords: emulations ;; Keywords: emulations
(defconst viper-version "3.12 of February 18, 2006" (defconst viper-version "3.13 of September 18, 2006"
"The current version of Viper") "The current version of Viper")
;; This file is part of GNU Emacs. ;; This file is part of GNU Emacs.

View file

@ -27,7 +27,7 @@
;; ;;
;; A few routines for placing an image over text that will work for any ;; A few routines for placing an image over text that will work for any
;; Emacs implementation without error. When images are not supported, then ;; Emacs implementation without error. When images are not supported, then
;; they are justnot displayed. ;; they are just not displayed.
;; ;;
;; The idea is that gui buffers (trees, buttons, etc) will have text ;; The idea is that gui buffers (trees, buttons, etc) will have text
;; representations of the GUI elements. These routines will replace the text ;; representations of the GUI elements. These routines will replace the text

View file

@ -2089,7 +2089,7 @@ terminal type to a different value."
(defgroup mode-line-faces nil (defgroup mode-line-faces nil
"Faces used in the mode line." "Faces used in the mode line."
:group 'modeline :group 'mode-line
:group 'faces :group 'faces
:version "22.1") :version "22.1")

View file

@ -954,7 +954,7 @@ If t, `ffap-tex-init' will initialize this when needed.")
(substring name 2)))) (substring name 2))))
(defvar ffap-rfc-path (defvar ffap-rfc-path
(concat (ffap-host-to-filename "ds.internic.net") "/rfc/rfc%s.txt")) (concat (ffap-host-to-filename "ftp.rfc-editor.org") "/in-notes/rfc%s.txt"))
(defun ffap-rfc (name) (defun ffap-rfc (name)
(format ffap-rfc-path (format ffap-rfc-path

View file

@ -266,6 +266,7 @@ Defaults to nil on DOS and Windows, and t on other systems."
;; Functions to add files to the cache ;; Functions to add files to the cache
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;###autoload
(defun file-cache-add-directory (directory &optional regexp) (defun file-cache-add-directory (directory &optional regexp)
"Add DIRECTORY to the file cache. "Add DIRECTORY to the file cache.
If the optional REGEXP argument is non-nil, only files which match it will If the optional REGEXP argument is non-nil, only files which match it will
@ -291,6 +292,7 @@ be added to the cache."
dir-files) dir-files)
(file-cache-add-file-list dir-files)))) (file-cache-add-file-list dir-files))))
;;;###autoload
(defun file-cache-add-directory-list (directory-list &optional regexp) (defun file-cache-add-directory-list (directory-list &optional regexp)
"Add DIRECTORY-LIST (a list of directory names) to the file cache. "Add DIRECTORY-LIST (a list of directory names) to the file cache.
If the optional REGEXP argument is non-nil, only files which match it If the optional REGEXP argument is non-nil, only files which match it
@ -307,6 +309,8 @@ in each directory, not to the directory list itself."
(mapcar 'file-cache-add-file file-list)) (mapcar 'file-cache-add-file file-list))
;; Workhorse function ;; Workhorse function
;;;###autoload
(defun file-cache-add-file (file) (defun file-cache-add-file (file)
"Add FILE to the file cache." "Add FILE to the file cache."
(interactive "fAdd File: ") (interactive "fAdd File: ")
@ -333,6 +337,7 @@ in each directory, not to the directory list itself."
file-cache-alist))) file-cache-alist)))
))) )))
;;;###autoload
(defun file-cache-add-directory-using-find (directory) (defun file-cache-add-directory-using-find (directory)
"Use the `find' command to add files to the file cache. "Use the `find' command to add files to the file cache.
Find is run in DIRECTORY." Find is run in DIRECTORY."
@ -355,6 +360,7 @@ Find is run in DIRECTORY."
"-print") "-print")
(file-cache-add-from-file-cache-buffer))) (file-cache-add-from-file-cache-buffer)))
;;;###autoload
(defun file-cache-add-directory-using-locate (string) (defun file-cache-add-directory-using-locate (string)
"Use the `locate' command to add files to the file cache. "Use the `locate' command to add files to the file cache.
STRING is passed as an argument to the locate command." STRING is passed as an argument to the locate command."
@ -366,6 +372,7 @@ STRING is passed as an argument to the locate command."
string) string)
(file-cache-add-from-file-cache-buffer)) (file-cache-add-from-file-cache-buffer))
;;;###autoload
(defun file-cache-add-directory-recursively (dir &optional regexp) (defun file-cache-add-directory-recursively (dir &optional regexp)
"Adds DIR and any subdirectories to the file-cache. "Adds DIR and any subdirectories to the file-cache.
This function does not use any external programs This function does not use any external programs

View file

@ -514,6 +514,9 @@ using \\[toggle-read-only]."
:type 'boolean :type 'boolean
:group 'view) :group 'view)
(defvar file-name-history nil
"History list of file names entered in the minibuffer.")
(put 'ange-ftp-completion-hook-function 'safe-magic t) (put 'ange-ftp-completion-hook-function 'safe-magic t)
(defun ange-ftp-completion-hook-function (op &rest args) (defun ange-ftp-completion-hook-function (op &rest args)
"Provides support for ange-ftp host name completion. "Provides support for ange-ftp host name completion.
@ -1117,13 +1120,15 @@ expand wildcards (if any) and visit multiple files."
(mapcar 'switch-to-buffer (cdr value)))) (mapcar 'switch-to-buffer (cdr value))))
(switch-to-buffer-other-frame value)))) (switch-to-buffer-other-frame value))))
(defun find-file-existing (filename &optional wildcards) (defun find-file-existing (filename)
"Edit the existing file FILENAME. "Edit the existing file FILENAME.
Like \\[find-file] but only allow a file that exists." Like \\[find-file] but only allow a file that exists, and do not allow
(interactive (find-file-read-args "Find existing file: " t)) file names with wildcards."
(unless (file-exists-p filename) (error "%s does not exist" filename)) (interactive (nbutlast (find-file-read-args "Find existing file: " t)))
(find-file filename wildcards) (if (and (not (interactive-p)) (not (file-exists-p filename)))
(current-buffer)) (error "%s does not exist" filename)
(find-file filename)
(current-buffer)))
(defun find-file-read-only (filename &optional wildcards) (defun find-file-read-only (filename &optional wildcards)
"Edit file FILENAME but don't allow changes. "Edit file FILENAME but don't allow changes.
@ -1310,7 +1315,7 @@ removes automounter prefixes (see the variable `automount-dir-prefix')."
(setq abbreviated-home-dir (setq abbreviated-home-dir
(let ((abbreviated-home-dir "$foo")) (let ((abbreviated-home-dir "$foo"))
(concat "^" (abbreviate-file-name (expand-file-name "~")) (concat "^" (abbreviate-file-name (expand-file-name "~"))
"\\(/\\|$\\)")))) "\\(/\\|\\'\\)"))))
;; If FILENAME starts with the abbreviated homedir, ;; If FILENAME starts with the abbreviated homedir,
;; make it start with `~' instead. ;; make it start with `~' instead.
@ -1365,7 +1370,7 @@ If there is no such live buffer, return nil."
(number (nthcdr 10 attributes)) (number (nthcdr 10 attributes))
(list (buffer-list)) found) (list (buffer-list)) found)
(and buffer-file-numbers-unique (and buffer-file-numbers-unique
number (car-safe number) ;Make sure the inode is not just nil.
(while (and (not found) list) (while (and (not found) list)
(with-current-buffer (car list) (with-current-buffer (car list)
(if (and buffer-file-name (if (and buffer-file-name
@ -1904,7 +1909,7 @@ in that case, this function acts as if `enable-local-variables' were t."
("\\.[sS]\\'" . asm-mode) ("\\.[sS]\\'" . asm-mode)
("\\.asm\\'" . asm-mode) ("\\.asm\\'" . asm-mode)
("[cC]hange\\.?[lL]og?\\'" . change-log-mode) ("[cC]hange\\.?[lL]og?\\'" . change-log-mode)
("[cC]hange[lL]og\\.[0-9]+\\'" . change-log-mode) ("[cC]hange[lL]og[-.][0-9]+\\'" . change-log-mode)
("\\$CHANGE_LOG\\$\\.TXT" . change-log-mode) ("\\$CHANGE_LOG\\$\\.TXT" . change-log-mode)
("\\.scm\\.[0-9]*\\'" . scheme-mode) ("\\.scm\\.[0-9]*\\'" . scheme-mode)
("\\.[ck]?sh\\'\\|\\.shar\\'\\|/\\.z?profile\\'" . sh-mode) ("\\.[ck]?sh\\'\\|\\.shar\\'\\|/\\.z?profile\\'" . sh-mode)
@ -2396,10 +2401,10 @@ asking you for confirmation."
;; ;;
;; For variables defined in the C source code the declaration should go here: ;; For variables defined in the C source code the declaration should go here:
;; FIXME: Some variables should be moved according to the rules above.
(mapc (lambda (pair) (mapc (lambda (pair)
(put (car pair) 'safe-local-variable (cdr pair))) (put (car pair) 'safe-local-variable (cdr pair)))
'((fill-column . integerp) ;; C source code '((buffer-read-only . booleanp) ;; C source code
(fill-column . integerp) ;; C source code
(indent-tabs-mode . booleanp) ;; C source code (indent-tabs-mode . booleanp) ;; C source code
(left-margin . integerp) ;; C source code (left-margin . integerp) ;; C source code
(no-update-autoloads . booleanp) (no-update-autoloads . booleanp)
@ -2697,8 +2702,8 @@ It is dangerous if either of these conditions are met:
* Its name ends with \"hook(s)\", \"function(s)\", \"form(s)\", \"map\", * Its name ends with \"hook(s)\", \"function(s)\", \"form(s)\", \"map\",
\"program\", \"command(s)\", \"predicate(s)\", \"frame-alist\", \"program\", \"command(s)\", \"predicate(s)\", \"frame-alist\",
\"mode-alist\", \"font-lock-(syntactic-)keyword*\", or \"mode-alist\", \"font-lock-(syntactic-)keyword*\",
\"map-alist\"." \"map-alist\", or \"bindat-spec\"."
;; If this is an alias, check the base name. ;; If this is an alias, check the base name.
(condition-case nil (condition-case nil
(setq sym (indirect-variable sym)) (setq sym (indirect-variable sym))
@ -2707,7 +2712,7 @@ It is dangerous if either of these conditions are met:
(string-match "-hooks?$\\|-functions?$\\|-forms?$\\|-program$\\|\ (string-match "-hooks?$\\|-functions?$\\|-forms?$\\|-program$\\|\
-commands?$\\|-predicates?$\\|font-lock-keywords$\\|font-lock-keywords\ -commands?$\\|-predicates?$\\|font-lock-keywords$\\|font-lock-keywords\
-[0-9]+$\\|font-lock-syntactic-keywords$\\|-frame-alist$\\|-mode-alist$\\|\ -[0-9]+$\\|font-lock-syntactic-keywords$\\|-frame-alist$\\|-mode-alist$\\|\
-map$\\|-map-alist$" (symbol-name sym)))) -map$\\|-map-alist$\\|-bindat-spec$" (symbol-name sym))))
(defun hack-one-local-variable-quotep (exp) (defun hack-one-local-variable-quotep (exp)
(and (consp exp) (eq (car exp) 'quote) (consp (cdr exp)))) (and (consp exp) (eq (car exp) 'quote) (consp (cdr exp))))
@ -3729,9 +3734,15 @@ This requires the external program `diff' to be in your `exec-path'."
(recursive-edit) (recursive-edit)
;; Return nil to ask about BUF again. ;; Return nil to ask about BUF again.
nil) nil)
"view this file") "view this buffer")
(?d diff-buffer-with-file (?d (lambda (buf)
"view changes in file")) (save-window-excursion
(diff-buffer-with-file buf))
(view-buffer (get-buffer-create "*Diff*")
(lambda (ignore) (exit-recursive-edit)))
(recursive-edit)
nil)
"view changes in this buffer"))
"ACTION-ALIST argument used in call to `map-y-or-n-p'.") "ACTION-ALIST argument used in call to `map-y-or-n-p'.")
(defvar buffer-save-without-query nil (defvar buffer-save-without-query nil

View file

@ -129,8 +129,17 @@ as the final argument."
args (concat find-dired-find-program " . " args (concat find-dired-find-program " . "
(if (string= args "") (if (string= args "")
"" ""
(concat "\\( " args " \\) ")) (concat
(car find-ls-option))) (shell-quote-argument "(")
" " args " "
(shell-quote-argument ")")
" "))
(if (equal (car find-ls-option) "-exec ls -ld {} \\;")
(concat "-exec ls -ld "
(shell-quote-argument "{}")
" "
(shell-quote-argument ";"))
(car find-ls-option))))
;; Start the find process. ;; Start the find process.
(shell-command (concat args "&") (current-buffer)) (shell-command (concat args "&") (current-buffer))
;; The next statement will bomb in classic dired (no optional arg allowed) ;; The next statement will bomb in classic dired (no optional arg allowed)
@ -215,7 +224,10 @@ Thus ARG can also contain additional grep options."
(find-dired dir (find-dired dir
(concat "-type f -exec grep " find-grep-options " -e " (concat "-type f -exec grep " find-grep-options " -e "
(shell-quote-argument regexp) (shell-quote-argument regexp)
" {} \\\; "))) " "
(shell-quote-argument "{}")
" "
(shell-quote-argument ";"))))
(defun find-dired-filter (proc string) (defun find-dired-filter (proc string)
;; Filter for \\[find-dired] processes. ;; Filter for \\[find-dired] processes.

View file

@ -718,7 +718,7 @@ see the variables `c-font-lock-extra-types', `c++-font-lock-extra-types',
;; If the keywords were compiled before, compile them again. ;; If the keywords were compiled before, compile them again.
(if was-compiled (if was-compiled
(setq font-lock-keywords (setq font-lock-keywords
(font-lock-compile-keywords font-lock-keywords t))))))) (font-lock-compile-keywords font-lock-keywords)))))))
(defun font-lock-update-removed-keyword-alist (mode keywords how) (defun font-lock-update-removed-keyword-alist (mode keywords how)
"Update `font-lock-removed-keywords-alist' when adding new KEYWORDS to MODE." "Update `font-lock-removed-keywords-alist' when adding new KEYWORDS to MODE."
@ -825,7 +825,7 @@ happens, so the major mode can be corrected."
;; If the keywords were compiled before, compile them again. ;; If the keywords were compiled before, compile them again.
(if was-compiled (if was-compiled
(setq font-lock-keywords (setq font-lock-keywords
(font-lock-compile-keywords font-lock-keywords t))))))) (font-lock-compile-keywords font-lock-keywords)))))))
;;; Font Lock Support mode. ;;; Font Lock Support mode.
@ -1168,7 +1168,12 @@ what properties to clear before refontifying a region.")
;; number of lines. ;; number of lines.
;; (setq beg (progn (goto-char beg) (line-beginning-position)) ;; (setq beg (progn (goto-char beg) (line-beginning-position))
;; end (progn (goto-char end) (line-beginning-position 2))) ;; end (progn (goto-char end) (line-beginning-position 2)))
) (unless (eq end (point-max))
;; Rounding up to a whole number of lines should include the
;; line right after `end'. Typical case: the first char of
;; the line was deleted. Or a \n was inserted in the middle
;; of a line.
(setq end (1+ end))))
(font-lock-fontify-region beg end))))) (font-lock-fontify-region beg end)))))
(defvar jit-lock-start) (defvar jit-lock-end) (defvar jit-lock-start) (defvar jit-lock-end)
@ -1205,9 +1210,17 @@ This function does 2 things:
(setq beg (or (previous-single-property-change (setq beg (or (previous-single-property-change
beg 'font-lock-multiline) beg 'font-lock-multiline)
(point-min)))) (point-min))))
(setq end (or (text-property-any end (point-max) (when (< end (point-max))
'font-lock-multiline nil) (setq end
(point-max))) (if (get-text-property end 'font-lock-multiline)
(or (text-property-any end (point-max)
'font-lock-multiline nil)
(point-max))
;; Rounding up to a whole number of lines should include the
;; line right after `end'. Typical case: the first char of
;; the line was deleted. Or a \n was inserted in the middle
;; of a line.
(1+ end))))
;; Finally, pre-enlarge the region to a whole number of lines, to try ;; Finally, pre-enlarge the region to a whole number of lines, to try
;; and anticipate what font-lock-default-fontify-region will do, so as to ;; and anticipate what font-lock-default-fontify-region will do, so as to
;; avoid double-redisplay. ;; avoid double-redisplay.
@ -1217,11 +1230,11 @@ This function does 2 things:
(when (memq 'font-lock-extend-region-wholelines (when (memq 'font-lock-extend-region-wholelines
font-lock-extend-region-functions) font-lock-extend-region-functions)
(goto-char beg) (goto-char beg)
(forward-line 0) (setq jit-lock-start (min jit-lock-start (line-beginning-position)))
(setq jit-lock-start (min jit-lock-start (point)))
(goto-char end) (goto-char end)
(forward-line 1) (setq jit-lock-end
(setq jit-lock-end (max jit-lock-end (point))))))) (max jit-lock-end
(if (bolp) (point) (line-beginning-position 2))))))))
(defun font-lock-fontify-block (&optional arg) (defun font-lock-fontify-block (&optional arg)
"Fontify some lines the way `font-lock-fontify-buffer' would. "Fontify some lines the way `font-lock-fontify-buffer' would.
@ -1414,7 +1427,8 @@ START should be at the beginning of a line."
;; If `font-lock-syntactic-keywords' is not compiled, compile it. ;; If `font-lock-syntactic-keywords' is not compiled, compile it.
(unless (eq (car font-lock-syntactic-keywords) t) (unless (eq (car font-lock-syntactic-keywords) t)
(setq font-lock-syntactic-keywords (font-lock-compile-keywords (setq font-lock-syntactic-keywords (font-lock-compile-keywords
font-lock-syntactic-keywords))) font-lock-syntactic-keywords
t)))
;; Get down to business. ;; Get down to business.
(let ((case-fold-search font-lock-keywords-case-fold-search) (let ((case-fold-search font-lock-keywords-case-fold-search)
(keywords (cddr font-lock-syntactic-keywords)) (keywords (cddr font-lock-syntactic-keywords))
@ -1570,7 +1584,7 @@ START should be at the beginning of a line.
LOUDLY, if non-nil, allows progress-meter bar." LOUDLY, if non-nil, allows progress-meter bar."
(unless (eq (car font-lock-keywords) t) (unless (eq (car font-lock-keywords) t)
(setq font-lock-keywords (setq font-lock-keywords
(font-lock-compile-keywords font-lock-keywords t))) (font-lock-compile-keywords font-lock-keywords)))
(let ((case-fold-search font-lock-keywords-case-fold-search) (let ((case-fold-search font-lock-keywords-case-fold-search)
(keywords (cddr font-lock-keywords)) (keywords (cddr font-lock-keywords))
(bufname (buffer-name)) (count 0) (bufname (buffer-name)) (count 0)
@ -1626,12 +1640,12 @@ LOUDLY, if non-nil, allows progress-meter bar."
;; Various functions. ;; Various functions.
(defun font-lock-compile-keywords (keywords &optional regexp) (defun font-lock-compile-keywords (keywords &optional syntactic-keywords)
"Compile KEYWORDS into the form (t KEYWORDS COMPILED...) "Compile KEYWORDS into the form (t KEYWORDS COMPILED...)
Here each COMPILED is of the form (MATCHER HIGHLIGHT ...) as shown in the Here each COMPILED is of the form (MATCHER HIGHLIGHT ...) as shown in the
`font-lock-keywords' doc string. `font-lock-keywords' doc string.
If REGEXP is non-nil, it means these keywords are used for If SYNTACTIC-KEYWORDS is non-nil, it means these keywords are used for
`font-lock-keywords' rather than for `font-lock-syntactic-keywords'." `font-lock-syntactic-keywords' rather than for `font-lock-keywords'."
(if (not font-lock-set-defaults) (if (not font-lock-set-defaults)
;; This should never happen. But some external packages sometimes ;; This should never happen. But some external packages sometimes
;; call font-lock in unexpected and incorrect ways. It's important to ;; call font-lock in unexpected and incorrect ways. It's important to
@ -1644,10 +1658,12 @@ If REGEXP is non-nil, it means these keywords are used for
(setq keywords (setq keywords
(cons t (cons keywords (cons t (cons keywords
(mapcar 'font-lock-compile-keyword keywords)))) (mapcar 'font-lock-compile-keyword keywords))))
(if (and regexp (if (and (not syntactic-keywords)
(eq (or syntax-begin-function (let ((beg-function
font-lock-beginning-of-syntax-function) (or font-lock-beginning-of-syntax-function
'beginning-of-defun) syntax-begin-function)))
(or (eq beg-function 'beginning-of-defun)
(get beg-function 'font-lock-syntax-paren-check)))
(not beginning-of-defun-function)) (not beginning-of-defun-function))
;; Try to detect when a string or comment contains something that ;; Try to detect when a string or comment contains something that
;; looks like a defun and would thus confuse font-lock. ;; looks like a defun and would thus confuse font-lock.
@ -1774,7 +1790,7 @@ Sets various variables using `font-lock-defaults' (or, if nil, using
;; Now compile the keywords. ;; Now compile the keywords.
(unless (eq (car font-lock-keywords) t) (unless (eq (car font-lock-keywords) t)
(setq font-lock-keywords (setq font-lock-keywords
(font-lock-compile-keywords font-lock-keywords t)))))) (font-lock-compile-keywords font-lock-keywords))))))
;;; Colour etc. support. ;;; Colour etc. support.

View file

@ -771,7 +771,7 @@ the user during startup."
(nreverse frame-initial-geometry-arguments)) (nreverse frame-initial-geometry-arguments))
(cdr param-list)) (cdr param-list))
(defcustom focus-follows-mouse t (defcustom focus-follows-mouse (not (eq window-system 'mac))
"*Non-nil if window system changes focus when you move the mouse. "*Non-nil if window system changes focus when you move the mouse.
You should set this variable to tell Emacs how your window manager You should set this variable to tell Emacs how your window manager
handles focus, since there is no way in general for Emacs to find out handles focus, since there is no way in general for Emacs to find out
@ -1192,17 +1192,43 @@ For character terminals, each character counts as a single pixel."
(t (t
(frame-width (if (framep display) display (selected-frame))))))) (frame-width (if (framep display) display (selected-frame)))))))
(defcustom display-mm-dimensions-alist nil
"Alist for specifying screen dimensions in millimeters.
The dimensions will be used for `display-mm-height' and
`display-mm-width' if defined for the respective display.
Each element of the alist has the form (display . (width . height)),
e.g. (\":0.0\" . (287 . 215)).
If `display' equals t, it specifies dimensions for all graphical
displays not explicitely specified."
:version "22.1"
:type '(alist :key-type (choice (string :tag "Display name")
(const :tag "Default" t))
:value-type (cons :tag "Dimensions"
(integer :tag "Width")
(integer :tag "Height")))
:group 'frames)
(defun display-mm-height (&optional display) (defun display-mm-height (&optional display)
"Return the height of DISPLAY's screen in millimeters. "Return the height of DISPLAY's screen in millimeters.
System values can be overriden by `display-mm-dimensions-alist'.
If the information is unavailable, value is nil." If the information is unavailable, value is nil."
(and (memq (framep-on-display display) '(x w32 mac)) (and (memq (framep-on-display display) '(x w32 mac))
(x-display-mm-height display))) (or (cddr (assoc (or display (frame-parameter nil 'display))
display-mm-dimensions-alist))
(cddr (assoc t display-mm-dimensions-alist))
(x-display-mm-height display))))
(defun display-mm-width (&optional display) (defun display-mm-width (&optional display)
"Return the width of DISPLAY's screen in millimeters. "Return the width of DISPLAY's screen in millimeters.
System values can be overriden by `display-mm-dimensions-alist'.
If the information is unavailable, value is nil." If the information is unavailable, value is nil."
(and (memq (framep-on-display display) '(x w32 mac)) (and (memq (framep-on-display display) '(x w32 mac))
(x-display-mm-width display))) (or (cadr (assoc (or display (frame-parameter nil 'display))
display-mm-dimensions-alist))
(cadr (assoc t display-mm-dimensions-alist))
(x-display-mm-width display))))
(defun display-backing-store (&optional display) (defun display-backing-store (&optional display)
"Return the backing store capability of DISPLAY's screen. "Return the backing store capability of DISPLAY's screen.

View file

@ -1,3 +1,122 @@
2006-10-04 Reiner Steib <Reiner.Steib@gmx.de>
* gnus-sum.el (gnus-summary-make-menu-bar): Clarify
gnus-summary-limit-to-articles.
2006-10-04 Romain Francoise <romain@orebokech.com>
* gnus-util.el (gnus-alist-to-hashtable, gnus-hashtable-to-alist):
Moved here (and renamed) from gnus-registry.el.
* gnus-registry.el: Require gnus-util.
Use `gnus-alist-to-hashtable' and `gnus-hashtable-to-alist'.
2006-10-04 Reiner Steib <Reiner.Steib@gmx.de>
* pop3.el (pop3-authentication-scheme): Clarify doc.
(pop3-movemail): Warn about pop3-leave-mail-on-server.
2006-10-04 Dave Love <fx@gnu.org>
* pop3.el (pop3-authentication-scheme): Add custom version.
2006-10-04 Jesper Harder <harder@ifa.au.dk>
* pop3.el (pop3-leave-mail-on-server): Don't quote nil in
doc string. Improve doc string.
2006-10-03 Katsumi Yamaoka <yamaoka@jpl.org>
* gnus-util.el (gnus-with-local-quit): New macro.
* gnus-demon.el (gnus-demon): Replace with-local-quit with it.
2006-09-28 Reiner Steib <Reiner.Steib@gmx.de>
* gmm-utils.el (gmm): Adjust custom version.
* mm-util.el (mm-charset-override-alist, mm-charset-eval-alist): Adjust
custom version.
* gnus-draft.el (gnus-draft-mode): Don't call `mml-mode'.
2006-09-25 Chong Yidong <cyd@stupidchicken.com>
* gnus-demon.el (gnus-demon): Use with-local-quit to avoid hangs.
2006-09-19 Andreas Seltenreich <uwi7@rz.uni-karlsruhe.de>
* nnslashdot.el (nnslashdot-request-article): Update end-of-article
regexp. Articles containing quotation were cut prematurely.
2006-09-16 Katsumi Yamaoka <yamaoka@jpl.org>
* message.el (message-cite-original-without-signature): Use nobody by
default for the value of From header.
(message-cite-original): Ditto.
(message-reply): Ditto.
2006-09-09 Reiner Steib <Reiner.Steib@gmx.de>
* pop3.el (pop3-leave-mail-on-server): Mention problem of duplicate
mails in the doc string. Add some URLs in comment.
2006-09-07 Katsumi Yamaoka <yamaoka@jpl.org>
* rfc2047.el (rfc2047-quote-special-characters-in-quoted-strings): Fix
backslashes handling and the way to find boundaries of quoted strings.
2006-09-06 Reiner Steib <Reiner.Steib@gmx.de>
* gnus-art.el (gnus-button-regexp, gnus-button-marker-list)
(gnus-button-last): Move up. Convert comments into doc strings.
2006-09-04 Chong Yidong <cyd@stupidchicken.com>
* message.el (message-send-mail-with-sendmail): Look for sendmail in
several common directories.
2006-09-04 Katsumi Yamaoka <yamaoka@jpl.org>
* gnus-art.el (article-decode-encoded-words): Make it fast.
2006-09-04 Katsumi Yamaoka <yamaoka@jpl.org>
* gnus-art.el (article-decode-encoded-words): Don't infloop in XEmacs.
* rfc2047.el (rfc2047-strip-backslashes-in-quoted-strings): Decode `\\'
in quoted string into `\'.
2006-09-01 Katsumi Yamaoka <yamaoka@jpl.org>
* rfc2047.el (rfc2047-quote-special-characters-in-quoted-strings):
Use standard-syntax-table.
2006-09-01 Katsumi Yamaoka <yamaoka@jpl.org>
* gnus-art.el (gnus-decode-address-function): New variable.
(article-decode-encoded-words): Use it to decode headers which are
assumed to contain addresses.
(gnus-mime-delete-part): Remove useless `or'.
* gnus-sum.el (gnus-decode-encoded-address-function): New variable.
(gnus-summary-from-or-to-or-newsgroups): Use it to decode To header.
(gnus-nov-parse-line): Use it to decode From header.
(gnus-get-newsgroup-headers): Ditto.
(gnus-summary-enter-digest-group): Use it to decode `to-address'.
* mail-parse.el (mail-decode-encoded-address-region): New alias.
(mail-decode-encoded-address-string): New alias.
* rfc2047.el (rfc2047-quote-special-characters-in-quoted-strings):
New function.
(rfc2047-encode-message-header, rfc2047-encode-region): Use it.
(rfc2047-strip-backslashes-in-quoted-strings): New fnction.
(rfc2047-decode-region): Use it; add optional argument `address-mime'.
(rfc2047-decode-string): Ditto.
(rfc2047-decode-address-region): New function.
(rfc2047-decode-address-string): New function.
2006-08-23 Andreas Seltenreich <uwi7@rz.uni-karlsruhe.de> 2006-08-23 Andreas Seltenreich <uwi7@rz.uni-karlsruhe.de>
[ Backported bug fix from No Gnus. ] [ Backported bug fix from No Gnus. ]
@ -389,10 +508,6 @@
* gnus-sum.el (gnus-get-newsgroup-headers-xover): Group is an * gnus-sum.el (gnus-get-newsgroup-headers-xover): Group is an
optional parameter. optional parameter.
2006-04-07 Reiner Steib <Reiner.Steib@gmx.de>
* pgg-gpg.el: Revert to revision 7.15 to allow the use of gpg-agent.
2006-04-06 Reiner Steib <Reiner.Steib@gmx.de> 2006-04-06 Reiner Steib <Reiner.Steib@gmx.de>
* gnus-fun.el (gnus): Require it for gnus-directory. * gnus-fun.el (gnus): Require it for gnus-directory.
@ -1191,7 +1306,7 @@
as a buffer-local variable. This avoids creating truncated as a buffer-local variable. This avoids creating truncated
dribble files as a result of a hang up, eg. dribble files as a result of a hang up, eg.
2005-11-04 Ken Manheimer <ken.manheimer@gmail.com> 2005-11-04 Ken Manheimer <ken.manheimer@gmail.com>
* pgg-pgp.el (pgg-pgp-encrypt-region, pgg-pgp-decrypt-region) * pgg-pgp.el (pgg-pgp-encrypt-region, pgg-pgp-decrypt-region)
(pgg-pgp-encrypt-symmetric-region, pgg-pgp-encrypt-symmetric) (pgg-pgp-encrypt-symmetric-region, pgg-pgp-encrypt-symmetric)
@ -2826,7 +2941,7 @@
* gnus.el (gnus-group-startup-message): Search for gnus images in * gnus.el (gnus-group-startup-message): Search for gnus images in
etc/images/gnus. etc/images/gnus.
* mm-util.el (mm-find-charset-region): Likewise. * mm-util.el (mm-image-load-path): Likewise.
* smiley.el (smiley-data-directory): Search for smilies in * smiley.el (smiley-data-directory): Search for smilies in
etc/images/smilies. etc/images/smilies.
@ -3935,7 +4050,7 @@
* gnus-sum.el (gnus-summary-insert-subject): Remove list identifiers. * gnus-sum.el (gnus-summary-insert-subject): Remove list identifiers.
2004-09-03 Hiroshi Fujishima <pooh@nature.tsukuba.ac.jp> (tiny change) 2004-09-03 Hiroshi Fujishima <pooh@nature.tsukuba.ac.jp> (tiny change)
* spam-stat.el (spam-stat-reduce-size): Set spam-stat-dirty. * spam-stat.el (spam-stat-reduce-size): Set spam-stat-dirty.
(spam-stat-save): Accept prefix argument. (spam-stat-save): Accept prefix argument.
@ -4082,17 +4197,17 @@
* gnus-sum.el (gnus-newsgroup-variables): Doc fix. * gnus-sum.el (gnus-newsgroup-variables): Doc fix.
2004-08-26 YAGI Tatsuya <ynyaaa@ybb.ne.jp> (tiny change) 2004-08-26 YAGI Tatsuya <ynyaaa@ybb.ne.jp> (tiny change)
* gnus-art.el (gnus-article-next-page): Fix the way to find a real * gnus-art.el (gnus-article-next-page): Fix the way to find a real
end-of-buffer. end-of-buffer.
2004-08-26 Stefan Wiens <s.wi@gmx.net> (tiny change) 2004-08-26 Stefan Wiens <s.wi@gmx.net> (tiny change)
* gnus-sum.el (gnus-read-header): Don't remove a header for the * gnus-sum.el (gnus-read-header): Don't remove a header for the
parent article of a sparse article in the thread hashtb. parent article of a sparse article in the thread hashtb.
2004-08-26 David Hedbor <dhedbor@real.com> (tiny change) 2004-08-26 David Hedbor <dhedbor@real.com> (tiny change)
* nnmail.el (nnmail-split-lowercase-expanded): New user option. * nnmail.el (nnmail-split-lowercase-expanded): New user option.
(nnmail-expand-newtext): Lowercase expanded entries if (nnmail-expand-newtext): Lowercase expanded entries if
@ -4288,7 +4403,7 @@
* gnus-msg.el (gnus-summary-followup-with-original): * gnus-msg.el (gnus-summary-followup-with-original):
Document yanking of region when active. Document yanking of region when active.
2004-04-13 Kevin Greiner <kgreiner@xpediantsolutions.com> 2004-04-13 Kevin Greiner <kgreiner@xpediantsolutions.com>
* gnus-agent.el: Merged 7.3 through 7.7 updates into branch. * gnus-agent.el: Merged 7.3 through 7.7 updates into branch.
Revision 7.2 changes excluded to maintain compatibility with all Revision 7.2 changes excluded to maintain compatibility with all

File diff suppressed because it is too large Load diff

View file

@ -35,7 +35,7 @@
(defgroup gmm nil (defgroup gmm nil
"Utility functions for Gnus, Message and MML" "Utility functions for Gnus, Message and MML"
:prefix "gmm-" :prefix "gmm-"
:version "23.0" ;; No Gnus :version "22.1" ;; Gnus 5.10.9
:group 'lisp) :group 'lisp)
;; Helper functions from `gnus-utils.el': gmm-verbose, gmm-message, gmm-error ;; Helper functions from `gnus-utils.el': gmm-verbose, gmm-message, gmm-error

View file

@ -853,6 +853,9 @@ be displayed by the first non-nil matching CONTENT face."
(defvar gnus-decode-header-function 'mail-decode-encoded-word-region (defvar gnus-decode-header-function 'mail-decode-encoded-word-region
"Function used to decode headers.") "Function used to decode headers.")
(defvar gnus-decode-address-function 'mail-decode-encoded-address-region
"Function used to decode addresses.")
(defvar gnus-article-dumbquotes-map (defvar gnus-article-dumbquotes-map
'(("\200" "EUR") '(("\200" "EUR")
("\202" ",") ("\202" ",")
@ -2377,10 +2380,24 @@ If PROMPT (the prefix), prompt for a coding system to use."
(set-buffer gnus-summary-buffer) (set-buffer gnus-summary-buffer)
(error)) (error))
gnus-newsgroup-ignored-charsets)) gnus-newsgroup-ignored-charsets))
(inhibit-read-only t)) (inhibit-read-only t)
(save-restriction end start)
(article-narrow-to-head) (goto-char (point-min))
(funcall gnus-decode-header-function (point-min) (point-max))))) (when (search-forward "\n\n" nil 'move)
(forward-line -1))
(setq end (point))
(while (not (bobp))
(while (progn
(forward-line -1)
(and (not (bobp))
(memq (char-after) '(?\t ? )))))
(setq start (point))
(if (looking-at "\
\\(?:Resent-\\)?\\(?:From\\|Cc\\|To\\|Bcc\\|\\(?:In-\\)?Reply-To\\|Sender\
\\|Mail-Followup-To\\|Mail-Copies-To\\|Approved\\):")
(funcall gnus-decode-address-function start end)
(funcall gnus-decode-header-function start end))
(goto-char (setq end start)))))
(defun article-decode-group-name () (defun article-decode-group-name ()
"Decode group names in `Newsgroups:'." "Decode group names in `Newsgroups:'."
@ -3923,6 +3940,14 @@ commands:
(mm-enable-multibyte) (mm-enable-multibyte)
(gnus-run-mode-hooks 'gnus-article-mode-hook)) (gnus-run-mode-hooks 'gnus-article-mode-hook))
;; Internal variables. Are `gnus-button-regexp' and `gnus-button-last' used
;; at all?
(defvar gnus-button-regexp nil)
(defvar gnus-button-marker-list nil
"Regexp matching any of the regexps from `gnus-button-alist'.")
(defvar gnus-button-last nil
"The value of `gnus-button-alist' when `gnus-button-regexp' was build.")
(defun gnus-article-setup-buffer () (defun gnus-article-setup-buffer ()
"Initialize the article buffer." "Initialize the article buffer."
(let* ((name (if gnus-single-article-buffer "*Article*" (let* ((name (if gnus-single-article-buffer "*Article*"
@ -4324,9 +4349,8 @@ Deleting parts may malfunction or destroy the article; continue? ")
(handles gnus-article-mime-handles) (handles gnus-article-mime-handles)
(none "(none)") (none "(none)")
(description (description
(or (mail-decode-encoded-word-string (or (mm-handle-description data)
(mail-decode-encoded-word-string (or (mm-handle-description data) none)))
none))))
(filename (filename
(or (mail-content-type-get (mm-handle-disposition data) 'filename) (or (mail-content-type-get (mm-handle-disposition data) 'filename)
none)) none))
@ -6695,13 +6719,6 @@ HEADER is a regexp to match a header. For a fuller explanation, see
:inline t :inline t
(integer :tag "Regexp group"))))) (integer :tag "Regexp group")))))
(defvar gnus-button-regexp nil)
(defvar gnus-button-marker-list nil)
;; Regexp matching any of the regexps from `gnus-button-alist'.
(defvar gnus-button-last nil)
;; The value of `gnus-button-alist' when `gnus-button-regexp' was build.
;;; Commands: ;;; Commands:
(defun gnus-article-push-button (event) (defun gnus-article-push-button (event)

View file

@ -218,7 +218,7 @@ time Emacs has been idle for IDLE `gnus-demon-timestep's."
(< idle gnus-demon-idle-time)) ; Idle timed out. (< idle gnus-demon-idle-time)) ; Idle timed out.
(t (< 0 gnus-demon-idle-time)))) ; Or just need to be idle. (t (< 0 gnus-demon-idle-time)))) ; Or just need to be idle.
;; So we call the handler. ;; So we call the handler.
(progn (gnus-with-local-quit
(ignore-errors (funcall (car handler))) (ignore-errors (funcall (car handler)))
;; And reset the timer. ;; And reset the timer.
(setcar (nthcdr 1 handler) (setcar (nthcdr 1 handler)
@ -232,14 +232,15 @@ time Emacs has been idle for IDLE `gnus-demon-timestep's."
(gnus-demon-is-idle-p)) (gnus-demon-is-idle-p))
;; We want to call this handler each and every time that ;; We want to call this handler each and every time that
;; Emacs is idle. ;; Emacs is idle.
(ignore-errors (funcall (car handler)))) (gnus-with-local-quit
(ignore-errors (funcall (car handler)))))
(t (t
;; We want to call this handler only if Emacs has been idle ;; We want to call this handler only if Emacs has been idle
;; for a specified number of timesteps. ;; for a specified number of timesteps.
(and (not (memq (car handler) gnus-demon-idle-has-been-called)) (and (not (memq (car handler) gnus-demon-idle-has-been-called))
(< idle gnus-demon-idle-time) (< idle gnus-demon-idle-time)
(gnus-demon-is-idle-p) (gnus-demon-is-idle-p)
(progn (gnus-with-local-quit
(ignore-errors (funcall (car handler))) (ignore-errors (funcall (car handler)))
;; Make sure the handler won't be called once more in ;; Make sure the handler won't be called once more in
;; this idle-cycle. ;; this idle-cycle.

View file

@ -76,7 +76,6 @@
(when (gnus-visual-p 'draft-menu 'menu) (when (gnus-visual-p 'draft-menu 'menu)
(gnus-draft-make-menu-bar)) (gnus-draft-make-menu-bar))
(gnus-add-minor-mode 'gnus-draft-mode " Draft" gnus-draft-mode-map) (gnus-add-minor-mode 'gnus-draft-mode " Draft" gnus-draft-mode-map)
(mml-mode)
(gnus-run-hooks 'gnus-draft-mode-hook)))) (gnus-run-hooks 'gnus-draft-mode-hook))))
;;; Commands ;;; Commands

View file

@ -60,6 +60,7 @@
(require 'gnus) (require 'gnus)
(require 'gnus-int) (require 'gnus-int)
(require 'gnus-sum) (require 'gnus-sum)
(require 'gnus-util)
(require 'nnmail) (require 'nnmail)
(defvar gnus-registry-dirty t (defvar gnus-registry-dirty t
@ -243,7 +244,8 @@ way."
(gnus-registry-clean-empty-function)) (gnus-registry-clean-empty-function))
;; now trim the registry appropriately ;; now trim the registry appropriately
(setq gnus-registry-alist (gnus-registry-trim (setq gnus-registry-alist (gnus-registry-trim
(hashtable-to-alist gnus-registry-hashtb))) (gnus-hashtable-to-alist
gnus-registry-hashtb)))
;; really save ;; really save
(gnus-registry-cache-save) (gnus-registry-cache-save)
(setq gnus-registry-entry-caching caching) (setq gnus-registry-entry-caching caching)
@ -262,7 +264,7 @@ way."
(defun gnus-registry-read () (defun gnus-registry-read ()
(gnus-registry-cache-read) (gnus-registry-cache-read)
(setq gnus-registry-hashtb (alist-to-hashtable gnus-registry-alist)) (setq gnus-registry-hashtb (gnus-alist-to-hashtable gnus-registry-alist))
(setq gnus-registry-dirty nil)) (setq gnus-registry-dirty nil))
(defun gnus-registry-trim (alist) (defun gnus-registry-trim (alist)
@ -290,26 +292,6 @@ way."
(cdr (gethash (car a) timehash)) (cdr (gethash (car a) timehash))
(cdr (gethash (car b) timehash)))))))))) (cdr (gethash (car b) timehash))))))))))
(defun alist-to-hashtable (alist)
"Build a hashtable from the values in ALIST."
(let ((ht (make-hash-table
:size 4096
:test 'equal)))
(mapc
(lambda (kv-pair)
(puthash (car kv-pair) (cdr kv-pair) ht))
alist)
ht))
(defun hashtable-to-alist (hash)
"Build an alist from the values in HASH."
(let ((list nil))
(maphash
(lambda (key value)
(setq list (cons (cons key value) list)))
hash)
list))
(defun gnus-registry-action (action data-header from &optional to method) (defun gnus-registry-action (action data-header from &optional to method)
(let* ((id (mail-header-id data-header)) (let* ((id (mail-header-id data-header))
(subject (gnus-registry-simplify-subject (subject (gnus-registry-simplify-subject
@ -660,7 +642,7 @@ Returns the first place where the trail finds a group name."
"Clear the Gnus registry." "Clear the Gnus registry."
(interactive) (interactive)
(setq gnus-registry-alist nil) (setq gnus-registry-alist nil)
(setq gnus-registry-hashtb (alist-to-hashtable gnus-registry-alist)) (setq gnus-registry-hashtb (gnus-alist-to-hashtable gnus-registry-alist))
(setq gnus-registry-dirty t)) (setq gnus-registry-dirty t))
;;;###autoload ;;;###autoload

View file

@ -992,7 +992,11 @@ which it may alter in any way."
:group 'gnus-summary) :group 'gnus-summary)
(defvar gnus-decode-encoded-word-function 'mail-decode-encoded-word-string (defvar gnus-decode-encoded-word-function 'mail-decode-encoded-word-string
"Variable that says which function should be used to decode a string with encoded words.") "Function used to decode a string with encoded words.")
(defvar gnus-decode-encoded-address-function
'mail-decode-encoded-address-string
"Function used to decode addresses with encoded words.")
(defcustom gnus-extra-headers '(To Newsgroups) (defcustom gnus-extra-headers '(To Newsgroups)
"*Extra headers to parse." "*Extra headers to parse."
@ -1001,7 +1005,7 @@ which it may alter in any way."
:type '(repeat symbol)) :type '(repeat symbol))
(defcustom gnus-ignored-from-addresses (defcustom gnus-ignored-from-addresses
(and user-mail-address (and user-mail-address
(not (string= user-mail-address "")) (not (string= user-mail-address ""))
(regexp-quote user-mail-address)) (regexp-quote user-mail-address))
"*Regexp of From headers that may be suppressed in favor of To headers." "*Regexp of From headers that may be suppressed in favor of To headers."
@ -2434,7 +2438,7 @@ gnus-summary-show-article-from-menu-as-charset-%s" cs))))
["Unread" gnus-summary-limit-to-unread t] ["Unread" gnus-summary-limit-to-unread t]
["Unseen" gnus-summary-limit-to-unseen t] ["Unseen" gnus-summary-limit-to-unseen t]
["Non-dormant" gnus-summary-limit-exclude-dormant t] ["Non-dormant" gnus-summary-limit-exclude-dormant t]
["Next articles" gnus-summary-limit-to-articles t] ["Next or process marked articles" gnus-summary-limit-to-articles t]
["Pop limit" gnus-summary-pop-limit t] ["Pop limit" gnus-summary-pop-limit t]
["Show dormant" gnus-summary-limit-include-dormant t] ["Show dormant" gnus-summary-limit-include-dormant t]
["Hide childless dormant" ["Hide childless dormant"
@ -3436,7 +3440,7 @@ buffer that was in action when the last article was fetched."
(concat "-> " (concat "-> "
(inline (inline
(gnus-summary-extract-address-component (gnus-summary-extract-address-component
(funcall gnus-decode-encoded-word-function to))))) (funcall gnus-decode-encoded-address-function to)))))
((setq newsgroups (cdr (assq 'Newsgroups extra-headers))) ((setq newsgroups (cdr (assq 'Newsgroups extra-headers)))
(concat "=> " newsgroups))))) (concat "=> " newsgroups)))))
(inline (gnus-summary-extract-address-component gnus-tmp-from))))) (inline (gnus-summary-extract-address-component gnus-tmp-from)))))
@ -4182,7 +4186,7 @@ Returns HEADER if it was entered in the DEPENDENCIES. Returns nil otherwise."
(error x)) (error x))
(condition-case () ; from (condition-case () ; from
(gnus-remove-odd-characters (gnus-remove-odd-characters
(funcall gnus-decode-encoded-word-function (funcall gnus-decode-encoded-address-function
(setq x (nnheader-nov-field)))) (setq x (nnheader-nov-field))))
(error x)) (error x))
(nnheader-nov-field) ; date (nnheader-nov-field) ; date
@ -5956,7 +5960,7 @@ The resulting hash table is returned, or nil if no Xrefs were found."
(progn (progn
(goto-char p) (goto-char p)
(if (search-forward "\nfrom:" nil t) (if (search-forward "\nfrom:" nil t)
(funcall gnus-decode-encoded-word-function (funcall gnus-decode-encoded-address-function
(nnheader-header-value)) (nnheader-header-value))
"(nobody)")) "(nobody)"))
;; Date. ;; Date.
@ -8449,10 +8453,11 @@ to guess what the document format is."
;; the parent article. ;; the parent article.
(when (setq to-address (or (gnus-fetch-field "reply-to") (when (setq to-address (or (gnus-fetch-field "reply-to")
(gnus-fetch-field "from"))) (gnus-fetch-field "from")))
(setq params (append (setq params
(list (cons 'to-address (append
(funcall gnus-decode-encoded-word-function (list (cons 'to-address
to-address)))))) (funcall gnus-decode-encoded-address-function
to-address))))))
(setq dig (nnheader-set-temp-buffer " *gnus digest buffer*")) (setq dig (nnheader-set-temp-buffer " *gnus digest buffer*"))
(insert-buffer-substring gnus-original-article-buffer) (insert-buffer-substring gnus-original-article-buffer)
;; Remove lines that may lead nndoc to misinterpret the ;; Remove lines that may lead nndoc to misinterpret the

View file

@ -746,6 +746,28 @@ If there's no subdirectory, delete DIRECTORY as well."
(unless dir (unless dir
(delete-directory directory))))) (delete-directory directory)))))
;; The following two functions are used in gnus-registry.
;; They were contributed by Andreas Fuchs <asf@void.at>.
(defun gnus-alist-to-hashtable (alist)
"Build a hashtable from the values in ALIST."
(let ((ht (make-hash-table
:size 4096
:test 'equal)))
(mapc
(lambda (kv-pair)
(puthash (car kv-pair) (cdr kv-pair) ht))
alist)
ht))
(defun gnus-hashtable-to-alist (hash)
"Build an alist from the values in HASH."
(let ((list nil))
(maphash
(lambda (key value)
(setq list (cons (cons key value) list)))
hash)
list))
(defun gnus-strip-whitespace (string) (defun gnus-strip-whitespace (string)
"Return STRING stripped of all whitespace." "Return STRING stripped of all whitespace."
(while (string-match "[\r\n\t ]+" string) (while (string-match "[\r\n\t ]+" string)
@ -1616,6 +1638,25 @@ empty directories from OLD-PATH."
(defalias 'gnus-set-process-query-on-exit-flag (defalias 'gnus-set-process-query-on-exit-flag
'process-kill-without-query)) 'process-kill-without-query))
(if (fboundp 'with-local-quit)
(defalias 'gnus-with-local-quit 'with-local-quit)
(defmacro gnus-with-local-quit (&rest body)
"Execute BODY, allowing quits to terminate BODY but not escape further.
When a quit terminates BODY, `gnus-with-local-quit' returns nil but
requests another quit. That quit will be processed as soon as quitting
is allowed once again. (Immediately, if `inhibit-quit' is nil.)"
;;(declare (debug t) (indent 0))
`(condition-case nil
(let ((inhibit-quit nil))
,@body)
(quit (setq quit-flag t)
;; This call is to give a chance to handle quit-flag
;; in case inhibit-quit is nil.
;; Without this, it will not be handled until the next function
;; call, and that might allow it to exit thru a condition-case
;; that intends to handle the quit signal next time.
(eval '(ignore nil))))))
(provide 'gnus-util) (provide 'gnus-util)
;;; arch-tag: f94991af-d32b-4c97-8c26-ca12a934de49 ;;; arch-tag: f94991af-d32b-4c97-8c26-ca12a934de49

View file

@ -70,6 +70,8 @@
(defalias 'mail-encode-encoded-word-string 'rfc2047-encode-string) (defalias 'mail-encode-encoded-word-string 'rfc2047-encode-string)
(defalias 'mail-decode-encoded-word-region 'rfc2047-decode-region) (defalias 'mail-decode-encoded-word-region 'rfc2047-decode-region)
(defalias 'mail-decode-encoded-word-string 'rfc2047-decode-string) (defalias 'mail-decode-encoded-word-string 'rfc2047-decode-string)
(defalias 'mail-decode-encoded-address-region 'rfc2047-decode-address-region)
(defalias 'mail-decode-encoded-address-string 'rfc2047-decode-address-string)
(provide 'mail-parse) (provide 'mail-parse)

View file

@ -3280,7 +3280,7 @@ prefix, and don't delete any headers."
(message-narrow-to-head-1) (message-narrow-to-head-1)
(vector 0 (vector 0
(or (message-fetch-field "subject") "none") (or (message-fetch-field "subject") "none")
(message-fetch-field "from") (or (message-fetch-field "from") "nobody")
(message-fetch-field "date") (message-fetch-field "date")
(message-fetch-field "message-id" t) (message-fetch-field "message-id" t)
(message-fetch-field "references") (message-fetch-field "references")
@ -3329,7 +3329,7 @@ prefix, and don't delete any headers."
(message-narrow-to-head-1) (message-narrow-to-head-1)
(vector 0 (vector 0
(or (message-fetch-field "subject") "none") (or (message-fetch-field "subject") "none")
(message-fetch-field "from") (or (message-fetch-field "from") "nobody")
(message-fetch-field "date") (message-fetch-field "date")
(message-fetch-field "message-id" t) (message-fetch-field "message-id" t)
(message-fetch-field "references") (message-fetch-field "references")
@ -3897,9 +3897,15 @@ If you always want Gnus to send messages in one piece, set
'call-process-region 'call-process-region
(append (append
(list (point-min) (point-max) (list (point-min) (point-max)
(if (boundp 'sendmail-program) (cond ((boundp 'sendmail-program)
sendmail-program sendmail-program)
"/usr/lib/sendmail") ((file-exists-p "/usr/sbin/sendmail")
"/usr/sbin/sendmail")
((file-exists-p "/usr/lib/sendmail")
"/usr/lib/sendmail")
((file-exists-p "/usr/ucblib/sendmail")
"/usr/ucblib/sendmail")
(t "fakemail"))
nil errbuf nil "-oi") nil errbuf nil "-oi")
;; Always specify who from, ;; Always specify who from,
;; since some systems have broken sendmails. ;; since some systems have broken sendmails.
@ -5837,7 +5843,7 @@ want to get rid of this query permanently.")))
(setq message-id (message-fetch-field "message-id" t) (setq message-id (message-fetch-field "message-id" t)
references (message-fetch-field "references") references (message-fetch-field "references")
date (message-fetch-field "date") date (message-fetch-field "date")
from (message-fetch-field "from") from (or (message-fetch-field "from") "nobody")
subject (or (message-fetch-field "subject") "none")) subject (or (message-fetch-field "subject") "none"))
(when gnus-list-identifiers (when gnus-list-identifiers
(setq subject (message-strip-list-identifiers subject))) (setq subject (message-strip-list-identifiers subject)))

View file

@ -253,7 +253,7 @@ superset of iso-8859-1."
:tag "Other options" :tag "Other options"
(cons (symbol :tag "From charset") (cons (symbol :tag "From charset")
(symbol :tag "To charset")))) (symbol :tag "To charset"))))
:version "23.0" ;; No Gnus :version "22.1" ;; Gnus 5.10.9
:group 'mime) :group 'mime)
(defcustom mm-charset-eval-alist (defcustom mm-charset-eval-alist
@ -270,7 +270,7 @@ If an article is encoded in an unknown CHARSET, FORM is
evaluated. This allows to load additional libraries providing evaluated. This allows to load additional libraries providing
charsets on demand. If supported by your Emacs version, you charsets on demand. If supported by your Emacs version, you
could use `autoload-coding-system' here." could use `autoload-coding-system' here."
:version "23.0" ;; No Gnus :version "22.1" ;; Gnus 5.10.9
:type '(list (set :inline t :type '(list (set :inline t
(const (windows-1250 . (mm-codepage-setup 1250 t))) (const (windows-1250 . (mm-codepage-setup 1250 t)))
(const (windows-1251 . (mm-codepage-setup 1251 t))) (const (windows-1251 . (mm-codepage-setup 1251 t)))

View file

@ -258,7 +258,9 @@
(setq contents (setq contents
(buffer-substring (buffer-substring
(search-forward "<div class=\"commentBody\">") (search-forward "<div class=\"commentBody\">")
(search-forward "</div>"))))))) (progn
(search-forward "<div class=\"commentSub\">")
(match-beginning 0))))))))
(search-failed (nnslashdot-lose why))) (search-failed (nnslashdot-lose why)))
(when contents (when contents

View file

@ -75,22 +75,26 @@
(defcustom pop3-authentication-scheme 'pass (defcustom pop3-authentication-scheme 'pass
"*POP3 authentication scheme. "*POP3 authentication scheme.
Defaults to 'pass, for the standard USER/PASS authentication. Other valid Defaults to `pass', for the standard USER/PASS authentication. The other
values are 'apop." valid value is 'apop'."
:version "22.1" ;; Oort Gnus :type '(choice (const :tag "Normal user/password" pass)
:type '(choice (const :tag "USER/PASS" pass)
(const :tag "APOP" apop)) (const :tag "APOP" apop))
:version "22.1" ;; Oort Gnus
:group 'pop3) :group 'pop3)
(defcustom pop3-leave-mail-on-server nil (defcustom pop3-leave-mail-on-server nil
"*Non-nil if the mail is to be left on the POP server after fetching. "*Non-nil if the mail is to be left on the POP server after fetching.
If the `pop3-leave-mail-on-server' is non-`nil' the mail is to be If `pop3-leave-mail-on-server' is non-nil the mail is to be left
left on the POP server after fetching. Note that POP servers on the POP server after fetching. Note that POP servers maintain
maintain no state information between sessions, so what the no state information between sessions, so what the client
client believes is there and what is actually there may not match believes is there and what is actually there may not match up.
up. If they do not, then the whole thing can fall apart and If they do not, then you may get duplicate mails or the whole
leave you with a corrupt mailbox." thing can fall apart and leave you with a corrupt mailbox."
;; We can't use the UILD support from XEmacs mail-lib or cvs.m17n.org:
;; http://thread.gmane.org/v9lld8fml4.fsf@marauder.physik.uni-ulm.de
;; http://thread.gmane.org/b9yy8hzy9ej.fsf@jpl.org
;; Any volunteer to re-implement this?
:version "22.1" ;; Oort Gnus :version "22.1" ;; Oort Gnus
:type 'boolean :type 'boolean
:group 'pop3) :group 'pop3)
@ -166,11 +170,14 @@ Shorter values mean quicker response, but are more CPU intensive.")
(unless pop3-leave-mail-on-server (unless pop3-leave-mail-on-server
(pop3-dele process n)) (pop3-dele process n))
(setq n (+ 1 n)) (setq n (+ 1 n))
(if pop3-debug (sit-for 1) (sit-for 0.1)) (if pop3-debug (sit-for 1) (sit-for 0.1))) ; why?
) (when (and pop3-leave-mail-on-server
(> n 1))
(message "pop3.el doesn't support UIDL. Setting `pop3-leave-mail-on-server'
to %s might not give the result you'd expect." pop3-leave-mail-on-server)
(sit-for 1))
(pop3-quit process)) (pop3-quit process))
(kill-buffer crashbuf) (kill-buffer crashbuf))
)
t) t)
(defun pop3-get-message-count () (defun pop3-get-message-count ()
@ -312,6 +319,8 @@ If NOW, use that time instead."
;; Date: 08 Jul 1996 23:22:24 -0400 ;; Date: 08 Jul 1996 23:22:24 -0400
;; should be ;; should be
;; Tue Jul 9 09:04:21 1996 ;; Tue Jul 9 09:04:21 1996
;; Fixme: This should use timezone on the date field contents.
(setq date (setq date
(cond ((not date) (cond ((not date)
"Tue Jan 1 00:00:0 1900") "Tue Jan 1 00:00:0 1900")

View file

@ -171,6 +171,42 @@ This is either `base64' or `quoted-printable'."
(re-search-forward ":[ \t\n]*" nil t) (re-search-forward ":[ \t\n]*" nil t)
(buffer-substring-no-properties (point) (point-max))))) (buffer-substring-no-properties (point) (point-max)))))
(defun rfc2047-quote-special-characters-in-quoted-strings (&optional
encodable-regexp)
"Quote special characters with `\\'s in quoted strings.
Quoting will not be done in a quoted string if it contains characters
matching ENCODABLE-REGEXP."
(goto-char (point-min))
(let ((tspecials (concat "[" ietf-drums-tspecials "]"))
beg end)
(with-syntax-table (standard-syntax-table)
(while (search-forward "\"" nil t)
(setq beg (match-beginning 0))
(unless (eq (char-before beg) ?\\)
(goto-char beg)
(setq beg (1+ beg))
(condition-case nil
(progn
(forward-sexp)
(setq end (1- (point)))
(goto-char beg)
(if (and encodable-regexp
(re-search-forward encodable-regexp end t))
(goto-char (1+ end))
(save-restriction
(narrow-to-region beg end)
(while (re-search-forward tspecials nil 'move)
(if (eq (char-before) ?\\)
(if (looking-at tspecials) ;; Already quoted.
(forward-char)
(insert "\\"))
(goto-char (match-beginning 0))
(insert "\\")
(forward-char))))
(forward-char)))
(error
(goto-char beg))))))))
(defvar rfc2047-encoding-type 'address-mime (defvar rfc2047-encoding-type 'address-mime
"The type of encoding done by `rfc2047-encode-region'. "The type of encoding done by `rfc2047-encode-region'.
This should be dynamically bound around calls to This should be dynamically bound around calls to
@ -187,8 +223,18 @@ Should be called narrowed to the head of the message."
(while (not (eobp)) (while (not (eobp))
(save-restriction (save-restriction
(rfc2047-narrow-to-field) (rfc2047-narrow-to-field)
(setq method nil
alist rfc2047-header-encoding-alist)
(while (setq elem (pop alist))
(when (or (and (stringp (car elem))
(looking-at (car elem)))
(eq (car elem) t))
(setq alist nil
method (cdr elem))))
(if (not (rfc2047-encodable-p)) (if (not (rfc2047-encodable-p))
(prog1 (prog2
(when (eq method 'address-mime)
(rfc2047-quote-special-characters-in-quoted-strings))
(if (and (eq (mm-body-7-or-8) '8bit) (if (and (eq (mm-body-7-or-8) '8bit)
(mm-multibyte-p) (mm-multibyte-p)
(mm-coding-system-p (mm-coding-system-p
@ -209,14 +255,6 @@ Should be called narrowed to the head of the message."
(point)) (point))
(point-max)))) (point-max))))
;; We found something that may perhaps be encoded. ;; We found something that may perhaps be encoded.
(setq method nil
alist rfc2047-header-encoding-alist)
(while (setq elem (pop alist))
(when (or (and (stringp (car elem))
(looking-at (car elem)))
(eq (car elem) t))
(setq alist nil
method (cdr elem))))
(re-search-forward "^[^:]+: *" nil t) (re-search-forward "^[^:]+: *" nil t)
(cond (cond
((eq method 'address-mime) ((eq method 'address-mime)
@ -347,6 +385,7 @@ Dynamically bind `rfc2047-encoding-type' to change that."
(rfc2047-encode start (point)) (rfc2047-encode start (point))
(goto-char end)))) (goto-char end))))
;; `address-mime' case -- take care of quoted words, comments. ;; `address-mime' case -- take care of quoted words, comments.
(rfc2047-quote-special-characters-in-quoted-strings encodable-regexp)
(with-syntax-table rfc2047-syntax-table (with-syntax-table rfc2047-syntax-table
(goto-char (point-min)) (goto-char (point-min))
(condition-case err ; in case of unbalanced quotes (condition-case err ; in case of unbalanced quotes
@ -821,6 +860,29 @@ encoded-word, concatenate them, and decode it by charset. Otherwise,
the decoder will fully decode each encoded-word before concatenating the decoder will fully decode each encoded-word before concatenating
them.") them.")
(defun rfc2047-strip-backslashes-in-quoted-strings ()
"Strip backslashes in quoted strings. `\\\"' remains."
(goto-char (point-min))
(let (beg)
(with-syntax-table (standard-syntax-table)
(while (search-forward "\"" nil t)
(unless (eq (char-before) ?\\)
(setq beg (match-end 0))
(goto-char (match-beginning 0))
(condition-case nil
(progn
(forward-sexp)
(save-restriction
(narrow-to-region beg (1- (point)))
(goto-char beg)
(while (search-forward "\\" nil 'move)
(unless (memq (char-after) '(?\"))
(delete-backward-char 1))
(forward-char)))
(forward-char))
(error
(goto-char beg))))))))
(defun rfc2047-charset-to-coding-system (charset) (defun rfc2047-charset-to-coding-system (charset)
"Return coding-system corresponding to MIME CHARSET. "Return coding-system corresponding to MIME CHARSET.
If your Emacs implementation can't decode CHARSET, return nil." If your Emacs implementation can't decode CHARSET, return nil."
@ -898,8 +960,10 @@ ENCODED-WORD)."
;; and worthwhile (is it more correct or not?), e.g. something like ;; and worthwhile (is it more correct or not?), e.g. something like
;; `=?iso-8859-1?q?foo?=@'. ;; `=?iso-8859-1?q?foo?=@'.
(defun rfc2047-decode-region (start end) (defun rfc2047-decode-region (start end &optional address-mime)
"Decode MIME-encoded words in region between START and END." "Decode MIME-encoded words in region between START and END.
If ADDRESS-MIME is non-nil, strip backslashes which precede characters
other than `\"' and `\\' in quoted strings."
(interactive "r") (interactive "r")
(let ((case-fold-search t) (let ((case-fold-search t)
(eword-regexp (eval-when-compile (eword-regexp (eval-when-compile
@ -910,6 +974,8 @@ ENCODED-WORD)."
(save-excursion (save-excursion
(save-restriction (save-restriction
(narrow-to-region start end) (narrow-to-region start end)
(when address-mime
(rfc2047-strip-backslashes-in-quoted-strings))
(goto-char (setq b start)) (goto-char (setq b start))
;; Look for the encoded-words. ;; Look for the encoded-words.
(while (setq match (re-search-forward eword-regexp nil t)) (while (setq match (re-search-forward eword-regexp nil t))
@ -995,8 +1061,16 @@ ENCODED-WORD)."
(not (eq mail-parse-charset 'gnus-decoded))) (not (eq mail-parse-charset 'gnus-decoded)))
(mm-decode-coding-region b (point-max) mail-parse-charset)))))) (mm-decode-coding-region b (point-max) mail-parse-charset))))))
(defun rfc2047-decode-string (string) (defun rfc2047-decode-address-region (start end)
"Decode the quoted-printable-encoded STRING and return the results." "Decode MIME-encoded words in region between START and END.
Backslashes which precede characters other than `\"' and `\\' in quoted
strings are stripped."
(rfc2047-decode-region start end t))
(defun rfc2047-decode-string (string &optional address-mime)
"Decode MIME-encoded STRING and return the result.
If ADDRESS-MIME is non-nil, strip backslashes which precede characters
other than `\"' and `\\' in quoted strings."
(let ((m (mm-multibyte-p))) (let ((m (mm-multibyte-p)))
(if (string-match "=\\?" string) (if (string-match "=\\?" string)
(with-temp-buffer (with-temp-buffer
@ -1010,8 +1084,16 @@ ENCODED-WORD)."
(mm-enable-multibyte)) (mm-enable-multibyte))
(insert string) (insert string)
(inline (inline
(rfc2047-decode-region (point-min) (point-max))) (rfc2047-decode-region (point-min) (point-max) address-mime))
(buffer-string)) (buffer-string))
(when address-mime
(setq string
(with-temp-buffer
(when (mm-multibyte-string-p string)
(mm-enable-multibyte))
(insert string)
(rfc2047-strip-backslashes-in-quoted-strings)
(buffer-string))))
;; Fixme: As above, `m' here is inappropriate. ;; Fixme: As above, `m' here is inappropriate.
(if (and m (if (and m
mail-parse-charset mail-parse-charset
@ -1033,6 +1115,12 @@ ENCODED-WORD)."
(mm-decode-coding-string string mail-parse-charset)) (mm-decode-coding-string string mail-parse-charset))
(mm-string-as-multibyte string))))) (mm-string-as-multibyte string)))))
(defun rfc2047-decode-address-string (string)
"Decode MIME-encoded STRING and return the result.
Backslashes which precede characters other than `\"' and `\\' in quoted
strings are stripped."
(rfc2047-decode-string string t))
(defun rfc2047-pad-base64 (string) (defun rfc2047-pad-base64 (string)
"Pad STRING to quartets." "Pad STRING to quartets."
;; Be more liberal to accept buggy base64 strings. If ;; Be more liberal to accept buggy base64 strings. If

View file

@ -246,7 +246,7 @@ properties, to enable buffer local values."
(defun scan-buf-move-to-region (prop &optional arg hook) (defun scan-buf-move-to-region (prop &optional arg hook)
"Go to the start of the next region with non-nil PROP property. "Go to the start of the next region with non-nil PROP property.
Then run HOOK, which should be a quoted symbol that is a normal Then run HOOK, which should be a quoted symbol that is a normal
hook.variable, or an expression evaluating to such a symbol. hook variable, or an expression evaluating to such a symbol.
Adjacent areas with different non-nil PROP properties are Adjacent areas with different non-nil PROP properties are
considered different regions. considered different regions.

View file

@ -309,7 +309,7 @@ If that doesn't give a function, return nil."
The prefix described consists of all but the last event The prefix described consists of all but the last event
of the key sequence that ran this command." of the key sequence that ran this command."
(interactive) (interactive)
(let* ((key (this-command-keys))) (let ((key (this-command-keys)))
(describe-bindings (describe-bindings
(if (stringp key) (if (stringp key)
(substring key 0 (1- (length key))) (substring key 0 (1- (length key)))
@ -535,28 +535,6 @@ If INSERT (the prefix arg) is non-nil, insert the message in the buffer."
(princ string))))) (princ string)))))
nil) nil)
(defun string-key-binding (key)
"Value is the binding of KEY in a string.
If KEY is an event on a string, and that string has a `local-map'
or `keymap' property, return the binding of KEY in the string's keymap."
(let* ((defn nil)
(start (when (vectorp key)
(if (memq (aref key 0)
'(mode-line header-line left-margin right-margin))
(event-start (aref key 1))
(and (consp (aref key 0))
(event-start (aref key 0))))))
(string-info (and (consp start) (nth 4 start))))
(when string-info
(let* ((string (car string-info))
(pos (cdr string-info))
(local-map (and (>= pos 0)
(< pos (length string))
(or (get-text-property pos 'local-map string)
(get-text-property pos 'keymap string)))))
(setq defn (and local-map (lookup-key local-map key)))))
defn))
(defun help-key-description (key untranslated) (defun help-key-description (key untranslated)
(let ((string (key-description key))) (let ((string (key-description key)))
(if (or (not untranslated) (if (or (not untranslated)
@ -589,11 +567,14 @@ temporarily enables it to allow getting help on disabled items and buttons."
(menu-bar-update-yank-menu "(any string)" nil)) (menu-bar-update-yank-menu "(any string)" nil))
(setq key (read-key-sequence "Describe key (or click or menu item): ")) (setq key (read-key-sequence "Describe key (or click or menu item): "))
;; If KEY is a down-event, read and discard the ;; If KEY is a down-event, read and discard the
;; corresponding up-event. ;; corresponding up-event. Note that there are also
(if (and (vectorp key) ;; down-events on scroll bars and mode lines: the actual
(eventp (elt key 0)) ;; event then is in the second element of the vector.
(memq 'down (event-modifiers (elt key 0)))) (and (vectorp key)
(read-event)) (let ((last-idx (1- (length key))))
(and (eventp (aref key last-idx))
(memq 'down (event-modifiers (aref key last-idx)))))
(read-event))
(list (list
key key
(if current-prefix-arg (prefix-numeric-value current-prefix-arg)) (if current-prefix-arg (prefix-numeric-value current-prefix-arg))
@ -604,46 +585,33 @@ temporarily enables it to allow getting help on disabled items and buttons."
(fset 'yank-menu (cons 'keymap yank-menu)))))) (fset 'yank-menu (cons 'keymap yank-menu))))))
(if (numberp untranslated) (if (numberp untranslated)
(setq untranslated (this-single-command-raw-keys))) (setq untranslated (this-single-command-raw-keys)))
(save-excursion (let* ((event (if (and (symbolp (aref key 0))
(let ((modifiers (event-modifiers (aref key 0))) (> (length key) 1)
(standard-output (if insert (current-buffer) t)) (consp (aref key 1)))
window position) (aref key 1)
;; For a mouse button event, go to the button it applies to (aref key 0)))
;; to get the right key bindings. And go to the right place (modifiers (event-modifiers event))
;; in case the keymap depends on where you clicked. (standard-output (if insert (current-buffer) t))
(if (or (memq 'click modifiers) (memq 'down modifiers) (mouse-msg (if (or (memq 'click modifiers) (memq 'down modifiers)
(memq 'drag modifiers)) (memq 'drag modifiers)) " at that spot" ""))
(setq window (posn-window (event-start (aref key 0))) (defn (key-binding key t))
position (posn-point (event-start (aref key 0))))) key-desc)
(if (windowp window) ;; Handle the case where we faked an entry in "Select and Paste" menu.
(progn (if (and (eq defn nil)
(set-buffer (window-buffer window)) (stringp (aref key (1- (length key))))
(goto-char position))) (eq (key-binding (substring key 0 -1)) 'yank-menu))
;; Ok, now look up the key and name the command. (setq defn 'menu-bar-select-yank))
(let ((defn (or (string-key-binding key) ;; Don't bother user with strings from (e.g.) the select-paste menu.
(key-binding key t))) (if (stringp (aref key (1- (length key))))
key-desc) (aset key (1- (length key)) "(any string)"))
;; Handle the case where we faked an entry in "Select and Paste" menu. (if (and (> (length untranslated) 0)
(if (and (eq defn nil) (stringp (aref untranslated (1- (length untranslated)))))
(stringp (aref key (1- (length key)))) (aset untranslated (1- (length untranslated)) "(any string)"))
(eq (key-binding (substring key 0 -1)) 'yank-menu)) ;; Now describe the key, perhaps as changed.
(setq defn 'menu-bar-select-yank)) (setq key-desc (help-key-description key untranslated))
;; Don't bother user with strings from (e.g.) the select-paste menu. (if (or (null defn) (integerp defn) (equal defn 'undefined))
(if (stringp (aref key (1- (length key)))) (princ (format "%s%s is undefined" key-desc mouse-msg))
(aset key (1- (length key)) "(any string)")) (princ (format "%s%s runs the command %S" key-desc mouse-msg defn)))))
(if (and (> (length untranslated) 0)
(stringp (aref untranslated (1- (length untranslated)))))
(aset untranslated (1- (length untranslated))
"(any string)"))
;; Now describe the key, perhaps as changed.
(setq key-desc (help-key-description key untranslated))
(if (or (null defn) (integerp defn) (equal defn 'undefined))
(princ (format "%s is undefined" key-desc))
(princ (format (if (windowp window)
"%s at that spot runs the command %s"
"%s runs the command %s")
key-desc
(if (symbolp defn) defn (prin1-to-string defn)))))))))
(defun describe-key (&optional key untranslated up-event) (defun describe-key (&optional key untranslated up-event)
"Display documentation of the function invoked by KEY. "Display documentation of the function invoked by KEY.
@ -673,109 +641,119 @@ temporarily enables it to allow getting help on disabled items and buttons."
(list (list
key key
(prefix-numeric-value current-prefix-arg) (prefix-numeric-value current-prefix-arg)
;; If KEY is a down-event, read the corresponding up-event ;; If KEY is a down-event, read and discard the
;; and use it as the third argument. ;; corresponding up-event. Note that there are also
(if (and (vectorp key) ;; down-events on scroll bars and mode lines: the actual
(eventp (elt key 0)) ;; event then is in the second element of the vector.
(memq 'down (event-modifiers (elt key 0)))) (and (vectorp key)
(read-event)))) (let ((last-idx (1- (length key))))
(and (eventp (aref key last-idx))
(memq 'down (event-modifiers (aref key last-idx)))))
(or (and (eventp (aref key 0))
(memq 'down (event-modifiers (aref key 0)))
;; However, for the C-down-mouse-2 popup
;; menu, there is no subsequent up-event. In
;; this case, the up-event is the next
;; element in the supplied vector.
(= (length key) 1))
(and (> (length key) 1)
(eventp (aref key 1))
(memq 'down (event-modifiers (aref key 1)))))
(read-event))))
;; Put yank-menu back as it was, if we changed it. ;; Put yank-menu back as it was, if we changed it.
(when saved-yank-menu (when saved-yank-menu
(setq yank-menu (copy-sequence saved-yank-menu)) (setq yank-menu (copy-sequence saved-yank-menu))
(fset 'yank-menu (cons 'keymap yank-menu)))))) (fset 'yank-menu (cons 'keymap yank-menu))))))
(if (numberp untranslated) (if (numberp untranslated)
(setq untranslated (this-single-command-raw-keys))) (setq untranslated (this-single-command-raw-keys)))
(save-excursion (let* ((event (aref key (if (and (symbolp (aref key 0))
(let ((modifiers (event-modifiers (aref key 0))) (> (length key) 1)
window position) (consp (aref key 1)))
;; For a mouse button event, go to the button it applies to 1
;; to get the right key bindings. And go to the right place 0)))
;; in case the keymap depends on where you clicked. (modifiers (event-modifiers event))
(if (or (memq 'click modifiers) (memq 'down modifiers) (mouse-msg (if (or (memq 'click modifiers) (memq 'down modifiers)
(memq 'drag modifiers)) (memq 'drag modifiers)) " at that spot" ""))
(setq window (posn-window (event-start (aref key 0))) (defn (key-binding key t))
position (posn-point (event-start (aref key 0))))) defn-up defn-up-tricky ev-type
(when (windowp window) mouse-1-remapped mouse-1-tricky)
(set-buffer (window-buffer window))
(goto-char position)) ;; Handle the case where we faked an entry in "Select and Paste" menu.
(let ((defn (or (string-key-binding key) (key-binding key t)))) (when (and (eq defn nil)
;; Handle the case where we faked an entry in "Select and Paste" menu. (stringp (aref key (1- (length key))))
(if (and (eq defn nil) (eq (key-binding (substring key 0 -1)) 'yank-menu))
(stringp (aref key (1- (length key)))) (setq defn 'menu-bar-select-yank))
(eq (key-binding (substring key 0 -1)) 'yank-menu)) (if (or (null defn) (integerp defn) (equal defn 'undefined))
(setq defn 'menu-bar-select-yank)) (message "%s%s is undefined"
(if (or (null defn) (integerp defn) (equal defn 'undefined)) (help-key-description key untranslated) mouse-msg)
(message "%s is undefined" (help-key-description key untranslated)) (help-setup-xref (list #'describe-function defn) (interactive-p))
(help-setup-xref (list #'describe-function defn) (interactive-p)) ;; Don't bother user with strings from (e.g.) the select-paste menu.
;; Don't bother user with strings from (e.g.) the select-paste menu. (when (stringp (aref key (1- (length key))))
(if (stringp (aref key (1- (length key)))) (aset key (1- (length key)) "(any string)"))
(aset key (1- (length key)) "(any string)")) (when (and untranslated
(if (and untranslated (stringp (aref untranslated (1- (length untranslated)))))
(stringp (aref untranslated (1- (length untranslated))))) (aset untranslated (1- (length untranslated))
(aset untranslated (1- (length untranslated)) "(any string)"))
"(any string)")) ;; Need to do this before erasing *Help* buffer in case event
(with-output-to-temp-buffer (help-buffer) ;; is a mouse click in an existing *Help* buffer.
(princ (help-key-description key untranslated)) (when up-event
(if (windowp window) (setq ev-type (event-basic-type up-event))
(princ " at that spot")) (let ((sequence (vector up-event)))
(princ " runs the command ") (when (and (eq ev-type 'mouse-1)
(prin1 defn) mouse-1-click-follows-link
(princ "\n which is ") (not (eq mouse-1-click-follows-link 'double))
(describe-function-1 defn) (setq mouse-1-remapped
(when up-event (mouse-on-link-p (event-start up-event))))
(let ((type (event-basic-type up-event)) (setq mouse-1-tricky (and (integerp mouse-1-click-follows-link)
(hdr "\n\n-------------- up event ---------------\n\n") (> mouse-1-click-follows-link 0)))
defn sequence (cond ((stringp mouse-1-remapped)
mouse-1-tricky mouse-1-remapped) (setq sequence mouse-1-remapped))
(setq sequence (vector up-event)) ((vectorp mouse-1-remapped)
(when (and (eq type 'mouse-1) (setcar up-event (elt mouse-1-remapped 0)))
(windowp window) (t (setcar up-event 'mouse-2))))
(setq defn-up (key-binding sequence nil nil (event-start up-event)))
(when mouse-1-tricky
(setq sequence (vector up-event))
(aset sequence 0 'mouse-1)
(setq defn-up-tricky (key-binding sequence nil nil (event-start up-event))))))
(with-output-to-temp-buffer (help-buffer)
(princ (help-key-description key untranslated))
(princ (format "\
%s runs the command %S
which is "
mouse-msg defn))
(describe-function-1 defn)
(when up-event
(unless (or (null defn-up)
(integerp defn-up)
(equal defn-up 'undefined))
(princ (format "
----------------- up-event %s----------------
<%S>%s%s runs the command %S
which is "
(if mouse-1-tricky "(short click) " "")
ev-type mouse-msg
(if mouse-1-remapped
" is remapped to <mouse-2>\nwhich" "")
defn-up))
(describe-function-1 defn-up))
(unless (or (null defn-up-tricky)
(integerp defn-up-tricky)
(eq defn-up-tricky 'undefined))
(princ (format "
----------------- up-event (long click) ----------------
Pressing <%S>%s for longer than %d milli-seconds
runs the command %S
which is "
ev-type mouse-msg
mouse-1-click-follows-link mouse-1-click-follows-link
(not (eq mouse-1-click-follows-link 'double)) defn-up-tricky))
(setq mouse-1-remapped (describe-function-1 defn-up-tricky)))
(with-current-buffer (window-buffer window) (print-help-return-message)))))
(mouse-on-link-p (posn-point
(event-start up-event))))))
(setq mouse-1-tricky (and (integerp mouse-1-click-follows-link)
(> mouse-1-click-follows-link 0)))
(cond ((stringp mouse-1-remapped)
(setq sequence mouse-1-remapped))
((vectorp mouse-1-remapped)
(setcar up-event (elt mouse-1-remapped 0)))
(t (setcar up-event 'mouse-2))))
(setq defn (or (string-key-binding sequence)
(key-binding sequence)))
(unless (or (null defn) (integerp defn) (equal defn 'undefined))
(princ (if mouse-1-tricky
"\n\n----------------- up-event (short click) ----------------\n\n"
hdr))
(setq hdr nil)
(princ (symbol-name type))
(if (windowp window)
(princ " at that spot"))
(if mouse-1-remapped
(princ " is remapped to <mouse-2>\n which" ))
(princ " runs the command ")
(prin1 defn)
(princ "\n which is ")
(describe-function-1 defn))
(when mouse-1-tricky
(setcar up-event 'mouse-1)
(setq defn (or (string-key-binding (vector up-event))
(key-binding (vector up-event))))
(unless (or (null defn) (integerp defn) (eq defn 'undefined))
(princ (or hdr
"\n\n----------------- up-event (long click) ----------------\n\n"))
(princ "Pressing mouse-1")
(if (windowp window)
(princ " at that spot"))
(princ (format " for longer than %d milli-seconds\n"
mouse-1-click-follows-link))
(princ " runs the command ")
(prin1 defn)
(princ "\n which is ")
(describe-function-1 defn)))))
(print-help-return-message)))))))
(defun describe-mode (&optional buffer) (defun describe-mode (&optional buffer)
"Display documentation of current major mode and minor modes. "Display documentation of current major mode and minor modes.
@ -786,7 +764,7 @@ descriptions of the minor modes, each on a separate page.
For this to work correctly for a minor mode, the mode's indicator For this to work correctly for a minor mode, the mode's indicator
variable \(listed in `minor-mode-alist') must also be a function variable \(listed in `minor-mode-alist') must also be a function
whose documentation describes the minor mode." whose documentation describes the minor mode."
(interactive) (interactive "@")
(unless buffer (setq buffer (current-buffer))) (unless buffer (setq buffer (current-buffer)))
(help-setup-xref (list #'describe-mode buffer) (help-setup-xref (list #'describe-mode buffer)
(interactive-p)) (interactive-p))

View file

@ -64,16 +64,37 @@
;;; Code: ;;; Code:
(defvar hl-line-overlay nil
"Overlay used by Hl-Line mode to highlight the current line.")
(make-variable-buffer-local 'hl-line-overlay)
(defvar global-hl-line-overlay nil
"Overlay used by Global-Hl-Line mode to highlight the current line.")
(defgroup hl-line nil (defgroup hl-line nil
"Highlight the current line." "Highlight the current line."
:version "21.1" :version "21.1"
:group 'editing) :group 'editing)
(defcustom hl-line-face 'highlight (defface hl-line
"Face with which to highlight the current line." '((t :inherit highlight))
:type 'face "Default face for highlighting the current line in Hl-Line mode."
:version "22.1"
:group 'hl-line) :group 'hl-line)
(defcustom hl-line-face 'hl-line
"Face with which to highlight the current line in Hl-Line mode."
:type 'face
:group 'hl-line
:set (lambda (symbol value)
(set symbol value)
(dolist (buffer (buffer-list))
(with-current-buffer buffer
(when hl-line-overlay
(overlay-put hl-line-overlay 'face hl-line-face))))
(when global-hl-line-overlay
(overlay-put global-hl-line-overlay 'face hl-line-face))))
(defcustom hl-line-sticky-flag t (defcustom hl-line-sticky-flag t
"*Non-nil means highlight the current line in all windows. "*Non-nil means highlight the current line in all windows.
Otherwise Hl-Line mode will highlight only in the selected Otherwise Hl-Line mode will highlight only in the selected
@ -92,13 +113,6 @@ It should return nil if there's no region to be highlighted.
This variable is expected to be made buffer-local by modes.") This variable is expected to be made buffer-local by modes.")
(defvar hl-line-overlay nil
"Overlay used by Hl-Line mode to highlight the current line.")
(make-variable-buffer-local 'hl-line-overlay)
(defvar global-hl-line-overlay nil
"Overlay used by Global-Hl-Line mode to highlight the current line.")
;;;###autoload ;;;###autoload
(define-minor-mode hl-line-mode (define-minor-mode hl-line-mode
"Buffer-local minor mode to highlight the line about point. "Buffer-local minor mode to highlight the line about point.

View file

@ -370,7 +370,11 @@ With numeric ARG, enable auto-update if and only if ARG is positive."
"Evaluate FORM in each of the buffers. "Evaluate FORM in each of the buffers.
Does not display the buffer during evaluation. See Does not display the buffer during evaluation. See
`ibuffer-do-view-and-eval' for that." `ibuffer-do-view-and-eval' for that."
(:interactive "xEval in buffers (form): " (:interactive
(list
(read-from-minibuffer
"Eval in buffers (form): "
nil read-expression-map t 'read-expression-history))
:opstring "evaluated in" :opstring "evaluated in"
:modifier-p :maybe) :modifier-p :maybe)
(eval form)) (eval form))
@ -379,7 +383,11 @@ Does not display the buffer during evaluation. See
(define-ibuffer-op view-and-eval (form) (define-ibuffer-op view-and-eval (form)
"Evaluate FORM while displaying each of the marked buffers. "Evaluate FORM while displaying each of the marked buffers.
To evaluate a form without viewing the buffer, see `ibuffer-do-eval'." To evaluate a form without viewing the buffer, see `ibuffer-do-eval'."
(:interactive "xEval viewing buffers (form): " (:interactive
(list
(read-from-minibuffer
"Eval viewing in buffers (form): "
nil read-expression-map t 'read-expression-history))
:opstring "evaluated in" :opstring "evaluated in"
:complex t :complex t
:modifier-p :maybe) :modifier-p :maybe)

View file

@ -1972,12 +1972,12 @@ the value of point at the beginning of the line for that buffer."
(not (eq ibuffer-buf buf)))))) (not (eq ibuffer-buf buf))))))
;; This function is a special case; it's not defined by ;; This function is a special case; it's not defined by
;; `ibuffer-define-sorter'. ;; `define-ibuffer-sorter'.
(defun ibuffer-do-sort-by-recency () (defun ibuffer-do-sort-by-recency ()
"Sort the buffers by last view time." "Sort the buffers by last view time."
(interactive) (interactive)
(setq ibuffer-sorting-mode 'recency) (setq ibuffer-sorting-mode 'recency)
(ibuffer-redisplay t)) (ibuffer-update nil t))
(defun ibuffer-update-format () (defun ibuffer-update-format ()
(when (null ibuffer-current-format) (when (null ibuffer-current-format)

View file

@ -157,6 +157,12 @@ is minibuffer."
(< (length x) (length y)))) (< (length x) (length y))))
", ") ", ")
">")))))) ">"))))))
;;;_ = icomplete-with-completion-tables
(defvar icomplete-with-completion-tables '(internal-complete-buffer)
"Specialized completion tables with which icomplete should operate.
Icomplete does not operate with any specialized completion tables
except those on this list.")
;;;_ > icomplete-mode (&optional prefix) ;;;_ > icomplete-mode (&optional prefix)
;;;###autoload ;;;###autoload
@ -184,8 +190,9 @@ Conditions are:
(and (window-minibuffer-p (selected-window)) (and (window-minibuffer-p (selected-window))
(not executing-kbd-macro) (not executing-kbd-macro)
minibuffer-completion-table minibuffer-completion-table
;; (or minibuffer-completing-file-name (or (not (functionp minibuffer-completion-table))
(not (functionp minibuffer-completion-table)))) ;; ) (member minibuffer-completion-table
icomplete-with-completion-tables))))
;;;_ > icomplete-minibuffer-setup () ;;;_ > icomplete-minibuffer-setup ()
(defun icomplete-minibuffer-setup () (defun icomplete-minibuffer-setup ()

View file

@ -2112,7 +2112,7 @@ If INITIAL is non-nil, it specifies the initial input string."
(defun ido-edit-input () (defun ido-edit-input ()
"Edit absolute file name entered so far with ido; terminate by RET." "Edit absolute file name entered so far with ido; terminate by RET."
(interactive) (interactive)
(setq ido-text-init (if ido-matches (car ido-matches) ido-text)) (setq ido-text-init (if ido-matches (ido-name (car ido-matches)) ido-text))
(setq ido-exit 'edit) (setq ido-exit 'edit)
(exit-minibuffer)) (exit-minibuffer))
@ -2224,7 +2224,6 @@ If INITIAL is non-nil, it specifies the initial input string."
(let ((ido-current-directory (ido-expand-directory default)) (let ((ido-current-directory (ido-expand-directory default))
(ido-context-switch-command switch-cmd) (ido-context-switch-command switch-cmd)
ido-directory-nonreadable ido-directory-too-big ido-directory-nonreadable ido-directory-too-big
(minibuffer-completing-file-name t)
filename) filename)
(if (or (not ido-mode) (ido-is-slow-ftp-host)) (if (or (not ido-mode) (ido-is-slow-ftp-host))
@ -2268,9 +2267,10 @@ If INITIAL is non-nil, it specifies the initial input string."
(unless filename (unless filename
(setq ido-saved-vc-hb vc-handled-backends) (setq ido-saved-vc-hb vc-handled-backends)
(setq filename (ido-read-internal item (let ((minibuffer-completing-file-name t))
(or prompt "Find file: ") (setq filename (ido-read-internal item
'ido-file-history nil nil initial))) (or prompt "Find file: ")
'ido-file-history nil nil initial))))
;; Choose the file name: either the text typed in, or the head ;; Choose the file name: either the text typed in, or the head
;; of the list of matches ;; of the list of matches
@ -2426,13 +2426,13 @@ If INITIAL is non-nil, it specifies the initial input string."
((and (= 1 (length ido-matches)) ((and (= 1 (length ido-matches))
(not (and ido-enable-tramp-completion (not (and ido-enable-tramp-completion
(string-equal ido-current-directory "/") (string-equal ido-current-directory "/")
(string-match "..[@:]\\'" (car ido-matches))))) (string-match "..[@:]\\'" (ido-name (car ido-matches))))))
;; only one choice, so select it. ;; only one choice, so select it.
(if (not ido-confirm-unique-completion) (if (not ido-confirm-unique-completion)
(exit-minibuffer) (exit-minibuffer)
(setq ido-rescan (not ido-enable-prefix)) (setq ido-rescan (not ido-enable-prefix))
(delete-region (minibuffer-prompt-end) (point)) (delete-region (minibuffer-prompt-end) (point))
(insert (car ido-matches)))) (insert (ido-name (car ido-matches)))))
(t ;; else there could be some completions (t ;; else there could be some completions
(setq res ido-common-match-string) (setq res ido-common-match-string)
@ -2814,7 +2814,7 @@ If input stack is non-empty, delete current directory component."
"Use first matching item as input text." "Use first matching item as input text."
(interactive) (interactive)
(when ido-matches (when ido-matches
(setq ido-text-init (car ido-matches)) (setq ido-text-init (ido-name (car ido-matches)))
(setq ido-exit 'refresh) (setq ido-exit 'refresh)
(exit-minibuffer))) (exit-minibuffer)))
@ -2828,7 +2828,7 @@ If input stack is non-empty, delete current directory component."
"Move to previous directory in file name, push first match on stack." "Move to previous directory in file name, push first match on stack."
(interactive) (interactive)
(if ido-matches (if ido-matches
(setq ido-text (car ido-matches))) (setq ido-text (ido-name (car ido-matches))))
(setq ido-exit 'push) (setq ido-exit 'push)
(exit-minibuffer)) (exit-minibuffer))
@ -3084,12 +3084,14 @@ for first matching file."
(let ((oa (ido-file-extension-order a n)) (let ((oa (ido-file-extension-order a n))
(ob (ido-file-extension-order b n))) (ob (ido-file-extension-order b n)))
(cond (cond
((= oa ob)
lessp)
((and oa ob) ((and oa ob)
(if lessp (cond
(> oa ob) ((= oa ob)
(< oa ob))) lessp)
(lessp
(> oa ob))
(t
(< oa ob))))
(oa (oa
(not lessp)) (not lessp))
(ob (ob
@ -3136,7 +3138,12 @@ for first matching file."
(let ((filenames (let ((filenames
(split-string (split-string
(shell-command-to-string (shell-command-to-string
(concat "find " dir " -name \"" (if prefix "" "*") file "*\" -type " (if finddir "d" "f") " -print")))) (concat "find "
(shell-quote-argument dir)
" -name "
(shell-quote-argument
(concat (if prefix "" "*") file "*"))
" -type " (if finddir "d" "f") " -print"))))
filename d f filename d f
res) res)
(while filenames (while filenames
@ -3618,7 +3625,7 @@ for first matching file."
((stringp nextstr) ((stringp nextstr)
(and (>= flen (setq slen (length nextstr))) (and (>= flen (setq slen (length nextstr)))
(string-equal (substring name (- flen slen)) nextstr))) (string-equal (substring name (- flen slen)) nextstr)))
((fboundp nextstr) (funcall nextstr name)) ((functionp nextstr) (funcall nextstr name))
(t nil)) (t nil))
(setq ignorep t (setq ignorep t
ext-list nil ext-list nil
@ -3628,7 +3635,7 @@ for first matching file."
(setq nextstr (car re-list)) (setq nextstr (car re-list))
(if (cond (if (cond
((stringp nextstr) (string-match nextstr name)) ((stringp nextstr) (string-match nextstr name))
((fboundp nextstr) (funcall nextstr name)) ((functionp nextstr) (funcall nextstr name))
(t nil)) (t nil))
(setq ignorep t (setq ignorep t
re-list nil) re-list nil)
@ -3745,7 +3752,7 @@ for first matching file."
"Kill the buffer at the head of `ido-matches'." "Kill the buffer at the head of `ido-matches'."
(interactive) (interactive)
(let ((enable-recursive-minibuffers t) (let ((enable-recursive-minibuffers t)
(buf (car ido-matches))) (buf (ido-name (car ido-matches))))
(when buf (when buf
(kill-buffer buf) (kill-buffer buf)
;; Check if buffer still exists. ;; Check if buffer still exists.
@ -3760,7 +3767,7 @@ for first matching file."
"Delete the file at the head of `ido-matches'." "Delete the file at the head of `ido-matches'."
(interactive) (interactive)
(let ((enable-recursive-minibuffers t) (let ((enable-recursive-minibuffers t)
(file (car ido-matches))) (file (ido-name (car ido-matches))))
(if file (if file
(setq file (concat ido-current-directory file))) (setq file (concat ido-current-directory file)))
(when (and file (when (and file
@ -3781,7 +3788,8 @@ for first matching file."
(defun ido-visit-buffer (buffer method &optional record) (defun ido-visit-buffer (buffer method &optional record)
"Switch to BUFFER according to METHOD. "Switch to BUFFER according to METHOD.
Record command in `command-history' if optional RECORD is non-nil." Record command in `command-history' if optional RECORD is non-nil."
(if (bufferp buffer)
(setq buffer (buffer-name buffer)))
(let (win newframe) (let (win newframe)
(cond (cond
((eq method 'kill) ((eq method 'kill)
@ -4201,7 +4209,7 @@ For details of keybindings, do `\\[describe-function] ido-find-file'."
((= (length contents) 2) ((= (length contents) 2)
"/") "/")
(ido-matches (ido-matches
(concat ido-current-directory (car ido-matches))) (concat ido-current-directory (ido-name (car ido-matches))))
(t (t
(concat ido-current-directory (substring contents 0 -1))))) (concat ido-current-directory (substring contents 0 -1)))))
(setq ido-text-init (substring contents -1)) (setq ido-text-init (substring contents -1))
@ -4237,12 +4245,12 @@ For details of keybindings, do `\\[describe-function] ido-find-file'."
ido-matches ido-matches
(or (eq ido-enter-matching-directory 'first) (or (eq ido-enter-matching-directory 'first)
(null (cdr ido-matches))) (null (cdr ido-matches)))
(ido-final-slash (car ido-matches)) (ido-final-slash (ido-name (car ido-matches)))
(or try-single-dir-match (or try-single-dir-match
(eq ido-enter-matching-directory t))) (eq ido-enter-matching-directory t)))
(ido-trace "single match" (car ido-matches)) (ido-trace "single match" (car ido-matches))
(ido-set-current-directory (ido-set-current-directory
(concat ido-current-directory (car ido-matches))) (concat ido-current-directory (ido-name (car ido-matches))))
(setq ido-exit 'refresh) (setq ido-exit 'refresh)
(exit-minibuffer)) (exit-minibuffer))

View file

@ -60,16 +60,19 @@ to toggle between display as an image and display as text."
(setq major-mode 'image-mode) (setq major-mode 'image-mode)
(use-local-map image-mode-map) (use-local-map image-mode-map)
(add-hook 'change-major-mode-hook 'image-toggle-display-text nil t) (add-hook 'change-major-mode-hook 'image-toggle-display-text nil t)
(if (not (get-text-property (point-min) 'display)) (if (and (display-images-p)
(not (get-text-property (point-min) 'display)))
(image-toggle-display) (image-toggle-display)
;; Set next vars when image is already displayed but local ;; Set next vars when image is already displayed but local
;; variables were cleared by kill-all-local-variables ;; variables were cleared by kill-all-local-variables
(setq cursor-type nil truncate-lines t)) (setq cursor-type nil truncate-lines t))
(run-mode-hooks 'image-mode-hook) (run-mode-hooks 'image-mode-hook)
(message "%s" (concat (substitute-command-keys (if (display-images-p)
"Type \\[image-toggle-display] to view the image as ") (message "%s" (concat
(if (get-text-property (point-min) 'display) (substitute-command-keys
"text" "an image") "."))) "Type \\[image-toggle-display] to view the image as ")
(if (get-text-property (point-min) 'display)
"text" "an image") "."))))
;;;###autoload ;;;###autoload
(define-minor-mode image-minor-mode (define-minor-mode image-minor-mode

View file

@ -967,15 +967,15 @@ A trivial interface to `imenu-add-to-menubar' suitable for use in a hook."
(defvar imenu-buffer-menubar nil) (defvar imenu-buffer-menubar nil)
(defvar imenu-menubar-modified-tick 0 (defvar imenu-menubar-modified-tick 0
"The value of (buffer-modified-tick) as of last call to `imenu-update-menubar'.") "The value of (buffer-chars-modified-tick) as of the last call
to `imenu-update-menubar'.")
(make-variable-buffer-local 'imenu-menubar-modified-tick) (make-variable-buffer-local 'imenu-menubar-modified-tick)
(defun imenu-update-menubar () (defun imenu-update-menubar ()
(when (and (current-local-map) (when (and (current-local-map)
(keymapp (lookup-key (current-local-map) [menu-bar index])) (keymapp (lookup-key (current-local-map) [menu-bar index]))
(not (eq (buffer-modified-tick) (/= (buffer-chars-modified-tick) imenu-menubar-modified-tick))
imenu-menubar-modified-tick))) (setq imenu-menubar-modified-tick (buffer-chars-modified-tick))
(setq imenu-menubar-modified-tick (buffer-modified-tick))
(let ((index-alist (imenu--make-index-alist t))) (let ((index-alist (imenu--make-index-alist t)))
;; Don't bother updating if the index-alist has not changed ;; Don't bother updating if the index-alist has not changed
;; since the last time we did it. ;; since the last time we did it.

View file

@ -843,12 +843,13 @@ Return nil if there is nothing appropriate in the buffer near point."
(info-lookup-maybe-add-help (info-lookup-maybe-add-help
:mode 'maxima-mode :mode 'maxima-mode
:ignore-case t :ignore-case t
:regexp "[a-zA-Z_%]+" :regexp "[a-zA-Z0-9_%]+"
:doc-spec '( ("(maxima)Function and Variable Index" nil :doc-spec '( ("(maxima)Function and Variable Index" nil
"^ -+ [^:]+:[ ]+\\(\\[[^=]*=[ ]+\\)?" nil))) "^ -+ [^:]+:[ ]+\\(\\[[^=]*=[ ]+\\)?" nil)))
(info-lookup-maybe-add-help (info-lookup-maybe-add-help
:mode 'inferior-maxima-mode :mode 'inferior-maxima-mode
:regexp "[a-zA-Z0-9_%]+"
:other-modes '(maxima-mode)) :other-modes '(maxima-mode))
;; coreutils and bash builtins overlap in places, eg. printf, so there's a ;; coreutils and bash builtins overlap in places, eg. printf, so there's a

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