diff options
| author | Miles Bader | 2007-04-24 21:56:25 +0000 |
|---|---|---|
| committer | Miles Bader | 2007-04-24 21:56:25 +0000 |
| commit | 991a760232de757d71d8dbbed47ee12d81e29d53 (patch) | |
| tree | 2440730c37ae3f167a50f5c3ac5eaeab9b72b7b0 | |
| parent | 0bb328f8f6fce06a7fc65670c7d5c011b613e1c5 (diff) | |
| parent | 3851329262d6558d5e1a93157d44777d0a39e38e (diff) | |
| download | emacs-991a760232de757d71d8dbbed47ee12d81e29d53.tar.gz emacs-991a760232de757d71d8dbbed47ee12d81e29d53.zip | |
Merge from emacs--devo--0
Patches applied:
* emacs--devo--0 (patch 698-710)
- Update from CVS
- Merge from gnus--rel--5.10
* gnus--rel--5.10 (patch 216)
- Update from CVS
Revision: emacs@sv.gnu.org/emacs--unicode--0--patch-196
231 files changed, 4285 insertions, 5168 deletions
| @@ -33,9 +33,9 @@ Alakazam Petrofsky: changed hanoi.el | |||
| 33 | 33 | ||
| 34 | Alan Mackenzie: wrote cc-awk.el | 34 | Alan Mackenzie: wrote cc-awk.el |
| 35 | and changed cc-cmds.el cc-mode.el cc-engine.el cc-defs.el cc-vars.el | 35 | and changed cc-cmds.el cc-mode.el cc-engine.el cc-defs.el cc-vars.el |
| 36 | cc-langs.el cc-mode.texi cc-styles.el cc-align.el lread.c cc-fonts.el | 36 | cc-langs.el cc-mode.texi cc-styles.el cc-align.el cc-fonts.el lread.c |
| 37 | programs.texi cc-subword.el isearch.el lisp.el search.texi subr.el | 37 | programs.texi cc-subword.el isearch.el lisp.el search.texi startup.el |
| 38 | text.texi buffers.texi cc-fix.el cc-mode-19.el and 17 other files | 38 | subr.el text.texi buffers.texi cc-fix.el and 18 other files |
| 39 | 39 | ||
| 40 | Alan Shutko: changed diary-lib.el calendar.el bindings.el cal-hebrew.el | 40 | Alan Shutko: changed diary-lib.el calendar.el bindings.el cal-hebrew.el |
| 41 | easy-mmode.el gnus-sum.el ibuf-ext.el ibuffer.el lunar.el macros.el | 41 | easy-mmode.el gnus-sum.el ibuf-ext.el ibuffer.el lunar.el macros.el |
| @@ -332,11 +332,11 @@ Charlie Martin: wrote autoinsert.el | |||
| 332 | Cheng Gao: changed MORE.STUFF flymake.el tips.texi url-dired.el | 332 | Cheng Gao: changed MORE.STUFF flymake.el tips.texi url-dired.el |
| 333 | url-file.el url-handlers.el url-http.el url-nfs.el | 333 | url-file.el url-handlers.el url-http.el url-nfs.el |
| 334 | 334 | ||
| 335 | Chong Yidong: changed cus-edit.el simple.el custom.el files.el | 335 | Chong Yidong: changed cus-edit.el simple.el files.el custom.el |
| 336 | display.texi longlines.el keyboard.c custom.texi info.el text.texi | 336 | display.texi longlines.el xdisp.c files.texi keyboard.c compile.el |
| 337 | compile.el files.texi image-mode.el mouse.el xdisp.c frames.texi | 337 | custom.texi info.el text.texi frames.texi image-mode.el mouse.el |
| 338 | startup.el wid-edit.el xterm.c cus-theme.el faces.el | 338 | misc.texi startup.el wid-edit.el xterm.c cus-theme.el |
| 339 | and 244 other files | 339 | and 296 other files |
| 340 | 340 | ||
| 341 | Chris Hanson: changed xscheme.el scheme.el xterm.c hpux.h x11term.c | 341 | Chris Hanson: changed xscheme.el scheme.el xterm.c hpux.h x11term.c |
| 342 | hp9000s300.h keyboard.c process.c texinfmt.el emacsclient.c sort.el | 342 | hp9000s300.h keyboard.c process.c texinfmt.el emacsclient.c sort.el |
| @@ -418,7 +418,7 @@ Dan Nicolaescu: wrote iris-ansi.el romanian.el | |||
| 418 | and changed term.el xterm.el hideshow.el isearch.el icon.el lisp.h | 418 | and changed term.el xterm.el hideshow.el isearch.el icon.el lisp.h |
| 419 | cus-edit.el faces.el font-lock.el grep.el sh-script.el eterm-color.ti | 419 | cus-edit.el faces.el font-lock.el grep.el sh-script.el eterm-color.ti |
| 420 | ibuffer.el rxvt.el vhdl-mode.el xterm.c bindings.el compile.el | 420 | ibuffer.el rxvt.el vhdl-mode.el xterm.c bindings.el compile.el |
| 421 | dabbrev.el imenu.el outline.el and 164 other files | 421 | dabbrev.el imenu.el outline.el and 166 other files |
| 422 | 422 | ||
| 423 | Daniel Brockman: changed cus-start.el format-spec.el ibuffer.el rcirc.el | 423 | Daniel Brockman: changed cus-start.el format-spec.el ibuffer.el rcirc.el |
| 424 | 424 | ||
| @@ -463,7 +463,7 @@ Dave Love: wrote autoarg.el autoconf.el benchmark.el cfengine.el | |||
| 463 | and changed configure.in Makefile.in help.el fortran.el browse-url.el | 463 | and changed configure.in Makefile.in help.el fortran.el browse-url.el |
| 464 | mule-cmds.el simple.el xterm.c cus-edit.el files.el info.el mule.el | 464 | mule-cmds.el simple.el xterm.c cus-edit.el files.el info.el mule.el |
| 465 | wid-edit.el fns.c vc.el rfc2047.el bindings.el cus-start.el buffer.c | 465 | wid-edit.el fns.c vc.el rfc2047.el bindings.el cus-start.el buffer.c |
| 466 | byte-opt.el bytecomp.el and 729 other files | 466 | byte-opt.el bytecomp.el and 727 other files |
| 467 | 467 | ||
| 468 | Dave Pearson: wrote 5x5.el quickurl.el | 468 | Dave Pearson: wrote 5x5.el quickurl.el |
| 469 | 469 | ||
| @@ -492,7 +492,7 @@ David Gillespie: wrote calc-aent.el calc-alg.el calc-arith.el calc-bin.el | |||
| 492 | cl.texinfo complete.el edmacro.el | 492 | cl.texinfo complete.el edmacro.el |
| 493 | and changed info.el bytecomp.el | 493 | and changed info.el bytecomp.el |
| 494 | 494 | ||
| 495 | David Hansen: changed nnrss.el lisp.el pcomplete.el tempo.el | 495 | David Hansen: changed nnrss.el cc-cmds.el lisp.el pcomplete.el tempo.el |
| 496 | 496 | ||
| 497 | David Hedbor: changed gnus-art.el mm-decode.el mm-view.el gnus-agent.el | 497 | David Hedbor: changed gnus-art.el mm-decode.el mm-view.el gnus-agent.el |
| 498 | gnus-cite.el gnus-cus.el gnus-eform.el gnus-group.el gnus-msg.el | 498 | gnus-cite.el gnus-cus.el gnus-eform.el gnus-group.el gnus-msg.el |
| @@ -522,8 +522,9 @@ David Lawrence: changed loaddefs.el comint.el simple.el files.el | |||
| 522 | 522 | ||
| 523 | David M. Brown: wrote array.el | 523 | David M. Brown: wrote array.el |
| 524 | 524 | ||
| 525 | David M. Koppelman: wrote hi-lock.el | 525 | David M. Koppelman: changed hi-lock.el display.texi |
| 526 | and changed display.texi | 526 | |
| 527 | David M. Koppelman, Koppel@Ece.Lsu.Edu: wrote hi-lock.el | ||
| 527 | 528 | ||
| 528 | David M. Smith: wrote ielm.el | 529 | David M. Smith: wrote ielm.el |
| 529 | and changed imenu.el | 530 | and changed imenu.el |
| @@ -649,7 +650,7 @@ Eli Tziperman: wrote rmail-spam-filter.el | |||
| 649 | Eli Zaretskii: wrote codepage.el rxvt.el tty-colors.el | 650 | Eli Zaretskii: wrote codepage.el rxvt.el tty-colors.el |
| 650 | and changed msdos.c Makefile.in makefile.w32-in files.el info.el fileio.c | 651 | and changed msdos.c Makefile.in makefile.w32-in files.el info.el fileio.c |
| 651 | startup.el mainmake.v2 config.bat menu-bar.el pc-win.el rmail.el | 652 | startup.el mainmake.v2 config.bat menu-bar.el pc-win.el rmail.el |
| 652 | msdos.h simple.el internal.el xfaces.c emacs.c frame.c dosfns.c | 653 | simple.el msdos.h internal.el xfaces.c emacs.c frame.c dosfns.c |
| 653 | faces.el frame.el and 531 other files | 654 | faces.el frame.el and 531 other files |
| 654 | 655 | ||
| 655 | Emanuele Giaquinta: changed rxvt.el configure.in etags.c frame.el | 656 | Emanuele Giaquinta: changed rxvt.el configure.in etags.c frame.el |
| @@ -747,7 +748,7 @@ Francesco Potort,Al(B: wrote cmacexp.el | |||
| 747 | and changed etags.c man.el delta.h undigest.el etags.1 comint.el | 748 | and changed etags.c man.el delta.h undigest.el etags.1 comint.el |
| 748 | configure.in uniquify.el latin-post.el rmail.el Makefile.in etags.el | 749 | configure.in uniquify.el latin-post.el rmail.el Makefile.in etags.el |
| 749 | latin-alt.el maintaining.texi sgml-mode.el data.c european.el | 750 | latin-alt.el maintaining.texi sgml-mode.el data.c european.el |
| 750 | filelock.c files.el generic-x.el gud.el and 42 other files | 751 | filelock.c files.el generic-x.el gud.el and 43 other files |
| 751 | 752 | ||
| 752 | Francis J. Wright: wrote woman.el | 753 | Francis J. Wright: wrote woman.el |
| 753 | and changed dired.el comint.el files.el | 754 | and changed dired.el comint.el files.el |
| @@ -851,9 +852,9 @@ Giuseppe Scrivano: changed buffer.c configure.in sysdep.c xsmfns.c | |||
| 851 | 852 | ||
| 852 | Glenn Morris: changed f90.el diary-lib.el calendar.el fortran.el | 853 | Glenn Morris: changed f90.el diary-lib.el calendar.el fortran.el |
| 853 | calendar.texi appt.el sh-script.el Makefile.in timeclock.el cal-menu.el | 854 | calendar.texi appt.el sh-script.el Makefile.in timeclock.el cal-menu.el |
| 854 | startup.el abbrevs.texi cal-hebrew.el cal-islam.el complete.el | 855 | files.el complete.el configure.in startup.el MACHINES abbrevs.texi |
| 855 | emacs.texi files.el fr-refcard.tex holidays.el orgcard.tex os.texi | 856 | cal-hebrew.el cal-islam.el emacs.texi fr-refcard.tex holidays.el |
| 856 | and 120 other files | 857 | and 145 other files |
| 857 | 858 | ||
| 858 | Glynn Clements: wrote gamegrid.el snake.el tetris.el | 859 | Glynn Clements: wrote gamegrid.el snake.el tetris.el |
| 859 | 860 | ||
| @@ -878,7 +879,8 @@ Gregory Chernov: changed nnslashdot.el | |||
| 878 | 879 | ||
| 879 | Gregory Neil Shapiro: changed mailabbrev.el | 880 | Gregory Neil Shapiro: changed mailabbrev.el |
| 880 | 881 | ||
| 881 | Guanpeng Xu: changed add-log.el TUTORIAL.cn mouse.el type-break.el | 882 | Guanpeng Xu: changed add-log.el TUTORIAL.cn display.texi mouse.el |
| 883 | type-break.el | ||
| 882 | 884 | ||
| 883 | Guillermo J. Rozas: wrote fakemail.c | 885 | Guillermo J. Rozas: wrote fakemail.c |
| 884 | 886 | ||
| @@ -1175,8 +1177,8 @@ Joev Dubach: changed nntp.el | |||
| 1175 | Johan Bockg,Ae(Brd: changed erc.el erc-backend.el cl-macs.el erc-match.el | 1177 | Johan Bockg,Ae(Brd: changed erc.el erc-backend.el cl-macs.el erc-match.el |
| 1176 | erc-nickserv.el erc-ring.el erc-speak.el erc-track.el simple.el | 1178 | erc-nickserv.el erc-ring.el erc-speak.el erc-track.el simple.el |
| 1177 | align.el bytecomp.el calendar.el cl.texi custom.el dired-aux.el | 1179 | align.el bytecomp.el calendar.el cl.texi custom.el dired-aux.el |
| 1178 | display.texi erc-bbdb.el erc-button.el erc-compat.el erc-dcc.el | 1180 | dired-x.el display.texi erc-bbdb.el erc-button.el erc-compat.el |
| 1179 | erc-list.el and 14 other files | 1181 | erc-dcc.el and 16 other files |
| 1180 | 1182 | ||
| 1181 | Johan Vromans: wrote forms-d2.el forms.el iso-acc.el | 1183 | Johan Vromans: wrote forms-d2.el forms.el iso-acc.el |
| 1182 | and changed complete.el | 1184 | and changed complete.el |
| @@ -1326,11 +1328,11 @@ Kailash C. Chowksey: changed HELLO Makefile.in ind-util.el kannada.el | |||
| 1326 | 1328 | ||
| 1327 | Kanematsu Daiji: changed nnimap.el | 1329 | Kanematsu Daiji: changed nnimap.el |
| 1328 | 1330 | ||
| 1329 | Karl Berry: changed info.texi emacs.texi elisp.texi emacs-xtra.texi | 1331 | Karl Berry: changed info.texi emacs.texi elisp.texi anti.texi |
| 1330 | filelock.c anti.texi building.texi cmdargs.texi copyright.el | 1332 | display.texi emacs-xtra.texi filelock.c gnu.texi mule.texi text.texi |
| 1331 | custom.texi customize.texi dired.c display.texi faq.texi frames.texi | 1333 | building.texi cmdargs.texi copyright.el custom.texi customize.texi |
| 1332 | gnu.texi help.texi lists.texi loading.texi macos.texi minibuf.texi | 1334 | dired.c faq.texi frames.texi help.texi lists.texi loading.texi |
| 1333 | and 70 other files | 1335 | and 71 other files |
| 1334 | 1336 | ||
| 1335 | Karl Chen: changed files.el align.el cc-vars.el gnus-art.el help-mode.el | 1337 | Karl Chen: changed files.el align.el cc-vars.el gnus-art.el help-mode.el |
| 1336 | jka-cmpr-hook.el make-mode.el perl-mode.el python.el tex-mode.el | 1338 | jka-cmpr-hook.el make-mode.el perl-mode.el python.el tex-mode.el |
| @@ -1360,9 +1362,9 @@ Katsuhiro Hermit Endo: changed gnus-group.el gnus-spec.el | |||
| 1360 | 1362 | ||
| 1361 | Katsumi Yamaoka: wrote canlock.el | 1363 | Katsumi Yamaoka: wrote canlock.el |
| 1362 | and changed gnus-art.el message.el gnus-sum.el gnus.texi mm-decode.el | 1364 | and changed gnus-art.el message.el gnus-sum.el gnus.texi mm-decode.el |
| 1363 | mm-view.el gnus-util.el mm-util.el gnus-msg.el gnus.el lpath.el | 1365 | mm-view.el gnus-util.el gnus-msg.el mm-util.el gnus.el lpath.el |
| 1364 | gnus-group.el gnus-start.el rfc2047.el dgnushack.el mm-uu.el nntp.el | 1366 | gnus-group.el gnus-start.el rfc2047.el dgnushack.el mm-uu.el nntp.el |
| 1365 | gnus-agent.el mml.el nnrss.el message.texi and 73 other files | 1367 | gnus-agent.el mml.el nnrss.el message.texi and 72 other files |
| 1366 | 1368 | ||
| 1367 | Kaveh R. Ghazi: changed delta88k.h xterm.c | 1369 | Kaveh R. Ghazi: changed delta88k.h xterm.c |
| 1368 | 1370 | ||
| @@ -1438,18 +1440,17 @@ Kevin Rodgers: changed compile.el mailabbrev.el dired-x.el files.el | |||
| 1438 | and 5 other files | 1440 | and 5 other files |
| 1439 | 1441 | ||
| 1440 | Kevin Ryde: wrote info-xref.el | 1442 | Kevin Ryde: wrote info-xref.el |
| 1441 | and changed info-look.el info.el cl.texi gnus-art.el gnus-sum.el | 1443 | and changed info-look.el info.el arc-mode.el cl.texi gnus-art.el |
| 1442 | mailcap.el os.texi text.texi MORE.STUFF cal-dst.el calendar.texi | 1444 | gnus-sum.el mailcap.el mule.el os.texi text.texi MORE.STUFF cal-dst.el |
| 1443 | cc-align.el cmdargs.texi compile.texi display.texi em-alias.el | 1445 | calendar.texi cc-align.el cmdargs.texi compile.texi display.texi |
| 1444 | em-dirs.el em-hist.el em-unix.el emacs-lisp-intro.texi etags.c | 1446 | em-alias.el em-dirs.el em-hist.el em-unix.el and 19 other files |
| 1445 | and 18 other files | ||
| 1446 | 1447 | ||
| 1447 | Kim F. Storm: wrote bindat.el cua-base.el cua-gmrk.el cua-rect.el ido.el | 1448 | Kim F. Storm: wrote bindat.el cua-base.el cua-gmrk.el cua-rect.el ido.el |
| 1448 | keypad.el kmacro.el | 1449 | keypad.el kmacro.el |
| 1449 | and changed xdisp.c dispextern.h process.c simple.el window.c keyboard.c | 1450 | and changed xdisp.c dispextern.h process.c simple.el window.c keyboard.c |
| 1450 | xterm.c subr.el w32term.c dispnew.c lisp.h fringe.c macterm.c | 1451 | xterm.c subr.el w32term.c dispnew.c lisp.h fringe.c macterm.c |
| 1451 | display.texi fns.c alloc.c xfaces.c keymap.c xfns.c xterm.h .gdbinit | 1452 | display.texi fns.c alloc.c xfaces.c keymap.c xfns.c xterm.h .gdbinit |
| 1452 | and 254 other files | 1453 | and 255 other files |
| 1453 | 1454 | ||
| 1454 | Kim-Minh Kaplan: changed gnus-picon.el gnus-sum.el gnus-start.el | 1455 | Kim-Minh Kaplan: changed gnus-picon.el gnus-sum.el gnus-start.el |
| 1455 | gnus-win.el gnus-xmas.el gnus.texi message.el nndraft.el nnml.el | 1456 | gnus-win.el gnus-xmas.el gnus.texi message.el nndraft.el nnml.el |
| @@ -1549,6 +1550,8 @@ Lennart Staflin: changed dired.el diary-ins.el diary-lib.el tq.el xdisp.c | |||
| 1549 | Leonard H. Tower Jr.: changed rnews.el rnewspost.el emacsbug.el | 1550 | Leonard H. Tower Jr.: changed rnews.el rnewspost.el emacsbug.el |
| 1550 | rmailout.el | 1551 | rmailout.el |
| 1551 | 1552 | ||
| 1553 | Levin Du: changed parse-time.el | ||
| 1554 | |||
| 1552 | Liam Healy: changed outline.el | 1555 | Liam Healy: changed outline.el |
| 1553 | 1556 | ||
| 1554 | Lloyd Zusman: changed mml.el pgg-gpg.el | 1557 | Lloyd Zusman: changed mml.el pgg-gpg.el |
| @@ -1671,8 +1674,9 @@ and changed cus-edit.el Makefile.in files.el compile.el rmail.el | |||
| 1671 | mule-cmds.el rmailout.el checkdoc.el configure.in custom.el emacsbug.el | 1674 | mule-cmds.el rmailout.el checkdoc.el configure.in custom.el emacsbug.el |
| 1672 | gnus.el help-fns.el ls-lisp.el mwheel.el and 122 other files | 1675 | gnus.el help-fns.el ls-lisp.el mwheel.el and 122 other files |
| 1673 | 1676 | ||
| 1674 | Markus Triska: changed doctor.el expand.el flymake.el flymake.texi | 1677 | Markus Triska: changed byte-opt.el bytecomp.el doctor.el expand.el |
| 1675 | handwrite.el internals.texi speedbar.el subr.el tumme.el widget.texi | 1678 | flymake.el flymake.texi handwrite.el internals.texi speedbar.el subr.el |
| 1679 | tumme.el widget.texi | ||
| 1676 | 1680 | ||
| 1677 | Marshall T. Vandegrift: changed gnus-fun.el | 1681 | Marshall T. Vandegrift: changed gnus-fun.el |
| 1678 | 1682 | ||
| @@ -1691,11 +1695,11 @@ Martin Lorentzon: changed vc.el vc-cvs.el vc-hooks.el vc-rcs.el | |||
| 1691 | 1695 | ||
| 1692 | Martin Neitzel: changed sc.el | 1696 | Martin Neitzel: changed sc.el |
| 1693 | 1697 | ||
| 1694 | Martin Rudalics: changed cus-edit.el wid-edit.el files.el flyspell.el | 1698 | Martin Rudalics: changed cus-edit.el wid-edit.el cus-start.el files.el |
| 1695 | font-lock.el complete.el cus-start.el insdel.c macmenu.c syntax.c | 1699 | flyspell.el font-lock.el complete.el insdel.c macmenu.c syntax.c |
| 1696 | w32menu.c wdired.el whitespace.el window.el xdisp.c xmenu.c | 1700 | w32menu.c wdired.el whitespace.el window.el xdisp.c xmenu.c |
| 1697 | backups.texi buffer.c buffer.h casefiddle.c cperl-mode.el | 1701 | backups.texi buffer.c buffer.h casefiddle.c cc-mode.el |
| 1698 | and 31 other files | 1702 | and 36 other files |
| 1699 | 1703 | ||
| 1700 | Martin Stjernholm: wrote cc-bytecomp.el | 1704 | Martin Stjernholm: wrote cc-bytecomp.el |
| 1701 | and changed cc-engine.el cc-cmds.el cc-langs.el cc-defs.el cc-mode.el | 1705 | and changed cc-engine.el cc-cmds.el cc-langs.el cc-defs.el cc-mode.el |
| @@ -1723,7 +1727,7 @@ Masayuki Ataka: changed texinfmt.el texinfo.el characters.el cmuscheme.el | |||
| 1723 | 1727 | ||
| 1724 | Masayuki Fujii: changed dnd.el w32-win.el | 1728 | Masayuki Fujii: changed dnd.el w32-win.el |
| 1725 | 1729 | ||
| 1726 | Mathias Dahl: wrote tumme.el | 1730 | Mathias Dahl: wrote image-dired.el |
| 1727 | and changed dired.el dired.texi | 1731 | and changed dired.el dired.texi |
| 1728 | 1732 | ||
| 1729 | Mathias Megyei: changed Makefile.in | 1733 | Mathias Megyei: changed Makefile.in |
| @@ -1927,9 +1931,9 @@ Niall Mansfield: changed etags.c | |||
| 1927 | 1931 | ||
| 1928 | Nick Roberts: wrote gdb-ui.el | 1932 | Nick Roberts: wrote gdb-ui.el |
| 1929 | and changed gud.el building.texi tooltip.el speedbar.el bindings.el | 1933 | and changed gud.el building.texi tooltip.el speedbar.el bindings.el |
| 1930 | thumbs.el xt-mouse.el .gdbinit DEBUG cc-mode.el frames.texi subr.el | 1934 | thumbs.el xt-mouse.el .gdbinit DEBUG cc-mode.el t-mouse.el frames.texi |
| 1931 | t-mouse.el comint.el display.texi help-mode.el compile.el descr-text.el | 1935 | subr.el comint.el display.texi help-mode.el compile.el descr-text.el |
| 1932 | dired.el gud-display.pbm speedbar.texi and 115 other files | 1936 | dired.el gud-display.pbm speedbar.texi and 116 other files |
| 1933 | 1937 | ||
| 1934 | Nico Francois: changed w32fns.c w32inevt.c w32menu.c | 1938 | Nico Francois: changed w32fns.c w32inevt.c w32menu.c |
| 1935 | 1939 | ||
| @@ -1999,6 +2003,8 @@ Pascal Dupuis: changed octave-inf.el | |||
| 1999 | 2003 | ||
| 2000 | Pascal Rigaux: changed rfc2231.el | 2004 | Pascal Rigaux: changed rfc2231.el |
| 2001 | 2005 | ||
| 2006 | Paul Curry: changed cc-subword.el | ||
| 2007 | |||
| 2002 | Paul D. Smith: wrote snmp-mode.el | 2008 | Paul D. Smith: wrote snmp-mode.el |
| 2003 | and changed imenu.el make-mode.el | 2009 | and changed imenu.el make-mode.el |
| 2004 | 2010 | ||
| @@ -2169,7 +2175,7 @@ and changed gnus-art.el gnus.texi message.el gnus-sum.el gnus.el | |||
| 2169 | gnus-group.el gnus-faq.texi gnus-util.el mml.el gnus-score.el | 2175 | gnus-group.el gnus-faq.texi gnus-util.el mml.el gnus-score.el |
| 2170 | gnus-start.el message.texi mm-util.el gnus-agent.el gnus-msg.el spam.el | 2176 | gnus-start.el message.texi mm-util.el gnus-agent.el gnus-msg.el spam.el |
| 2171 | files.el spam-report.el mm-decode.el nnmail.el nnweb.el | 2177 | files.el spam-report.el mm-decode.el nnmail.el nnweb.el |
| 2172 | and 167 other files | 2178 | and 166 other files |
| 2173 | 2179 | ||
| 2174 | Remek Trzaska: changed gnus-ems.el | 2180 | Remek Trzaska: changed gnus-ems.el |
| 2175 | 2181 | ||
| @@ -2531,8 +2537,8 @@ Theodore Jump: changed w32-win.el w32faces.c | |||
| 2531 | Thien-Thi Nguyen: wrote hideshow.el make-mms-derivative.el | 2537 | Thien-Thi Nguyen: wrote hideshow.el make-mms-derivative.el |
| 2532 | and changed ewoc.el info.el processes.texi zone.el Makefile.in vc.el | 2538 | and changed ewoc.el info.el processes.texi zone.el Makefile.in vc.el |
| 2533 | fileio.c lisp-mode.el scheme.el text.texi TUTORIAL.it bindat.el | 2539 | fileio.c lisp-mode.el scheme.el text.texi TUTORIAL.it bindat.el |
| 2534 | dcl-mode.el display.texi files.el gnus.texi pcvs.el sysdep.c vc-rcs.el | 2540 | dcl-mode.el display.texi files.el gnus.texi pcvs.el startup.el sysdep.c |
| 2535 | MORE.STUFF TUTORIAL.ja and 129 other files | 2541 | vc-rcs.el MORE.STUFF and 129 other files |
| 2536 | 2542 | ||
| 2537 | Thierry Emery: changed kinsoku.el timezone.el url-http.el wid-edit.el | 2543 | Thierry Emery: changed kinsoku.el timezone.el url-http.el wid-edit.el |
| 2538 | 2544 | ||
| @@ -2725,8 +2731,8 @@ Yagi Tatsuya: changed gnus-art.el gnus-start.el | |||
| 2725 | 2731 | ||
| 2726 | Yamamoto Mitsuharu: changed macterm.c macfns.c mac-win.el mac.c macterm.h | 2732 | Yamamoto Mitsuharu: changed macterm.c macfns.c mac-win.el mac.c macterm.h |
| 2727 | macmenu.c macgui.h image.c macselect.c keyboard.c xdisp.c makefile.MPW | 2733 | macmenu.c macgui.h image.c macselect.c keyboard.c xdisp.c makefile.MPW |
| 2728 | config.h emacs.c Makefile.in macos.texi xfaces.c INSTALL darwin.h | 2734 | config.h emacs.c Makefile.in macos.texi darwin.h xfaces.c INSTALL |
| 2729 | dispnew.c configure.in and 76 other files | 2735 | dispnew.c alloc.c and 77 other files |
| 2730 | 2736 | ||
| 2731 | Yann Dirson: changed imenu.el | 2737 | Yann Dirson: changed imenu.el |
| 2732 | 2738 | ||
| @@ -1,3 +1,24 @@ | |||
| 1 | 2007-04-24 Juanma Barranquero <lekktu@gmail.com> | ||
| 2 | |||
| 3 | * INSTALL (DETAILED BUILDING AND INSTALLATION): Fix typo. | ||
| 4 | |||
| 5 | 2007-04-19 Glenn Morris <rgm@gnu.org> | ||
| 6 | |||
| 7 | * configure.in: Signal error if Xaw libs are missing in a Lucid | ||
| 8 | build. | ||
| 9 | |||
| 10 | 2007-04-18 Glenn Morris <rgm@gnu.org> | ||
| 11 | |||
| 12 | * INSTALL: Mention CPP. | ||
| 13 | |||
| 14 | 2007-04-15 Glenn Morris <rgm@gnu.org> | ||
| 15 | |||
| 16 | * FTP: Replace with a pointer to the web version. | ||
| 17 | |||
| 18 | 2007-04-13 Glenn Morris <rgm@gnu.org> | ||
| 19 | |||
| 20 | * INSTALL: In lib-src, timer, wakeup, yow are removed. | ||
| 21 | |||
| 1 | 2007-04-04 Glenn Morris <rgm@gnu.org> | 22 | 2007-04-04 Glenn Morris <rgm@gnu.org> |
| 2 | 23 | ||
| 3 | * configure.in (NON_GNU_CPP): Use associated preprocessor when | 24 | * configure.in (NON_GNU_CPP): Use associated preprocessor when |
| @@ -8,7 +29,7 @@ | |||
| 8 | * configure.in: Restore support for hp800 (removed 2007-01-27) | 29 | * configure.in: Restore support for hp800 (removed 2007-01-27) |
| 9 | following clarification of legal status. | 30 | following clarification of legal status. |
| 10 | 31 | ||
| 11 | 2007-03-22 Joe Buehler <jbuehler@spirentcom.com> (tiny change) | 32 | 2007-03-22 Joe Buehler <jbuehler@spirentcom.com> (tiny change) |
| 12 | 33 | ||
| 13 | * configure.in: Add support for AIX4.3 on IBM RS6000. | 34 | * configure.in: Add support for AIX4.3 on IBM RS6000. |
| 14 | 35 | ||
| @@ -1,234 +1,6 @@ | |||
| 1 | -*- text -*- | 1 | For information about how to obtain GNU Emacs and other GNU software |
| 2 | How to get GNU Software by Internet FTP or by UUCP. Last updated 1999-01-20 | 2 | by FTP, please see <http://www.gnu.org/order/ftp.html>. |
| 3 | 3 | ||
| 4 | * Please send improvements to this file to gnu@gnu.org. | 4 | Information about Emacs is also available at |
| 5 | <http://www.gnu.org/software/emacs/>. | ||
| 5 | 6 | ||
| 6 | * No Warranties | ||
| 7 | |||
| 8 | We distribute software in the hope that it will be useful, but without | ||
| 9 | any warranty. No author or distributor of this software accepts | ||
| 10 | responsibility to anyone for the consequences of using it or for | ||
| 11 | whether it serves any particular purpose or works at all, unless he | ||
| 12 | says so in writing. This is exactly the same warranty that the proprietary | ||
| 13 | software companies offer: None. If the distribution is incomplete or the | ||
| 14 | media fails, you can always download a replacement from any of the GNU | ||
| 15 | mirrors, free of charge. | ||
| 16 | |||
| 17 | * Updates | ||
| 18 | |||
| 19 | You can always find the most recent version of this list of GNU FTP sites at | ||
| 20 | http://www.gnu.org/order/ftp.html | ||
| 21 | |||
| 22 | * How to FTP | ||
| 23 | |||
| 24 | Use the ftp program on your system (ask locally if you can't find it) | ||
| 25 | to connect to the host you are ftping from. Unless indicated | ||
| 26 | otherwise, login in as user "anonymous", with password: "your e-mail | ||
| 27 | address" and set "binary" mode (to transfer all eight bits in each | ||
| 28 | byte). | ||
| 29 | |||
| 30 | ALWAYS USE BINARY/IMAGE MODE TO TRANSFER THESE FILES! | ||
| 31 | Text mode does not work for tar files or compressed files. | ||
| 32 | |||
| 33 | * GNU Software and How To FTP It | ||
| 34 | |||
| 35 | GNU software is available on ftp.gnu.org under the directory /gnu. | ||
| 36 | diff files to convert between versions exist for some of these | ||
| 37 | programs. Some programs have misc support files as well. Have a look | ||
| 38 | on ftp.gnu.org to see which ones. In most cases, the tar or diff | ||
| 39 | files are compressed with the `gzip' program; this is indicated with | ||
| 40 | the .gz suffix. Binaries for gzip can be downloaded from | ||
| 41 | http://www.gzip.org. | ||
| 42 | |||
| 43 | Descriptions of GNU software are available at | ||
| 44 | http://www.gnu.org/software/software.html | ||
| 45 | and in the Free Software Directory at | ||
| 46 | http://www.gnu.org/directory/index.html | ||
| 47 | |||
| 48 | * Alternative Internet FTP Sources | ||
| 49 | |||
| 50 | The canonical GNU ftp site is located at ftp.gnu.org/gnu. | ||
| 51 | You should probably use one of the many mirrors of that site - the | ||
| 52 | mirrors will be less busy, and you can find one closer to your site. | ||
| 53 | |||
| 54 | * GNU FTP Site Mirror List | ||
| 55 | |||
| 56 | United States: | ||
| 57 | |||
| 58 | |||
| 59 | California - mirrors.kernel.org/gnu, http://mirrors.kernel.org/gnu | ||
| 60 | California - gatekeeper.dec.com/pub/GNU/ | ||
| 61 | California - ftp.keystealth.org/pub/gnu/ | ||
| 62 | Illinois - uiarchive.cso.uiuc.edu/pub/ftp/ftp.gnu.org/gnu/ | ||
| 63 | Indiana - ftp.in-span.net/pub/mirrors/ftp.gnu.org/ | ||
| 64 | Kentucky - gnu.ms.uky.edu/pub/mirrors/gnu/ | ||
| 65 | Maryland - ftp.digex.net/pub/gnu/ | ||
| 66 | Massachusetts - aeneas.mit.edu/pub/gnu/ | ||
| 67 | Michigan - ftp.egr.msu.edu/pub/gnu/, http://ftp.egr.msu.edu/pub/gnu/ | ||
| 68 | Michigan - ftp.wayne.edu/gnu_mirror/ | ||
| 69 | Missouri - wuarchive.wustl.edu/systems/gnu/ | ||
| 70 | New Jersey - gnu.teleglobe.net/ftp.gnu.org/ | ||
| 71 | New York - ftp.cs.columbia.edu/archives/gnu/prep/ | ||
| 72 | New York - ftp.ece.cornell.edu/pub/mirrors/gnu/ | ||
| 73 | North Carolina - http://www.ibiblio.org/pub/gnu/ | ||
| 74 | Ohio - ftp.cis.ohio-state.edu/mirror/gnu/ | ||
| 75 | Pennsylvania - boron.club.cc.cmu.edu/gnu/ | ||
| 76 | Tennessee - sunsite.utk.edu/pub/gnu/ftp/, thales.memphis.edu/pub/gnu/ | ||
| 77 | Washington - ftp.nodomainname.net/pub/mirrors/gnu/, gnu.wwc.edu/ | ||
| 78 | Wisconsin - ftp.twtelecom.net/pub/GNU/ | ||
| 79 | |||
| 80 | Africa: | ||
| 81 | |||
| 82 | South Africa - ftp.sun.ac.za/mirrorsites/ftp.gnu.org/pub/gnu | ||
| 83 | |||
| 84 | The Americas: | ||
| 85 | |||
| 86 | Brazil - ftp.unicamp.br/pub/gnu/ | ||
| 87 | Brazil - master.softaplic.com.br/pub/gnu/ | ||
| 88 | Brazil - ftp.matrix.com.br/pub/gnu/ | ||
| 89 | Canada - ftp.cs.ubc.ca/mirror2/gnu/ | ||
| 90 | Chile - ftp.inf.utfsm.cl/pub/gnu/ | ||
| 91 | Costa Rica - sunsite.ulatina.ac.cr/Mirrors/GNU/ | ||
| 92 | Mexico - www.gnu.unam.mx/pub/gnu/software/ | ||
| 93 | Mexico - gnu.cem.itesm.mx/pub/mirrors/gnu.org/ | ||
| 94 | Mexico - ftp.azc.uam.mx/mirrors/gnu/ | ||
| 95 | |||
| 96 | Australia: | ||
| 97 | |||
| 98 | Australia - mirror.aarnet.edu.au/pub/gnu/ | ||
| 99 | Australia - gnu.mirror.pacific.net.au/gnu/ | ||
| 100 | |||
| 101 | Asia: | ||
| 102 | |||
| 103 | China - ftp.sea9.com/pub/gnu/ | ||
| 104 | China - ftp.cs.cuhk.edu.hk/pub/gnu/gnu/ | ||
| 105 | China - sunsite.ust.hk/pub/gnu/ | ||
| 106 | China - ftp.shellhung.org/pub/gnu/ | ||
| 107 | India - ftp.kernel.org.in/gnu.org/ | ||
| 108 | India - http://kernel.org.in/mirrors/gnu.org/ | ||
| 109 | India - www.imtech.res.in/mirror/gnuftp/ | ||
| 110 | Indonesia - sapi.vlsm.org/gnu | ||
| 111 | Indonesia - http://sapi.vlsm.org/gnu/ | ||
| 112 | Israel - ftp.cs.huji.ac.il/mirror/GNU | ||
| 113 | Japan - tron.um.u-tokyo.ac.jp/pub/GNU/prep/ | ||
| 114 | Japan - core.ring.gr.jp/pub/GNU/ | ||
| 115 | Japan - ftp.ring.gr.jp/pub/GNU/ | ||
| 116 | Japan - mirrors.hbi.co.jp/gnu/ | ||
| 117 | Japan - ftp.ayamura.org/pub/gnu/ | ||
| 118 | Korea - cair-archive.kaist.ac.kr/pub/gnu/ (Internet address 143.248.186.3) | ||
| 119 | Korea - ftpmirror.hanyang.ac.kr/GNU/ | ||
| 120 | Korea - ftp.linux.sarang.net/mirror/gnu/gnu/ (also mirrors alpha.gnu.org/gnu/ at ../alpha/) | ||
| 121 | Korea - ftp.xgate.co.kr/pub/mirror/gnu/ | ||
| 122 | Saudi Arabia - ftp.isu.net.sa/pub/gnu/ | ||
| 123 | Taiwan - ftp.nctu.edu.tw/UNIX/gnu/, coda.nctu.edu.tw/UNIX/gnu/ | ||
| 124 | Taiwan - ftp1.sinica.edu.tw/pub3/GNU/gnu/ | ||
| 125 | Thailand - ftp.nectec.or.th/pub/mirrors/gnu/ | ||
| 126 | |||
| 127 | Europe: | ||
| 128 | |||
| 129 | Austria - ftp.gnu.vbs.at/ | ||
| 130 | Austria - ftp.univie.ac.at/packages/gnu/ | ||
| 131 | Austria - gd.tuwien.ac.at/gnu/gnusrc/ | ||
| 132 | Austria - http://gd.tuwien.ac.at/gnu/gnusrc/ | ||
| 133 | Czech Republic - ftp.fi.muni.cz/pub/gnu/ | ||
| 134 | Denmark - ftp.denet.dk/mirror/ftp.gnu.org/pub/gnu | ||
| 135 | Denmark - ftp.dkuug.dk/pub/gnu/ | ||
| 136 | Denmark - sunsite.dk/mirrors/gnu, http://mirrors.sunsite.dk/gnu | ||
| 137 | Finland - ftp.funet.fi/pub/gnu/prep/ | ||
| 138 | France - ftp.irisa.fr/pub/gnu/ | ||
| 139 | France - ftp.medasys-digital-systems.fr/pub/gnu/ | ||
| 140 | France - ftp.cs.univ-paris8.fr/mirrors/ftp.gnu.org/ | ||
| 141 | Germany - ftp.cs.tu-berlin.de/pub/gnu/ | ||
| 142 | Germany - ftp.fh-worms.de/pub/mirror/ftp.gnu.org/ | ||
| 143 | Germany - ftp.leo.org/pub/comp/os/unix/gnu/ | ||
| 144 | Germany - ftp.informatik.rwth-aachen.de/pub/gnu/ | ||
| 145 | Germany - ftp.de.uu.net/pub/gnu/ | ||
| 146 | Germany - ftp.freenet.de/pub/ftp.gnu.org/gnu/ | ||
| 147 | Germany - ftp.cs.uni-bonn.de/pub/gnu/ | ||
| 148 | Germany - ftp-stud.fht-esslingen.de/pub/Mirrors/ftp.gnu.org/ | ||
| 149 | Germany - http://ftp-stud.fht-esslingen.de/pub/Mirrors/ftp.gnu.org/ | ||
| 150 | Germany - ftp.stw-bonn.de/pub/mirror/ftp.gnu.org/ | ||
| 151 | Greece - ftp.forthnet.gr/pub/gnu/ | ||
| 152 | Greece - ftp.ntua.gr/pub/gnu/ | ||
| 153 | Greece - ftp.duth.gr/pub/gnu/ | ||
| 154 | Greece - ftp.physics.auth.gr/pub/gnu/ | ||
| 155 | Ireland - ftp.esat.net/pub/gnu/ (Internet address 193.120.14.241) | ||
| 156 | Italy - ftp.oasi.gpa.it/pub/gnu/ | ||
| 157 | Italy - ftp.lugroma2.org/pub/gnu/ | ||
| 158 | Netherlands - ftp.nluug.nl/pub/gnu/ | ||
| 159 | Netherlands - ftp.mirror.nl/pub/mirror/gnu/ | ||
| 160 | Netherlands - ftp.nl.uu.net/pub/gnu/ | ||
| 161 | Netherlands - mirror.widexs.nl/pub/gnu/ | ||
| 162 | Norway - ftp.gnu.no/ | ||
| 163 | Poland - sunsite.icm.edu.pl/pub/gnu/ | ||
| 164 | Portugal - ftp.ist.utl.pt/pub/GNU/gnu/ | ||
| 165 | Romania - ftp.timisoara.roedu.net/mirrors/ftp.gnu.org/pub/gnu | ||
| 166 | Russia - ftp.chg.ru/pub/gnu/ | ||
| 167 | Slovenia - ftp.arnes.si/software/gnu/ | ||
| 168 | Spain - ftp.etsimo.uniovi.es/pub/gnu/ | ||
| 169 | Spain - ftp.rediris.es/pub/gnu/ | ||
| 170 | Sweden - ftp.isy.liu.se/pub/gnu/ | ||
| 171 | Sweden - ftp.stacken.kth.se/pub/gnu/ | ||
| 172 | Sweden - ftp.sunet.se/pub/gnu/; also mirrors /non-gnu | ||
| 173 | Sweden - ftp.chl.chalmers.se/pub/gnu/ | ||
| 174 | Switzerland - sunsite.cnlab-switch.ch/mirror/gnu/ | ||
| 175 | Ukraine - mirddin.farlep.net/pub/GNU/ | ||
| 176 | United Kingdom - ftp.mcc.ac.uk/pub/gnu/ | ||
| 177 | United Kingdom - ftp.mirror.ac.uk/sites/ftp.gnu.org/pub/gnu/ | ||
| 178 | United Kingdom - ftp.warwick.ac.uk/pub/gnu/ (Internet address 137.205.192.13) | ||
| 179 | United Kingdom - ftp.hands.com/ftp.gnu.org/ | ||
| 180 | United Kingdom - gnu.teleglobe.net/ftp.gnu.org/ | ||
| 181 | |||
| 182 | * How to FTP GNU Emacs | ||
| 183 | |||
| 184 | Emacs is in the directory /gnu/emacs on ftp.gnu.org. The emacs | ||
| 185 | distribution itself has a filename in the form emacs-M.N.tar.gz, where | ||
| 186 | M and N stand for the version numbers; the Emacs Lisp Reference Manual | ||
| 187 | is in a separate file, named elisp-manual-NN.tar.gz. | ||
| 188 | |||
| 189 | * Scheme and How to FTP It | ||
| 190 | |||
| 191 | The latest distribution version of C Scheme is available via anonymous FTP | ||
| 192 | from swiss-ftp.ai.mit.edu in /pub/scheme-X.X/ (where X.X is some version | ||
| 193 | number). | ||
| 194 | |||
| 195 | Read the files INSTALL and README in the top level C Scheme directory. | ||
| 196 | |||
| 197 | * TeX and How to Obtain It | ||
| 198 | |||
| 199 | We don't distribute TeX now, but it is free software. | ||
| 200 | |||
| 201 | TeX is a document formatter that is used, among other things, by the FSF | ||
| 202 | for all its documentation. You will need it if you want to make printed | ||
| 203 | manuals. | ||
| 204 | |||
| 205 | TeX is freely redistributable. You can get it by ftp, tape, or CD/ROM. | ||
| 206 | |||
| 207 | ** For FTP instructions, retrieve the file | ||
| 208 | ftp.cs.umb.edu/pub/tex/unixtex.ftp. (We don't include it here because it | ||
| 209 | changes relatively frequently. Sorry.) | ||
| 210 | |||
| 211 | ** A minimal TeX collection (enough to process Texinfo files, anyway) | ||
| 212 | is included on the GNU source CD-ROM. See the file ORDERS in this | ||
| 213 | directory for more information. | ||
| 214 | |||
| 215 | * GNU Software for VMS | ||
| 216 | |||
| 217 | - http://www.lp.se/gnu-vms/- lots of GNU ports to VMS, | ||
| 218 | including Emacs 19, GCC, Bison, Make, RCS. | ||
| 219 | |||
| 220 | * If You Like The Software | ||
| 221 | |||
| 222 | If you like the software developed and distributed by the Free | ||
| 223 | Software Foundation, please express your satisfaction with a donation. | ||
| 224 | Your donations will help to support the Foundation and make our future | ||
| 225 | efforts successful. The Foundation continues to improve GNU programs | ||
| 226 | and encourage the writing of new free software to enhance GNU/Linux | ||
| 227 | and GNU/Hurd systems. For more information on GNU and the Foundation, | ||
| 228 | see our web site at http://www.gnu.org. | ||
| 229 | |||
| 230 | Ordering a GNU Source Code CD-ROM or Source Code CD-ROM Subscription | ||
| 231 | is a good way for your organization to help support our work. You can | ||
| 232 | also purchase printed manuals, reference cards, t-shirts, and other | ||
| 233 | items. See our online ordering form at http://order.fsf.org for | ||
| 234 | details. | ||
| @@ -192,7 +192,7 @@ default; they just include the files that you need to run Emacs, but | |||
| 192 | not those you need to compile it. For example, to compile Emacs with | 192 | not those you need to compile it. For example, to compile Emacs with |
| 193 | X11 support, you may need to install the special `X11 development' | 193 | X11 support, you may need to install the special `X11 development' |
| 194 | package. For example, in April 2003, the package names to install | 194 | package. For example, in April 2003, the package names to install |
| 195 | were `XFree86-devel' and `Xaw3d-devel' on RedHat. On Debian, the | 195 | were `XFree86-devel' and `Xaw3d-devel' on Red Hat. On Debian, the |
| 196 | packages necessary to build the installed version should be | 196 | packages necessary to build the installed version should be |
| 197 | sufficient; they can be installed using `apt-get build-dep emacs21' in | 197 | sufficient; they can be installed using `apt-get build-dep emacs21' in |
| 198 | Debian 3 and above. | 198 | Debian 3 and above. |
| @@ -353,7 +353,7 @@ tests in FILE instead of `config.cache'. Set FILE to `/dev/null' to | |||
| 353 | disable caching, for debugging `configure'. | 353 | disable caching, for debugging `configure'. |
| 354 | 354 | ||
| 355 | If the description of the system configuration printed by `configure' | 355 | If the description of the system configuration printed by `configure' |
| 356 | is not right, or if it claims some of the fatures or libraries are not | 356 | is not right, or if it claims some of the features or libraries are not |
| 357 | available when you know they are, look at the `config.log' file for | 357 | available when you know they are, look at the `config.log' file for |
| 358 | the trace of the failed tests performed by `configure' to check | 358 | the trace of the failed tests performed by `configure' to check |
| 359 | whether these features are supported. Typically, some test fails | 359 | whether these features are supported. Typically, some test fails |
| @@ -364,11 +364,12 @@ Some tests might fail because the compiler should look in special | |||
| 364 | directories for some header files, or link against optional | 364 | directories for some header files, or link against optional |
| 365 | libraries, or use special compilation options. You can force | 365 | libraries, or use special compilation options. You can force |
| 366 | `configure' and the build process which follows it to do that by | 366 | `configure' and the build process which follows it to do that by |
| 367 | setting the variables CPPFLAGS, CFLAGS, LDFLAGS, LIBS, and CC before | 367 | setting the variables CPPFLAGS, CFLAGS, LDFLAGS, LIBS, CPP and CC |
| 368 | running `configure'. CPPFLAGS lists the options passed to the | 368 | before running `configure'. CPP is the command which invokes the |
| 369 | preprocessor, CFLAGS are compilation options, LDFLAGS are options used | 369 | preprocessor, CPPFLAGS lists the options passed to it, CFLAGS are |
| 370 | when linking, LIBS are libraries to link against, and CC is the | 370 | compilation options, LDFLAGS are options used when linking, LIBS are |
| 371 | command which invokes the compiler. | 371 | libraries to link against, and CC is the command which invokes the |
| 372 | compiler. | ||
| 372 | 373 | ||
| 373 | Here's an example of a `configure' invocation, assuming a Bourne-like | 374 | Here's an example of a `configure' invocation, assuming a Bourne-like |
| 374 | shell such as Bash, which uses these variables: | 375 | shell such as Bash, which uses these variables: |
| @@ -385,7 +386,7 @@ libraries in addition to the standard ones. | |||
| 385 | 386 | ||
| 386 | For some libraries, like Gtk+, fontconfig and ALSA, `configure' use | 387 | For some libraries, like Gtk+, fontconfig and ALSA, `configure' use |
| 387 | pkg-config to find where those libraries are installed. | 388 | pkg-config to find where those libraries are installed. |
| 388 | If you wan't pkg-config to look in special directories, you have to set | 389 | If you want pkg-config to look in special directories, you have to set |
| 389 | the environment variable PKG_CONFIG_PATH to point to the directories | 390 | the environment variable PKG_CONFIG_PATH to point to the directories |
| 390 | where the .pc-files for those libraries are. | 391 | where the .pc-files for those libraries are. |
| 391 | For example: | 392 | For example: |
| @@ -703,8 +704,8 @@ the following steps. | |||
| 703 | the paths to the values specified in `./Makefile'. | 704 | the paths to the values specified in `./Makefile'. |
| 704 | 705 | ||
| 705 | 2) Go to directory `./lib-src' and run `make'. This creates | 706 | 2) Go to directory `./lib-src' and run `make'. This creates |
| 706 | executables named `ctags' and `etags' and `wakeup' and `make-docfile' | 707 | executables named `ctags' and `etags' and `make-docfile' and |
| 707 | and `digest-doc' and `test-distrib'. And others. | 708 | `digest-doc' and `test-distrib'. And others. |
| 708 | 709 | ||
| 709 | 3) Go to directory `./src' and Run `make'. This refers to files in | 710 | 3) Go to directory `./src' and Run `make'. This refers to files in |
| 710 | the `./lisp' and `./lib-src' subdirectories using names `../lisp' and | 711 | the `./lisp' and `./lib-src' subdirectories using names `../lisp' and |
| @@ -732,8 +733,8 @@ in `./lib-src' to their final destinations, as selected in `./src/paths.h'. | |||
| 732 | 733 | ||
| 733 | Strictly speaking, not all of the executables in `./lib-src' need be copied. | 734 | Strictly speaking, not all of the executables in `./lib-src' need be copied. |
| 734 | - The programs `cvtmail', `fakemail', `hexl', | 735 | - The programs `cvtmail', `fakemail', `hexl', |
| 735 | `movemail', `profile', `rcs2log', `timer', `vcdiff', `wakeup', | 736 | `movemail', `profile', `rcs2log', and `vcdiff' are used by Emacs; |
| 736 | and `yow' are used by Emacs; they do need to be copied. | 737 | they do need to be copied. |
| 737 | - The programs `etags', `ctags', `emacsclient', `b2m', and `rcs-checkin' | 738 | - The programs `etags', `ctags', `emacsclient', `b2m', and `rcs-checkin' |
| 738 | are intended to be run by users; they are handled below. | 739 | are intended to be run by users; they are handled below. |
| 739 | - The programs `make-docfile' and `test-distrib' were | 740 | - The programs `make-docfile' and `test-distrib' were |
| @@ -3,7 +3,7 @@ Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007 | |||
| 3 | See the end of the file for license conditions. | 3 | See the end of the file for license conditions. |
| 4 | 4 | ||
| 5 | 5 | ||
| 6 | This directory tree holds version 22.0.97 of GNU Emacs, the extensible, | 6 | This directory tree holds version 22.0.98 of GNU Emacs, the extensible, |
| 7 | customizable, self-documenting real-time display editor. | 7 | customizable, self-documenting real-time display editor. |
| 8 | 8 | ||
| 9 | The file INSTALL in this directory says how to build and install GNU | 9 | The file INSTALL in this directory says how to build and install GNU |
diff --git a/admin/FOR-RELEASE b/admin/FOR-RELEASE index b03b1e8aea1..90ca44fbc5b 100644 --- a/admin/FOR-RELEASE +++ b/admin/FOR-RELEASE | |||
| @@ -5,8 +5,6 @@ Tasks needed before the next release. | |||
| 5 | ** Check for widow and orphan lines in manuals; | 5 | ** Check for widow and orphan lines in manuals; |
| 6 | make sure all the pages really look ok in the manual as formatted. | 6 | make sure all the pages really look ok in the manual as formatted. |
| 7 | 7 | ||
| 8 | ** Cleanup temporary +++/--- lines in etc/NEWS. | ||
| 9 | |||
| 10 | ** Regenerate the postscript files of the reference cards in etc. | 8 | ** Regenerate the postscript files of the reference cards in etc. |
| 11 | 9 | ||
| 12 | ** Ask maintainers of refcard translations to update them. | 10 | ** Ask maintainers of refcard translations to update them. |
| @@ -24,9 +22,6 @@ sk Miroslav Vaško No response | |||
| 24 | 22 | ||
| 25 | Reminders sent out on 2006-06-08. | 23 | Reminders sent out on 2006-06-08. |
| 26 | 24 | ||
| 27 | ** Send an email to the various distributions, including the GNOME | ||
| 28 | and KDE projects, to use the new Emacs icons in etc/images/icons. | ||
| 29 | |||
| 30 | * WINDOWS SUPPORT BUGS. | 25 | * WINDOWS SUPPORT BUGS. |
| 31 | 26 | ||
| 32 | These don't need to be fixed before a release, but we call the | 27 | These don't need to be fixed before a release, but we call the |
| @@ -41,9 +36,19 @@ to the hack introduced on 2005-07-01 to fix some other Cleartype problem. | |||
| 41 | 36 | ||
| 42 | * BUGS | 37 | * BUGS |
| 43 | 38 | ||
| 44 | ** spurious scrolling bug | 39 | ** python.el legal problem? |
| 40 | http://lists.gnu.org/archive/html/emacs-pretest-bug/2007-04/msg00459.html | ||
| 41 | |||
| 42 | ** rcyeske@gmail.com, April 22: Failure to build on OpenBSD macppc. | ||
| 43 | OpenBSD compilation works on i386. | ||
| 44 | |||
| 45 | ** bojohan+news@dd.chalmers.se, April 23: delete-overlay causes recentering | ||
| 46 | (This is now the same as the spurious scrolling bug.) | ||
| 47 | |||
| 48 | ** finish fixing locate.el | ||
| 45 | 49 | ||
| 46 | ** crash in gc_sweep | 50 | ** angeli@caeruleus.net, April 23: Excessive refontification when setting |
| 51 | jit-lock-context-unfontify-pos | ||
| 47 | 52 | ||
| 48 | * DOCUMENTATION | 53 | * DOCUMENTATION |
| 49 | 54 | ||
diff --git a/admin/notes/copyright b/admin/notes/copyright index 9fddd4f63b9..d7f12bd8ad4 100644 --- a/admin/notes/copyright +++ b/admin/notes/copyright | |||
| @@ -306,6 +306,13 @@ originally. Although we have the legal right to switch to v2 or later, | |||
| 306 | rms prefers that we do not do so. | 306 | rms prefers that we do not do so. |
| 307 | 307 | ||
| 308 | 308 | ||
| 309 | man/*.texi - All manuals should be under GFDL, and should include a | ||
| 310 | copy of it, so that they can be distributed separately. faq.texi has | ||
| 311 | a different license, for some reason no-one can remember. | ||
| 312 | http://lists.gnu.org/archive/html/emacs-devel/2007-04/msg00583.html | ||
| 313 | http://lists.gnu.org/archive/html/emacs-devel/2007-04/msg00618.html | ||
| 314 | |||
| 315 | |||
| 309 | msdos/is_exec.c, sigaction.c - these files are copyright DJ Delorie. | 316 | msdos/is_exec.c, sigaction.c - these files are copyright DJ Delorie. |
| 310 | Leave the copyrights alone. Leave the Eli Zaretskii copyright in | 317 | Leave the copyrights alone. Leave the Eli Zaretskii copyright in |
| 311 | is_exec.c alone. See the msdos/README file for the legal history of | 318 | is_exec.c alone. See the msdos/README file for the legal history of |
| @@ -404,6 +411,17 @@ src/unexhp9k800.c (and dependent src/m/sr2k.h) | |||
| 404 | HP. So this file is public domain. | 411 | HP. So this file is public domain. |
| 405 | 412 | ||
| 406 | 413 | ||
| 414 | K Rodgers changes | ||
| 415 | It was pointed out that K Rodgers only had assigments for VC and | ||
| 416 | ps-print, but had changed several other files. We tried to contact | ||
| 417 | him for a general assignment, but he proved uncommunicative (despite | ||
| 418 | initially indicating to rms he would sign an assignment). As a result, his | ||
| 419 | changes were removed and/or rewritten independently. For details, see | ||
| 420 | threads: | ||
| 421 | http://lists.gnu.org/archive/html/emacs-devel/2007-04/msg00225.html | ||
| 422 | http://lists.gnu.org/archive/html/emacs-devel/2007-04/msg00257.html | ||
| 423 | |||
| 424 | |||
| 407 | ** Issues that are "fixed" for the release of Emacs 22, but we may | 425 | ** Issues that are "fixed" for the release of Emacs 22, but we may |
| 408 | wish to revisit later in more detail | 426 | wish to revisit later in more detail |
| 409 | 427 | ||
| @@ -545,8 +563,8 @@ noted in this file. | |||
| 545 | 563 | ||
| 546 | REMOVED etc/gnu.xpm, nt/icons/emacs21.ico, nt/icons/sink.ico | 564 | REMOVED etc/gnu.xpm, nt/icons/emacs21.ico, nt/icons/sink.ico |
| 547 | - Restore if find legal info. emacs21.ico is not due to Davenport. | 565 | - Restore if find legal info. emacs21.ico is not due to Davenport. |
| 548 | Voelker could not immediately recall anything, but will check and | 566 | Geoff Voelker checked but could not find a record of where it came |
| 549 | let us know if he finds anything. | 567 | from. |
| 550 | 568 | ||
| 551 | 569 | ||
| 552 | etc/images | 570 | etc/images |
| @@ -3026,6 +3026,8 @@ _ACEOF | |||
| 3026 | ;; | 3026 | ;; |
| 3027 | *-sunos5* | *-solaris* ) | 3027 | *-sunos5* | *-solaris* ) |
| 3028 | opsys=sol2-6 | 3028 | opsys=sol2-6 |
| 3029 | ## FIXME: make this into a proper fix that checks the compiler type, | ||
| 3030 | ## rather than relying on path. Or is /usr/ccs/lib/cpp a bad default now? | ||
| 3029 | if [ "x$CC" = x/opt/SUNWspro/bin/cc ]; then | 3031 | if [ "x$CC" = x/opt/SUNWspro/bin/cc ]; then |
| 3030 | ## -Xs prevents spurious whitespace. | 3032 | ## -Xs prevents spurious whitespace. |
| 3031 | NON_GNU_CPP="/opt/SUNWspro/bin/cc -E -Xs" | 3033 | NON_GNU_CPP="/opt/SUNWspro/bin/cc -E -Xs" |
| @@ -11723,7 +11725,7 @@ _ACEOF | |||
| 11723 | fi | 11725 | fi |
| 11724 | fi | 11726 | fi |
| 11725 | 11727 | ||
| 11726 | if test x"${USE_X_TOOLKIT}" = xmaybe; then | 11728 | if test x"${USE_X_TOOLKIT}" = xmaybe || test x"${USE_X_TOOLKIT}" = xLUCID; then |
| 11727 | if test x"${HAVE_X11R5}" = xyes; then | 11729 | if test x"${HAVE_X11R5}" = xyes; then |
| 11728 | { echo "$as_me:$LINENO: checking X11 version 5 with Xaw" >&5 | 11730 | { echo "$as_me:$LINENO: checking X11 version 5 with Xaw" >&5 |
| 11729 | echo $ECHO_N "checking X11 version 5 with Xaw... $ECHO_C" >&6; } | 11731 | echo $ECHO_N "checking X11 version 5 with Xaw... $ECHO_C" >&6; } |
| @@ -11782,9 +11784,15 @@ fi | |||
| 11782 | echo "${ECHO_T}5 or newer, with Xaw; use toolkit by default" >&6; } | 11784 | echo "${ECHO_T}5 or newer, with Xaw; use toolkit by default" >&6; } |
| 11783 | USE_X_TOOLKIT=LUCID | 11785 | USE_X_TOOLKIT=LUCID |
| 11784 | else | 11786 | else |
| 11785 | { echo "$as_me:$LINENO: result: before 5 or no Xaw; do not use toolkit by default" >&5 | 11787 | if test x"${USE_X_TOOLKIT}" = xLUCID; then |
| 11788 | { { echo "$as_me:$LINENO: error: Lucid toolkit requires X11/Xaw include files" >&5 | ||
| 11789 | echo "$as_me: error: Lucid toolkit requires X11/Xaw include files" >&2;} | ||
| 11790 | { (exit 1); exit 1; }; } | ||
| 11791 | else | ||
| 11792 | { echo "$as_me:$LINENO: result: before 5 or no Xaw; do not use toolkit by default" >&5 | ||
| 11786 | echo "${ECHO_T}before 5 or no Xaw; do not use toolkit by default" >&6; } | 11793 | echo "${ECHO_T}before 5 or no Xaw; do not use toolkit by default" >&6; } |
| 11787 | USE_X_TOOLKIT=none | 11794 | USE_X_TOOLKIT=none |
| 11795 | fi | ||
| 11788 | fi | 11796 | fi |
| 11789 | else | 11797 | else |
| 11790 | USE_X_TOOLKIT=none | 11798 | USE_X_TOOLKIT=none |
| @@ -12924,13 +12932,13 @@ echo "${ECHO_T}yes" >&6; } | |||
| 12924 | 12932 | ||
| 12925 | { echo "$as_me:$LINENO: checking FREETYPE_CFLAGS" >&5 | 12933 | { echo "$as_me:$LINENO: checking FREETYPE_CFLAGS" >&5 |
| 12926 | echo $ECHO_N "checking FREETYPE_CFLAGS... $ECHO_C" >&6; } | 12934 | echo $ECHO_N "checking FREETYPE_CFLAGS... $ECHO_C" >&6; } |
| 12927 | FREETYPE_CFLAGS=`$PKG_CONFIG --cflags "freetype2"` | 12935 | FREETYPE_CFLAGS=`$PKG_CONFIG --cflags "freetype2"|sed -e 's,///*,/,g'` |
| 12928 | { echo "$as_me:$LINENO: result: $FREETYPE_CFLAGS" >&5 | 12936 | { echo "$as_me:$LINENO: result: $FREETYPE_CFLAGS" >&5 |
| 12929 | echo "${ECHO_T}$FREETYPE_CFLAGS" >&6; } | 12937 | echo "${ECHO_T}$FREETYPE_CFLAGS" >&6; } |
| 12930 | 12938 | ||
| 12931 | { echo "$as_me:$LINENO: checking FREETYPE_LIBS" >&5 | 12939 | { echo "$as_me:$LINENO: checking FREETYPE_LIBS" >&5 |
| 12932 | echo $ECHO_N "checking FREETYPE_LIBS... $ECHO_C" >&6; } | 12940 | echo $ECHO_N "checking FREETYPE_LIBS... $ECHO_C" >&6; } |
| 12933 | FREETYPE_LIBS=`$PKG_CONFIG --libs "freetype2"` | 12941 | FREETYPE_LIBS=`$PKG_CONFIG --libs "freetype2"|sed -e 's,///*,/,g'` |
| 12934 | { echo "$as_me:$LINENO: result: $FREETYPE_LIBS" >&5 | 12942 | { echo "$as_me:$LINENO: result: $FREETYPE_LIBS" >&5 |
| 12935 | echo "${ECHO_T}$FREETYPE_LIBS" >&6; } | 12943 | echo "${ECHO_T}$FREETYPE_LIBS" >&6; } |
| 12936 | else | 12944 | else |
| @@ -13021,13 +13029,13 @@ echo "${ECHO_T}yes" >&6; } | |||
| 13021 | 13029 | ||
| 13022 | { echo "$as_me:$LINENO: checking FONTCONFIG_CFLAGS" >&5 | 13030 | { echo "$as_me:$LINENO: checking FONTCONFIG_CFLAGS" >&5 |
| 13023 | echo $ECHO_N "checking FONTCONFIG_CFLAGS... $ECHO_C" >&6; } | 13031 | echo $ECHO_N "checking FONTCONFIG_CFLAGS... $ECHO_C" >&6; } |
| 13024 | FONTCONFIG_CFLAGS=`$PKG_CONFIG --cflags "fontconfig"` | 13032 | FONTCONFIG_CFLAGS=`$PKG_CONFIG --cflags "fontconfig"|sed -e 's,///*,/,g'` |
| 13025 | { echo "$as_me:$LINENO: result: $FONTCONFIG_CFLAGS" >&5 | 13033 | { echo "$as_me:$LINENO: result: $FONTCONFIG_CFLAGS" >&5 |
| 13026 | echo "${ECHO_T}$FONTCONFIG_CFLAGS" >&6; } | 13034 | echo "${ECHO_T}$FONTCONFIG_CFLAGS" >&6; } |
| 13027 | 13035 | ||
| 13028 | { echo "$as_me:$LINENO: checking FONTCONFIG_LIBS" >&5 | 13036 | { echo "$as_me:$LINENO: checking FONTCONFIG_LIBS" >&5 |
| 13029 | echo $ECHO_N "checking FONTCONFIG_LIBS... $ECHO_C" >&6; } | 13037 | echo $ECHO_N "checking FONTCONFIG_LIBS... $ECHO_C" >&6; } |
| 13030 | FONTCONFIG_LIBS=`$PKG_CONFIG --libs "fontconfig"` | 13038 | FONTCONFIG_LIBS=`$PKG_CONFIG --libs "fontconfig"|sed -e 's,///*,/,g'` |
| 13031 | { echo "$as_me:$LINENO: result: $FONTCONFIG_LIBS" >&5 | 13039 | { echo "$as_me:$LINENO: result: $FONTCONFIG_LIBS" >&5 |
| 13032 | echo "${ECHO_T}$FONTCONFIG_LIBS" >&6; } | 13040 | echo "${ECHO_T}$FONTCONFIG_LIBS" >&6; } |
| 13033 | else | 13041 | else |
diff --git a/configure.in b/configure.in index b536d8dc105..46d574171e0 100644 --- a/configure.in +++ b/configure.in | |||
| @@ -1039,6 +1039,8 @@ dnl see the `changequote' comment above. | |||
| 1039 | ;; | 1039 | ;; |
| 1040 | *-sunos5* | *-solaris* ) | 1040 | *-sunos5* | *-solaris* ) |
| 1041 | opsys=sol2-6 | 1041 | opsys=sol2-6 |
| 1042 | ## FIXME: make this into a proper fix that checks the compiler type, | ||
| 1043 | ## rather than relying on path. Or is /usr/ccs/lib/cpp a bad default now? | ||
| 1042 | if [ "x$CC" = x/opt/SUNWspro/bin/cc ]; then | 1044 | if [ "x$CC" = x/opt/SUNWspro/bin/cc ]; then |
| 1043 | ## -Xs prevents spurious whitespace. | 1045 | ## -Xs prevents spurious whitespace. |
| 1044 | NON_GNU_CPP="/opt/SUNWspro/bin/cc -E -Xs" | 1046 | NON_GNU_CPP="/opt/SUNWspro/bin/cc -E -Xs" |
| @@ -2182,7 +2184,7 @@ fi | |||
| 2182 | 2184 | ||
| 2183 | dnl Do not put whitespace before the #include statements below. | 2185 | dnl Do not put whitespace before the #include statements below. |
| 2184 | dnl Older compilers (eg sunos4 cc) choke on it. | 2186 | dnl Older compilers (eg sunos4 cc) choke on it. |
| 2185 | if test x"${USE_X_TOOLKIT}" = xmaybe; then | 2187 | if test x"${USE_X_TOOLKIT}" = xmaybe || test x"${USE_X_TOOLKIT}" = xLUCID; then |
| 2186 | if test x"${HAVE_X11R5}" = xyes; then | 2188 | if test x"${HAVE_X11R5}" = xyes; then |
| 2187 | AC_MSG_CHECKING(X11 version 5 with Xaw) | 2189 | AC_MSG_CHECKING(X11 version 5 with Xaw) |
| 2188 | AC_CACHE_VAL(emacs_cv_x11_version_5_with_xaw, | 2190 | AC_CACHE_VAL(emacs_cv_x11_version_5_with_xaw, |
| @@ -2196,8 +2198,12 @@ if test x"${USE_X_TOOLKIT}" = xmaybe; then | |||
| 2196 | AC_MSG_RESULT([5 or newer, with Xaw; use toolkit by default]) | 2198 | AC_MSG_RESULT([5 or newer, with Xaw; use toolkit by default]) |
| 2197 | USE_X_TOOLKIT=LUCID | 2199 | USE_X_TOOLKIT=LUCID |
| 2198 | else | 2200 | else |
| 2199 | AC_MSG_RESULT(before 5 or no Xaw; do not use toolkit by default) | 2201 | if test x"${USE_X_TOOLKIT}" = xLUCID; then |
| 2200 | USE_X_TOOLKIT=none | 2202 | AC_MSG_ERROR([Lucid toolkit requires X11/Xaw include files]) |
| 2203 | else | ||
| 2204 | AC_MSG_RESULT(before 5 or no Xaw; do not use toolkit by default) | ||
| 2205 | USE_X_TOOLKIT=none | ||
| 2206 | fi | ||
| 2201 | fi | 2207 | fi |
| 2202 | else | 2208 | else |
| 2203 | USE_X_TOOLKIT=none | 2209 | USE_X_TOOLKIT=none |
diff --git a/etc/COOKIES b/etc/COOKIES index fa8894795f0..1d8c0955d42 100644 --- a/etc/COOKIES +++ b/etc/COOKIES | |||
| @@ -26,7 +26,7 @@ Cream together: 2 cups butter | |||
| 26 | Add: 4 eggs | 26 | Add: 4 eggs |
| 27 | 2 tsp. vanilla | 27 | 2 tsp. vanilla |
| 28 | 28 | ||
| 29 | Mis together in | 29 | Mix together in |
| 30 | separate bowl: 4 cups flour | 30 | separate bowl: 4 cups flour |
| 31 | 5 cups oatmeal (put small | 31 | 5 cups oatmeal (put small |
| 32 | amounts of oatmeal in blender until it turns to | 32 | amounts of oatmeal in blender until it turns to |
diff --git a/etc/ChangeLog b/etc/ChangeLog index a93960ea9ef..cbe51839529 100644 --- a/etc/ChangeLog +++ b/etc/ChangeLog | |||
| @@ -1,3 +1,31 @@ | |||
| 1 | 2007-04-22 Glenn Morris <rgm@gnu.org> | ||
| 2 | |||
| 3 | * NEWS: Change to EMACS env-var was reverted, so delete this entry. | ||
| 4 | |||
| 5 | 2007-04-19 Glenn Morris <rgm@gnu.org> | ||
| 6 | |||
| 7 | * PROBLEMS: Expand a little on Emacs not knowing fqdn. | ||
| 8 | |||
| 9 | 2007-04-17 David Kastrup <dak@gnu.org> | ||
| 10 | |||
| 11 | * NEWS: Mention `query-replace-regexp-eval' being deprecated. | ||
| 12 | |||
| 13 | 2007-04-15 Glenn Morris <rgm@gnu.org> | ||
| 14 | |||
| 15 | * FTP: Make it a duplicate of ../FTP. | ||
| 16 | |||
| 17 | 2007-04-14 Glenn Morris <rgm@gnu.org> | ||
| 18 | |||
| 19 | * SERVICE: Replace with a pointer to the web version. | ||
| 20 | |||
| 21 | * emacs.1: Update some of the more obsolete information. | ||
| 22 | |||
| 23 | 2007-04-13 Glenn Morris <rgm@gnu.org> | ||
| 24 | |||
| 25 | * MACHINES: emacserver is removed. | ||
| 26 | |||
| 27 | * MORE.STUFF: Update some links, remove some dead ones. | ||
| 28 | |||
| 1 | 2007-04-04 Slawomir Nowaczyk <slawomir.nowaczyk.847@student.lu.se> | 29 | 2007-04-04 Slawomir Nowaczyk <slawomir.nowaczyk.847@student.lu.se> |
| 2 | 30 | ||
| 3 | * emacs.py (format_exception): New function. | 31 | * emacs.py (format_exception): New function. |
| @@ -567,7 +567,7 @@ are involved in the crash. | |||
| 567 | 567 | ||
| 568 | Once you discover the corrupted Lisp object or data structure, grep | 568 | Once you discover the corrupted Lisp object or data structure, grep |
| 569 | the sources for its uses and try to figure out what could cause the | 569 | the sources for its uses and try to figure out what could cause the |
| 570 | corruption. If looking at the sources doesn;t help, you could try | 570 | corruption. If looking at the sources doesn't help, you could try |
| 571 | setting a watchpoint on the corrupted data, and see what code modifies | 571 | setting a watchpoint on the corrupted data, and see what code modifies |
| 572 | it in some invalid way. (Obviously, this technique is only useful for | 572 | it in some invalid way. (Obviously, this technique is only useful for |
| 573 | data that is modified only very rarely.) | 573 | data that is modified only very rarely.) |
| @@ -731,7 +731,7 @@ prints the backtrace for a crash. It is usually best to look at the | |||
| 731 | disassembly to determine exactly what code is being run--the | 731 | disassembly to determine exactly what code is being run--the |
| 732 | disassembly will probably show several source lines followed by a | 732 | disassembly will probably show several source lines followed by a |
| 733 | block of assembler for those lines. The actual point where Emacs | 733 | block of assembler for those lines. The actual point where Emacs |
| 734 | crashes will be one of those source lines, but not neccesarily the one | 734 | crashes will be one of those source lines, but not necessarily the one |
| 735 | that the debugger reports. | 735 | that the debugger reports. |
| 736 | 736 | ||
| 737 | Another problematic area with the MS debugger is with variables that | 737 | Another problematic area with the MS debugger is with variables that |
diff --git a/etc/DEVEL.HUMOR b/etc/DEVEL.HUMOR index 5a291c458bd..10353c6517a 100644 --- a/etc/DEVEL.HUMOR +++ b/etc/DEVEL.HUMOR | |||
| @@ -178,3 +178,9 @@ still out about that end of time thing." | |||
| 178 | constants with anything like the universality of e and pi." | 178 | constants with anything like the universality of e and pi." |
| 179 | "42" | 179 | "42" |
| 180 | -- Alan Mackenzie and David Hansen | 180 | -- Alan Mackenzie and David Hansen |
| 181 | |||
| 182 | ---------------------------------------------------------------------- | ||
| 183 | |||
| 184 | "[...] So please do not delete anything." | ||
| 185 | "Done." | ||
| 186 | -- RMS and David Kastrup | ||
| @@ -1,2 +1,6 @@ | |||
| 1 | Please refer to <http://www.gnu.org/software/emacs/> for information | 1 | For information about how to obtain GNU Emacs and other GNU software |
| 2 | about obtaining Emacs. | 2 | by FTP, please see <http://www.gnu.org/order/ftp.html>. |
| 3 | |||
| 4 | Information about Emacs is also available at | ||
| 5 | <http://www.gnu.org/software/emacs/>. | ||
| 6 | |||
diff --git a/etc/MACHINES b/etc/MACHINES index 09abc4f0770..83723fccbbc 100644 --- a/etc/MACHINES +++ b/etc/MACHINES | |||
| @@ -126,7 +126,7 @@ Apple PowerPC Macintosh running GNU/Linux | |||
| 126 | Emacs distribution, and remove the "#if 0" and "#endif" directives | 126 | Emacs distribution, and remove the "#if 0" and "#endif" directives |
| 127 | which surround the following block near the end of the file: | 127 | which surround the following block near the end of the file: |
| 128 | 128 | ||
| 129 | #if 0 /* This breaks things on PPC GNU/Linux ecept for Yellowdog, | 129 | #if 0 /* This breaks things on PPC GNU/Linux except for Yellowdog, |
| 130 | even with identical GCC, as, ld. Let's take it out until we | 130 | even with identical GCC, as, ld. Let's take it out until we |
| 131 | know what's really going on here. */ | 131 | know what's really going on here. */ |
| 132 | /* GCC 2.95 and newer on GNU/Linux PPC changed the load address to | 132 | /* GCC 2.95 and newer on GNU/Linux PPC changed the load address to |
| @@ -156,9 +156,8 @@ Apollo running X Windows (m68k-apollo-bsd) | |||
| 156 | installations may have to edit src/Makefile manually after it is created. | 156 | installations may have to edit src/Makefile manually after it is created. |
| 157 | There are too many versions of both cc and X to automate this easily. | 157 | There are too many versions of both cc and X to automate this easily. |
| 158 | 158 | ||
| 159 | In `lib-src/Makefile', emacsclient and emacsserver compile and work fine | 159 | In `lib-src/Makefile', emacsclient compiles and works fine under CC 6.9. |
| 160 | under CC 6.9. They now probably work under other versions of the compiler, | 160 | It now probably works under other versions of the compiler, as well. |
| 161 | as well. | ||
| 162 | 161 | ||
| 163 | The Apollo Domain CC compiler will issue quite a few warning messages, | 162 | The Apollo Domain CC compiler will issue quite a few warning messages, |
| 164 | mostly complaining about incompatible pointers. In general, these are | 163 | mostly complaining about incompatible pointers. In general, these are |
| @@ -1395,7 +1394,7 @@ System V rel 3 (usg5.3) | |||
| 1395 | cannot be made to work. Whether or not the GNU relocating malloc is | 1394 | cannot be made to work. Whether or not the GNU relocating malloc is |
| 1396 | used, the symptom is that the first call Emacs makes to sbrk(0) returns | 1395 | used, the symptom is that the first call Emacs makes to sbrk(0) returns |
| 1397 | (char *)-1. Sorry, you're stuck with character-only mode. Try | 1396 | (char *)-1. Sorry, you're stuck with character-only mode. Try |
| 1398 | installing Xfree86 to fix this. | 1397 | installing XFree86 to fix this. |
| 1399 | 1398 | ||
| 1400 | System V rel 4.0.3 and 4.0.4 (usg5.4) | 1399 | System V rel 4.0.3 and 4.0.4 (usg5.4) |
| 1401 | 1400 | ||
| @@ -1499,11 +1498,10 @@ Xenix (xenix) | |||
| 1499 | to make the Emacs meta key work. | 1498 | to make the Emacs meta key work. |
| 1500 | 1499 | ||
| 1501 | Local variables: | 1500 | Local variables: |
| 1502 | mode: indented-text | 1501 | mode: text |
| 1503 | fill-prefix: " " | 1502 | fill-prefix: " " |
| 1504 | End: | 1503 | End: |
| 1505 | 1504 | ||
| 1506 | |||
| 1507 | This file is part of GNU Emacs. | 1505 | This file is part of GNU Emacs. |
| 1508 | 1506 | ||
| 1509 | GNU Emacs is free software; you can redistribute it and/or modify | 1507 | GNU Emacs is free software; you can redistribute it and/or modify |
diff --git a/etc/MORE.STUFF b/etc/MORE.STUFF index 80ef61ec5bf..8d05d1c4d2c 100644 --- a/etc/MORE.STUFF +++ b/etc/MORE.STUFF | |||
| @@ -47,9 +47,6 @@ You might find bug-fixes or enhancements in these places. | |||
| 47 | 47 | ||
| 48 | * Battery and Info Look: <URL:http://www-cdf.fnal.gov/~sthrlnd/emacs/> | 48 | * Battery and Info Look: <URL:http://www-cdf.fnal.gov/~sthrlnd/emacs/> |
| 49 | 49 | ||
| 50 | * BibTeX: | ||
| 51 | <URL:http://www.ida.ing.tu-bs.de/people/dirk/bibtex/index.html> | ||
| 52 | |||
| 53 | * BS: <URL:http://www.geekware.de/software/emacs/index.html> | 50 | * BS: <URL:http://www.geekware.de/software/emacs/index.html> |
| 54 | 51 | ||
| 55 | * Calculator: <URL:http://www.barzilay.org/misc/calculator.el> | 52 | * Calculator: <URL:http://www.barzilay.org/misc/calculator.el> |
| @@ -85,26 +82,24 @@ You might find bug-fixes or enhancements in these places. | |||
| 85 | 82 | ||
| 86 | * MH-E: <URL:http://mh-e.sourceforge.net/> | 83 | * MH-E: <URL:http://mh-e.sourceforge.net/> |
| 87 | 84 | ||
| 88 | * PC Selection: <URL:ftp://ftp.thp.uni-duisburg.de/pub/source/elisp/> | ||
| 89 | |||
| 90 | * PS mode: <URL:http://odur.let.rug.nl/%7Ekleiweg/postscript/> | 85 | * PS mode: <URL:http://odur.let.rug.nl/%7Ekleiweg/postscript/> |
| 91 | 86 | ||
| 92 | * PS-print: <URL:http://www.cpqd.com.br/~vinicius/emacs/> | 87 | * PS-print: <URL:http://www.emacswiki.org/cgi-bin/wiki/PsPrintPackage> |
| 93 | 88 | ||
| 94 | * QuickURL: <URL:http://www.davep.org/emacs/> | 89 | * QuickURL: <URL:http://www.davep.org/emacs/> |
| 95 | 90 | ||
| 96 | * RefTeX: <URL:http://staff.science.uva.nl/~dominik/Tools/reftex/> | 91 | * RefTeX: <URL:http://www.gnu.org/software/auctex/reftex.html> |
| 97 | 92 | ||
| 98 | * Speedbar, Checkdoc etc: <URL:http://cedet.sourceforge.net/> | 93 | * Speedbar, Checkdoc etc: <URL:http://cedet.sourceforge.net/> |
| 99 | 94 | ||
| 100 | * SQL: <URL:http://www.geocities.com/TimesSquare/6120/emacs.html> | 95 | * SQL: <URL:http://www.emacswiki.org/cgi-bin/wiki/sql.el> |
| 101 | 96 | ||
| 102 | * Tramp: Remote file access via rsh/ssh | 97 | * Tramp: Remote file access via rsh/ssh |
| 103 | <URL:http://savannah.gnu.org/projects/tramp/> | 98 | <URL:http://savannah.gnu.org/projects/tramp/> |
| 104 | 99 | ||
| 105 | * Webjump: <URL:http://www.neilvandyke.org/webjump> | 100 | * Webjump: <URL:http://www.neilvandyke.org/webjump> |
| 106 | 101 | ||
| 107 | * Whitespace: <URL:http://www.dsmit.com/lisp/> | 102 | * Whitespace: <URL:http://www.dsmit.com/lisp/whitespace.el> |
| 108 | 103 | ||
| 109 | * Auxiliary files | 104 | * Auxiliary files |
| 110 | 105 | ||
| @@ -147,7 +142,7 @@ Several are for Debian GNU/Linux in particular. | |||
| 147 | mirrors of the `CTAN' TeX archives. | 142 | mirrors of the `CTAN' TeX archives. |
| 148 | 143 | ||
| 149 | * Dismal: spreadsheet: | 144 | * Dismal: spreadsheet: |
| 150 | <URL:http://www.gnu.org/software/dismal/dismal.html> | 145 | <URL:http://ritter.ist.psu.edu/dismal/dismal.html> |
| 151 | 146 | ||
| 152 | * ECB: Emacs Code Browser: <URL:http://ecb.sourceforge.net/> | 147 | * ECB: Emacs Code Browser: <URL:http://ecb.sourceforge.net/> |
| 153 | 148 | ||
| @@ -177,8 +172,7 @@ Several are for Debian GNU/Linux in particular. | |||
| 177 | <URL:http://emacspeak.sourceforge.net/> | 172 | <URL:http://emacspeak.sourceforge.net/> |
| 178 | 173 | ||
| 179 | * Emacs-w3m : <URL:http://emacs-w3m.namazu.org/> | 174 | * Emacs-w3m : <URL:http://emacs-w3m.namazu.org/> |
| 180 | A simple Emacs interface to w3m, which is a text-mode | 175 | A simple Emacs interface to w3m, which is a text-mode WWW browser |
| 181 | WWW browser | ||
| 182 | 176 | ||
| 183 | * Emacs Wiki Mode: <URL:http://www.mwolson.org/projects/EmacsWiki.html> | 177 | * Emacs Wiki Mode: <URL:http://www.mwolson.org/projects/EmacsWiki.html> |
| 184 | A wiki-like publishing tool and personal information manager | 178 | A wiki-like publishing tool and personal information manager |
| @@ -198,7 +192,7 @@ Several are for Debian GNU/Linux in particular. | |||
| 198 | HTML-specific editing. Can work with PSGML. | 192 | HTML-specific editing. Can work with PSGML. |
| 199 | 193 | ||
| 200 | * Hyperbole: | 194 | * Hyperbole: |
| 201 | <URL:http://ftp.gnu.org/pub/gnu/hyperbole/> | 195 | <URL:http://directory.fsf.org/hyperbole.html> |
| 202 | Hyperbole is an open, efficient, programmable information | 196 | Hyperbole is an open, efficient, programmable information |
| 203 | management and hypertext system. | 197 | management and hypertext system. |
| 204 | 198 | ||
| @@ -222,11 +216,11 @@ Several are for Debian GNU/Linux in particular. | |||
| 222 | nXML mode is an addon for GNU Emacs, which makes GNU Emacs into a | 216 | nXML mode is an addon for GNU Emacs, which makes GNU Emacs into a |
| 223 | powerful XML editor. | 217 | powerful XML editor. |
| 224 | 218 | ||
| 225 | * Planner Mode: <URL:http://www.plannerlove.com/> | 219 | * Planner Mode: <URL:http://wjsullivan.net/PlannerMode> |
| 226 | Planner is an organizer and day planner for Emacs. | 220 | Planner is an organizer and day planner for Emacs. |
| 227 | 221 | ||
| 228 | * Preview LaTeX: embed preview LaTeX images in source buffer. | 222 | * Preview LaTeX: embed preview LaTeX images in source buffer. |
| 229 | <URL:http://preview-latex.sourceforge.net/> | 223 | <URL:http://www.gnu.org/software/auctex/preview-latex> |
| 230 | 224 | ||
| 231 | * PSGML: <URL:http://www.lysator.liu.se/projects/about_psgml.html> | 225 | * PSGML: <URL:http://www.lysator.liu.se/projects/about_psgml.html> |
| 232 | DTD-aware serious SGML/XML editing. | 226 | DTD-aware serious SGML/XML editing. |
| @@ -253,7 +247,7 @@ Several are for Debian GNU/Linux in particular. | |||
| 253 | 247 | ||
| 254 | * Tiny Tools: <URL:http://tiny-tools.sourceforge.net/> | 248 | * Tiny Tools: <URL:http://tiny-tools.sourceforge.net/> |
| 255 | 249 | ||
| 256 | * VM (View Mail): <URL:http://www.wonderworks.com/vm/> Alternative | 250 | * VM (View Mail): <URL:http://www.nongnu.org/viewmail/> Alternative |
| 257 | mail reader. There is a VM newsgroup: <URL:news:gnu.emacs.vm.info> | 251 | mail reader. There is a VM newsgroup: <URL:news:gnu.emacs.vm.info> |
| 258 | 252 | ||
| 259 | * W3: <URL:http://savannah.gnu.org/projects/w3/> | 253 | * W3: <URL:http://savannah.gnu.org/projects/w3/> |
| @@ -269,8 +263,7 @@ Several are for Debian GNU/Linux in particular. | |||
| 269 | shell-script daemon and some LaTeX macros. | 263 | shell-script daemon and some LaTeX macros. |
| 270 | 264 | ||
| 271 | * X-Symbol: <URL:http://x-symbol.sourceforge.net/> | 265 | * X-Symbol: <URL:http://x-symbol.sourceforge.net/> |
| 272 | Quasi-WYSIWYG editing of TeX & al. (It will be improved to take | 266 | Quasi-WYSIWYG editing of TeX & al. |
| 273 | better advantage of Emacs 21 features.) | ||
| 274 | 267 | ||
| 275 | Local Variables: | 268 | Local Variables: |
| 276 | mode: text | 269 | mode: text |
| @@ -1,4 +1,4 @@ | |||
| 1 | GNU Emacs NEWS -- history of user-visible changes. 2006-06-04 | 1 | GNU Emacs NEWS -- history of user-visible changes. |
| 2 | 2 | ||
| 3 | Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007 | 3 | Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007 |
| 4 | Free Software Foundation, Inc. | 4 | Free Software Foundation, Inc. |
| @@ -110,7 +110,7 @@ any older versions of these packages to ensure that the Emacs 22 | |||
| 110 | version is used. You can use M-x list-load-path-shadows to find such | 110 | version is used. You can use M-x list-load-path-shadows to find such |
| 111 | older packages. | 111 | older packages. |
| 112 | 112 | ||
| 113 | Some specific packages which are known to cause problems are: | 113 | Some specific packages that are known to cause problems are: |
| 114 | 114 | ||
| 115 | ** Semantic (used by CEDET, ECB, JDEE): upgrade to latest version. | 115 | ** Semantic (used by CEDET, ECB, JDEE): upgrade to latest version. |
| 116 | ** cua.el, cua-mode.el: remove old versions. | 116 | ** cua.el, cua-mode.el: remove old versions. |
| @@ -118,7 +118,10 @@ Some specific packages which are known to cause problems are: | |||
| 118 | 118 | ||
| 119 | * Installation Changes in Emacs 22.1 | 119 | * Installation Changes in Emacs 22.1 |
| 120 | 120 | ||
| 121 | --- | 121 | ** You can build Emacs with Gtk+ widgets by specifying `--with-x-toolkit=gtk' |
| 122 | when you run configure. This requires Gtk+ 2.4 or newer. This port | ||
| 123 | provides a way to display multilingual text in menus (with some caveats). | ||
| 124 | |||
| 122 | ** Emacs comes with a new set of icons. | 125 | ** Emacs comes with a new set of icons. |
| 123 | These icons are displayed on the taskbar and/or titlebar when Emacs | 126 | These icons are displayed on the taskbar and/or titlebar when Emacs |
| 124 | runs in a graphical environment. Source files for these icons can be | 127 | runs in a graphical environment. Source files for these icons can be |
| @@ -127,152 +130,117 @@ Emacs by changing these files directly. On X, the icon is compiled | |||
| 127 | into the Emacs executable; see gnu.h in the source tree. On MS | 130 | into the Emacs executable; see gnu.h in the source tree. On MS |
| 128 | Windows, see nt/icons/emacs.ico.) | 131 | Windows, see nt/icons/emacs.ico.) |
| 129 | 132 | ||
| 130 | --- | ||
| 131 | ** Emacs now supports new configure options `--program-prefix', | ||
| 132 | `--program-suffix' and `--program-transform-name' that affect the names of | ||
| 133 | installed programs. | ||
| 134 | |||
| 135 | --- | ||
| 136 | ** Emacs can now be built without sound support. | ||
| 137 | |||
| 138 | --- | ||
| 139 | ** You can build Emacs with Gtk+ widgets by specifying `--with-x-toolkit=gtk' | ||
| 140 | when you run configure. This requires Gtk+ 2.4 or newer. This port | ||
| 141 | provides a way to display multilingual text in menus (with some caveats). | ||
| 142 | |||
| 143 | --- | ||
| 144 | ** The `emacsserver' program has been removed, replaced with Lisp code. | ||
| 145 | |||
| 146 | --- | ||
| 147 | ** The `yow' program has been removed. | ||
| 148 | Use the corresponding Emacs feature instead. | ||
| 149 | |||
| 150 | --- | ||
| 151 | ** By default, Emacs now uses a setgid helper program to update game | ||
| 152 | scores. The directory ${localstatedir}/games/emacs is the normal | ||
| 153 | place for game scores to be stored. You can control this with the | ||
| 154 | configure option `--with-game-dir'. The specific user that Emacs uses | ||
| 155 | to own the game scores is controlled by `--with-game-user'. If access | ||
| 156 | to a game user is not available, then scores will be stored separately | ||
| 157 | in each user's home directory. | ||
| 158 | |||
| 159 | --- | ||
| 160 | ** Leim is now part of the Emacs distribution. | ||
| 161 | You no longer need to download a separate tarball in order to build | ||
| 162 | Emacs with Leim. | ||
| 163 | |||
| 164 | +++ | ||
| 165 | ** The Emacs Lisp Reference Manual is now part of the distribution. | 133 | ** The Emacs Lisp Reference Manual is now part of the distribution. |
| 166 | 134 | ||
| 167 | The Emacs Lisp Reference Manual in Info format is built as part of the | 135 | The Emacs Lisp Reference Manual in Info format is built as part of the |
| 168 | Emacs build procedure and installed together with the Emacs User | 136 | Emacs build procedure and installed together with the Emacs User |
| 169 | Manual. A menu item was added to the menu bar that makes it easy | 137 | Manual. A menu item was added to the menu bar to make it easily |
| 170 | accessible (Help->More Manuals->Emacs Lisp Reference). | 138 | accessible (Help->More Manuals->Emacs Lisp Reference). |
| 171 | 139 | ||
| 172 | --- | ||
| 173 | ** The Introduction to Programming in Emacs Lisp manual is now part of | 140 | ** The Introduction to Programming in Emacs Lisp manual is now part of |
| 174 | the distribution. | 141 | the distribution. |
| 175 | 142 | ||
| 176 | This manual is now part of the standard distribution and is installed, | 143 | This manual is now part of the standard distribution and is installed, |
| 177 | together with the Emacs User Manual, into the Info directory. A menu | 144 | together with the Emacs User Manual, into the Info directory. A menu |
| 178 | item was added to the menu bar that makes it easy accessible | 145 | item was added to the menu bar to make it easily accessible |
| 179 | (Help->More Manuals->Introduction to Emacs Lisp). | 146 | (Help->More Manuals->Introduction to Emacs Lisp). |
| 180 | 147 | ||
| 181 | --- | 148 | ** Leim is now part of the Emacs distribution. |
| 149 | You no longer need to download a separate tarball in order to build | ||
| 150 | Emacs with Leim. | ||
| 151 | |||
| 182 | ** New translations of the Emacs Tutorial are available in the | 152 | ** New translations of the Emacs Tutorial are available in the |
| 183 | following languages: Brasilian Portuguese, Bulgarian, Chinese (both | 153 | following languages: Brasilian Portuguese, Bulgarian, Chinese (both |
| 184 | with simplified and traditional characters), French, and Italian. | 154 | with simplified and traditional characters), French, Russian, and |
| 185 | Type `C-u C-h t' to choose one of them in case your language setup | 155 | Italian. Type `C-u C-h t' to choose one of them in case your language |
| 186 | doesn't automatically select the right one. | 156 | setup doesn't automatically select the right one. |
| 187 | 157 | ||
| 188 | --- | 158 | ** New translations of the Emacs reference card are available in the |
| 189 | ** A Portuguese translation of Emacs' reference card has been added. | 159 | Brasilian Portuguese and Russian. The corresponding PostScript files |
| 190 | Its name is `pt-br-refcard.tex'. The corresponding PostScript file is | 160 | are also included. |
| 191 | also included. | ||
| 192 | 161 | ||
| 193 | --- | ||
| 194 | ** A French translation of the `Emacs Survival Guide' is available. | 162 | ** A French translation of the `Emacs Survival Guide' is available. |
| 195 | 163 | ||
| 196 | --- | ||
| 197 | ** Emacs now includes support for loading image libraries on demand. | 164 | ** Emacs now includes support for loading image libraries on demand. |
| 198 | (Currently this feature is only used on MS Windows.) You can configure | 165 | (Currently this feature is only used on MS Windows.) You can configure |
| 199 | the supported image types and their associated dynamic libraries by | 166 | the supported image types and their associated dynamic libraries by |
| 200 | setting the variable `image-library-alist'. | 167 | setting the variable `image-library-alist'. |
| 201 | 168 | ||
| 202 | --- | 169 | ** Support for GNU/Linux systems on X86-64 machines was added. |
| 203 | ** Support for a Cygwin build of Emacs was added. | ||
| 204 | |||
| 205 | --- | ||
| 206 | ** Support for FreeBSD/Alpha has been added. | ||
| 207 | 170 | ||
| 208 | --- | ||
| 209 | ** Support for GNU/Linux systems on S390 machines was added. | 171 | ** Support for GNU/Linux systems on S390 machines was added. |
| 210 | 172 | ||
| 211 | --- | ||
| 212 | ** Support for GNU/Linux systems on Tensilica Xtensa machines was added. | 173 | ** Support for GNU/Linux systems on Tensilica Xtensa machines was added. |
| 213 | 174 | ||
| 214 | --- | 175 | ** Support for FreeBSD/Alpha has been added. |
| 176 | |||
| 177 | ** Support for a Cygwin build of Emacs was added. | ||
| 178 | |||
| 215 | ** Support for MacOS X was added. | 179 | ** Support for MacOS X was added. |
| 216 | See the files mac/README and mac/INSTALL for build instructions. | 180 | See the files mac/README and mac/INSTALL for build instructions. |
| 217 | 181 | ||
| 218 | --- | ||
| 219 | ** Support for GNU/Linux systems on X86-64 machines was added. | ||
| 220 | |||
| 221 | --- | ||
| 222 | ** Mac OS 9 port now uses the Carbon API by default. You can also | 182 | ** Mac OS 9 port now uses the Carbon API by default. You can also |
| 223 | create non-Carbon build by specifying `NonCarbon' as a target. See | 183 | create a non-Carbon build by specifying `NonCarbon' as a target. See |
| 224 | the files mac/README and mac/INSTALL for build instructions. | 184 | the files mac/README and mac/INSTALL for build instructions. |
| 225 | 185 | ||
| 226 | --- | 186 | ** The `emacsserver' program has been removed, replaced with Lisp code. |
| 187 | |||
| 188 | ** The `yow' program has been removed. | ||
| 189 | Use the corresponding Emacs feature instead. | ||
| 190 | |||
| 191 | ** Emacs now supports new configure options `--program-prefix', | ||
| 192 | `--program-suffix' and `--program-transform-name' that affect the names of | ||
| 193 | installed programs. | ||
| 194 | |||
| 195 | ** By default, Emacs now uses a setgid helper program to update game | ||
| 196 | scores. The directory ${localstatedir}/games/emacs is the normal | ||
| 197 | place for game scores to be stored. You can control this with the | ||
| 198 | configure option `--with-game-dir'. The specific user that Emacs uses | ||
| 199 | to own the game scores is controlled by `--with-game-user'. If access | ||
| 200 | to a game user is not available, then scores will be stored separately | ||
| 201 | in each user's home directory. | ||
| 202 | |||
| 203 | ** Emacs can now be built without sound support. | ||
| 204 | |||
| 227 | ** Building with -DENABLE_CHECKING does not automatically build with union | 205 | ** Building with -DENABLE_CHECKING does not automatically build with union |
| 228 | types any more. Add -DUSE_LISP_UNION_TYPE if you want union types. | 206 | types any more. Add -DUSE_LISP_UNION_TYPE if you want union types. |
| 229 | 207 | ||
| 230 | --- | ||
| 231 | ** When pure storage overflows while dumping, Emacs now prints how | 208 | ** When pure storage overflows while dumping, Emacs now prints how |
| 232 | much pure storage it will approximately need. | 209 | much pure storage it will approximately need. |
| 233 | 210 | ||
| 234 | --- | ||
| 235 | ** The script etc/emacs-buffer.gdb can be used with gdb to retrieve the | 211 | ** The script etc/emacs-buffer.gdb can be used with gdb to retrieve the |
| 236 | contents of buffers from a core dump and save them to files easily, should | 212 | contents of buffers from a core dump and save them to files easily, should |
| 237 | Emacs crash. | 213 | Emacs crash. |
| 238 | 214 | ||
| 239 | --- | ||
| 240 | ** The Emacs terminal emulation in term.el uses a different terminfo name. | 215 | ** The Emacs terminal emulation in term.el uses a different terminfo name. |
| 241 | The Emacs terminal emulation in term.el now uses "eterm-color" as its | 216 | The Emacs terminal emulation in term.el now uses "eterm-color" as its |
| 242 | terminfo name, since term.el now supports color. | 217 | terminfo name, since term.el now supports color. |
| 243 | 218 | ||
| 244 | --- | ||
| 245 | ** Emacs Lisp source files are compressed by default if `gzip' is available. | 219 | ** Emacs Lisp source files are compressed by default if `gzip' is available. |
| 246 | 220 | ||
| 247 | --- | ||
| 248 | ** All images used in Emacs have been consolidated in etc/images and subdirs. | 221 | ** All images used in Emacs have been consolidated in etc/images and subdirs. |
| 249 | See also the changes to `find-image', documented below. | 222 | See also the changes to `find-image', documented below. |
| 250 | 223 | ||
| 251 | 224 | ||
| 252 | * Startup Changes in Emacs 22.1 | 225 | * Startup Changes in Emacs 22.1 |
| 253 | 226 | ||
| 254 | +++ | ||
| 255 | ** New command line option -Q or --quick. | 227 | ** New command line option -Q or --quick. |
| 256 | This is like using -q --no-site-file, but in addition it also disables | 228 | This is like using -q --no-site-file, but in addition it also disables |
| 257 | the fancy startup screen. | 229 | the fancy startup screen. |
| 258 | 230 | ||
| 259 | +++ | ||
| 260 | ** New command line option -D or --basic-display. | 231 | ** New command line option -D or --basic-display. |
| 261 | Disables the menu-bar, the tool-bar, the scroll-bars, tool tips, and | 232 | Disables the menu-bar, the tool-bar, the scroll-bars, tool tips, and |
| 262 | the blinking cursor. | 233 | the blinking cursor. |
| 263 | 234 | ||
| 264 | +++ | ||
| 265 | ** New command line option -nbc or --no-blinking-cursor disables | 235 | ** New command line option -nbc or --no-blinking-cursor disables |
| 266 | the blinking cursor on graphical terminals. | 236 | the blinking cursor on graphical terminals. |
| 267 | 237 | ||
| 268 | +++ | ||
| 269 | ** The option --script FILE runs Emacs in batch mode and loads FILE. | 238 | ** The option --script FILE runs Emacs in batch mode and loads FILE. |
| 270 | It is useful for writing Emacs Lisp shell script files, because they | 239 | It is useful for writing Emacs Lisp shell script files, because they |
| 271 | can start with this line: | 240 | can start with this line: |
| 272 | 241 | ||
| 273 | #!/usr/bin/emacs --script | 242 | #!/usr/bin/emacs --script |
| 274 | 243 | ||
| 275 | +++ | ||
| 276 | ** The option --directory DIR now modifies `load-path' immediately. | 244 | ** The option --directory DIR now modifies `load-path' immediately. |
| 277 | Directories are added to the front of `load-path' in the order they | 245 | Directories are added to the front of `load-path' in the order they |
| 278 | appear on the command line. For example, with this command line: | 246 | appear on the command line. For example, with this command line: |
| @@ -282,69 +250,57 @@ appear on the command line. For example, with this command line: | |||
| 282 | Emacs looks for library `foo' in the parent directory, then in /tmp, then | 250 | Emacs looks for library `foo' in the parent directory, then in /tmp, then |
| 283 | in the other directories in `load-path'. (-L is short for --directory.) | 251 | in the other directories in `load-path'. (-L is short for --directory.) |
| 284 | 252 | ||
| 285 | +++ | ||
| 286 | ** The command line option --no-windows has been changed to | 253 | ** The command line option --no-windows has been changed to |
| 287 | --no-window-system. The old one still works, but is deprecated. | 254 | --no-window-system. The old one still works, but is deprecated. |
| 288 | 255 | ||
| 289 | --- | ||
| 290 | ** If the environment variable DISPLAY specifies an unreachable X display, | 256 | ** If the environment variable DISPLAY specifies an unreachable X display, |
| 291 | Emacs will now startup as if invoked with the --no-window-system option. | 257 | Emacs will now startup as if invoked with the --no-window-system option. |
| 292 | 258 | ||
| 293 | +++ | ||
| 294 | ** The -f option, used from the command line to call a function, | 259 | ** The -f option, used from the command line to call a function, |
| 295 | now reads arguments for the function interactively if it is | 260 | now reads arguments for the function interactively if it is |
| 296 | an interactively callable function. | 261 | an interactively callable function. |
| 297 | 262 | ||
| 298 | +++ | ||
| 299 | ** When you specify a frame size with --geometry, the size applies to | 263 | ** When you specify a frame size with --geometry, the size applies to |
| 300 | all frames you create. A position specified with --geometry only | 264 | all frames you create. A position specified with --geometry only |
| 301 | affects the initial frame. | 265 | affects the initial frame. |
| 302 | 266 | ||
| 303 | --- | ||
| 304 | ** Emacs built for MS-Windows now behaves like Emacs on X does, | 267 | ** Emacs built for MS-Windows now behaves like Emacs on X does, |
| 305 | wrt its frame position: if you don't specify a position (in your | 268 | with respect to its frame position: if you don't specify a position |
| 306 | .emacs init file, in the Registry, or with the --geometry command-line | 269 | (in your .emacs init file, in the Registry, or with the --geometry |
| 307 | option), Emacs leaves the frame position to the Windows' window | 270 | command-line option), Emacs leaves the frame position to the Windows' |
| 308 | manager. | 271 | window manager. |
| 309 | 272 | ||
| 310 | +++ | ||
| 311 | ** Emacs can now be invoked in full-screen mode on a windowed display. | 273 | ** Emacs can now be invoked in full-screen mode on a windowed display. |
| 312 | When Emacs is invoked on a window system, the new command-line options | 274 | When Emacs is invoked on a window system, the new command-line options |
| 313 | `--fullwidth', `--fullheight', and `--fullscreen' produce a frame | 275 | `--fullwidth', `--fullheight', and `--fullscreen' produce a frame |
| 314 | whose width, height, or both width and height take up the entire | 276 | whose width, height, or both width and height take up the entire |
| 315 | screen size. (For now, this does not work with some window managers.) | 277 | screen size. (For now, this does not work with some window managers.) |
| 316 | 278 | ||
| 317 | +++ | ||
| 318 | ** Emacs now displays a splash screen by default even if command-line | 279 | ** Emacs now displays a splash screen by default even if command-line |
| 319 | arguments were given. The new command-line option --no-splash | 280 | arguments were given. The new command-line option --no-splash |
| 320 | disables the splash screen; see also the variable | 281 | disables the splash screen; see also the variable |
| 321 | `inhibit-startup-message' (which is also aliased as | 282 | `inhibit-splash-screen' (which is also aliased as |
| 322 | `inhibit-splash-screen'). | 283 | `inhibit-startup-message'). |
| 323 | 284 | ||
| 324 | +++ | 285 | ** The default is now to use a bitmap as the icon. |
| 325 | ** The default is now to use a bitmap as the icon, so the command-line options | 286 | The command-line options --icon-type, -i have been replaced with |
| 326 | --icon-type, -i has been replaced with options --no-bitmap-icon, -nbi to turn | 287 | options --no-bitmap-icon, -nbi to turn the bitmap icon off. |
| 327 | the bitmap icon off. | ||
| 328 | 288 | ||
| 329 | +++ | ||
| 330 | ** New user option `inhibit-startup-buffer-menu'. | 289 | ** New user option `inhibit-startup-buffer-menu'. |
| 331 | When loading many files, for instance with `emacs *', Emacs normally | 290 | When loading many files, for instance with `emacs *', Emacs normally |
| 332 | displays a buffer menu. This option turns the buffer menu off. | 291 | displays a buffer menu. This option turns the buffer menu off. |
| 333 | 292 | ||
| 334 | +++ | ||
| 335 | ** Init file changes | 293 | ** Init file changes |
| 336 | If the init file ~/.emacs does not exist, Emacs will try | 294 | If the init file ~/.emacs does not exist, Emacs will try |
| 337 | ~/.emacs.d/init.el or ~/.emacs.d/init.elc. Likewise, if the shell init file | 295 | ~/.emacs.d/init.el or ~/.emacs.d/init.elc. Likewise, if the shell init file |
| 338 | ~/.emacs_SHELL is not found, Emacs will try ~/.emacs.d/init_SHELL.sh. | 296 | ~/.emacs_SHELL is not found, Emacs will try ~/.emacs.d/init_SHELL.sh. |
| 339 | 297 | ||
| 340 | +++ | ||
| 341 | ** Emacs now reads the standard abbrevs file ~/.abbrev_defs | 298 | ** Emacs now reads the standard abbrevs file ~/.abbrev_defs |
| 342 | automatically at startup, if it exists. When Emacs offers to save | 299 | automatically at startup, if it exists. When Emacs offers to save |
| 343 | modified buffers, it saves the abbrevs too if they have changed. It | 300 | modified buffers, it saves the abbrevs too if they have changed. It |
| 344 | can do this either silently or asking for confirmation first, | 301 | can do this either silently or asking for confirmation first, |
| 345 | according to the value of `save-abbrevs'. | 302 | according to the value of `save-abbrevs'. |
| 346 | 303 | ||
| 347 | +++ | ||
| 348 | ** If the environment variable EMAIL is defined, Emacs now uses its value | 304 | ** If the environment variable EMAIL is defined, Emacs now uses its value |
| 349 | to compute the default value of `user-mail-address', in preference to | 305 | to compute the default value of `user-mail-address', in preference to |
| 350 | concatenation of `user-login-name' with the name of your host machine. | 306 | concatenation of `user-login-name' with the name of your host machine. |
| @@ -352,52 +308,42 @@ concatenation of `user-login-name' with the name of your host machine. | |||
| 352 | 308 | ||
| 353 | * Incompatible Editing Changes in Emacs 22.1 | 309 | * Incompatible Editing Changes in Emacs 22.1 |
| 354 | 310 | ||
| 355 | +++ | 311 | ** You can now follow links by clicking Mouse-1 on the link. |
| 312 | |||
| 313 | See below for more details. | ||
| 314 | |||
| 356 | ** M-g is now a prefix key. | 315 | ** M-g is now a prefix key. |
| 357 | M-g g and M-g M-g run goto-line. | 316 | M-g g and M-g M-g run goto-line. |
| 358 | M-g n and M-g M-n run next-error (like C-x `). | 317 | M-g n and M-g M-n run next-error (like C-x `). |
| 359 | M-g p and M-g M-p run previous-error. | 318 | M-g p and M-g M-p run previous-error. |
| 360 | 319 | ||
| 361 | +++ | ||
| 362 | ** C-u M-g M-g switches to the most recent previous buffer, | 320 | ** C-u M-g M-g switches to the most recent previous buffer, |
| 363 | and goes to the specified line in that buffer. | 321 | and goes to the specified line in that buffer. |
| 364 | 322 | ||
| 365 | When goto-line starts to execute, if there's a number in the buffer at | 323 | When goto-line starts to execute, if there's a number in the buffer at |
| 366 | point then it acts as the default argument for the minibuffer. | 324 | point then it acts as the default argument for the minibuffer. |
| 367 | 325 | ||
| 368 | +++ | 326 | ** M-o now is the prefix key for setting text properties; |
| 327 | M-o M-o requests refontification. | ||
| 328 | |||
| 369 | ** The old bindings C-M-delete and C-M-backspace have been deleted, | 329 | ** The old bindings C-M-delete and C-M-backspace have been deleted, |
| 370 | since there are situations where one or the other will shut down | 330 | since there are situations where one or the other will shut down |
| 371 | the operating system or your X server. | 331 | the operating system or your X server. |
| 372 | 332 | ||
| 373 | +++ | ||
| 374 | ** line-move-ignore-invisible now defaults to t. | ||
| 375 | |||
| 376 | +++ | ||
| 377 | ** When the undo information of the current command gets really large | 333 | ** When the undo information of the current command gets really large |
| 378 | (beyond the value of `undo-outer-limit'), Emacs discards it and warns | 334 | (beyond the value of `undo-outer-limit'), Emacs discards it and warns |
| 379 | you about it. | 335 | you about it. |
| 380 | 336 | ||
| 381 | +++ | ||
| 382 | ** `apply-macro-to-region-lines' now operates on all lines that begin | ||
| 383 | in the region, rather than on all complete lines in the region. | ||
| 384 | |||
| 385 | +++ | ||
| 386 | ** A prefix argument is no longer required to repeat a jump to a | ||
| 387 | previous mark if you set `set-mark-command-repeat-pop' to t. I.e. C-u | ||
| 388 | C-SPC C-SPC C-SPC ... cycles through the mark ring. Use C-u C-u C-SPC | ||
| 389 | to set the mark immediately after a jump. | ||
| 390 | |||
| 391 | +++ | ||
| 392 | ** The info-search bindings on C-h C-f, C-h C-k and C-h C-i | ||
| 393 | have been moved to C-h F, C-h K and C-h S. | ||
| 394 | |||
| 395 | +++ | ||
| 396 | ** In incremental search, C-w is changed. M-%, C-M-w and C-M-y are special. | 337 | ** In incremental search, C-w is changed. M-%, C-M-w and C-M-y are special. |
| 397 | 338 | ||
| 398 | See below under "incremental search changes". | 339 | See below under "incremental search changes". |
| 399 | 340 | ||
| 400 | --- | 341 | ** When Emacs prompts for file names, SPC no longer completes the file name. |
| 342 | This is so filenames with embedded spaces could be input without the | ||
| 343 | need to quote the space with a C-q. The underlying changes in the | ||
| 344 | keymaps that are active in the minibuffer are described below under | ||
| 345 | "New keymaps for typing file names". | ||
| 346 | |||
| 401 | ** C-x C-f RET (find-file), typing nothing in the minibuffer, is no longer | 347 | ** C-x C-f RET (find-file), typing nothing in the minibuffer, is no longer |
| 402 | a special case. | 348 | a special case. |
| 403 | 349 | ||
| @@ -408,28 +354,10 @@ directory with Dired. | |||
| 408 | You can get the old behavior by typing C-x C-f M-n RET, which fetches | 354 | You can get the old behavior by typing C-x C-f M-n RET, which fetches |
| 409 | the actual file name into the minibuffer. | 355 | the actual file name into the minibuffer. |
| 410 | 356 | ||
| 411 | +++ | ||
| 412 | ** The completion commands TAB, SPC and ? in the minibuffer apply only | 357 | ** The completion commands TAB, SPC and ? in the minibuffer apply only |
| 413 | to the text before point. If there is text in the buffer after point, | 358 | to the text before point. If there is text in the buffer after point, |
| 414 | it remains unchanged. | 359 | it remains unchanged. |
| 415 | 360 | ||
| 416 | +++ | ||
| 417 | ** When Emacs prompts for file names, SPC no longer completes the file name. | ||
| 418 | This is so filenames with embedded spaces could be input without the | ||
| 419 | need to quote the space with a C-q. The underlying changes in the | ||
| 420 | keymaps that are active in the minibuffer are described below under | ||
| 421 | "New keymaps for typing file names". | ||
| 422 | |||
| 423 | +++ | ||
| 424 | ** M-o now is the prefix key for setting text properties; | ||
| 425 | M-o M-o requests refontification. | ||
| 426 | |||
| 427 | +++ | ||
| 428 | ** You can now follow links by clicking Mouse-1 on the link. | ||
| 429 | |||
| 430 | See below for more details. | ||
| 431 | |||
| 432 | +++ | ||
| 433 | ** In Dired's ! command (dired-do-shell-command), `*' and `?' now | 361 | ** In Dired's ! command (dired-do-shell-command), `*' and `?' now |
| 434 | control substitution of the file names only when they are surrounded | 362 | control substitution of the file names only when they are surrounded |
| 435 | by whitespace. This means you can now use them as shell wildcards | 363 | by whitespace. This means you can now use them as shell wildcards |
| @@ -437,11 +365,22 @@ too. If you want to use just plain `*' as a wildcard, type `*""'; the | |||
| 437 | doublequotes make no difference in the shell, but they prevent | 365 | doublequotes make no difference in the shell, but they prevent |
| 438 | special treatment in `dired-do-shell-command'. | 366 | special treatment in `dired-do-shell-command'. |
| 439 | 367 | ||
| 440 | --- | 368 | ** A prefix argument is no longer required to repeat a jump to a |
| 369 | previous mark if you set `set-mark-command-repeat-pop' to t. I.e. C-u | ||
| 370 | C-SPC C-SPC C-SPC ... cycles through the mark ring. Use C-u C-u C-SPC | ||
| 371 | to set the mark immediately after a jump. | ||
| 372 | |||
| 373 | ** The info-search bindings on C-h C-f, C-h C-k and C-h C-i | ||
| 374 | have been moved to C-h F, C-h K and C-h S. | ||
| 375 | |||
| 376 | ** `apply-macro-to-region-lines' now operates on all lines that begin | ||
| 377 | in the region, rather than on all complete lines in the region. | ||
| 378 | |||
| 379 | ** line-move-ignore-invisible now defaults to t. | ||
| 380 | |||
| 441 | ** Adaptive filling misfeature removed. | 381 | ** Adaptive filling misfeature removed. |
| 442 | It no longer treats `NNN.' or `(NNN)' as a prefix. | 382 | It no longer treats `NNN.' or `(NNN)' as a prefix. |
| 443 | 383 | ||
| 444 | --- | ||
| 445 | ** The register compatibility key bindings (deprecated since Emacs 19) | 384 | ** The register compatibility key bindings (deprecated since Emacs 19) |
| 446 | have been removed: | 385 | have been removed: |
| 447 | C-x / point-to-register (Use: C-x r SPC) | 386 | C-x / point-to-register (Use: C-x r SPC) |
| @@ -452,7 +391,6 @@ have been removed: | |||
| 452 | 391 | ||
| 453 | * Editing Changes in Emacs 22.1 | 392 | * Editing Changes in Emacs 22.1 |
| 454 | 393 | ||
| 455 | +++ | ||
| 456 | ** !MEM FULL! at the start of the mode line indicates that Emacs | 394 | ** !MEM FULL! at the start of the mode line indicates that Emacs |
| 457 | cannot get any more memory for Lisp data. This often means it could | 395 | cannot get any more memory for Lisp data. This often means it could |
| 458 | crash soon if you do things that use more memory. On most systems, | 396 | crash soon if you do things that use more memory. On most systems, |
| @@ -460,71 +398,57 @@ killing buffers will get out of this state. If killing buffers does | |||
| 460 | not make !MEM FULL! disappear, you should save your work and start | 398 | not make !MEM FULL! disappear, you should save your work and start |
| 461 | a new Emacs. | 399 | a new Emacs. |
| 462 | 400 | ||
| 463 | +++ | ||
| 464 | ** The max size of buffers and integers has been doubled. | 401 | ** The max size of buffers and integers has been doubled. |
| 465 | On 32bit machines, it is now 256M (i.e. 268435455). | 402 | On 32bit machines, it is now 256M (i.e. 268435455). |
| 466 | 403 | ||
| 467 | +++ | ||
| 468 | ** You can now switch buffers in a cyclic order with C-x C-left | 404 | ** You can now switch buffers in a cyclic order with C-x C-left |
| 469 | (previous-buffer) and C-x C-right (next-buffer). C-x left and | 405 | (previous-buffer) and C-x C-right (next-buffer). C-x left and |
| 470 | C-x right can be used as well. The functions keep a different buffer | 406 | C-x right can be used as well. The functions keep a different buffer |
| 471 | cycle for each frame, using the frame-local buffer list. | 407 | cycle for each frame, using the frame-local buffer list. |
| 472 | 408 | ||
| 473 | +++ | ||
| 474 | ** `undo-only' does an undo which does not redo any previous undo. | 409 | ** `undo-only' does an undo which does not redo any previous undo. |
| 475 | 410 | ||
| 476 | +++ | ||
| 477 | ** M-SPC (just-one-space) when given a numeric argument N | 411 | ** M-SPC (just-one-space) when given a numeric argument N |
| 478 | converts whitespace around point to N spaces. | 412 | converts whitespace around point to N spaces. |
| 479 | 413 | ||
| 480 | --- | ||
| 481 | ** C-x 5 C-o displays a specified buffer in another frame | 414 | ** C-x 5 C-o displays a specified buffer in another frame |
| 482 | but does not switch to that frame. It's the multi-frame | 415 | but does not switch to that frame. It's the multi-frame |
| 483 | analogue of C-x 4 C-o. | 416 | analogue of C-x 4 C-o. |
| 484 | 417 | ||
| 485 | --- | ||
| 486 | ** New commands to operate on pairs of open and close characters: | ||
| 487 | `insert-pair', `delete-pair', `raise-sexp'. | ||
| 488 | |||
| 489 | +++ | ||
| 490 | ** New command `kill-whole-line' kills an entire line at once. | 418 | ** New command `kill-whole-line' kills an entire line at once. |
| 491 | By default, it is bound to C-S-<backspace>. | 419 | By default, it is bound to C-S-<backspace>. |
| 492 | 420 | ||
| 493 | +++ | ||
| 494 | ** Yanking text now discards certain text properties that can | 421 | ** Yanking text now discards certain text properties that can |
| 495 | be inconvenient when you did not expect them. The variable | 422 | be inconvenient when you did not expect them. The variable |
| 496 | `yank-excluded-properties' specifies which ones. Insertion | 423 | `yank-excluded-properties' specifies which ones. Insertion |
| 497 | of register contents and rectangles also discards these properties. | 424 | of register contents and rectangles also discards these properties. |
| 498 | 425 | ||
| 499 | +++ | ||
| 500 | ** The default values of paragraph-start and indent-line-function have | 426 | ** The default values of paragraph-start and indent-line-function have |
| 501 | been changed to reflect those used in Text mode rather than those used | 427 | been changed to reflect those used in Text mode rather than those used |
| 502 | in Indented-Text mode. | 428 | in Indented-Text mode. |
| 503 | 429 | ||
| 504 | +++ | 430 | ** New commands to operate on pairs of open and close characters: |
| 431 | `insert-pair', `delete-pair', `raise-sexp'. | ||
| 432 | |||
| 505 | ** M-x setenv now expands environment variable references. | 433 | ** M-x setenv now expands environment variable references. |
| 506 | 434 | ||
| 507 | Substrings of the form `$foo' and `${foo}' in the specified new value | 435 | Substrings of the form `$foo' and `${foo}' in the specified new value |
| 508 | now refer to the value of environment variable foo. To include a `$' | 436 | now refer to the value of environment variable foo. To include a `$' |
| 509 | in the value, use `$$'. | 437 | in the value, use `$$'. |
| 510 | 438 | ||
| 511 | +++ | ||
| 512 | ** `special-display-buffer-names' and `special-display-regexps' now | 439 | ** `special-display-buffer-names' and `special-display-regexps' now |
| 513 | understand two new boolean pseudo-frame-parameters `same-frame' and | 440 | understand two new boolean pseudo-frame-parameters `same-frame' and |
| 514 | `same-window'. | 441 | `same-window'. |
| 515 | 442 | ||
| 516 | +++ | ||
| 517 | ** The default for the paper size (variable ps-paper-type) is taken | 443 | ** The default for the paper size (variable ps-paper-type) is taken |
| 518 | from the locale. | 444 | from the locale. |
| 519 | 445 | ||
| 520 | ** Mark command changes: | 446 | ** Mark command changes: |
| 521 | 447 | ||
| 522 | +++ | ||
| 523 | *** A prefix argument is no longer required to repeat a jump to a | 448 | *** A prefix argument is no longer required to repeat a jump to a |
| 524 | previous mark, i.e. C-u C-SPC C-SPC C-SPC ... cycles through the | 449 | previous mark, i.e. C-u C-SPC C-SPC C-SPC ... cycles through the |
| 525 | mark ring. Use C-u C-u C-SPC to set the mark immediately after a jump. | 450 | mark ring. Use C-u C-u C-SPC to set the mark immediately after a jump. |
| 526 | 451 | ||
| 527 | +++ | ||
| 528 | *** Marking commands extend the region when invoked multiple times. | 452 | *** Marking commands extend the region when invoked multiple times. |
| 529 | 453 | ||
| 530 | If you type C-M-SPC (mark-sexp), M-@ (mark-word), M-h | 454 | If you type C-M-SPC (mark-sexp), M-@ (mark-word), M-h |
| @@ -537,14 +461,12 @@ the last command. To start a new region with one of marking commands | |||
| 537 | in Transient Mark mode, you can deactivate the active region with C-g, | 461 | in Transient Mark mode, you can deactivate the active region with C-g, |
| 538 | or set the new mark with C-SPC. | 462 | or set the new mark with C-SPC. |
| 539 | 463 | ||
| 540 | +++ | ||
| 541 | *** M-h (mark-paragraph) now accepts a prefix arg. | 464 | *** M-h (mark-paragraph) now accepts a prefix arg. |
| 542 | 465 | ||
| 543 | With positive arg, M-h marks the current and the following paragraphs; | 466 | With positive arg, M-h marks the current and the following paragraphs; |
| 544 | if the arg is negative, it marks the current and the preceding | 467 | if the arg is negative, it marks the current and the preceding |
| 545 | paragraphs. | 468 | paragraphs. |
| 546 | 469 | ||
| 547 | +++ | ||
| 548 | *** Some commands do something special in Transient Mark mode when the | 470 | *** Some commands do something special in Transient Mark mode when the |
| 549 | mark is active--for instance, they limit their operation to the | 471 | mark is active--for instance, they limit their operation to the |
| 550 | region. Even if you don't normally use Transient Mark mode, you might | 472 | region. Even if you don't normally use Transient Mark mode, you might |
| @@ -562,14 +484,12 @@ deactivate the mark. That typically happens when you type a command | |||
| 562 | that alters the buffer, but you can also deactivate the mark by typing | 484 | that alters the buffer, but you can also deactivate the mark by typing |
| 563 | C-g. | 485 | C-g. |
| 564 | 486 | ||
| 565 | +++ | ||
| 566 | *** Movement commands `beginning-of-buffer', `end-of-buffer', | 487 | *** Movement commands `beginning-of-buffer', `end-of-buffer', |
| 567 | `beginning-of-defun', `end-of-defun' do not set the mark if the mark | 488 | `beginning-of-defun', `end-of-defun' do not set the mark if the mark |
| 568 | is already active in Transient Mark mode. | 489 | is already active in Transient Mark mode. |
| 569 | 490 | ||
| 570 | ** Help command changes: | 491 | ** Help command changes: |
| 571 | 492 | ||
| 572 | +++ | ||
| 573 | *** Changes in C-h bindings: | 493 | *** Changes in C-h bindings: |
| 574 | 494 | ||
| 575 | C-h e displays the *Messages* buffer. | 495 | C-h e displays the *Messages* buffer. |
| @@ -603,17 +523,14 @@ to new-kill-line, these commands now report: | |||
| 603 | - C-h w and C-h f new-kill-line reports: | 523 | - C-h w and C-h f new-kill-line reports: |
| 604 | new-kill-line is on C-k | 524 | new-kill-line is on C-k |
| 605 | 525 | ||
| 606 | --- | ||
| 607 | *** Help commands `describe-function' and `describe-key' now show function | 526 | *** Help commands `describe-function' and `describe-key' now show function |
| 608 | arguments in lowercase italics on displays that support it. To change the | 527 | arguments in lowercase italics on displays that support it. To change the |
| 609 | default, customize face `help-argument-name' or redefine the function | 528 | default, customize face `help-argument-name' or redefine the function |
| 610 | `help-default-arg-highlight'. | 529 | `help-default-arg-highlight'. |
| 611 | 530 | ||
| 612 | +++ | ||
| 613 | *** C-h v and C-h f commands now include a hyperlink to the C source for | 531 | *** C-h v and C-h f commands now include a hyperlink to the C source for |
| 614 | variables and functions defined in C (if the C source is available). | 532 | variables and functions defined in C (if the C source is available). |
| 615 | 533 | ||
| 616 | +++ | ||
| 617 | *** Help mode now only makes hyperlinks for faces when the face name is | 534 | *** Help mode now only makes hyperlinks for faces when the face name is |
| 618 | preceded or followed by the word `face'. It no longer makes | 535 | preceded or followed by the word `face'. It no longer makes |
| 619 | hyperlinks for variables without variable documentation, unless | 536 | hyperlinks for variables without variable documentation, unless |
| @@ -624,38 +541,32 @@ anchor' (in addition to earlier `info node' and `Info node'). In | |||
| 624 | addition, it now makes hyperlinks to URLs as well if the URL is | 541 | addition, it now makes hyperlinks to URLs as well if the URL is |
| 625 | enclosed in single quotes and preceded by `URL'. | 542 | enclosed in single quotes and preceded by `URL'. |
| 626 | 543 | ||
| 627 | +++ | ||
| 628 | *** The new command `describe-char' (C-u C-x =) pops up a buffer with | 544 | *** The new command `describe-char' (C-u C-x =) pops up a buffer with |
| 629 | description various information about a character, including its | 545 | description various information about a character, including its |
| 630 | encodings and syntax, its text properties, how to input, overlays, and | 546 | encodings and syntax, its text properties, how to input, overlays, and |
| 631 | widgets at point. You can get more information about some of them, by | 547 | widgets at point. You can get more information about some of them, by |
| 632 | clicking on mouse-sensitive areas or moving there and pressing RET. | 548 | clicking on mouse-sensitive areas or moving there and pressing RET. |
| 633 | 549 | ||
| 634 | +++ | ||
| 635 | *** The command `list-text-properties-at' has been deleted because | 550 | *** The command `list-text-properties-at' has been deleted because |
| 636 | C-u C-x = gives the same information and more. | 551 | C-u C-x = gives the same information and more. |
| 637 | 552 | ||
| 638 | +++ | ||
| 639 | *** New command `display-local-help' displays any local help at point | 553 | *** New command `display-local-help' displays any local help at point |
| 640 | in the echo area. It is bound to `C-h .'. It normally displays the | 554 | in the echo area. It is bound to `C-h .'. It normally displays the |
| 641 | same string that would be displayed on mouse-over using the | 555 | same string that would be displayed on mouse-over using the |
| 642 | `help-echo' property, but, in certain cases, it can display a more | 556 | `help-echo' property, but, in certain cases, it can display a more |
| 643 | keyboard oriented alternative. | 557 | keyboard oriented alternative. |
| 644 | 558 | ||
| 645 | +++ | ||
| 646 | *** New user option `help-at-pt-display-when-idle' allows to | 559 | *** New user option `help-at-pt-display-when-idle' allows to |
| 647 | automatically show the help provided by `display-local-help' on | 560 | automatically show the help provided by `display-local-help' on |
| 648 | point-over, after suitable idle time. The amount of idle time is | 561 | point-over, after suitable idle time. The amount of idle time is |
| 649 | determined by the user option `help-at-pt-timer-delay' and defaults | 562 | determined by the user option `help-at-pt-timer-delay' and defaults |
| 650 | to one second. This feature is turned off by default. | 563 | to one second. This feature is turned off by default. |
| 651 | 564 | ||
| 652 | +++ | ||
| 653 | *** The apropos commands now accept a list of words to match. | 565 | *** The apropos commands now accept a list of words to match. |
| 654 | When more than one word is specified, at least two of those words must | 566 | When more than one word is specified, at least two of those words must |
| 655 | be present for an item to match. Regular expression matching is still | 567 | be present for an item to match. Regular expression matching is still |
| 656 | available. | 568 | available. |
| 657 | 569 | ||
| 658 | +++ | ||
| 659 | *** The new option `apropos-sort-by-scores' causes the matching items | 570 | *** The new option `apropos-sort-by-scores' causes the matching items |
| 660 | to be sorted according to their score. The score for an item is a | 571 | to be sorted according to their score. The score for an item is a |
| 661 | number calculated to indicate how well the item matches the words or | 572 | number calculated to indicate how well the item matches the words or |
| @@ -665,77 +576,64 @@ matching item. | |||
| 665 | 576 | ||
| 666 | ** Incremental Search changes: | 577 | ** Incremental Search changes: |
| 667 | 578 | ||
| 668 | +++ | ||
| 669 | *** Vertical scrolling is now possible within incremental search. | 579 | *** Vertical scrolling is now possible within incremental search. |
| 670 | To enable this feature, customize the new user option | 580 | To enable this feature, customize the new user option |
| 671 | `isearch-allow-scroll'. User written commands which satisfy stringent | 581 | `isearch-allow-scroll'. User written commands which satisfy stringent |
| 672 | constraints can be marked as "scrolling commands". See the Emacs manual | 582 | constraints can be marked as "scrolling commands". See the Emacs manual |
| 673 | for details. | 583 | for details. |
| 674 | 584 | ||
| 675 | +++ | ||
| 676 | *** C-w in incremental search now grabs either a character or a word, | 585 | *** C-w in incremental search now grabs either a character or a word, |
| 677 | making the decision in a heuristic way. This new job is done by the | 586 | making the decision in a heuristic way. This new job is done by the |
| 678 | command `isearch-yank-word-or-char'. To restore the old behavior, | 587 | command `isearch-yank-word-or-char'. To restore the old behavior, |
| 679 | bind C-w to `isearch-yank-word' in `isearch-mode-map'. | 588 | bind C-w to `isearch-yank-word' in `isearch-mode-map'. |
| 680 | 589 | ||
| 681 | +++ | ||
| 682 | *** C-y in incremental search now grabs the next line if point is already | 590 | *** C-y in incremental search now grabs the next line if point is already |
| 683 | at the end of a line. | 591 | at the end of a line. |
| 684 | 592 | ||
| 685 | +++ | ||
| 686 | *** C-M-w deletes and C-M-y grabs a character in isearch mode. | 593 | *** C-M-w deletes and C-M-y grabs a character in isearch mode. |
| 687 | Another method to grab a character is to enter the minibuffer by `M-e' | 594 | Another method to grab a character is to enter the minibuffer by `M-e' |
| 688 | and to type `C-f' at the end of the search string in the minibuffer. | 595 | and to type `C-f' at the end of the search string in the minibuffer. |
| 689 | 596 | ||
| 690 | +++ | ||
| 691 | *** M-% typed in isearch mode invokes `query-replace' or | 597 | *** M-% typed in isearch mode invokes `query-replace' or |
| 692 | `query-replace-regexp' (depending on search mode) with the current | 598 | `query-replace-regexp' (depending on search mode) with the current |
| 693 | search string used as the string to replace. | 599 | search string used as the string to replace. |
| 694 | 600 | ||
| 695 | +++ | ||
| 696 | *** Isearch no longer adds `isearch-resume' commands to the command | 601 | *** Isearch no longer adds `isearch-resume' commands to the command |
| 697 | history by default. To enable this feature, customize the new | 602 | history by default. To enable this feature, customize the new |
| 698 | user option `isearch-resume-in-command-history'. | 603 | user option `isearch-resume-in-command-history'. |
| 699 | 604 | ||
| 700 | ** Replace command changes: | 605 | ** Replace command changes: |
| 701 | 606 | ||
| 702 | --- | ||
| 703 | *** New user option `query-replace-skip-read-only': when non-nil, | 607 | *** New user option `query-replace-skip-read-only': when non-nil, |
| 704 | `query-replace' and related functions simply ignore | 608 | `query-replace' and related functions simply ignore |
| 705 | a match if part of it has a read-only property. | 609 | a match if part of it has a read-only property. |
| 706 | 610 | ||
| 707 | +++ | ||
| 708 | *** When used interactively, the commands `query-replace-regexp' and | 611 | *** When used interactively, the commands `query-replace-regexp' and |
| 709 | `replace-regexp' allow \,expr to be used in a replacement string, | 612 | `replace-regexp' allow \,expr to be used in a replacement string, |
| 710 | where expr is an arbitrary Lisp expression evaluated at replacement | 613 | where expr is an arbitrary Lisp expression evaluated at replacement |
| 711 | time. In many cases, this will be more convenient than using | 614 | time. `\#' in a replacement string now refers to the count of |
| 712 | `query-replace-regexp-eval'. `\#' in a replacement string now refers | 615 | replacements already made by the replacement command. All regular |
| 713 | to the count of replacements already made by the replacement command. | 616 | expression replacement commands now allow `\?' in the replacement |
| 714 | All regular expression replacement commands now allow `\?' in the | 617 | string to specify a position where the replacement string can be |
| 715 | replacement string to specify a position where the replacement string | 618 | edited for each replacement. `query-replace-regexp-eval' is now |
| 716 | can be edited for each replacement. | 619 | deprecated since it offers no additional functionality. |
| 717 | 620 | ||
| 718 | +++ | ||
| 719 | *** query-replace uses isearch lazy highlighting when the new user option | 621 | *** query-replace uses isearch lazy highlighting when the new user option |
| 720 | `query-replace-lazy-highlight' is non-nil. | 622 | `query-replace-lazy-highlight' is non-nil. |
| 721 | 623 | ||
| 722 | --- | ||
| 723 | *** The current match in query-replace is highlighted in new face | 624 | *** The current match in query-replace is highlighted in new face |
| 724 | `query-replace' which by default inherits from isearch face. | 625 | `query-replace' which by default inherits from isearch face. |
| 725 | 626 | ||
| 726 | ** Local variables lists: | 627 | ** Local variables lists: |
| 727 | 628 | ||
| 728 | +++ | ||
| 729 | *** In processing a local variables list, Emacs strips the prefix and | 629 | *** In processing a local variables list, Emacs strips the prefix and |
| 730 | suffix from every line before processing all the lines. | 630 | suffix from every line before processing all the lines. |
| 731 | 631 | ||
| 732 | +++ | ||
| 733 | *** Text properties in local variables. | 632 | *** Text properties in local variables. |
| 734 | 633 | ||
| 735 | A file local variables list cannot specify a string with text | 634 | A file local variables list cannot specify a string with text |
| 736 | properties--any specified text properties are discarded. | 635 | properties--any specified text properties are discarded. |
| 737 | 636 | ||
| 738 | +++ | ||
| 739 | *** If the local variables list contains any variable-value pairs that | 637 | *** If the local variables list contains any variable-value pairs that |
| 740 | are not known to be safe, Emacs shows a prompt asking whether to apply | 638 | are not known to be safe, Emacs shows a prompt asking whether to apply |
| 741 | the local variables list as a whole. In earlier versions, a prompt | 639 | the local variables list as a whole. In earlier versions, a prompt |
| @@ -750,21 +648,18 @@ Variables can also be marked as safe with the existing | |||
| 750 | However, risky variables will not be added to | 648 | However, risky variables will not be added to |
| 751 | `safe-local-variable-values' in this way. | 649 | `safe-local-variable-values' in this way. |
| 752 | 650 | ||
| 753 | +++ | ||
| 754 | *** The variable `enable-local-variables' controls how local variable | 651 | *** The variable `enable-local-variables' controls how local variable |
| 755 | lists are handled. t, the default, specifies the standard querying | 652 | lists are handled. t, the default, specifies the standard querying |
| 756 | behavior. :safe means use only safe values, and ignore the rest. | 653 | behavior. :safe means use only safe values, and ignore the rest. |
| 757 | :all means set all variables, whether or not they are safe. | 654 | :all means set all variables, whether or not they are safe. |
| 758 | nil means ignore them all. Anything else means always query. | 655 | nil means ignore them all. Anything else means always query. |
| 759 | 656 | ||
| 760 | +++ | ||
| 761 | *** The variable `safe-local-eval-forms' specifies a list of forms that | 657 | *** The variable `safe-local-eval-forms' specifies a list of forms that |
| 762 | are ok to evaluate when they appear in an `eval' local variables | 658 | are ok to evaluate when they appear in an `eval' local variables |
| 763 | specification. Normally Emacs asks for confirmation before evaluating | 659 | specification. Normally Emacs asks for confirmation before evaluating |
| 764 | such a form, but if the form appears in this list, no confirmation is | 660 | such a form, but if the form appears in this list, no confirmation is |
| 765 | needed. | 661 | needed. |
| 766 | 662 | ||
| 767 | +++ | ||
| 768 | *** If a function has a non-nil `safe-local-eval-function' property, | 663 | *** If a function has a non-nil `safe-local-eval-function' property, |
| 769 | that means it is ok to evaluate some calls to that function when it | 664 | that means it is ok to evaluate some calls to that function when it |
| 770 | appears in an `eval' local variables specification. If the property | 665 | appears in an `eval' local variables specification. If the property |
| @@ -777,42 +672,34 @@ confirmation as before. | |||
| 777 | 672 | ||
| 778 | ** File operation changes: | 673 | ** File operation changes: |
| 779 | 674 | ||
| 780 | +++ | ||
| 781 | *** Unquoted `$' in file names do not signal an error any more when | 675 | *** Unquoted `$' in file names do not signal an error any more when |
| 782 | the corresponding environment variable does not exist. | 676 | the corresponding environment variable does not exist. |
| 783 | Instead, the `$ENVVAR' text is left as is, so that `$$' quoting | 677 | Instead, the `$ENVVAR' text is left as is, so that `$$' quoting |
| 784 | is only rarely needed. | 678 | is only rarely needed. |
| 785 | 679 | ||
| 786 | +++ | ||
| 787 | *** find-file-read-only visits multiple files in read-only mode, | 680 | *** find-file-read-only visits multiple files in read-only mode, |
| 788 | when the file name contains wildcard characters. | 681 | when the file name contains wildcard characters. |
| 789 | 682 | ||
| 790 | +++ | ||
| 791 | *** find-alternate-file replaces the current file with multiple files, | 683 | *** find-alternate-file replaces the current file with multiple files, |
| 792 | when the file name contains wildcard characters. It now asks if you | 684 | when the file name contains wildcard characters. It now asks if you |
| 793 | wish save your changes and not just offer to kill the buffer. | 685 | wish save your changes and not just offer to kill the buffer. |
| 794 | 686 | ||
| 795 | +++ | ||
| 796 | *** Auto Compression mode is now enabled by default. | 687 | *** Auto Compression mode is now enabled by default. |
| 797 | 688 | ||
| 798 | --- | ||
| 799 | *** C-x C-f RET, typing nothing in the minibuffer, is no longer a special case. | 689 | *** C-x C-f RET, typing nothing in the minibuffer, is no longer a special case. |
| 800 | 690 | ||
| 801 | Since the default input is the current directory, this has the effect | 691 | Since the default input is the current directory, this has the effect |
| 802 | of specifying the current directory. Normally that means to visit the | 692 | of specifying the current directory. Normally that means to visit the |
| 803 | directory with Dired. | 693 | directory with Dired. |
| 804 | 694 | ||
| 805 | +++ | ||
| 806 | *** When you are root, and you visit a file whose modes specify | 695 | *** When you are root, and you visit a file whose modes specify |
| 807 | read-only, the Emacs buffer is now read-only too. Type C-x C-q if you | 696 | read-only, the Emacs buffer is now read-only too. Type C-x C-q if you |
| 808 | want to make the buffer writable. (As root, you can in fact alter the | 697 | want to make the buffer writable. (As root, you can in fact alter the |
| 809 | file.) | 698 | file.) |
| 810 | 699 | ||
| 811 | +++ | ||
| 812 | *** C-x s (save-some-buffers) now offers an option `d' to diff a buffer | 700 | *** C-x s (save-some-buffers) now offers an option `d' to diff a buffer |
| 813 | against its file, so you can see what changes you would be saving. | 701 | against its file, so you can see what changes you would be saving. |
| 814 | 702 | ||
| 815 | +++ | ||
| 816 | *** The commands copy-file, rename-file, make-symbolic-link and | 703 | *** The commands copy-file, rename-file, make-symbolic-link and |
| 817 | add-name-to-file, when given a directory as the "new name" argument, | 704 | add-name-to-file, when given a directory as the "new name" argument, |
| 818 | convert it to a file name by merging in the within-directory part of | 705 | convert it to a file name by merging in the within-directory part of |
| @@ -820,27 +707,22 @@ the existing file's name. (This is the same convention that shell | |||
| 820 | commands cp, mv, and ln follow.) Thus, M-x copy-file RET ~/foo RET | 707 | commands cp, mv, and ln follow.) Thus, M-x copy-file RET ~/foo RET |
| 821 | /tmp RET copies ~/foo to /tmp/foo. | 708 | /tmp RET copies ~/foo to /tmp/foo. |
| 822 | 709 | ||
| 823 | --- | ||
| 824 | *** When used interactively, `format-write-file' now asks for confirmation | 710 | *** When used interactively, `format-write-file' now asks for confirmation |
| 825 | before overwriting an existing file, unless a prefix argument is | 711 | before overwriting an existing file, unless a prefix argument is |
| 826 | supplied. This behavior is analogous to `write-file'. | 712 | supplied. This behavior is analogous to `write-file'. |
| 827 | 713 | ||
| 828 | --- | ||
| 829 | *** The variable `auto-save-file-name-transforms' now has a third element that | 714 | *** The variable `auto-save-file-name-transforms' now has a third element that |
| 830 | controls whether or not the function `make-auto-save-file-name' will | 715 | controls whether or not the function `make-auto-save-file-name' will |
| 831 | attempt to construct a unique auto-save name (e.g. for remote files). | 716 | attempt to construct a unique auto-save name (e.g. for remote files). |
| 832 | 717 | ||
| 833 | +++ | ||
| 834 | *** The new option `write-region-inhibit-fsync' disables calls to fsync | 718 | *** The new option `write-region-inhibit-fsync' disables calls to fsync |
| 835 | in `write-region'. This can be useful on laptops to avoid spinning up | 719 | in `write-region'. This can be useful on laptops to avoid spinning up |
| 836 | the hard drive upon each file save. Enabling this variable may result | 720 | the hard drive upon each file save. Enabling this variable may result |
| 837 | in data loss, use with care. | 721 | in data loss, use with care. |
| 838 | 722 | ||
| 839 | +++ | ||
| 840 | *** If the user visits a file larger than `large-file-warning-threshold', | 723 | *** If the user visits a file larger than `large-file-warning-threshold', |
| 841 | Emacs asks for confirmation. | 724 | Emacs asks for confirmation. |
| 842 | 725 | ||
| 843 | +++ | ||
| 844 | *** require-final-newline now has two new possible values: | 726 | *** require-final-newline now has two new possible values: |
| 845 | 727 | ||
| 846 | `visit' means add a newline (as an undoable change) if it's needed | 728 | `visit' means add a newline (as an undoable change) if it's needed |
| @@ -850,7 +732,6 @@ when visiting the file. | |||
| 850 | needed when visiting the file, and also add a newline if it's needed | 732 | needed when visiting the file, and also add a newline if it's needed |
| 851 | when saving the file. | 733 | when saving the file. |
| 852 | 734 | ||
| 853 | +++ | ||
| 854 | *** The new option mode-require-final-newline controls how certain | 735 | *** The new option mode-require-final-newline controls how certain |
| 855 | major modes enable require-final-newline. Any major mode that's | 736 | major modes enable require-final-newline. Any major mode that's |
| 856 | designed for a kind of file that should normally end in a newline | 737 | designed for a kind of file that should normally end in a newline |
| @@ -860,17 +741,14 @@ modes do. | |||
| 860 | 741 | ||
| 861 | ** Minibuffer changes: | 742 | ** Minibuffer changes: |
| 862 | 743 | ||
| 863 | +++ | ||
| 864 | *** The new file-name-shadow-mode is turned ON by default, so that when | 744 | *** The new file-name-shadow-mode is turned ON by default, so that when |
| 865 | entering a file name, any prefix which Emacs will ignore is dimmed. | 745 | entering a file name, any prefix which Emacs will ignore is dimmed. |
| 866 | 746 | ||
| 867 | +++ | ||
| 868 | *** There's a new face `minibuffer-prompt'. | 747 | *** There's a new face `minibuffer-prompt'. |
| 869 | Emacs adds this face to the list of text properties stored in the | 748 | Emacs adds this face to the list of text properties stored in the |
| 870 | variable `minibuffer-prompt-properties', which is used to display the | 749 | variable `minibuffer-prompt-properties', which is used to display the |
| 871 | prompt string. | 750 | prompt string. |
| 872 | 751 | ||
| 873 | --- | ||
| 874 | *** Enhanced visual feedback in `*Completions*' buffer. | 752 | *** Enhanced visual feedback in `*Completions*' buffer. |
| 875 | 753 | ||
| 876 | Completions lists use faces to highlight what all completions | 754 | Completions lists use faces to highlight what all completions |
| @@ -891,7 +769,6 @@ listing is triggered at the other normal buffer, you have to pass | |||
| 891 | the common prefix of completions to `display-completion-list' as | 769 | the common prefix of completions to `display-completion-list' as |
| 892 | its second argument. | 770 | its second argument. |
| 893 | 771 | ||
| 894 | +++ | ||
| 895 | *** File-name completion can now ignore specified directories. | 772 | *** File-name completion can now ignore specified directories. |
| 896 | If an element of the list in `completion-ignored-extensions' ends in a | 773 | If an element of the list in `completion-ignored-extensions' ends in a |
| 897 | slash `/', it indicates a subdirectory that should be ignored when | 774 | slash `/', it indicates a subdirectory that should be ignored when |
| @@ -899,19 +776,16 @@ completing file names. Elements of `completion-ignored-extensions' | |||
| 899 | which do not end in a slash are never considered when a completion | 776 | which do not end in a slash are never considered when a completion |
| 900 | candidate is a directory. | 777 | candidate is a directory. |
| 901 | 778 | ||
| 902 | +++ | ||
| 903 | *** The completion commands TAB, SPC and ? in the minibuffer apply only | 779 | *** The completion commands TAB, SPC and ? in the minibuffer apply only |
| 904 | to the text before point. If there is text in the buffer after point, | 780 | to the text before point. If there is text in the buffer after point, |
| 905 | it remains unchanged. | 781 | it remains unchanged. |
| 906 | 782 | ||
| 907 | +++ | ||
| 908 | *** New user option `history-delete-duplicates'. | 783 | *** New user option `history-delete-duplicates'. |
| 909 | If set to t when adding a new history element, all previous identical | 784 | If set to t when adding a new history element, all previous identical |
| 910 | elements are deleted from the history list. | 785 | elements are deleted from the history list. |
| 911 | 786 | ||
| 912 | ** Redisplay changes: | 787 | ** Redisplay changes: |
| 913 | 788 | ||
| 914 | +++ | ||
| 915 | *** Preemptive redisplay now adapts to current load and bandwidth. | 789 | *** Preemptive redisplay now adapts to current load and bandwidth. |
| 916 | 790 | ||
| 917 | To avoid preempting redisplay on fast computers, networks, and displays, | 791 | To avoid preempting redisplay on fast computers, networks, and displays, |
| @@ -919,20 +793,16 @@ the arrival of new input is now performed at regular intervals during | |||
| 919 | redisplay. The new variable `redisplay-preemption-period' specifies | 793 | redisplay. The new variable `redisplay-preemption-period' specifies |
| 920 | the period; the default is to check for input every 0.1 seconds. | 794 | the period; the default is to check for input every 0.1 seconds. |
| 921 | 795 | ||
| 922 | +++ | ||
| 923 | *** The mode line position information now comes before the major mode. | 796 | *** The mode line position information now comes before the major mode. |
| 924 | When the file is maintained under version control, that information | 797 | When the file is maintained under version control, that information |
| 925 | appears between the position information and the major mode. | 798 | appears between the position information and the major mode. |
| 926 | 799 | ||
| 927 | +++ | ||
| 928 | *** New face `escape-glyph' highlights control characters and escape glyphs. | 800 | *** New face `escape-glyph' highlights control characters and escape glyphs. |
| 929 | 801 | ||
| 930 | +++ | ||
| 931 | *** Non-breaking space and hyphens are now displayed with a special | 802 | *** Non-breaking space and hyphens are now displayed with a special |
| 932 | face, either nobreak-space or escape-glyph. You can turn this off or | 803 | face, either nobreak-space or escape-glyph. You can turn this off or |
| 933 | specify a different mode by setting the variable `nobreak-char-display'. | 804 | specify a different mode by setting the variable `nobreak-char-display'. |
| 934 | 805 | ||
| 935 | +++ | ||
| 936 | *** The parameters of automatic hscrolling can now be customized. | 806 | *** The parameters of automatic hscrolling can now be customized. |
| 937 | The variable `hscroll-margin' determines how many columns away from | 807 | The variable `hscroll-margin' determines how many columns away from |
| 938 | the window edge point is allowed to get before automatic hscrolling | 808 | the window edge point is allowed to get before automatic hscrolling |
| @@ -948,21 +818,17 @@ gives the fraction of the window's width to scroll the window. | |||
| 948 | The variable `automatic-hscrolling' was renamed to | 818 | The variable `automatic-hscrolling' was renamed to |
| 949 | `auto-hscroll-mode'. The old name is still available as an alias. | 819 | `auto-hscroll-mode'. The old name is still available as an alias. |
| 950 | 820 | ||
| 951 | --- | ||
| 952 | *** Moving or scrolling through images (and other lines) taller than | 821 | *** Moving or scrolling through images (and other lines) taller than |
| 953 | the window now works sensibly, by automatically adjusting the window's | 822 | the window now works sensibly, by automatically adjusting the window's |
| 954 | vscroll property. | 823 | vscroll property. |
| 955 | 824 | ||
| 956 | +++ | ||
| 957 | *** New customize option `overline-margin' controls the space between | 825 | *** New customize option `overline-margin' controls the space between |
| 958 | overline and text. | 826 | overline and text. |
| 959 | 827 | ||
| 960 | +++ | ||
| 961 | *** New variable `x-underline-at-descent-line' controls the relative | 828 | *** New variable `x-underline-at-descent-line' controls the relative |
| 962 | position of the underline. When set, it overrides the | 829 | position of the underline. When set, it overrides the |
| 963 | `x-use-underline-position-properties' variables. | 830 | `x-use-underline-position-properties' variables. |
| 964 | 831 | ||
| 965 | +++ | ||
| 966 | *** The new face `mode-line-inactive' is used to display the mode line | 832 | *** The new face `mode-line-inactive' is used to display the mode line |
| 967 | of non-selected windows. The `mode-line' face is now used to display | 833 | of non-selected windows. The `mode-line' face is now used to display |
| 968 | the mode line of the currently selected window. | 834 | the mode line of the currently selected window. |
| @@ -970,14 +836,12 @@ the mode line of the currently selected window. | |||
| 970 | The new variable `mode-line-in-non-selected-windows' controls whether | 836 | The new variable `mode-line-in-non-selected-windows' controls whether |
| 971 | the `mode-line-inactive' face is used. | 837 | the `mode-line-inactive' face is used. |
| 972 | 838 | ||
| 973 | +++ | ||
| 974 | *** You can now customize the use of window fringes. To control this | 839 | *** You can now customize the use of window fringes. To control this |
| 975 | for all frames, use M-x fringe-mode or the Show/Hide submenu of the | 840 | for all frames, use M-x fringe-mode or the Show/Hide submenu of the |
| 976 | top-level Options menu, or customize the `fringe-mode' variable. To | 841 | top-level Options menu, or customize the `fringe-mode' variable. To |
| 977 | control this for a specific frame, use the command M-x | 842 | control this for a specific frame, use the command M-x |
| 978 | set-fringe-style. | 843 | set-fringe-style. |
| 979 | 844 | ||
| 980 | +++ | ||
| 981 | *** Angle icons in the fringes can indicate the buffer boundaries. In | 845 | *** Angle icons in the fringes can indicate the buffer boundaries. In |
| 982 | addition, up and down arrow bitmaps in the fringe indicate which ways | 846 | addition, up and down arrow bitmaps in the fringe indicate which ways |
| 983 | the window can be scrolled. | 847 | the window can be scrolled. |
| @@ -997,7 +861,6 @@ in left fringe, the bottom angle bitmap in right fringe, and both | |||
| 997 | arrow bitmaps in right fringe. To show just the angle bitmaps in the | 861 | arrow bitmaps in right fringe. To show just the angle bitmaps in the |
| 998 | left fringe, but no arrow bitmaps, use ((top . left) (bottom . left)). | 862 | left fringe, but no arrow bitmaps, use ((top . left) (bottom . left)). |
| 999 | 863 | ||
| 1000 | +++ | ||
| 1001 | *** On window systems, lines which are exactly as wide as the window | 864 | *** On window systems, lines which are exactly as wide as the window |
| 1002 | (not counting the final newline character) are no longer broken into | 865 | (not counting the final newline character) are no longer broken into |
| 1003 | two lines on the display (with just the newline on the second line). | 866 | two lines on the display (with just the newline on the second line). |
| @@ -1007,12 +870,10 @@ cursor will be displayed in the fringe when positioned on that newline. | |||
| 1007 | The new user option 'overflow-newline-into-fringe' can be set to nil to | 870 | The new user option 'overflow-newline-into-fringe' can be set to nil to |
| 1008 | revert to the old behavior of continuing such lines. | 871 | revert to the old behavior of continuing such lines. |
| 1009 | 872 | ||
| 1010 | +++ | ||
| 1011 | *** When a window has display margin areas, the fringes are now | 873 | *** When a window has display margin areas, the fringes are now |
| 1012 | displayed between the margins and the buffer's text area, rather than | 874 | displayed between the margins and the buffer's text area, rather than |
| 1013 | outside those margins. | 875 | outside those margins. |
| 1014 | 876 | ||
| 1015 | +++ | ||
| 1016 | *** A window can now have individual fringe and scroll-bar settings, | 877 | *** A window can now have individual fringe and scroll-bar settings, |
| 1017 | in addition to the individual display margin settings. | 878 | in addition to the individual display margin settings. |
| 1018 | 879 | ||
| @@ -1020,57 +881,46 @@ Such individual settings are now preserved when windows are split | |||
| 1020 | horizontally or vertically, a saved window configuration is restored, | 881 | horizontally or vertically, a saved window configuration is restored, |
| 1021 | or when the frame is resized. | 882 | or when the frame is resized. |
| 1022 | 883 | ||
| 1023 | +++ | ||
| 1024 | *** The %c and %l constructs are now ignored in frame-title-format. | 884 | *** The %c and %l constructs are now ignored in frame-title-format. |
| 1025 | Due to technical limitations in how Emacs interacts with windowing | 885 | Due to technical limitations in how Emacs interacts with windowing |
| 1026 | systems, these constructs often failed to render properly, and could | 886 | systems, these constructs often failed to render properly, and could |
| 1027 | even cause Emacs to crash. | 887 | even cause Emacs to crash. |
| 1028 | 888 | ||
| 1029 | +++ | ||
| 1030 | *** If value of `auto-resize-tool-bars' is `grow-only', the tool bar | 889 | *** If value of `auto-resize-tool-bars' is `grow-only', the tool bar |
| 1031 | will expand as needed, but not contract automatically. To contract | 890 | will expand as needed, but not contract automatically. To contract |
| 1032 | the tool bar, you must type C-l. | 891 | the tool bar, you must type C-l. |
| 1033 | 892 | ||
| 1034 | ** Cursor display changes: | 893 | ** Cursor display changes: |
| 1035 | 894 | ||
| 1036 | +++ | ||
| 1037 | *** On X, MS Windows, and Mac OS, the blinking cursor's "off" state is | 895 | *** On X, MS Windows, and Mac OS, the blinking cursor's "off" state is |
| 1038 | now controlled by the variable `blink-cursor-alist'. | 896 | now controlled by the variable `blink-cursor-alist'. |
| 1039 | 897 | ||
| 1040 | +++ | ||
| 1041 | *** The X resource cursorBlink can be used to turn off cursor blinking. | 898 | *** The X resource cursorBlink can be used to turn off cursor blinking. |
| 1042 | 899 | ||
| 1043 | +++ | ||
| 1044 | *** Emacs can produce an underscore-like (horizontal bar) cursor. | 900 | *** Emacs can produce an underscore-like (horizontal bar) cursor. |
| 1045 | The underscore cursor is set by putting `(cursor-type . hbar)' in | 901 | The underscore cursor is set by putting `(cursor-type . hbar)' in |
| 1046 | default-frame-alist. It supports variable heights, like the `bar' | 902 | default-frame-alist. It supports variable heights, like the `bar' |
| 1047 | cursor does. | 903 | cursor does. |
| 1048 | 904 | ||
| 1049 | +++ | ||
| 1050 | *** Display of hollow cursors now obeys the buffer-local value (if any) | 905 | *** Display of hollow cursors now obeys the buffer-local value (if any) |
| 1051 | of `cursor-in-non-selected-windows' in the buffer that the cursor | 906 | of `cursor-in-non-selected-windows' in the buffer that the cursor |
| 1052 | appears in. | 907 | appears in. |
| 1053 | 908 | ||
| 1054 | +++ | ||
| 1055 | *** The variable `cursor-in-non-selected-windows' can now be set to any | 909 | *** The variable `cursor-in-non-selected-windows' can now be set to any |
| 1056 | of the recognized cursor types. | 910 | of the recognized cursor types. |
| 1057 | 911 | ||
| 1058 | +++ | ||
| 1059 | *** On text terminals, the variable `visible-cursor' controls whether Emacs | 912 | *** On text terminals, the variable `visible-cursor' controls whether Emacs |
| 1060 | uses the "very visible" cursor (the default) or the normal cursor. | 913 | uses the "very visible" cursor (the default) or the normal cursor. |
| 1061 | 914 | ||
| 1062 | ** New faces: | 915 | ** New faces: |
| 1063 | 916 | ||
| 1064 | +++ | ||
| 1065 | *** `mode-line-highlight' is the standard face indicating mouse sensitive | 917 | *** `mode-line-highlight' is the standard face indicating mouse sensitive |
| 1066 | elements on mode-line (and header-line) like `highlight' face on text | 918 | elements on mode-line (and header-line) like `highlight' face on text |
| 1067 | areas. | 919 | areas. |
| 1068 | 920 | ||
| 1069 | +++ | ||
| 1070 | *** `mode-line-buffer-id' is the standard face for buffer identification | 921 | *** `mode-line-buffer-id' is the standard face for buffer identification |
| 1071 | parts of the mode line. | 922 | parts of the mode line. |
| 1072 | 923 | ||
| 1073 | +++ | ||
| 1074 | *** `shadow' face defines the appearance of the "shadowed" text, i.e. | 924 | *** `shadow' face defines the appearance of the "shadowed" text, i.e. |
| 1075 | the text which should be less noticeable than the surrounding text. | 925 | the text which should be less noticeable than the surrounding text. |
| 1076 | This can be achieved by using shades of grey in contrast with either | 926 | This can be achieved by using shades of grey in contrast with either |
| @@ -1078,29 +928,13 @@ black or white default foreground color. This generic shadow face | |||
| 1078 | allows customization of the appearance of shadowed text in one place, | 928 | allows customization of the appearance of shadowed text in one place, |
| 1079 | so package-specific faces can inherit from it. | 929 | so package-specific faces can inherit from it. |
| 1080 | 930 | ||
| 1081 | +++ | ||
| 1082 | *** `vertical-border' face is used for the vertical divider between windows. | 931 | *** `vertical-border' face is used for the vertical divider between windows. |
| 1083 | 932 | ||
| 1084 | ** ebnf2ps changes: | 933 | ** Font-Lock (syntax highlighting) changes: |
| 1085 | |||
| 1086 | +++ | ||
| 1087 | *** New option `ebnf-arrow-extra-width' which specify extra width for arrow | ||
| 1088 | shape drawing. | ||
| 1089 | The extra width is used to avoid that the arrowhead and the terminal border | ||
| 1090 | overlap. It depens on `ebnf-arrow-shape' and `ebnf-line-width'. | ||
| 1091 | 934 | ||
| 1092 | +++ | ||
| 1093 | *** New option `ebnf-arrow-scale' which specify the arrow scale. | ||
| 1094 | Values lower than 1.0, shrink the arrow. | ||
| 1095 | Values greater than 1.0, expand the arrow. | ||
| 1096 | |||
| 1097 | ** Font-Lock changes: | ||
| 1098 | |||
| 1099 | +++ | ||
| 1100 | *** M-o now is the prefix key for setting text properties; | 935 | *** M-o now is the prefix key for setting text properties; |
| 1101 | M-o M-o requests refontification. | 936 | M-o M-o requests refontification. |
| 1102 | 937 | ||
| 1103 | +++ | ||
| 1104 | *** All modes now support using M-x font-lock-mode to toggle | 938 | *** All modes now support using M-x font-lock-mode to toggle |
| 1105 | fontification, even those such as Occur, Info, and comint-derived | 939 | fontification, even those such as Occur, Info, and comint-derived |
| 1106 | modes that do their own fontification in a special way. | 940 | modes that do their own fontification in a special way. |
| @@ -1109,7 +943,6 @@ The variable `Info-fontify' is no longer applicable; to disable | |||
| 1109 | fontification in Info, remove `turn-on-font-lock' from | 943 | fontification in Info, remove `turn-on-font-lock' from |
| 1110 | `Info-mode-hook'. | 944 | `Info-mode-hook'. |
| 1111 | 945 | ||
| 1112 | +++ | ||
| 1113 | *** Font-Lock mode: in major modes such as Lisp mode, where some Emacs | 946 | *** Font-Lock mode: in major modes such as Lisp mode, where some Emacs |
| 1114 | features assume that an open-paren in column 0 is always outside of | 947 | features assume that an open-paren in column 0 is always outside of |
| 1115 | any string or comment, Font-Lock now highlights any such open-paren in | 948 | any string or comment, Font-Lock now highlights any such open-paren in |
| @@ -1117,19 +950,15 @@ bold-red if it is inside a string or a comment, to indicate that it | |||
| 1117 | can cause trouble. You should rewrite the string or comment so that | 950 | can cause trouble. You should rewrite the string or comment so that |
| 1118 | the open-paren is not in column 0. | 951 | the open-paren is not in column 0. |
| 1119 | 952 | ||
| 1120 | +++ | ||
| 1121 | *** New standard font-lock face `font-lock-preprocessor-face'. | 953 | *** New standard font-lock face `font-lock-preprocessor-face'. |
| 1122 | 954 | ||
| 1123 | +++ | ||
| 1124 | *** New standard font-lock face `font-lock-comment-delimiter-face'. | 955 | *** New standard font-lock face `font-lock-comment-delimiter-face'. |
| 1125 | 956 | ||
| 1126 | +++ | ||
| 1127 | *** Easy to overlook single character negation can now be font-locked. | 957 | *** Easy to overlook single character negation can now be font-locked. |
| 1128 | You can use the new variable `font-lock-negation-char-face' and the face of | 958 | You can use the new variable `font-lock-negation-char-face' and the face of |
| 1129 | the same name to customize this. Currently the cc-modes, sh-script-mode, | 959 | the same name to customize this. Currently the cc-modes, sh-script-mode, |
| 1130 | cperl-mode and make-mode support this. | 960 | cperl-mode and make-mode support this. |
| 1131 | 961 | ||
| 1132 | --- | ||
| 1133 | *** The default settings for JIT stealth lock parameters are changed. | 962 | *** The default settings for JIT stealth lock parameters are changed. |
| 1134 | The default value for the user option jit-lock-stealth-time is now nil | 963 | The default value for the user option jit-lock-stealth-time is now nil |
| 1135 | instead of 3. This setting of jit-lock-stealth-time disables stealth | 964 | instead of 3. This setting of jit-lock-stealth-time disables stealth |
| @@ -1142,7 +971,6 @@ buffers in the background when it considers the system to be idle. | |||
| 1142 | jit-lock-stealth-nice is now 0.5 instead of 0.125 which is supposed to | 971 | jit-lock-stealth-nice is now 0.5 instead of 0.125 which is supposed to |
| 1143 | cause less load than the old defaults. | 972 | cause less load than the old defaults. |
| 1144 | 973 | ||
| 1145 | --- | ||
| 1146 | *** jit-lock can now be delayed with `jit-lock-defer-time'. | 974 | *** jit-lock can now be delayed with `jit-lock-defer-time'. |
| 1147 | 975 | ||
| 1148 | If this variable is non-nil, its value should be the amount of Emacs | 976 | If this variable is non-nil, its value should be the amount of Emacs |
| @@ -1150,31 +978,25 @@ idle time in seconds to wait before starting fontification. For | |||
| 1150 | example, if you set `jit-lock-defer-time' to 0.25, fontification will | 978 | example, if you set `jit-lock-defer-time' to 0.25, fontification will |
| 1151 | only happen after 0.25s of idle time. | 979 | only happen after 0.25s of idle time. |
| 1152 | 980 | ||
| 1153 | --- | ||
| 1154 | *** contextual refontification is now separate from stealth fontification. | 981 | *** contextual refontification is now separate from stealth fontification. |
| 1155 | 982 | ||
| 1156 | jit-lock-defer-contextually is renamed jit-lock-contextually and | 983 | jit-lock-defer-contextually is renamed jit-lock-contextually and |
| 1157 | jit-lock-context-time determines the delay after which contextual | 984 | jit-lock-context-time determines the delay after which contextual |
| 1158 | refontification takes place. | 985 | refontification takes place. |
| 1159 | 986 | ||
| 1160 | --- | ||
| 1161 | *** lazy-lock is considered obsolete. | 987 | *** lazy-lock is considered obsolete. |
| 1162 | 988 | ||
| 1163 | The `lazy-lock' package is superseded by `jit-lock' and is considered | 989 | The `lazy-lock' package is superseded by `jit-lock' and is considered |
| 1164 | obsolete. `jit-lock' is activated by default; if you wish to continue | 990 | obsolete. `jit-lock' is activated by default; if you wish to continue |
| 1165 | using `lazy-lock', activate it in your ~/.emacs like this: | 991 | using `lazy-lock', activate it in your ~/.emacs like this: |
| 1166 | |||
| 1167 | (setq font-lock-support-mode 'lazy-lock-mode) | 992 | (setq font-lock-support-mode 'lazy-lock-mode) |
| 1168 | 993 | ||
| 1169 | If you invoke `lazy-lock-mode' directly rather than through | 994 | If you invoke `lazy-lock-mode' directly rather than through |
| 1170 | `font-lock-support-mode', it now issues a warning: | 995 | `font-lock-support-mode', it now issues a warning: |
| 1171 | |||
| 1172 | "Use font-lock-support-mode rather than calling lazy-lock-mode" | 996 | "Use font-lock-support-mode rather than calling lazy-lock-mode" |
| 1173 | 997 | ||
| 1174 | |||
| 1175 | ** Menu support: | 998 | ** Menu support: |
| 1176 | 999 | ||
| 1177 | --- | ||
| 1178 | *** A menu item "Show/Hide" was added to the top-level menu "Options". | 1000 | *** A menu item "Show/Hide" was added to the top-level menu "Options". |
| 1179 | This menu allows you to turn various display features on and off (such | 1001 | This menu allows you to turn various display features on and off (such |
| 1180 | as the fringes, the tool bar, the speedbar, and the menu bar itself). | 1002 | as the fringes, the tool bar, the speedbar, and the menu bar itself). |
| @@ -1182,68 +1004,44 @@ You can also move the vertical scroll bar to either side here or turn | |||
| 1182 | it off completely. There is also a menu-item to toggle displaying of | 1004 | it off completely. There is also a menu-item to toggle displaying of |
| 1183 | current date and time, current line and column number in the mode-line. | 1005 | current date and time, current line and column number in the mode-line. |
| 1184 | 1006 | ||
| 1185 | --- | ||
| 1186 | *** Speedbar has moved from the "Tools" top level menu to "Show/Hide". | 1007 | *** Speedbar has moved from the "Tools" top level menu to "Show/Hide". |
| 1187 | 1008 | ||
| 1188 | --- | ||
| 1189 | *** You can exit dialog windows and menus by typing C-g. | 1009 | *** You can exit dialog windows and menus by typing C-g. |
| 1190 | 1010 | ||
| 1191 | --- | ||
| 1192 | *** The menu item "Open File..." has been split into two items, "New File..." | 1011 | *** The menu item "Open File..." has been split into two items, "New File..." |
| 1193 | and "Open File...". "Open File..." now opens only existing files. This is | 1012 | and "Open File...". "Open File..." now opens only existing files. This is |
| 1194 | to support existing GUI file selection dialogs better. | 1013 | to support existing GUI file selection dialogs better. |
| 1195 | 1014 | ||
| 1196 | +++ | 1015 | *** The file selection dialog for Gtk+, Mac, W32 and Motif/LessTif can be |
| 1197 | *** The file selection dialog for Gtk+, Mac, W32 and Motif/Lesstif can be | ||
| 1198 | disabled by customizing the variable `use-file-dialog'. | 1016 | disabled by customizing the variable `use-file-dialog'. |
| 1199 | 1017 | ||
| 1200 | --- | ||
| 1201 | *** The pop up menus for Lucid now stay up if you do a fast click and can | 1018 | *** The pop up menus for Lucid now stay up if you do a fast click and can |
| 1202 | be navigated with the arrow keys (like Gtk+, Mac and W32). | 1019 | be navigated with the arrow keys (like Gtk+, Mac and W32). |
| 1203 | 1020 | ||
| 1204 | +++ | 1021 | *** The menu bar for Motif/LessTif/Lucid/Gtk+ can be navigated with keys. |
| 1205 | *** The menu bar for Motif/Lesstif/Lucid/Gtk+ can be navigated with keys. | ||
| 1206 | Pressing F10 shows the first menu in the menu bar. Navigation is done with | 1022 | Pressing F10 shows the first menu in the menu bar. Navigation is done with |
| 1207 | the arrow keys, select with the return key and cancel with the escape keys. | 1023 | the arrow keys, select with the return key and cancel with the escape keys. |
| 1208 | 1024 | ||
| 1209 | +++ | ||
| 1210 | *** The Lucid menus can display multilingual text in your locale. You have | 1025 | *** The Lucid menus can display multilingual text in your locale. You have |
| 1211 | to explicitly specify a fontSet resource for this to work, for example | 1026 | to explicitly specify a fontSet resource for this to work, for example |
| 1212 | `-xrm "Emacs*fontSet: -*-helvetica-medium-r-*--*-120-*-*-*-*-*-*,*"'. | 1027 | `-xrm "Emacs*fontSet: -*-helvetica-medium-r-*--*-120-*-*-*-*-*-*,*"'. |
| 1213 | 1028 | ||
| 1214 | --- | 1029 | *** Dialogs for Lucid/Athena and LessTif/Motif now pop down on pressing |
| 1215 | *** Dialogs for Lucid/Athena and Lesstif/Motif now pops down when pressing | ||
| 1216 | ESC, like they do for Gtk+, Mac and W32. | 1030 | ESC, like they do for Gtk+, Mac and W32. |
| 1217 | 1031 | ||
| 1218 | +++ | ||
| 1219 | *** For the Gtk+ version, you can make Emacs use the old file dialog | 1032 | *** For the Gtk+ version, you can make Emacs use the old file dialog |
| 1220 | by setting the variable `x-gtk-use-old-file-dialog' to t. Default is to use | 1033 | by setting the variable `x-gtk-use-old-file-dialog' to t. Default is to use |
| 1221 | the new dialog. | 1034 | the new dialog. |
| 1222 | 1035 | ||
| 1223 | ** Mouse changes: | 1036 | ** Mouse changes: |
| 1224 | 1037 | ||
| 1225 | +++ | ||
| 1226 | *** If you set the new variable `mouse-autoselect-window' to a non-nil | ||
| 1227 | value, windows are automatically selected as you move the mouse from | ||
| 1228 | one Emacs window to another, even within a frame. A minibuffer window | ||
| 1229 | can be selected only when it is active. | ||
| 1230 | |||
| 1231 | +++ | ||
| 1232 | *** On X, when the window manager requires that you click on a frame to | ||
| 1233 | select it (give it focus), the selected window and cursor position | ||
| 1234 | normally changes according to the mouse click position. If you set | ||
| 1235 | the variable x-mouse-click-focus-ignore-position to t, the selected | ||
| 1236 | window and cursor position do not change when you click on a frame | ||
| 1237 | to give it focus. | ||
| 1238 | |||
| 1239 | +++ | ||
| 1240 | *** You can now follow links by clicking Mouse-1 on the link. | 1038 | *** You can now follow links by clicking Mouse-1 on the link. |
| 1241 | 1039 | ||
| 1242 | Traditionally, Emacs uses a Mouse-1 click to set point and a Mouse-2 | 1040 | Traditionally, Emacs uses a Mouse-1 click to set point and a Mouse-2 |
| 1243 | click to follow a link, whereas most other applications use a Mouse-1 | 1041 | click to follow a link, whereas most other applications use a Mouse-1 |
| 1244 | click for both purposes, depending on whether you click outside or | 1042 | click for both purposes, depending on whether you click outside or |
| 1245 | inside a link. Now the behavior of a Mouse-1 click has been changed | 1043 | inside a link. Now the behavior of a Mouse-1 click has been changed |
| 1246 | to match this context-sentitive dual behavior. (If you prefer the old | 1044 | to match this context-sensitive dual behavior. (If you prefer the old |
| 1247 | behavior, set the user option `mouse-1-click-follows-link' to nil.) | 1045 | behavior, set the user option `mouse-1-click-follows-link' to nil.) |
| 1248 | 1046 | ||
| 1249 | Depending on the current mode, a Mouse-2 click in Emacs can do much | 1047 | Depending on the current mode, a Mouse-2 click in Emacs can do much |
| @@ -1267,23 +1065,31 @@ drag-mouse-1 action, typically copy the text. | |||
| 1267 | You can customize the new Mouse-1 behavior via the new user options | 1065 | You can customize the new Mouse-1 behavior via the new user options |
| 1268 | `mouse-1-click-follows-link' and `mouse-1-click-in-non-selected-windows'. | 1066 | `mouse-1-click-follows-link' and `mouse-1-click-in-non-selected-windows'. |
| 1269 | 1067 | ||
| 1270 | +++ | 1068 | *** If you set the new variable `mouse-autoselect-window' to a non-nil |
| 1069 | value, windows are automatically selected as you move the mouse from | ||
| 1070 | one Emacs window to another, even within a frame. A minibuffer window | ||
| 1071 | can be selected only when it is active. | ||
| 1072 | |||
| 1073 | *** On X, when the window manager requires that you click on a frame to | ||
| 1074 | select it (give it focus), the selected window and cursor position | ||
| 1075 | normally changes according to the mouse click position. If you set | ||
| 1076 | the variable x-mouse-click-focus-ignore-position to t, the selected | ||
| 1077 | window and cursor position do not change when you click on a frame | ||
| 1078 | to give it focus. | ||
| 1079 | |||
| 1271 | *** Emacs normally highlights mouse sensitive text whenever the mouse | 1080 | *** Emacs normally highlights mouse sensitive text whenever the mouse |
| 1272 | is over the text. By setting the new variable `mouse-highlight', you | 1081 | is over the text. By setting the new variable `mouse-highlight', you |
| 1273 | can optionally enable mouse highlighting only after you move the | 1082 | can optionally enable mouse highlighting only after you move the |
| 1274 | mouse, so that highlighting disappears when you press a key. You can | 1083 | mouse, so that highlighting disappears when you press a key. You can |
| 1275 | also disable mouse highlighting. | 1084 | also disable mouse highlighting. |
| 1276 | 1085 | ||
| 1277 | +++ | ||
| 1278 | *** You can now customize if selecting a region by dragging the mouse | 1086 | *** You can now customize if selecting a region by dragging the mouse |
| 1279 | shall not copy the selected text to the kill-ring by setting the new | 1087 | shall not copy the selected text to the kill-ring by setting the new |
| 1280 | variable mouse-drag-copy-region to nil. | 1088 | variable mouse-drag-copy-region to nil. |
| 1281 | 1089 | ||
| 1282 | --- | ||
| 1283 | *** mouse-wheels can now scroll a specific fraction of the window | 1090 | *** mouse-wheels can now scroll a specific fraction of the window |
| 1284 | (rather than a fixed number of lines) and the scrolling is `progressive'. | 1091 | (rather than a fixed number of lines) and the scrolling is `progressive'. |
| 1285 | 1092 | ||
| 1286 | --- | ||
| 1287 | *** Emacs ignores mouse-2 clicks while the mouse wheel is being moved. | 1093 | *** Emacs ignores mouse-2 clicks while the mouse wheel is being moved. |
| 1288 | 1094 | ||
| 1289 | People tend to push the mouse wheel (which counts as a mouse-2 click) | 1095 | People tend to push the mouse wheel (which counts as a mouse-2 click) |
| @@ -1291,12 +1097,10 @@ unintentionally while turning the wheel, so these clicks are now | |||
| 1291 | ignored. You can customize this with the mouse-wheel-click-event and | 1097 | ignored. You can customize this with the mouse-wheel-click-event and |
| 1292 | mouse-wheel-inhibit-click-time variables. | 1098 | mouse-wheel-inhibit-click-time variables. |
| 1293 | 1099 | ||
| 1294 | +++ | ||
| 1295 | *** Under X, mouse-wheel-mode is turned on by default. | 1100 | *** Under X, mouse-wheel-mode is turned on by default. |
| 1296 | 1101 | ||
| 1297 | ** Multilingual Environment (Mule) changes: | 1102 | ** Multilingual Environment (Mule) changes: |
| 1298 | 1103 | ||
| 1299 | +++ | ||
| 1300 | *** You can disable character translation for a file using the -*- | 1104 | *** You can disable character translation for a file using the -*- |
| 1301 | construct. Include `enable-character-translation: nil' inside the | 1105 | construct. Include `enable-character-translation: nil' inside the |
| 1302 | -*-...-*- to disable any character translation that may happen by | 1106 | -*-...-*- to disable any character translation that may happen by |
| @@ -1309,14 +1113,12 @@ following header, it is decoded by the coding system `iso-latin-1' | |||
| 1309 | without any character translation: | 1113 | without any character translation: |
| 1310 | ;; -*- coding: iso-latin-1!; -*- | 1114 | ;; -*- coding: iso-latin-1!; -*- |
| 1311 | 1115 | ||
| 1312 | --- | ||
| 1313 | *** Language environment and various default coding systems are setup | 1116 | *** Language environment and various default coding systems are setup |
| 1314 | more correctly according to the current locale name. If the locale | 1117 | more correctly according to the current locale name. If the locale |
| 1315 | name doesn't specify a charset, the default is what glibc defines. | 1118 | name doesn't specify a charset, the default is what glibc defines. |
| 1316 | This change can result in using the different coding systems as | 1119 | This change can result in using the different coding systems as |
| 1317 | default in some locale (e.g. vi_VN). | 1120 | default in some locale (e.g. vi_VN). |
| 1318 | 1121 | ||
| 1319 | +++ | ||
| 1320 | *** The keyboard-coding-system is now automatically set based on your | 1122 | *** The keyboard-coding-system is now automatically set based on your |
| 1321 | current locale settings if you are not using a window system. This | 1123 | current locale settings if you are not using a window system. This |
| 1322 | can mean that the META key doesn't work but generates non-ASCII | 1124 | can mean that the META key doesn't work but generates non-ASCII |
| @@ -1326,33 +1128,26 @@ keyboard-coding-system) if you prefer META to work (the old default) | |||
| 1326 | or if the locale doesn't describe the character set actually generated | 1128 | or if the locale doesn't describe the character set actually generated |
| 1327 | by the keyboard. See Info node `Unibyte Mode'. | 1129 | by the keyboard. See Info node `Unibyte Mode'. |
| 1328 | 1130 | ||
| 1329 | +++ | ||
| 1330 | *** The new command `revert-buffer-with-coding-system' (C-x RET r) | 1131 | *** The new command `revert-buffer-with-coding-system' (C-x RET r) |
| 1331 | revisits the current file using a coding system that you specify. | 1132 | revisits the current file using a coding system that you specify. |
| 1332 | 1133 | ||
| 1333 | +++ | ||
| 1334 | *** New command `recode-region' decodes the region again by a specified | 1134 | *** New command `recode-region' decodes the region again by a specified |
| 1335 | coding system. | 1135 | coding system. |
| 1336 | 1136 | ||
| 1337 | +++ | ||
| 1338 | *** The new command `recode-file-name' changes the encoding of the name | 1137 | *** The new command `recode-file-name' changes the encoding of the name |
| 1339 | of a file. | 1138 | of a file. |
| 1340 | 1139 | ||
| 1341 | --- | ||
| 1342 | *** New command `ucs-insert' inserts a character specified by its | 1140 | *** New command `ucs-insert' inserts a character specified by its |
| 1343 | unicode. | 1141 | unicode. |
| 1344 | 1142 | ||
| 1345 | +++ | ||
| 1346 | *** The new command `set-file-name-coding-system' (C-x RET F) sets | 1143 | *** The new command `set-file-name-coding-system' (C-x RET F) sets |
| 1347 | coding system for encoding and decoding file names. A new menu item | 1144 | coding system for encoding and decoding file names. A new menu item |
| 1348 | (Options->Mule->Set Coding Systems->For File Name) invokes this | 1145 | (Options->Mule->Set Coding Systems->For File Name) invokes this |
| 1349 | command. | 1146 | command. |
| 1350 | 1147 | ||
| 1351 | +++ | ||
| 1352 | *** New command quail-show-key shows what key (or key sequence) to type | 1148 | *** New command quail-show-key shows what key (or key sequence) to type |
| 1353 | in the current input method to input a character at point. | 1149 | in the current input method to input a character at point. |
| 1354 | 1150 | ||
| 1355 | +++ | ||
| 1356 | *** Limited support for character `unification' has been added. | 1151 | *** Limited support for character `unification' has been added. |
| 1357 | Emacs now knows how to translate between different representations of | 1152 | Emacs now knows how to translate between different representations of |
| 1358 | the same characters in various Emacs charsets according to standard | 1153 | the same characters in various Emacs charsets according to standard |
| @@ -1372,32 +1167,24 @@ into Unicode characters (from the latin-iso8859-1 and | |||
| 1372 | mule-unicode-0100-24ff charsets) on decoding. Note that this mode | 1167 | mule-unicode-0100-24ff charsets) on decoding. Note that this mode |
| 1373 | will often effectively clobber data with an iso-2022 encoding. | 1168 | will often effectively clobber data with an iso-2022 encoding. |
| 1374 | 1169 | ||
| 1375 | --- | 1170 | *** New language environments (set up automatically according to the |
| 1376 | *** There is support for decoding Greek and Cyrillic characters into | 1171 | locale): Belarusian, Bulgarian, Chinese-EUC-TW, Croatian, Esperanto, |
| 1377 | either Unicode (the mule-unicode charsets) or the iso-8859 charsets, | 1172 | French, Georgian, Italian, Latin-7, Latvian, Lithuanian, Malayalam, |
| 1378 | when possible. The latter are more space-efficient. This is | 1173 | Russian, Russian, Slovenian, Swedish, Tajik, Tamil, UTF-8,Ukrainian, |
| 1379 | controlled by user option utf-fragment-on-decoding. | 1174 | Welsh,Latin-6, Windows-1255. |
| 1380 | |||
| 1381 | --- | ||
| 1382 | *** New language environments: French, Ukrainian, Tajik, | ||
| 1383 | Bulgarian, Belarusian, Ukrainian, UTF-8, Windows-1255, Welsh, Latin-6, | ||
| 1384 | Latin-7, Lithuanian, Latvian, Swedish, Slovenian, Croatian, Georgian, | ||
| 1385 | Italian, Russian, Malayalam, Tamil, Russian, Chinese-EUC-TW, | ||
| 1386 | Esperanto. (Set up automatically according to the locale.) | ||
| 1387 | 1175 | ||
| 1388 | --- | ||
| 1389 | *** New input methods: latin-alt-postfix, latin-postfix, latin-prefix, | 1176 | *** New input methods: latin-alt-postfix, latin-postfix, latin-prefix, |
| 1390 | ukrainian-computer, belarusian, bulgarian-bds, russian-computer, | 1177 | belarusian, bulgarian-bds, bulgarian-phonetic, chinese-sisheng (for |
| 1391 | vietnamese-telex, lithuanian-numeric, lithuanian-keyboard, | 1178 | Chinese Pinyin characters), croatian, dutch, georgian, latvian-keyboard, |
| 1392 | latvian-keyboard, welsh, georgian, rfc1345, ucs, sgml, | 1179 | lithuanian-numeric, lithuanian-keyboard, malayalam-inscript, rfc1345, |
| 1393 | bulgarian-phonetic, dutch, slovenian, croatian, malayalam-inscript, | 1180 | russian-computer, sgml, slovenian, tamil-inscript, ukrainian-computer, |
| 1394 | tamil-inscript. | 1181 | ucs, vietnamese-telex, welsh. |
| 1395 | 1182 | ||
| 1396 | --- | 1183 | *** There is support for decoding Greek and Cyrillic characters into |
| 1397 | *** New input method chinese-sisheng for inputting Chinese Pinyin | 1184 | either Unicode (the mule-unicode charsets) or the iso-8859 charsets, |
| 1398 | characters. | 1185 | when possible. The latter are more space-efficient. |
| 1186 | This is controlled by user option utf-fragment-on-decoding. | ||
| 1399 | 1187 | ||
| 1400 | --- | ||
| 1401 | *** Improved Thai support. A new minor mode `thai-word-mode' (which is | 1188 | *** Improved Thai support. A new minor mode `thai-word-mode' (which is |
| 1402 | automatically activated if you select Thai as a language | 1189 | automatically activated if you select Thai as a language |
| 1403 | environment) changes key bindings of most word-oriented commands to | 1190 | environment) changes key bindings of most word-oriented commands to |
| @@ -1409,17 +1196,11 @@ versions which recognize Thai words. Affected commands are | |||
| 1409 | M-t (transpose-words) | 1196 | M-t (transpose-words) |
| 1410 | M-q (fill-paragraph) | 1197 | M-q (fill-paragraph) |
| 1411 | 1198 | ||
| 1412 | --- | ||
| 1413 | *** Indian support has been updated. | 1199 | *** Indian support has been updated. |
| 1414 | The in-is13194 coding system is now Unicode-based. CDAC fonts are | 1200 | The in-is13194 coding system is now Unicode-based. CDAC fonts are |
| 1415 | assumed. There is a framework for supporting various | 1201 | assumed. There is a framework for supporting various Indian scripts, |
| 1416 | Indian scripts, but currently only Devanagari, Malayalam and Tamil are | 1202 | but currently only Devanagari, Malayalam and Tamil are supported. |
| 1417 | supported. | ||
| 1418 | |||
| 1419 | --- | ||
| 1420 | *** A UTF-7 coding system is available in the library `utf-7'. | ||
| 1421 | 1203 | ||
| 1422 | --- | ||
| 1423 | *** The utf-8/16 coding systems have been enhanced. | 1204 | *** The utf-8/16 coding systems have been enhanced. |
| 1424 | By default, untranslatable utf-8 sequences are simply composed into | 1205 | By default, untranslatable utf-8 sequences are simply composed into |
| 1425 | single quasi-characters. User option `utf-translate-cjk-mode' (it is | 1206 | single quasi-characters. User option `utf-translate-cjk-mode' (it is |
| @@ -1433,42 +1214,37 @@ coding system now also encodes characters from most of Emacs's | |||
| 1433 | one-dimensional internal charsets, specifically the ISO-8859 ones. | 1214 | one-dimensional internal charsets, specifically the ISO-8859 ones. |
| 1434 | The utf-16 coding system is affected similarly. | 1215 | The utf-16 coding system is affected similarly. |
| 1435 | 1216 | ||
| 1436 | --- | 1217 | *** A UTF-7 coding system is available in the library `utf-7'. |
| 1218 | |||
| 1437 | *** A new coding system `euc-tw' has been added for traditional Chinese | 1219 | *** A new coding system `euc-tw' has been added for traditional Chinese |
| 1438 | in CNS encoding; it accepts both Big 5 and CNS as input; on saving, | 1220 | in CNS encoding; it accepts both Big 5 and CNS as input; on saving, |
| 1439 | Big 5 is then converted to CNS. | 1221 | Big 5 is then converted to CNS. |
| 1440 | 1222 | ||
| 1441 | --- | ||
| 1442 | *** Many new coding systems are available in the `code-pages' library. | 1223 | *** Many new coding systems are available in the `code-pages' library. |
| 1443 | These include complete versions of most of those in codepage.el, based | 1224 | These include complete versions of most of those in codepage.el, based |
| 1444 | on Unicode mappings. `codepage-setup' is now obsolete and is used | 1225 | on Unicode mappings. `codepage-setup' is now obsolete and is used |
| 1445 | only in the MS-DOS port of Emacs. All coding systems defined in | 1226 | only in the MS-DOS port of Emacs. All coding systems defined in |
| 1446 | `code-pages' are auto-loaded. | 1227 | `code-pages' are auto-loaded. |
| 1447 | 1228 | ||
| 1448 | --- | ||
| 1449 | *** New variable `utf-translate-cjk-unicode-range' controls which | 1229 | *** New variable `utf-translate-cjk-unicode-range' controls which |
| 1450 | Unicode characters to translate in `utf-translate-cjk-mode'. | 1230 | Unicode characters to translate in `utf-translate-cjk-mode'. |
| 1451 | 1231 | ||
| 1452 | --- | ||
| 1453 | *** iso-10646-1 (`Unicode') fonts can be used to display any range of | 1232 | *** iso-10646-1 (`Unicode') fonts can be used to display any range of |
| 1454 | characters encodable by the utf-8 coding system. Just specify the | 1233 | characters encodable by the utf-8 coding system. Just specify the |
| 1455 | fontset appropriately. | 1234 | fontset appropriately. |
| 1456 | 1235 | ||
| 1457 | ** Customize changes: | 1236 | ** Customize changes: |
| 1458 | 1237 | ||
| 1459 | +++ | ||
| 1460 | *** Custom themes are collections of customize options. Create a | 1238 | *** Custom themes are collections of customize options. Create a |
| 1461 | custom theme with M-x customize-create-theme. Use M-x load-theme to | 1239 | custom theme with M-x customize-create-theme. Use M-x load-theme to |
| 1462 | load and enable a theme, and M-x disable-theme to disable it. Use M-x | 1240 | load and enable a theme, and M-x disable-theme to disable it. Use M-x |
| 1463 | enable-theme to enable a disabled theme. | 1241 | enable-theme to enable a disabled theme. |
| 1464 | 1242 | ||
| 1465 | +++ | ||
| 1466 | *** The commands M-x customize-face and M-x customize-face-other-window | 1243 | *** The commands M-x customize-face and M-x customize-face-other-window |
| 1467 | now look at the character after point. If a face or faces are | 1244 | now look at the character after point. If a face or faces are |
| 1468 | specified for that character, the commands by default customize those | 1245 | specified for that character, the commands by default customize those |
| 1469 | faces. | 1246 | faces. |
| 1470 | 1247 | ||
| 1471 | --- | ||
| 1472 | *** The face-customization widget has been reworked to be less confusing. | 1248 | *** The face-customization widget has been reworked to be less confusing. |
| 1473 | In particular, when you enable a face attribute using the corresponding | 1249 | In particular, when you enable a face attribute using the corresponding |
| 1474 | check-box, there's no longer a redundant `*' option in value selection | 1250 | check-box, there's no longer a redundant `*' option in value selection |
| @@ -1477,7 +1253,6 @@ sense for the attribute. When an attribute is de-selected by unchecking | |||
| 1477 | its check-box, then the (now ignored, but still present temporarily in | 1253 | its check-box, then the (now ignored, but still present temporarily in |
| 1478 | case you re-select the attribute) value is hidden. | 1254 | case you re-select the attribute) value is hidden. |
| 1479 | 1255 | ||
| 1480 | +++ | ||
| 1481 | *** When you set or reset a variable's value in a Customize buffer, | 1256 | *** When you set or reset a variable's value in a Customize buffer, |
| 1482 | the previous value becomes the "backup value" of the variable. | 1257 | the previous value becomes the "backup value" of the variable. |
| 1483 | You can go back to that backup value by selecting "Use Backup Value" | 1258 | You can go back to that backup value by selecting "Use Backup Value" |
| @@ -1485,17 +1260,14 @@ under the "[State]" button. | |||
| 1485 | 1260 | ||
| 1486 | ** Buffer Menu changes: | 1261 | ** Buffer Menu changes: |
| 1487 | 1262 | ||
| 1488 | +++ | ||
| 1489 | *** New command `Buffer-menu-toggle-files-only' toggles display of file | 1263 | *** New command `Buffer-menu-toggle-files-only' toggles display of file |
| 1490 | buffers only in the Buffer Menu. It is bound to T in Buffer Menu | 1264 | buffers only in the Buffer Menu. It is bound to T in Buffer Menu |
| 1491 | mode. | 1265 | mode. |
| 1492 | 1266 | ||
| 1493 | +++ | ||
| 1494 | *** `buffer-menu' and `list-buffers' now list buffers whose names begin | 1267 | *** `buffer-menu' and `list-buffers' now list buffers whose names begin |
| 1495 | with a space, when those buffers are visiting files. Normally buffers | 1268 | with a space, when those buffers are visiting files. Normally buffers |
| 1496 | whose names begin with space are omitted. | 1269 | whose names begin with space are omitted. |
| 1497 | 1270 | ||
| 1498 | --- | ||
| 1499 | *** The new options `buffers-menu-show-directories' and | 1271 | *** The new options `buffers-menu-show-directories' and |
| 1500 | `buffers-menu-show-status' let you control how buffers are displayed | 1272 | `buffers-menu-show-status' let you control how buffers are displayed |
| 1501 | in the menu dropped down when you click "Buffers" from the menu bar. | 1273 | in the menu dropped down when you click "Buffers" from the menu bar. |
| @@ -1515,24 +1287,19 @@ the Buffers menu is regenerated. | |||
| 1515 | 1287 | ||
| 1516 | ** Dired mode: | 1288 | ** Dired mode: |
| 1517 | 1289 | ||
| 1518 | --- | ||
| 1519 | *** New faces dired-header, dired-mark, dired-marked, dired-flagged, | 1290 | *** New faces dired-header, dired-mark, dired-marked, dired-flagged, |
| 1520 | dired-ignored, dired-directory, dired-symlink, dired-warning | 1291 | dired-ignored, dired-directory, dired-symlink, dired-warning |
| 1521 | introduced for Dired mode instead of font-lock faces. | 1292 | introduced for Dired mode instead of font-lock faces. |
| 1522 | 1293 | ||
| 1523 | +++ | ||
| 1524 | *** New Dired command `dired-compare-directories' marks files | 1294 | *** New Dired command `dired-compare-directories' marks files |
| 1525 | with different file attributes in two dired buffers. | 1295 | with different file attributes in two dired buffers. |
| 1526 | 1296 | ||
| 1527 | +++ | ||
| 1528 | *** New Dired command `dired-do-touch' (bound to T) changes timestamps | 1297 | *** New Dired command `dired-do-touch' (bound to T) changes timestamps |
| 1529 | of marked files with the value entered in the minibuffer. | 1298 | of marked files with the value entered in the minibuffer. |
| 1530 | 1299 | ||
| 1531 | +++ | ||
| 1532 | *** The Dired command `dired-goto-file' is now bound to j, not M-g. | 1300 | *** The Dired command `dired-goto-file' is now bound to j, not M-g. |
| 1533 | This is to avoid hiding the global key binding of M-g. | 1301 | This is to avoid hiding the global key binding of M-g. |
| 1534 | 1302 | ||
| 1535 | +++ | ||
| 1536 | *** In Dired's ! command (dired-do-shell-command), `*' and `?' now | 1303 | *** In Dired's ! command (dired-do-shell-command), `*' and `?' now |
| 1537 | control substitution of the file names only when they are surrounded | 1304 | control substitution of the file names only when they are surrounded |
| 1538 | by whitespace. This means you can now use them as shell wildcards | 1305 | by whitespace. This means you can now use them as shell wildcards |
| @@ -1540,11 +1307,9 @@ too. If you want to use just plain `*' as a wildcard, type `*""'; the | |||
| 1540 | double quotes make no difference in the shell, but they prevent | 1307 | double quotes make no difference in the shell, but they prevent |
| 1541 | special treatment in `dired-do-shell-command'. | 1308 | special treatment in `dired-do-shell-command'. |
| 1542 | 1309 | ||
| 1543 | +++ | ||
| 1544 | *** In Dired, the w command now stores the current line's file name | 1310 | *** In Dired, the w command now stores the current line's file name |
| 1545 | into the kill ring. With a zero prefix arg, it stores the absolute file name. | 1311 | into the kill ring. With a zero prefix arg, it stores the absolute file name. |
| 1546 | 1312 | ||
| 1547 | +++ | ||
| 1548 | *** In Dired-x, Omitting files is now a minor mode, dired-omit-mode. | 1313 | *** In Dired-x, Omitting files is now a minor mode, dired-omit-mode. |
| 1549 | 1314 | ||
| 1550 | The mode toggling command is bound to M-o. A new command | 1315 | The mode toggling command is bound to M-o. A new command |
| @@ -1552,7 +1317,6 @@ dired-mark-omitted, bound to * O, marks omitted files. The variable | |||
| 1552 | dired-omit-files-p is obsoleted, use the mode toggling function | 1317 | dired-omit-files-p is obsoleted, use the mode toggling function |
| 1553 | instead. | 1318 | instead. |
| 1554 | 1319 | ||
| 1555 | +++ | ||
| 1556 | *** The variables dired-free-space-program and dired-free-space-args | 1320 | *** The variables dired-free-space-program and dired-free-space-args |
| 1557 | have been renamed to directory-free-space-program and | 1321 | have been renamed to directory-free-space-program and |
| 1558 | directory-free-space-args, and they now apply whenever Emacs puts a | 1322 | directory-free-space-args, and they now apply whenever Emacs puts a |
| @@ -1560,7 +1324,6 @@ directory listing into a buffer. | |||
| 1560 | 1324 | ||
| 1561 | ** Comint changes: | 1325 | ** Comint changes: |
| 1562 | 1326 | ||
| 1563 | --- | ||
| 1564 | *** The comint prompt can now be made read-only, using the new user | 1327 | *** The comint prompt can now be made read-only, using the new user |
| 1565 | option `comint-prompt-read-only'. This is not enabled by default, | 1328 | option `comint-prompt-read-only'. This is not enabled by default, |
| 1566 | except in IELM buffers. The read-only status of IELM prompts can be | 1329 | except in IELM buffers. The read-only status of IELM prompts can be |
| @@ -1582,27 +1345,23 @@ not the case, then `comint-kill-region' behaves just like | |||
| 1582 | `kill-region' if read-only properties are involved: it copies the text | 1345 | `kill-region' if read-only properties are involved: it copies the text |
| 1583 | to the kill-ring, but does not delete it. | 1346 | to the kill-ring, but does not delete it. |
| 1584 | 1347 | ||
| 1585 | +++ | ||
| 1586 | *** The new command `comint-insert-previous-argument' in comint-derived | 1348 | *** The new command `comint-insert-previous-argument' in comint-derived |
| 1587 | modes (shell-mode, etc.) inserts arguments from previous command lines, | 1349 | modes (shell-mode, etc.) inserts arguments from previous command lines, |
| 1588 | like bash's `ESC .' binding. It is bound by default to `C-c .', but | 1350 | like bash's `ESC .' binding. It is bound by default to `C-c .', but |
| 1589 | otherwise behaves quite similarly to the bash version. | 1351 | otherwise behaves quite similarly to the bash version. |
| 1590 | 1352 | ||
| 1591 | +++ | ||
| 1592 | *** `comint-use-prompt-regexp-instead-of-fields' has been renamed | 1353 | *** `comint-use-prompt-regexp-instead-of-fields' has been renamed |
| 1593 | `comint-use-prompt-regexp'. The old name has been kept as an alias, | 1354 | `comint-use-prompt-regexp'. The old name has been kept as an alias, |
| 1594 | but declared obsolete. | 1355 | but declared obsolete. |
| 1595 | 1356 | ||
| 1596 | +++ | 1357 | *** The new INSIDE_EMACS environment variable is set to "t" in subshells |
| 1597 | *** The new INSIDE_EMACS environment variable is set to "t" in | 1358 | running inside Emacs. This supersedes the EMACS environment variable, |
| 1598 | subshells running inside Emacs. This supersedes the EMACS environment | 1359 | which will be removed in a future Emacs release. Programs that need |
| 1599 | variable, which will be removed in a future Emacs release. Programs | 1360 | to know whether they are started inside Emacs should check INSIDE_EMACS |
| 1600 | that need to know whether they are started inside Emacs should check | 1361 | instead of EMACS. |
| 1601 | INSIDE_EMACS instead of EMACS. | ||
| 1602 | 1362 | ||
| 1603 | ** M-x Compile changes: | 1363 | ** M-x Compile changes: |
| 1604 | 1364 | ||
| 1605 | --- | ||
| 1606 | *** M-x compile has become more robust and reliable | 1365 | *** M-x compile has become more robust and reliable |
| 1607 | 1366 | ||
| 1608 | Quite a few more kinds of messages are recognized. Messages that are | 1367 | Quite a few more kinds of messages are recognized. Messages that are |
| @@ -1622,22 +1381,18 @@ that configure outputs and -o options so you see at a glance where you are. | |||
| 1622 | 1381 | ||
| 1623 | The new file etc/compilation.txt gives examples of each type of message. | 1382 | The new file etc/compilation.txt gives examples of each type of message. |
| 1624 | 1383 | ||
| 1625 | +++ | ||
| 1626 | *** New user option `compilation-environment'. | 1384 | *** New user option `compilation-environment'. |
| 1627 | This option allows you to specify environment variables for inferior | 1385 | This option allows you to specify environment variables for inferior |
| 1628 | compilation processes without affecting the environment that all | 1386 | compilation processes without affecting the environment that all |
| 1629 | subprocesses inherit. | 1387 | subprocesses inherit. |
| 1630 | 1388 | ||
| 1631 | +++ | ||
| 1632 | *** New user option `compilation-disable-input'. | 1389 | *** New user option `compilation-disable-input'. |
| 1633 | If this is non-nil, send end-of-file as compilation process input. | 1390 | If this is non-nil, send end-of-file as compilation process input. |
| 1634 | 1391 | ||
| 1635 | +++ | ||
| 1636 | *** New options `next-error-highlight' and `next-error-highlight-no-select' | 1392 | *** New options `next-error-highlight' and `next-error-highlight-no-select' |
| 1637 | specify the method of highlighting of the corresponding source line | 1393 | specify the method of highlighting of the corresponding source line |
| 1638 | in new face `next-error'. | 1394 | in new face `next-error'. |
| 1639 | 1395 | ||
| 1640 | +++ | ||
| 1641 | *** A new minor mode `next-error-follow-minor-mode' can be used in | 1396 | *** A new minor mode `next-error-follow-minor-mode' can be used in |
| 1642 | compilation-mode, grep-mode, occur-mode, and diff-mode (i.e. all the | 1397 | compilation-mode, grep-mode, occur-mode, and diff-mode (i.e. all the |
| 1643 | modes that can use `next-error'). In this mode, cursor motion in the | 1398 | modes that can use `next-error'). In this mode, cursor motion in the |
| @@ -1645,33 +1400,24 @@ buffer causes automatic display in another window of the corresponding | |||
| 1645 | matches, compilation errors, etc. This minor mode can be toggled with | 1400 | matches, compilation errors, etc. This minor mode can be toggled with |
| 1646 | C-c C-f. | 1401 | C-c C-f. |
| 1647 | 1402 | ||
| 1648 | +++ | ||
| 1649 | *** When the left fringe is displayed, an arrow points to current message in | 1403 | *** When the left fringe is displayed, an arrow points to current message in |
| 1650 | the compilation buffer. | 1404 | the compilation buffer. |
| 1651 | 1405 | ||
| 1652 | +++ | ||
| 1653 | *** The new variable `compilation-context-lines' controls lines of leading | 1406 | *** The new variable `compilation-context-lines' controls lines of leading |
| 1654 | context before the current message. If nil and the left fringe is displayed, | 1407 | context before the current message. If nil and the left fringe is displayed, |
| 1655 | it doesn't scroll the compilation output window. If there is no left fringe, | 1408 | it doesn't scroll the compilation output window. If there is no left fringe, |
| 1656 | no arrow is displayed and a value of nil means display the message at the top | 1409 | no arrow is displayed and a value of nil means display the message at the top |
| 1657 | of the window. | 1410 | of the window. |
| 1658 | 1411 | ||
| 1659 | +++ | ||
| 1660 | *** The EMACS environment variable now defaults to Emacs's absolute | ||
| 1661 | file name, instead of to "t". | ||
| 1662 | |||
| 1663 | ** Occur mode changes: | 1412 | ** Occur mode changes: |
| 1664 | 1413 | ||
| 1665 | +++ | ||
| 1666 | *** In the *Occur* buffer, `o' switches to it in another window, and | 1414 | *** In the *Occur* buffer, `o' switches to it in another window, and |
| 1667 | C-o displays the current line's occurrence in another window without | 1415 | C-o displays the current line's occurrence in another window without |
| 1668 | switching to it. | 1416 | switching to it. |
| 1669 | 1417 | ||
| 1670 | +++ | ||
| 1671 | *** You can now use next-error (C-x `) and previous-error to advance to | 1418 | *** You can now use next-error (C-x `) and previous-error to advance to |
| 1672 | the next/previous matching line found by M-x occur. | 1419 | the next/previous matching line found by M-x occur. |
| 1673 | 1420 | ||
| 1674 | +++ | ||
| 1675 | *** The new command `multi-occur' is just like `occur', except it can | 1421 | *** The new command `multi-occur' is just like `occur', except it can |
| 1676 | search multiple buffers. There is also a new command | 1422 | search multiple buffers. There is also a new command |
| 1677 | `multi-occur-in-matching-buffers' which allows you to specify the | 1423 | `multi-occur-in-matching-buffers' which allows you to specify the |
| @@ -1681,21 +1427,18 @@ changes. | |||
| 1681 | 1427 | ||
| 1682 | ** Grep changes: | 1428 | ** Grep changes: |
| 1683 | 1429 | ||
| 1684 | +++ | ||
| 1685 | *** Grep has been decoupled from compilation mode setup. | 1430 | *** Grep has been decoupled from compilation mode setup. |
| 1686 | 1431 | ||
| 1687 | There's a new separate package grep.el, with its own submenu and | 1432 | There's a new separate package grep.el, with its own submenu and |
| 1688 | customization group. | 1433 | customization group. |
| 1689 | 1434 | ||
| 1690 | +++ | ||
| 1691 | *** `grep-find' is now also available under the name `find-grep' where | 1435 | *** `grep-find' is now also available under the name `find-grep' where |
| 1692 | people knowing `find-grep-dired' would probably expect it. | 1436 | people knowing `find-grep-dired' would probably expect it. |
| 1693 | 1437 | ||
| 1694 | +++ | ||
| 1695 | *** New commands `lgrep' (local grep) and `rgrep' (recursive grep) are | 1438 | *** New commands `lgrep' (local grep) and `rgrep' (recursive grep) are |
| 1696 | more user-friendly versions of `grep' and `grep-find', which prompt | 1439 | more user-friendly versions of `grep' and `grep-find', which prompt |
| 1697 | separately for the regular expression to match, the files to search, | 1440 | separately for the regular expression to match, the files to search, |
| 1698 | and the base directory for the search. Case sensitivitivy of the | 1441 | and the base directory for the search. Case sensitivity of the |
| 1699 | search is controlled by the current value of `case-fold-search'. | 1442 | search is controlled by the current value of `case-fold-search'. |
| 1700 | 1443 | ||
| 1701 | These commands build the shell commands based on the new variables | 1444 | These commands build the shell commands based on the new variables |
| @@ -1707,17 +1450,14 @@ Subdirectories listed in `grep-find-ignored-directories' such as those | |||
| 1707 | typically used by various version control systems, like CVS and arch, | 1450 | typically used by various version control systems, like CVS and arch, |
| 1708 | are automatically skipped by `rgrep'. | 1451 | are automatically skipped by `rgrep'. |
| 1709 | 1452 | ||
| 1710 | --- | ||
| 1711 | *** The grep commands provide highlighting support. | 1453 | *** The grep commands provide highlighting support. |
| 1712 | 1454 | ||
| 1713 | Hits are fontified in green, and hits in binary files in orange. Grep buffers | 1455 | Hits are fontified in green, and hits in binary files in orange. Grep buffers |
| 1714 | can be saved and automatically revisited. | 1456 | can be saved and automatically revisited. |
| 1715 | 1457 | ||
| 1716 | --- | ||
| 1717 | *** The new variables `grep-window-height' and `grep-scroll-output' override | 1458 | *** The new variables `grep-window-height' and `grep-scroll-output' override |
| 1718 | the corresponding compilation mode settings, for grep commands only. | 1459 | the corresponding compilation mode settings, for grep commands only. |
| 1719 | 1460 | ||
| 1720 | +++ | ||
| 1721 | *** New option `grep-highlight-matches' highlights matches in *grep* | 1461 | *** New option `grep-highlight-matches' highlights matches in *grep* |
| 1722 | buffer. It uses a special feature of some grep programs which accept | 1462 | buffer. It uses a special feature of some grep programs which accept |
| 1723 | --color option to output markers around matches. When going to the next | 1463 | --color option to output markers around matches. When going to the next |
| @@ -1725,7 +1465,6 @@ match with `next-error' the exact match is highlighted in the source | |||
| 1725 | buffer. Otherwise, if `grep-highlight-matches' is nil, the whole | 1465 | buffer. Otherwise, if `grep-highlight-matches' is nil, the whole |
| 1726 | source line is highlighted. | 1466 | source line is highlighted. |
| 1727 | 1467 | ||
| 1728 | +++ | ||
| 1729 | *** New key bindings in grep output window: | 1468 | *** New key bindings in grep output window: |
| 1730 | SPC and DEL scrolls window up and down. C-n and C-p moves to next and | 1469 | SPC and DEL scrolls window up and down. C-n and C-p moves to next and |
| 1731 | previous match in the grep window. RET jumps to the source line of | 1470 | previous match in the grep window. RET jumps to the source line of |
| @@ -1734,7 +1473,6 @@ other window, but does not switch buffer. `{' and `}' jumps to the | |||
| 1734 | previous or next file in the grep output. TAB also jumps to the next | 1473 | previous or next file in the grep output. TAB also jumps to the next |
| 1735 | file. | 1474 | file. |
| 1736 | 1475 | ||
| 1737 | +++ | ||
| 1738 | *** M-x grep now tries to avoid appending `/dev/null' to the command line | 1476 | *** M-x grep now tries to avoid appending `/dev/null' to the command line |
| 1739 | by using GNU grep `-H' option instead. M-x grep automatically | 1477 | by using GNU grep `-H' option instead. M-x grep automatically |
| 1740 | detects whether this is possible or not the first time it is invoked. | 1478 | detects whether this is possible or not the first time it is invoked. |
| @@ -1744,12 +1482,10 @@ command lines to be used than was possible before. | |||
| 1744 | 1482 | ||
| 1745 | ** X Windows Support: | 1483 | ** X Windows Support: |
| 1746 | 1484 | ||
| 1747 | +++ | ||
| 1748 | *** Emacs now supports drag and drop for X. Dropping a file on a window | 1485 | *** Emacs now supports drag and drop for X. Dropping a file on a window |
| 1749 | opens it, dropping text inserts the text. Dropping a file on a dired | 1486 | opens it, dropping text inserts the text. Dropping a file on a dired |
| 1750 | buffer copies or moves the file to that directory. | 1487 | buffer copies or moves the file to that directory. |
| 1751 | 1488 | ||
| 1752 | +++ | ||
| 1753 | *** Under X11, it is possible to swap Alt and Meta (and Super and Hyper). | 1489 | *** Under X11, it is possible to swap Alt and Meta (and Super and Hyper). |
| 1754 | The new variables `x-alt-keysym', `x-hyper-keysym', `x-meta-keysym', | 1490 | The new variables `x-alt-keysym', `x-hyper-keysym', `x-meta-keysym', |
| 1755 | and `x-super-keysym' can be used to choose which keysyms Emacs should | 1491 | and `x-super-keysym' can be used to choose which keysyms Emacs should |
| @@ -1758,31 +1494,26 @@ Meta and Alt: | |||
| 1758 | (setq x-alt-keysym 'meta) | 1494 | (setq x-alt-keysym 'meta) |
| 1759 | (setq x-meta-keysym 'alt) | 1495 | (setq x-meta-keysym 'alt) |
| 1760 | 1496 | ||
| 1761 | +++ | ||
| 1762 | *** The X resource useXIM can be used to turn off use of XIM, which can | 1497 | *** The X resource useXIM can be used to turn off use of XIM, which can |
| 1763 | speed up Emacs with slow networking to the X server. | 1498 | speed up Emacs with slow networking to the X server. |
| 1764 | 1499 | ||
| 1765 | If the configure option `--without-xim' was used to turn off use of | 1500 | If the configure option `--without-xim' was used to turn off use of |
| 1766 | XIM by default, the X resource useXIM can be used to turn it on. | 1501 | XIM by default, the X resource useXIM can be used to turn it on. |
| 1767 | 1502 | ||
| 1768 | --- | ||
| 1769 | *** The new variable `x-select-request-type' controls how Emacs | 1503 | *** The new variable `x-select-request-type' controls how Emacs |
| 1770 | requests X selection. The default value is nil, which means that | 1504 | requests X selection. The default value is nil, which means that |
| 1771 | Emacs requests X selection with types COMPOUND_TEXT and UTF8_STRING, | 1505 | Emacs requests X selection with types COMPOUND_TEXT and UTF8_STRING, |
| 1772 | and use the more appropriately result. | 1506 | and use the more appropriately result. |
| 1773 | 1507 | ||
| 1774 | --- | ||
| 1775 | *** The scrollbar under LessTif or Motif has a smoother drag-scrolling. | 1508 | *** The scrollbar under LessTif or Motif has a smoother drag-scrolling. |
| 1776 | On the other hand, the size of the thumb does not represent the actual | 1509 | On the other hand, the size of the thumb does not represent the actual |
| 1777 | amount of text shown any more (only a crude approximation of it). | 1510 | amount of text shown any more (only a crude approximation of it). |
| 1778 | 1511 | ||
| 1779 | ** Xterm support: | 1512 | ** Xterm support: |
| 1780 | 1513 | ||
| 1781 | --- | ||
| 1782 | *** If you enable Xterm Mouse mode, Emacs will respond to mouse clicks | 1514 | *** If you enable Xterm Mouse mode, Emacs will respond to mouse clicks |
| 1783 | on the mode line, header line and display margin, when run in an xterm. | 1515 | on the mode line, header line and display margin, when run in an xterm. |
| 1784 | 1516 | ||
| 1785 | --- | ||
| 1786 | *** Improved key bindings support when running in an xterm. | 1517 | *** Improved key bindings support when running in an xterm. |
| 1787 | When Emacs is running in an xterm more key bindings are available. | 1518 | When Emacs is running in an xterm more key bindings are available. |
| 1788 | The following should work: | 1519 | The following should work: |
| @@ -1795,7 +1526,6 @@ resource is set are also supported. | |||
| 1795 | 1526 | ||
| 1796 | ** Character terminal color support changes: | 1527 | ** Character terminal color support changes: |
| 1797 | 1528 | ||
| 1798 | +++ | ||
| 1799 | *** The new command-line option --color=MODE lets you specify a standard | 1529 | *** The new command-line option --color=MODE lets you specify a standard |
| 1800 | mode for a tty color support. It is meant to be used on character | 1530 | mode for a tty color support. It is meant to be used on character |
| 1801 | terminals whose capabilities are not set correctly in the terminal | 1531 | terminals whose capabilities are not set correctly in the terminal |
| @@ -1806,26 +1536,33 @@ when invoked with "ls --color", so if your terminal can support colors | |||
| 1806 | in "ls --color", it will support "emacs --color" as well. See the | 1536 | in "ls --color", it will support "emacs --color" as well. See the |
| 1807 | user manual for the possible values of the MODE parameter. | 1537 | user manual for the possible values of the MODE parameter. |
| 1808 | 1538 | ||
| 1809 | --- | ||
| 1810 | *** Emacs now supports several character terminals which provide more | 1539 | *** Emacs now supports several character terminals which provide more |
| 1811 | than 8 colors. For example, for `xterm', 16-color, 88-color, and | 1540 | than 8 colors. For example, for `xterm', 16-color, 88-color, and |
| 1812 | 256-color modes are supported. Emacs automatically notes at startup | 1541 | 256-color modes are supported. Emacs automatically notes at startup |
| 1813 | the extended number of colors, and defines the appropriate entries for | 1542 | the extended number of colors, and defines the appropriate entries for |
| 1814 | all of these colors. | 1543 | all of these colors. |
| 1815 | 1544 | ||
| 1816 | +++ | ||
| 1817 | *** Emacs now uses the full range of available colors for the default | 1545 | *** Emacs now uses the full range of available colors for the default |
| 1818 | faces when running on a color terminal, including 16-, 88-, and | 1546 | faces when running on a color terminal, including 16-, 88-, and |
| 1819 | 256-color xterms. This means that when you run "emacs -nw" on an | 1547 | 256-color xterms. This means that when you run "emacs -nw" on an |
| 1820 | 88-color or 256-color xterm, you will see essentially the same face | 1548 | 88-color or 256-color xterm, you will see essentially the same face |
| 1821 | colors as on X. | 1549 | colors as on X. |
| 1822 | 1550 | ||
| 1823 | --- | ||
| 1824 | *** There's a new support for colors on `rxvt' terminal emulator. | 1551 | *** There's a new support for colors on `rxvt' terminal emulator. |
| 1552 | |||
| 1553 | ** ebnf2ps changes: | ||
| 1554 | |||
| 1555 | *** New option `ebnf-arrow-extra-width' which specify extra width for arrow | ||
| 1556 | shape drawing. | ||
| 1557 | The extra width is used to avoid that the arrowhead and the terminal border | ||
| 1558 | overlap. It depends on `ebnf-arrow-shape' and `ebnf-line-width'. | ||
| 1559 | |||
| 1560 | *** New option `ebnf-arrow-scale' which specify the arrow scale. | ||
| 1561 | Values lower than 1.0, shrink the arrow. | ||
| 1562 | Values greater than 1.0, expand the arrow. | ||
| 1825 | 1563 | ||
| 1826 | * New Modes and Packages in Emacs 22.1 | 1564 | * New Modes and Packages in Emacs 22.1 |
| 1827 | 1565 | ||
| 1828 | --- | ||
| 1829 | ** ERC is now part of the Emacs distribution. | 1566 | ** ERC is now part of the Emacs distribution. |
| 1830 | 1567 | ||
| 1831 | ERC is a powerful, modular, and extensible IRC client for Emacs. | 1568 | ERC is a powerful, modular, and extensible IRC client for Emacs. |
| @@ -1836,7 +1573,6 @@ M-x customize-option erc-modules RET. | |||
| 1836 | To start an IRC session with ERC, type M-x erc, and follow the prompts | 1573 | To start an IRC session with ERC, type M-x erc, and follow the prompts |
| 1837 | for server, port, and nick. | 1574 | for server, port, and nick. |
| 1838 | 1575 | ||
| 1839 | --- | ||
| 1840 | ** Rcirc is now part of the Emacs distribution. | 1576 | ** Rcirc is now part of the Emacs distribution. |
| 1841 | 1577 | ||
| 1842 | Rcirc is an Internet relay chat (IRC) client. It supports | 1578 | Rcirc is an Internet relay chat (IRC) client. It supports |
| @@ -1850,7 +1586,6 @@ To start an IRC session using the default parameters, type M-x irc. | |||
| 1850 | If you type C-u M-x irc, it prompts you for the server, nick, port and | 1586 | If you type C-u M-x irc, it prompts you for the server, nick, port and |
| 1851 | startup channel parameters before connecting. | 1587 | startup channel parameters before connecting. |
| 1852 | 1588 | ||
| 1853 | --- | ||
| 1854 | ** Newsticker is now part of the Emacs distribution. | 1589 | ** Newsticker is now part of the Emacs distribution. |
| 1855 | 1590 | ||
| 1856 | Newsticker asynchronously retrieves headlines (RSS) from a list of news | 1591 | Newsticker asynchronously retrieves headlines (RSS) from a list of news |
| @@ -1858,11 +1593,9 @@ sites, prepares these headlines for reading, and allows for loading the | |||
| 1858 | corresponding articles in a web browser. Its documentation is in a | 1593 | corresponding articles in a web browser. Its documentation is in a |
| 1859 | separate manual. | 1594 | separate manual. |
| 1860 | 1595 | ||
| 1861 | +++ | ||
| 1862 | ** savehist saves minibuffer histories between sessions. | 1596 | ** savehist saves minibuffer histories between sessions. |
| 1863 | To use this feature, turn on savehist-mode in your `.emacs' file. | 1597 | To use this feature, turn on savehist-mode in your `.emacs' file. |
| 1864 | 1598 | ||
| 1865 | +++ | ||
| 1866 | ** Filesets are collections of files. You can define a fileset in | 1599 | ** Filesets are collections of files. You can define a fileset in |
| 1867 | various ways, such as based on a directory tree or based on | 1600 | various ways, such as based on a directory tree or based on |
| 1868 | program files that include other program files. | 1601 | program files that include other program files. |
| @@ -1871,7 +1604,6 @@ Once you have defined a fileset, you can perform various operations on | |||
| 1871 | all the files in it, such as visiting them or searching and replacing | 1604 | all the files in it, such as visiting them or searching and replacing |
| 1872 | in them. | 1605 | in them. |
| 1873 | 1606 | ||
| 1874 | +++ | ||
| 1875 | ** Calc is now part of the Emacs distribution. | 1607 | ** Calc is now part of the Emacs distribution. |
| 1876 | 1608 | ||
| 1877 | Calc is an advanced desk calculator and mathematical tool written in | 1609 | Calc is an advanced desk calculator and mathematical tool written in |
| @@ -1881,11 +1613,9 @@ Emacs manual; within Emacs, type "C-h i m calc RET" to read the | |||
| 1881 | manual. A reference card is available in `etc/calccard.tex' and | 1613 | manual. A reference card is available in `etc/calccard.tex' and |
| 1882 | `etc/calccard.ps'. | 1614 | `etc/calccard.ps'. |
| 1883 | 1615 | ||
| 1884 | --- | ||
| 1885 | ** The new package ibuffer provides a powerful, completely | 1616 | ** The new package ibuffer provides a powerful, completely |
| 1886 | customizable replacement for buff-menu.el. | 1617 | customizable replacement for buff-menu.el. |
| 1887 | 1618 | ||
| 1888 | --- | ||
| 1889 | ** Ido mode is now part of the Emacs distribution. | 1619 | ** Ido mode is now part of the Emacs distribution. |
| 1890 | 1620 | ||
| 1891 | The ido (interactively do) package is an extension of the iswitchb | 1621 | The ido (interactively do) package is an extension of the iswitchb |
| @@ -1893,11 +1623,9 @@ package to do interactive opening of files and directories in addition | |||
| 1893 | to interactive buffer switching. Ido is a superset of iswitchb (with | 1623 | to interactive buffer switching. Ido is a superset of iswitchb (with |
| 1894 | a few exceptions), so don't enable both packages. | 1624 | a few exceptions), so don't enable both packages. |
| 1895 | 1625 | ||
| 1896 | +++ | ||
| 1897 | ** Image files are normally visited in Image mode, which lets you toggle | 1626 | ** Image files are normally visited in Image mode, which lets you toggle |
| 1898 | between viewing the image and viewing the text using C-c C-c. | 1627 | between viewing the image and viewing the text using C-c C-c. |
| 1899 | 1628 | ||
| 1900 | --- | ||
| 1901 | ** CUA mode is now part of the Emacs distribution. | 1629 | ** CUA mode is now part of the Emacs distribution. |
| 1902 | 1630 | ||
| 1903 | The new cua package provides CUA-like keybindings using C-x for | 1631 | The new cua package provides CUA-like keybindings using C-x for |
| @@ -1946,7 +1674,6 @@ versions of cua.el and cua-mode.el. To ensure proper operation, you | |||
| 1946 | must remove older versions of cua.el or cua-mode.el as well as the | 1674 | must remove older versions of cua.el or cua-mode.el as well as the |
| 1947 | loading and customization of those packages from the .emacs file. | 1675 | loading and customization of those packages from the .emacs file. |
| 1948 | 1676 | ||
| 1949 | +++ | ||
| 1950 | ** Org mode is now part of the Emacs distribution | 1677 | ** Org mode is now part of the Emacs distribution |
| 1951 | 1678 | ||
| 1952 | Org mode is a mode for keeping notes, maintaining ToDo lists, and | 1679 | Org mode is a mode for keeping notes, maintaining ToDo lists, and |
| @@ -1961,11 +1688,9 @@ The documentation for org-mode is in a separate manual; within Emacs, | |||
| 1961 | type "C-h i m org RET" to read that manual. A reference card is | 1688 | type "C-h i m org RET" to read that manual. A reference card is |
| 1962 | available in `etc/orgcard.tex' and `etc/orgcard.ps'. | 1689 | available in `etc/orgcard.tex' and `etc/orgcard.ps'. |
| 1963 | 1690 | ||
| 1964 | +++ | ||
| 1965 | ** The new package dns-mode.el adds syntax highlighting of DNS master files. | 1691 | ** The new package dns-mode.el adds syntax highlighting of DNS master files. |
| 1966 | It is a modern replacement for zone-mode.el, which is now obsolete. | 1692 | It is a modern replacement for zone-mode.el, which is now obsolete. |
| 1967 | 1693 | ||
| 1968 | --- | ||
| 1969 | ** The new global minor mode `file-name-shadow-mode' modifies the way | 1694 | ** The new global minor mode `file-name-shadow-mode' modifies the way |
| 1970 | filenames being entered by the user in the minibuffer are displayed, so | 1695 | filenames being entered by the user in the minibuffer are displayed, so |
| 1971 | that it's clear when part of the entered filename will be ignored due to | 1696 | that it's clear when part of the entered filename will be ignored due to |
| @@ -1973,11 +1698,9 @@ Emacs' filename parsing rules. The ignored portion can be made dim, | |||
| 1973 | invisible, or otherwise less visually noticeable. The display method can | 1698 | invisible, or otherwise less visually noticeable. The display method can |
| 1974 | be displayed by customizing the variable `file-name-shadow-properties'. | 1699 | be displayed by customizing the variable `file-name-shadow-properties'. |
| 1975 | 1700 | ||
| 1976 | +++ | ||
| 1977 | ** The new package flymake.el does on-the-fly syntax checking of program | 1701 | ** The new package flymake.el does on-the-fly syntax checking of program |
| 1978 | source files. See the Flymake's Info manual for more details. | 1702 | source files. See the Flymake's Info manual for more details. |
| 1979 | 1703 | ||
| 1980 | +++ | ||
| 1981 | ** The new keypad setup package provides several common bindings for | 1704 | ** The new keypad setup package provides several common bindings for |
| 1982 | the numeric keypad which is available on most keyboards. The numeric | 1705 | the numeric keypad which is available on most keyboards. The numeric |
| 1983 | keypad typically has the digits 0 to 9, a decimal point, keys marked | 1706 | keypad typically has the digits 0 to 9, a decimal point, keys marked |
| @@ -2002,7 +1725,6 @@ where the keys work like (shifted) arrow keys, home/end, etc., and | |||
| 2002 | are left unspecified and can be bound individually through the global | 1725 | are left unspecified and can be bound individually through the global |
| 2003 | or local keymaps. | 1726 | or local keymaps. |
| 2004 | 1727 | ||
| 2005 | +++ | ||
| 2006 | ** Emacs' keyboard macro facilities have been enhanced by the new | 1728 | ** Emacs' keyboard macro facilities have been enhanced by the new |
| 2007 | kmacro package. | 1729 | kmacro package. |
| 2008 | 1730 | ||
| @@ -2036,16 +1758,13 @@ Keyboard macros can now be debugged and edited interactively. | |||
| 2036 | C-x C-k SPC steps through the last keyboard macro one key sequence | 1758 | C-x C-k SPC steps through the last keyboard macro one key sequence |
| 2037 | at a time, prompting for the actions to take. | 1759 | at a time, prompting for the actions to take. |
| 2038 | 1760 | ||
| 2039 | --- | ||
| 2040 | ** New minor mode, Visible mode, toggles invisibility in the current buffer. | 1761 | ** New minor mode, Visible mode, toggles invisibility in the current buffer. |
| 2041 | When enabled, it makes all invisible text visible. When disabled, it | 1762 | When enabled, it makes all invisible text visible. When disabled, it |
| 2042 | restores the previous value of `buffer-invisibility-spec'. | 1763 | restores the previous value of `buffer-invisibility-spec'. |
| 2043 | 1764 | ||
| 2044 | +++ | ||
| 2045 | ** The wdired.el package allows you to use normal editing commands on Dired | 1765 | ** The wdired.el package allows you to use normal editing commands on Dired |
| 2046 | buffers to change filenames, permissions, etc... | 1766 | buffers to change filenames, permissions, etc... |
| 2047 | 1767 | ||
| 2048 | +++ | ||
| 2049 | ** The new package longlines.el provides a minor mode for editing text | 1768 | ** The new package longlines.el provides a minor mode for editing text |
| 2050 | files composed of long lines, based on the `use-hard-newlines' | 1769 | files composed of long lines, based on the `use-hard-newlines' |
| 2051 | mechanism. The long lines are broken up by inserting soft newlines, | 1770 | mechanism. The long lines are broken up by inserting soft newlines, |
| @@ -2056,7 +1775,6 @@ referred to as "soft word wrap" in other text editors. This is | |||
| 2056 | similar to Refill mode, but more reliable. To turn the word wrap | 1775 | similar to Refill mode, but more reliable. To turn the word wrap |
| 2057 | feature off, set `longlines-auto-wrap' to nil. | 1776 | feature off, set `longlines-auto-wrap' to nil. |
| 2058 | 1777 | ||
| 2059 | +++ | ||
| 2060 | ** The printing package is now part of the Emacs distribution. | 1778 | ** The printing package is now part of the Emacs distribution. |
| 2061 | 1779 | ||
| 2062 | If you enable the printing package by including (require 'printing) in | 1780 | If you enable the printing package by including (require 'printing) in |
| @@ -2066,7 +1784,6 @@ ghostview, use ghostscript to print (if you don't have a PostScript | |||
| 2066 | printer) or send directly to printer a PostScript code generated by | 1784 | printer) or send directly to printer a PostScript code generated by |
| 2067 | `ps-print' package. Use M-x pr-help for more information. | 1785 | `ps-print' package. Use M-x pr-help for more information. |
| 2068 | 1786 | ||
| 2069 | --- | ||
| 2070 | ** The minor mode Reveal mode makes text visible on the fly as you | 1787 | ** The minor mode Reveal mode makes text visible on the fly as you |
| 2071 | move your cursor into hidden regions of the buffer. | 1788 | move your cursor into hidden regions of the buffer. |
| 2072 | It should work with any package that uses overlays to hide parts | 1789 | It should work with any package that uses overlays to hide parts |
| @@ -2074,23 +1791,19 @@ of a buffer, such as outline-minor-mode, hs-minor-mode, hide-ifdef-mode, ... | |||
| 2074 | 1791 | ||
| 2075 | There is also Global Reveal mode which affects all buffers. | 1792 | There is also Global Reveal mode which affects all buffers. |
| 2076 | 1793 | ||
| 2077 | --- | ||
| 2078 | ** The ruler-mode.el library provides a minor mode for displaying an | 1794 | ** The ruler-mode.el library provides a minor mode for displaying an |
| 2079 | "active" ruler in the header line. You can use the mouse to visually | 1795 | "active" ruler in the header line. You can use the mouse to visually |
| 2080 | change the `fill-column', `window-margins' and `tab-stop-list' | 1796 | change the `fill-column', `window-margins' and `tab-stop-list' |
| 2081 | settings. | 1797 | settings. |
| 2082 | 1798 | ||
| 2083 | +++ | ||
| 2084 | ** SES mode (ses-mode) is a new major mode for creating and editing | 1799 | ** SES mode (ses-mode) is a new major mode for creating and editing |
| 2085 | spreadsheet files. Besides the usual Emacs features (intuitive command | 1800 | spreadsheet files. Besides the usual Emacs features (intuitive command |
| 2086 | letters, undo, cell formulas in Lisp, plaintext files, etc.) it also offers | 1801 | letters, undo, cell formulas in Lisp, plaintext files, etc.) it also offers |
| 2087 | viral immunity and import/export of tab-separated values. | 1802 | viral immunity and import/export of tab-separated values. |
| 2088 | 1803 | ||
| 2089 | +++ | ||
| 2090 | ** The new global minor mode `size-indication-mode' (off by default) | 1804 | ** The new global minor mode `size-indication-mode' (off by default) |
| 2091 | shows the size of accessible part of the buffer on the mode line. | 1805 | shows the size of accessible part of the buffer on the mode line. |
| 2092 | 1806 | ||
| 2093 | +++ | ||
| 2094 | ** The new package table.el implements editable, WYSIWYG, embedded | 1807 | ** The new package table.el implements editable, WYSIWYG, embedded |
| 2095 | `text tables' in Emacs buffers. It simulates the effect of putting | 1808 | `text tables' in Emacs buffers. It simulates the effect of putting |
| 2096 | these tables in a special major mode. The package emulates WYSIWYG | 1809 | these tables in a special major mode. The package emulates WYSIWYG |
| @@ -2098,12 +1811,11 @@ table editing available in modern word processors. The package also | |||
| 2098 | can generate a table source in typesetting and markup languages such | 1811 | can generate a table source in typesetting and markup languages such |
| 2099 | as latex and html from the visually laid out text table. | 1812 | as latex and html from the visually laid out text table. |
| 2100 | 1813 | ||
| 2101 | +++ | 1814 | ** The image-dired.el package allows you to easily view, tag and in |
| 2102 | ** The tumme.el package allows you to easily view, tag and in other ways | 1815 | other ways manipulate image files and their thumbnails, using dired as |
| 2103 | manipulate image files and their thumbnails, using dired as the main interface. | 1816 | the main interface. Image-Dired provides functionality to generate |
| 2104 | Tumme provides functionality to generate simple image galleries. | 1817 | simple image galleries. |
| 2105 | 1818 | ||
| 2106 | +++ | ||
| 2107 | ** Tramp is now part of the distribution. | 1819 | ** Tramp is now part of the distribution. |
| 2108 | 1820 | ||
| 2109 | This package is similar to Ange-FTP: it allows you to edit remote | 1821 | This package is similar to Ange-FTP: it allows you to edit remote |
| @@ -2126,14 +1838,11 @@ If you want to disable Tramp you should set | |||
| 2126 | Removing Tramp, and re-enabling Ange-FTP, can be achieved by M-x | 1838 | Removing Tramp, and re-enabling Ange-FTP, can be achieved by M-x |
| 2127 | tramp-unload-tramp. | 1839 | tramp-unload-tramp. |
| 2128 | 1840 | ||
| 2129 | --- | ||
| 2130 | ** The URL package (which had been part of W3) is now part of Emacs. | 1841 | ** The URL package (which had been part of W3) is now part of Emacs. |
| 2131 | 1842 | ||
| 2132 | --- | ||
| 2133 | ** `cfengine-mode' is a major mode for editing GNU Cfengine | 1843 | ** `cfengine-mode' is a major mode for editing GNU Cfengine |
| 2134 | configuration files. | 1844 | configuration files. |
| 2135 | 1845 | ||
| 2136 | +++ | ||
| 2137 | ** The new package conf-mode.el handles thousands of configuration files, with | 1846 | ** The new package conf-mode.el handles thousands of configuration files, with |
| 2138 | varying syntaxes for comments (;, #, //, /* */ or !), assignment (var = value, | 1847 | varying syntaxes for comments (;, #, //, /* */ or !), assignment (var = value, |
| 2139 | var : value, var value or keyword var value) and sections ([section] or | 1848 | var : value, var value or keyword var value) and sections ([section] or |
| @@ -2141,24 +1850,19 @@ section { }). Many files under /etc/, or with suffixes like .cf through | |||
| 2141 | .config, .properties (Java), .desktop (KDE/Gnome), .ini and many others are | 1850 | .config, .properties (Java), .desktop (KDE/Gnome), .ini and many others are |
| 2142 | recognized. | 1851 | recognized. |
| 2143 | 1852 | ||
| 2144 | --- | ||
| 2145 | ** GDB-Script-mode is used for files like .gdbinit. | 1853 | ** GDB-Script-mode is used for files like .gdbinit. |
| 2146 | 1854 | ||
| 2147 | +++ | ||
| 2148 | ** The new python.el package is used to edit Python and Jython programs. | 1855 | ** The new python.el package is used to edit Python and Jython programs. |
| 2149 | 1856 | ||
| 2150 | --- | ||
| 2151 | ** The TCL package tcl-mode.el was replaced by tcl.el. | 1857 | ** The TCL package tcl-mode.el was replaced by tcl.el. |
| 2152 | This was actually done in Emacs-21.1, and was not documented. | 1858 | This was actually done in Emacs-21.1, and was not documented. |
| 2153 | 1859 | ||
| 2154 | --- | ||
| 2155 | ** The new package scroll-lock.el provides the Scroll Lock minor mode | 1860 | ** The new package scroll-lock.el provides the Scroll Lock minor mode |
| 2156 | for pager-like scrolling. Keys which normally move point by line or | 1861 | for pager-like scrolling. Keys which normally move point by line or |
| 2157 | paragraph will scroll the buffer by the respective amount of lines | 1862 | paragraph will scroll the buffer by the respective amount of lines |
| 2158 | instead and point will be kept vertically fixed relative to window | 1863 | instead and point will be kept vertically fixed relative to window |
| 2159 | boundaries during scrolling. | 1864 | boundaries during scrolling. |
| 2160 | 1865 | ||
| 2161 | +++ | ||
| 2162 | ** The file t-mouse.el is now part of Emacs and provides access to mouse | 1866 | ** The file t-mouse.el is now part of Emacs and provides access to mouse |
| 2163 | events from the console. It still requires gpm to work but has been updated | 1867 | events from the console. It still requires gpm to work but has been updated |
| 2164 | for Emacs 22. In particular, the mode-line is now position sensitive. | 1868 | for Emacs 22. In particular, the mode-line is now position sensitive. |
| @@ -2167,23 +1871,20 @@ for Emacs 22. In particular, the mode-line is now position sensitive. | |||
| 2167 | 1871 | ||
| 2168 | ** Changes in Shell Mode | 1872 | ** Changes in Shell Mode |
| 2169 | 1873 | ||
| 2170 | --- | ||
| 2171 | *** Shell output normally scrolls so that the input line is at the | 1874 | *** Shell output normally scrolls so that the input line is at the |
| 2172 | bottom of the window -- thus showing the maximum possible text. (This | 1875 | bottom of the window -- thus showing the maximum possible text. (This |
| 2173 | is similar to the way sequential output to a terminal works.) | 1876 | is similar to the way sequential output to a terminal works.) |
| 2174 | 1877 | ||
| 2175 | ** Changes in Dired | 1878 | ** Changes in Dired |
| 2176 | 1879 | ||
| 2177 | +++ | 1880 | *** Bindings for Image-Dired added |
| 2178 | *** Bindings for Tumme added | ||
| 2179 | Several new keybindings, all starting with the C-t prefix, have been | 1881 | Several new keybindings, all starting with the C-t prefix, have been |
| 2180 | added to Dired. They are all bound to commands in Tumme. As a starting | 1882 | added to Dired. They are all bound to commands in Image-Dired. As a |
| 2181 | point, mark some image files in a dired buffer and do C-t d to display | 1883 | starting point, mark some image files in a dired buffer and do C-t d |
| 2182 | thumbnails of them in a separate buffer. | 1884 | to display thumbnails of them in a separate buffer. |
| 2183 | 1885 | ||
| 2184 | ** Changes in Hi Lock | 1886 | ** Changes in Hi Lock |
| 2185 | 1887 | ||
| 2186 | +++ | ||
| 2187 | *** hi-lock-mode now only affects a single buffer, and a new function | 1888 | *** hi-lock-mode now only affects a single buffer, and a new function |
| 2188 | `global-hi-lock-mode' enables Hi Lock in all buffers. By default, if | 1889 | `global-hi-lock-mode' enables Hi Lock in all buffers. By default, if |
| 2189 | hi-lock-mode is used in what appears to be the initialization file, a | 1890 | hi-lock-mode is used in what appears to be the initialization file, a |
| @@ -2193,7 +1894,6 @@ using hi-lock-mode in an initialization file will turn on Hi Lock in all | |||
| 2193 | buffers and no warning will be issued (for compatibility with the | 1894 | buffers and no warning will be issued (for compatibility with the |
| 2194 | behavior in older versions of Emacs). | 1895 | behavior in older versions of Emacs). |
| 2195 | 1896 | ||
| 2196 | --- | ||
| 2197 | ** Changes in Allout | 1897 | ** Changes in Allout |
| 2198 | 1898 | ||
| 2199 | *** Some previously rough topic-header format edge cases are reconciled. | 1899 | *** Some previously rough topic-header format edge cases are reconciled. |
| @@ -2202,7 +1902,7 @@ asterisk - for instance, the comment close of some languages (eg, c's "*/" | |||
| 2202 | or mathematica's "*)") - at the beginning of line are no longer are | 1902 | or mathematica's "*)") - at the beginning of line are no longer are |
| 2203 | interpreted as level 1 topics in those modes. | 1903 | interpreted as level 1 topics in those modes. |
| 2204 | 1904 | ||
| 2205 | *** Many or most commonly occuring "accidental" topics are disqualified. | 1905 | *** Many or most commonly occurring "accidental" topics are disqualified. |
| 2206 | Text in item bodies that looks like a low-depth topic is no longer mistaken | 1906 | Text in item bodies that looks like a low-depth topic is no longer mistaken |
| 2207 | for one unless its first offspring (or that of its next sibling with | 1907 | for one unless its first offspring (or that of its next sibling with |
| 2208 | offspring) is only one level deeper. | 1908 | offspring) is only one level deeper. |
| @@ -2292,14 +1992,12 @@ handling of edits of concealed text, undo concerns, etc. | |||
| 2292 | - many, many other, more minor tweaks, fixes, and refinements. | 1992 | - many, many other, more minor tweaks, fixes, and refinements. |
| 2293 | - version number incremented to 2.2 | 1993 | - version number incremented to 2.2 |
| 2294 | 1994 | ||
| 2295 | +++ | 1995 | ** The variable `woman-topic-at-point' is renamed |
| 2296 | ** The variable `woman-topic-at-point' was renamed | ||
| 2297 | to `woman-use-topic-at-point' and behaves differently: if this | 1996 | to `woman-use-topic-at-point' and behaves differently: if this |
| 2298 | variable is non-nil, the `woman' command uses the word at point | 1997 | variable is non-nil, the `woman' command uses the word at point |
| 2299 | automatically, without asking for a confirmation. Otherwise, the word | 1998 | automatically, without asking for a confirmation. Otherwise, the word |
| 2300 | at point is suggested as default, but not inserted at the prompt. | 1999 | at point is suggested as default, but not inserted at the prompt. |
| 2301 | 2000 | ||
| 2302 | --- | ||
| 2303 | ** Changes to cmuscheme | 2001 | ** Changes to cmuscheme |
| 2304 | 2002 | ||
| 2305 | *** Emacs now offers to start Scheme if the user tries to | 2003 | *** Emacs now offers to start Scheme if the user tries to |
| @@ -2315,7 +2013,6 @@ procedure calls (`scheme-trace-procedure') and to expand syntactic forms | |||
| 2315 | subprocess are controlled by the user options `scheme-trace-command', | 2013 | subprocess are controlled by the user options `scheme-trace-command', |
| 2316 | `scheme-untrace-command' and `scheme-expand-current-form'. | 2014 | `scheme-untrace-command' and `scheme-expand-current-form'. |
| 2317 | 2015 | ||
| 2318 | --- | ||
| 2319 | ** Changes in Makefile mode | 2016 | ** Changes in Makefile mode |
| 2320 | 2017 | ||
| 2321 | *** Makefile mode has submodes for automake, gmake, makepp, BSD make and imake. | 2018 | *** Makefile mode has submodes for automake, gmake, makepp, BSD make and imake. |
| @@ -2328,21 +2025,16 @@ faces. | |||
| 2328 | to `makefile-query-one-target-method-function'. The old name is still | 2025 | to `makefile-query-one-target-method-function'. The old name is still |
| 2329 | available as alias. | 2026 | available as alias. |
| 2330 | 2027 | ||
| 2331 | +++ | ||
| 2332 | ** In Outline mode, `hide-body' no longer hides lines at the top | 2028 | ** In Outline mode, `hide-body' no longer hides lines at the top |
| 2333 | of the file that precede the first header line. | 2029 | of the file that precede the first header line. |
| 2334 | 2030 | ||
| 2335 | +++ | ||
| 2336 | ** Telnet now prompts you for a port number with C-u M-x telnet. | 2031 | ** Telnet now prompts you for a port number with C-u M-x telnet. |
| 2337 | 2032 | ||
| 2338 | --- | ||
| 2339 | ** The terminal emulation code in term.el has been improved; it can | 2033 | ** The terminal emulation code in term.el has been improved; it can |
| 2340 | run most curses applications now. | 2034 | run most curses applications now. |
| 2341 | 2035 | ||
| 2342 | +++ | ||
| 2343 | ** M-x diff uses Diff mode instead of Compilation mode. | 2036 | ** M-x diff uses Diff mode instead of Compilation mode. |
| 2344 | 2037 | ||
| 2345 | +++ | ||
| 2346 | ** Diff mode key bindings changed. | 2038 | ** Diff mode key bindings changed. |
| 2347 | 2039 | ||
| 2348 | These are the new bindings: | 2040 | These are the new bindings: |
| @@ -2357,7 +2049,6 @@ To convert unified to context format, use C-u C-c C-u. | |||
| 2357 | In addition, C-c C-u now operates on the region | 2049 | In addition, C-c C-u now operates on the region |
| 2358 | in Transient Mark mode when the mark is active. | 2050 | in Transient Mark mode when the mark is active. |
| 2359 | 2051 | ||
| 2360 | +++ | ||
| 2361 | ** You can now customize `fill-nobreak-predicate' to control where | 2052 | ** You can now customize `fill-nobreak-predicate' to control where |
| 2362 | filling can break lines. The value is now normally a list of | 2053 | filling can break lines. The value is now normally a list of |
| 2363 | functions, but it can also be a single function, for compatibility. | 2054 | functions, but it can also be a single function, for compatibility. |
| @@ -2366,39 +2057,31 @@ Emacs provide two predicates, `fill-single-word-nobreak-p' and | |||
| 2366 | `fill-french-nobreak-p', for use as the value of | 2057 | `fill-french-nobreak-p', for use as the value of |
| 2367 | `fill-nobreak-predicate'. | 2058 | `fill-nobreak-predicate'. |
| 2368 | 2059 | ||
| 2369 | --- | ||
| 2370 | ** M-x view-file and commands that use it now avoid interfering | 2060 | ** M-x view-file and commands that use it now avoid interfering |
| 2371 | with special modes such as Tar mode. | 2061 | with special modes such as Tar mode. |
| 2372 | 2062 | ||
| 2373 | --- | ||
| 2374 | ** Commands `winner-redo' and `winner-undo', from winner.el, are now | 2063 | ** Commands `winner-redo' and `winner-undo', from winner.el, are now |
| 2375 | bound to C-c <left> and C-c <right>, respectively. This is an | 2064 | bound to C-c <left> and C-c <right>, respectively. This is an |
| 2376 | incompatible change. | 2065 | incompatible change. |
| 2377 | 2066 | ||
| 2378 | --- | ||
| 2379 | ** `global-whitespace-mode' is a new alias for `whitespace-global-mode'. | 2067 | ** `global-whitespace-mode' is a new alias for `whitespace-global-mode'. |
| 2380 | 2068 | ||
| 2381 | +++ | ||
| 2382 | ** M-x compare-windows now can automatically skip non-matching text to | 2069 | ** M-x compare-windows now can automatically skip non-matching text to |
| 2383 | resync points in both windows. | 2070 | resync points in both windows. |
| 2384 | 2071 | ||
| 2385 | +++ | ||
| 2386 | ** New user option `add-log-always-start-new-record'. | 2072 | ** New user option `add-log-always-start-new-record'. |
| 2387 | 2073 | ||
| 2388 | When this option is enabled, M-x add-change-log-entry always | 2074 | When this option is enabled, M-x add-change-log-entry always |
| 2389 | starts a new record regardless of when the last record is. | 2075 | starts a new record regardless of when the last record is. |
| 2390 | 2076 | ||
| 2391 | --- | ||
| 2392 | ** PO translation files are decoded according to their MIME headers | 2077 | ** PO translation files are decoded according to their MIME headers |
| 2393 | when Emacs visits them. | 2078 | when Emacs visits them. |
| 2394 | 2079 | ||
| 2395 | ** Info mode changes: | 2080 | ** Info mode changes: |
| 2396 | 2081 | ||
| 2397 | +++ | ||
| 2398 | *** A numeric prefix argument of `info' selects an Info buffer | 2082 | *** A numeric prefix argument of `info' selects an Info buffer |
| 2399 | with the number appended to the `*info*' buffer name (e.g. "*info*<2>"). | 2083 | with the number appended to the `*info*' buffer name (e.g. "*info*<2>"). |
| 2400 | 2084 | ||
| 2401 | +++ | ||
| 2402 | *** isearch in Info uses Info-search and searches through multiple nodes. | 2085 | *** isearch in Info uses Info-search and searches through multiple nodes. |
| 2403 | 2086 | ||
| 2404 | Before leaving the initial Info node isearch fails once with the error | 2087 | Before leaving the initial Info node isearch fails once with the error |
| @@ -2409,82 +2092,65 @@ around the whole manual to the top/final node. The user option | |||
| 2409 | or the default isearch search function that wraps around the current | 2092 | or the default isearch search function that wraps around the current |
| 2410 | Info node. | 2093 | Info node. |
| 2411 | 2094 | ||
| 2412 | --- | ||
| 2413 | *** New search commands: `Info-search-case-sensitively' (bound to S), | 2095 | *** New search commands: `Info-search-case-sensitively' (bound to S), |
| 2414 | `Info-search-backward', and `Info-search-next' which repeats the last | 2096 | `Info-search-backward', and `Info-search-next' which repeats the last |
| 2415 | search without prompting for a new search string. | 2097 | search without prompting for a new search string. |
| 2416 | 2098 | ||
| 2417 | +++ | ||
| 2418 | *** New command `Info-history-forward' (bound to r and new toolbar icon) | 2099 | *** New command `Info-history-forward' (bound to r and new toolbar icon) |
| 2419 | moves forward in history to the node you returned from after using | 2100 | moves forward in history to the node you returned from after using |
| 2420 | `Info-history-back' (renamed from `Info-last'). | 2101 | `Info-history-back' (renamed from `Info-last'). |
| 2421 | 2102 | ||
| 2422 | --- | ||
| 2423 | *** New command `Info-history' (bound to L) displays a menu of visited nodes. | 2103 | *** New command `Info-history' (bound to L) displays a menu of visited nodes. |
| 2424 | 2104 | ||
| 2425 | --- | ||
| 2426 | *** New command `Info-toc' (bound to T) creates a node with table of contents | 2105 | *** New command `Info-toc' (bound to T) creates a node with table of contents |
| 2427 | from the tree structure of menus of the current Info file. | 2106 | from the tree structure of menus of the current Info file. |
| 2428 | 2107 | ||
| 2429 | +++ | ||
| 2430 | *** New command `info-apropos' searches the indices of the known | 2108 | *** New command `info-apropos' searches the indices of the known |
| 2431 | Info files on your system for a string, and builds a menu of the | 2109 | Info files on your system for a string, and builds a menu of the |
| 2432 | possible matches. | 2110 | possible matches. |
| 2433 | 2111 | ||
| 2434 | --- | ||
| 2435 | *** New command `Info-copy-current-node-name' (bound to w) copies | 2112 | *** New command `Info-copy-current-node-name' (bound to w) copies |
| 2436 | the current Info node name into the kill ring. With a zero prefix | 2113 | the current Info node name into the kill ring. With a zero prefix |
| 2437 | arg, puts the node name inside the `info' function call. | 2114 | arg, puts the node name inside the `info' function call. |
| 2438 | 2115 | ||
| 2439 | +++ | ||
| 2440 | *** New face `info-xref-visited' distinguishes visited nodes from unvisited | 2116 | *** New face `info-xref-visited' distinguishes visited nodes from unvisited |
| 2441 | and a new option `Info-fontify-visited-nodes' to control this. | 2117 | and a new option `Info-fontify-visited-nodes' to control this. |
| 2442 | 2118 | ||
| 2443 | --- | ||
| 2444 | *** http and ftp links in Info are now operational: they look like cross | 2119 | *** http and ftp links in Info are now operational: they look like cross |
| 2445 | references and following them calls `browse-url'. | 2120 | references and following them calls `browse-url'. |
| 2446 | 2121 | ||
| 2447 | +++ | ||
| 2448 | *** Info now hides node names in menus and cross references by default. | 2122 | *** Info now hides node names in menus and cross references by default. |
| 2449 | 2123 | ||
| 2450 | If you prefer the old behavior, you can set the new user option | 2124 | If you prefer the old behavior, you can set the new user option |
| 2451 | `Info-hide-note-references' to nil. | 2125 | `Info-hide-note-references' to nil. |
| 2452 | 2126 | ||
| 2453 | --- | ||
| 2454 | *** Images in Info pages are supported. | 2127 | *** Images in Info pages are supported. |
| 2455 | 2128 | ||
| 2456 | Info pages show embedded images, in Emacs frames with image support. | 2129 | Info pages show embedded images, in Emacs frames with image support. |
| 2457 | Info documentation that includes images, processed with makeinfo | 2130 | Info documentation that includes images, processed with makeinfo |
| 2458 | version 4.7 or newer, compiles to Info pages with embedded images. | 2131 | version 4.7 or newer, compiles to Info pages with embedded images. |
| 2459 | 2132 | ||
| 2460 | +++ | ||
| 2461 | *** The default value for `Info-scroll-prefer-subnodes' is now nil. | 2133 | *** The default value for `Info-scroll-prefer-subnodes' is now nil. |
| 2462 | 2134 | ||
| 2463 | --- | ||
| 2464 | *** `Info-index' offers completion. | 2135 | *** `Info-index' offers completion. |
| 2465 | 2136 | ||
| 2466 | ** Lisp mode changes: | 2137 | ** Lisp mode changes: |
| 2467 | 2138 | ||
| 2468 | --- | ||
| 2469 | *** Lisp mode now uses `font-lock-doc-face' for doc strings. | 2139 | *** Lisp mode now uses `font-lock-doc-face' for doc strings. |
| 2470 | 2140 | ||
| 2471 | +++ | ||
| 2472 | *** C-u C-M-q in Emacs Lisp mode pretty-prints the list after point. | 2141 | *** C-u C-M-q in Emacs Lisp mode pretty-prints the list after point. |
| 2473 | 2142 | ||
| 2474 | *** New features in evaluation commands | 2143 | *** New features in evaluation commands |
| 2475 | 2144 | ||
| 2476 | +++ | ||
| 2477 | **** The function `eval-defun' (C-M-x) called on defface reinitializes | 2145 | **** The function `eval-defun' (C-M-x) called on defface reinitializes |
| 2478 | the face to the value specified in the defface expression. | 2146 | the face to the value specified in the defface expression. |
| 2479 | 2147 | ||
| 2480 | +++ | ||
| 2481 | **** Typing C-x C-e twice prints the value of the integer result | 2148 | **** Typing C-x C-e twice prints the value of the integer result |
| 2482 | in additional formats (octal, hexadecimal, character) specified | 2149 | in additional formats (octal, hexadecimal, character) specified |
| 2483 | by the new function `eval-expression-print-format'. The same | 2150 | by the new function `eval-expression-print-format'. The same |
| 2484 | function also defines the result format for `eval-expression' (M-:), | 2151 | function also defines the result format for `eval-expression' (M-:), |
| 2485 | `eval-print-last-sexp' (C-j) and some edebug evaluation functions. | 2152 | `eval-print-last-sexp' (C-j) and some edebug evaluation functions. |
| 2486 | 2153 | ||
| 2487 | +++ | ||
| 2488 | ** CC mode changes. | 2154 | ** CC mode changes. |
| 2489 | 2155 | ||
| 2490 | *** The CC Mode manual has been extensively revised. | 2156 | *** The CC Mode manual has been extensively revised. |
| @@ -2812,14 +2478,11 @@ line is left untouched. | |||
| 2812 | The function `c-toggle-syntactic-indentation' can be used to toggle | 2478 | The function `c-toggle-syntactic-indentation' can be used to toggle |
| 2813 | syntactic indentation. | 2479 | syntactic indentation. |
| 2814 | 2480 | ||
| 2815 | --- | ||
| 2816 | ** In sh-script, a continuation line is only indented if the backslash was | 2481 | ** In sh-script, a continuation line is only indented if the backslash was |
| 2817 | preceded by a SPC or a TAB. | 2482 | preceded by a SPC or a TAB. |
| 2818 | 2483 | ||
| 2819 | --- | ||
| 2820 | ** Perl mode has a new variable `perl-indent-continued-arguments'. | 2484 | ** Perl mode has a new variable `perl-indent-continued-arguments'. |
| 2821 | 2485 | ||
| 2822 | --- | ||
| 2823 | ** The old Octave mode bindings C-c f and C-c i have been changed | 2486 | ** The old Octave mode bindings C-c f and C-c i have been changed |
| 2824 | to C-c C-f and C-c C-i. The C-c C-i subcommands now have duplicate | 2487 | to C-c C-f and C-c C-i. The C-c C-i subcommands now have duplicate |
| 2825 | bindings on control characters--thus, C-c C-i C-b is the same as | 2488 | bindings on control characters--thus, C-c C-i C-b is the same as |
| @@ -2827,34 +2490,27 @@ C-c C-i b, and so on. | |||
| 2827 | 2490 | ||
| 2828 | ** Fortran mode changes: | 2491 | ** Fortran mode changes: |
| 2829 | 2492 | ||
| 2830 | --- | ||
| 2831 | *** Fortran mode does more font-locking by default. Use level 3 | 2493 | *** Fortran mode does more font-locking by default. Use level 3 |
| 2832 | highlighting for the old default. | 2494 | highlighting for the old default. |
| 2833 | 2495 | ||
| 2834 | +++ | ||
| 2835 | *** Fortran mode has a new variable `fortran-directive-re'. | 2496 | *** Fortran mode has a new variable `fortran-directive-re'. |
| 2836 | Adapt this to match the format of any compiler directives you use. | 2497 | Adapt this to match the format of any compiler directives you use. |
| 2837 | Lines that match are never indented, and are given distinctive font-locking. | 2498 | Lines that match are never indented, and are given distinctive font-locking. |
| 2838 | 2499 | ||
| 2839 | +++ | ||
| 2840 | *** F90 mode and Fortran mode have new navigation commands | 2500 | *** F90 mode and Fortran mode have new navigation commands |
| 2841 | `f90-end-of-block', `f90-beginning-of-block', `f90-next-block', | 2501 | `f90-end-of-block', `f90-beginning-of-block', `f90-next-block', |
| 2842 | `f90-previous-block', `fortran-end-of-block', | 2502 | `f90-previous-block', `fortran-end-of-block', |
| 2843 | `fortran-beginning-of-block'. | 2503 | `fortran-beginning-of-block'. |
| 2844 | 2504 | ||
| 2845 | --- | ||
| 2846 | *** F90 mode and Fortran mode have support for `hs-minor-mode' (hideshow). | 2505 | *** F90 mode and Fortran mode have support for `hs-minor-mode' (hideshow). |
| 2847 | It cannot deal with every code format, but ought to handle a sizeable | 2506 | It cannot deal with every code format, but ought to handle a sizeable |
| 2848 | majority. | 2507 | majority. |
| 2849 | 2508 | ||
| 2850 | --- | ||
| 2851 | *** The new function `f90-backslash-not-special' can be used to change | 2509 | *** The new function `f90-backslash-not-special' can be used to change |
| 2852 | the syntax of backslashes in F90 buffers. | 2510 | the syntax of backslashes in F90 buffers. |
| 2853 | 2511 | ||
| 2854 | --- | ||
| 2855 | ** Reftex mode changes | 2512 | ** Reftex mode changes |
| 2856 | 2513 | ||
| 2857 | +++ | ||
| 2858 | *** Changes to RefTeX's table of contents | 2514 | *** Changes to RefTeX's table of contents |
| 2859 | 2515 | ||
| 2860 | The new command keys "<" and ">" in the TOC buffer promote/demote the | 2516 | The new command keys "<" and ">" in the TOC buffer promote/demote the |
| @@ -2879,7 +2535,6 @@ key `M-%'. | |||
| 2879 | The new command `reftex-goto-label' jumps directly to a label | 2535 | The new command `reftex-goto-label' jumps directly to a label |
| 2880 | location. | 2536 | location. |
| 2881 | 2537 | ||
| 2882 | +++ | ||
| 2883 | *** Changes related to citations and BibTeX database files | 2538 | *** Changes related to citations and BibTeX database files |
| 2884 | 2539 | ||
| 2885 | Commands that insert a citation now prompt for optional arguments when | 2540 | Commands that insert a citation now prompt for optional arguments when |
| @@ -2902,13 +2557,11 @@ can be configured with the new option `reftex-bibliography-commands'. | |||
| 2902 | 2557 | ||
| 2903 | Support for jurabib has been added. | 2558 | Support for jurabib has been added. |
| 2904 | 2559 | ||
| 2905 | +++ | ||
| 2906 | *** Global index matched may be verified with a user function | 2560 | *** Global index matched may be verified with a user function |
| 2907 | 2561 | ||
| 2908 | During global indexing, a user function can verify an index match. | 2562 | During global indexing, a user function can verify an index match. |
| 2909 | See new option `reftex-index-verify-function'. | 2563 | See new option `reftex-index-verify-function'. |
| 2910 | 2564 | ||
| 2911 | +++ | ||
| 2912 | *** Parsing documents with many labels can be sped up. | 2565 | *** Parsing documents with many labels can be sped up. |
| 2913 | 2566 | ||
| 2914 | Operating in a document with thousands of labels can be sped up | 2567 | Operating in a document with thousands of labels can be sped up |
| @@ -2918,7 +2571,6 @@ from the label prefix like `eq:' or `fig:'. The option | |||
| 2918 | this feature. While the speed-up is significant, this may reduce the | 2571 | this feature. While the speed-up is significant, this may reduce the |
| 2919 | quality of the context offered by RefTeX to describe a label. | 2572 | quality of the context offered by RefTeX to describe a label. |
| 2920 | 2573 | ||
| 2921 | +++ | ||
| 2922 | *** Miscellaneous changes | 2574 | *** Miscellaneous changes |
| 2923 | 2575 | ||
| 2924 | The macros which input a file in LaTeX (like \input, \include) can be | 2576 | The macros which input a file in LaTeX (like \input, \include) can be |
| @@ -2926,17 +2578,14 @@ configured in the new option `reftex-include-file-commands'. | |||
| 2926 | 2578 | ||
| 2927 | RefTeX supports global incremental search. | 2579 | RefTeX supports global incremental search. |
| 2928 | 2580 | ||
| 2929 | +++ | ||
| 2930 | ** Prolog mode has a new variable `prolog-font-lock-keywords' | 2581 | ** Prolog mode has a new variable `prolog-font-lock-keywords' |
| 2931 | to support use of font-lock. | 2582 | to support use of font-lock. |
| 2932 | 2583 | ||
| 2933 | ** HTML/SGML changes: | 2584 | ** HTML/SGML changes: |
| 2934 | 2585 | ||
| 2935 | --- | ||
| 2936 | *** Emacs now tries to set up buffer coding systems for HTML/XML files | 2586 | *** Emacs now tries to set up buffer coding systems for HTML/XML files |
| 2937 | automatically. | 2587 | automatically. |
| 2938 | 2588 | ||
| 2939 | +++ | ||
| 2940 | *** SGML mode has indentation and supports XML syntax. | 2589 | *** SGML mode has indentation and supports XML syntax. |
| 2941 | The new variable `sgml-xml-mode' tells SGML mode to use XML syntax. | 2590 | The new variable `sgml-xml-mode' tells SGML mode to use XML syntax. |
| 2942 | When this option is enabled, SGML tags are inserted in XML style, | 2591 | When this option is enabled, SGML tags are inserted in XML style, |
| @@ -2944,33 +2593,26 @@ i.e., there is always a closing tag. | |||
| 2944 | By default, its setting is inferred on a buffer-by-buffer basis | 2593 | By default, its setting is inferred on a buffer-by-buffer basis |
| 2945 | from the file name or buffer contents. | 2594 | from the file name or buffer contents. |
| 2946 | 2595 | ||
| 2947 | --- | ||
| 2948 | *** The variable `sgml-transformation' has been renamed to | 2596 | *** The variable `sgml-transformation' has been renamed to |
| 2949 | `sgml-transformation-function'. The old name is still available as | 2597 | `sgml-transformation-function'. The old name is still available as |
| 2950 | alias. | 2598 | alias. |
| 2951 | 2599 | ||
| 2952 | +++ | ||
| 2953 | *** `xml-mode' is now an alias for `sgml-mode', which has XML support. | 2600 | *** `xml-mode' is now an alias for `sgml-mode', which has XML support. |
| 2954 | 2601 | ||
| 2955 | ** TeX modes: | 2602 | ** TeX modes: |
| 2956 | 2603 | ||
| 2957 | +++ | ||
| 2958 | *** C-c C-c prompts for a command to run, and tries to offer a good default. | 2604 | *** C-c C-c prompts for a command to run, and tries to offer a good default. |
| 2959 | 2605 | ||
| 2960 | +++ | ||
| 2961 | *** The user option `tex-start-options-string' has been replaced | 2606 | *** The user option `tex-start-options-string' has been replaced |
| 2962 | by two new user options: `tex-start-options', which should hold | 2607 | by two new user options: `tex-start-options', which should hold |
| 2963 | command-line options to feed to TeX, and `tex-start-commands' which should hold | 2608 | command-line options to feed to TeX, and `tex-start-commands' which should hold |
| 2964 | TeX commands to use at startup. | 2609 | TeX commands to use at startup. |
| 2965 | 2610 | ||
| 2966 | --- | ||
| 2967 | *** verbatim environments are now highlighted in courier by font-lock | 2611 | *** verbatim environments are now highlighted in courier by font-lock |
| 2968 | and super/sub-scripts are made into super/sub-scripts. | 2612 | and super/sub-scripts are made into super/sub-scripts. |
| 2969 | 2613 | ||
| 2970 | +++ | ||
| 2971 | *** New major mode Doctex mode, for *.dtx files. | 2614 | *** New major mode Doctex mode, for *.dtx files. |
| 2972 | 2615 | ||
| 2973 | --- | ||
| 2974 | ** BibTeX mode: | 2616 | ** BibTeX mode: |
| 2975 | 2617 | ||
| 2976 | *** The new command `bibtex-url' browses a URL for the BibTeX entry at | 2618 | *** The new command `bibtex-url' browses a URL for the BibTeX entry at |
| @@ -3027,27 +2669,22 @@ extracting the content of a BibTeX field. | |||
| 3027 | `bibtex-autokey-titleword-case-convert-function'. The old names are | 2669 | `bibtex-autokey-titleword-case-convert-function'. The old names are |
| 3028 | still available as aliases. | 2670 | still available as aliases. |
| 3029 | 2671 | ||
| 3030 | +++ | ||
| 3031 | ** In Artist mode the variable `artist-text-renderer' has been | 2672 | ** In Artist mode the variable `artist-text-renderer' has been |
| 3032 | renamed to `artist-text-renderer-function'. The old name is still | 2673 | renamed to `artist-text-renderer-function'. The old name is still |
| 3033 | available as alias. | 2674 | available as alias. |
| 3034 | 2675 | ||
| 3035 | +++ | ||
| 3036 | ** In Enriched mode, `set-left-margin' and `set-right-margin' are now | 2676 | ** In Enriched mode, `set-left-margin' and `set-right-margin' are now |
| 3037 | by default bound to `C-c [' and `C-c ]' instead of the former `C-c C-l' | 2677 | by default bound to `C-c [' and `C-c ]' instead of the former `C-c C-l' |
| 3038 | and `C-c C-r'. | 2678 | and `C-c C-r'. |
| 3039 | 2679 | ||
| 3040 | ** GUD changes: | 2680 | ** GUD changes: |
| 3041 | 2681 | ||
| 3042 | +++ | ||
| 3043 | *** In GUD mode, when talking to GDB, C-x C-a C-j "jumps" the program | 2682 | *** In GUD mode, when talking to GDB, C-x C-a C-j "jumps" the program |
| 3044 | counter to the specified source line (the one where point is). | 2683 | counter to the specified source line (the one where point is). |
| 3045 | 2684 | ||
| 3046 | --- | ||
| 3047 | *** GUD mode has its own tool bar for controlling execution of the inferior | 2685 | *** GUD mode has its own tool bar for controlling execution of the inferior |
| 3048 | and other common debugger commands. | 2686 | and other common debugger commands. |
| 3049 | 2687 | ||
| 3050 | +++ | ||
| 3051 | *** The new package gdb-ui.el provides an enhanced graphical interface to | 2688 | *** The new package gdb-ui.el provides an enhanced graphical interface to |
| 3052 | GDB. You can interact with GDB through the GUD buffer in the usual way, but | 2689 | GDB. You can interact with GDB through the GUD buffer in the usual way, but |
| 3053 | there are also further buffers which control the execution and describe the | 2690 | there are also further buffers which control the execution and describe the |
| @@ -3059,17 +2696,14 @@ breakpoints. | |||
| 3059 | To use this package just type M-x gdb. See the Emacs manual if you want the | 2696 | To use this package just type M-x gdb. See the Emacs manual if you want the |
| 3060 | old behaviour. | 2697 | old behaviour. |
| 3061 | 2698 | ||
| 3062 | --- | ||
| 3063 | *** The variable tooltip-gud-tips-p has been removed. GUD tooltips can now be | 2699 | *** The variable tooltip-gud-tips-p has been removed. GUD tooltips can now be |
| 3064 | toggled independently of normal tooltips with the minor mode | 2700 | toggled independently of normal tooltips with the minor mode |
| 3065 | `gud-tooltip-mode'. | 2701 | `gud-tooltip-mode'. |
| 3066 | 2702 | ||
| 3067 | +++ | ||
| 3068 | *** In graphical mode, with a C program, GUD Tooltips have been extended to | 2703 | *** In graphical mode, with a C program, GUD Tooltips have been extended to |
| 3069 | display the #define directive associated with an identifier when program is | 2704 | display the #define directive associated with an identifier when program is |
| 3070 | not executing. | 2705 | not executing. |
| 3071 | 2706 | ||
| 3072 | --- | ||
| 3073 | ** GUD mode improvements for jdb: | 2707 | ** GUD mode improvements for jdb: |
| 3074 | 2708 | ||
| 3075 | *** Search for source files using jdb classpath and class information. | 2709 | *** Search for source files using jdb classpath and class information. |
| @@ -3114,7 +2748,6 @@ compatibility, it prefers `starttls', but you can toggle | |||
| 3114 | 2748 | ||
| 3115 | ** Auto-Revert changes: | 2749 | ** Auto-Revert changes: |
| 3116 | 2750 | ||
| 3117 | +++ | ||
| 3118 | *** You can now use Auto Revert mode to `tail' a file. | 2751 | *** You can now use Auto Revert mode to `tail' a file. |
| 3119 | 2752 | ||
| 3120 | If point is at the end of a file buffer before reverting, Auto Revert | 2753 | If point is at the end of a file buffer before reverting, Auto Revert |
| @@ -3130,7 +2763,6 @@ then you can tail the file more efficiently by using the new minor | |||
| 3130 | mode Auto Revert Tail mode. The function `auto-revert-tail-mode' | 2763 | mode Auto Revert Tail mode. The function `auto-revert-tail-mode' |
| 3131 | toggles this mode. | 2764 | toggles this mode. |
| 3132 | 2765 | ||
| 3133 | +++ | ||
| 3134 | *** Auto Revert mode is now more careful to avoid excessive reverts and | 2766 | *** Auto Revert mode is now more careful to avoid excessive reverts and |
| 3135 | other potential problems when deciding which non-file buffers to | 2767 | other potential problems when deciding which non-file buffers to |
| 3136 | revert. This matters especially if Global Auto Revert mode is enabled | 2768 | revert. This matters especially if Global Auto Revert mode is enabled |
| @@ -3141,14 +2773,12 @@ decides whether the buffer should be reverted. Currently, this means | |||
| 3141 | that auto reverting works for Dired buffers (although this may not | 2773 | that auto reverting works for Dired buffers (although this may not |
| 3142 | work properly on all operating systems) and for the Buffer Menu. | 2774 | work properly on all operating systems) and for the Buffer Menu. |
| 3143 | 2775 | ||
| 3144 | +++ | ||
| 3145 | *** If the new user option `auto-revert-check-vc-info' is non-nil, Auto | 2776 | *** If the new user option `auto-revert-check-vc-info' is non-nil, Auto |
| 3146 | Revert mode reliably updates version control info (such as the version | 2777 | Revert mode reliably updates version control info (such as the version |
| 3147 | control number in the mode line), in all version controlled buffers in | 2778 | control number in the mode line), in all version controlled buffers in |
| 3148 | which it is active. If the option is nil, the default, then this info | 2779 | which it is active. If the option is nil, the default, then this info |
| 3149 | only gets updated whenever the buffer gets reverted. | 2780 | only gets updated whenever the buffer gets reverted. |
| 3150 | 2781 | ||
| 3151 | --- | ||
| 3152 | ** recentf changes. | 2782 | ** recentf changes. |
| 3153 | 2783 | ||
| 3154 | The recent file list is now automatically cleaned up when recentf mode is | 2784 | The recent file list is now automatically cleaned up when recentf mode is |
| @@ -3173,27 +2803,21 @@ To follow naming convention, `recentf-menu-append-commands-flag' | |||
| 3173 | replaces the misnamed option `recentf-menu-append-commands-p'. The | 2803 | replaces the misnamed option `recentf-menu-append-commands-p'. The |
| 3174 | old name remains available as alias, but has been marked obsolete. | 2804 | old name remains available as alias, but has been marked obsolete. |
| 3175 | 2805 | ||
| 3176 | +++ | ||
| 3177 | ** Desktop package | 2806 | ** Desktop package |
| 3178 | 2807 | ||
| 3179 | +++ | ||
| 3180 | *** Desktop saving is now a minor mode, `desktop-save-mode'. | 2808 | *** Desktop saving is now a minor mode, `desktop-save-mode'. |
| 3181 | 2809 | ||
| 3182 | +++ | ||
| 3183 | *** The variable `desktop-enable' is obsolete. | 2810 | *** The variable `desktop-enable' is obsolete. |
| 3184 | 2811 | ||
| 3185 | Customize `desktop-save-mode' to enable desktop saving. | 2812 | Customize `desktop-save-mode' to enable desktop saving. |
| 3186 | 2813 | ||
| 3187 | --- | ||
| 3188 | *** Buffers are saved in the desktop file in the same order as that in the | 2814 | *** Buffers are saved in the desktop file in the same order as that in the |
| 3189 | buffer list. | 2815 | buffer list. |
| 3190 | 2816 | ||
| 3191 | +++ | ||
| 3192 | *** The desktop package can be customized to restore only some buffers | 2817 | *** The desktop package can be customized to restore only some buffers |
| 3193 | immediately, remaining buffers are restored lazily (when Emacs is | 2818 | immediately, remaining buffers are restored lazily (when Emacs is |
| 3194 | idle). | 2819 | idle). |
| 3195 | 2820 | ||
| 3196 | +++ | ||
| 3197 | *** New commands: | 2821 | *** New commands: |
| 3198 | - desktop-revert reverts to the last loaded desktop. | 2822 | - desktop-revert reverts to the last loaded desktop. |
| 3199 | - desktop-change-dir kills current desktop and loads a new. | 2823 | - desktop-change-dir kills current desktop and loads a new. |
| @@ -3202,7 +2826,6 @@ idle). | |||
| 3202 | - desktop-lazy-complete runs the desktop load to completion. | 2826 | - desktop-lazy-complete runs the desktop load to completion. |
| 3203 | - desktop-lazy-abort aborts lazy loading of the desktop. | 2827 | - desktop-lazy-abort aborts lazy loading of the desktop. |
| 3204 | 2828 | ||
| 3205 | --- | ||
| 3206 | *** New customizable variables: | 2829 | *** New customizable variables: |
| 3207 | - desktop-save. Determines whether the desktop should be saved when it is | 2830 | - desktop-save. Determines whether the desktop should be saved when it is |
| 3208 | killed. | 2831 | killed. |
| @@ -3217,15 +2840,12 @@ idle). | |||
| 3217 | - desktop-lazy-verbose. Verbose reporting of lazily created buffers. | 2840 | - desktop-lazy-verbose. Verbose reporting of lazily created buffers. |
| 3218 | - desktop-lazy-idle-delay. Idle delay before starting to create buffers. | 2841 | - desktop-lazy-idle-delay. Idle delay before starting to create buffers. |
| 3219 | 2842 | ||
| 3220 | +++ | ||
| 3221 | *** New command line option --no-desktop | 2843 | *** New command line option --no-desktop |
| 3222 | 2844 | ||
| 3223 | --- | ||
| 3224 | *** New hooks: | 2845 | *** New hooks: |
| 3225 | - desktop-after-read-hook run after a desktop is loaded. | 2846 | - desktop-after-read-hook run after a desktop is loaded. |
| 3226 | - desktop-no-desktop-file-hook run when no desktop file is found. | 2847 | - desktop-no-desktop-file-hook run when no desktop file is found. |
| 3227 | 2848 | ||
| 3228 | --- | ||
| 3229 | ** The saveplace.el package now filters out unreadable files. | 2849 | ** The saveplace.el package now filters out unreadable files. |
| 3230 | 2850 | ||
| 3231 | When you exit Emacs, the saved positions in visited files no longer | 2851 | When you exit Emacs, the saved positions in visited files no longer |
| @@ -3237,25 +2857,21 @@ feature. | |||
| 3237 | 2857 | ||
| 3238 | ** EDiff changes. | 2858 | ** EDiff changes. |
| 3239 | 2859 | ||
| 3240 | +++ | ||
| 3241 | *** When comparing directories. | 2860 | *** When comparing directories. |
| 3242 | Typing D brings up a buffer that lists the differences between the contents of | 2861 | Typing D brings up a buffer that lists the differences between the contents of |
| 3243 | directories. Now it is possible to use this buffer to copy the missing files | 2862 | directories. Now it is possible to use this buffer to copy the missing files |
| 3244 | from one directory to another. | 2863 | from one directory to another. |
| 3245 | 2864 | ||
| 3246 | +++ | ||
| 3247 | *** When comparing files or buffers. | 2865 | *** When comparing files or buffers. |
| 3248 | Typing the = key now offers to perform the word-by-word comparison of the | 2866 | Typing the = key now offers to perform the word-by-word comparison of the |
| 3249 | currently highlighted regions in an inferior Ediff session. If you answer 'n' | 2867 | currently highlighted regions in an inferior Ediff session. If you answer 'n' |
| 3250 | then it reverts to the old behavior and asks the user to select regions for | 2868 | then it reverts to the old behavior and asks the user to select regions for |
| 3251 | comparison. | 2869 | comparison. |
| 3252 | 2870 | ||
| 3253 | +++ | ||
| 3254 | *** The new command `ediff-backup' compares a file with its most recent | 2871 | *** The new command `ediff-backup' compares a file with its most recent |
| 3255 | backup using `ediff'. If you specify the name of a backup file, | 2872 | backup using `ediff'. If you specify the name of a backup file, |
| 3256 | `ediff-backup' compares it with the file of which it is a backup. | 2873 | `ediff-backup' compares it with the file of which it is a backup. |
| 3257 | 2874 | ||
| 3258 | +++ | ||
| 3259 | ** Etags changes. | 2875 | ** Etags changes. |
| 3260 | 2876 | ||
| 3261 | *** New regular expressions features | 2877 | *** New regular expressions features |
| @@ -3358,7 +2974,6 @@ struct members in C, members variables in C++ and variables in PHP. | |||
| 3358 | 2974 | ||
| 3359 | ** VC Changes | 2975 | ** VC Changes |
| 3360 | 2976 | ||
| 3361 | +++ | ||
| 3362 | *** The key C-x C-q only changes the read-only state of the buffer | 2977 | *** The key C-x C-q only changes the read-only state of the buffer |
| 3363 | (toggle-read-only). It no longer checks files in or out. | 2978 | (toggle-read-only). It no longer checks files in or out. |
| 3364 | 2979 | ||
| @@ -3371,7 +2986,6 @@ behavior, you can bind `vc-toggle-read-only' to C-x C-q in your | |||
| 3371 | 2986 | ||
| 3372 | The function `vc-toggle-read-only' will continue to exist. | 2987 | The function `vc-toggle-read-only' will continue to exist. |
| 3373 | 2988 | ||
| 3374 | +++ | ||
| 3375 | *** The new variable `vc-cvs-global-switches' specifies switches that | 2989 | *** The new variable `vc-cvs-global-switches' specifies switches that |
| 3376 | are passed to any CVS command invoked by VC. | 2990 | are passed to any CVS command invoked by VC. |
| 3377 | 2991 | ||
| @@ -3379,10 +2993,8 @@ These switches are used as "global options" for CVS, which means they | |||
| 3379 | are inserted before the command name. For example, this allows you to | 2993 | are inserted before the command name. For example, this allows you to |
| 3380 | specify a compression level using the `-z#' option for CVS. | 2994 | specify a compression level using the `-z#' option for CVS. |
| 3381 | 2995 | ||
| 3382 | +++ | ||
| 3383 | *** New backends for Subversion and Meta-CVS. | 2996 | *** New backends for Subversion and Meta-CVS. |
| 3384 | 2997 | ||
| 3385 | +++ | ||
| 3386 | *** VC-Annotate mode enhancements | 2998 | *** VC-Annotate mode enhancements |
| 3387 | 2999 | ||
| 3388 | In VC-Annotate mode, you can now use the following key bindings for | 3000 | In VC-Annotate mode, you can now use the following key bindings for |
| @@ -3399,23 +3011,19 @@ to view diffs or log entries directly from vc-annotate-mode: | |||
| 3399 | 3011 | ||
| 3400 | ** pcl-cvs changes: | 3012 | ** pcl-cvs changes: |
| 3401 | 3013 | ||
| 3402 | +++ | ||
| 3403 | *** In pcl-cvs mode, there is a new `d y' command to view the diffs | 3014 | *** In pcl-cvs mode, there is a new `d y' command to view the diffs |
| 3404 | between the local version of the file and yesterday's head revision | 3015 | between the local version of the file and yesterday's head revision |
| 3405 | in the repository. | 3016 | in the repository. |
| 3406 | 3017 | ||
| 3407 | +++ | ||
| 3408 | *** In pcl-cvs mode, there is a new `d r' command to view the changes | 3018 | *** In pcl-cvs mode, there is a new `d r' command to view the changes |
| 3409 | anyone has committed to the repository since you last executed | 3019 | anyone has committed to the repository since you last executed |
| 3410 | `checkout', `update' or `commit'. That means using cvs diff options | 3020 | `checkout', `update' or `commit'. That means using cvs diff options |
| 3411 | -rBASE -rHEAD. | 3021 | -rBASE -rHEAD. |
| 3412 | 3022 | ||
| 3413 | +++ | ||
| 3414 | ** The new variable `mail-default-directory' specifies | 3023 | ** The new variable `mail-default-directory' specifies |
| 3415 | `default-directory' for mail buffers. This directory is used for | 3024 | `default-directory' for mail buffers. This directory is used for |
| 3416 | auto-save files of mail buffers. It defaults to "~/". | 3025 | auto-save files of mail buffers. It defaults to "~/". |
| 3417 | 3026 | ||
| 3418 | +++ | ||
| 3419 | ** The mode line can indicate new mail in a directory or file. | 3027 | ** The mode line can indicate new mail in a directory or file. |
| 3420 | 3028 | ||
| 3421 | See the documentation of the user option | 3029 | See the documentation of the user option |
| @@ -3423,15 +3031,12 @@ See the documentation of the user option | |||
| 3423 | 3031 | ||
| 3424 | ** Rmail changes: | 3032 | ** Rmail changes: |
| 3425 | 3033 | ||
| 3426 | --- | ||
| 3427 | *** Rmail now displays 5-digit message ids in its summary buffer. | 3034 | *** Rmail now displays 5-digit message ids in its summary buffer. |
| 3428 | 3035 | ||
| 3429 | +++ | ||
| 3430 | *** The new commands rmail-end-of-message and rmail-summary end-of-message, | 3036 | *** The new commands rmail-end-of-message and rmail-summary end-of-message, |
| 3431 | by default bound to `/', go to the end of the current mail message in | 3037 | by default bound to `/', go to the end of the current mail message in |
| 3432 | Rmail and Rmail summary buffers. | 3038 | Rmail and Rmail summary buffers. |
| 3433 | 3039 | ||
| 3434 | +++ | ||
| 3435 | *** Support for `movemail' from GNU mailutils was added to Rmail. | 3040 | *** Support for `movemail' from GNU mailutils was added to Rmail. |
| 3436 | 3041 | ||
| 3437 | This version of `movemail' allows to read mail from a wide range of | 3042 | This version of `movemail' allows to read mail from a wide range of |
| @@ -3442,18 +3047,15 @@ used instead of the native one. | |||
| 3442 | 3047 | ||
| 3443 | ** Gnus package | 3048 | ** Gnus package |
| 3444 | 3049 | ||
| 3445 | --- | ||
| 3446 | *** Gnus now includes Sieve and PGG | 3050 | *** Gnus now includes Sieve and PGG |
| 3447 | 3051 | ||
| 3448 | Sieve is a library for managing Sieve scripts. PGG is a library to handle | 3052 | Sieve is a library for managing Sieve scripts. PGG is a library to handle |
| 3449 | PGP/MIME. | 3053 | PGP/MIME. |
| 3450 | 3054 | ||
| 3451 | --- | ||
| 3452 | *** There are many news features, bug fixes and improvements. | 3055 | *** There are many news features, bug fixes and improvements. |
| 3453 | 3056 | ||
| 3454 | See the file GNUS-NEWS or the node "Oort Gnus" in the Gnus manual for details. | 3057 | See the file GNUS-NEWS or the node "Oort Gnus" in the Gnus manual for details. |
| 3455 | 3058 | ||
| 3456 | --- | ||
| 3457 | ** MH-E changes. | 3059 | ** MH-E changes. |
| 3458 | 3060 | ||
| 3459 | Upgraded to MH-E version 8.0.3. There have been major changes since | 3061 | Upgraded to MH-E version 8.0.3. There have been major changes since |
| @@ -3461,23 +3063,18 @@ version 5.0.2; see MH-E-NEWS for details. | |||
| 3461 | 3063 | ||
| 3462 | ** Calendar changes: | 3064 | ** Calendar changes: |
| 3463 | 3065 | ||
| 3464 | +++ | ||
| 3465 | *** The meanings of C-x < and C-x > have been interchanged. | 3066 | *** The meanings of C-x < and C-x > have been interchanged. |
| 3466 | < means to scroll backward in time, and > means to scroll forward. | 3067 | < means to scroll backward in time, and > means to scroll forward. |
| 3467 | 3068 | ||
| 3468 | +++ | ||
| 3469 | *** You can now use < and >, instead of C-x < and C-x >, to scroll | 3069 | *** You can now use < and >, instead of C-x < and C-x >, to scroll |
| 3470 | the calendar left or right. | 3070 | the calendar left or right. |
| 3471 | 3071 | ||
| 3472 | +++ | ||
| 3473 | *** There is a new calendar package, icalendar.el, that can be used to | 3072 | *** There is a new calendar package, icalendar.el, that can be used to |
| 3474 | convert Emacs diary entries to/from the iCalendar format. | 3073 | convert Emacs diary entries to/from the iCalendar format. |
| 3475 | 3074 | ||
| 3476 | +++ | ||
| 3477 | *** The new package cal-html.el writes HTML files with calendar and | 3075 | *** The new package cal-html.el writes HTML files with calendar and |
| 3478 | diary entries. | 3076 | diary entries. |
| 3479 | 3077 | ||
| 3480 | +++ | ||
| 3481 | *** Diary sexp entries can have custom marking in the calendar. | 3078 | *** Diary sexp entries can have custom marking in the calendar. |
| 3482 | Diary sexp functions which only apply to certain days (such as | 3079 | Diary sexp functions which only apply to certain days (such as |
| 3483 | `diary-block' or `diary-cyclic') now take an optional parameter MARK, | 3080 | `diary-block' or `diary-cyclic') now take an optional parameter MARK, |
| @@ -3488,45 +3085,37 @@ day in the calendar. Specifying a face highlights the day with that | |||
| 3488 | face. This lets you have different colors or markings for vacations, | 3085 | face. This lets you have different colors or markings for vacations, |
| 3489 | appointments, paydays or anything else using a sexp. | 3086 | appointments, paydays or anything else using a sexp. |
| 3490 | 3087 | ||
| 3491 | +++ | ||
| 3492 | *** The new function `calendar-goto-day-of-year' (g D) prompts for a | 3088 | *** The new function `calendar-goto-day-of-year' (g D) prompts for a |
| 3493 | year and day number, and moves to that date. Negative day numbers | 3089 | year and day number, and moves to that date. Negative day numbers |
| 3494 | count backward from the end of the year. | 3090 | count backward from the end of the year. |
| 3495 | 3091 | ||
| 3496 | +++ | ||
| 3497 | *** The new Calendar function `calendar-goto-iso-week' (g w) | 3092 | *** The new Calendar function `calendar-goto-iso-week' (g w) |
| 3498 | prompts for a year and a week number, and moves to the first | 3093 | prompts for a year and a week number, and moves to the first |
| 3499 | day of that ISO week. | 3094 | day of that ISO week. |
| 3500 | 3095 | ||
| 3501 | --- | ||
| 3502 | *** The new variable `calendar-minimum-window-height' affects the | 3096 | *** The new variable `calendar-minimum-window-height' affects the |
| 3503 | window generated by the function `generate-calendar-window'. | 3097 | window generated by the function `generate-calendar-window'. |
| 3504 | 3098 | ||
| 3505 | --- | ||
| 3506 | *** The functions `holiday-easter-etc' and `holiday-advent' now take | 3099 | *** The functions `holiday-easter-etc' and `holiday-advent' now take |
| 3507 | optional arguments, in order to only report on the specified holiday | 3100 | optional arguments, in order to only report on the specified holiday |
| 3508 | rather than all. This makes customization of variables such as | 3101 | rather than all. This makes customization of variables such as |
| 3509 | `christian-holidays' simpler. | 3102 | `christian-holidays' simpler. |
| 3510 | 3103 | ||
| 3511 | --- | ||
| 3512 | *** The function `simple-diary-display' now by default sets a header line. | 3104 | *** The function `simple-diary-display' now by default sets a header line. |
| 3513 | This can be controlled through the variables `diary-header-line-flag' | 3105 | This can be controlled through the variables `diary-header-line-flag' |
| 3514 | and `diary-header-line-format'. | 3106 | and `diary-header-line-format'. |
| 3515 | 3107 | ||
| 3516 | +++ | ||
| 3517 | *** The procedure for activating appointment reminders has changed: | 3108 | *** The procedure for activating appointment reminders has changed: |
| 3518 | use the new function `appt-activate'. The new variable | 3109 | use the new function `appt-activate'. The new variable |
| 3519 | `appt-display-format' controls how reminders are displayed, replacing | 3110 | `appt-display-format' controls how reminders are displayed, replacing |
| 3520 | `appt-issue-message', `appt-visible', and `appt-msg-window'. | 3111 | `appt-issue-message', `appt-visible', and `appt-msg-window'. |
| 3521 | 3112 | ||
| 3522 | +++ | ||
| 3523 | *** The new functions `diary-from-outlook', `diary-from-outlook-gnus', | 3113 | *** The new functions `diary-from-outlook', `diary-from-outlook-gnus', |
| 3524 | and `diary-from-outlook-rmail' can be used to import diary entries | 3114 | and `diary-from-outlook-rmail' can be used to import diary entries |
| 3525 | from Outlook-format appointments in mail messages. The variable | 3115 | from Outlook-format appointments in mail messages. The variable |
| 3526 | `diary-outlook-formats' can be customized to recognize additional | 3116 | `diary-outlook-formats' can be customized to recognize additional |
| 3527 | formats. | 3117 | formats. |
| 3528 | 3118 | ||
| 3529 | +++ | ||
| 3530 | ** Speedbar changes: | 3119 | ** Speedbar changes: |
| 3531 | 3120 | ||
| 3532 | *** Speedbar items can now be selected by clicking mouse-1, based on | 3121 | *** Speedbar items can now be selected by clicking mouse-1, based on |
| @@ -3570,7 +3159,6 @@ should use `dframe-attached-frame' instead of | |||
| 3570 | `speedbar-update-speed' and `speedbar-navigating-speed' are also | 3159 | `speedbar-update-speed' and `speedbar-navigating-speed' are also |
| 3571 | obsolete; use `dframe-update-speed' instead. | 3160 | obsolete; use `dframe-update-speed' instead. |
| 3572 | 3161 | ||
| 3573 | --- | ||
| 3574 | ** sql changes. | 3162 | ** sql changes. |
| 3575 | 3163 | ||
| 3576 | *** The variable `sql-product' controls the highlighting of different | 3164 | *** The variable `sql-product' controls the highlighting of different |
| @@ -3644,12 +3232,10 @@ defaults. | |||
| 3644 | appropriate `sql-interactive-mode' wrapper for the current setting of | 3232 | appropriate `sql-interactive-mode' wrapper for the current setting of |
| 3645 | `sql-product'. | 3233 | `sql-product'. |
| 3646 | 3234 | ||
| 3647 | --- | ||
| 3648 | *** sql.el supports the SQLite interpreter--call 'sql-sqlite'. | 3235 | *** sql.el supports the SQLite interpreter--call 'sql-sqlite'. |
| 3649 | 3236 | ||
| 3650 | ** FFAP changes: | 3237 | ** FFAP changes: |
| 3651 | 3238 | ||
| 3652 | +++ | ||
| 3653 | *** New ffap commands and keybindings: | 3239 | *** New ffap commands and keybindings: |
| 3654 | 3240 | ||
| 3655 | C-x C-r (`ffap-read-only'), | 3241 | C-x C-r (`ffap-read-only'), |
| @@ -3657,13 +3243,11 @@ C-x C-v (`ffap-alternate-file'), C-x C-d (`ffap-list-directory'), | |||
| 3657 | C-x 4 r (`ffap-read-only-other-window'), C-x 4 d (`ffap-dired-other-window'), | 3243 | C-x 4 r (`ffap-read-only-other-window'), C-x 4 d (`ffap-dired-other-window'), |
| 3658 | C-x 5 r (`ffap-read-only-other-frame'), C-x 5 d (`ffap-dired-other-frame'). | 3244 | C-x 5 r (`ffap-read-only-other-frame'), C-x 5 d (`ffap-dired-other-frame'). |
| 3659 | 3245 | ||
| 3660 | --- | ||
| 3661 | *** FFAP accepts wildcards in a file name by default. | 3246 | *** FFAP accepts wildcards in a file name by default. |
| 3662 | 3247 | ||
| 3663 | C-x C-f passes the file name to `find-file' with non-nil WILDCARDS | 3248 | C-x C-f passes the file name to `find-file' with non-nil WILDCARDS |
| 3664 | argument, which visits multiple files, and C-x d passes it to `dired'. | 3249 | argument, which visits multiple files, and C-x d passes it to `dired'. |
| 3665 | 3250 | ||
| 3666 | --- | ||
| 3667 | ** Changes in Skeleton | 3251 | ** Changes in Skeleton |
| 3668 | 3252 | ||
| 3669 | *** In skeleton.el, `-' marks the `skeleton-point' without interregion interaction. | 3253 | *** In skeleton.el, `-' marks the `skeleton-point' without interregion interaction. |
| @@ -3680,7 +3264,6 @@ with other details of skeleton construction. | |||
| 3680 | `skeleton-pair-filter-function'. The old names are still available | 3264 | `skeleton-pair-filter-function'. The old names are still available |
| 3681 | as aliases. | 3265 | as aliases. |
| 3682 | 3266 | ||
| 3683 | --- | ||
| 3684 | ** Hideshow mode changes | 3267 | ** Hideshow mode changes |
| 3685 | 3268 | ||
| 3686 | *** New variable `hs-set-up-overlay' allows customization of the overlay | 3269 | *** New variable `hs-set-up-overlay' allows customization of the overlay |
| @@ -3692,28 +3275,23 @@ temporary overlay showing in the course of an isearch operation. | |||
| 3692 | not discard the hidden state of any "internal" blocks; when the parent | 3275 | not discard the hidden state of any "internal" blocks; when the parent |
| 3693 | block is later shown, the internal blocks remain hidden. Default is nil. | 3276 | block is later shown, the internal blocks remain hidden. Default is nil. |
| 3694 | 3277 | ||
| 3695 | +++ | ||
| 3696 | ** `hide-ifdef-mode' now uses overlays rather than selective-display | 3278 | ** `hide-ifdef-mode' now uses overlays rather than selective-display |
| 3697 | to hide its text. This should be mostly transparent but slightly | 3279 | to hide its text. This should be mostly transparent but slightly |
| 3698 | changes the behavior of motion commands like C-e and C-p. | 3280 | changes the behavior of motion commands like C-e and C-p. |
| 3699 | 3281 | ||
| 3700 | --- | ||
| 3701 | ** `partial-completion-mode' now handles partial completion on directory names. | 3282 | ** `partial-completion-mode' now handles partial completion on directory names. |
| 3702 | 3283 | ||
| 3703 | --- | ||
| 3704 | ** The type-break package now allows `type-break-file-name' to be nil | 3284 | ** The type-break package now allows `type-break-file-name' to be nil |
| 3705 | and if so, doesn't store any data across sessions. This is handy if | 3285 | and if so, doesn't store any data across sessions. This is handy if |
| 3706 | you don't want the `.type-break' file in your home directory or are | 3286 | you don't want the `.type-break' file in your home directory or are |
| 3707 | annoyed by the need for interaction when you kill Emacs. | 3287 | annoyed by the need for interaction when you kill Emacs. |
| 3708 | 3288 | ||
| 3709 | --- | ||
| 3710 | ** `ps-print' can now print characters from the mule-unicode charsets. | 3289 | ** `ps-print' can now print characters from the mule-unicode charsets. |
| 3711 | 3290 | ||
| 3712 | Printing text with characters from the mule-unicode-* sets works with | 3291 | Printing text with characters from the mule-unicode-* sets works with |
| 3713 | `ps-print', provided that you have installed the appropriate BDF | 3292 | `ps-print', provided that you have installed the appropriate BDF |
| 3714 | fonts. See the file INSTALL for URLs where you can find these fonts. | 3293 | fonts. See the file INSTALL for URLs where you can find these fonts. |
| 3715 | 3294 | ||
| 3716 | --- | ||
| 3717 | ** New command `strokes-global-set-stroke-string'. | 3295 | ** New command `strokes-global-set-stroke-string'. |
| 3718 | This is like `strokes-global-set-stroke', but it allows you to bind | 3296 | This is like `strokes-global-set-stroke', but it allows you to bind |
| 3719 | the stroke directly to a string to insert. This is convenient for | 3297 | the stroke directly to a string to insert. This is convenient for |
| @@ -3721,7 +3299,6 @@ using strokes as an input method. | |||
| 3721 | 3299 | ||
| 3722 | ** Emacs server changes: | 3300 | ** Emacs server changes: |
| 3723 | 3301 | ||
| 3724 | +++ | ||
| 3725 | *** You can have several Emacs servers on the same machine. | 3302 | *** You can have several Emacs servers on the same machine. |
| 3726 | 3303 | ||
| 3727 | % emacs --eval '(setq server-name "foo")' -f server-start & | 3304 | % emacs --eval '(setq server-name "foo")' -f server-start & |
| @@ -3729,36 +3306,29 @@ using strokes as an input method. | |||
| 3729 | % emacsclient -s foo file1 | 3306 | % emacsclient -s foo file1 |
| 3730 | % emacsclient -s bar file2 | 3307 | % emacsclient -s bar file2 |
| 3731 | 3308 | ||
| 3732 | +++ | ||
| 3733 | *** The `emacsclient' command understands the options `--eval' and | 3309 | *** The `emacsclient' command understands the options `--eval' and |
| 3734 | `--display' which tell Emacs respectively to evaluate the given Lisp | 3310 | `--display' which tell Emacs respectively to evaluate the given Lisp |
| 3735 | expression and to use the given display when visiting files. | 3311 | expression and to use the given display when visiting files. |
| 3736 | 3312 | ||
| 3737 | +++ | ||
| 3738 | *** User option `server-mode' can be used to start a server process. | 3313 | *** User option `server-mode' can be used to start a server process. |
| 3739 | 3314 | ||
| 3740 | --- | ||
| 3741 | ** LDAP support now defaults to ldapsearch from OpenLDAP version 2. | 3315 | ** LDAP support now defaults to ldapsearch from OpenLDAP version 2. |
| 3742 | 3316 | ||
| 3743 | +++ | ||
| 3744 | ** You can now disable pc-selection-mode after enabling it. | 3317 | ** You can now disable pc-selection-mode after enabling it. |
| 3745 | 3318 | ||
| 3746 | M-x pc-selection-mode behaves like a proper minor mode, and with no | 3319 | M-x pc-selection-mode behaves like a proper minor mode, and with no |
| 3747 | argument it toggles the mode. Turning off PC-Selection mode restores | 3320 | argument it toggles the mode. Turning off PC-Selection mode restores |
| 3748 | the global key bindings that were replaced by turning on the mode. | 3321 | the global key bindings that were replaced by turning on the mode. |
| 3749 | 3322 | ||
| 3750 | --- | ||
| 3751 | ** `uniquify-strip-common-suffix' tells uniquify to prefer | 3323 | ** `uniquify-strip-common-suffix' tells uniquify to prefer |
| 3752 | `file|dir1' and `file|dir2' to `file|dir1/subdir' and `file|dir2/subdir'. | 3324 | `file|dir1' and `file|dir2' to `file|dir1/subdir' and `file|dir2/subdir'. |
| 3753 | 3325 | ||
| 3754 | --- | ||
| 3755 | ** Support for `magic cookie' standout modes has been removed. | 3326 | ** Support for `magic cookie' standout modes has been removed. |
| 3756 | 3327 | ||
| 3757 | Emacs still works on terminals that require magic cookies in order to | 3328 | Emacs still works on terminals that require magic cookies in order to |
| 3758 | use standout mode, but they can no longer display mode-lines in | 3329 | use standout mode, but they can no longer display mode-lines in |
| 3759 | inverse-video. | 3330 | inverse-video. |
| 3760 | 3331 | ||
| 3761 | --- | ||
| 3762 | ** The game `mpuz' is enhanced. | 3332 | ** The game `mpuz' is enhanced. |
| 3763 | 3333 | ||
| 3764 | `mpuz' now allows the 2nd factor not to have two identical digits. By | 3334 | `mpuz' now allows the 2nd factor not to have two identical digits. By |
| @@ -3767,13 +3337,10 @@ automatically. The game uses faces for better visual feedback. | |||
| 3767 | 3337 | ||
| 3768 | ** battery.el changes: | 3338 | ** battery.el changes: |
| 3769 | 3339 | ||
| 3770 | --- | ||
| 3771 | *** display-battery-mode replaces display-battery. | 3340 | *** display-battery-mode replaces display-battery. |
| 3772 | 3341 | ||
| 3773 | --- | ||
| 3774 | *** battery.el now works on recent versions of OS X. | 3342 | *** battery.el now works on recent versions of OS X. |
| 3775 | 3343 | ||
| 3776 | --- | ||
| 3777 | ** calculator.el now has radix grouping mode. | 3344 | ** calculator.el now has radix grouping mode. |
| 3778 | 3345 | ||
| 3779 | To enable this, set `calculator-output-radix' non-nil. In this mode a | 3346 | To enable this, set `calculator-output-radix' non-nil. In this mode a |
| @@ -3781,19 +3348,14 @@ separator character is used every few digits, making it easier to see | |||
| 3781 | byte boundaries etc. For more info, see the documentation of the | 3348 | byte boundaries etc. For more info, see the documentation of the |
| 3782 | variable `calculator-radix-grouping-mode'. | 3349 | variable `calculator-radix-grouping-mode'. |
| 3783 | 3350 | ||
| 3784 | --- | ||
| 3785 | ** fast-lock.el and lazy-lock.el are obsolete. Use jit-lock.el instead. | 3351 | ** fast-lock.el and lazy-lock.el are obsolete. Use jit-lock.el instead. |
| 3786 | 3352 | ||
| 3787 | --- | ||
| 3788 | ** iso-acc.el is now obsolete. Use one of the latin input methods instead. | 3353 | ** iso-acc.el is now obsolete. Use one of the latin input methods instead. |
| 3789 | 3354 | ||
| 3790 | --- | ||
| 3791 | ** zone-mode.el is now obsolete. Use dns-mode.el instead. | 3355 | ** zone-mode.el is now obsolete. Use dns-mode.el instead. |
| 3792 | 3356 | ||
| 3793 | --- | ||
| 3794 | ** cplus-md.el has been deleted. | 3357 | ** cplus-md.el has been deleted. |
| 3795 | 3358 | ||
| 3796 | --- | ||
| 3797 | ** Ewoc changes | 3359 | ** Ewoc changes |
| 3798 | 3360 | ||
| 3799 | *** The new function `ewoc-delete' deletes specified nodes. | 3361 | *** The new function `ewoc-delete' deletes specified nodes. |
| @@ -3816,7 +3378,6 @@ For example, these two sequences of expressions behave identically: | |||
| 3816 | 3378 | ||
| 3817 | ** Locate changes | 3379 | ** Locate changes |
| 3818 | 3380 | ||
| 3819 | --- | ||
| 3820 | *** By default, reverting the *Locate* buffer now just runs the last | 3381 | *** By default, reverting the *Locate* buffer now just runs the last |
| 3821 | `locate' command back over again without offering to update the locate | 3382 | `locate' command back over again without offering to update the locate |
| 3822 | database (which normally only works if you have root privileges). If | 3383 | database (which normally only works if you have root privileges). If |
| @@ -3826,7 +3387,6 @@ you prefer the old behavior, set the new customizable option | |||
| 3826 | 3387 | ||
| 3827 | * Changes in Emacs 22.1 on non-free operating systems | 3388 | * Changes in Emacs 22.1 on non-free operating systems |
| 3828 | 3389 | ||
| 3829 | +++ | ||
| 3830 | ** The HOME directory defaults to Application Data under the user profile. | 3390 | ** The HOME directory defaults to Application Data under the user profile. |
| 3831 | 3391 | ||
| 3832 | If you used a previous version of Emacs without setting the HOME | 3392 | If you used a previous version of Emacs without setting the HOME |
| @@ -3841,7 +3401,6 @@ This change means that users can now have their own `.emacs' files on | |||
| 3841 | shared computers, and the default HOME directory is less likely to be | 3401 | shared computers, and the default HOME directory is less likely to be |
| 3842 | read-only on computers that are administered by someone else. | 3402 | read-only on computers that are administered by someone else. |
| 3843 | 3403 | ||
| 3844 | +++ | ||
| 3845 | ** Passing resources on the command line now works on MS Windows. | 3404 | ** Passing resources on the command line now works on MS Windows. |
| 3846 | 3405 | ||
| 3847 | You can use --xrm to pass resource settings to Emacs, overriding any | 3406 | You can use --xrm to pass resource settings to Emacs, overriding any |
| @@ -3852,7 +3411,6 @@ existing values. For example: | |||
| 3852 | will start up Emacs on an initial frame of 100x20 with red background, | 3411 | will start up Emacs on an initial frame of 100x20 with red background, |
| 3853 | irrespective of geometry or background setting on the Windows registry. | 3412 | irrespective of geometry or background setting on the Windows registry. |
| 3854 | 3413 | ||
| 3855 | --- | ||
| 3856 | ** On MS Windows, the "system caret" now follows the cursor. | 3414 | ** On MS Windows, the "system caret" now follows the cursor. |
| 3857 | 3415 | ||
| 3858 | This enables Emacs to work better with programs that need to track the | 3416 | This enables Emacs to work better with programs that need to track the |
| @@ -3862,12 +3420,10 @@ instead of Emacs drawing its own cursor. This seems to be required by | |||
| 3862 | some programs. The new variable w32-use-visible-system-caret allows | 3420 | some programs. The new variable w32-use-visible-system-caret allows |
| 3863 | the caret visibility to be manually toggled. | 3421 | the caret visibility to be manually toggled. |
| 3864 | 3422 | ||
| 3865 | --- | ||
| 3866 | ** Tooltips now work on MS Windows. | 3423 | ** Tooltips now work on MS Windows. |
| 3867 | 3424 | ||
| 3868 | See the Emacs 21.1 NEWS entry for tooltips for details. | 3425 | See the Emacs 21.1 NEWS entry for tooltips for details. |
| 3869 | 3426 | ||
| 3870 | --- | ||
| 3871 | ** Images are now supported on MS Windows. | 3427 | ** Images are now supported on MS Windows. |
| 3872 | 3428 | ||
| 3873 | PBM and XBM images are supported out of the box. Other image formats | 3429 | PBM and XBM images are supported out of the box. Other image formats |
| @@ -3877,7 +3433,6 @@ http://gnuwin32.sourceforge.net/. Note that libpng also depends on | |||
| 3877 | zlib, and tiff depends on the version of jpeg that it was compiled | 3433 | zlib, and tiff depends on the version of jpeg that it was compiled |
| 3878 | against. For additional information, see nt/INSTALL. | 3434 | against. For additional information, see nt/INSTALL. |
| 3879 | 3435 | ||
| 3880 | --- | ||
| 3881 | ** Sound is now supported on MS Windows. | 3436 | ** Sound is now supported on MS Windows. |
| 3882 | 3437 | ||
| 3883 | WAV format is supported on all versions of Windows, other formats such | 3438 | WAV format is supported on all versions of Windows, other formats such |
| @@ -3885,19 +3440,16 @@ as AU, AIFF and MP3 may be supported in the more recent versions of | |||
| 3885 | Windows, or when other software provides hooks into the system level | 3440 | Windows, or when other software provides hooks into the system level |
| 3886 | sound support for those formats. | 3441 | sound support for those formats. |
| 3887 | 3442 | ||
| 3888 | --- | ||
| 3889 | ** Different shaped mouse pointers are supported on MS Windows. | 3443 | ** Different shaped mouse pointers are supported on MS Windows. |
| 3890 | 3444 | ||
| 3891 | The mouse pointer changes shape depending on what is under the pointer. | 3445 | The mouse pointer changes shape depending on what is under the pointer. |
| 3892 | 3446 | ||
| 3893 | --- | ||
| 3894 | ** Pointing devices with more than 3 buttons are now supported on MS Windows. | 3447 | ** Pointing devices with more than 3 buttons are now supported on MS Windows. |
| 3895 | 3448 | ||
| 3896 | The new variable `w32-pass-extra-mouse-buttons-to-system' controls | 3449 | The new variable `w32-pass-extra-mouse-buttons-to-system' controls |
| 3897 | whether Emacs should handle the extra buttons itself (the default), or | 3450 | whether Emacs should handle the extra buttons itself (the default), or |
| 3898 | pass them to Windows to be handled with system-wide functions. | 3451 | pass them to Windows to be handled with system-wide functions. |
| 3899 | 3452 | ||
| 3900 | --- | ||
| 3901 | ** Emacs takes note of colors defined in Control Panel on MS-Windows. | 3453 | ** Emacs takes note of colors defined in Control Panel on MS-Windows. |
| 3902 | 3454 | ||
| 3903 | The Control Panel defines some default colors for applications in much | 3455 | The Control Panel defines some default colors for applications in much |
| @@ -3908,7 +3460,6 @@ some of them to initialize some of the default faces. | |||
| 3908 | `list-colors-display' shows the list of System color names, in case | 3460 | `list-colors-display' shows the list of System color names, in case |
| 3909 | you wish to use them in other faces. | 3461 | you wish to use them in other faces. |
| 3910 | 3462 | ||
| 3911 | --- | ||
| 3912 | ** On MS Windows NT/W2K/XP, Emacs uses Unicode for clipboard operations. | 3463 | ** On MS Windows NT/W2K/XP, Emacs uses Unicode for clipboard operations. |
| 3913 | 3464 | ||
| 3914 | Those systems use Unicode internally, so this allows Emacs to share | 3465 | Those systems use Unicode internally, so this allows Emacs to share |
| @@ -3917,7 +3468,6 @@ MS Windows, Emacs now uses the appropriate locale coding-system, so | |||
| 3917 | the clipboard should work correctly for your local language without | 3468 | the clipboard should work correctly for your local language without |
| 3918 | any customizations. | 3469 | any customizations. |
| 3919 | 3470 | ||
| 3920 | --- | ||
| 3921 | ** Running in a console window in Windows now uses the console size. | 3471 | ** Running in a console window in Windows now uses the console size. |
| 3922 | 3472 | ||
| 3923 | Previous versions of Emacs erred on the side of having a usable Emacs | 3473 | Previous versions of Emacs erred on the side of having a usable Emacs |
| @@ -3931,46 +3481,37 @@ defaults to 80x25. If you use such a telnet server regularly at a size | |||
| 3931 | other than 80x25, you can still manually set | 3481 | other than 80x25, you can still manually set |
| 3932 | w32-use-full-screen-buffer to t. | 3482 | w32-use-full-screen-buffer to t. |
| 3933 | 3483 | ||
| 3934 | --- | ||
| 3935 | ** On Mac OS, `keyboard-coding-system' changes based on the keyboard script. | 3484 | ** On Mac OS, `keyboard-coding-system' changes based on the keyboard script. |
| 3936 | 3485 | ||
| 3937 | --- | ||
| 3938 | ** The variable `mac-keyboard-text-encoding' and the constants | 3486 | ** The variable `mac-keyboard-text-encoding' and the constants |
| 3939 | `kTextEncodingMacRoman', `kTextEncodingISOLatin1', and | 3487 | `kTextEncodingMacRoman', `kTextEncodingISOLatin1', and |
| 3940 | `kTextEncodingISOLatin2' are obsolete. | 3488 | `kTextEncodingISOLatin2' are obsolete. |
| 3941 | 3489 | ||
| 3942 | +++ | ||
| 3943 | ** The variable `mac-command-key-is-meta' is obsolete. Use | 3490 | ** The variable `mac-command-key-is-meta' is obsolete. Use |
| 3944 | `mac-command-modifier' and `mac-option-modifier' instead. | 3491 | `mac-command-modifier' and `mac-option-modifier' instead. |
| 3945 | 3492 | ||
| 3946 | * Incompatible Lisp Changes in Emacs 22.1 | 3493 | * Incompatible Lisp Changes in Emacs 22.1 |
| 3947 | 3494 | ||
| 3948 | +++ | ||
| 3949 | ** The `read-file-name' function now returns a null string if the | 3495 | ** The `read-file-name' function now returns a null string if the |
| 3950 | user just types RET. | 3496 | user just types RET. |
| 3951 | 3497 | ||
| 3952 | +++ | ||
| 3953 | ** The function find-operation-coding-system may be called with a cons | 3498 | ** The function find-operation-coding-system may be called with a cons |
| 3954 | (FILENAME . BUFFER) in the second argument if the first argument | 3499 | (FILENAME . BUFFER) in the second argument if the first argument |
| 3955 | OPERATION is `insert-file-contents', and thus a function registered in | 3500 | OPERATION is `insert-file-contents', and thus a function registered in |
| 3956 | `file-coding-system-alist' is also called with such an argument. | 3501 | `file-coding-system-alist' is also called with such an argument. |
| 3957 | 3502 | ||
| 3958 | --- | ||
| 3959 | ** The variables post-command-idle-hook and post-command-idle-delay have | 3503 | ** The variables post-command-idle-hook and post-command-idle-delay have |
| 3960 | been removed. Use run-with-idle-timer instead. | 3504 | been removed. Use run-with-idle-timer instead. |
| 3961 | 3505 | ||
| 3962 | +++ | ||
| 3963 | ** `suppress-keymap' now works by remapping `self-insert-command' to | 3506 | ** `suppress-keymap' now works by remapping `self-insert-command' to |
| 3964 | the command `undefined'. (In earlier Emacs versions, it used | 3507 | the command `undefined'. (In earlier Emacs versions, it used |
| 3965 | `substitute-key-definition' to rebind self inserting characters to | 3508 | `substitute-key-definition' to rebind self inserting characters to |
| 3966 | `undefined'.) | 3509 | `undefined'.) |
| 3967 | 3510 | ||
| 3968 | +++ | ||
| 3969 | ** Mode line display ignores text properties as well as the | 3511 | ** Mode line display ignores text properties as well as the |
| 3970 | :propertize and :eval forms in the value of a variable whose | 3512 | :propertize and :eval forms in the value of a variable whose |
| 3971 | `risky-local-variable' property is nil. | 3513 | `risky-local-variable' property is nil. |
| 3972 | 3514 | ||
| 3973 | --- | ||
| 3974 | The function `comint-send-input' now accepts 3 optional arguments: | 3515 | The function `comint-send-input' now accepts 3 optional arguments: |
| 3975 | 3516 | ||
| 3976 | (comint-send-input &optional no-newline artificial) | 3517 | (comint-send-input &optional no-newline artificial) |
| @@ -3979,23 +3520,18 @@ Callers sending input not from the user should use bind the 3rd | |||
| 3979 | argument `artificial' to a non-nil value, to prevent Emacs from | 3520 | argument `artificial' to a non-nil value, to prevent Emacs from |
| 3980 | deleting the part of subprocess output that matches the input. | 3521 | deleting the part of subprocess output that matches the input. |
| 3981 | 3522 | ||
| 3982 | --- | ||
| 3983 | ** Support for Mocklisp has been removed. | 3523 | ** Support for Mocklisp has been removed. |
| 3984 | 3524 | ||
| 3985 | +++ | ||
| 3986 | ** The variable `memory-full' now remains t until | 3525 | ** The variable `memory-full' now remains t until |
| 3987 | there is no longer a shortage of memory. | 3526 | there is no longer a shortage of memory. |
| 3988 | 3527 | ||
| 3989 | +++ | ||
| 3990 | ** When Emacs receives a USR1 or USR2 signal, this generates | 3528 | ** When Emacs receives a USR1 or USR2 signal, this generates |
| 3991 | input events: sigusr1 or sigusr2. Use special-event-map to | 3529 | input events: sigusr1 or sigusr2. Use special-event-map to |
| 3992 | handle these events. | 3530 | handle these events. |
| 3993 | 3531 | ||
| 3994 | +++ | ||
| 3995 | ** A hex or octal escape in a string constant forces the string to | 3532 | ** A hex or octal escape in a string constant forces the string to |
| 3996 | be multibyte or unibyte, respectively. | 3533 | be multibyte or unibyte, respectively. |
| 3997 | 3534 | ||
| 3998 | +++ | ||
| 3999 | ** The explicit method of creating a display table element by | 3535 | ** The explicit method of creating a display table element by |
| 4000 | combining a face number and a character code into a numeric | 3536 | combining a face number and a character code into a numeric |
| 4001 | glyph code is deprecated. | 3537 | glyph code is deprecated. |
| @@ -4009,45 +3545,36 @@ display tables. | |||
| 4009 | 3545 | ||
| 4010 | ** General Lisp changes: | 3546 | ** General Lisp changes: |
| 4011 | 3547 | ||
| 4012 | +++ | ||
| 4013 | *** The function `expt' handles negative exponents differently. | 3548 | *** The function `expt' handles negative exponents differently. |
| 4014 | The value for `(expt A B)', if both A and B are integers and B is | 3549 | The value for `(expt A B)', if both A and B are integers and B is |
| 4015 | negative, is now a float. For example: (expt 2 -2) => 0.25. | 3550 | negative, is now a float. For example: (expt 2 -2) => 0.25. |
| 4016 | 3551 | ||
| 4017 | +++ | ||
| 4018 | *** The function `eql' is now available without requiring the CL package. | 3552 | *** The function `eql' is now available without requiring the CL package. |
| 4019 | 3553 | ||
| 4020 | +++ | ||
| 4021 | *** The new function `memql' is like `memq', but uses `eql' for comparison, | 3554 | *** The new function `memql' is like `memq', but uses `eql' for comparison, |
| 4022 | that is, floats are compared by value and other elements with `eq'. | 3555 | that is, floats are compared by value and other elements with `eq'. |
| 4023 | 3556 | ||
| 4024 | +++ | ||
| 4025 | *** `makehash' is now obsolete. Use `make-hash-table' instead. | 3557 | *** `makehash' is now obsolete. Use `make-hash-table' instead. |
| 4026 | 3558 | ||
| 4027 | +++ | ||
| 4028 | *** `add-to-list' takes an optional third argument, APPEND. | 3559 | *** `add-to-list' takes an optional third argument, APPEND. |
| 4029 | 3560 | ||
| 4030 | If APPEND is non-nil, the new element gets added at the end of the | 3561 | If APPEND is non-nil, the new element gets added at the end of the |
| 4031 | list instead of at the beginning. This change actually occurred in | 3562 | list instead of at the beginning. This change actually occurred in |
| 4032 | Emacs 21.1, but was not documented then. | 3563 | Emacs 21.1, but was not documented then. |
| 4033 | 3564 | ||
| 4034 | +++ | ||
| 4035 | *** New function `add-to-ordered-list' is like `add-to-list' but | 3565 | *** New function `add-to-ordered-list' is like `add-to-list' but |
| 4036 | associates a numeric ordering of each element added to the list. | 3566 | associates a numeric ordering of each element added to the list. |
| 4037 | 3567 | ||
| 4038 | +++ | ||
| 4039 | *** New function `copy-tree' makes a copy of a tree. | 3568 | *** New function `copy-tree' makes a copy of a tree. |
| 4040 | 3569 | ||
| 4041 | It recursively copies through both CARs and CDRs. | 3570 | It recursively copies through both CARs and CDRs. |
| 4042 | 3571 | ||
| 4043 | +++ | ||
| 4044 | *** New function `delete-dups' deletes `equal' duplicate elements from a list. | 3572 | *** New function `delete-dups' deletes `equal' duplicate elements from a list. |
| 4045 | 3573 | ||
| 4046 | It modifies the list destructively, like `delete'. Of several `equal' | 3574 | It modifies the list destructively, like `delete'. Of several `equal' |
| 4047 | occurrences of an element in the list, the one that's kept is the | 3575 | occurrences of an element in the list, the one that's kept is the |
| 4048 | first one. | 3576 | first one. |
| 4049 | 3577 | ||
| 4050 | +++ | ||
| 4051 | *** New function `add-to-history' adds an element to a history list. | 3578 | *** New function `add-to-history' adds an element to a history list. |
| 4052 | 3579 | ||
| 4053 | Lisp packages should use this function to add elements to their | 3580 | Lisp packages should use this function to add elements to their |
| @@ -4056,13 +3583,11 @@ history lists. | |||
| 4056 | If `history-delete-duplicates' is non-nil, it removes duplicates of | 3583 | If `history-delete-duplicates' is non-nil, it removes duplicates of |
| 4057 | the new element from the history list it updates. | 3584 | the new element from the history list it updates. |
| 4058 | 3585 | ||
| 4059 | +++ | ||
| 4060 | *** New function `rassq-delete-all'. | 3586 | *** New function `rassq-delete-all'. |
| 4061 | 3587 | ||
| 4062 | (rassq-delete-all VALUE ALIST) deletes, from ALIST, each element whose | 3588 | (rassq-delete-all VALUE ALIST) deletes, from ALIST, each element whose |
| 4063 | CDR is `eq' to the specified value. | 3589 | CDR is `eq' to the specified value. |
| 4064 | 3590 | ||
| 4065 | +++ | ||
| 4066 | *** The function `number-sequence' makes a list of equally-separated numbers. | 3591 | *** The function `number-sequence' makes a list of equally-separated numbers. |
| 4067 | 3592 | ||
| 4068 | For instance, (number-sequence 4 9) returns (4 5 6 7 8 9). By | 3593 | For instance, (number-sequence 4 9) returns (4 5 6 7 8 9). By |
| @@ -4070,30 +3595,25 @@ default, the separation is 1, but you can specify a different | |||
| 4070 | separation as the third argument. (number-sequence 1.5 6 2) returns | 3595 | separation as the third argument. (number-sequence 1.5 6 2) returns |
| 4071 | (1.5 3.5 5.5). | 3596 | (1.5 3.5 5.5). |
| 4072 | 3597 | ||
| 4073 | +++ | ||
| 4074 | *** New variables `most-positive-fixnum' and `most-negative-fixnum'. | 3598 | *** New variables `most-positive-fixnum' and `most-negative-fixnum'. |
| 4075 | 3599 | ||
| 4076 | They hold the largest and smallest possible integer values. | 3600 | They hold the largest and smallest possible integer values. |
| 4077 | 3601 | ||
| 4078 | +++ | ||
| 4079 | *** Minor change in the function `format'. | 3602 | *** Minor change in the function `format'. |
| 4080 | 3603 | ||
| 4081 | Some flags that were accepted but not implemented (such as "*") are no | 3604 | Some flags that were accepted but not implemented (such as "*") are no |
| 4082 | longer accepted. | 3605 | longer accepted. |
| 4083 | 3606 | ||
| 4084 | +++ | ||
| 4085 | *** Functions `get' and `plist-get' no longer give errors for bad plists. | 3607 | *** Functions `get' and `plist-get' no longer give errors for bad plists. |
| 4086 | 3608 | ||
| 4087 | They return nil for a malformed property list or if the list is | 3609 | They return nil for a malformed property list or if the list is |
| 4088 | cyclic. | 3610 | cyclic. |
| 4089 | 3611 | ||
| 4090 | +++ | ||
| 4091 | *** New functions `lax-plist-get' and `lax-plist-put'. | 3612 | *** New functions `lax-plist-get' and `lax-plist-put'. |
| 4092 | 3613 | ||
| 4093 | They are like `plist-get' and `plist-put', except that they compare | 3614 | They are like `plist-get' and `plist-put', except that they compare |
| 4094 | the property name using `equal' rather than `eq'. | 3615 | the property name using `equal' rather than `eq'. |
| 4095 | 3616 | ||
| 4096 | +++ | ||
| 4097 | *** New variable `print-continuous-numbering'. | 3617 | *** New variable `print-continuous-numbering'. |
| 4098 | 3618 | ||
| 4099 | When this is non-nil, successive calls to print functions use a single | 3619 | When this is non-nil, successive calls to print functions use a single |
| @@ -4103,21 +3623,18 @@ relevant when `print-circle' is non-nil. | |||
| 4103 | When you bind `print-continuous-numbering' to t, you should | 3623 | When you bind `print-continuous-numbering' to t, you should |
| 4104 | also bind `print-number-table' to nil. | 3624 | also bind `print-number-table' to nil. |
| 4105 | 3625 | ||
| 4106 | +++ | ||
| 4107 | *** New function `macroexpand-all' expands all macros in a form. | 3626 | *** New function `macroexpand-all' expands all macros in a form. |
| 4108 | 3627 | ||
| 4109 | It is similar to the Common-Lisp function of the same name. | 3628 | It is similar to the Common-Lisp function of the same name. |
| 4110 | One difference is that it guarantees to return the original argument | 3629 | One difference is that it guarantees to return the original argument |
| 4111 | if no expansion is done, which can be tested using `eq'. | 3630 | if no expansion is done, which can be tested using `eq'. |
| 4112 | 3631 | ||
| 4113 | +++ | ||
| 4114 | *** The function `atan' now accepts an optional second argument. | 3632 | *** The function `atan' now accepts an optional second argument. |
| 4115 | 3633 | ||
| 4116 | When called with 2 arguments, as in `(atan Y X)', `atan' returns the | 3634 | When called with 2 arguments, as in `(atan Y X)', `atan' returns the |
| 4117 | angle in radians between the vector [X, Y] and the X axis. (This is | 3635 | angle in radians between the vector [X, Y] and the X axis. (This is |
| 4118 | equivalent to the standard C library function `atan2'.) | 3636 | equivalent to the standard C library function `atan2'.) |
| 4119 | 3637 | ||
| 4120 | +++ | ||
| 4121 | *** A function or macro's doc string can now specify the calling pattern. | 3638 | *** A function or macro's doc string can now specify the calling pattern. |
| 4122 | 3639 | ||
| 4123 | You put this info in the doc string's last line. It should be | 3640 | You put this info in the doc string's last line. It should be |
| @@ -4125,7 +3642,6 @@ formatted so as to match the regexp "\n\n(fn .*)\\'". If you don't | |||
| 4125 | specify this explicitly, Emacs determines it from the actual argument | 3642 | specify this explicitly, Emacs determines it from the actual argument |
| 4126 | names. Usually that default is right, but not always. | 3643 | names. Usually that default is right, but not always. |
| 4127 | 3644 | ||
| 4128 | +++ | ||
| 4129 | *** New macro `with-local-quit' temporarily allows quitting. | 3645 | *** New macro `with-local-quit' temporarily allows quitting. |
| 4130 | 3646 | ||
| 4131 | A quit inside the body of `with-local-quit' is caught by the | 3647 | A quit inside the body of `with-local-quit' is caught by the |
| @@ -4135,55 +3651,45 @@ the code that has inhibited quitting exits. | |||
| 4135 | This is for use around potentially blocking or long-running code | 3651 | This is for use around potentially blocking or long-running code |
| 4136 | inside timer functions and `post-command-hook' functions. | 3652 | inside timer functions and `post-command-hook' functions. |
| 4137 | 3653 | ||
| 4138 | +++ | ||
| 4139 | *** New macro `define-obsolete-function-alias'. | 3654 | *** New macro `define-obsolete-function-alias'. |
| 4140 | 3655 | ||
| 4141 | This combines `defalias' and `make-obsolete'. | 3656 | This combines `defalias' and `make-obsolete'. |
| 4142 | 3657 | ||
| 4143 | +++ | ||
| 4144 | *** New macro `with-case-table' | 3658 | *** New macro `with-case-table' |
| 4145 | 3659 | ||
| 4146 | This executes the body with the case table temporarily set to a given | 3660 | This executes the body with the case table temporarily set to a given |
| 4147 | case table. | 3661 | case table. |
| 4148 | 3662 | ||
| 4149 | +++ | ||
| 4150 | *** New function `unsafep' determines whether a Lisp form is safe. | 3663 | *** New function `unsafep' determines whether a Lisp form is safe. |
| 4151 | 3664 | ||
| 4152 | It returns nil if the given Lisp form can't possibly do anything | 3665 | It returns nil if the given Lisp form can't possibly do anything |
| 4153 | dangerous; otherwise it returns a reason why the form might be unsafe | 3666 | dangerous; otherwise it returns a reason why the form might be unsafe |
| 4154 | (calls unknown function, alters global variable, etc.). | 3667 | (calls unknown function, alters global variable, etc.). |
| 4155 | 3668 | ||
| 4156 | +++ | ||
| 4157 | *** New macro `eval-at-startup' specifies expressions to | 3669 | *** New macro `eval-at-startup' specifies expressions to |
| 4158 | evaluate when Emacs starts up. If this is done after startup, | 3670 | evaluate when Emacs starts up. If this is done after startup, |
| 4159 | it evaluates those expressions immediately. | 3671 | it evaluates those expressions immediately. |
| 4160 | 3672 | ||
| 4161 | This is useful in packages that can be preloaded. | 3673 | This is useful in packages that can be preloaded. |
| 4162 | 3674 | ||
| 4163 | +++ | ||
| 4164 | *** `list-faces-display' takes an optional argument, REGEXP. | 3675 | *** `list-faces-display' takes an optional argument, REGEXP. |
| 4165 | 3676 | ||
| 4166 | If it is non-nil, the function lists only faces matching this regexp. | 3677 | If it is non-nil, the function lists only faces matching this regexp. |
| 4167 | 3678 | ||
| 4168 | +++ | ||
| 4169 | *** New functions `string-or-null-p' and `booleanp'. | 3679 | *** New functions `string-or-null-p' and `booleanp'. |
| 4170 | 3680 | ||
| 4171 | `string-or-null-p' returns non-nil iff OBJECT is a string or nil. | 3681 | `string-or-null-p' returns non-nil iff OBJECT is a string or nil. |
| 4172 | `booleanp' returns non-nil iff OBJECT is t or nil. | 3682 | `booleanp' returns non-nil iff OBJECT is t or nil. |
| 4173 | 3683 | ||
| 4174 | +++ | ||
| 4175 | *** New hook `command-error-function'. | 3684 | *** New hook `command-error-function'. |
| 4176 | 3685 | ||
| 4177 | By setting this variable to a function, you can control | 3686 | By setting this variable to a function, you can control |
| 4178 | how the editor command loop shows the user an error message. | 3687 | how the editor command loop shows the user an error message. |
| 4179 | 3688 | ||
| 4180 | +++ | 3689 | *** `debug-on-entry' accepts primitive functions that are not special forms. |
| 4181 | *** `debug-on-entry' accepts primitive functions that are not special forms | ||
| 4182 | now. | ||
| 4183 | 3690 | ||
| 4184 | ** Lisp code indentation features: | 3691 | ** Lisp code indentation features: |
| 4185 | 3692 | ||
| 4186 | +++ | ||
| 4187 | *** The `defmacro' form can contain indentation and edebug declarations. | 3693 | *** The `defmacro' form can contain indentation and edebug declarations. |
| 4188 | 3694 | ||
| 4189 | These declarations specify how to indent the macro calls in Lisp mode | 3695 | These declarations specify how to indent the macro calls in Lisp mode |
| @@ -4202,12 +3708,10 @@ possible declaration specifiers are: | |||
| 4202 | equivalent to writing a `def-edebug-spec' for the macro, | 3708 | equivalent to writing a `def-edebug-spec' for the macro, |
| 4203 | but this is cleaner.) | 3709 | but this is cleaner.) |
| 4204 | 3710 | ||
| 4205 | --- | ||
| 4206 | *** cl-indent now allows customization of Indentation of backquoted forms. | 3711 | *** cl-indent now allows customization of Indentation of backquoted forms. |
| 4207 | 3712 | ||
| 4208 | See the new user option `lisp-backquote-indentation'. | 3713 | See the new user option `lisp-backquote-indentation'. |
| 4209 | 3714 | ||
| 4210 | --- | ||
| 4211 | *** cl-indent now handles indentation of simple and extended `loop' forms. | 3715 | *** cl-indent now handles indentation of simple and extended `loop' forms. |
| 4212 | 3716 | ||
| 4213 | The new user options `lisp-loop-keyword-indentation', | 3717 | The new user options `lisp-loop-keyword-indentation', |
| @@ -4215,7 +3719,6 @@ The new user options `lisp-loop-keyword-indentation', | |||
| 4215 | be used to customize the indentation of keywords and forms in loop | 3719 | be used to customize the indentation of keywords and forms in loop |
| 4216 | forms. | 3720 | forms. |
| 4217 | 3721 | ||
| 4218 | +++ | ||
| 4219 | ** Variable aliases: | 3722 | ** Variable aliases: |
| 4220 | 3723 | ||
| 4221 | *** New function: defvaralias ALIAS-VAR BASE-VAR [DOCSTRING] | 3724 | *** New function: defvaralias ALIAS-VAR BASE-VAR [DOCSTRING] |
| @@ -4237,64 +3740,52 @@ defined as an alias, the function returns VARIABLE. | |||
| 4237 | It might be noteworthy that variables aliases work for all kinds of | 3740 | It might be noteworthy that variables aliases work for all kinds of |
| 4238 | variables, including buffer-local and frame-local variables. | 3741 | variables, including buffer-local and frame-local variables. |
| 4239 | 3742 | ||
| 4240 | +++ | ||
| 4241 | *** The macro `define-obsolete-variable-alias' combines `defvaralias' and | 3743 | *** The macro `define-obsolete-variable-alias' combines `defvaralias' and |
| 4242 | `make-obsolete-variable'. | 3744 | `make-obsolete-variable'. |
| 4243 | 3745 | ||
| 4244 | ** defcustom changes: | 3746 | ** defcustom changes: |
| 4245 | 3747 | ||
| 4246 | +++ | ||
| 4247 | *** The package-version keyword has been added to provide | 3748 | *** The package-version keyword has been added to provide |
| 4248 | `customize-changed-options' functionality to packages in the future. | 3749 | `customize-changed-options' functionality to packages in the future. |
| 4249 | Developers who make use of this keyword must also update the new | 3750 | Developers who make use of this keyword must also update the new |
| 4250 | variable `customize-package-emacs-version-alist'. | 3751 | variable `customize-package-emacs-version-alist'. |
| 4251 | 3752 | ||
| 4252 | +++ | ||
| 4253 | *** The new customization type `float' requires a floating point number. | 3753 | *** The new customization type `float' requires a floating point number. |
| 4254 | 3754 | ||
| 4255 | ** String changes: | 3755 | ** String changes: |
| 4256 | 3756 | ||
| 4257 | +++ | ||
| 4258 | *** The escape sequence \s is now interpreted as a SPACE character. | 3757 | *** The escape sequence \s is now interpreted as a SPACE character. |
| 4259 | 3758 | ||
| 4260 | Exception: In a character constant, if it is followed by a `-' in a | 3759 | Exception: In a character constant, if it is followed by a `-' in a |
| 4261 | character constant (e.g. ?\s-A), it is still interpreted as the super | 3760 | character constant (e.g. ?\s-A), it is still interpreted as the super |
| 4262 | modifier. In strings, \s is always interpreted as a space. | 3761 | modifier. In strings, \s is always interpreted as a space. |
| 4263 | 3762 | ||
| 4264 | +++ | ||
| 4265 | *** A hex escape in a string constant forces the string to be multibyte. | 3763 | *** A hex escape in a string constant forces the string to be multibyte. |
| 4266 | 3764 | ||
| 4267 | +++ | ||
| 4268 | *** An octal escape in a string constant forces the string to be unibyte. | 3765 | *** An octal escape in a string constant forces the string to be unibyte. |
| 4269 | 3766 | ||
| 4270 | +++ | ||
| 4271 | *** `split-string' now includes null substrings in the returned list if | 3767 | *** `split-string' now includes null substrings in the returned list if |
| 4272 | the optional argument SEPARATORS is non-nil and there are matches for | 3768 | the optional argument SEPARATORS is non-nil and there are matches for |
| 4273 | SEPARATORS at the beginning or end of the string. If SEPARATORS is | 3769 | SEPARATORS at the beginning or end of the string. If SEPARATORS is |
| 4274 | nil, or if the new optional third argument OMIT-NULLS is non-nil, all | 3770 | nil, or if the new optional third argument OMIT-NULLS is non-nil, all |
| 4275 | empty matches are omitted from the returned list. | 3771 | empty matches are omitted from the returned list. |
| 4276 | 3772 | ||
| 4277 | +++ | ||
| 4278 | *** New function `string-to-multibyte' converts a unibyte string to a | 3773 | *** New function `string-to-multibyte' converts a unibyte string to a |
| 4279 | multibyte string with the same individual character codes. | 3774 | multibyte string with the same individual character codes. |
| 4280 | 3775 | ||
| 4281 | +++ | ||
| 4282 | *** New function `substring-no-properties' returns a substring without | 3776 | *** New function `substring-no-properties' returns a substring without |
| 4283 | text properties. | 3777 | text properties. |
| 4284 | 3778 | ||
| 4285 | +++ | ||
| 4286 | *** The new function `assoc-string' replaces `assoc-ignore-case' and | 3779 | *** The new function `assoc-string' replaces `assoc-ignore-case' and |
| 4287 | `assoc-ignore-representation', which are still available, but have | 3780 | `assoc-ignore-representation', which are still available, but have |
| 4288 | been declared obsolete. | 3781 | been declared obsolete. |
| 4289 | 3782 | ||
| 4290 | +++ | ||
| 4291 | *** New syntax: \uXXXX and \UXXXXXXXX specify Unicode code points in hex. | 3783 | *** New syntax: \uXXXX and \UXXXXXXXX specify Unicode code points in hex. |
| 4292 | Use "\u0428" to specify a string consisting of CYRILLIC CAPITAL LETTER SHA, | 3784 | Use "\u0428" to specify a string consisting of CYRILLIC CAPITAL LETTER SHA, |
| 4293 | or "\U0001D6E2" to specify one consisting of MATHEMATICAL ITALIC CAPITAL | 3785 | or "\U0001D6E2" to specify one consisting of MATHEMATICAL ITALIC CAPITAL |
| 4294 | ALPHA (the latter is greater than #xFFFF and thus needs the longer | 3786 | ALPHA (the latter is greater than #xFFFF and thus needs the longer |
| 4295 | syntax). Also available for characters. | 3787 | syntax). Also available for characters. |
| 4296 | 3788 | ||
| 4297 | +++ | ||
| 4298 | ** Displaying warnings to the user. | 3789 | ** Displaying warnings to the user. |
| 4299 | 3790 | ||
| 4300 | See the functions `warn' and `display-warning', or the Lisp Manual. | 3791 | See the functions `warn' and `display-warning', or the Lisp Manual. |
| @@ -4302,7 +3793,6 @@ If you want to be sure the warning will not be overlooked, this | |||
| 4302 | facility is much better than using `message', since it displays | 3793 | facility is much better than using `message', since it displays |
| 4303 | warnings in a separate window. | 3794 | warnings in a separate window. |
| 4304 | 3795 | ||
| 4305 | +++ | ||
| 4306 | ** Progress reporters. | 3796 | ** Progress reporters. |
| 4307 | 3797 | ||
| 4308 | These provide a simple and uniform way for commands to present | 3798 | These provide a simple and uniform way for commands to present |
| @@ -4314,85 +3804,70 @@ See the new functions `make-progress-reporter', | |||
| 4314 | 3804 | ||
| 4315 | ** Buffer positions: | 3805 | ** Buffer positions: |
| 4316 | 3806 | ||
| 4317 | +++ | ||
| 4318 | *** Function `compute-motion' now calculates the usable window | 3807 | *** Function `compute-motion' now calculates the usable window |
| 4319 | width if the WIDTH argument is nil. If the TOPOS argument is nil, | 3808 | width if the WIDTH argument is nil. If the TOPOS argument is nil, |
| 4320 | the usable window height and width is used. | 3809 | the usable window height and width is used. |
| 4321 | 3810 | ||
| 4322 | +++ | ||
| 4323 | *** The `line-move', `scroll-up', and `scroll-down' functions will now | 3811 | *** The `line-move', `scroll-up', and `scroll-down' functions will now |
| 4324 | modify the window vscroll to scroll through display rows that are | 3812 | modify the window vscroll to scroll through display rows that are |
| 4325 | taller that the height of the window, for example in the presence of | 3813 | taller that the height of the window, for example in the presence of |
| 4326 | large images. To disable this feature, bind the new variable | 3814 | large images. To disable this feature, bind the new variable |
| 4327 | `auto-window-vscroll' to nil. | 3815 | `auto-window-vscroll' to nil. |
| 4328 | 3816 | ||
| 4329 | +++ | ||
| 4330 | *** The argument to `forward-word', `backward-word' is optional. | 3817 | *** The argument to `forward-word', `backward-word' is optional. |
| 4331 | 3818 | ||
| 4332 | It defaults to 1. | 3819 | It defaults to 1. |
| 4333 | 3820 | ||
| 4334 | +++ | ||
| 4335 | *** Argument to `forward-to-indentation' and `backward-to-indentation' is optional. | 3821 | *** Argument to `forward-to-indentation' and `backward-to-indentation' is optional. |
| 4336 | 3822 | ||
| 4337 | It defaults to 1. | 3823 | It defaults to 1. |
| 4338 | 3824 | ||
| 4339 | +++ | ||
| 4340 | *** New function `mouse-on-link-p' tests if a position is in a clickable link. | 3825 | *** New function `mouse-on-link-p' tests if a position is in a clickable link. |
| 4341 | 3826 | ||
| 4342 | This is the function used by the new `mouse-1-click-follows-link' | 3827 | This is the function used by the new `mouse-1-click-follows-link' |
| 4343 | functionality. | 3828 | functionality. |
| 4344 | 3829 | ||
| 4345 | +++ | ||
| 4346 | *** New function `line-number-at-pos' returns the line number of a position. | 3830 | *** New function `line-number-at-pos' returns the line number of a position. |
| 4347 | 3831 | ||
| 4348 | It an optional buffer position argument that defaults to point. | 3832 | It an optional buffer position argument that defaults to point. |
| 4349 | 3833 | ||
| 4350 | +++ | ||
| 4351 | *** `field-beginning' and `field-end' take new optional argument, LIMIT. | 3834 | *** `field-beginning' and `field-end' take new optional argument, LIMIT. |
| 4352 | 3835 | ||
| 4353 | This argument tells them not to search beyond LIMIT. Instead they | 3836 | This argument tells them not to search beyond LIMIT. Instead they |
| 4354 | give up and return LIMIT. | 3837 | give up and return LIMIT. |
| 4355 | 3838 | ||
| 4356 | +++ | ||
| 4357 | *** Function `pos-visible-in-window-p' now returns the pixel coordinates | 3839 | *** Function `pos-visible-in-window-p' now returns the pixel coordinates |
| 4358 | and partial visibility state of the corresponding row, if the PARTIALLY | 3840 | and partial visibility state of the corresponding row, if the PARTIALLY |
| 4359 | arg is non-nil. | 3841 | arg is non-nil. |
| 4360 | 3842 | ||
| 4361 | +++ | ||
| 4362 | *** New function `window-line-height' is an efficient way to get | 3843 | *** New function `window-line-height' is an efficient way to get |
| 4363 | information about a specific text line in a window provided that the | 3844 | information about a specific text line in a window provided that the |
| 4364 | window's display is up-to-date. | 3845 | window's display is up-to-date. |
| 4365 | 3846 | ||
| 4366 | +++ | ||
| 4367 | *** New functions `posn-at-point' and `posn-at-x-y' return | 3847 | *** New functions `posn-at-point' and `posn-at-x-y' return |
| 4368 | click-event-style position information for a given visible buffer | 3848 | click-event-style position information for a given visible buffer |
| 4369 | position or for a given window pixel coordinate. | 3849 | position or for a given window pixel coordinate. |
| 4370 | 3850 | ||
| 4371 | ** Text modification: | 3851 | ** Text modification: |
| 4372 | 3852 | ||
| 4373 | +++ | ||
| 4374 | *** The new function `buffer-chars-modified-tick' returns a buffer's | 3853 | *** The new function `buffer-chars-modified-tick' returns a buffer's |
| 4375 | tick counter for changes to characters. Each time text in that buffer | 3854 | tick counter for changes to characters. Each time text in that buffer |
| 4376 | is inserted or deleted, the character-change counter is updated to the | 3855 | is inserted or deleted, the character-change counter is updated to the |
| 4377 | tick counter (`buffer-modified-tick'). Text property changes leave it | 3856 | tick counter (`buffer-modified-tick'). Text property changes leave it |
| 4378 | unchanged. | 3857 | unchanged. |
| 4379 | 3858 | ||
| 4380 | +++ | ||
| 4381 | *** The new function `insert-for-yank' normally works like `insert', but | 3859 | *** The new function `insert-for-yank' normally works like `insert', but |
| 4382 | removes the text properties in the `yank-excluded-properties' list | 3860 | removes the text properties in the `yank-excluded-properties' list |
| 4383 | and handles the `yank-handler' text property. | 3861 | and handles the `yank-handler' text property. |
| 4384 | 3862 | ||
| 4385 | +++ | ||
| 4386 | *** The new function `insert-buffer-substring-as-yank' is like | 3863 | *** The new function `insert-buffer-substring-as-yank' is like |
| 4387 | `insert-for-yank' except that it gets the text from another buffer as | 3864 | `insert-for-yank' except that it gets the text from another buffer as |
| 4388 | in `insert-buffer-substring'. | 3865 | in `insert-buffer-substring'. |
| 4389 | 3866 | ||
| 4390 | +++ | ||
| 4391 | *** The new function `insert-buffer-substring-no-properties' is like | 3867 | *** The new function `insert-buffer-substring-no-properties' is like |
| 4392 | `insert-buffer-substring', but removes all text properties from the | 3868 | `insert-buffer-substring', but removes all text properties from the |
| 4393 | inserted substring. | 3869 | inserted substring. |
| 4394 | 3870 | ||
| 4395 | +++ | ||
| 4396 | *** The new function `filter-buffer-substring' extracts a buffer | 3871 | *** The new function `filter-buffer-substring' extracts a buffer |
| 4397 | substring, passes it through a set of filter functions, and returns | 3872 | substring, passes it through a set of filter functions, and returns |
| 4398 | the filtered substring. Use it instead of `buffer-substring' or | 3873 | the filtered substring. Use it instead of `buffer-substring' or |
| @@ -4404,33 +3879,27 @@ The list of filter function is specified by the new variable | |||
| 4404 | `buffer-substring-filters' to remove soft newlines from the copied | 3879 | `buffer-substring-filters' to remove soft newlines from the copied |
| 4405 | text. | 3880 | text. |
| 4406 | 3881 | ||
| 4407 | +++ | ||
| 4408 | *** Function `translate-region' accepts also a char-table as TABLE | 3882 | *** Function `translate-region' accepts also a char-table as TABLE |
| 4409 | argument. | 3883 | argument. |
| 4410 | 3884 | ||
| 4411 | +++ | ||
| 4412 | *** The new translation table `translation-table-for-input' | 3885 | *** The new translation table `translation-table-for-input' |
| 4413 | is used for customizing self-insertion. The character to | 3886 | is used for customizing self-insertion. The character to |
| 4414 | be inserted is translated through it. | 3887 | be inserted is translated through it. |
| 4415 | 3888 | ||
| 4416 | --- | ||
| 4417 | *** Text clones. | 3889 | *** Text clones. |
| 4418 | 3890 | ||
| 4419 | The new function `text-clone-create'. Text clones are chunks of text | 3891 | The new function `text-clone-create'. Text clones are chunks of text |
| 4420 | that are kept identical by transparently propagating changes from one | 3892 | that are kept identical by transparently propagating changes from one |
| 4421 | clone to the other. | 3893 | clone to the other. |
| 4422 | 3894 | ||
| 4423 | --- | ||
| 4424 | *** The function `insert-string' is now obsolete. | 3895 | *** The function `insert-string' is now obsolete. |
| 4425 | 3896 | ||
| 4426 | ** Filling changes. | 3897 | ** Filling changes. |
| 4427 | 3898 | ||
| 4428 | +++ | ||
| 4429 | *** In determining an adaptive fill prefix, Emacs now tries the function in | 3899 | *** In determining an adaptive fill prefix, Emacs now tries the function in |
| 4430 | `adaptive-fill-function' _before_ matching the buffer line against | 3900 | `adaptive-fill-function' _before_ matching the buffer line against |
| 4431 | `adaptive-fill-regexp' rather than _after_ it. | 3901 | `adaptive-fill-regexp' rather than _after_ it. |
| 4432 | 3902 | ||
| 4433 | +++ | ||
| 4434 | ** Atomic change groups. | 3903 | ** Atomic change groups. |
| 4435 | 3904 | ||
| 4436 | To perform some changes in the current buffer "atomically" so that | 3905 | To perform some changes in the current buffer "atomically" so that |
| @@ -4490,21 +3959,17 @@ finished. | |||
| 4490 | 3959 | ||
| 4491 | ** Buffer-related changes: | 3960 | ** Buffer-related changes: |
| 4492 | 3961 | ||
| 4493 | --- | ||
| 4494 | *** `list-buffers-noselect' now takes an additional argument, BUFFER-LIST. | 3962 | *** `list-buffers-noselect' now takes an additional argument, BUFFER-LIST. |
| 4495 | 3963 | ||
| 4496 | If it is non-nil, it specifies which buffers to list. | 3964 | If it is non-nil, it specifies which buffers to list. |
| 4497 | 3965 | ||
| 4498 | +++ | ||
| 4499 | *** `kill-buffer-hook' is now a permanent local. | 3966 | *** `kill-buffer-hook' is now a permanent local. |
| 4500 | 3967 | ||
| 4501 | +++ | ||
| 4502 | *** The new function `buffer-local-value' returns the buffer-local | 3968 | *** The new function `buffer-local-value' returns the buffer-local |
| 4503 | binding of VARIABLE (a symbol) in buffer BUFFER. If VARIABLE does not | 3969 | binding of VARIABLE (a symbol) in buffer BUFFER. If VARIABLE does not |
| 4504 | have a buffer-local binding in buffer BUFFER, it returns the default | 3970 | have a buffer-local binding in buffer BUFFER, it returns the default |
| 4505 | value of VARIABLE instead. | 3971 | value of VARIABLE instead. |
| 4506 | 3972 | ||
| 4507 | --- | ||
| 4508 | *** The function `frame-or-buffer-changed-p' now lets you maintain | 3973 | *** The function `frame-or-buffer-changed-p' now lets you maintain |
| 4509 | various status records in parallel. | 3974 | various status records in parallel. |
| 4510 | 3975 | ||
| @@ -4524,7 +3989,6 @@ If the variable is itself nil, then `frame-or-buffer-changed-p' uses, | |||
| 4524 | for compatibility, an internal variable which exists only for this | 3989 | for compatibility, an internal variable which exists only for this |
| 4525 | purpose. | 3990 | purpose. |
| 4526 | 3991 | ||
| 4527 | +++ | ||
| 4528 | *** The function `read-buffer' follows the convention for reading from | 3992 | *** The function `read-buffer' follows the convention for reading from |
| 4529 | the minibuffer with a default value: if DEF is non-nil, the minibuffer | 3993 | the minibuffer with a default value: if DEF is non-nil, the minibuffer |
| 4530 | prompt provided in PROMPT is edited to show the default value provided | 3994 | prompt provided in PROMPT is edited to show the default value provided |
| @@ -4532,12 +3996,10 @@ in DEF before the terminal colon and space. | |||
| 4532 | 3996 | ||
| 4533 | ** Searching and matching changes: | 3997 | ** Searching and matching changes: |
| 4534 | 3998 | ||
| 4535 | +++ | ||
| 4536 | *** New function `looking-back' checks whether a regular expression matches | 3999 | *** New function `looking-back' checks whether a regular expression matches |
| 4537 | the text before point. Specifying the LIMIT argument bounds how far | 4000 | the text before point. Specifying the LIMIT argument bounds how far |
| 4538 | back the match can start; this is a way to keep it from taking too long. | 4001 | back the match can start; this is a way to keep it from taking too long. |
| 4539 | 4002 | ||
| 4540 | +++ | ||
| 4541 | *** The new variable `search-spaces-regexp' controls how to search | 4003 | *** The new variable `search-spaces-regexp' controls how to search |
| 4542 | for spaces in a regular expression. If it is non-nil, it should be a | 4004 | for spaces in a regular expression. If it is non-nil, it should be a |
| 4543 | regular expression, and any series of spaces stands for that regular | 4005 | regular expression, and any series of spaces stands for that regular |
| @@ -4546,36 +4008,29 @@ expression. If it is nil, spaces stand for themselves. | |||
| 4546 | Spaces inside of constructs such as `[..]' and inside loops such as | 4008 | Spaces inside of constructs such as `[..]' and inside loops such as |
| 4547 | `*', `+', and `?' are never replaced with `search-spaces-regexp'. | 4009 | `*', `+', and `?' are never replaced with `search-spaces-regexp'. |
| 4548 | 4010 | ||
| 4549 | +++ | ||
| 4550 | *** New regular expression operators, `\_<' and `\_>'. | 4011 | *** New regular expression operators, `\_<' and `\_>'. |
| 4551 | 4012 | ||
| 4552 | These match the beginning and end of a symbol. A symbol is a | 4013 | These match the beginning and end of a symbol. A symbol is a |
| 4553 | non-empty sequence of either word or symbol constituent characters, as | 4014 | non-empty sequence of either word or symbol constituent characters, as |
| 4554 | specified by the syntax table. | 4015 | specified by the syntax table. |
| 4555 | 4016 | ||
| 4556 | --- | ||
| 4557 | *** rx.el has new corresponding `symbol-start' and `symbol-end' elements. | 4017 | *** rx.el has new corresponding `symbol-start' and `symbol-end' elements. |
| 4558 | 4018 | ||
| 4559 | +++ | ||
| 4560 | *** `skip-chars-forward' and `skip-chars-backward' now handle | 4019 | *** `skip-chars-forward' and `skip-chars-backward' now handle |
| 4561 | character classes such as `[:alpha:]', along with individual | 4020 | character classes such as `[:alpha:]', along with individual |
| 4562 | characters and ranges. | 4021 | characters and ranges. |
| 4563 | 4022 | ||
| 4564 | --- | ||
| 4565 | *** In `replace-match', the replacement text no longer inherits | 4023 | *** In `replace-match', the replacement text no longer inherits |
| 4566 | properties from surrounding text. | 4024 | properties from surrounding text. |
| 4567 | 4025 | ||
| 4568 | +++ | ||
| 4569 | *** The list returned by `(match-data t)' now has the buffer as a final | 4026 | *** The list returned by `(match-data t)' now has the buffer as a final |
| 4570 | element, if the last match was on a buffer. `set-match-data' | 4027 | element, if the last match was on a buffer. `set-match-data' |
| 4571 | accepts such a list for restoring the match state. | 4028 | accepts such a list for restoring the match state. |
| 4572 | 4029 | ||
| 4573 | +++ | ||
| 4574 | *** Functions `match-data' and `set-match-data' now have an optional | 4030 | *** Functions `match-data' and `set-match-data' now have an optional |
| 4575 | argument `reseat'. When non-nil, all markers in the match data list | 4031 | argument `reseat'. When non-nil, all markers in the match data list |
| 4576 | passed to these functions will be reseated to point to nowhere. | 4032 | passed to these functions will be reseated to point to nowhere. |
| 4577 | 4033 | ||
| 4578 | +++ | ||
| 4579 | *** The default value of `sentence-end' is now defined using the new | 4034 | *** The default value of `sentence-end' is now defined using the new |
| 4580 | variable `sentence-end-without-space', which contains such characters | 4035 | variable `sentence-end-without-space', which contains such characters |
| 4581 | that end a sentence without following spaces. | 4036 | that end a sentence without following spaces. |
| @@ -4588,7 +4043,6 @@ this function returns the regexp constructed from the variables | |||
| 4588 | 4043 | ||
| 4589 | ** Undo changes: | 4044 | ** Undo changes: |
| 4590 | 4045 | ||
| 4591 | +++ | ||
| 4592 | *** `buffer-undo-list' allows programmable elements. | 4046 | *** `buffer-undo-list' allows programmable elements. |
| 4593 | 4047 | ||
| 4594 | These elements have the form (apply FUNNAME . ARGS), where FUNNAME is | 4048 | These elements have the form (apply FUNNAME . ARGS), where FUNNAME is |
| @@ -4599,12 +4053,10 @@ These entries can also have the form (apply DELTA BEG END FUNNAME . ARGS) | |||
| 4599 | which indicates that the change which took place was limited to the | 4053 | which indicates that the change which took place was limited to the |
| 4600 | range BEG...END and increased the buffer size by DELTA. | 4054 | range BEG...END and increased the buffer size by DELTA. |
| 4601 | 4055 | ||
| 4602 | +++ | ||
| 4603 | *** If the buffer's undo list for the current command gets longer than | 4056 | *** If the buffer's undo list for the current command gets longer than |
| 4604 | `undo-outer-limit', garbage collection empties it. This is to prevent | 4057 | `undo-outer-limit', garbage collection empties it. This is to prevent |
| 4605 | it from using up the available memory and choking Emacs. | 4058 | it from using up the available memory and choking Emacs. |
| 4606 | 4059 | ||
| 4607 | +++ | ||
| 4608 | ** New `yank-handler' text property can be used to control how | 4060 | ** New `yank-handler' text property can be used to control how |
| 4609 | previously killed text on the kill ring is reinserted. | 4061 | previously killed text on the kill ring is reinserted. |
| 4610 | 4062 | ||
| @@ -4649,70 +4101,56 @@ string. The old behavior is available if you call | |||
| 4649 | 4101 | ||
| 4650 | ** Syntax table changes: | 4102 | ** Syntax table changes: |
| 4651 | 4103 | ||
| 4652 | +++ | ||
| 4653 | *** The macro `with-syntax-table' no longer copies the syntax table. | 4104 | *** The macro `with-syntax-table' no longer copies the syntax table. |
| 4654 | 4105 | ||
| 4655 | +++ | ||
| 4656 | *** The new function `syntax-after' returns the syntax code | 4106 | *** The new function `syntax-after' returns the syntax code |
| 4657 | of the character after a specified buffer position, taking account | 4107 | of the character after a specified buffer position, taking account |
| 4658 | of text properties as well as the character code. | 4108 | of text properties as well as the character code. |
| 4659 | 4109 | ||
| 4660 | +++ | ||
| 4661 | *** `syntax-class' extracts the class of a syntax code (as returned | 4110 | *** `syntax-class' extracts the class of a syntax code (as returned |
| 4662 | by `syntax-after'). | 4111 | by `syntax-after'). |
| 4663 | 4112 | ||
| 4664 | +++ | ||
| 4665 | *** The new function `syntax-ppss' provides an efficient way to find the | 4113 | *** The new function `syntax-ppss' provides an efficient way to find the |
| 4666 | current syntactic context at point. | 4114 | current syntactic context at point. |
| 4667 | 4115 | ||
| 4668 | ** File operation changes: | 4116 | ** File operation changes: |
| 4669 | 4117 | ||
| 4670 | +++ | ||
| 4671 | *** New vars `exec-suffixes' and `load-suffixes' used when | 4118 | *** New vars `exec-suffixes' and `load-suffixes' used when |
| 4672 | searching for an executable or an Emacs Lisp file. | 4119 | searching for an executable or an Emacs Lisp file. |
| 4673 | 4120 | ||
| 4674 | +++ | ||
| 4675 | *** The new primitive `set-file-times' sets a file's access and | 4121 | *** The new primitive `set-file-times' sets a file's access and |
| 4676 | modification times. Magic file name handlers can handle this | 4122 | modification times. Magic file name handlers can handle this |
| 4677 | operation. | 4123 | operation. |
| 4678 | 4124 | ||
| 4679 | +++ | ||
| 4680 | *** The new function `file-remote-p' tests a file name and returns | 4125 | *** The new function `file-remote-p' tests a file name and returns |
| 4681 | non-nil if it specifies a remote file (one that Emacs accesses using | 4126 | non-nil if it specifies a remote file (one that Emacs accesses using |
| 4682 | its own special methods and not directly through the file system). | 4127 | its own special methods and not directly through the file system). |
| 4683 | The value in that case is an identifier for the remote file system. | 4128 | The value in that case is an identifier for the remote file system. |
| 4684 | 4129 | ||
| 4685 | +++ | ||
| 4686 | *** `buffer-auto-save-file-format' is the new name for what was | 4130 | *** `buffer-auto-save-file-format' is the new name for what was |
| 4687 | formerly called `auto-save-file-format'. It is now a permanent local. | 4131 | formerly called `auto-save-file-format'. It is now a permanent local. |
| 4688 | 4132 | ||
| 4689 | +++ | ||
| 4690 | *** Functions `file-name-sans-extension' and `file-name-extension' now | 4133 | *** Functions `file-name-sans-extension' and `file-name-extension' now |
| 4691 | ignore the leading dots in file names, so that file names such as | 4134 | ignore the leading dots in file names, so that file names such as |
| 4692 | `.emacs' are treated as extensionless. | 4135 | `.emacs' are treated as extensionless. |
| 4693 | 4136 | ||
| 4694 | +++ | ||
| 4695 | *** `visited-file-modtime' and `calendar-time-from-absolute' now return | 4137 | *** `visited-file-modtime' and `calendar-time-from-absolute' now return |
| 4696 | a list of two integers, instead of a cons. | 4138 | a list of two integers, instead of a cons. |
| 4697 | 4139 | ||
| 4698 | +++ | ||
| 4699 | *** `file-chase-links' now takes an optional second argument LIMIT which | 4140 | *** `file-chase-links' now takes an optional second argument LIMIT which |
| 4700 | specifies the maximum number of links to chase through. If after that | 4141 | specifies the maximum number of links to chase through. If after that |
| 4701 | many iterations the file name obtained is still a symbolic link, | 4142 | many iterations the file name obtained is still a symbolic link, |
| 4702 | `file-chase-links' returns it anyway. | 4143 | `file-chase-links' returns it anyway. |
| 4703 | 4144 | ||
| 4704 | +++ | ||
| 4705 | *** The new hook `before-save-hook' is invoked by `basic-save-buffer' | 4145 | *** The new hook `before-save-hook' is invoked by `basic-save-buffer' |
| 4706 | before saving buffers. This allows packages to perform various final | 4146 | before saving buffers. This allows packages to perform various final |
| 4707 | tasks. For example, it can be used by the copyright package to make | 4147 | tasks. For example, it can be used by the copyright package to make |
| 4708 | sure saved files have the current year in any copyright headers. | 4148 | sure saved files have the current year in any copyright headers. |
| 4709 | 4149 | ||
| 4710 | +++ | ||
| 4711 | *** If `buffer-save-without-query' is non-nil in some buffer, | 4150 | *** If `buffer-save-without-query' is non-nil in some buffer, |
| 4712 | `save-some-buffers' will always save that buffer without asking (if | 4151 | `save-some-buffers' will always save that buffer without asking (if |
| 4713 | it's modified). | 4152 | it's modified). |
| 4714 | 4153 | ||
| 4715 | +++ | ||
| 4716 | *** New function `locate-file' searches for a file in a list of directories. | 4154 | *** New function `locate-file' searches for a file in a list of directories. |
| 4717 | `locate-file' accepts a name of a file to search (a string), and two | 4155 | `locate-file' accepts a name of a file to search (a string), and two |
| 4718 | lists: a list of directories to search in and a list of suffixes to | 4156 | lists: a list of directories to search in and a list of suffixes to |
| @@ -4725,7 +4163,6 @@ One advantage of using this function is that the list of suffixes in | |||
| 4725 | `exec-suffixes' is OS-dependant, so this function will find | 4163 | `exec-suffixes' is OS-dependant, so this function will find |
| 4726 | executables without polluting Lisp code with OS dependencies. | 4164 | executables without polluting Lisp code with OS dependencies. |
| 4727 | 4165 | ||
| 4728 | --- | ||
| 4729 | *** The precedence of file name handlers has been changed. | 4166 | *** The precedence of file name handlers has been changed. |
| 4730 | 4167 | ||
| 4731 | Instead of choosing the first handler that matches, | 4168 | Instead of choosing the first handler that matches, |
| @@ -4734,7 +4171,6 @@ that matches nearest the end of the file name. More precisely, the | |||
| 4734 | handler whose (match-beginning 0) is the largest is chosen. In case | 4171 | handler whose (match-beginning 0) is the largest is chosen. In case |
| 4735 | of ties, the old "first matched" rule applies. | 4172 | of ties, the old "first matched" rule applies. |
| 4736 | 4173 | ||
| 4737 | +++ | ||
| 4738 | *** A file name handler can declare which operations it handles. | 4174 | *** A file name handler can declare which operations it handles. |
| 4739 | 4175 | ||
| 4740 | You do this by putting an `operation' property on the handler name | 4176 | You do this by putting an `operation' property on the handler name |
| @@ -4745,81 +4181,66 @@ operations. | |||
| 4745 | This is useful for autoloaded handlers, to prevent them from being | 4181 | This is useful for autoloaded handlers, to prevent them from being |
| 4746 | autoloaded when not really necessary. | 4182 | autoloaded when not really necessary. |
| 4747 | 4183 | ||
| 4748 | +++ | ||
| 4749 | *** The function `make-auto-save-file-name' is now handled by file | 4184 | *** The function `make-auto-save-file-name' is now handled by file |
| 4750 | name handlers. This will be exploited for remote files mainly. | 4185 | name handlers. This will be exploited for remote files mainly. |
| 4751 | 4186 | ||
| 4752 | +++ | ||
| 4753 | *** The function `file-name-completion' accepts an optional argument | 4187 | *** The function `file-name-completion' accepts an optional argument |
| 4754 | PREDICATE, and rejects completion candidates that don't satisfy PREDICATE. | 4188 | PREDICATE, and rejects completion candidates that don't satisfy PREDICATE. |
| 4755 | 4189 | ||
| 4756 | ** Input changes: | 4190 | ** Input changes: |
| 4757 | 4191 | ||
| 4758 | +++ | ||
| 4759 | *** The functions `read-event', `read-char', and `read-char-exclusive' | 4192 | *** The functions `read-event', `read-char', and `read-char-exclusive' |
| 4760 | have a new optional argument SECONDS. If non-nil, this specifies a | 4193 | have a new optional argument SECONDS. If non-nil, this specifies a |
| 4761 | maximum time to wait for input, in seconds. If no input arrives after | 4194 | maximum time to wait for input, in seconds. If no input arrives after |
| 4762 | this time elapses, the functions stop waiting and return nil. | 4195 | this time elapses, the functions stop waiting and return nil. |
| 4763 | 4196 | ||
| 4764 | +++ | ||
| 4765 | *** An interactive specification can now use the code letter `U' to get | 4197 | *** An interactive specification can now use the code letter `U' to get |
| 4766 | the up-event that was discarded in case the last key sequence read for a | 4198 | the up-event that was discarded in case the last key sequence read for a |
| 4767 | previous `k' or `K' argument was a down-event; otherwise nil is used. | 4199 | previous `k' or `K' argument was a down-event; otherwise nil is used. |
| 4768 | 4200 | ||
| 4769 | +++ | ||
| 4770 | *** The new interactive-specification `G' reads a file name | 4201 | *** The new interactive-specification `G' reads a file name |
| 4771 | much like `F', but if the input is a directory name (even defaulted), | 4202 | much like `F', but if the input is a directory name (even defaulted), |
| 4772 | it returns just the directory name. | 4203 | it returns just the directory name. |
| 4773 | 4204 | ||
| 4774 | --- | ||
| 4775 | *** Functions `y-or-n-p', `read-char', `read-key-sequence' and the like, that | 4205 | *** Functions `y-or-n-p', `read-char', `read-key-sequence' and the like, that |
| 4776 | display a prompt but don't use the minibuffer, now display the prompt | 4206 | display a prompt but don't use the minibuffer, now display the prompt |
| 4777 | using the text properties (esp. the face) of the prompt string. | 4207 | using the text properties (esp. the face) of the prompt string. |
| 4778 | 4208 | ||
| 4779 | +++ | ||
| 4780 | *** (while-no-input BODY...) runs BODY, but only so long as no input | 4209 | *** (while-no-input BODY...) runs BODY, but only so long as no input |
| 4781 | arrives. If the user types or clicks anything, BODY stops as if a | 4210 | arrives. If the user types or clicks anything, BODY stops as if a |
| 4782 | quit had occurred. `while-no-input' returns the value of BODY, if BODY | 4211 | quit had occurred. `while-no-input' returns the value of BODY, if BODY |
| 4783 | finishes. It returns nil if BODY was aborted by a quit, and t if | 4212 | finishes. It returns nil if BODY was aborted by a quit, and t if |
| 4784 | BODY was aborted by arrival of input. | 4213 | BODY was aborted by arrival of input. |
| 4785 | 4214 | ||
| 4786 | +++ | ||
| 4787 | *** `recent-keys' now returns the last 300 keys. | 4215 | *** `recent-keys' now returns the last 300 keys. |
| 4788 | 4216 | ||
| 4789 | ** Minibuffer changes: | 4217 | ** Minibuffer changes: |
| 4790 | 4218 | ||
| 4791 | +++ | ||
| 4792 | *** The new function `minibufferp' returns non-nil if its optional | 4219 | *** The new function `minibufferp' returns non-nil if its optional |
| 4793 | buffer argument is a minibuffer. If the argument is omitted, it | 4220 | buffer argument is a minibuffer. If the argument is omitted, it |
| 4794 | defaults to the current buffer. | 4221 | defaults to the current buffer. |
| 4795 | 4222 | ||
| 4796 | +++ | ||
| 4797 | *** New function `minibuffer-selected-window' returns the window which | 4223 | *** New function `minibuffer-selected-window' returns the window which |
| 4798 | was selected when entering the minibuffer. | 4224 | was selected when entering the minibuffer. |
| 4799 | 4225 | ||
| 4800 | +++ | ||
| 4801 | *** The `read-file-name' function now takes an additional argument which | 4226 | *** The `read-file-name' function now takes an additional argument which |
| 4802 | specifies a predicate which the file name read must satisfy. The | 4227 | specifies a predicate which the file name read must satisfy. The |
| 4803 | new variable `read-file-name-predicate' contains the predicate argument | 4228 | new variable `read-file-name-predicate' contains the predicate argument |
| 4804 | while reading the file name from the minibuffer; the predicate in this | 4229 | while reading the file name from the minibuffer; the predicate in this |
| 4805 | variable is used by read-file-name-internal to filter the completion list. | 4230 | variable is used by read-file-name-internal to filter the completion list. |
| 4806 | 4231 | ||
| 4807 | --- | ||
| 4808 | *** The new variable `read-file-name-function' can be used by Lisp code | 4232 | *** The new variable `read-file-name-function' can be used by Lisp code |
| 4809 | to override the built-in `read-file-name' function. | 4233 | to override the built-in `read-file-name' function. |
| 4810 | 4234 | ||
| 4811 | +++ | ||
| 4812 | *** The new variable `read-file-name-completion-ignore-case' specifies | 4235 | *** The new variable `read-file-name-completion-ignore-case' specifies |
| 4813 | whether completion ignores case when reading a file name with the | 4236 | whether completion ignores case when reading a file name with the |
| 4814 | `read-file-name' function. | 4237 | `read-file-name' function. |
| 4815 | 4238 | ||
| 4816 | +++ | ||
| 4817 | *** The new function `read-directory-name' is for reading a directory name. | 4239 | *** The new function `read-directory-name' is for reading a directory name. |
| 4818 | 4240 | ||
| 4819 | It is like `read-file-name' except that the defaulting works better | 4241 | It is like `read-file-name' except that the defaulting works better |
| 4820 | for directories, and completion inside it shows only directories. | 4242 | for directories, and completion inside it shows only directories. |
| 4821 | 4243 | ||
| 4822 | +++ | ||
| 4823 | *** The new variable `history-add-new-input' specifies whether to add new | 4244 | *** The new variable `history-add-new-input' specifies whether to add new |
| 4824 | elements in history. If set to nil, minibuffer reading functions don't | 4245 | elements in history. If set to nil, minibuffer reading functions don't |
| 4825 | add new elements to the history list, so it is possible to do this | 4246 | add new elements to the history list, so it is possible to do this |
| @@ -4827,19 +4248,16 @@ afterwards by calling `add-to-history' explicitly. | |||
| 4827 | 4248 | ||
| 4828 | ** Completion changes: | 4249 | ** Completion changes: |
| 4829 | 4250 | ||
| 4830 | +++ | ||
| 4831 | *** The new function `minibuffer-completion-contents' returns the contents | 4251 | *** The new function `minibuffer-completion-contents' returns the contents |
| 4832 | of the minibuffer just before point. That is what completion commands | 4252 | of the minibuffer just before point. That is what completion commands |
| 4833 | operate on. | 4253 | operate on. |
| 4834 | 4254 | ||
| 4835 | +++ | ||
| 4836 | *** The functions `all-completions' and `try-completion' now accept lists | 4255 | *** The functions `all-completions' and `try-completion' now accept lists |
| 4837 | of strings as well as hash-tables additionally to alists, obarrays | 4256 | of strings as well as hash-tables additionally to alists, obarrays |
| 4838 | and functions. Furthermore, the function `test-completion' is now | 4257 | and functions. Furthermore, the function `test-completion' is now |
| 4839 | exported to Lisp. The keys in alists and hash tables can be either | 4258 | exported to Lisp. The keys in alists and hash tables can be either |
| 4840 | strings or symbols, which are automatically converted with to strings. | 4259 | strings or symbols, which are automatically converted with to strings. |
| 4841 | 4260 | ||
| 4842 | +++ | ||
| 4843 | *** The new macro `dynamic-completion-table' supports using functions | 4261 | *** The new macro `dynamic-completion-table' supports using functions |
| 4844 | as a dynamic completion table. | 4262 | as a dynamic completion table. |
| 4845 | 4263 | ||
| @@ -4852,7 +4270,6 @@ can ignore the value of its argument. If completion is performed in the | |||
| 4852 | minibuffer, FUN will be called in the buffer from which the minibuffer was | 4270 | minibuffer, FUN will be called in the buffer from which the minibuffer was |
| 4853 | entered. `dynamic-completion-table' then computes the completion. | 4271 | entered. `dynamic-completion-table' then computes the completion. |
| 4854 | 4272 | ||
| 4855 | +++ | ||
| 4856 | *** The new macro `lazy-completion-table' initializes a variable | 4273 | *** The new macro `lazy-completion-table' initializes a variable |
| 4857 | as a lazy completion table. | 4274 | as a lazy completion table. |
| 4858 | 4275 | ||
| @@ -4865,7 +4282,6 @@ If completion is requested in the minibuffer, FUN will be called in the buffer | |||
| 4865 | from which the minibuffer was entered. The return value of | 4282 | from which the minibuffer was entered. The return value of |
| 4866 | `lazy-completion-table' must be used to initialize the value of VAR. | 4283 | `lazy-completion-table' must be used to initialize the value of VAR. |
| 4867 | 4284 | ||
| 4868 | +++ | ||
| 4869 | ** Enhancements to keymaps. | 4285 | ** Enhancements to keymaps. |
| 4870 | 4286 | ||
| 4871 | *** New keymaps for typing file names | 4287 | *** New keymaps for typing file names |
| @@ -4984,12 +4400,10 @@ key-sequences, such as [(control a)]. | |||
| 4984 | 4400 | ||
| 4985 | ** Abbrev changes: | 4401 | ** Abbrev changes: |
| 4986 | 4402 | ||
| 4987 | +++ | ||
| 4988 | *** The new function `copy-abbrev-table' copies an abbrev table. | 4403 | *** The new function `copy-abbrev-table' copies an abbrev table. |
| 4989 | 4404 | ||
| 4990 | It returns a new abbrev table that is a copy of a given abbrev table. | 4405 | It returns a new abbrev table that is a copy of a given abbrev table. |
| 4991 | 4406 | ||
| 4992 | +++ | ||
| 4993 | *** `define-abbrev' now accepts an optional argument SYSTEM-FLAG. | 4407 | *** `define-abbrev' now accepts an optional argument SYSTEM-FLAG. |
| 4994 | 4408 | ||
| 4995 | If non-nil, this marks the abbrev as a "system" abbrev, which means | 4409 | If non-nil, this marks the abbrev as a "system" abbrev, which means |
| @@ -4997,7 +4411,6 @@ that it won't be stored in the user's abbrevs file if he saves the | |||
| 4997 | abbrevs. Major modes that predefine some abbrevs should always | 4411 | abbrevs. Major modes that predefine some abbrevs should always |
| 4998 | specify this flag. | 4412 | specify this flag. |
| 4999 | 4413 | ||
| 5000 | +++ | ||
| 5001 | ** Enhancements to process support | 4414 | ** Enhancements to process support |
| 5002 | 4415 | ||
| 5003 | *** Function `list-processes' now has an optional argument; if non-nil, | 4416 | *** Function `list-processes' now has an optional argument; if non-nil, |
| @@ -5064,7 +4477,6 @@ to multibyte by `string-to-multibyte' then inserted in the buffer. | |||
| 5064 | Previously, it was converted to multibyte by `string-as-multibyte', | 4477 | Previously, it was converted to multibyte by `string-as-multibyte', |
| 5065 | which was not compatible with the behavior of file reading. | 4478 | which was not compatible with the behavior of file reading. |
| 5066 | 4479 | ||
| 5067 | +++ | ||
| 5068 | ** Enhanced networking support. | 4480 | ** Enhanced networking support. |
| 5069 | 4481 | ||
| 5070 | *** The new `make-network-process' function makes network connections. | 4482 | *** The new `make-network-process' function makes network connections. |
| @@ -5136,13 +4548,11 @@ connection is closed by the remote peer has been changed to | |||
| 5136 | 4548 | ||
| 5137 | ** Using window objects: | 4549 | ** Using window objects: |
| 5138 | 4550 | ||
| 5139 | +++ | ||
| 5140 | *** New function `window-body-height'. | 4551 | *** New function `window-body-height'. |
| 5141 | 4552 | ||
| 5142 | This is like `window-height' but does not count the mode line or the | 4553 | This is like `window-height' but does not count the mode line or the |
| 5143 | header line. | 4554 | header line. |
| 5144 | 4555 | ||
| 5145 | +++ | ||
| 5146 | *** You can now make a window as short as one line. | 4556 | *** You can now make a window as short as one line. |
| 5147 | 4557 | ||
| 5148 | A window that is just one line tall does not display either a mode | 4558 | A window that is just one line tall does not display either a mode |
| @@ -5151,51 +4561,41 @@ line or a header line, even if the variables `mode-line-format' and | |||
| 5151 | cannot display both a mode line and a header line at once; if the | 4561 | cannot display both a mode line and a header line at once; if the |
| 5152 | variables call for both, only the mode line actually appears. | 4562 | variables call for both, only the mode line actually appears. |
| 5153 | 4563 | ||
| 5154 | +++ | ||
| 5155 | *** The new function `window-inside-edges' returns the edges of the | 4564 | *** The new function `window-inside-edges' returns the edges of the |
| 5156 | actual text portion of the window, not including the scroll bar or | 4565 | actual text portion of the window, not including the scroll bar or |
| 5157 | divider line, the fringes, the display margins, the header line and | 4566 | divider line, the fringes, the display margins, the header line and |
| 5158 | the mode line. | 4567 | the mode line. |
| 5159 | 4568 | ||
| 5160 | +++ | ||
| 5161 | *** The new functions `window-pixel-edges' and `window-inside-pixel-edges' | 4569 | *** The new functions `window-pixel-edges' and `window-inside-pixel-edges' |
| 5162 | return window edges in units of pixels, rather than columns and lines. | 4570 | return window edges in units of pixels, rather than columns and lines. |
| 5163 | 4571 | ||
| 5164 | +++ | ||
| 5165 | *** The new macro `with-selected-window' temporarily switches the | 4572 | *** The new macro `with-selected-window' temporarily switches the |
| 5166 | selected window without impacting the order of `buffer-list'. | 4573 | selected window without impacting the order of `buffer-list'. |
| 5167 | It saves and restores the current buffer, too. | 4574 | It saves and restores the current buffer, too. |
| 5168 | 4575 | ||
| 5169 | +++ | ||
| 5170 | *** `select-window' takes an optional second argument NORECORD. | 4576 | *** `select-window' takes an optional second argument NORECORD. |
| 5171 | 4577 | ||
| 5172 | This is like `switch-to-buffer'. | 4578 | This is like `switch-to-buffer'. |
| 5173 | 4579 | ||
| 5174 | +++ | ||
| 5175 | *** `save-selected-window' now saves and restores the selected window | 4580 | *** `save-selected-window' now saves and restores the selected window |
| 5176 | of every frame. This way, it restores everything that can be changed | 4581 | of every frame. This way, it restores everything that can be changed |
| 5177 | by calling `select-window'. It also saves and restores the current | 4582 | by calling `select-window'. It also saves and restores the current |
| 5178 | buffer. | 4583 | buffer. |
| 5179 | 4584 | ||
| 5180 | +++ | ||
| 5181 | *** `set-window-buffer' has an optional argument KEEP-MARGINS. | 4585 | *** `set-window-buffer' has an optional argument KEEP-MARGINS. |
| 5182 | 4586 | ||
| 5183 | If non-nil, that says to preserve the window's current margin, fringe, | 4587 | If non-nil, that says to preserve the window's current margin, fringe, |
| 5184 | and scroll-bar settings. | 4588 | and scroll-bar settings. |
| 5185 | 4589 | ||
| 5186 | +++ | ||
| 5187 | *** The new function `window-tree' returns a frame's window tree. | 4590 | *** The new function `window-tree' returns a frame's window tree. |
| 5188 | 4591 | ||
| 5189 | +++ | ||
| 5190 | *** The functions `get-lru-window' and `get-largest-window' take an optional | 4592 | *** The functions `get-lru-window' and `get-largest-window' take an optional |
| 5191 | argument `dedicated'. If non-nil, those functions do not ignore | 4593 | argument `dedicated'. If non-nil, those functions do not ignore |
| 5192 | dedicated windows. | 4594 | dedicated windows. |
| 5193 | 4595 | ||
| 5194 | +++ | ||
| 5195 | *** The new function `adjust-window-trailing-edge' moves the right | 4596 | *** The new function `adjust-window-trailing-edge' moves the right |
| 5196 | or bottom edge of a window. It does not move other window edges. | 4597 | or bottom edge of a window. It does not move other window edges. |
| 5197 | 4598 | ||
| 5198 | +++ | ||
| 5199 | ** Customizable fringe bitmaps | 4599 | ** Customizable fringe bitmaps |
| 5200 | 4600 | ||
| 5201 | *** New buffer-local variables `fringe-indicator-alist' and | 4601 | *** New buffer-local variables `fringe-indicator-alist' and |
| @@ -5231,7 +4631,6 @@ bitmaps in the display line at a given buffer position. | |||
| 5231 | 4631 | ||
| 5232 | ** Other window fringe features: | 4632 | ** Other window fringe features: |
| 5233 | 4633 | ||
| 5234 | +++ | ||
| 5235 | *** Controlling the default left and right fringe widths. | 4634 | *** Controlling the default left and right fringe widths. |
| 5236 | 4635 | ||
| 5237 | The default left and right fringe widths for all windows of a frame | 4636 | The default left and right fringe widths for all windows of a frame |
| @@ -5251,7 +4650,6 @@ width which is the minimum number of pixels necessary to display any | |||
| 5251 | of the currently defined fringe bitmaps. The width of the built-in | 4650 | of the currently defined fringe bitmaps. The width of the built-in |
| 5252 | fringe bitmaps is 8 pixels. | 4651 | fringe bitmaps is 8 pixels. |
| 5253 | 4652 | ||
| 5254 | +++ | ||
| 5255 | *** Per-window fringe and scrollbar settings | 4653 | *** Per-window fringe and scrollbar settings |
| 5256 | 4654 | ||
| 5257 | **** Windows can now have their own individual fringe widths and | 4655 | **** Windows can now have their own individual fringe widths and |
| @@ -5285,25 +4683,20 @@ of the display margins. | |||
| 5285 | 4683 | ||
| 5286 | ** Redisplay features: | 4684 | ** Redisplay features: |
| 5287 | 4685 | ||
| 5288 | +++ | ||
| 5289 | *** `sit-for' can now be called with args (SECONDS &optional NODISP). | 4686 | *** `sit-for' can now be called with args (SECONDS &optional NODISP). |
| 5290 | 4687 | ||
| 5291 | +++ | ||
| 5292 | *** Iconifying or deiconifying a frame no longer makes sit-for return. | 4688 | *** Iconifying or deiconifying a frame no longer makes sit-for return. |
| 5293 | 4689 | ||
| 5294 | +++ | ||
| 5295 | *** New function `redisplay' causes an immediate redisplay if no input is | 4690 | *** New function `redisplay' causes an immediate redisplay if no input is |
| 5296 | available, equivalent to (sit-for 0). The call (redisplay t) forces | 4691 | available, equivalent to (sit-for 0). The call (redisplay t) forces |
| 5297 | an immediate redisplay even if input is pending. | 4692 | an immediate redisplay even if input is pending. |
| 5298 | 4693 | ||
| 5299 | +++ | ||
| 5300 | *** New function `force-window-update' can initiate a full redisplay of | 4694 | *** New function `force-window-update' can initiate a full redisplay of |
| 5301 | one or all windows. Normally, this is not needed as changes in window | 4695 | one or all windows. Normally, this is not needed as changes in window |
| 5302 | contents are detected automatically. However, certain implicit | 4696 | contents are detected automatically. However, certain implicit |
| 5303 | changes to mode lines, header lines, or display properties may require | 4697 | changes to mode lines, header lines, or display properties may require |
| 5304 | forcing an explicit window update. | 4698 | forcing an explicit window update. |
| 5305 | 4699 | ||
| 5306 | +++ | ||
| 5307 | *** (char-displayable-p CHAR) returns non-nil if Emacs ought to be able | 4700 | *** (char-displayable-p CHAR) returns non-nil if Emacs ought to be able |
| 5308 | to display CHAR. More precisely, if the selected frame's fontset has | 4701 | to display CHAR. More precisely, if the selected frame's fontset has |
| 5309 | a font to display the character set that CHAR belongs to. | 4702 | a font to display the character set that CHAR belongs to. |
| @@ -5311,7 +4704,6 @@ a font to display the character set that CHAR belongs to. | |||
| 5311 | Fontsets can specify a font on a per-character basis; when the fontset | 4704 | Fontsets can specify a font on a per-character basis; when the fontset |
| 5312 | does that, this value cannot be accurate. | 4705 | does that, this value cannot be accurate. |
| 5313 | 4706 | ||
| 5314 | +++ | ||
| 5315 | *** You can define multiple overlay arrows via the new | 4707 | *** You can define multiple overlay arrows via the new |
| 5316 | variable `overlay-arrow-variable-list'. | 4708 | variable `overlay-arrow-variable-list'. |
| 5317 | 4709 | ||
| @@ -5325,7 +4717,6 @@ systems) to display at the corresponding overlay arrow position. | |||
| 5325 | If either property is not set, the default `overlay-arrow-string' or | 4717 | If either property is not set, the default `overlay-arrow-string' or |
| 5326 | 'overlay-arrow-fringe-bitmap' will be used. | 4718 | 'overlay-arrow-fringe-bitmap' will be used. |
| 5327 | 4719 | ||
| 5328 | +++ | ||
| 5329 | *** New `line-height' and `line-spacing' properties for newline characters | 4720 | *** New `line-height' and `line-spacing' properties for newline characters |
| 5330 | 4721 | ||
| 5331 | A newline can now have `line-height' and `line-spacing' text or overlay | 4722 | A newline can now have `line-height' and `line-spacing' text or overlay |
| @@ -5366,11 +4757,9 @@ the `line-spacing' variable. | |||
| 5366 | If the `line-spacing' property is a float or cons, the line spacing | 4757 | If the `line-spacing' property is a float or cons, the line spacing |
| 5367 | is calculated as specified above for the `line-height' property. | 4758 | is calculated as specified above for the `line-height' property. |
| 5368 | 4759 | ||
| 5369 | +++ | ||
| 5370 | *** The buffer local `line-spacing' variable can now have a float value, | 4760 | *** The buffer local `line-spacing' variable can now have a float value, |
| 5371 | which is used as a height relative to the default frame line height. | 4761 | which is used as a height relative to the default frame line height. |
| 5372 | 4762 | ||
| 5373 | +++ | ||
| 5374 | *** Enhancements to stretch display properties | 4763 | *** Enhancements to stretch display properties |
| 5375 | 4764 | ||
| 5376 | The display property stretch specification form `(space PROPS)', where | 4765 | The display property stretch specification form `(space PROPS)', where |
| @@ -5427,17 +4816,14 @@ height) of the specified image. | |||
| 5427 | The form `(+ EXPR ...)' adds up the value of the expressions. | 4816 | The form `(+ EXPR ...)' adds up the value of the expressions. |
| 5428 | The form `(- EXPR ...)' negates or subtracts the value of the expressions. | 4817 | The form `(- EXPR ...)' negates or subtracts the value of the expressions. |
| 5429 | 4818 | ||
| 5430 | +++ | ||
| 5431 | *** Normally, the cursor is displayed at the end of any overlay and | 4819 | *** Normally, the cursor is displayed at the end of any overlay and |
| 5432 | text property string that may be present at the current window | 4820 | text property string that may be present at the current window |
| 5433 | position. The cursor can now be placed on any character of such | 4821 | position. The cursor can now be placed on any character of such |
| 5434 | strings by giving that character a non-nil `cursor' text property. | 4822 | strings by giving that character a non-nil `cursor' text property. |
| 5435 | 4823 | ||
| 5436 | +++ | ||
| 5437 | *** The display space :width and :align-to text properties are now | 4824 | *** The display space :width and :align-to text properties are now |
| 5438 | supported on text terminals. | 4825 | supported on text terminals. |
| 5439 | 4826 | ||
| 5440 | +++ | ||
| 5441 | *** Support for displaying image slices | 4827 | *** Support for displaying image slices |
| 5442 | 4828 | ||
| 5443 | **** New display property (slice X Y WIDTH HEIGHT) can be used with | 4829 | **** New display property (slice X Y WIDTH HEIGHT) can be used with |
| @@ -5449,7 +4835,6 @@ specify image slice (X Y WIDTH HEIGHT). | |||
| 5449 | **** New function `insert-sliced-image' inserts a given image as a | 4835 | **** New function `insert-sliced-image' inserts a given image as a |
| 5450 | specified number of evenly sized slices (rows x columns). | 4836 | specified number of evenly sized slices (rows x columns). |
| 5451 | 4837 | ||
| 5452 | +++ | ||
| 5453 | *** Images can now have an associated image map via the :map property. | 4838 | *** Images can now have an associated image map via the :map property. |
| 5454 | 4839 | ||
| 5455 | An image map is an alist where each element has the format (AREA ID PLIST). | 4840 | An image map is an alist where each element has the format (AREA ID PLIST). |
| @@ -5472,7 +4857,6 @@ When you click the mouse when the mouse pointer is over a hot-spot, | |||
| 5472 | an event is composed by combining the ID of the hot-spot with the | 4857 | an event is composed by combining the ID of the hot-spot with the |
| 5473 | mouse event, e.g. [area4 mouse-1] if the hot-spot's ID is `area4'. | 4858 | mouse event, e.g. [area4 mouse-1] if the hot-spot's ID is `area4'. |
| 5474 | 4859 | ||
| 5475 | +++ | ||
| 5476 | *** The function `find-image' now searches in etc/images/ and etc/. | 4860 | *** The function `find-image' now searches in etc/images/ and etc/. |
| 5477 | The new variable `image-load-path' is a list of locations in which to | 4861 | The new variable `image-load-path' is a list of locations in which to |
| 5478 | search for image files. The default is to search in etc/images, then | 4862 | search for image files. The default is to search in etc/images, then |
| @@ -5486,80 +4870,62 @@ explicitly; for example, if an image is put in etc/images/foo/bar.xpm: | |||
| 5486 | Note that all images formerly located in the lisp directory have been | 4870 | Note that all images formerly located in the lisp directory have been |
| 5487 | moved to etc/images. | 4871 | moved to etc/images. |
| 5488 | 4872 | ||
| 5489 | +++ | ||
| 5490 | *** New function `image-load-path-for-library' returns a suitable | 4873 | *** New function `image-load-path-for-library' returns a suitable |
| 5491 | search path for images relative to library. This function is useful in | 4874 | search path for images relative to library. This function is useful in |
| 5492 | external packages to save users from having to update | 4875 | external packages to save users from having to update |
| 5493 | `image-load-path'. | 4876 | `image-load-path'. |
| 5494 | 4877 | ||
| 5495 | +++ | ||
| 5496 | *** The new variable `max-image-size' defines the maximum size of | 4878 | *** The new variable `max-image-size' defines the maximum size of |
| 5497 | images that Emacs will load and display. | 4879 | images that Emacs will load and display. |
| 5498 | 4880 | ||
| 5499 | +++ | ||
| 5500 | *** The new variable `display-mm-dimensions-alist' can be used to | 4881 | *** The new variable `display-mm-dimensions-alist' can be used to |
| 5501 | override incorrect graphical display dimensions returned by functions | 4882 | override incorrect graphical display dimensions returned by functions |
| 5502 | `display-mm-height' and `display-mm-width'. | 4883 | `display-mm-height' and `display-mm-width'. |
| 5503 | 4884 | ||
| 5504 | ** Mouse pointer features: | 4885 | ** Mouse pointer features: |
| 5505 | 4886 | ||
| 5506 | +++ (lispref) | ||
| 5507 | --- (man) | ||
| 5508 | *** The mouse pointer shape in void text areas (i.e. after the end of a | 4887 | *** The mouse pointer shape in void text areas (i.e. after the end of a |
| 5509 | line or below the last line in the buffer) of the text window is now | 4888 | line or below the last line in the buffer) of the text window is now |
| 5510 | controlled by the new variable `void-text-area-pointer'. The default | 4889 | controlled by the new variable `void-text-area-pointer'. The default |
| 5511 | is to use the `arrow' (non-text) pointer. Other choices are `text' | 4890 | is to use the `arrow' (non-text) pointer. Other choices are `text' |
| 5512 | (or nil), `hand', `vdrag', `hdrag', `modeline', and `hourglass'. | 4891 | (or nil), `hand', `vdrag', `hdrag', `modeline', and `hourglass'. |
| 5513 | 4892 | ||
| 5514 | +++ | ||
| 5515 | *** The mouse pointer shape over an image can now be controlled by the | 4893 | *** The mouse pointer shape over an image can now be controlled by the |
| 5516 | :pointer image property. | 4894 | :pointer image property. |
| 5517 | 4895 | ||
| 5518 | +++ | ||
| 5519 | *** The mouse pointer shape over ordinary text or images can now be | 4896 | *** The mouse pointer shape over ordinary text or images can now be |
| 5520 | controlled/overridden via the `pointer' text property. | 4897 | controlled/overridden via the `pointer' text property. |
| 5521 | 4898 | ||
| 5522 | ** Mouse event enhancements: | 4899 | ** Mouse event enhancements: |
| 5523 | 4900 | ||
| 5524 | +++ | ||
| 5525 | *** Mouse events for clicks on window fringes now specify `left-fringe' | 4901 | *** Mouse events for clicks on window fringes now specify `left-fringe' |
| 5526 | or `right-fringe' as the area. | 4902 | or `right-fringe' as the area. |
| 5527 | 4903 | ||
| 5528 | +++ | ||
| 5529 | *** All mouse events now include a buffer position regardless of where | 4904 | *** All mouse events now include a buffer position regardless of where |
| 5530 | you clicked. For mouse clicks in window margins and fringes, this is | 4905 | you clicked. For mouse clicks in window margins and fringes, this is |
| 5531 | a sensible buffer position corresponding to the surrounding text. | 4906 | a sensible buffer position corresponding to the surrounding text. |
| 5532 | 4907 | ||
| 5533 | +++ | ||
| 5534 | *** `posn-point' now returns buffer position for non-text area events. | 4908 | *** `posn-point' now returns buffer position for non-text area events. |
| 5535 | 4909 | ||
| 5536 | +++ | ||
| 5537 | *** Function `mouse-set-point' now works for events outside text area. | 4910 | *** Function `mouse-set-point' now works for events outside text area. |
| 5538 | 4911 | ||
| 5539 | +++ | ||
| 5540 | *** New function `posn-area' returns window area clicked on (nil means | 4912 | *** New function `posn-area' returns window area clicked on (nil means |
| 5541 | text area). | 4913 | text area). |
| 5542 | 4914 | ||
| 5543 | +++ | ||
| 5544 | *** Mouse events include actual glyph column and row for all event types | 4915 | *** Mouse events include actual glyph column and row for all event types |
| 5545 | and all areas. | 4916 | and all areas. |
| 5546 | 4917 | ||
| 5547 | +++ | ||
| 5548 | *** New function `posn-actual-col-row' returns the actual glyph coordinates | 4918 | *** New function `posn-actual-col-row' returns the actual glyph coordinates |
| 5549 | of the mouse event position. | 4919 | of the mouse event position. |
| 5550 | 4920 | ||
| 5551 | +++ | ||
| 5552 | *** Mouse events can now indicate an image object clicked on. | 4921 | *** Mouse events can now indicate an image object clicked on. |
| 5553 | 4922 | ||
| 5554 | +++ | ||
| 5555 | *** Mouse events include relative X and Y pixel coordinates relative to | 4923 | *** Mouse events include relative X and Y pixel coordinates relative to |
| 5556 | the top left corner of the object (image or character) clicked on. | 4924 | the top left corner of the object (image or character) clicked on. |
| 5557 | 4925 | ||
| 5558 | +++ | ||
| 5559 | *** Mouse events include the pixel width and height of the object | 4926 | *** Mouse events include the pixel width and height of the object |
| 5560 | (image or character) clicked on. | 4927 | (image or character) clicked on. |
| 5561 | 4928 | ||
| 5562 | +++ | ||
| 5563 | *** New functions 'posn-object', 'posn-object-x-y', 'posn-object-width-height'. | 4929 | *** New functions 'posn-object', 'posn-object-x-y', 'posn-object-width-height'. |
| 5564 | 4930 | ||
| 5565 | These return the image or string object of a mouse click, the X and Y | 4931 | These return the image or string object of a mouse click, the X and Y |
| @@ -5568,11 +4934,9 @@ the total width and height of that object. | |||
| 5568 | 4934 | ||
| 5569 | ** Text property and overlay changes: | 4935 | ** Text property and overlay changes: |
| 5570 | 4936 | ||
| 5571 | +++ | ||
| 5572 | *** Arguments for `remove-overlays' are now optional, so that you can | 4937 | *** Arguments for `remove-overlays' are now optional, so that you can |
| 5573 | remove all overlays in the buffer with just (remove-overlays). | 4938 | remove all overlays in the buffer with just (remove-overlays). |
| 5574 | 4939 | ||
| 5575 | +++ | ||
| 5576 | *** New variable `char-property-alias-alist'. | 4940 | *** New variable `char-property-alias-alist'. |
| 5577 | 4941 | ||
| 5578 | This variable allows you to create alternative names for text | 4942 | This variable allows you to create alternative names for text |
| @@ -5580,14 +4944,12 @@ properties. It works at the same level as `default-text-properties', | |||
| 5580 | although it applies to overlays as well. This variable was introduced | 4944 | although it applies to overlays as well. This variable was introduced |
| 5581 | to implement the `font-lock-face' property. | 4945 | to implement the `font-lock-face' property. |
| 5582 | 4946 | ||
| 5583 | +++ | ||
| 5584 | *** New function `get-char-property-and-overlay' accepts the same | 4947 | *** New function `get-char-property-and-overlay' accepts the same |
| 5585 | arguments as `get-char-property' and returns a cons whose car is the | 4948 | arguments as `get-char-property' and returns a cons whose car is the |
| 5586 | return value of `get-char-property' called with those arguments and | 4949 | return value of `get-char-property' called with those arguments and |
| 5587 | whose cdr is the overlay in which the property was found, or nil if | 4950 | whose cdr is the overlay in which the property was found, or nil if |
| 5588 | it was found as a text property or not found at all. | 4951 | it was found as a text property or not found at all. |
| 5589 | 4952 | ||
| 5590 | +++ | ||
| 5591 | *** The new function `remove-list-of-text-properties'. | 4953 | *** The new function `remove-list-of-text-properties'. |
| 5592 | 4954 | ||
| 5593 | It is like `remove-text-properties' except that it takes a list of | 4955 | It is like `remove-text-properties' except that it takes a list of |
| @@ -5595,13 +4957,11 @@ property names as argument rather than a property list. | |||
| 5595 | 4957 | ||
| 5596 | ** Face changes | 4958 | ** Face changes |
| 5597 | 4959 | ||
| 5598 | +++ | ||
| 5599 | *** The variable `facemenu-unlisted-faces' has been removed. | 4960 | *** The variable `facemenu-unlisted-faces' has been removed. |
| 5600 | Emacs has a lot more faces than in the past, and nearly all of them | 4961 | Emacs has a lot more faces than in the past, and nearly all of them |
| 5601 | needed to be excluded. The new variable `facemenu-listed-faces' lists | 4962 | needed to be excluded. The new variable `facemenu-listed-faces' lists |
| 5602 | the faces to include in the face menu. | 4963 | the faces to include in the face menu. |
| 5603 | 4964 | ||
| 5604 | +++ | ||
| 5605 | *** The new face attribute condition `min-colors' can be used to tailor | 4965 | *** The new face attribute condition `min-colors' can be used to tailor |
| 5606 | the face color to the number of colors supported by a display, and | 4966 | the face color to the number of colors supported by a display, and |
| 5607 | define the foreground and background colors accordingly so that they | 4967 | define the foreground and background colors accordingly so that they |
| @@ -5609,7 +4969,6 @@ look best on a terminal that supports at least this many colors. This | |||
| 5609 | is now the preferred method for defining default faces in a way that | 4969 | is now the preferred method for defining default faces in a way that |
| 5610 | makes a good use of the capabilities of the display. | 4970 | makes a good use of the capabilities of the display. |
| 5611 | 4971 | ||
| 5612 | +++ | ||
| 5613 | *** New function `display-supports-face-attributes-p' can be used to test | 4972 | *** New function `display-supports-face-attributes-p' can be used to test |
| 5614 | whether a given set of face attributes is actually displayable. | 4973 | whether a given set of face attributes is actually displayable. |
| 5615 | 4974 | ||
| @@ -5617,43 +4976,36 @@ A new predicate `supports' has also been added to the `defface' face | |||
| 5617 | specification language, which can be used to do this test for faces | 4976 | specification language, which can be used to do this test for faces |
| 5618 | defined with `defface'. | 4977 | defined with `defface'. |
| 5619 | 4978 | ||
| 5620 | --- | ||
| 5621 | *** The special treatment of faces whose names are of the form `fg:COLOR' | 4979 | *** The special treatment of faces whose names are of the form `fg:COLOR' |
| 5622 | or `bg:COLOR' has been removed. Lisp programs should use the | 4980 | or `bg:COLOR' has been removed. Lisp programs should use the |
| 5623 | `defface' facility for defining faces with specific colors, or use | 4981 | `defface' facility for defining faces with specific colors, or use |
| 5624 | the feature of specifying the face attributes :foreground and :background | 4982 | the feature of specifying the face attributes :foreground and :background |
| 5625 | directly in the `face' property instead of using a named face. | 4983 | directly in the `face' property instead of using a named face. |
| 5626 | 4984 | ||
| 5627 | +++ | ||
| 5628 | *** The first face specification element in a defface can specify | 4985 | *** The first face specification element in a defface can specify |
| 5629 | `default' instead of frame classification. Then its attributes act as | 4986 | `default' instead of frame classification. Then its attributes act as |
| 5630 | defaults that apply to all the subsequent cases (and can be overridden | 4987 | defaults that apply to all the subsequent cases (and can be overridden |
| 5631 | by them). | 4988 | by them). |
| 5632 | 4989 | ||
| 5633 | +++ | ||
| 5634 | *** The variable `face-font-rescale-alist' specifies how much larger | 4990 | *** The variable `face-font-rescale-alist' specifies how much larger |
| 5635 | (or smaller) font we should use. For instance, if the value is | 4991 | (or smaller) font we should use. For instance, if the value is |
| 5636 | '((SOME-FONTNAME-PATTERN . 1.3)) and a face requests a font of 10 | 4992 | '((SOME-FONTNAME-PATTERN . 1.3)) and a face requests a font of 10 |
| 5637 | point, we actually use a font of 13 point if the font matches | 4993 | point, we actually use a font of 13 point if the font matches |
| 5638 | SOME-FONTNAME-PATTERN. | 4994 | SOME-FONTNAME-PATTERN. |
| 5639 | 4995 | ||
| 5640 | --- | ||
| 5641 | *** The function `face-differs-from-default-p' now truly checks | 4996 | *** The function `face-differs-from-default-p' now truly checks |
| 5642 | whether the given face displays differently from the default face or | 4997 | whether the given face displays differently from the default face or |
| 5643 | not (previously it did only a very cursory check). | 4998 | not (previously it did only a very cursory check). |
| 5644 | 4999 | ||
| 5645 | +++ | ||
| 5646 | *** `face-attribute', `face-foreground', `face-background', `face-stipple'. | 5000 | *** `face-attribute', `face-foreground', `face-background', `face-stipple'. |
| 5647 | 5001 | ||
| 5648 | These now accept a new optional argument, INHERIT, which controls how | 5002 | These now accept a new optional argument, INHERIT, which controls how |
| 5649 | face inheritance is used when determining the value of a face | 5003 | face inheritance is used when determining the value of a face |
| 5650 | attribute. | 5004 | attribute. |
| 5651 | 5005 | ||
| 5652 | +++ | ||
| 5653 | *** New functions `face-attribute-relative-p' and `merge-face-attribute' | 5006 | *** New functions `face-attribute-relative-p' and `merge-face-attribute' |
| 5654 | help with handling relative face attributes. | 5007 | help with handling relative face attributes. |
| 5655 | 5008 | ||
| 5656 | +++ | ||
| 5657 | *** The priority of faces in an :inherit attribute face list is reversed. | 5009 | *** The priority of faces in an :inherit attribute face list is reversed. |
| 5658 | 5010 | ||
| 5659 | If a face contains an :inherit attribute with a list of faces, earlier | 5011 | If a face contains an :inherit attribute with a list of faces, earlier |
| @@ -5662,20 +5014,17 @@ releases of Emacs, the order was the opposite. This change was made | |||
| 5662 | so that :inherit face lists operate identically to face lists in text | 5014 | so that :inherit face lists operate identically to face lists in text |
| 5663 | `face' properties. | 5015 | `face' properties. |
| 5664 | 5016 | ||
| 5665 | --- | ||
| 5666 | *** On terminals, faces with the :inverse-video attribute are displayed | 5017 | *** On terminals, faces with the :inverse-video attribute are displayed |
| 5667 | with swapped foreground and background colors even when one of them is | 5018 | with swapped foreground and background colors even when one of them is |
| 5668 | not specified. In previous releases of Emacs, if either foreground | 5019 | not specified. In previous releases of Emacs, if either foreground |
| 5669 | or background color was unspecified, colors were not swapped. This | 5020 | or background color was unspecified, colors were not swapped. This |
| 5670 | was inconsistent with the face behavior under X. | 5021 | was inconsistent with the face behavior under X. |
| 5671 | 5022 | ||
| 5672 | --- | ||
| 5673 | *** `set-fontset-font', `fontset-info', `fontset-font' now operate on | 5023 | *** `set-fontset-font', `fontset-info', `fontset-font' now operate on |
| 5674 | the default fontset if the argument NAME is nil.. | 5024 | the default fontset if the argument NAME is nil.. |
| 5675 | 5025 | ||
| 5676 | ** Font-Lock changes: | 5026 | ** Font-Lock changes: |
| 5677 | 5027 | ||
| 5678 | +++ | ||
| 5679 | *** New special text property `font-lock-face'. | 5028 | *** New special text property `font-lock-face'. |
| 5680 | 5029 | ||
| 5681 | This property acts like the `face' property, but it is controlled by | 5030 | This property acts like the `face' property, but it is controlled by |
| @@ -5683,7 +5032,6 @@ M-x font-lock-mode. It is not, strictly speaking, a builtin text | |||
| 5683 | property. Instead, it is implemented inside font-core.el, using the | 5032 | property. Instead, it is implemented inside font-core.el, using the |
| 5684 | new variable `char-property-alias-alist'. | 5033 | new variable `char-property-alias-alist'. |
| 5685 | 5034 | ||
| 5686 | +++ | ||
| 5687 | *** font-lock can manage arbitrary text-properties beside `face'. | 5035 | *** font-lock can manage arbitrary text-properties beside `face'. |
| 5688 | 5036 | ||
| 5689 | **** the FACENAME returned in `font-lock-keywords' can be a list of the | 5037 | **** the FACENAME returned in `font-lock-keywords' can be a list of the |
| @@ -5693,7 +5041,6 @@ properties than `face'. | |||
| 5693 | **** `font-lock-extra-managed-props' can be set to make sure those | 5041 | **** `font-lock-extra-managed-props' can be set to make sure those |
| 5694 | extra properties are automatically cleaned up by font-lock. | 5042 | extra properties are automatically cleaned up by font-lock. |
| 5695 | 5043 | ||
| 5696 | --- | ||
| 5697 | *** jit-lock obeys a new text-property `jit-lock-defer-multiline'. | 5044 | *** jit-lock obeys a new text-property `jit-lock-defer-multiline'. |
| 5698 | 5045 | ||
| 5699 | If a piece of text with that property gets contextually refontified | 5046 | If a piece of text with that property gets contextually refontified |
| @@ -5720,72 +5067,58 @@ of multiline constructs so that such constructs get properly recognized. | |||
| 5720 | 5067 | ||
| 5721 | ** Major mode mechanism changes: | 5068 | ** Major mode mechanism changes: |
| 5722 | 5069 | ||
| 5723 | +++ | ||
| 5724 | *** If new variable `auto-mode-case-fold' is set to a non-nil value, | 5070 | *** If new variable `auto-mode-case-fold' is set to a non-nil value, |
| 5725 | Emacs will perform a second case-insensitive search through | 5071 | Emacs will perform a second case-insensitive search through |
| 5726 | `auto-mode-alist' if the first case-sensitive search fails. | 5072 | `auto-mode-alist' if the first case-sensitive search fails. This |
| 5727 | This means that a file FILE.TXT is opened in text-mode, and a file PROG.PY | 5073 | means that a file FILE.TXT is opened in text-mode, and a file |
| 5728 | is opened in python-mode. Note however, that independent of this | 5074 | PROG.HTML is opened in html-mode. Note however, that independent of |
| 5729 | setting, *.C files are usually recognized as C++ files. | 5075 | this setting, *.C files are usually recognized as C++ files. It also |
| 5730 | It also has no effect on systems with case-insensitive file names. | 5076 | has no effect on systems with case-insensitive file names. |
| 5731 | 5077 | ||
| 5732 | +++ | ||
| 5733 | *** New variable `magic-mode-alist' determines major mode for a file by | 5078 | *** New variable `magic-mode-alist' determines major mode for a file by |
| 5734 | looking at the file contents. It takes precedence over `auto-mode-alist'. | 5079 | looking at the file contents. It takes precedence over `auto-mode-alist'. |
| 5735 | 5080 | ||
| 5736 | +++ | ||
| 5737 | *** An interpreter magic line (if present) takes precedence over the | 5081 | *** An interpreter magic line (if present) takes precedence over the |
| 5738 | file name when setting the major mode. | 5082 | file name when setting the major mode. |
| 5739 | 5083 | ||
| 5740 | +++ | ||
| 5741 | *** XML or SGML major mode is selected when file starts with an `<?xml' | 5084 | *** XML or SGML major mode is selected when file starts with an `<?xml' |
| 5742 | or `<!DOCTYPE' declaration. | 5085 | or `<!DOCTYPE' declaration. |
| 5743 | 5086 | ||
| 5744 | +++ | ||
| 5745 | *** Use the new function `run-mode-hooks' to run the major mode's mode hook. | 5087 | *** Use the new function `run-mode-hooks' to run the major mode's mode hook. |
| 5746 | 5088 | ||
| 5747 | +++ | ||
| 5748 | *** All major mode functions should now run the new normal hook | 5089 | *** All major mode functions should now run the new normal hook |
| 5749 | `after-change-major-mode-hook', at their very end, after the mode | 5090 | `after-change-major-mode-hook', at their very end, after the mode |
| 5750 | hooks. `run-mode-hooks' does this automatically. | 5091 | hooks. `run-mode-hooks' does this automatically. |
| 5751 | 5092 | ||
| 5752 | --- | ||
| 5753 | *** If a major mode function has a non-nil `no-clone-indirect' | 5093 | *** If a major mode function has a non-nil `no-clone-indirect' |
| 5754 | property, `clone-indirect-buffer' signals an error if you use | 5094 | property, `clone-indirect-buffer' signals an error if you use |
| 5755 | it in that buffer. | 5095 | it in that buffer. |
| 5756 | 5096 | ||
| 5757 | +++ | ||
| 5758 | *** Major modes can define `eldoc-documentation-function' | 5097 | *** Major modes can define `eldoc-documentation-function' |
| 5759 | locally to provide Eldoc functionality by some method appropriate to | 5098 | locally to provide Eldoc functionality by some method appropriate to |
| 5760 | the language. | 5099 | the language. |
| 5761 | 5100 | ||
| 5762 | +++ | ||
| 5763 | *** `define-derived-mode' by default creates a new empty abbrev table. | 5101 | *** `define-derived-mode' by default creates a new empty abbrev table. |
| 5764 | It does not copy abbrevs from the parent mode's abbrev table. | 5102 | It does not copy abbrevs from the parent mode's abbrev table. |
| 5765 | 5103 | ||
| 5766 | +++ | ||
| 5767 | *** The new function `run-mode-hooks' and the new macro `delay-mode-hooks' | 5104 | *** The new function `run-mode-hooks' and the new macro `delay-mode-hooks' |
| 5768 | are used by `define-derived-mode' to make sure the mode hook for the | 5105 | are used by `define-derived-mode' to make sure the mode hook for the |
| 5769 | parent mode is run at the end of the child mode. | 5106 | parent mode is run at the end of the child mode. |
| 5770 | 5107 | ||
| 5771 | ** Minor mode changes: | 5108 | ** Minor mode changes: |
| 5772 | 5109 | ||
| 5773 | +++ | ||
| 5774 | *** `define-minor-mode' now accepts arbitrary additional keyword arguments | 5110 | *** `define-minor-mode' now accepts arbitrary additional keyword arguments |
| 5775 | and simply passes them to `defcustom', if applicable. | 5111 | and simply passes them to `defcustom', if applicable. |
| 5776 | 5112 | ||
| 5777 | +++ | ||
| 5778 | *** `minor-mode-list' now holds a list of minor mode commands. | 5113 | *** `minor-mode-list' now holds a list of minor mode commands. |
| 5779 | 5114 | ||
| 5780 | +++ | 5115 | *** `define-globalized-minor-mode'. |
| 5781 | *** `define-global-minor-mode'. | ||
| 5782 | 5116 | ||
| 5783 | This is a new name for what was formerly called | 5117 | This is a new name for what was formerly called |
| 5784 | `easy-mmode-define-global-mode'. The old name remains as an alias. | 5118 | `easy-mmode-define-global-mode'. The old name remains as an alias. |
| 5785 | 5119 | ||
| 5786 | ** Command loop changes: | 5120 | ** Command loop changes: |
| 5787 | 5121 | ||
| 5788 | +++ | ||
| 5789 | *** The new function `called-interactively-p' does what many people | 5122 | *** The new function `called-interactively-p' does what many people |
| 5790 | have mistakenly believed `interactive-p' to do: it returns t if the | 5123 | have mistakenly believed `interactive-p' to do: it returns t if the |
| 5791 | calling function was called through `call-interactively'. | 5124 | calling function was called through `call-interactively'. |
| @@ -5793,14 +5126,12 @@ calling function was called through `call-interactively'. | |||
| 5793 | Only use this when you cannot solve the problem by adding a new | 5126 | Only use this when you cannot solve the problem by adding a new |
| 5794 | INTERACTIVE argument to the command. | 5127 | INTERACTIVE argument to the command. |
| 5795 | 5128 | ||
| 5796 | +++ | ||
| 5797 | *** The function `commandp' takes an additional optional argument. | 5129 | *** The function `commandp' takes an additional optional argument. |
| 5798 | 5130 | ||
| 5799 | If it is non-nil, then `commandp' checks for a function that could be | 5131 | If it is non-nil, then `commandp' checks for a function that could be |
| 5800 | called with `call-interactively', and does not return t for keyboard | 5132 | called with `call-interactively', and does not return t for keyboard |
| 5801 | macros. | 5133 | macros. |
| 5802 | 5134 | ||
| 5803 | +++ | ||
| 5804 | *** When a command returns, the command loop moves point out from | 5135 | *** When a command returns, the command loop moves point out from |
| 5805 | within invisible text, in the same way it moves out from within text | 5136 | within invisible text, in the same way it moves out from within text |
| 5806 | covered by an image or composition property. | 5137 | covered by an image or composition property. |
| @@ -5811,51 +5142,41 @@ unexpected side-effects since the property applies to everything | |||
| 5811 | (including `goto-char', ...) whereas this new code is only run after | 5142 | (including `goto-char', ...) whereas this new code is only run after |
| 5812 | `post-command-hook' and thus does not care about intermediate states. | 5143 | `post-command-hook' and thus does not care about intermediate states. |
| 5813 | 5144 | ||
| 5814 | +++ | ||
| 5815 | *** If a command sets `transient-mark-mode' to `only', that | 5145 | *** If a command sets `transient-mark-mode' to `only', that |
| 5816 | enables Transient Mark mode for the following command only. | 5146 | enables Transient Mark mode for the following command only. |
| 5817 | During that following command, the value of `transient-mark-mode' | 5147 | During that following command, the value of `transient-mark-mode' |
| 5818 | is `identity'. If it is still `identity' at the end of the command, | 5148 | is `identity'. If it is still `identity' at the end of the command, |
| 5819 | the next return to the command loop changes to nil. | 5149 | the next return to the command loop changes to nil. |
| 5820 | 5150 | ||
| 5821 | +++ | ||
| 5822 | *** Both the variable and the function `disabled-command-hook' have | 5151 | *** Both the variable and the function `disabled-command-hook' have |
| 5823 | been renamed to `disabled-command-function'. The variable | 5152 | been renamed to `disabled-command-function'. The variable |
| 5824 | `disabled-command-hook' has been kept as an obsolete alias. | 5153 | `disabled-command-hook' has been kept as an obsolete alias. |
| 5825 | 5154 | ||
| 5826 | +++ | ||
| 5827 | *** `emacsserver' now runs `pre-command-hook' and `post-command-hook' | 5155 | *** `emacsserver' now runs `pre-command-hook' and `post-command-hook' |
| 5828 | when it receives a request from emacsclient. | 5156 | when it receives a request from emacsclient. |
| 5829 | 5157 | ||
| 5830 | +++ | ||
| 5831 | *** `current-idle-time' reports how long Emacs has been idle. | 5158 | *** `current-idle-time' reports how long Emacs has been idle. |
| 5832 | 5159 | ||
| 5833 | ** Lisp file loading changes: | 5160 | ** Lisp file loading changes: |
| 5834 | 5161 | ||
| 5835 | +++ | ||
| 5836 | *** `load-history' can now have elements of the form (t . FUNNAME), | 5162 | *** `load-history' can now have elements of the form (t . FUNNAME), |
| 5837 | which means FUNNAME was previously defined as an autoload (before the | 5163 | which means FUNNAME was previously defined as an autoload (before the |
| 5838 | current file redefined it). | 5164 | current file redefined it). |
| 5839 | 5165 | ||
| 5840 | +++ | ||
| 5841 | *** `load-history' now records (defun . FUNNAME) when a function is | 5166 | *** `load-history' now records (defun . FUNNAME) when a function is |
| 5842 | defined. For a variable, it records just the variable name. | 5167 | defined. For a variable, it records just the variable name. |
| 5843 | 5168 | ||
| 5844 | +++ | ||
| 5845 | *** The function `symbol-file' can now search specifically for function, | 5169 | *** The function `symbol-file' can now search specifically for function, |
| 5846 | variable or face definitions. | 5170 | variable or face definitions. |
| 5847 | 5171 | ||
| 5848 | +++ | ||
| 5849 | *** `provide' and `featurep' now accept an optional second argument | 5172 | *** `provide' and `featurep' now accept an optional second argument |
| 5850 | to test/provide subfeatures. Also `provide' now checks `after-load-alist' | 5173 | to test/provide subfeatures. Also `provide' now checks `after-load-alist' |
| 5851 | and runs any code associated with the provided feature. | 5174 | and runs any code associated with the provided feature. |
| 5852 | 5175 | ||
| 5853 | --- | ||
| 5854 | *** The variable `recursive-load-depth-limit' has been deleted. | 5176 | *** The variable `recursive-load-depth-limit' has been deleted. |
| 5855 | Emacs now signals an error if the same file is loaded with more | 5177 | Emacs now signals an error if the same file is loaded with more |
| 5856 | than 3 levels of nesting. | 5178 | than 3 levels of nesting. |
| 5857 | 5179 | ||
| 5858 | +++ | ||
| 5859 | ** Byte compiler changes: | 5180 | ** Byte compiler changes: |
| 5860 | 5181 | ||
| 5861 | *** The byte compiler now displays the actual line and character | 5182 | *** The byte compiler now displays the actual line and character |
| @@ -5892,36 +5213,30 @@ you anything. | |||
| 5892 | 5213 | ||
| 5893 | *** The local variable `no-byte-compile' in Lisp files is now obeyed. | 5214 | *** The local variable `no-byte-compile' in Lisp files is now obeyed. |
| 5894 | 5215 | ||
| 5895 | --- | ||
| 5896 | *** When a Lisp file uses CL functions at run-time, compiling the file | 5216 | *** When a Lisp file uses CL functions at run-time, compiling the file |
| 5897 | now issues warnings about these calls, unless the file performs | 5217 | now issues warnings about these calls, unless the file performs |
| 5898 | (require 'cl) when loaded. | 5218 | (require 'cl) when loaded. |
| 5899 | 5219 | ||
| 5900 | ** Frame operations: | 5220 | ** Frame operations: |
| 5901 | 5221 | ||
| 5902 | +++ | ||
| 5903 | *** New functions `frame-current-scroll-bars' and `window-current-scroll-bars'. | 5222 | *** New functions `frame-current-scroll-bars' and `window-current-scroll-bars'. |
| 5904 | 5223 | ||
| 5905 | These functions return the current locations of the vertical and | 5224 | These functions return the current locations of the vertical and |
| 5906 | horizontal scroll bars in a frame or window. | 5225 | horizontal scroll bars in a frame or window. |
| 5907 | 5226 | ||
| 5908 | +++ | ||
| 5909 | *** The new function `modify-all-frames-parameters' modifies parameters | 5227 | *** The new function `modify-all-frames-parameters' modifies parameters |
| 5910 | for all (existing and future) frames. | 5228 | for all (existing and future) frames. |
| 5911 | 5229 | ||
| 5912 | +++ | ||
| 5913 | *** The new frame parameter `tty-color-mode' specifies the mode to use | 5230 | *** The new frame parameter `tty-color-mode' specifies the mode to use |
| 5914 | for color support on character terminal frames. Its value can be a | 5231 | for color support on character terminal frames. Its value can be a |
| 5915 | number of colors to support, or a symbol. See the Emacs Lisp | 5232 | number of colors to support, or a symbol. See the Emacs Lisp |
| 5916 | Reference manual for more detailed documentation. | 5233 | Reference manual for more detailed documentation. |
| 5917 | 5234 | ||
| 5918 | +++ | ||
| 5919 | *** When using non-toolkit scroll bars with the default width, | 5235 | *** When using non-toolkit scroll bars with the default width, |
| 5920 | the `scroll-bar-width' frame parameter value is nil. | 5236 | the `scroll-bar-width' frame parameter value is nil. |
| 5921 | 5237 | ||
| 5922 | ** Mule changes: | 5238 | ** Mule changes: |
| 5923 | 5239 | ||
| 5924 | +++ | ||
| 5925 | *** Already true in Emacs 21.1, but not emphasized clearly enough: | 5240 | *** Already true in Emacs 21.1, but not emphasized clearly enough: |
| 5926 | 5241 | ||
| 5927 | Multibyte buffers can now faithfully record all 256 character codes | 5242 | Multibyte buffers can now faithfully record all 256 character codes |
| @@ -5937,72 +5252,58 @@ the time it takes to convert the format. | |||
| 5937 | 3. For binary files where format conversion would be pointless and | 5252 | 3. For binary files where format conversion would be pointless and |
| 5938 | wasteful. | 5253 | wasteful. |
| 5939 | 5254 | ||
| 5940 | --- | ||
| 5941 | *** `set-buffer-file-coding-system' now takes an additional argument, | 5255 | *** `set-buffer-file-coding-system' now takes an additional argument, |
| 5942 | NOMODIFY. If it is non-nil, it means don't mark the buffer modified. | 5256 | NOMODIFY. If it is non-nil, it means don't mark the buffer modified. |
| 5943 | 5257 | ||
| 5944 | +++ | ||
| 5945 | *** The new variable `auto-coding-functions' lets you specify functions | 5258 | *** The new variable `auto-coding-functions' lets you specify functions |
| 5946 | to examine a file being visited and deduce the proper coding system | 5259 | to examine a file being visited and deduce the proper coding system |
| 5947 | for it. (If the coding system is detected incorrectly for a specific | 5260 | for it. (If the coding system is detected incorrectly for a specific |
| 5948 | file, you can put a `coding:' tags to override it.) | 5261 | file, you can put a `coding:' tags to override it.) |
| 5949 | 5262 | ||
| 5950 | +++ | ||
| 5951 | *** The new variable `ascii-case-table' stores the case table for the | 5263 | *** The new variable `ascii-case-table' stores the case table for the |
| 5952 | ascii character set. Language environments (such as Turkish) may | 5264 | ascii character set. Language environments (such as Turkish) may |
| 5953 | alter the case correspondences of ASCII characters. This variable | 5265 | alter the case correspondences of ASCII characters. This variable |
| 5954 | saves the original ASCII case table before any such changes. | 5266 | saves the original ASCII case table before any such changes. |
| 5955 | 5267 | ||
| 5956 | --- | ||
| 5957 | *** The new function `merge-coding-systems' fills in unspecified aspects | 5268 | *** The new function `merge-coding-systems' fills in unspecified aspects |
| 5958 | of one coding system from another coding system. | 5269 | of one coding system from another coding system. |
| 5959 | 5270 | ||
| 5960 | --- | ||
| 5961 | *** New coding system property `mime-text-unsuitable' indicates that | 5271 | *** New coding system property `mime-text-unsuitable' indicates that |
| 5962 | the coding system's `mime-charset' is not suitable for MIME text | 5272 | the coding system's `mime-charset' is not suitable for MIME text |
| 5963 | parts, e.g. utf-16. | 5273 | parts, e.g. utf-16. |
| 5964 | 5274 | ||
| 5965 | +++ | ||
| 5966 | *** New function `decode-coding-inserted-region' decodes a region as if | 5275 | *** New function `decode-coding-inserted-region' decodes a region as if |
| 5967 | it is read from a file without decoding. | 5276 | it is read from a file without decoding. |
| 5968 | 5277 | ||
| 5969 | --- | ||
| 5970 | *** New CCL functions `lookup-character' and `lookup-integer' access | 5278 | *** New CCL functions `lookup-character' and `lookup-integer' access |
| 5971 | hash tables defined by the Lisp function `define-translation-hash-table'. | 5279 | hash tables defined by the Lisp function `define-translation-hash-table'. |
| 5972 | 5280 | ||
| 5973 | --- | ||
| 5974 | *** New function `quail-find-key' returns a list of keys to type in the | 5281 | *** New function `quail-find-key' returns a list of keys to type in the |
| 5975 | current input method to input a character. | 5282 | current input method to input a character. |
| 5976 | 5283 | ||
| 5977 | ** Mode line changes: | 5284 | ** Mode line changes: |
| 5978 | 5285 | ||
| 5979 | +++ | ||
| 5980 | *** New function `format-mode-line'. | 5286 | *** New function `format-mode-line'. |
| 5981 | 5287 | ||
| 5982 | This returns the mode line or header line of the selected (or a | 5288 | This returns the mode line or header line of the selected (or a |
| 5983 | specified) window as a string with or without text properties. | 5289 | specified) window as a string with or without text properties. |
| 5984 | 5290 | ||
| 5985 | +++ | ||
| 5986 | *** The new mode-line construct `(:propertize ELT PROPS...)' can be | 5291 | *** The new mode-line construct `(:propertize ELT PROPS...)' can be |
| 5987 | used to add text properties to mode-line elements. | 5292 | used to add text properties to mode-line elements. |
| 5988 | 5293 | ||
| 5989 | +++ | ||
| 5990 | *** The new `%i' and `%I' constructs for `mode-line-format' can be used | 5294 | *** The new `%i' and `%I' constructs for `mode-line-format' can be used |
| 5991 | to display the size of the accessible part of the buffer on the mode | 5295 | to display the size of the accessible part of the buffer on the mode |
| 5992 | line. | 5296 | line. |
| 5993 | 5297 | ||
| 5994 | +++ | ||
| 5995 | *** Mouse-face on mode-line (and header-line) is now supported. | 5298 | *** Mouse-face on mode-line (and header-line) is now supported. |
| 5996 | 5299 | ||
| 5997 | ** Menu manipulation changes: | 5300 | ** Menu manipulation changes: |
| 5998 | 5301 | ||
| 5999 | --- | ||
| 6000 | *** To manipulate the File menu using easy-menu, you must specify the | 5302 | *** To manipulate the File menu using easy-menu, you must specify the |
| 6001 | proper name "file". In previous Emacs versions, you had to specify | 5303 | proper name "file". In previous Emacs versions, you had to specify |
| 6002 | "files", even though the menu item itself was changed to say "File" | 5304 | "files", even though the menu item itself was changed to say "File" |
| 6003 | several versions ago. | 5305 | several versions ago. |
| 6004 | 5306 | ||
| 6005 | --- | ||
| 6006 | *** The dummy function keys made by easy-menu are now always lower case. | 5307 | *** The dummy function keys made by easy-menu are now always lower case. |
| 6007 | If you specify the menu item name "Ada", for instance, it uses `ada' | 5308 | If you specify the menu item name "Ada", for instance, it uses `ada' |
| 6008 | as the "key" bound by that key binding. | 5309 | as the "key" bound by that key binding. |
| @@ -6010,7 +5311,6 @@ as the "key" bound by that key binding. | |||
| 6010 | This is relevant only if Lisp code looks for the bindings that were | 5311 | This is relevant only if Lisp code looks for the bindings that were |
| 6011 | made with easy-menu. | 5312 | made with easy-menu. |
| 6012 | 5313 | ||
| 6013 | --- | ||
| 6014 | *** `easy-menu-define' now allows you to use nil for the symbol name | 5314 | *** `easy-menu-define' now allows you to use nil for the symbol name |
| 6015 | if you don't need to give the menu a name. If you install the menu | 5315 | if you don't need to give the menu a name. If you install the menu |
| 6016 | into other keymaps right away (MAPS is non-nil), it usually doesn't | 5316 | into other keymaps right away (MAPS is non-nil), it usually doesn't |
| @@ -6018,30 +5318,24 @@ need to have a name. | |||
| 6018 | 5318 | ||
| 6019 | ** Operating system access: | 5319 | ** Operating system access: |
| 6020 | 5320 | ||
| 6021 | +++ | ||
| 6022 | *** The new primitive `get-internal-run-time' returns the processor | 5321 | *** The new primitive `get-internal-run-time' returns the processor |
| 6023 | run time used by Emacs since start-up. | 5322 | run time used by Emacs since start-up. |
| 6024 | 5323 | ||
| 6025 | +++ | ||
| 6026 | *** Functions `user-uid' and `user-real-uid' now return floats if the | 5324 | *** Functions `user-uid' and `user-real-uid' now return floats if the |
| 6027 | user UID doesn't fit in a Lisp integer. Function `user-full-name' | 5325 | user UID doesn't fit in a Lisp integer. Function `user-full-name' |
| 6028 | accepts a float as UID parameter. | 5326 | accepts a float as UID parameter. |
| 6029 | 5327 | ||
| 6030 | +++ | ||
| 6031 | *** New function `locale-info' accesses locale information. | 5328 | *** New function `locale-info' accesses locale information. |
| 6032 | 5329 | ||
| 6033 | --- | ||
| 6034 | *** On MS Windows, locale-coding-system is used to interact with the OS. | 5330 | *** On MS Windows, locale-coding-system is used to interact with the OS. |
| 6035 | The Windows specific variable w32-system-coding-system, which was | 5331 | The Windows specific variable w32-system-coding-system, which was |
| 6036 | formerly used for that purpose is now an alias for locale-coding-system. | 5332 | formerly used for that purpose is now an alias for locale-coding-system. |
| 6037 | 5333 | ||
| 6038 | --- | ||
| 6039 | *** New function `redirect-debugging-output' can be used to redirect | 5334 | *** New function `redirect-debugging-output' can be used to redirect |
| 6040 | debugging output on the stderr file handle to a file. | 5335 | debugging output on the stderr file handle to a file. |
| 6041 | 5336 | ||
| 6042 | ** Miscellaneous: | 5337 | ** Miscellaneous: |
| 6043 | 5338 | ||
| 6044 | +++ | ||
| 6045 | *** A number of hooks have been renamed to better follow the conventions: | 5339 | *** A number of hooks have been renamed to better follow the conventions: |
| 6046 | 5340 | ||
| 6047 | `find-file-hooks' to `find-file-hook', | 5341 | `find-file-hooks' to `find-file-hook', |
| @@ -6054,50 +5348,41 @@ debugging output on the stderr file handle to a file. | |||
| 6054 | 5348 | ||
| 6055 | In each case the old name remains as an alias for the moment. | 5349 | In each case the old name remains as an alias for the moment. |
| 6056 | 5350 | ||
| 6057 | +++ | ||
| 6058 | *** Variable `local-write-file-hooks' is marked obsolete. | 5351 | *** Variable `local-write-file-hooks' is marked obsolete. |
| 6059 | 5352 | ||
| 6060 | Use the LOCAL arg of `add-hook'. | 5353 | Use the LOCAL arg of `add-hook'. |
| 6061 | 5354 | ||
| 6062 | --- | ||
| 6063 | *** New function `x-send-client-message' sends a client message when | 5355 | *** New function `x-send-client-message' sends a client message when |
| 6064 | running under X. | 5356 | running under X. |
| 6065 | 5357 | ||
| 6066 | ** GC changes: | 5358 | ** GC changes: |
| 6067 | 5359 | ||
| 6068 | +++ | ||
| 6069 | *** New variable `gc-cons-percentage' automatically grows the GC cons threshold | 5360 | *** New variable `gc-cons-percentage' automatically grows the GC cons threshold |
| 6070 | as the heap size increases. | 5361 | as the heap size increases. |
| 6071 | 5362 | ||
| 6072 | +++ | ||
| 6073 | *** New variables `gc-elapsed' and `gcs-done' provide extra information | 5363 | *** New variables `gc-elapsed' and `gcs-done' provide extra information |
| 6074 | on garbage collection. | 5364 | on garbage collection. |
| 6075 | 5365 | ||
| 6076 | +++ | ||
| 6077 | *** The normal hook `post-gc-hook' is run at the end of garbage collection. | 5366 | *** The normal hook `post-gc-hook' is run at the end of garbage collection. |
| 6078 | 5367 | ||
| 6079 | The hook is run with GC inhibited, so use it with care. | 5368 | The hook is run with GC inhibited, so use it with care. |
| 6080 | 5369 | ||
| 6081 | * New Packages for Lisp Programming in Emacs 22.1 | 5370 | * New Packages for Lisp Programming in Emacs 22.1 |
| 6082 | 5371 | ||
| 6083 | +++ | ||
| 6084 | ** The new library button.el implements simple and fast `clickable | 5372 | ** The new library button.el implements simple and fast `clickable |
| 6085 | buttons' in Emacs buffers. Buttons are much lighter-weight than the | 5373 | buttons' in Emacs buffers. Buttons are much lighter-weight than the |
| 6086 | `widgets' implemented by widget.el, and can be used by lisp code that | 5374 | `widgets' implemented by widget.el, and can be used by lisp code that |
| 6087 | doesn't require the full power of widgets. Emacs uses buttons for | 5375 | doesn't require the full power of widgets. Emacs uses buttons for |
| 6088 | such things as help and apropos buffers. | 5376 | such things as help and apropos buffers. |
| 6089 | 5377 | ||
| 6090 | --- | ||
| 6091 | ** The new library tree-widget.el provides a widget to display a set | 5378 | ** The new library tree-widget.el provides a widget to display a set |
| 6092 | of hierarchical data as an outline. For example, the tree-widget is | 5379 | of hierarchical data as an outline. For example, the tree-widget is |
| 6093 | well suited to display a hierarchy of directories and files. | 5380 | well suited to display a hierarchy of directories and files. |
| 6094 | 5381 | ||
| 6095 | +++ | ||
| 6096 | ** The new library bindat.el provides functions to unpack and pack | 5382 | ** The new library bindat.el provides functions to unpack and pack |
| 6097 | binary data structures, such as network packets, to and from Lisp | 5383 | binary data structures, such as network packets, to and from Lisp |
| 6098 | data structures. | 5384 | data structures. |
| 6099 | 5385 | ||
| 6100 | --- | ||
| 6101 | ** master-mode.el implements a minor mode for scrolling a slave | 5386 | ** master-mode.el implements a minor mode for scrolling a slave |
| 6102 | buffer without leaving your current buffer, the master buffer. | 5387 | buffer without leaving your current buffer, the master buffer. |
| 6103 | 5388 | ||
| @@ -6118,12 +5403,10 @@ SQL buffer. | |||
| 6118 | (function (lambda () | 5403 | (function (lambda () |
| 6119 | (master-set-slave sql-buffer)))) | 5404 | (master-set-slave sql-buffer)))) |
| 6120 | 5405 | ||
| 6121 | +++ | ||
| 6122 | ** The new library benchmark.el does timing measurements on Lisp code. | 5406 | ** The new library benchmark.el does timing measurements on Lisp code. |
| 6123 | 5407 | ||
| 6124 | This includes measuring garbage collection time. | 5408 | This includes measuring garbage collection time. |
| 6125 | 5409 | ||
| 6126 | +++ | ||
| 6127 | ** The new library testcover.el does test coverage checking. | 5410 | ** The new library testcover.el does test coverage checking. |
| 6128 | 5411 | ||
| 6129 | This is so you can tell whether you've tested all paths in your Lisp | 5412 | This is so you can tell whether you've tested all paths in your Lisp |
diff --git a/etc/ORDERS b/etc/ORDERS index 8c612a1b1b6..e08931e7ead 100644 --- a/etc/ORDERS +++ b/etc/ORDERS | |||
| @@ -8,6 +8,6 @@ For more information, see the order form on the web at | |||
| 8 | Your purchases will help support further development of Emacs and | 8 | Your purchases will help support further development of Emacs and |
| 9 | other free software programs. | 9 | other free software programs. |
| 10 | 10 | ||
| 11 | You can also make tax-deductable donations to the Free Software | 11 | You can also make tax-deductible donations to the Free Software |
| 12 | Foundation, a not-for-profit organization (assuming you pay US taxes) | 12 | Foundation, a not-for-profit organization (assuming you pay US taxes) |
| 13 | - see <http://www.gnu.org/help/donate.html>. | 13 | - see <http://www.gnu.org/help/donate.html>. |
diff --git a/etc/PROBLEMS b/etc/PROBLEMS index be56254dcd7..f42013fc109 100644 --- a/etc/PROBLEMS +++ b/etc/PROBLEMS | |||
| @@ -217,15 +217,15 @@ configuring your compiler to use the native linker instead of GNU ld. | |||
| 217 | This happens because of bugs in Gtk+. Gtk+ 2.10 seems to be OK. See bug | 217 | This happens because of bugs in Gtk+. Gtk+ 2.10 seems to be OK. See bug |
| 218 | http://bugzilla.gnome.org/show_bug.cgi?id=85715. | 218 | http://bugzilla.gnome.org/show_bug.cgi?id=85715. |
| 219 | 219 | ||
| 220 | ** Emacs compiled with Gtk+ crashes on startup on cygwin. | 220 | ** Emacs compiled with Gtk+ crashes on startup on Cygwin. |
| 221 | 221 | ||
| 222 | A typical error message is | 222 | A typical error message is |
| 223 | ***MEMORY-ERROR***: emacs[5172]: GSlice: failed to allocate 504 bytes | 223 | ***MEMORY-ERROR***: emacs[5172]: GSlice: failed to allocate 504 bytes |
| 224 | (alignment: 512): Function not implemented | 224 | (alignment: 512): Function not implemented |
| 225 | 225 | ||
| 226 | Emacs supplies its own malloc, but glib (part of Gtk+) calls memalign and on | 226 | Emacs supplies its own malloc, but glib (part of Gtk+) calls memalign and on |
| 227 | cygwin that becomes the cygwin supplied memalign. As malloc is not the | 227 | Cygwin, that becomes the Cygwin supplied memalign. As malloc is not the |
| 228 | cygwin malloc, the cygwin memalign always returns ENOSYS. A fix for this | 228 | Cygwin malloc, the Cygwin memalign always returns ENOSYS. A fix for this |
| 229 | problem would be welcome. | 229 | problem would be welcome. |
| 230 | 230 | ||
| 231 | * General runtime problems | 231 | * General runtime problems |
| @@ -390,9 +390,13 @@ again to say this: | |||
| 390 | 390 | ||
| 391 | *** Emacs does not know your host's fully-qualified domain name. | 391 | *** Emacs does not know your host's fully-qualified domain name. |
| 392 | 392 | ||
| 393 | For example, (system-name) returns some variation on | ||
| 394 | "localhost.localdomain", rather the name you were expecting. | ||
| 395 | |||
| 393 | You need to configure your machine with a fully qualified domain name, | 396 | You need to configure your machine with a fully qualified domain name, |
| 394 | either in /etc/hosts, /etc/hostname, the NIS, or wherever your system | 397 | (i.e. a name with at least one ".") either in /etc/hosts, |
| 395 | calls for specifying this. | 398 | /etc/hostname, the NIS, or wherever your system calls for specifying |
| 399 | this. | ||
| 396 | 400 | ||
| 397 | If you cannot fix the configuration, you can set the Lisp variable | 401 | If you cannot fix the configuration, you can set the Lisp variable |
| 398 | mail-host-address to the value you want. | 402 | mail-host-address to the value you want. |
| @@ -1202,7 +1206,7 @@ The problems seem to depend on the version of LessTif and the Motif | |||
| 1202 | emulation for which it is set up. | 1206 | emulation for which it is set up. |
| 1203 | 1207 | ||
| 1204 | Only the Motif 1.2 emulation seems to be stable enough in LessTif. | 1208 | Only the Motif 1.2 emulation seems to be stable enough in LessTif. |
| 1205 | Lesstif 0.92-17's Motif 1.2 emulation seems to work okay on FreeBSD. | 1209 | LessTif 0.92-17's Motif 1.2 emulation seems to work okay on FreeBSD. |
| 1206 | On GNU/Linux systems, lesstif-0.92.6 configured with "./configure | 1210 | On GNU/Linux systems, lesstif-0.92.6 configured with "./configure |
| 1207 | --enable-build-12 --enable-default-12" is reported to be the most | 1211 | --enable-build-12 --enable-default-12" is reported to be the most |
| 1208 | successful. The binary GNU/Linux package | 1212 | successful. The binary GNU/Linux package |
| @@ -1299,7 +1303,7 @@ be carried out at the same time: | |||
| 1299 | improves performance dramatically, at the slight expense of correctness | 1303 | improves performance dramatically, at the slight expense of correctness |
| 1300 | of the X protocol. lbxproxy acheives the performance gain by grouping | 1304 | of the X protocol. lbxproxy acheives the performance gain by grouping |
| 1301 | several X requests in one TCP packet and sending them off together, | 1305 | several X requests in one TCP packet and sending them off together, |
| 1302 | instead of requiring a round-trip for each X request in a seperate | 1306 | instead of requiring a round-trip for each X request in a separate |
| 1303 | packet. The switches that seem to work best for emacs are: | 1307 | packet. The switches that seem to work best for emacs are: |
| 1304 | -noatomsfile -nowinattr -cheaterrors -cheatevents | 1308 | -noatomsfile -nowinattr -cheaterrors -cheatevents |
| 1305 | Note that the -nograbcmap option is known to cause problems. | 1309 | Note that the -nograbcmap option is known to cause problems. |
| @@ -1405,7 +1409,7 @@ The easy way to do this is to put | |||
| 1405 | 1409 | ||
| 1406 | in your site-init.el file. | 1410 | in your site-init.el file. |
| 1407 | 1411 | ||
| 1408 | * Runtime problems on character termunals | 1412 | * Runtime problems on character terminals |
| 1409 | 1413 | ||
| 1410 | ** Emacs spontaneously displays "I-search: " at the bottom of the screen. | 1414 | ** Emacs spontaneously displays "I-search: " at the bottom of the screen. |
| 1411 | 1415 | ||
| @@ -2356,7 +2360,7 @@ The relevant switch in this case is "-Xs" (``compile assuming | |||
| 2356 | *** Building Emacs over NFS fails with ``Text file busy''. | 2360 | *** Building Emacs over NFS fails with ``Text file busy''. |
| 2357 | 2361 | ||
| 2358 | This was reported to happen when building Emacs on a GNU/Linux system | 2362 | This was reported to happen when building Emacs on a GNU/Linux system |
| 2359 | (RedHat Linux 6.2) using a build directory automounted from Solaris | 2363 | (Red Hat Linux 6.2) using a build directory automounted from Solaris |
| 2360 | (SunOS 5.6) file server, but it might not be limited to that | 2364 | (SunOS 5.6) file server, but it might not be limited to that |
| 2361 | configuration alone. Presumably, the NFS server doesn't commit the | 2365 | configuration alone. Presumably, the NFS server doesn't commit the |
| 2362 | files' data to disk quickly enough, and the Emacs executable file is | 2366 | files' data to disk quickly enough, and the Emacs executable file is |
| @@ -2443,17 +2447,17 @@ files are installed. Then use: | |||
| 2443 | 2447 | ||
| 2444 | (using the location of the 32-bit X libraries on your system). | 2448 | (using the location of the 32-bit X libraries on your system). |
| 2445 | 2449 | ||
| 2446 | *** Building the Cygwin port for MS-Windows can fail with some GCC version | 2450 | *** Building the Cygwin port for MS-Windows can fail with some GCC versions |
| 2447 | 2451 | ||
| 2448 | Building Emacs 22 with Cygwin builds of GCC 3.4.4-1 and 3.4.4-2 is | 2452 | Building Emacs 22 with Cygwin builds of GCC 3.4.4-1 and 3.4.4-2 is |
| 2449 | reported to either fail or cause Emacs to segfault at run time. In | 2453 | reported to either fail or cause Emacs to segfault at run time. In |
| 2450 | addition, the Cygwin GCC 3.4.4-2 has problems with generating debug | 2454 | addition, the Cygwin GCC 3.4.4-2 has problems with generating debug |
| 2451 | info. Cygwin users are advised not to use these versions of GCC for | 2455 | info. Cygwin users are advised not to use these versions of GCC for |
| 2452 | compiling Emacs. GCC versions 4.0.3, 4.1.1, and 4.1.2 reportedly | 2456 | compiling Emacs. GCC versions 4.0.3, 4.0.4, 4.1.1, and 4.1.2 |
| 2453 | build a working Cygwin binary of Emacs, so we recommend these GCC | 2457 | reportedly build a working Cygwin binary of Emacs, so we recommend |
| 2454 | versions. Note that these three versions of GCC, 4.0.3, 4.1.1, and | 2458 | these GCC versions. Note that these versions of GCC, 4.0.3, 4.0.4, |
| 2455 | 4.1.2, are currently the _only_ versions known to succeed in building | 2459 | 4.1.1, and 4.1.2, are currently the _only_ versions known to succeed |
| 2456 | Emacs (as of v22.1). | 2460 | in building Emacs (as of v22.1). |
| 2457 | 2461 | ||
| 2458 | *** Building the native MS-Windows port with Cygwin GCC can fail. | 2462 | *** Building the native MS-Windows port with Cygwin GCC can fail. |
| 2459 | 2463 | ||
| @@ -2604,7 +2608,7 @@ The fix is to install a newer version of ncurses, such as version 4.2. | |||
| 2604 | 2608 | ||
| 2605 | *** Linux: Segfault during `make bootstrap' under certain recent versions of the Linux kernel. | 2609 | *** Linux: Segfault during `make bootstrap' under certain recent versions of the Linux kernel. |
| 2606 | 2610 | ||
| 2607 | With certain recent Linux kernels (like the one of Redhat Fedora Core | 2611 | With certain recent Linux kernels (like the one of Red Hat Fedora Core |
| 2608 | 1 and newer), the new "Exec-shield" functionality is enabled by default, which | 2612 | 1 and newer), the new "Exec-shield" functionality is enabled by default, which |
| 2609 | creates a different memory layout that breaks the emacs dumper. Emacs tries | 2613 | creates a different memory layout that breaks the emacs dumper. Emacs tries |
| 2610 | to handle this at build time, but if the workaround used fails, these | 2614 | to handle this at build time, but if the workaround used fails, these |
diff --git a/etc/SERVICE b/etc/SERVICE index 4d6009e9f36..3a057b98af1 100644 --- a/etc/SERVICE +++ b/etc/SERVICE | |||
| @@ -1,1378 +1,10 @@ | |||
| 1 | -*- text -*- | ||
| 2 | GNU Service Directory | 1 | GNU Service Directory |
| 3 | --------------------- | 2 | --------------------- |
| 4 | 3 | ||
| 5 | See the end of file for copyright information. | 4 | Please see <http://www.fsf.org/resources/service/> for a list of |
| 5 | people who have asked to be listed as offering support services for | ||
| 6 | GNU software, including GNU Emacs, for a fee or in some cases at no | ||
| 7 | charge. | ||
| 6 | 8 | ||
| 7 | This is a list of people who have asked to be listed as offering | ||
| 8 | support services for GNU software, including GNU Emacs, for a fee | ||
| 9 | or in some cases at no charge. | ||
| 10 | |||
| 11 | The information comes from the people who asked to be listed; | ||
| 12 | we do not include any information we know to be false, but we | ||
| 13 | cannot check out any of the information; we are transmitting it to | ||
| 14 | you as it was given to us and do not promise it is correct. | ||
| 15 | Also, this is not an endorsement of the people listed here. | ||
| 16 | We have no opinions and usually no information about the abilities of | ||
| 17 | any specific person. We provide this list to enable you to contact | ||
| 18 | service providers and decide for yourself whether to hire one. | ||
| 19 | |||
| 20 | Before FSF will list your name in the GNU Service Directory, we ask | ||
| 21 | that you agree informally to the following terms: | ||
| 22 | |||
| 23 | 1. You will not restrict (except by copyleft) the use or distribution | ||
| 24 | of any software, documentation, or other technical information you | ||
| 25 | supply anyone in the course of modifying, extending, or supporting GNU | ||
| 26 | software. This includes any information specifically designed to | ||
| 27 | ameliorate the use of GNU software. | ||
| 28 | |||
| 29 | 2. You will not take advantage of contact made through the Service | ||
| 30 | Directory to advertise an unrelated business (e.g., sales of | ||
| 31 | non-GNU-related proprietary information). You may spontaneously | ||
| 32 | mention your availability for general consulting, but you should not | ||
| 33 | promote a specific unrelated business unless the client asks. | ||
| 34 | |||
| 35 | Please include some indication of your rates, because otherwise users | ||
| 36 | have nothing to go by. Please put each e-mail address inside "<>". | ||
| 37 | Please put nothing else inside "<>". Thanks! | ||
| 38 | |||
| 39 | For a current copy of this directory, or to have yourself listed, ask: | ||
| 40 | service@gnu.org | ||
| 41 | |||
| 42 | ** Please keep the entries in this file alphabetical ** | ||
| 43 | ^_ | ||
| 44 | Aaronsen Group, Ltd. <gnu@aaronsen.com> | ||
| 45 | 600 Grant St. | ||
| 46 | Suite 5345 | ||
| 47 | Pittsburgh, PA 15219 US | ||
| 48 | +1 412 391 6000 voice | ||
| 49 | +1 412 361 5991 fax | ||
| 50 | http://www.aaronsen.com/gnu | ||
| 51 | |||
| 52 | The Aaronsen Group provides several levels of service in the free software | ||
| 53 | arena, from simple configuration and installation to large extensions and | ||
| 54 | new development. We specialize in unique applications, but have the | ||
| 55 | experience to handle all manner of prospects, from database-backed | ||
| 56 | web-sites to high-end multiprocessor clusters. | ||
| 57 | |||
| 58 | Our service area covers the US, with key offices in Pittsburgh, PA; San | ||
| 59 | Jose, CA; and New York, NY. | ||
| 60 | |||
| 61 | We are available for both hourly work (at $300 per hour, some qualified | ||
| 62 | discounts are available) and fixed-price projects. Work is done on the | ||
| 63 | client site, at our offices, or remote via Internet or telephone | ||
| 64 | connection | ||
| 65 | |||
| 66 | Updated: 2001-05-08 | ||
| 67 | ^_ | ||
| 68 | Alcôve | ||
| 69 | ------ | ||
| 70 | |||
| 71 | Alcôve, Centre Paris Pleyel, 153 bld Anatole France | ||
| 72 | 93200 Saint-Denis France | ||
| 73 | |||
| 74 | Email: <infos@alcove.fr> | ||
| 75 | |||
| 76 | Web: http://www.alcove.com | ||
| 77 | Tél.: +33 1 49 22 68 00 | ||
| 78 | Fax: +33 1 49 22 68 01 | ||
| 79 | |||
| 80 | Founded in 1996, Alcôve's main purpose is to promote and support the | ||
| 81 | use of GNU/Linux and OSS on the European market. | ||
| 82 | Expertise in OSS innovation is the foundation of all Alcôve's | ||
| 83 | activities. | ||
| 84 | We provide key accounts and leading businesses in the field of IT with : | ||
| 85 | |||
| 86 | Consultancy | ||
| 87 | Engineering | ||
| 88 | Training | ||
| 89 | Support | ||
| 90 | Technical watching brief | ||
| 91 | OSS Certification - Validation - Guarantee | ||
| 92 | Drivers for the linux kernel | ||
| 93 | Company directory and unified messaging | ||
| 94 | Linux Firewall Security Package | ||
| 95 | |||
| 96 | Keys: support services, consulting, open source software, GNU/Linux, | ||
| 97 | Apache, Perl, GNU, Samba, Zope, Imp, OpenLDAP | ||
| 98 | |||
| 99 | Average daily rate, depending on the job : 1000 euros. | ||
| 100 | |||
| 101 | Updated: 2001-06-26 | ||
| 102 | ^_ | ||
| 103 | Allegro Consultants, Inc. <info@gccsupport.com> | ||
| 104 | 1072 De Anza Blvd., Suite B101 | ||
| 105 | San Jose, CA 95129-3532 | ||
| 106 | USA | ||
| 107 | +1 408 252-2330 voice | ||
| 108 | +1 408 252-2334 fax | ||
| 109 | http://www.gccsupport.com | ||
| 110 | |||
| 111 | Allegro Consultants, Inc, in association with DIS International, is | ||
| 112 | now offering annual support contracts covering the GNU Compiler | ||
| 113 | Collection and related tools, including the GCC C and C++ compilers | ||
| 114 | for MPE/iX. | ||
| 115 | |||
| 116 | The free GCC C and C++ compilers have been available on MPE/iX for | ||
| 117 | several years now, and are used for mission-critical applications by | ||
| 118 | many organizations including Hewlett-Packard. Until now, assistance | ||
| 119 | was available only from Mark Klein of DIS on a limited, voluntary | ||
| 120 | basis. Mark is the person who originally ported GCC to the HP e3000, | ||
| 121 | and he continues to maintain the software and port new versions. | ||
| 122 | |||
| 123 | Support contracts start at $1,995.00/year for an organization | ||
| 124 | (unlimited number of HP e3000 computer systems) with two designated | ||
| 125 | callers. Additional options are available for large organizations who | ||
| 126 | need to designate more than two authorized callers, or who want the | ||
| 127 | additional security of 24x7 coverage. | ||
| 128 | |||
| 129 | Updated: 2001-06-12 | ||
| 130 | ^_ | ||
| 131 | Amazonia Computing | ||
| 132 | |||
| 133 | <rick@viclink.com> | ||
| 134 | http://www.viclink.com/~rick | ||
| 135 | |||
| 136 | 1981 NW Thomsen Lane | ||
| 137 | McMinnville, OR 97128 | ||
| 138 | 503-474-0572 | ||
| 139 | |||
| 140 | I provide development and technical support for free software | ||
| 141 | and open source systems including embedded programming, GNU/Linux, the | ||
| 142 | GNU development suite.. | ||
| 143 | |||
| 144 | I have over 10 years experience building and maintaining systems ranging | ||
| 145 | from medical patient monitoring systems to Linux device drivers for | ||
| 146 | custom PCI plug in cards. | ||
| 147 | |||
| 148 | Rates range from $75.00/hr to $90/hr USD. Will work for a lower rate | ||
| 149 | if in involves working in either Brazil, Vietnam, Indonesia, or Cuba. | ||
| 150 | I am also willing to work on fixed price contracts. | ||
| 151 | |||
| 152 | Updated: 2001-05-08 | ||
| 153 | ^_ | ||
| 154 | Dipl.-Inform. Gerd Aschemann <gerd@aschemann.net> | ||
| 155 | Osannstr. 49 | ||
| 156 | D-64285 Darmstadt | ||
| 157 | Tel.: +49 173 3264070 | ||
| 158 | http://www.aschemann.net/ | ||
| 159 | |||
| 160 | - Consultant | ||
| 161 | + Unix Network and System Administration | ||
| 162 | + Distributed Systems and Middleware Infrastructures | ||
| 163 | - former System Administrator (UNIX and NT) at CS Department, TU Darmstadt, Germany | ||
| 164 | - 20 years working in the CS field, System administration on different platforms | ||
| 165 | - 13 years with UNIX/Networking/FreeWare/GNU/X11 | ||
| 166 | - 10 years courses on Operating Systems and Distributed Systems | ||
| 167 | - Lectures on System and Network Administration | ||
| 168 | - Platforms: Solaris, GNU/Linux, SunOS, Ultrix, HP-UX, Digital Unix, AIX, SCO, FreeBSDs | ||
| 169 | - Distributed Platforms and Information Systems (CORBA, WWW, Java, SOAP) | ||
| 170 | |||
| 171 | Rates are at 180,-- DM (~85 US$) per hour minimum, depending on the job. | ||
| 172 | I am willing to travel for sufficiently large jobs. | ||
| 173 | |||
| 174 | Updated: 2001-05-09 | ||
| 175 | ^_ | ||
| 176 | Baker Research, Ltd. | ||
| 177 | P. O. Box 10036, Alexandria, VA 22310 | ||
| 178 | Phone: (703) 960-9500 (Voice) | ||
| 179 | (703) 960-8700 (Fax) | ||
| 180 | Web: http://www.baker-research.com | ||
| 181 | email: <solutions@baker-research.com> | ||
| 182 | Rate: $75.00/hr to $150.00/hr, or fixed-price projects. | ||
| 183 | |||
| 184 | Services: | ||
| 185 | |||
| 186 | --Customization of systems for user needs | ||
| 187 | --Software product evaluation and recommendation | ||
| 188 | --Full-lifecycle software development | ||
| 189 | --Programming (C/C++, tcl/tk, bash, perl) | ||
| 190 | --Custom backup and archival systems | ||
| 191 | --GNU/Linux system installation, configuration, and management | ||
| 192 | --Cluster systems support | ||
| 193 | -Installation, configuration, and management | ||
| 194 | -MPI and Myrinet support | ||
| 195 | --Data acquisition, management, visualization, and archival | ||
| 196 | |||
| 197 | Updated: 2001-05-11 | ||
| 198 | ^_ | ||
| 199 | Don Barry, Ph.D. <don@astro.cornell.edu> | ||
| 200 | Ithaca, NY | ||
| 201 | |||
| 202 | Astrophysicist with extensive and varied hacker background. Substantial | ||
| 203 | expertise in mathematical modeling, instrument interface, low-level and | ||
| 204 | high-level hardware control, statistical analysis, automated/mathematical | ||
| 205 | typesetting. Also fluent in opto/electro/mechanical design. I try to find | ||
| 206 | solutions using free software when possible and specialize in GNU/Linux | ||
| 207 | platforms. Degrees also in chemistry and mathematics. | ||
| 208 | |||
| 209 | Speak: C, APL, Fortran, J, Perl, Emacs Lisp, IDL, variety of machine | ||
| 210 | languages from CDC CYBER (!) to x86 families, TeX/LaTeX, sendmail, and | ||
| 211 | quite a few others. Experience on platforms from PDP to present. | ||
| 212 | |||
| 213 | Rates: $75--$150 per hour + travel (if required) depending on the needs of | ||
| 214 | the project, the level of support and availability required, and its | ||
| 215 | interest to me. | ||
| 216 | |||
| 217 | Services: consulting, design, porting, lecturing, support, project definition, | ||
| 218 | system implementation. | ||
| 219 | |||
| 220 | Updated: 2001-05-09 | ||
| 221 | ^_ | ||
| 222 | James Craig Burley | ||
| 223 | 97 Arrowhead Circle | ||
| 224 | Ashland, MA 01721 | ||
| 225 | Email: <craig@jcb-sc.com> | ||
| 226 | Web: http://world.std.com/~burley/ | ||
| 227 | |||
| 228 | Expertise (mainly Development and Maintenance): | ||
| 229 | Compilers for Imperative Languages (author of GNU Fortran, aka g77) | ||
| 230 | Operating System Kernels | ||
| 231 | Tools/Utilities | ||
| 232 | Microcode (mainly VLIW) and Assembler | ||
| 233 | Software-Development-System Architecture (including APIs, IDEs) | ||
| 234 | Debugging | ||
| 235 | Technical Writing (Manager of Documentation) | ||
| 236 | |||
| 237 | Experience: | ||
| 238 | Programming Languages C, PL/I, Fortran, PostScript | ||
| 239 | Operating Systems Unix, GNU/Linux, Solaris, HP-UX, VAX/VMS, PRIMOS, | ||
| 240 | MIT ITS, TOPS-10, TSS/8, IBM MVS | ||
| 241 | Assembler/Microcode Languages for Sun SPARC, HP-PA RISC, Numerix VLIWs, | ||
| 242 | VAX, Pr1me, IBM 360, PDP-10, PDP-8 | ||
| 243 | Scripting Languages (many) | ||
| 244 | APIs (many) | ||
| 245 | |||
| 246 | Rate: $180/hour | ||
| 247 | |||
| 248 | Updated: 2001-05-08 | ||
| 249 | ^_ | ||
| 250 | C2V Michel Delval <mfd@c2v.com> | ||
| 251 | 82 bd Haussmann Jean-Alain Le Borgne <jalb@c2v.com> | ||
| 252 | 75008 Paris | ||
| 253 | France | ||
| 254 | Tel (33 1) 40.08.07.07 | ||
| 255 | Fax (33 1) 43.87.35.99 | ||
| 256 | http://www.c2v.com/freesoft.htm | ||
| 257 | e-mail: <consult@c2v.com> | ||
| 258 | |||
| 259 | Services: we offer source or source+binary distribution, | ||
| 260 | installation, training, maintenance, technical support, | ||
| 261 | consulting, specific development and followup on the GNU software | ||
| 262 | development environment: Emacs, gcc/g++, binutils, gas, gdb. | ||
| 263 | |||
| 264 | Porting on new platforms, and professionally developing software | ||
| 265 | with the GNU tools in the Unix/X11 environment since they were | ||
| 266 | first available. | ||
| 267 | |||
| 268 | Experience: GNU C Compilation toolchain for the SGS-Thomson D950 | ||
| 269 | and ST20 DSP chips. | ||
| 270 | |||
| 271 | GNU C compilation toolchain (cross-compiler, compiler, linker, | ||
| 272 | assembler, debugger) for SparcV7 ERC32 based space systems | ||
| 273 | (Sextant Avionique / Alcatel Espace). | ||
| 274 | |||
| 275 | Feasability study, analysis and prototyping of a complete | ||
| 276 | compilation toolchain based on the GNU programming tools for the | ||
| 277 | CSEM RISC microprocessor family. | ||
| 278 | |||
| 279 | Rates: from 5000 FF/day to 750 000 FF/year, 40% discount for | ||
| 280 | educational institutions, add taxes and expenses. Ask for list. | ||
| 281 | |||
| 282 | Updated: 2001-05-09 | ||
| 283 | ^_ | ||
| 284 | Cendio Systems AB <info@cendio.com> | ||
| 285 | Teknikringen 3 | ||
| 286 | SE-583 30 Linkoping | ||
| 287 | SWEDEN | ||
| 288 | +46 13 21 46 00 voice | ||
| 289 | +46 13 21 47 00 fax | ||
| 290 | http://www.cendio.com/ <international site> | ||
| 291 | |||
| 292 | Cendio Systems develops, implements and integrates solutions based on | ||
| 293 | Open Source Software. We also develop and market the Fuego | ||
| 294 | Firewall(TM), an award winning and easy-to-use firewall, based on | ||
| 295 | GNU/Linux. | ||
| 296 | |||
| 297 | We offer professional services, including support, maintenance, | ||
| 298 | integration and development in the following areas: | ||
| 299 | |||
| 300 | * Embedded Linux | ||
| 301 | * Client/Server Solutions GNU/Linux/BSD | ||
| 302 | * Professional Training GNU/Linux, certifications from SAIR Linux/GNU | ||
| 303 | * Open Source Strategy | ||
| 304 | * Development/Adaptation of free software | ||
| 305 | |||
| 306 | Cendio Systems have deep roots in Linkoping University, and was | ||
| 307 | founded 1992 as Signum Support. Our headquarters resides in Mjardevi | ||
| 308 | Science Park in Linkoping and we have an office in Stockholm. We are | ||
| 309 | currently about fifty employees at both locations. | ||
| 310 | |||
| 311 | Cendio Systems won the Lotus 'Tux Award' at LotusSphere 2000 for "the | ||
| 312 | partner who best exemplifies a unique dedication to Lotus and Linux | ||
| 313 | technologies and has successfully executed their vision in the | ||
| 314 | marketplace." | ||
| 315 | |||
| 316 | Cendio Systems have the following certifications and memberships: | ||
| 317 | |||
| 318 | Association of Computing Machinery, Professional Membership | ||
| 319 | COMPAQ System Specialist (Intel and Alpha Systems) | ||
| 320 | Embedded Linux Consortium, Founding Member | ||
| 321 | IBM Value Added Reseller (Netfinity) | ||
| 322 | IBM Solution Provider (RS/6000) | ||
| 323 | SAIR GNU/Linux, Accredited Center for education | ||
| 324 | SGI Systems Integrator | ||
| 325 | |||
| 326 | Rates: Please request our price list. | ||
| 327 | |||
| 328 | Updated: 2001-05-09 | ||
| 329 | ^_ | ||
| 330 | Alex Cherepanov | ||
| 331 | 111 McDade Blvd, Apt. A-205, Folsom, PA 19033 | ||
| 332 | Phone: 610 529 3475 | ||
| 333 | email: <alexcher@erols.com> | ||
| 334 | Web: http://users.erols.com/alexcher/ | ||
| 335 | |||
| 336 | Services: Support and maintenance of free PostScript and PDF | ||
| 337 | software including Ghostscript, ps2pdf, a2ps, tiff2ps, pdfopt. | ||
| 338 | General imaging, font, and PDL consulting. | ||
| 339 | |||
| 340 | Experience: 12 years experience in software engineering, 5 years | ||
| 341 | in PostScript and digital color printing. | ||
| 342 | |||
| 343 | Rates: $50-75/hour, depending on contract length. | ||
| 344 | |||
| 345 | Updated: 2001-05-22 | ||
| 346 | ^_ | ||
| 347 | CodeSourcery, LLC <info@codesourcery.com> | ||
| 348 | 9978 Granite Point Ct | ||
| 349 | Granite Bay, CA 95746 | ||
| 350 | (650) 364-5360 | ||
| 351 | http://www.codesourcery.com | ||
| 352 | |||
| 353 | CodeSourcery specializes in customization of, enhancements to, and | ||
| 354 | support for all GNU software. We have particular experience in the | ||
| 355 | field of programming tools, and have been responsible for many | ||
| 356 | features in the GNU C and C++ compilers including the implementation | ||
| 357 | of member templates and type-based alias analysis. Mark Mitchell, one | ||
| 358 | of our co-founders, is a co-maintainer of the GNU Compiler Collection. | ||
| 359 | |||
| 360 | We also have experience with GNU tools ranging from emacs to binutils | ||
| 361 | to gdb to autoconf, and are willing to work on any and all free | ||
| 362 | software projects. | ||
| 363 | |||
| 364 | Please see our web page at www.codesourcery.com for more information | ||
| 365 | about our products, services, and prices. | ||
| 366 | |||
| 367 | Updated: 2001-05-16 | ||
| 368 | ^_ | ||
| 369 | Stuart Cracraft <cracraft@gnu.org> | ||
| 370 | P.O. Box 6061 | ||
| 371 | Laguna Niguel, CA, 92607, USA | ||
| 372 | Phone: 714-347-8106 (prefer email) | ||
| 373 | Rate: negotiable | ||
| 374 | |||
| 375 | Consultation topics: | ||
| 376 | Entire GNU suite - porting, compilation, installation, | ||
| 377 | user-training, administrator-training. | ||
| 378 | |||
| 379 | Method: via any combination of telephone, dialup, Internet, in-person, email. | ||
| 380 | |||
| 381 | Experience: supporting GNU since project inception, original port of | ||
| 382 | GNU Emacs to Sun Solaris, original author of GNU Emacs online tutorial. | ||
| 383 | Expertise in C, Emacs Lisp, Perl, Expect, Oracle, Informix, SunOS, Solaris, | ||
| 384 | NIS, NFS, system-monitoring via paging. Unix System and Database | ||
| 385 | administration or development. | ||
| 386 | |||
| 387 | Updated: 2000-12-13 | ||
| 388 | ^_ | ||
| 389 | Bruce Dawson - <jbd@codemeta.com> | ||
| 390 | CodeMeta, Inc. | ||
| 391 | Manchester, NH USA | ||
| 392 | 800-354-2209 | ||
| 393 | |||
| 394 | Specializing in GNU tools such as CVS, gnats, bash, gawk, fileutils... | ||
| 395 | |||
| 396 | Services: | ||
| 397 | |||
| 398 | o 800 phone support. | ||
| 399 | |||
| 400 | o Modification and development. | ||
| 401 | |||
| 402 | o Training. | ||
| 403 | |||
| 404 | Rate: Fixed rate deliverables or $110/hour for hourly work. | ||
| 405 | |||
| 406 | http://www.codemeta.com | ||
| 407 | |||
| 408 | Updated: 2001-05-09 | ||
| 409 | ^_ | ||
| 410 | Martin Deen Consulting | ||
| 411 | <sunra@mail.hypermart.net> | ||
| 412 | 426 Marietta St. #503 | ||
| 413 | Atlanta, GA 30313 | ||
| 414 | (V) 404-931-5392 | ||
| 415 | http://sunra.hypermart.net | ||
| 416 | |||
| 417 | Consultant with many years supporting the GNU/Linux environment and | ||
| 418 | working with Open Source solutions. Available for hourly and per | ||
| 419 | project work. Hourly rates start at $100/hr. Work can be done on | ||
| 420 | client site, offsite, or remotely via Internet. Can take engagements | ||
| 421 | in Atlanta with little notice, call for arangements elsewhere. | ||
| 422 | |||
| 423 | Updated: 2001-04-20 | ||
| 424 | ^_ | ||
| 425 | DSS Distributed Systems Software, Inc. | ||
| 426 | 3253 Georgia St. <dss@dss.bc.ca> | ||
| 427 | Richmond, British Columbia V7E 2R4 http://www.dss.bc.ca | ||
| 428 | CANADA (604) 270-9559 | ||
| 429 | |||
| 430 | GNU-related services: | ||
| 431 | We specialize in support for GCC (mainly C and C++), including porting, | ||
| 432 | retargeting, and customizing. | ||
| 433 | Also, GNU and other free software that falls within our areas of expertise. | ||
| 434 | |||
| 435 | Expertise: | ||
| 436 | DSS provides software design, implementation, and consulting services. | ||
| 437 | |||
| 438 | Distributed systems: | ||
| 439 | o Client/Server architectures, computer networking, communication | ||
| 440 | protocols | ||
| 441 | o Directory systems, including X.500 and LDAP | ||
| 442 | o High-performance and special-purpose distributed systems and databases: | ||
| 443 | scalability, reliability, availability, transactions | ||
| 444 | o Computer systems performance analysis | ||
| 445 | |||
| 446 | Compilers, translators, and interpreters, including "small" and | ||
| 447 | special-purpose languages | ||
| 448 | |||
| 449 | Rates: | ||
| 450 | Consulting rates are $65-$200 USD per hour, plus | ||
| 451 | applicable taxes. Fixed-cost projects are also possible. | ||
| 452 | |||
| 453 | Updated: 2001-05-10 | ||
| 454 | ^_ | ||
| 455 | John W. Eaton | ||
| 456 | <jwe@gnu.org>, <jwe@net66.com> | ||
| 457 | |||
| 458 | Experience: Original author and current maintainer of GNU Octave | ||
| 459 | (http://www.octave.org). | ||
| 460 | |||
| 461 | Derivatives of the Unix man utility that I wrote in 1990 | ||
| 462 | are currently distributed with several GNU/Linux systems. | ||
| 463 | |||
| 464 | Improved GNU Make's support for VPATH and object | ||
| 465 | libraries on VMS systems. | ||
| 466 | |||
| 467 | Various other enhancements and bug fixes for other free | ||
| 468 | software tools. | ||
| 469 | |||
| 470 | I have more than 18 years experience programming various | ||
| 471 | languages and systems, more than 13 years as a user and | ||
| 472 | system mangler of Unix systems, including Ultrix, SunOS, | ||
| 473 | AIX, HP/UX, BSD, IRIX, Digital Unix, and GNU/Linux. | ||
| 474 | Long-time user of GNU tools on all these platforms. | ||
| 475 | |||
| 476 | Programming: Octave, Matlab, C++, C, Fortran, Emacs Lisp, TeX/LaTeX, | ||
| 477 | AWK, M4, Autoconf, Make, Lex & YACC, Unix shell | ||
| 478 | programming, etc. | ||
| 479 | |||
| 480 | Services: Anything related to programming and extending Octave. | ||
| 481 | Porting, installation, and customization of GNU/Linux and | ||
| 482 | GNU tools. Unix system administration. | ||
| 483 | |||
| 484 | Rates: $100/hour + travel and expenses (if required). Will | ||
| 485 | consider travel for short periods and/or sufficiently | ||
| 486 | interesting jobs, but prefer to work via the net or email. | ||
| 487 | Lower rates for non-profits. | ||
| 488 | |||
| 489 | Updated: 2001-05-14 | ||
| 490 | ^_ | ||
| 491 | Echo Labs <echo@iinet.net.au> | ||
| 492 | 29 Weld St, http://www.iinet.net.au/~echo/ | ||
| 493 | Nedlands, WA 6009 | ||
| 494 | Perth, Australia | ||
| 495 | +61 (0) 41 356 0008 | ||
| 496 | |||
| 497 | Echo Labs is a software consultancy that also provides support and | ||
| 498 | development skills. Specialising in GNU software, particularly Tcl/Tk | ||
| 499 | and Linux. We can deliver systems at a fraction of the cost of those | ||
| 500 | based on more traditional technologies. Internet/intranet, telephony | ||
| 501 | and data communications solutions, for all platforms are undertaken. | ||
| 502 | GUI front-ends done quickly in rapid development process. | ||
| 503 | |||
| 504 | While typically involved in engineering and technical areas, any | ||
| 505 | GNU/Open Source software will be supported. | ||
| 506 | |||
| 507 | For further details see: http://www.iinet.net.au/~echo/ | ||
| 508 | |||
| 509 | Experience: 15+ years C/Unix, Sun, SCO, GNU/Linux, Win/NT. | ||
| 510 | Secure WWW servers (Apache SSL), Ecommerce solutions. | ||
| 511 | Systems programming, device drivers, hardware interfacing. | ||
| 512 | GNU tools/utilities, telephony and Embedded & realtime | ||
| 513 | systems. Communications protocols and implementation. | ||
| 514 | |||
| 515 | Degrees: BAppSc (CS) (Distinction), Curtin University, Perth | ||
| 516 | |||
| 517 | Rates: AUS $50-75/hr neg. | ||
| 518 | |||
| 519 | Updated: 2001-05-09 | ||
| 520 | ^_ | ||
| 521 | Noah Friedman <friedman@splode.com> | ||
| 522 | 6114 La Salle Ave. #739 | ||
| 523 | Oakland, CA 94611-2802 | ||
| 524 | |||
| 525 | Author of several Emacs Lisp packages and parts of Emacs, as well as | ||
| 526 | numerous network and unix system utilities. Co-maintained GNU Texinfo and | ||
| 527 | Autoconf for a couple of years. Experienced unix systems engineer. | ||
| 528 | FSF employee Feb 1991--Sep 1994. | ||
| 529 | |||
| 530 | I can perform installation, porting, and enhancement of all GNU software | ||
| 531 | and any other free software, especially for Linux/GNU systems; design | ||
| 532 | high-capacity hardware-redundant servers for production environments; | ||
| 533 | provide consulting on the use of version control management with CVS; and I | ||
| 534 | am willing to provide handholding for shell programming and Emacs Lisp | ||
| 535 | development. | ||
| 536 | |||
| 537 | Fees negotiable, averaging $100-$150/hour. I can work in the California | ||
| 538 | bay area or anywhere accessible on the Internet. For larger jobs I may be | ||
| 539 | willing to travel. | ||
| 540 | |||
| 541 | Updated: 2001-05-08 | ||
| 542 | ^_ | ||
| 543 | Brian Gough <bjg@network-theory.co.uk> | ||
| 544 | Network Theory Limited http://www.network-theory.co.uk/ | ||
| 545 | Bristol, United Kingdom | ||
| 546 | |||
| 547 | Tel: 0117 3179309 (in UK), +44 117 3179309 (outside UK) | ||
| 548 | |||
| 549 | I provide support and development of free software on a contract | ||
| 550 | basis. I can work at your site, over the internet, or by phone/email. | ||
| 551 | I have extensive experience with many free software packages, | ||
| 552 | particularly for web development. | ||
| 553 | |||
| 554 | I can also provide specialized consulting in numerical software | ||
| 555 | development for scientific and quantitative applications. | ||
| 556 | |||
| 557 | Rate: 40-60 pounds/hour, depending on location. | ||
| 558 | |||
| 559 | Updated: 2001-09-05 | ||
| 560 | ^_ | ||
| 561 | Ronald F. Guilmette <rfg@monkeys.com> | ||
| 562 | RG Consulting | ||
| 563 | 1751 East Roseville Pkwy. #1828 | ||
| 564 | Roseville, CA 95661 | ||
| 565 | Tel: +1 916 786 7945 | ||
| 566 | FAX: +1 916 786 5311 | ||
| 567 | |||
| 568 | Services: Development & porting of GNU software development tools. | ||
| 569 | |||
| 570 | GNU Contributions: | ||
| 571 | Invented, designed, and implemented the protoize and | ||
| 572 | unprotoize tools supplied with GCC2. | ||
| 573 | |||
| 574 | Designed and developed all code to support the generation | ||
| 575 | of Dwarf symbolic debugging information for System V Release | ||
| 576 | 4 in GCC2. | ||
| 577 | |||
| 578 | Performed original port of GNU compilers to SVr4 system. | ||
| 579 | |||
| 580 | Finished port of GNU compilers to Intel i860 RISC | ||
| 581 | processor. | ||
| 582 | |||
| 583 | Experience: 13+ years UNIX systems experience, all working on compilers | ||
| 584 | and related tools. | ||
| 585 | |||
| 586 | 7+ years working professionally on GCC, G++, and GDB under | ||
| 587 | contract to various firms including the Microelectronics | ||
| 588 | and Computer Technology Corporation (MCC), Data General (DG), | ||
| 589 | Network Computing Devices (NCD), and Intel Corp. | ||
| 590 | |||
| 591 | Other qualifications: | ||
| 592 | Developer of the RoadTest (tm) C and C++ commercial | ||
| 593 | compiler test suites. | ||
| 594 | |||
| 595 | Former vice-chairman of UNIX International Programming | ||
| 596 | Languages Special Interest Group (UI/PLSIG). | ||
| 597 | |||
| 598 | Bachelor's and a Master's degrees, both in Computer Science. | ||
| 599 | |||
| 600 | Rates: Variable depending upon contract duration. Call for quote. | ||
| 601 | |||
| 602 | Updated: 2000-12-13 | ||
| 603 | ^_ | ||
| 604 | IDEALX | ||
| 605 | 15-17 avenue de ségur | ||
| 606 | 75007 Paris | ||
| 607 | France | ||
| 608 | |||
| 609 | Tel - +33144420000 Fax - +33144420001 | ||
| 610 | http://www.IDEALX.com, http://www.IDEALX.org | ||
| 611 | |||
| 612 | IDEALX is involved in the development of Open Source solutions,and | ||
| 613 | ensures their deployment and maintenance. | ||
| 614 | Development | ||
| 615 | Technical support | ||
| 616 | Technology watch | ||
| 617 | Consulting | ||
| 618 | Engineering | ||
| 619 | Training | ||
| 620 | |||
| 621 | Rates - Variable | ||
| 622 | |||
| 623 | Updated: 2000-12-13 | ||
| 624 | ^_ | ||
| 625 | Ehud Karni <kehud@iname.com> | ||
| 626 | Israel | ||
| 627 | |||
| 628 | Support of Emacs & Emacs lisp, GNU/Linux, Cygwin. | ||
| 629 | |||
| 630 | Fee: $75/hour. | ||
| 631 | |||
| 632 | Updated: 2001-05-09 | ||
| 633 | ^_ | ||
| 634 | Bradley M. Kuhn | ||
| 635 | <bkuhn@ebb.org> | ||
| 636 | http://www.ebb.org/bkuhn | ||
| 637 | |||
| 638 | I am available for part-time system administration, software development | ||
| 639 | and training. I have extensive experience with system administration of | ||
| 640 | GNU/Linux systems, and Free Software development. I have also taught | ||
| 641 | courses in C++ and Perl. As an employee of the FSF, I have a unique | ||
| 642 | perspective on the free software community. | ||
| 643 | |||
| 644 | Please visit my homepage for more information on my background and skills. | ||
| 645 | My resume is also available there. | ||
| 646 | |||
| 647 | I am available for both 1099 and W2 on-site contracting in the Boston, MA, | ||
| 648 | USA metropolitan area, as well as remote consulting via dialup or Internet | ||
| 649 | connection anywhere in the USA. I am not interested in relocation. | ||
| 650 | However, temporary (two week maximum) jobs with paid expenses at other | ||
| 651 | locations will be considered. | ||
| 652 | |||
| 653 | My rate varies greatly (between $25-$60/hour) depending on the | ||
| 654 | circumstances. Rates for non-profit organizations will be on the lower end | ||
| 655 | of the spectrum, if I support your cause. | ||
| 656 | |||
| 657 | Updated: 2001-06-14 | ||
| 658 | ^_ | ||
| 659 | Paul Gillingwater, CEO | ||
| 660 | CSO Lanifex Unternehmensberatungs & Softwareentwicklung GmbH | ||
| 661 | Praterstrasse 60 | ||
| 662 | A-1020 Vienna, Austria | ||
| 663 | http://www.lanifex.com | ||
| 664 | Phone.: +43/1/2699293-21 | ||
| 665 | Fax.: +43/1/2699293-13 | ||
| 666 | Mobile.: +43/699/19223085 | ||
| 667 | |||
| 668 | CSO Lanifex is an effective team of software developers who are | ||
| 669 | actively implementing Web-based database systems, using a variety of | ||
| 670 | Open Source technologies, including GNU/Linux, PHP, MySQL, Perl and | ||
| 671 | especially the Midgard Project. | ||
| 672 | |||
| 673 | Our speciality is Web development with content management, especially | ||
| 674 | for larger Web portals and e-Commerce systems. We're very much | ||
| 675 | in-favour of Free (as in speech) software, and have used it for almost | ||
| 676 | all of our customers. | ||
| 677 | |||
| 678 | We have eight staff, with a variety of skills, including RHCE, PHP, | ||
| 679 | Perl, C, Java, SQL, network design, security consulting, Internet | ||
| 680 | routing, UMS etc. The CEO personally has over 20 years of experience | ||
| 681 | with UNIX, and more than 10 years experience with a variety of | ||
| 682 | Internet technologies. For a more complete list, please refer to our | ||
| 683 | Web site listed below. | ||
| 684 | |||
| 685 | For further details see: http://www.lanifex.com | ||
| 686 | |||
| 687 | Rates: ATS 1.500/hr neg. | ||
| 688 | |||
| 689 | Updated: 2000-12-19 | ||
| 690 | ^_ | ||
| 691 | Greg Lehey | ||
| 692 | LEMIS | ||
| 693 | PO Box 460 | ||
| 694 | Echunga SA 5153 | ||
| 695 | Australia | ||
| 696 | |||
| 697 | Phone: +61-8-8388-8286 | ||
| 698 | Fax: +61-8-8388-8725 | ||
| 699 | Mobile: +61-418-838-708 | ||
| 700 | Mail <grog@lemis.com> | ||
| 701 | |||
| 702 | Services: Supply, porting, installation, consultation on all GNU | ||
| 703 | products. | ||
| 704 | |||
| 705 | Experience: 25 years OS and compiler experience, ports of most GNU | ||
| 706 | products. Author of ported software CD-ROM for UNIX System V.4.2, | ||
| 707 | "Porting UNIX Software" (O'Reilly), "Installing and Running FreeBSD" | ||
| 708 | and "The Complete FreeBSD" (both Walnut Creek). | ||
| 709 | |||
| 710 | Rates: Choice of AUD 300 per hour or hotline rates AUD 6 per minute. | ||
| 711 | Outside Australia, $US 180 per hour or $US 3.50 per minute. Quick, | ||
| 712 | well prepared questions by mail may be free. | ||
| 713 | |||
| 714 | Updated: 2001-05-09 | ||
| 715 | ^_ | ||
| 716 | Alan Lehotsky <apl@alum.mit.edu> | ||
| 717 | Quality Software Management | ||
| 718 | 634 West St | ||
| 719 | Carlisle, MA 01741 | ||
| 720 | |||
| 721 | Phone: (978)287-0435 | ||
| 722 | Fax: (978)287-0436 | ||
| 723 | |||
| 724 | Services: | ||
| 725 | - Support for GNU compilers, including rehost/retarget | ||
| 726 | - GNU Binutils rehost/retarget. | ||
| 727 | - cgen/sim | ||
| 728 | - Perl internals hacking | ||
| 729 | - General system software work (SW tools, O/S, device drivers) | ||
| 730 | - runtime library (especially floating point) | ||
| 731 | - project management | ||
| 732 | - software process improvement | ||
| 733 | |||
| 734 | Experience: 20+ years of design and implementation of optimizing | ||
| 735 | compilers. "Mr. Bliss" at Digital in the 70's and early | ||
| 736 | 80's. Experience with Motorola 68k, PowerPC, SPARC, Intel | ||
| 737 | x86 and IA64 (Merced), MIPS, NS32K, ADI SHARC DSP, VAX, PDP-11, | ||
| 738 | PDP-10. Wrote or maintained compilers for Ada, BLISS, C, C++, | ||
| 739 | FORTRAN, Pascal, Modula/2, O/S experience includes Unix (OSF/1, | ||
| 740 | SunOS, Solaris, AIX, HP/UX), VAX/VMS, Windows/NT, MacOS. | ||
| 741 | |||
| 742 | 8 years experience with GCC internals, including major changes to | ||
| 743 | support 8 bit bytes on word-address Analog Devices SHARC DSP and | ||
| 744 | general support of PowerPC code generation. Retargetted gcc/binutils | ||
| 745 | cross-tools to ASIC used in optical switch. Retargeted gcc to 8 bit "internet toaster" | ||
| 746 | micro-computer. | ||
| 747 | |||
| 748 | References available | ||
| 749 | |||
| 750 | Rates: $110/hr. | ||
| 751 | fixed price possible for well-defined deliverables. | ||
| 752 | |||
| 753 | Updated: 2001-05-08 | ||
| 754 | ^_ | ||
| 755 | Reuven M. Lerner | ||
| 756 | Lerner Communications Consulting Ltd. | ||
| 757 | PO Box 518 | ||
| 758 | 105 Nahar Ha-Yarden Street | ||
| 759 | Modi'in 71700 | ||
| 760 | Israel <reuven@lerner.co.il> | ||
| 761 | |||
| 762 | Phone: 08-973-2225 (within Israel) | ||
| 763 | +972-8-973-2225 (outside of Israel) | ||
| 764 | |||
| 765 | Fax: 08-973-0477 (within Israel) | ||
| 766 | +972-8-973-0477 (outside of Israel) | ||
| 767 | |||
| 768 | WWW: http://www.lerner.co.il | ||
| 769 | |||
| 770 | We specialize in writing custom Web and Internet applications. In | ||
| 771 | particular: | ||
| 772 | |||
| 773 | - We create database-backed Web sites using Perl, Tcl, Python, Java, | ||
| 774 | Apache, mod_perl, MySQL, PostgreSQL, and (when free software doesn't | ||
| 775 | suffice) Oracle. | ||
| 776 | |||
| 777 | - We offer support and service for system administrators who need help | ||
| 778 | with their GNU/Linux systems. | ||
| 779 | |||
| 780 | - We offer training in a variety of programming languages (Perl, Tcl, | ||
| 781 | Python, and Java) and in GNU/Linux administration. | ||
| 782 | |||
| 783 | Consulting rates: $150/hour, or $100/hour for non-profits | ||
| 784 | |||
| 785 | Updated: 2001-05-09 | ||
| 786 | ^_ | ||
| 787 | Richard Levitte (in TeX: Richard Levitte | ||
| 788 | Levitte Programming Levitte Programming | ||
| 789 | Spannvagen 38, I Spannv\"agen 28, I | ||
| 790 | S-168 35 Bromma S-168 35 Bromma | ||
| 791 | Sweden Sweden) | ||
| 792 | Tel.nr.: +46 (8) 26 52 47 (there is an answering machine) | ||
| 793 | Cellular: +46 (708) 26 53 44 | ||
| 794 | e-mail: <levitte@lp.se> | ||
| 795 | |||
| 796 | What I do: | ||
| 797 | Primarily I work on GNU software for VMS, both VAX and AXP. I've | ||
| 798 | been porting GNU Emacs to VMS since spring 1991. I've ported a | ||
| 799 | bunch of other GNU programs as well. I maintain GNU vmslib. | ||
| 800 | For further info, see http://www.lp.se/~levitte/prof/resume.html | ||
| 801 | |||
| 802 | Programs supported: | ||
| 803 | To a varying degree (ranging from extension and porting to | ||
| 804 | installation and simple questions) at the time of updating this | ||
| 805 | entry: | ||
| 806 | - GNU vmslib, emacs, autoconf, zip, diffutils, m4, patch, texinfo, | ||
| 807 | C/C++; on both VMS and Unix. | ||
| 808 | - Other GNU programs to a small degree; on Unix. | ||
| 809 | For further info, look at http://www.lp.se/products/gnu.html | ||
| 810 | |||
| 811 | Experience: | ||
| 812 | Fluent in TeX/LaTeX and many programming languages. | ||
| 813 | Modified key elements in Emacs (e.g., memory and process management) | ||
| 814 | to work transparently on VMS. I have very good knowledge in the VMS | ||
| 815 | operating system. I'm also knowledged in the a few Unix flavors. | ||
| 816 | For further info, see http://www.lp.se/~levitte/prof/resume.html | ||
| 817 | |||
| 818 | Your Rate: | ||
| 819 | $70-$100/hour (500-800 SEK in sweden), plus expenses. My rates | ||
| 820 | are negotiable, depending on how interesting the project is to me. | ||
| 821 | |||
| 822 | Updated: 2000-05-28 | ||
| 823 | ^_ | ||
| 824 | Gordon Matzigkeit <gord@gnu.org> | ||
| 825 | Box 325 http://fig.org/~gord/ | ||
| 826 | Lumsden, Saskatchewan S0G 3C0 Voice: (306) 731-3011 | ||
| 827 | CANADA | ||
| 828 | |||
| 829 | I will gladly help novice and intermediate computer users to install, | ||
| 830 | understand, and use free software, whether or not I have prior | ||
| 831 | experience with that software. I know my limitations well, and will | ||
| 832 | freely give other contacts if I cannot solve your problem myself. | ||
| 833 | |||
| 834 | I have over 5 years of experience with several of the major free OSes: | ||
| 835 | GNU/Linux (Debian, Red Hat), NetBSD, FreeBSD, and GNU/Hurd. Some of | ||
| 836 | my specialties are networking, Emacs, Automake, Autoconf, C, Perl, and | ||
| 837 | shell script programming. | ||
| 838 | |||
| 839 | My rates are negotiable depending on the task: usually $40-$60 | ||
| 840 | (Canadian) per hour. Flat rates preferred. | ||
| 841 | |||
| 842 | Updated: 2000-12-19 | ||
| 843 | ^_ | ||
| 844 | NetGuide Scandinavia AB <info@netg.se> | ||
| 845 | Tankeg=E5ngen 4 | ||
| 846 | S-417 56 G=F6teborg, Sweden | ||
| 847 | +46 31 50 79 00 voice | ||
| 848 | +46 31 50 79 39 fax | ||
| 849 | http://www.netg.se | ||
| 850 | |||
| 851 | NetGuide Scandinavia AB is a company that does consultant jobs and holds | ||
| 852 | courses in the fields of Unix software, TCP/IP networking and Internet | ||
| 853 | applications. The people behind NetGuide Scandinavia AB have many years of | ||
| 854 | general Unix experience, both as system administrators and as | ||
| 855 | programmers, and also extensive experience in maintaining the GNU | ||
| 856 | programs; in administration as well as finding and fixing bugs. | ||
| 857 | |||
| 858 | Services offered: | ||
| 859 | |||
| 860 | - Installation and customizing GNU and other free software. We will | ||
| 861 | make free software as easy to install and use as shrink wrapped | ||
| 862 | programs. | ||
| 863 | - Service and support subscriptions. | ||
| 864 | - Warranty protection. | ||
| 865 | - Customization and porting. | ||
| 866 | - Subscriptions to new versions which we will send monthly or with | ||
| 867 | any other interval. | ||
| 868 | - Finding, recommending and investigating free software in any | ||
| 869 | area of the customers choice. | ||
| 870 | - Regular consulting. | ||
| 871 | - Support on Internet service software, especially the free | ||
| 872 | - Support on GNU/Linux. | ||
| 873 | - Freeware based courses in Unix usage, C, C++, or any GNU tools | ||
| 874 | |||
| 875 | Rates: For courses, contact us for a quote, | ||
| 876 | For consulting, $60-120/hour, depending on contract length. | ||
| 877 | |||
| 878 | Updated: 2000-12-13 | ||
| 879 | ^_ | ||
| 880 | Thien-Thi Nguyen | ||
| 881 | ttn@glug.org | ||
| 882 | San Diego, CA, USA | ||
| 883 | |||
| 884 | - scheme, common lisp, elisp, c, perl, verilog, sh, etc | ||
| 885 | - software architecture / implementation / testing | ||
| 886 | - hardware design / verification | ||
| 887 | - tools flow / environment tweaking / scripting | ||
| 888 | - simulators / transactors / stimulus generators | ||
| 889 | - glue code / integration | ||
| 890 | |||
| 891 | Resume: http://www.glug.org/people/ttn/resume.html | ||
| 892 | |||
| 893 | Rate: $100/hr, possibly less | ||
| 894 | |||
| 895 | Updated: 2001-05-08 | ||
| 896 | ^_ | ||
| 897 | David Nicol | ||
| 898 | Post office box 45163 | ||
| 899 | Kansas City, Missouri 64171 | ||
| 900 | <david@tipjar.com> | ||
| 901 | http://www.tipjar.com/dnconsult | ||
| 902 | |||
| 903 | Unix, GNU/Linux, Perl installation, C, C++, Lisp, Perl programming. | ||
| 904 | |||
| 905 | CGI programming. | ||
| 906 | |||
| 907 | Installation, porting. | ||
| 908 | |||
| 909 | Specification development, design, implementation, documentation. | ||
| 910 | |||
| 911 | Rate: $60/hour, or fixed contract. On-site support available in | ||
| 912 | greater Kansas City area. | ||
| 913 | |||
| 914 | Updated: 2001-05-08 | ||
| 915 | ^_ | ||
| 916 | Jonas Oberg (TeX: Jonas \"Oberg | ||
| 917 | Skalangsgatan 11B Sk\"al\"angsgatan 11B | ||
| 918 | S-723 36 Vasteras S-723 36 V\"aster\.as | ||
| 919 | Sweden Sweden) | ||
| 920 | |||
| 921 | Phone: +46-21-144831 | ||
| 922 | E-mail: <jonas@gnu.org> | ||
| 923 | |||
| 924 | I offer support for most GNU software including the GNU | ||
| 925 | Hurd and also do system administration on GNU systems. | ||
| 926 | I can do free software development and have a good | ||
| 927 | understanding of automake, autoconf, flex, bison, guile, | ||
| 928 | texinfo and much more. Rates around USD$100. | ||
| 929 | |||
| 930 | Updated: 2001-05-09 | ||
| 931 | ^_ | ||
| 932 | Peter Olsen | ||
| 933 | P.O. Box 410 | ||
| 934 | Simpsonville, MD 21150 | ||
| 935 | |||
| 936 | <p@sigmaxi.org> | ||
| 937 | |||
| 938 | What I do: Mathematical modeling and model building using Gnu | ||
| 939 | and other Free Software. Scientific and engineering | ||
| 940 | analysis, modeling, and programming in FORTRAN, C, LISP, | ||
| 941 | and Java. Statistical analysis. Emacs customization. | ||
| 942 | |||
| 943 | Examples of my previous work: | ||
| 944 | 1. I built the model used predict the | ||
| 945 | amount of work required to clean up the Exxon Valdez oil | ||
| 946 | spill. Model was completed in ten days, used to allocate | ||
| 947 | resources for $2 billion summer cleanup, predictions were | ||
| 948 | accurate. | ||
| 949 | 2. I built a model applying commercial capital | ||
| 950 | investment standards to a Federal Agency budget, helped | ||
| 951 | support $250 Million budget increase. | ||
| 952 | |||
| 953 | Credo: Engineering is the art of applying a professional | ||
| 954 | knowledge of mathematics and the physical sciences to | ||
| 955 | improve the quality of life. | ||
| 956 | |||
| 957 | Rates: $135/hour (+ travel and expenses) on site, | ||
| 958 | $95/hour remote access. | ||
| 959 | |||
| 960 | Notes: 1. Visiting Lecturer for Society for Industrial and Applied | ||
| 961 | Mathematics: Will speak without fee about Valdez model | ||
| 962 | (or other work) to Educational and not-for-profit | ||
| 963 | organizations (plus most-economical travel and living | ||
| 964 | expenses or travel or living arrangements in kind). | ||
| 965 | |||
| 966 | 2. I do not accept offers which pose the danger | ||
| 967 | of conflict of interest with any present or former client | ||
| 968 | or employer. | ||
| 969 | |||
| 970 | |||
| 971 | Updated: 2000-12-13 | ||
| 972 | ^_ | ||
| 973 | Open Systems Computing AS Open Systems Computing AS | ||
| 974 | Kongensgate 9 Rogaland Kunnskapspark, PB 8034 | ||
| 975 | N-0153 Oslo Prof. Olav Hanssensvei 11 | ||
| 976 | Norway N-4068 Stavanger | ||
| 977 | Norway | ||
| 978 | |||
| 979 | Phone: Fax: | ||
| 980 | +47 22 20 40 50 +47 22 20 02 85 | ||
| 981 | |||
| 982 | Web: E-mail: | ||
| 983 | http://www.osc.no <gnu-support@osc.no> | ||
| 984 | |||
| 985 | Open Systems Computing AS can provide programming support for all | ||
| 986 | GNU software -- extending or adopting it to meet customer needs. | ||
| 987 | Prices vary with software and project. Hourly fees are in the $80-120 | ||
| 988 | range. Fixed-priced projects are also available. Phone support is | ||
| 989 | available only for customers with support contracts. | ||
| 990 | |||
| 991 | Updated: 2001-05-09 | ||
| 992 | ^_ | ||
| 993 | Francesco Potortì <pot@gnu.org> | ||
| 994 | Via S.Stefano, 8 | ||
| 995 | 56123 Pisa, Italy | ||
| 996 | Tel. (050)560671 | ||
| 997 | |||
| 998 | Emacs: installation and maintenance, training and tutorials, | ||
| 999 | customisation, extensions, troubleshooting. Author of some of | ||
| 1000 | the packages in the emacs distribution, has made the porting | ||
| 1001 | of emacs to the Motorola Delta architecture. | ||
| 1002 | |||
| 1003 | Other: installation and maintenance of GNU software. Experience with | ||
| 1004 | hylafax, RCS, gperf, etags, smail, indent, diff, gawk, gcc, | ||
| 1005 | screen. Is the current maintainer of etags. | ||
| 1006 | |||
| 1007 | Rates: 100 E/hour. | ||
| 1008 | Prefer e-mail communication to telephone. | ||
| 1009 | |||
| 1010 | Qualifications: Electronic Engineering degree, Pisa. Full time | ||
| 1011 | researcher in CNUCE-CNR. | ||
| 1012 | Familiar with elisp programming, porting of C programs, | ||
| 1013 | low-level TCP/IP programming for embedded systems. | ||
| 1014 | |||
| 1015 | Updated: 2001-05-09 | ||
| 1016 | ^_ | ||
| 1017 | Quoll Systems Pty Ltd, see http://quoll.com.au | ||
| 1018 | 8 Brown St, Fannie Bay, Darwin, NT, Australia. | ||
| 1019 | Phone: +61 8 8941 7150 Fax: +61 8 8941 7151 Mobile: 0409 691 399 | ||
| 1020 | e-mail: <pjm@gnu.org> or <info@quoll.com.au> | ||
| 1021 | |||
| 1022 | QS is a small (4 full-time staff + 15 part-timers) which does a variety | ||
| 1023 | of things in the *IX, technical computing area including: | ||
| 1024 | |||
| 1025 | o Systems development/maintainence (in most programming languages) | ||
| 1026 | o Training (GNU/Linux, FreeBSD, OpenBSD, Apache, Perl, ...) | ||
| 1027 | o Consulting in areas such as security, reliability, | ||
| 1028 | |||
| 1029 | Recent projects have included wind turbine generator control, water | ||
| 1030 | quality databases, remote area satelliate communications, Apache Web | ||
| 1031 | serving, ISP configurations, *nix training. Staff have provided some | ||
| 1032 | small contributions to the GNU and BSD projects over the years. We | ||
| 1033 | also have a bit of expertise in the embedded(inside people) systems | ||
| 1034 | area in addition to the standard building work. | ||
| 1035 | |||
| 1036 | We can provide local (i.e. southern hemisphere/south east asia) support | ||
| 1037 | for most of the vast range of free software systems including: GNU/Linux, | ||
| 1038 | FreeBSD, OpenBSD , OpenSSH, Sendmail, various compilers and networking | ||
| 1039 | tools. Remote support can also be arranged. | ||
| 1040 | |||
| 1041 | Rates: vary depending on the work, period and staff provided but let | ||
| 1042 | us pick 100$US/hr as a starting point for senior staff. | ||
| 1043 | |||
| 1044 | Updated: 2000-12-13 | ||
| 1045 | ^_ | ||
| 1046 | Red Hat, Inc. | ||
| 1047 | <embedded-info@redhat.com> | ||
| 1048 | 1325 Chesapeake Terrace | ||
| 1049 | Sunnyvale, CA 94089 USA | ||
| 1050 | Toll free: 866-2REDHAT ext. 3005 | ||
| 1051 | +1 408 542 9600 voice | ||
| 1052 | +1 408 542 9699 fax | ||
| 1053 | |||
| 1054 | GNUPro Tools | ||
| 1055 | Red Hat provides supported and maintained versions of gcc, g++, gdb | ||
| 1056 | with GUI, GNU linker and GNU macro assembler. In addition, Red Hat | ||
| 1057 | provides these GNU software development tools for well over many | ||
| 1058 | popular host-target configurations. Support includes bug fixes and | ||
| 1059 | semi-annual releases of the toolset. Each release is regression | ||
| 1060 | tested and includes substantial improvements and additions to the | ||
| 1061 | current release. Support is available through Incident support | ||
| 1062 | packages, or Unlimited support for specific user groups. GNUPro is | ||
| 1063 | available with standard, custom, and vintage toolchains for both | ||
| 1064 | native and embedded application development. New target processors | ||
| 1065 | are being added regularly. Rates for support for standard products | ||
| 1066 | start at $12,500. | ||
| 1067 | |||
| 1068 | Embedded Linux | ||
| 1069 | Red Hat offers Red Hat Embedded Linux to companies looking for an open | ||
| 1070 | source and royalty-free runtime solution. Red Hat Embedded Linux | ||
| 1071 | currently supports certain ARM, StrongARM, and MIPS families of | ||
| 1072 | processors. Embedded Linux supports multiple graphics APIs, is | ||
| 1073 | compliant with POSIX APIs and thread support, can be configured as low | ||
| 1074 | as 512k memory footprint including TCP/IP and NFS built into the | ||
| 1075 | kernel, and supports journaling and transparent compression in | ||
| 1076 | filesystems. Support for new processors is available via Red Hat | ||
| 1077 | Professional Services. | ||
| 1078 | |||
| 1079 | Updated: 2001-05-16 | ||
| 1080 | ^_ | ||
| 1081 | Relogic AB | ||
| 1082 | Pipersgatan 26 | ||
| 1083 | Box 868 | ||
| 1084 | SE-112 28 Stockholm | ||
| 1085 | SWEDEN | ||
| 1086 | |||
| 1087 | web http://www.relogic.se | ||
| 1088 | e-mail info@relogic.se | ||
| 1089 | phone +46 708 800 000 | ||
| 1090 | fax +46 708 800 580 | ||
| 1091 | |||
| 1092 | Relogic provides experienced unix developers that know and love GNU | ||
| 1093 | products. We can take on anything from single contractor support to | ||
| 1094 | full scale projects. We know all programming languages and all Unix | ||
| 1095 | dialects. | ||
| 1096 | |||
| 1097 | Updated: 2000-12-14 | ||
| 1098 | ^_ | ||
| 1099 | Phillip Rulon | ||
| 1100 | 122 Blossom Rd. | ||
| 1101 | Westport, MA 02790 | ||
| 1102 | USA | ||
| 1103 | 508.672.3007 | ||
| 1104 | <pjr@gnu.org> | ||
| 1105 | |||
| 1106 | 15 years experience with GNU systems and tools. Available for any free | ||
| 1107 | software project. Most useful for network design and construction or | ||
| 1108 | dynamic web development. Very good Debian, Perl, and Apache. | ||
| 1109 | |||
| 1110 | Boston, travel OK. | ||
| 1111 | $100/hr, flat rate possible. | ||
| 1112 | |||
| 1113 | Updated: 2000-12-18 | ||
| 1114 | ^_ | ||
| 1115 | Stanislav Shalunov <shalunov@mccme.ru> | ||
| 1116 | |||
| 1117 | Customizing GNU Emacs (new modes OK). Installing and troubleshooting | ||
| 1118 | free software. Rate: $60-100/hour. NYC area, telecommuting preferred. | ||
| 1119 | References available. | ||
| 1120 | |||
| 1121 | Updated: 2000-12-12 | ||
| 1122 | ^_ | ||
| 1123 | SRA (Software Research Associates, Inc., Japan) <info-wingnut@sra.co.jp> | ||
| 1124 | 1-1-1, Hirakawa-cho, Chiyoda-ku | ||
| 1125 | Tokyo 102-8605 Japan | ||
| 1126 | |||
| 1127 | +81-3-3234-5610 voice | ||
| 1128 | +81-3-3234-5556 fax | ||
| 1129 | |||
| 1130 | http://www.sra.co.jp/wingnut/ | ||
| 1131 | http://www.sra.co.jp/wingnut/chirashi-e.html | ||
| 1132 | http://www.sra.co.jp/wingnut/service.html | ||
| 1133 | http://osb.sra.co.jp/WingnutSupport/ | ||
| 1134 | |||
| 1135 | We provide GNU software support at a reasonable charge, | ||
| 1136 | aiming to promote the sound growth of free software and to | ||
| 1137 | create a new culture in the software world. | ||
| 1138 | |||
| 1139 | News: | ||
| 1140 | |||
| 1141 | We have just started "GCC and CVS membership support service". | ||
| 1142 | We provide various support menus. Please refer to | ||
| 1143 | http://osb.sra.co.jp/WingnutSupport/ for details. | ||
| 1144 | |||
| 1145 | What we provide is: | ||
| 1146 | |||
| 1147 | 1. Research and development of GNU software. | ||
| 1148 | 2. Development, porting, and customization of GNU software itself. | ||
| 1149 | 3. Helping people who are willing to port and provide GNU software | ||
| 1150 | to their customers, but are unable to do so due to a lack of resources. | ||
| 1151 | 4. Providing a variety of educational and training services including | ||
| 1152 | how to port or to customize. | ||
| 1153 | 5. The result of the work will become free software covered under the | ||
| 1154 | GNU licenses (GPL or LGPL), so it will be possible not only to share | ||
| 1155 | the results with others but to eliminate unnecessary investment also. | ||
| 1156 | 6. Passing the result to the program package maintainers (if needed). | ||
| 1157 | 7. Also, making contributions to FSF (Free Software Foundation, Inc.) | ||
| 1158 | which is the organization that develops and distributes GNU software | ||
| 1159 | worldwide. | ||
| 1160 | |||
| 1161 | Furthermore, we provide services *native to Japan*, that is, | ||
| 1162 | services for Japanese-speaking people --- receiving inquiries and | ||
| 1163 | answering in Japanese. | ||
| 1164 | |||
| 1165 | Rates: | ||
| 1166 | Determined by estimation. | ||
| 1167 | |||
| 1168 | Updated: 2001-05-21 | ||
| 1169 | ^_ | ||
| 1170 | Andre Spiegel <spiegel@gnu.org> | ||
| 1171 | Dipl.-Inform. | ||
| 1172 | Berlin, Germany | ||
| 1173 | |||
| 1174 | Maintainer of the GNU Emacs version control package (VC). | ||
| 1175 | |||
| 1176 | I can provide consulting and practical help for the installation and | ||
| 1177 | administration of GNU/Linux systems, in particular Debian. Also | ||
| 1178 | knowledgeable on many other Unix derivates, and network technology. | ||
| 1179 | Installation, porting and customization of GNU software is possible; I | ||
| 1180 | have programming experience in C, C++, Java, and Emacs Lisp, among | ||
| 1181 | others. Expertise in version control using RCS or CVS. I also give | ||
| 1182 | seminars on the above subjects. | ||
| 1183 | |||
| 1184 | Rates: 150 DM/hr (US$ 85) | ||
| 1185 | |||
| 1186 | Updated: 2001-05-09 | ||
| 1187 | ^_ | ||
| 1188 | Name: Julian Stacey <jhs@freebsd.org> <jhs@bim.bsn.com> <jhs@muc.de> | ||
| 1189 | Location: Muenchen, Deutschland (Munich, Germany). | ||
| 1190 | Qualifications: University Degree, BSc Hons Computers & Cybernetics, 1980. | ||
| 1191 | Phone: +49.89.268616 Fax: +49.89.2608126 Data: +49.89.26023276 | ||
| 1192 | Resume: http://bim.bsn.com/~jhs/ Older: http://www.freebsd.org/~jhs/ | ||
| 1193 | Time Zone: +01:00 | ||
| 1194 | Rate: DM 200 - DM 160 / Hour. | ||
| 1195 | Specialisation: Unix (Pref. BSD or Linux), C, X-Windows, FSF tools, firewalls, | ||
| 1196 | systems engineering, hardware interfacing, real time/embedded, | ||
| 1197 | custom design & porting. No { Emacs, Cobol, Microsoft }. | ||
| 1198 | Free Sources: All BSD sources (updated daily), X-Windows, XFree86, FSF. | ||
| 1199 | Personal sources are here: http://bim.bsn.com/~jhs/src/ | ||
| 1200 | Copy Charge dependent on time+postage+media | ||
| 1201 | Free GCC-1.40: For Symmetric Computer Systems Model 375 (native cc is broken). | ||
| 1202 | Languages: I am English. Ich verstehe Deutsch. Je comprend Francais, | ||
| 1203 | (mais je ecris une response en Anglais). Avoid dialect, | ||
| 1204 | (use Hoch Deutsch, not Bayerisch); Spell slowly & clearly, | ||
| 1205 | (umlauts are not recognised); Use single digits: avoid | ||
| 1206 | inverted German pairs (EG "eight hundred, two and thirty", | ||
| 1207 | & convoluted French ("four twenties and fifteen"). | ||
| 1208 | Contact: State aprox. days/weeks/months you want professional | ||
| 1209 | consultancy at full commercial rates, .. OR .. | ||
| 1210 | Note I am NOT a free help desk ! | ||
| 1211 | Post your questions to an Internet newsgroup, & let those with | ||
| 1212 | most time, best knowledge, & inclination answer. If you must | ||
| 1213 | phone me (& I'd much prefer you did Not), Rules apply: First | ||
| 1214 | ask for a few minutes advice "Free Of Charge". (Do not swamp | ||
| 1215 | me with your problem & leave me to deduce you are not a paying | ||
| 1216 | customer). Use some English. Give an email address for | ||
| 1217 | forwarding later info. Volunteer to phone back later to hear | ||
| 1218 | subsequent info/solutions I/friends/net come up with. I do not | ||
| 1219 | pay phone charges to call strangers. | ||
| 1220 | |||
| 1221 | Updated: 2001-05-09 | ||
| 1222 | ^_ | ||
| 1223 | Richard M. Stallman <rms@gnu.org> | ||
| 1224 | 545 Tech Sq, Rm 430 | ||
| 1225 | Cambridge, MA 02139 | ||
| 1226 | |||
| 1227 | Emacs: anything whatever | ||
| 1228 | Is anyone interested in courses in using or extending GNU Emacs? | ||
| 1229 | |||
| 1230 | Original inventor of Emacs and main author of GNU Emacs and GCC. | ||
| 1231 | |||
| 1232 | Rates: $6/min or $250/hr. | ||
| 1233 | |||
| 1234 | Updated: 2000-12-13 | ||
| 1235 | ^_ | ||
| 1236 | Static Free Software | ||
| 1237 | 4119 Alpine Road | ||
| 1238 | Portola Valley, Ca 94028 | ||
| 1239 | (650) 851-2927 | ||
| 1240 | http://www.staticfreesoft.com | ||
| 1241 | |||
| 1242 | Static Free Software developed and supports the "Electric VLSI Design | ||
| 1243 | System". Steven Rubin, the founder of the company and author of | ||
| 1244 | Electric, is available for enhancements, support, and training. | ||
| 1245 | |||
| 1246 | Please see our web page at www.staticfreesoft.com for more information | ||
| 1247 | about our products, services, and prices. | ||
| 1248 | |||
| 1249 | Updated: 2000-12-12 | ||
| 1250 | ^_ | ||
| 1251 | Swing Digital Ltd. <hello@swingdigital.com> | ||
| 1252 | 15-17 Middle Street | ||
| 1253 | Brighton | ||
| 1254 | BN1 1AL | ||
| 1255 | United Kingdom | ||
| 1256 | Tel +44 (0) 1273 20 11 66 | ||
| 1257 | Fax +44 (0) 1273 20 11 68 | ||
| 1258 | http://www.swingdigital.com | ||
| 1259 | |||
| 1260 | Swing Digital actively supports the development of the GNU.FREE | ||
| 1261 | Internet Voting system. Through this support we have gained the | ||
| 1262 | unique expertise to support, install and run GUN.FREE-based Internet | ||
| 1263 | votes. We are also available in a consultancy basis to offer advice | ||
| 1264 | for organisations wishing to run GNU.FREE themselves. | ||
| 1265 | |||
| 1266 | Our consultancy fees start at 900 Euro (550 UK pounds) per day. We | ||
| 1267 | are also able to securely host Internet Votes, prices on application. | ||
| 1268 | |||
| 1269 | Updated: 2001-07-23 | ||
| 1270 | ^_ | ||
| 1271 | Kayvan A. Sylvan <kayvan@sylvan.com> | ||
| 1272 | Sylvan Associates, Inc. | ||
| 1273 | 879 Lewiston Drive | ||
| 1274 | San Jose, CA 95136-1517 | ||
| 1275 | Phone: (408) 978-1407 | ||
| 1276 | Fax: (408) 978-0472 | ||
| 1277 | |||
| 1278 | I will help you port, install and customize GNU Emacs, GCC, G++, GNUmake, | ||
| 1279 | bison, and other GNU tools on almost any architecture and operating | ||
| 1280 | system. Questions answered. GNU C/C++, Java and lisp hacking available. | ||
| 1281 | |||
| 1282 | I will also do ongoing support and periodic upgrades if you get on my GNU | ||
| 1283 | software subscription list. | ||
| 1284 | |||
| 1285 | Rates: $100-$125/hour, depending on type and quantity of work. | ||
| 1286 | Substantial discounts for long-term contracts and also for educational or | ||
| 1287 | non-profit institutions. | ||
| 1288 | |||
| 1289 | Experience: Many different Unix systems (2.9BSD to 4.4BSD, Xenix, SVR3 and | ||
| 1290 | SVR4, Solaris, Linux, FreeBSD). Systems programming and system | ||
| 1291 | administration on all brands of Unix. | ||
| 1292 | |||
| 1293 | Kernel hacking experience. Lots of porting experience. | ||
| 1294 | |||
| 1295 | Updated: 2001-05-08 | ||
| 1296 | ^_ | ||
| 1297 | Alfredo Tomasini | ||
| 1298 | <alto555@earthlink.net>, <alfredo.tomasini@c-cube.com> | ||
| 1299 | |||
| 1300 | GNU/Linux Intel desktop/laptop installation, setup, and networking. | ||
| 1301 | Installation of GNU tools on SunOS and GNU/Linux. | ||
| 1302 | Sed and Gawk script development. | ||
| 1303 | |||
| 1304 | Languages: English and Italian. | ||
| 1305 | |||
| 1306 | Fee: $50/hour. | ||
| 1307 | |||
| 1308 | Updated: 2000-12-13 | ||
| 1309 | ^_ | ||
| 1310 | Leonard H. Tower Jr. <tower@ai.mit.edu> <tower@art.net> | ||
| 1311 | 36 Porter Street | ||
| 1312 | Somerville, MA 02143-2313 | ||
| 1313 | USA | ||
| 1314 | +1-617-623-7739 | ||
| 1315 | |||
| 1316 | Will work on most GNU, GPLed, and Open Source software. | ||
| 1317 | Installation, handholding, trouble shooting, extensions, teaching, etc. | ||
| 1318 | |||
| 1319 | Rates: $ 225.00/hour + travel expenses. Fixed fee quotes available. | ||
| 1320 | Negotiable for non-profits. | ||
| 1321 | |||
| 1322 | Experience: Have hacked on over a dozen architectures in many languages. Have | ||
| 1323 | system mothered too many varieties of Unixes. Assisted rms with the front end | ||
| 1324 | of GCC and its back-end support. Installed and worked with many GNU | ||
| 1325 | programs including GNU Emacs. Resume available on request. | ||
| 1326 | |||
| 1327 | Updated: 2001-05-10 | ||
| 1328 | ^_ | ||
| 1329 | Jody Winston | ||
| 1330 | xprt Computer Consulting, Inc. | ||
| 1331 | 731 Voyager | ||
| 1332 | Houston, TX, 77062 | ||
| 1333 | (281) 480-UNIX, <josephwinston@mac.com> | ||
| 1334 | |||
| 1335 | We have supported, installed, and used the entire GNU software suite | ||
| 1336 | for over 10 years on many different Unix platforms. We have written | ||
| 1337 | character device drivers and proc file systems for custom hardware | ||
| 1338 | running on GNU/Linux. We have developed extensions for tcl and Python. | ||
| 1339 | In addition, we have developed a custom X11 server and X input | ||
| 1340 | extensions. Our consulting rate is $150.00 US dollars per hour, | ||
| 1341 | negotiable, plus a per diem for out of town work. | ||
| 1342 | |||
| 1343 | Updated: 2001-05-08 | ||
| 1344 | ^_ | ||
| 1345 | The Written Word | ||
| 1346 | Web: http://thewrittenword.com | ||
| 1347 | Email: info@thewrittenword.com | ||
| 1348 | Tel: (800) 372-7476 | ||
| 1349 | |||
| 1350 | The Written Word provides CDs of pre-compiled Open Source applications | ||
| 1351 | on popular UNIX variants. Clients can purchase a one-time CD set | ||
| 1352 | ($149/set), or a subscription, which provides four quarterly releases. | ||
| 1353 | Two types of subscription are available: "media only" ($550/year), or | ||
| 1354 | "media and updates" ($1459/year). The "media and updates" | ||
| 1355 | subscription entitles the subscriber, via a web site, to patches, | ||
| 1356 | security fixes, new releases to existing packages, new packages, | ||
| 1357 | online documentation, and changelog information, between releases, and | ||
| 1358 | a central bug tracking system for all packages. | ||
| 1359 | |||
| 1360 | Updated: 2000-11-27 | ||
| 1361 | ^_ | ||
| 1362 | |||
| 1363 | For a current copy of this directory, or to have yourself listed, ask: | ||
| 1364 | fsforder@gnu.org | ||
| 1365 | |||
| 1366 | A current version should be available on our web site at http://www.gnu.org. | ||
| 1367 | |||
| 1368 | ** Please keep the entries in this file alphabetical ** | ||
| 1369 | |||
| 1370 | |||
| 1371 | Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 | ||
| 1372 | Free Software Foundation, Inc. | ||
| 1373 | |||
| 1374 | Verbatim copying and distribution of this document are permitted | ||
| 1375 | worldwide, without royalty, in any medium, provided this notice is | ||
| 1376 | preserved. | ||
| 1377 | 9 | ||
| 1378 | arch-tag: 1253ce32-1cbd-428a-ac36-70ed9e3999fc | 10 | arch-tag: 1253ce32-1cbd-428a-ac36-70ed9e3999fc |
| @@ -14,6 +14,16 @@ to the FSF. | |||
| 14 | 14 | ||
| 15 | * Small but important fixes needed in existing features: | 15 | * Small but important fixes needed in existing features: |
| 16 | 16 | ||
| 17 | ** Fix compilation when Xaw3d libraries are present but libxaw is not. | ||
| 18 | In new X11 versions, xaw3dg-dev does not depend on libxaw-dev, so the | ||
| 19 | latter need not be installed. As a result, all the source files that | ||
| 20 | look for include files in X11/Xaw should look in X11/Xaw3d if we are | ||
| 21 | using Xaw3d. | ||
| 22 | |||
| 23 | ** Compute the list of active keymaps *after* reading the first event. | ||
| 24 | |||
| 25 | ** Avoid using "iff" in doc strings. | ||
| 26 | |||
| 17 | ** mouse-autoselect-window should wait to select the window until | 27 | ** mouse-autoselect-window should wait to select the window until |
| 18 | the mouse is put to rest or after a delay or both, so that moving over | 28 | the mouse is put to rest or after a delay or both, so that moving over |
| 19 | a window doesn't select it. | 29 | a window doesn't select it. |
| @@ -82,8 +92,6 @@ current buffer. | |||
| 82 | 92 | ||
| 83 | ** Add function to redraw the tool bar. | 93 | ** Add function to redraw the tool bar. |
| 84 | 94 | ||
| 85 | ** Modify allout.el to use overlays, like outline.el. | ||
| 86 | |||
| 87 | ** M-! M-n should fetch the buffer-file-name as the default. | 95 | ** M-! M-n should fetch the buffer-file-name as the default. |
| 88 | 96 | ||
| 89 | ** Redesign the load-history data structure so it can cope better | 97 | ** Redesign the load-history data structure so it can cope better |
| @@ -92,6 +100,15 @@ current buffer. | |||
| 92 | 100 | ||
| 93 | ** make back_comment use syntax-ppss or equivalent. | 101 | ** make back_comment use syntax-ppss or equivalent. |
| 94 | 102 | ||
| 103 | ** Improve configure's treatment of NON_GNU_CPP on Solaris. | ||
| 104 | (patch available for after Emacs 22) | ||
| 105 | |||
| 106 | ** Consider improving src/sysdep.c's search for a fqdn. | ||
| 107 | http://lists.gnu.org/archive/html/emacs-devel/2007-04/msg00782.html | ||
| 108 | |||
| 109 | ** Find a proper fix for rcirc multiline nick adding. | ||
| 110 | http://lists.gnu.org/archive/html/emacs-devel/2007-04/msg00684.html | ||
| 111 | |||
| 95 | * Important features: | 112 | * Important features: |
| 96 | 113 | ||
| 97 | ** Provide user-friendly ways to list all available font families, | 114 | ** Provide user-friendly ways to list all available font families, |
| @@ -509,9 +526,6 @@ when the body only calls primitives. | |||
| 509 | ** Let LEIM handle the Mode_switch key like XIM does (i.e. a toggle like C-\ | 526 | ** Let LEIM handle the Mode_switch key like XIM does (i.e. a toggle like C-\ |
| 510 | but which can also be used as a modifier). | 527 | but which can also be used as a modifier). |
| 511 | 528 | ||
| 512 | ** Provide the toolbar on ttys. This could map a bit like tmm-menubar | ||
| 513 | for the menubar and buttons could look a bit like those used by customize. | ||
| 514 | |||
| 515 | ** Improve Help buffers: Change the face of previously visited links (like | 529 | ** Improve Help buffers: Change the face of previously visited links (like |
| 516 | Info, but also with regard to namespace), add a forward button to make the | 530 | Info, but also with regard to namespace), add a forward button to make the |
| 517 | Help buffer more browser like and gives the value of lisp expressions | 531 | Help buffer more browser like and gives the value of lisp expressions |
| @@ -529,7 +543,7 @@ but which can also be used as a modifier). | |||
| 529 | 543 | ||
| 530 | * Internal changes | 544 | * Internal changes |
| 531 | 545 | ||
| 532 | ** Cleanup all the GC_ mark bit stuff -- there is no longer any distiction | 546 | ** Cleanup all the GC_ mark bit stuff -- there is no longer any distinction |
| 533 | since the mark bit is no longer stored in the Lisp_Object itself. | 547 | since the mark bit is no longer stored in the Lisp_Object itself. |
| 534 | 548 | ||
| 535 | ** Merge ibuffer.el and buff-menu.el. | 549 | ** Merge ibuffer.el and buff-menu.el. |
| @@ -545,7 +559,7 @@ but which can also be used as a modifier). | |||
| 545 | a derived mode of sendmail.el. Or arrange for messages.el to be split | 559 | a derived mode of sendmail.el. Or arrange for messages.el to be split |
| 546 | into a small core and "the rest" so that we use less resources as long as | 560 | into a small core and "the rest" so that we use less resources as long as |
| 547 | we stick to the features provided in sendmail.el. | 561 | we stick to the features provided in sendmail.el. |
| 548 | 562 | ||
| 549 | ** Replace gmalloc.c with the modified Doug Lea code from the current | 563 | ** Replace gmalloc.c with the modified Doug Lea code from the current |
| 550 | GNU libc so that the special mmapping of buffers can be removed -- | 564 | GNU libc so that the special mmapping of buffers can be removed -- |
| 551 | that apparently loses under Solaris, at least. [fx has mostly done | 565 | that apparently loses under Solaris, at least. [fx has mostly done |
diff --git a/etc/emacs.1 b/etc/emacs.1 index 4ebcd7c632c..7d90d5a4410 100644 --- a/etc/emacs.1 +++ b/etc/emacs.1 | |||
| @@ -19,8 +19,7 @@ | |||
| 19 | .\" Boston, MA 02110-1301, USA. | 19 | .\" Boston, MA 02110-1301, USA. |
| 20 | .\" | 20 | .\" |
| 21 | '\" t | 21 | '\" t |
| 22 | .TH EMACS 1 "2001 November 23" | 22 | .TH EMACS 1 "2007 April 13" "GNU Emacs 22.1" |
| 23 | .UC 4 | ||
| 24 | .SH NAME | 23 | .SH NAME |
| 25 | emacs \- GNU project Emacs | 24 | emacs \- GNU project Emacs |
| 26 | .SH SYNOPSIS | 25 | .SH SYNOPSIS |
| @@ -40,11 +39,11 @@ written by the author of the original (PDP-10) | |||
| 40 | Richard Stallman. | 39 | Richard Stallman. |
| 41 | .br | 40 | .br |
| 42 | The primary documentation of GNU Emacs is in the GNU Emacs Manual, | 41 | The primary documentation of GNU Emacs is in the GNU Emacs Manual, |
| 43 | which you can read on line using Info, a subsystem of Emacs. Please | 42 | which you can read using Info, either from Emacs or as a standalone |
| 44 | look there for complete and up-to-date documentation. This man page | 43 | program. Please look there for complete and up-to-date documentation. |
| 45 | is updated only when someone volunteers to do so; the Emacs | 44 | This man page is updated only when someone volunteers to do so; the |
| 46 | maintainers' priority goal is to minimize the amount of time this man | 45 | Emacs maintainers' priority goal is to minimize the amount of time |
| 47 | page takes away from other more useful projects. | 46 | this man page takes away from other more useful projects. |
| 48 | .br | 47 | .br |
| 49 | The user functionality of GNU Emacs encompasses | 48 | The user functionality of GNU Emacs encompasses |
| 50 | everything other | 49 | everything other |
| @@ -58,7 +57,7 @@ but the facility assumes that you know how to manipulate | |||
| 58 | .I Emacs | 57 | .I Emacs |
| 59 | windows and buffers. | 58 | windows and buffers. |
| 60 | CTRL-h or F1 enters the Help facility. Help Tutorial (CTRL-h t) | 59 | CTRL-h or F1 enters the Help facility. Help Tutorial (CTRL-h t) |
| 61 | requests an interactive tutorial which can teach beginners the fundamentals | 60 | starts an interactive tutorial which can teach beginners the fundamentals |
| 62 | of | 61 | of |
| 63 | .I Emacs | 62 | .I Emacs |
| 64 | in a few minutes. | 63 | in a few minutes. |
| @@ -77,7 +76,7 @@ outline editing (Outline), compiling (Compile), running subshells | |||
| 77 | within | 76 | within |
| 78 | .I Emacs | 77 | .I Emacs |
| 79 | windows (Shell), running a Lisp read-eval-print loop | 78 | windows (Shell), running a Lisp read-eval-print loop |
| 80 | (Lisp-Interaction-Mode), and automated psychotherapy (Doctor). | 79 | (Lisp-Interaction-Mode), automated psychotherapy (Doctor), and much more. |
| 81 | .PP | 80 | .PP |
| 82 | There is an extensive reference manual, but | 81 | There is an extensive reference manual, but |
| 83 | users of other Emacses | 82 | users of other Emacses |
| @@ -201,11 +200,6 @@ Display the | |||
| 201 | .I Emacs | 200 | .I Emacs |
| 202 | window in reverse video. | 201 | window in reverse video. |
| 203 | .TP | 202 | .TP |
| 204 | .B \-i | ||
| 205 | Use the "kitchen sink" bitmap icon when iconifying the | ||
| 206 | .I Emacs | ||
| 207 | window. | ||
| 208 | .TP | ||
| 209 | .BI \-font " font, " \-fn " font" | 203 | .BI \-font " font, " \-fn " font" |
| 210 | Set the | 204 | Set the |
| 211 | .I Emacs | 205 | .I Emacs |
| @@ -262,8 +256,8 @@ with selecting or deselecting the tool bar and menu bar. | |||
| 262 | .BI \-fg " color" | 256 | .BI \-fg " color" |
| 263 | On color displays, sets the color of the text. | 257 | On color displays, sets the color of the text. |
| 264 | 258 | ||
| 265 | See the file | 259 | Use the command |
| 266 | .I /usr/lib/X11/rgb.txt | 260 | .I M-x list-colors-display |
| 267 | for a list of valid | 261 | for a list of valid |
| 268 | color names. | 262 | color names. |
| 269 | .TP | 263 | .TP |
| @@ -299,7 +293,6 @@ switch when invoking | |||
| 299 | from an | 293 | from an |
| 300 | .IR xterm (1) | 294 | .IR xterm (1) |
| 301 | window, display is done in that window. | 295 | window, display is done in that window. |
| 302 | This must be the first option specified in the command line. | ||
| 303 | .PP | 296 | .PP |
| 304 | You can set | 297 | You can set |
| 305 | .I X | 298 | .I X |
| @@ -431,43 +424,31 @@ make and distribute copies of the Emacs manual. The TeX source to the | |||
| 431 | manual is also included in the Emacs source distribution. | 424 | manual is also included in the Emacs source distribution. |
| 432 | .PP | 425 | .PP |
| 433 | .SH FILES | 426 | .SH FILES |
| 434 | /usr/local/share/info - files for the Info documentation browser | 427 | /usr/local/share/info - files for the Info documentation browser. |
| 435 | (a subsystem of Emacs) to refer to. Currently not much of Unix | 428 | The complete text of the Emacs reference manual is included in a |
| 436 | is documented here, but the complete text of the Emacs reference | 429 | convenient tree structured form. Also includes the Emacs Lisp |
| 437 | manual is included in a convenient tree structured form. | 430 | Reference Manual, useful to anyone wishing to write programs in the |
| 438 | 431 | Emacs Lisp extension language. | |
| 439 | /usr/local/share/emacs/$VERSION/src - C source files and object files | ||
| 440 | 432 | ||
| 441 | /usr/local/share/emacs/$VERSION/lisp - Lisp source files and compiled files | 433 | /usr/local/share/emacs/$VERSION/lisp - Lisp source files and compiled files |
| 442 | that define most editing commands. Some are preloaded; | 434 | that define most editing commands. Some are preloaded; |
| 443 | others are autoloaded from this directory when used. | 435 | others are autoloaded from this directory when used. |
| 444 | 436 | ||
| 445 | /usr/local/share/emacs/$VERSION/etc - various programs that are used with | 437 | /usr/local/libexec/emacs/$VERSION/$ARCH - various programs that are |
| 446 | GNU Emacs, and some files of information. | 438 | used with GNU Emacs. |
| 439 | |||
| 440 | /usr/local/share/emacs/$VERSION/etc - various files of information. | ||
| 447 | 441 | ||
| 448 | /usr/local/share/emacs/$VERSION/etc/DOC.* - contains the documentation | 442 | /usr/local/share/emacs/$VERSION/etc/DOC.* - contains the documentation |
| 449 | strings for the Lisp primitives and preloaded Lisp functions | 443 | strings for the Lisp primitives and preloaded Lisp functions |
| 450 | of GNU Emacs. They are stored here to reduce the size of | 444 | of GNU Emacs. They are stored here to reduce the size of |
| 451 | Emacs proper. | 445 | Emacs proper. |
| 452 | 446 | ||
| 453 | /usr/local/share/emacs/$VERSION/etc/OTHER.EMACSES discusses GNU Emacs | ||
| 454 | vs. other versions of Emacs. | ||
| 455 | .br | 447 | .br |
| 456 | /usr/local/share/emacs/$VERSION/etc/SERVICE lists people offering | 448 | /usr/local/share/emacs/$VERSION/etc/SERVICE lists people offering |
| 457 | various services to assist users of GNU Emacs, including education, | 449 | various services to assist users of GNU Emacs, including education, |
| 458 | troubleshooting, porting and customization. | 450 | troubleshooting, porting and customization. |
| 459 | .br | ||
| 460 | These files also have information useful to anyone wishing to write | ||
| 461 | programs in the Emacs Lisp extension language, which has not yet been fully | ||
| 462 | documented. | ||
| 463 | |||
| 464 | /usr/local/com/emacs/lock - holds lock files that are made for all | ||
| 465 | files being modified in Emacs, to prevent simultaneous modification | ||
| 466 | of one file by two users. | ||
| 467 | 451 | ||
| 468 | .\" START DELETING HERE IF YOU'RE NOT USING X | ||
| 469 | /usr/lib/X11/rgb.txt - list of valid X color names. | ||
| 470 | .\" STOP DELETING HERE IF YOU'RE NOT USING X | ||
| 471 | .PP | 452 | .PP |
| 472 | .SH BUGS | 453 | .SH BUGS |
| 473 | There is a mailing list, bug-gnu-emacs@gnu.org, for reporting Emacs | 454 | There is a mailing list, bug-gnu-emacs@gnu.org, for reporting Emacs |
| @@ -488,9 +469,6 @@ For more information about Emacs mailing lists, see the | |||
| 488 | file /usr/local/emacs/etc/MAILINGLISTS. Bugs tend actually to be | 469 | file /usr/local/emacs/etc/MAILINGLISTS. Bugs tend actually to be |
| 489 | fixed if they can be isolated, so it is in your interest to report | 470 | fixed if they can be isolated, so it is in your interest to report |
| 490 | them in such a way that they can be easily reproduced. | 471 | them in such a way that they can be easily reproduced. |
| 491 | .PP | ||
| 492 | Bugs that I know about are: shell will not work with programs | ||
| 493 | running in Raw mode on some Unix versions. | ||
| 494 | .SH UNRESTRICTIONS | 472 | .SH UNRESTRICTIONS |
| 495 | .PP | 473 | .PP |
| 496 | .I Emacs | 474 | .I Emacs |
| @@ -519,11 +497,10 @@ Richard Stallman encourages you to improve and extend | |||
| 519 | .I Emacs, | 497 | .I Emacs, |
| 520 | and urges that | 498 | and urges that |
| 521 | you contribute your extensions to the GNU library. Eventually GNU | 499 | you contribute your extensions to the GNU library. Eventually GNU |
| 522 | (Gnu's Not Unix) will be a complete replacement for Berkeley | 500 | (Gnu's Not Unix) will be a complete replacement for Unix. |
| 523 | Unix. | ||
| 524 | Everyone will be free to use, copy, study and change the GNU system. | 501 | Everyone will be free to use, copy, study and change the GNU system. |
| 525 | .SH SEE ALSO | 502 | .SH SEE ALSO |
| 526 | X(1), xlsfonts(1), xterm(1), xrdb(1) | 503 | emacsclient(1), etags(1), X(1), xlsfonts(1), xterm(1), xrdb(1) |
| 527 | .SH AUTHORS | 504 | .SH AUTHORS |
| 528 | .PP | 505 | .PP |
| 529 | .I Emacs | 506 | .I Emacs |
| @@ -532,7 +509,7 @@ Joachim Martillo and Robert Krawitz added the X features. | |||
| 532 | .SH COPYING | 509 | .SH COPYING |
| 533 | Copyright | 510 | Copyright |
| 534 | .if t \(co | 511 | .if t \(co |
| 535 | .if n (c) | 512 | .if n (C) |
| 536 | 1995, 1999, 2000, 2001, 2002, 2003, 2004, 2005, | 513 | 1995, 1999, 2000, 2001, 2002, 2003, 2004, 2005, |
| 537 | 2006, 2007 Free Software Foundation, Inc. | 514 | 2006, 2007 Free Software Foundation, Inc. |
| 538 | .PP | 515 | .PP |
diff --git a/etc/images/icons/emacs_16.png b/etc/images/icons/emacs_16.png index ca5122b05b2..b419b01b4ee 100644 --- a/etc/images/icons/emacs_16.png +++ b/etc/images/icons/emacs_16.png | |||
| Binary files differ | |||
diff --git a/etc/images/icons/emacs_24.png b/etc/images/icons/emacs_24.png index 95c72d3c49f..790ec7e2bff 100644 --- a/etc/images/icons/emacs_24.png +++ b/etc/images/icons/emacs_24.png | |||
| Binary files differ | |||
diff --git a/etc/images/icons/emacs_32.png b/etc/images/icons/emacs_32.png index 17b4686e182..31fbb47c0d2 100644 --- a/etc/images/icons/emacs_32.png +++ b/etc/images/icons/emacs_32.png | |||
| Binary files differ | |||
diff --git a/etc/images/icons/emacs_48.png b/etc/images/icons/emacs_48.png index 56c6de6f364..f0df0fb6594 100644 --- a/etc/images/icons/emacs_48.png +++ b/etc/images/icons/emacs_48.png | |||
| Binary files differ | |||
diff --git a/lib-src/makefile.w32-in b/lib-src/makefile.w32-in index ed3f7b5c1ab..356e70b3102 100644 --- a/lib-src/makefile.w32-in +++ b/lib-src/makefile.w32-in | |||
| @@ -24,7 +24,7 @@ ALL = make-docfile hexl ctags etags movemail ebrowse sorted-doc digest-doc emacs | |||
| 24 | 24 | ||
| 25 | .PHONY: $(ALL) | 25 | .PHONY: $(ALL) |
| 26 | 26 | ||
| 27 | VERSION = 22.0.97 | 27 | VERSION = 22.0.98 |
| 28 | 28 | ||
| 29 | LOCAL_FLAGS = -DWINDOWSNT -DDOS_NT -DSTDC_HEADERS=1 -DNO_LDAV=1 \ | 29 | LOCAL_FLAGS = -DWINDOWSNT -DDOS_NT -DSTDC_HEADERS=1 -DNO_LDAV=1 \ |
| 30 | -DNO_ARCHIVES=1 -DHAVE_CONFIG_H=1 -I../nt/inc \ | 30 | -DNO_ARCHIVES=1 -DHAVE_CONFIG_H=1 -I../nt/inc \ |
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index c1f5b3b6888..6dd2bc9863c 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog | |||
| @@ -1,6 +1,367 @@ | |||
| 1 | 2007-04-24 J.D. Smith <jdsmith@as.arizona.edu> | ||
| 2 | |||
| 3 | * progmodes/idlw-shell.el (idlwave-shell-clear-all-bp): Don't | ||
| 4 | re-query for each cleared BP. | ||
| 5 | (idlwave-shell-clear-bp): Optionally skip BP query. | ||
| 6 | (idlwave-shell-update-bp-overlays): Use set-window-margins | ||
| 7 | instead of set-window-buffer, which incorrectly moves displayed | ||
| 8 | region. | ||
| 9 | |||
| 10 | 2007-04-23 Jay Belanger <jay.p.belanger@gmail.com> | ||
| 11 | |||
| 12 | * calc/calc.el (calc-bug-address): Update maintainer's address. | ||
| 13 | * calc/*: Update maintainer's address. | ||
| 14 | |||
| 15 | 2007-04-23 Richard Stallman <rms@gnu.org> | ||
| 16 | |||
| 17 | * simple.el (set-mark-command-repeat-pop): Doc fix. | ||
| 18 | Put in `editing-basics' group. | ||
| 19 | |||
| 20 | 2007-04-23 Chong Yidong <cyd@stupidchicken.com> | ||
| 21 | |||
| 22 | * info.el (Info-mouse-scroll-up, Info-mouse-scroll-down): New | ||
| 23 | functions. | ||
| 24 | (Info-mode-line-node-keymap): Bind mouse commands to | ||
| 25 | Info-mouse-scroll-up/down instead of Info-scroll-up/down. | ||
| 26 | |||
| 27 | 2007-04-23 Luc Teirlinck <teirllm@auburn.edu> | ||
| 28 | |||
| 29 | * locate.el (locate-local-prompt): New var. | ||
| 30 | (locate-prompt-for-command): Doc fix. | ||
| 31 | (locate-prompt-for-search-string): New function. | ||
| 32 | (locate): New optional arg. Make locate-local-prompt | ||
| 33 | buffer-local. Use locate-prompt-for-search-string. | ||
| 34 | (locate-with-filter): New optional arg. Use | ||
| 35 | locate-prompt-for-search-string. | ||
| 36 | (locate-update): Bind locate-prompt-for-command. | ||
| 37 | |||
| 38 | 2007-04-23 Glenn Morris <rgm@gnu.org> | ||
| 39 | |||
| 40 | * files.el (magic-mode-alist): `<!DOCTYPE HTML' in html-mode. | ||
| 41 | |||
| 42 | 2007-04-23 Nick Roberts <nickrob@snap.net.nz> | ||
| 43 | |||
| 44 | * button.el (button): Inherit from link face on a tty. | ||
| 45 | |||
| 46 | 2007-04-23 Glenn Morris <rgm@gnu.org> | ||
| 47 | |||
| 48 | * button.el (button): Use color for this face on a tty. | ||
| 49 | |||
| 50 | * files.el (magic-mode-alist): Allow for carriage-returns in | ||
| 51 | html-mode and sgml-mode entries. | ||
| 52 | |||
| 53 | 2007-04-22 Richard Stallman <rms@gnu.org> | ||
| 54 | |||
| 55 | * emacs-lisp/easy-mmode.el (define-globalized-minor-mode): | ||
| 56 | Improve doc string of generated command. | ||
| 57 | |||
| 58 | * subr.el (read-number): Catch errors. | ||
| 59 | |||
| 60 | * hi-lock.el (hi-lock-file-patterns-policy): Doc fix. | ||
| 61 | |||
| 62 | 2007-04-22 Chong Yidong <cyd@stupidchicken.com> | ||
| 63 | |||
| 64 | * image-dired.el: Rename from thumbnails.el. All instances of | ||
| 65 | "thumbnails" replaced with "image-dired". | ||
| 66 | |||
| 67 | * dired.el (dired-mode-map): Rename "thumbnails" again, to | ||
| 68 | "image-dired". | ||
| 69 | |||
| 70 | 2007-04-22 Kim F. Storm <storm@cua.dk> | ||
| 71 | |||
| 72 | * ido.el (ido-kill-buffer-at-head, ido-delete-file-at-head): | ||
| 73 | Don't use kill-line. | ||
| 74 | |||
| 75 | 2007-04-22 Nick Roberts <nickrob@snap.net.nz> | ||
| 76 | |||
| 77 | * t-mouse.el (t-mouse-make-event): Pass on mev's more informative | ||
| 78 | error message. | ||
| 79 | |||
| 80 | 2007-04-22 Chong Yidong <cyd@stupidchicken.com> | ||
| 81 | |||
| 82 | * dired.el: Rename "tumme" to "thumbnails". | ||
| 83 | |||
| 84 | * thumbnails.el: Rename from tumme.el. All instances of "tumme" | ||
| 85 | replaced with "thumbnails". | ||
| 86 | |||
| 87 | 2007-04-22 Glenn Morris <rgm@gnu.org> | ||
| 88 | |||
| 89 | * hi-lock.el (hi-lock-file-patterns-policy): Make it a defcustom, | ||
| 90 | and give it the risky-local-variable property. | ||
| 91 | |||
| 92 | * textmodes/flyspell.el (flyspell-define-abbrev): Downcase abbrev | ||
| 93 | before defining it. | ||
| 94 | |||
| 95 | 2007-04-21 Martin Rudalics <rudalics@gmx.at> | ||
| 96 | |||
| 97 | * progmodes/cc-mode.el (c-remove-any-local-eval-or-mode-variables): | ||
| 98 | Use delete-region instead of kill-line. | ||
| 99 | |||
| 100 | 2007-04-21 Alan Mackenzie <acm@muc.de> | ||
| 101 | |||
| 102 | * progmodes/cc-cmds.el (c-electric-slash): Replace wrong use of | ||
| 103 | `kill-region' by `delete-region'. | ||
| 104 | |||
| 105 | 2007-04-21 Chong Yidong <cyd@stupidchicken.com> | ||
| 106 | |||
| 107 | * progmodes/perl-mode.el (perl-indent-command): Use delete-region | ||
| 108 | instead of kill-region. | ||
| 109 | |||
| 110 | * progmodes/mantemp.el (mantemp-make-mantemps-region) | ||
| 111 | (mantemp-insert-cxx-syntax, mantemp-sort-and-unique-lines) | ||
| 112 | (mantemp-remove-memfuncs): Use delete-region instead of kill-word | ||
| 113 | and kill-line. | ||
| 114 | |||
| 115 | * progmodes/vhdl-mode.el (vhdl-template-type) | ||
| 116 | (vhdl-template-record, vhdl-template-nature) | ||
| 117 | (vhdl-template-configuration-spec, vhdl-template-component-inst) | ||
| 118 | (vhdl-template-break, vhdl-regress-line, vhdl-electric-tab): Use | ||
| 119 | delete-region instead of kill-word and kill-line. | ||
| 120 | |||
| 121 | 2007-04-21 Johan Bockg,Ae(Brd <bojohan@dd.chalmers.se> | ||
| 122 | |||
| 123 | * dired-x.el (dired-virtual-mode): Doc fix. | ||
| 124 | |||
| 125 | 2007-04-21 Richard Stallman <rms@gnu.org> | ||
| 126 | |||
| 127 | * font-lock.el (font-lock-keywords-alist): Mark as risky. | ||
| 128 | |||
| 129 | * subr.el (read-number): Doc fix. | ||
| 130 | |||
| 131 | * simple.el (pop-to-mark-command): Display message "mark popped" | ||
| 132 | if point does not move. | ||
| 133 | (set-mark-command): Doc fix. | ||
| 134 | |||
| 135 | 2007-04-21 Luc Teirlinck <teirllm@auburn.edu> | ||
| 136 | |||
| 137 | * locate.el: Revert 2006-09-09 and 2007-04-20 changes. | ||
| 138 | (locate-local-filter, locate-local-search): New vars. | ||
| 139 | (locate): Make variables local. | ||
| 140 | (locate-update): Bind locate-buffer-name. Call locate using | ||
| 141 | locate-local-filter and locate-local-search. | ||
| 142 | |||
| 143 | 2007-04-20 David Koppelman <koppel@ece.lsu.edu> | ||
| 144 | |||
| 145 | * hi-lock.el (hi-lock-file-patterns-policy): New var. | ||
| 146 | (hi-lock-find-patterns): Use hi-lock-file-patterns-policy. | ||
| 147 | (hi-lock-mode): Update docstring. | ||
| 148 | |||
| 149 | 2007-04-20 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 150 | |||
| 151 | * textmodes/fill.el (fill-move-to-break-point): Don't inhibit | ||
| 152 | fill-nobreak-predicate when the break is past fill-column. | ||
| 153 | |||
| 154 | 2007-04-20 Francesco Potort,Al(B <pot@gnu.org> | ||
| 155 | |||
| 156 | * locate.el (locate): Output from shell-command should go in the | ||
| 157 | current buffer rather than *Shell Command Output*. | ||
| 158 | |||
| 159 | 2007-04-20 Chong Yidong <cyd@stupidchicken.com> | ||
| 160 | |||
| 161 | * paren.el (show-paren-function): Fix last fix. | ||
| 162 | |||
| 163 | 2007-04-19 Kevin Ryde <user42@zip.com.au> | ||
| 164 | |||
| 165 | * arc-mode.el (archive-find-type): lzh-exe for lzh self-extracting exe. | ||
| 166 | (archive-lzh-summarize): Add optional start arg for where to start | ||
| 167 | looking at the archive. | ||
| 168 | (archive-lzh-exe-summarize, archive-lzh-exe-extract): New functions. | ||
| 169 | |||
| 170 | * international/mule.el (auto-coding-alist): no-conversion for .exe | ||
| 171 | and .EXE. | ||
| 172 | |||
| 173 | 2007-04-19 Alan Mackenzie <acm@muc.de> | ||
| 174 | |||
| 175 | * progmodes/cc-cmds.el (c-in-function-trailer-p): Fix this: when a | ||
| 176 | function return type contains "struct", "union", etc. | ||
| 177 | c-end-of-defun goes too far forward. | ||
| 178 | |||
| 179 | 2007-04-19 Chong Yidong <cyd@stupidchicken.com> | ||
| 180 | |||
| 181 | * paren.el (show-paren-function): Reset window-start to avoid | ||
| 182 | recentering. | ||
| 183 | |||
| 184 | 2007-04-19 Glenn Morris <rgm@gnu.org> | ||
| 185 | |||
| 186 | * calendar/todo-mode.el: Fix typo: "threshhold" -> "threshold". | ||
| 187 | |||
| 188 | 2007-04-18 Glenn Morris <rgm@gnu.org> | ||
| 189 | |||
| 190 | * calendar/diary-lib.el (diary-header-line-format): Add a custom | ||
| 191 | :set function. | ||
| 192 | (diary-list-entries): Only switch to diary-mode from | ||
| 193 | default-major-mode (reverts 2007-03-21 change). Otherwise, if in | ||
| 194 | diary-mode set header-line-format, in case of any customization. | ||
| 195 | |||
| 196 | 2007-04-18 Levin Du <zslevin@gmail.com> (tiny change) | ||
| 197 | |||
| 198 | * calendar/parse-time.el (parse-time-string-chars): Check if CHAR | ||
| 199 | is less than the length of parse-time-syntax. | ||
| 200 | |||
| 201 | 2007-04-17 David Kastrup <dak@gnu.org> | ||
| 202 | |||
| 203 | * replace.el (query-replace-regexp-eval): Deprecate. | ||
| 204 | |||
| 205 | 2007-04-17 Alan Mackenzie <acm@muc.de> | ||
| 206 | |||
| 207 | * progmodes/cc-cmds.el (c-beginning-of-defun): With -ve arg and | ||
| 208 | point too close to EOB, leave point at EOB rather than last `}'. | ||
| 209 | |||
| 210 | 2007-04-17 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> | ||
| 211 | |||
| 212 | * textmodes/bibtex.el (bibtex-include-OPTkey) | ||
| 213 | (bibtex-user-optional-fields, bibtex-entry-field-alist): | ||
| 214 | Fix defcustom. | ||
| 215 | |||
| 216 | 2007-04-17 Glenn Morris <rgm@gnu.org> | ||
| 217 | |||
| 218 | * calendar/cal-dst.el (calendar-dst-find-startend): If YEAR cannot | ||
| 219 | be encoded, fall back to current year. | ||
| 220 | |||
| 221 | 2007-04-14 Kevin Ryde <user42@zip.com.au> | ||
| 222 | |||
| 223 | * arc-mode.el (archive-lzh-summarize): Only apply the "downcase if | ||
| 224 | all upcase" rule to OS-ID 0 "generic". Always downcase for OS-ID | ||
| 225 | M "MSDOS". | ||
| 226 | |||
| 227 | 2007-04-16 Chong Yidong <cyd@stupidchicken.com> | ||
| 228 | |||
| 229 | * progmodes/python.el (python-end-of-block): Avoid looping forever | ||
| 230 | if python-next-statement fails. | ||
| 231 | |||
| 232 | 2007-04-16 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> | ||
| 233 | |||
| 234 | * textmodes/bibtex.el (bibtex-entry-field-alist): Use defcustom. | ||
| 235 | |||
| 236 | 2007-04-16 Dan Nicolaescu <dann@ics.uci.edu> | ||
| 237 | |||
| 238 | * progmodes/perl-mode.el (perl-indent-level): Mark as safe local var. | ||
| 239 | * progmodes/cperl-mode.el (cperl-indent-level): Likewise. | ||
| 240 | |||
| 241 | 2007-04-15 Jay Belanger <belanger@truman.edu> | ||
| 242 | |||
| 243 | * calc/calc.el (calc-version): New function. | ||
| 244 | (calc-trail-mode): Shorten the title. | ||
| 245 | |||
| 246 | 2007-04-15 Chong Yidong <cyd@stupidchicken.com> | ||
| 247 | |||
| 248 | * mail/footnote.el (footnote-style): Clarify docstring to state | ||
| 249 | that customizing this only applies to future footnotes. | ||
| 250 | |||
| 251 | 2007-04-15 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> | ||
| 252 | |||
| 253 | * textmodes/bibtex.el (bibtex-field-list): Use functionp. | ||
| 254 | (bibtex-make-field): Check that INIT is a string. Use functionp. | ||
| 255 | |||
| 256 | 2007-04-14 Glenn Morris <rgm@gnu.org> | ||
| 257 | |||
| 258 | * complete.el (PC-goto-end): New buffer-local variable. | ||
| 259 | (PC-do-completion-end): Make buffer-local. | ||
| 260 | (partial-completion-mode) <choose-completion-string-functions>: | ||
| 261 | Do not go to the end of the minibuffer if PC-goto-end is non-nil. | ||
| 262 | (PC-do-completion): New optional fourth argument GOTO-END. Add a | ||
| 263 | doc string. Set PC-goto-end for choose-completion. | ||
| 264 | (PC-lisp-complete-symbol): Pass non-nil GOTO-END arg to | ||
| 265 | PC-do-completion. | ||
| 266 | |||
| 267 | * textmodes/bibtex.el (bibtex-insert-kill): Pass non-nil NODELIM | ||
| 268 | arg to bibtex-make-field. | ||
| 269 | (bibtex-make-field): Add optional fourth arg NODELIM. | ||
| 270 | Insert delimiters around INIT unless this arg is non-nil. | ||
| 271 | |||
| 272 | 2007-04-14 Nick Roberts <nickrob@snap.net.nz> | ||
| 273 | |||
| 274 | * tmm.el (tmm-get-keybind): Use copy-sequence to ensure that the | ||
| 275 | global map isn't modified | ||
| 276 | |||
| 277 | 2007-04-14 Glenn Morris <rgm@gnu.org> | ||
| 278 | |||
| 279 | * calendar/appt.el (appt-disp-window): Do not split small windows. | ||
| 280 | Suggested by Jeff Miller <jmiller@cablespeed.com>. | ||
| 281 | |||
| 282 | 2007-04-13 Chong Yidong <cyd@stupidchicken.com> | ||
| 283 | |||
| 284 | * progmodes/compile.el (compilation-start): Revert 2007-03-25 change. | ||
| 285 | |||
| 286 | * files.el: Ditto. | ||
| 287 | |||
| 288 | 2007-04-13 Juanma Barranquero <lekktu@gmail.com> | ||
| 289 | |||
| 290 | * cus-edit.el (minibuffer, auto-save): Fix typos in docstrings. | ||
| 291 | |||
| 292 | * term.el (term-buffer-maximum-size, term-exec, term-escape-char) | ||
| 293 | (term-set-escape-char, term-termcap-format, term-get-old-input-default) | ||
| 294 | (term-skip-prompt, term-send-string, term-send-region, term-pager-page) | ||
| 295 | (term-pager-help): Fix typos in docstrings. | ||
| 296 | |||
| 297 | * wid-edit.el (widget-documentation): Fix typo in docstring. | ||
| 298 | |||
| 299 | * progmodes/ebnf2ps.el (ebnf-insert-style, ebnf-merge-style): | ||
| 300 | Fix typos in error messages. | ||
| 301 | |||
| 302 | 2007-04-13 Martin Rudalics <rudalics@gmx.at> | ||
| 303 | |||
| 304 | * emacs-lisp/edebug.el (edebug-pop-to-buffer): Don't select | ||
| 305 | window marked as dedicated. | ||
| 306 | |||
| 307 | * mail/footnote.el (footnote-latin-string): New variable. | ||
| 308 | (footnote-latin-regexp): Redefine as regexp alternative. | ||
| 309 | (Footnote-latin): Use footnote-latin-string instead of | ||
| 310 | footnote-latin-regexp. | ||
| 311 | |||
| 312 | 2007-04-13 Glenn Morris <rgm@gnu.org> | ||
| 313 | |||
| 314 | * tmm.el (tmm-get-keybind): Use car-safe to avoid errors with | ||
| 315 | inherited keymaps. | ||
| 316 | |||
| 317 | 2007-04-12 Chong Yidong <cyd@stupidchicken.com> | ||
| 318 | |||
| 319 | * outline.el (outline-get-next-sibling): Clarify docstring. | ||
| 320 | (outline-get-last-sibling): Handle case where we are at the first | ||
| 321 | heading. Clarify docstring. | ||
| 322 | |||
| 323 | 2007-04-12 Nick Roberts <nickrob@snap.net.nz> | ||
| 324 | |||
| 325 | * progmodes/gud.el (gud-minor-mode-map): Make go button same | ||
| 326 | length as stop button to lessen flicker. | ||
| 327 | (jdb): Add gud-print. | ||
| 328 | (gud-find-expr): Jdb prints the expression with the value, so | ||
| 329 | don't insert it in the output. | ||
| 330 | |||
| 331 | 2007-04-11 Jason Rumney <jasonr@gnu.org> | ||
| 332 | |||
| 333 | * dnd.el (dnd-get-local-file-name): Decode both upper and lower | ||
| 334 | case hex. Do not try to decode non-hex letters. | ||
| 335 | |||
| 336 | 2007-04-11 Markus Triska <markus.triska@gmx.at> | ||
| 337 | |||
| 338 | * emacs-lisp/byte-opt.el (byte-optimize-backward-char) | ||
| 339 | (byte-optimize-backward-word): Remove (move to bytecomp.el). | ||
| 340 | (byte-optimize-form-code-walker): Evaluate pure function calls if | ||
| 341 | possible. | ||
| 342 | (byte-optimize-all-constp): New function. | ||
| 343 | |||
| 344 | * emacs-lisp/bytecomp.el (byte-compile-char-before): | ||
| 345 | Improve numeric argument case. | ||
| 346 | (byte-compile-backward-char, byte-compile-backward-word): | ||
| 347 | New functions, performing rewriting previously done in byte-opt.el. | ||
| 348 | Fix their "Fixme" item (restriction to numeric arguments). | ||
| 349 | |||
| 350 | 2007-04-11 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 351 | |||
| 352 | * desktop.el (desktop-save, desktop-create-buffer): Replace mapcar | ||
| 353 | with dolist. | ||
| 354 | (after-init-hook): Don't quote lambda. | ||
| 355 | (desktop-first-buffer): Don't wrap it in eval-when-compile. | ||
| 356 | (desktop-internal-v2s): Remove unused var `el'. | ||
| 357 | (desktop-buffer-major-mode, desktop-buffer-locals): Move out of | ||
| 358 | desktop-restore-file-buffer. | ||
| 359 | (desktop-buffer-ok-count, desktop-buffer-fail-count): Move out of | ||
| 360 | desktop-create-buffer. | ||
| 361 | |||
| 1 | 2007-04-10 Chong Yidong <cyd@stupidchicken.com> | 362 | 2007-04-10 Chong Yidong <cyd@stupidchicken.com> |
| 2 | 363 | ||
| 3 | * woman.el (woman-decode-buffer): Postphone macro-set check... | 364 | * woman.el (woman-decode-buffer): Postpone macro-set check... |
| 4 | (woman-decode-region): ...to here. | 365 | (woman-decode-region): ...to here. |
| 5 | 366 | ||
| 6 | 2007-04-10 Thien-Thi Nguyen <ttn@gnu.org> | 367 | 2007-04-10 Thien-Thi Nguyen <ttn@gnu.org> |
| @@ -25,8 +386,8 @@ | |||
| 25 | 386 | ||
| 26 | * emacs-lisp/byte-opt.el (byte-optimize-char-before): Remove (move | 387 | * emacs-lisp/byte-opt.el (byte-optimize-char-before): Remove (move |
| 27 | to bytecomp.el as byte-compile-char-before). | 388 | to bytecomp.el as byte-compile-char-before). |
| 28 | * emacs-lisp/bytecomp.el (byte-compile-char-before): New | 389 | * emacs-lisp/bytecomp.el (byte-compile-char-before): |
| 29 | function (modified replacement for byte-optimize-char-before in | 390 | New function (modified replacement for byte-optimize-char-before in |
| 30 | byte-opt.el). | 391 | byte-opt.el). |
| 31 | 392 | ||
| 32 | 2007-04-09 Alan Mackenzie <acm@muc.de> | 393 | 2007-04-09 Alan Mackenzie <acm@muc.de> |
| @@ -74,10 +435,10 @@ | |||
| 74 | 435 | ||
| 75 | * cus-start.el <scroll-preserve-screen-position>: Add choices. | 436 | * cus-start.el <scroll-preserve-screen-position>: Add choices. |
| 76 | 437 | ||
| 77 | 2007-04-08 Johan Bockg,Ae(Brd <bojohan+news@dd.chalmers.se> | 438 | 2007-04-08 Johan Bockg,Ae(Brd <bojohan@dd.chalmers.se> |
| 78 | 439 | ||
| 79 | * term/xterm.el (terminal-init-xterm): Fix key definitions. Add | 440 | * term/xterm.el (terminal-init-xterm): Fix key definitions. |
| 80 | binding for C-M-SPC. | 441 | Add binding for C-M-SPC. |
| 81 | 442 | ||
| 82 | 2007-04-08 Richard Stallman <rms@gnu.org> | 443 | 2007-04-08 Richard Stallman <rms@gnu.org> |
| 83 | 444 | ||
| @@ -142,8 +503,8 @@ | |||
| 142 | 503 | ||
| 143 | * menu-bar.el (menu-bar-tools-menu): Revert 2003-07-25 change. | 504 | * menu-bar.el (menu-bar-tools-menu): Revert 2003-07-25 change. |
| 144 | 505 | ||
| 145 | * desktop.el (desktop-create-buffer, desktop-save): Revert | 506 | * desktop.el (desktop-create-buffer, desktop-save): |
| 146 | 2004-11-12 change. | 507 | Revert 2004-11-12 change for lack of copyright papers. |
| 147 | 508 | ||
| 148 | * dired-x.el (dired-guess-shell-case-fold-search): Delete var. | 509 | * dired-x.el (dired-guess-shell-case-fold-search): Delete var. |
| 149 | (dired-guess-default): Respect case. | 510 | (dired-guess-default): Respect case. |
| @@ -432,7 +793,7 @@ | |||
| 432 | * textmodes/flyspell.el (flyspell-large-region): | 793 | * textmodes/flyspell.el (flyspell-large-region): |
| 433 | Use ispell-call-process-region. | 794 | Use ispell-call-process-region. |
| 434 | 795 | ||
| 435 | 2007-03-26 Johan Bockg,Ae(Brd <bojohan+sf@dd.chalmers.se> | 796 | 2007-03-26 Johan Bockg,Ae(Brd <bojohan@dd.chalmers.se> |
| 436 | 797 | ||
| 437 | * emacs-lisp/bytecomp.el (byte-compile-file-form-defmumble): | 798 | * emacs-lisp/bytecomp.el (byte-compile-file-form-defmumble): |
| 438 | Use prin1 instead of princ. | 799 | Use prin1 instead of princ. |
| @@ -568,6 +929,13 @@ | |||
| 568 | (number-of-diary-entries): Change :set to use diary-set-maybe-redraw. | 929 | (number-of-diary-entries): Change :set to use diary-set-maybe-redraw. |
| 569 | (diary-list-entries): Always run diary-mode. | 930 | (diary-list-entries): Always run diary-mode. |
| 570 | 931 | ||
| 932 | 2007-03-20 Kenichi Handa <handa@m17n.org> | ||
| 933 | |||
| 934 | * international/quail.el (quail-setup-completion-buf): Make the | ||
| 935 | completion buffer read-only. | ||
| 936 | (quail-completion): Adjusted for the above change. Leave the | ||
| 937 | modified flag nil. | ||
| 938 | |||
| 571 | 2007-03-20 David Kastrup <dak@gnu.org> | 939 | 2007-03-20 David Kastrup <dak@gnu.org> |
| 572 | 940 | ||
| 573 | * files.el (magic-mode-alist): Require literal "%!PS" string for | 941 | * files.el (magic-mode-alist): Require literal "%!PS" string for |
| @@ -5385,7 +5753,7 @@ | |||
| 5385 | 5753 | ||
| 5386 | * dired.el (dired-build-subdir-alist): Fix previous change. | 5754 | * dired.el (dired-build-subdir-alist): Fix previous change. |
| 5387 | 5755 | ||
| 5388 | 2006-10-01 Johan Bockg,Ae(Brd <bojohan+mail@dd.chalmers.se> | 5756 | 2006-10-01 Johan Bockg,Ae(Brd <bojohan@dd.chalmers.se> |
| 5389 | 5757 | ||
| 5390 | * simple.el (undo-elt-crosses-region): Fix the inequalities. | 5758 | * simple.el (undo-elt-crosses-region): Fix the inequalities. |
| 5391 | 5759 | ||
| @@ -21085,7 +21453,7 @@ | |||
| 21085 | 21453 | ||
| 21086 | * net/newsticker.el: Get rid of CVS keyword. | 21454 | * net/newsticker.el: Get rid of CVS keyword. |
| 21087 | 21455 | ||
| 21088 | 2005-09-19 Johan Bockg,Ae(Brd <bojohan+sf@dd.chalmers.se> | 21456 | 2005-09-19 Johan Bockg,Ae(Brd <bojohan@dd.chalmers.se> |
| 21089 | 21457 | ||
| 21090 | * dired-aux.el (dired-handle-overwrite): Don't use `format' here. | 21458 | * dired-aux.el (dired-handle-overwrite): Don't use `format' here. |
| 21091 | The prompt is formatted later. | 21459 | The prompt is formatted later. |
| @@ -30153,7 +30521,7 @@ | |||
| 30153 | (mail-directory-process defvar): Doc fix. | 30521 | (mail-directory-process defvar): Doc fix. |
| 30154 | (mail-names): Doc fix. | 30522 | (mail-names): Doc fix. |
| 30155 | 30523 | ||
| 30156 | 2005-03-25 Johan Bockg,Ae(Brd <bojohan+mail@dd.chalmers.se> (tiny change) | 30524 | 2005-03-25 Johan Bockg,Ae(Brd <bojohan@dd.chalmers.se> (tiny change) |
| 30157 | 30525 | ||
| 30158 | * textmodes/flyspell.el (mail-mode-flyspell-verify): Fix regexp syntax. | 30526 | * textmodes/flyspell.el (mail-mode-flyspell-verify): Fix regexp syntax. |
| 30159 | 30527 | ||
diff --git a/lisp/arc-mode.el b/lisp/arc-mode.el index 07a48c761aa..657e2ed87d6 100644 --- a/lisp/arc-mode.el +++ b/lisp/arc-mode.el | |||
| @@ -723,6 +723,10 @@ archive. | |||
| 723 | (string-match "\\.[aA][rR][cC]$" | 723 | (string-match "\\.[aA][rR][cC]$" |
| 724 | (or buffer-file-name (buffer-name)))) | 724 | (or buffer-file-name (buffer-name)))) |
| 725 | 'arc) | 725 | 'arc) |
| 726 | ;; This pattern modelled on the BSD/GNU+Linux `file' command. | ||
| 727 | ;; Have seen capital "LHA's", and file has lower case "LHa's" too. | ||
| 728 | ;; Note this regexp is also in archive-exe-p. | ||
| 729 | ((looking-at "MZ\\(.\\|\n\\)\\{34\\}LH[aA]'s SFX ") 'lzh-exe) | ||
| 726 | (t (error "Buffer format not recognized"))))) | 730 | (t (error "Buffer format not recognized"))))) |
| 727 | ;; ------------------------------------------------------------------------- | 731 | ;; ------------------------------------------------------------------------- |
| 728 | (defun archive-summarize (&optional shut-up) | 732 | (defun archive-summarize (&optional shut-up) |
| @@ -1421,8 +1425,8 @@ This doesn't recover lost files, it just undoes changes in the buffer itself." | |||
| 1421 | ;; ------------------------------------------------------------------------- | 1425 | ;; ------------------------------------------------------------------------- |
| 1422 | ;; Section: Lzh Archives | 1426 | ;; Section: Lzh Archives |
| 1423 | 1427 | ||
| 1424 | (defun archive-lzh-summarize () | 1428 | (defun archive-lzh-summarize (&optional start) |
| 1425 | (let ((p 1) | 1429 | (let ((p (or start 1)) ;; 1 for .lzh, something further on for .exe |
| 1426 | (totalsize 0) | 1430 | (totalsize 0) |
| 1427 | (maxlen 8) | 1431 | (maxlen 8) |
| 1428 | files | 1432 | files |
| @@ -1438,7 +1442,7 @@ This doesn't recover lost files, it just undoes changes in the buffer itself." | |||
| 1438 | (time2 (archive-l-e (+ p 17) 2)) ;and UNIX format in level 2 header.) | 1442 | (time2 (archive-l-e (+ p 17) 2)) ;and UNIX format in level 2 header.) |
| 1439 | (hdrlvl (byte-after (+ p 20))) ;header level | 1443 | (hdrlvl (byte-after (+ p 20))) ;header level |
| 1440 | thsize ;total header size (base + extensions) | 1444 | thsize ;total header size (base + extensions) |
| 1441 | fnlen efnname fiddle ifnname width p2 | 1445 | fnlen efnname osid fiddle ifnname width p2 |
| 1442 | neh ;beginning of next extension header (level 1 and 2) | 1446 | neh ;beginning of next extension header (level 1 and 2) |
| 1443 | mode modestr uid gid text dir prname | 1447 | mode modestr uid gid text dir prname |
| 1444 | gname uname modtime moddate) | 1448 | gname uname modtime moddate) |
| @@ -1496,7 +1500,22 @@ This doesn't recover lost files, it just undoes changes in the buffer itself." | |||
| 1496 | (setq thsize (- neh p)))) | 1500 | (setq thsize (- neh p)))) |
| 1497 | (if (= hdrlvl 0) ;total header size | 1501 | (if (= hdrlvl 0) ;total header size |
| 1498 | (setq thsize hsize)) | 1502 | (setq thsize hsize)) |
| 1499 | (setq fiddle (if efnname (string= efnname (upcase efnname)))) | 1503 | ;; OS ID field not present in level 0 header, use code 0 "generic" |
| 1504 | ;; in that case as per lha program header.c get_header() | ||
| 1505 | (setq osid (cond ((= hdrlvl 0) 0) | ||
| 1506 | ((= hdrlvl 1) (char-after (+ p 22 fnlen 2))) | ||
| 1507 | ((= hdrlvl 2) (char-after (+ p 23))))) | ||
| 1508 | ;; Filename fiddling must follow the lha program, otherwise the name | ||
| 1509 | ;; passed to "lha pq" etc won't match (which for an extract silently | ||
| 1510 | ;; results in no output). As of version 1.14i it goes from the OS ID, | ||
| 1511 | ;; - For 'M' MSDOS: msdos_to_unix_filename() downcases always, and | ||
| 1512 | ;; converts "\" to "/". | ||
| 1513 | ;; - For 0 generic: generic_to_unix_filename() downcases if there's | ||
| 1514 | ;; no lower case already present, and converts "\" to "/". | ||
| 1515 | ;; - For 'm' MacOS: macos_to_unix_filename() changes "/" to ":" and | ||
| 1516 | ;; ":" to "/" | ||
| 1517 | (setq fiddle (cond ((= ?M osid) t) | ||
| 1518 | ((= 0 osid) (string= efnname (upcase efnname))))) | ||
| 1500 | (setq ifnname (if fiddle (downcase efnname) efnname)) | 1519 | (setq ifnname (if fiddle (downcase efnname) efnname)) |
| 1501 | (setq prname (if dir (concat dir ifnname) ifnname)) | 1520 | (setq prname (if dir (concat dir ifnname) ifnname)) |
| 1502 | (setq width (if prname (string-width prname) 0)) | 1521 | (setq width (if prname (string-width prname) 0)) |
| @@ -1625,6 +1644,34 @@ This doesn't recover lost files, it just undoes changes in the buffer itself." | |||
| 1625 | ;; This should work even though newmode will be dynamically accessed. | 1644 | ;; This should work even though newmode will be dynamically accessed. |
| 1626 | (lambda (old) (archive-calc-mode old newmode t)) | 1645 | (lambda (old) (archive-calc-mode old newmode t)) |
| 1627 | files "a unix-style mode" 8)) | 1646 | files "a unix-style mode" 8)) |
| 1647 | |||
| 1648 | ;; ------------------------------------------------------------------------- | ||
| 1649 | ;; Section: Lzh Self-Extracting .exe Archives | ||
| 1650 | ;; | ||
| 1651 | ;; No support for modifying these files. It looks like the lha for unix | ||
| 1652 | ;; program (as of version 1.14i) can't create or retain the DOS exe part. | ||
| 1653 | ;; If you do an "lha a" on a .exe for instance it renames and writes to a | ||
| 1654 | ;; plain .lzh. | ||
| 1655 | |||
| 1656 | (defun archive-lzh-exe-summarize () | ||
| 1657 | "Summarize the contents of an LZH self-extracting exe, for `archive-mode'." | ||
| 1658 | |||
| 1659 | ;; Skip the initial executable code part and apply archive-lzh-summarize | ||
| 1660 | ;; to the archive part proper. The "-lh5-" etc regexp here for the start | ||
| 1661 | ;; is the same as in archive-find-type. | ||
| 1662 | ;; | ||
| 1663 | ;; The lha program (version 1.14i) does this in skip_msdos_sfx1_code() by | ||
| 1664 | ;; a similar scan. It looks for "..-l..-" plus for level 0 or 1 a test of | ||
| 1665 | ;; the header checksum, or level 2 a test of the "attribute" and size. | ||
| 1666 | ;; | ||
| 1667 | (re-search-forward "..-l[hz][0-9ds]-" nil) | ||
| 1668 | (archive-lzh-summarize (match-beginning 0))) | ||
| 1669 | |||
| 1670 | ;; `archive-lzh-extract' runs "lha pq", and that works for .exe as well as | ||
| 1671 | ;; .lzh files | ||
| 1672 | (defalias 'archive-lzh-exe-extract 'archive-lzh-extract | ||
| 1673 | "Extract a member from an LZH self-extracting exe, for `archive-mode'.") | ||
| 1674 | |||
| 1628 | ;; ------------------------------------------------------------------------- | 1675 | ;; ------------------------------------------------------------------------- |
| 1629 | ;; Section: Zip Archives | 1676 | ;; Section: Zip Archives |
| 1630 | 1677 | ||
diff --git a/lisp/button.el b/lisp/button.el index 423aef5f78f..8c3681854e7 100644 --- a/lisp/button.el +++ b/lisp/button.el | |||
| @@ -52,8 +52,10 @@ | |||
| 52 | ;; Globals | 52 | ;; Globals |
| 53 | 53 | ||
| 54 | ;; Use color for the MS-DOS port because it doesn't support underline. | 54 | ;; Use color for the MS-DOS port because it doesn't support underline. |
| 55 | ;; Also for the linux console. | ||
| 55 | (defface button '((((type pc) (class color)) | 56 | (defface button '((((type pc) (class color)) |
| 56 | (:foreground "lightblue")) | 57 | (:foreground "lightblue")) |
| 58 | (((type tty)) (:inherit link)) | ||
| 57 | (t :underline t)) | 59 | (t :underline t)) |
| 58 | "Default face used for buttons." | 60 | "Default face used for buttons." |
| 59 | :group 'basic-faces) | 61 | :group 'basic-faces) |
diff --git a/lisp/calc/README b/lisp/calc/README index a93092f3b11..5dfaf57403c 100644 --- a/lisp/calc/README +++ b/lisp/calc/README | |||
| @@ -17,7 +17,7 @@ Written by: | |||
| 17 | daveg@synaptics.com, uunet!synaptx!daveg | 17 | daveg@synaptics.com, uunet!synaptx!daveg |
| 18 | 18 | ||
| 19 | Currently maintained by: | 19 | Currently maintained by: |
| 20 | Jay Belanger <belanger@truman.edu> | 20 | Jay Belanger <jay.p.belanger@gmail.com> |
| 21 | 21 | ||
| 22 | From the introduction to the manual: | 22 | From the introduction to the manual: |
| 23 | 23 | ||
| @@ -59,7 +59,7 @@ From the introduction to the manual: | |||
| 59 | Calc is written entirely in Emacs Lisp, for maximum portability. | 59 | Calc is written entirely in Emacs Lisp, for maximum portability. |
| 60 | 60 | ||
| 61 | I am anxious to hear about your experiences using Calc. Send mail to | 61 | I am anxious to hear about your experiences using Calc. Send mail to |
| 62 | "belanger@truman.edu". A bug report is most useful if you include the | 62 | "jay.p.belanger@gmail.com". A bug report is most useful if you include the |
| 63 | exact input and output that occurred, any modes in effect (such as the | 63 | exact input and output that occurred, any modes in effect (such as the |
| 64 | current precision), and so on. If you find Calc is difficult to operate | 64 | current precision), and so on. If you find Calc is difficult to operate |
| 65 | in any way, or if you have other suggestions, don't hesitate to let me | 65 | in any way, or if you have other suggestions, don't hesitate to let me |
diff --git a/lisp/calc/calc-aent.el b/lisp/calc/calc-aent.el index 988b0240067..4b954fabd0c 100644 --- a/lisp/calc/calc-aent.el +++ b/lisp/calc/calc-aent.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | ;; 2005, 2006, 2007 Free Software Foundation, Inc. | 4 | ;; 2005, 2006, 2007 Free Software Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Author: Dave Gillespie <daveg@synaptics.com> | 6 | ;; Author: Dave Gillespie <daveg@synaptics.com> |
| 7 | ;; Maintainer: Jay Belanger <belanger@truman.edu> | 7 | ;; Maintainer: Jay Belanger <jay.p.belanger@gmail.com> |
| 8 | 8 | ||
| 9 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
| 10 | 10 | ||
diff --git a/lisp/calc/calc-alg.el b/lisp/calc/calc-alg.el index 2037ed099af..70900b9e5c3 100644 --- a/lisp/calc/calc-alg.el +++ b/lisp/calc/calc-alg.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | ;; 2005, 2006, 2007 Free Software Foundation, Inc. | 4 | ;; 2005, 2006, 2007 Free Software Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Author: David Gillespie <daveg@synaptics.com> | 6 | ;; Author: David Gillespie <daveg@synaptics.com> |
| 7 | ;; Maintainer: Jay Belanger <belanger@truman.edu> | 7 | ;; Maintainer: Jay Belanger <jay.p.belanger@gmail.com> |
| 8 | 8 | ||
| 9 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
| 10 | 10 | ||
diff --git a/lisp/calc/calc-arith.el b/lisp/calc/calc-arith.el index 6d56365fc9c..1b291cbb84e 100644 --- a/lisp/calc/calc-arith.el +++ b/lisp/calc/calc-arith.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | ;; 2005, 2006, 2007 Free Software Foundation, Inc. | 4 | ;; 2005, 2006, 2007 Free Software Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Author: David Gillespie <daveg@synaptics.com> | 6 | ;; Author: David Gillespie <daveg@synaptics.com> |
| 7 | ;; Maintainer: Jay Belanger <belanger@truman.edu> | 7 | ;; Maintainer: Jay Belanger <jay.p.belanger@gmail.com> |
| 8 | 8 | ||
| 9 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
| 10 | 10 | ||
diff --git a/lisp/calc/calc-bin.el b/lisp/calc/calc-bin.el index 07be863a99a..3963700a599 100644 --- a/lisp/calc/calc-bin.el +++ b/lisp/calc/calc-bin.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | ;; 2005, 2006, 2007 Free Software Foundation, Inc. | 4 | ;; 2005, 2006, 2007 Free Software Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Author: David Gillespie <daveg@synaptics.com> | 6 | ;; Author: David Gillespie <daveg@synaptics.com> |
| 7 | ;; Maintainer: Jay Belanger <belanger@truman.edu> | 7 | ;; Maintainer: Jay Belanger <jay.p.belanger@gmail.com> |
| 8 | 8 | ||
| 9 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
| 10 | 10 | ||
diff --git a/lisp/calc/calc-comb.el b/lisp/calc/calc-comb.el index eed8124494f..6c30177a0b0 100644 --- a/lisp/calc/calc-comb.el +++ b/lisp/calc/calc-comb.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | ;; 2005, 2006, 2007 Free Software Foundation, Inc. | 4 | ;; 2005, 2006, 2007 Free Software Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Author: David Gillespie <daveg@synaptics.com> | 6 | ;; Author: David Gillespie <daveg@synaptics.com> |
| 7 | ;; Maintainer: Jay Belanger <belanger@truman.edu> | 7 | ;; Maintainer: Jay Belanger <jay.p.belanger@gmail.com> |
| 8 | 8 | ||
| 9 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
| 10 | 10 | ||
diff --git a/lisp/calc/calc-cplx.el b/lisp/calc/calc-cplx.el index de2cfd8354c..0879e308a86 100644 --- a/lisp/calc/calc-cplx.el +++ b/lisp/calc/calc-cplx.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | ;; 2005, 2006, 2007 Free Software Foundation, Inc. | 4 | ;; 2005, 2006, 2007 Free Software Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Author: David Gillespie <daveg@synaptics.com> | 6 | ;; Author: David Gillespie <daveg@synaptics.com> |
| 7 | ;; Maintainer: Jay Belanger <belanger@truman.edu> | 7 | ;; Maintainer: Jay Belanger <jay.p.belanger@gmail.com> |
| 8 | 8 | ||
| 9 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
| 10 | 10 | ||
diff --git a/lisp/calc/calc-embed.el b/lisp/calc/calc-embed.el index eb35b8a7a4b..a064905943f 100644 --- a/lisp/calc/calc-embed.el +++ b/lisp/calc/calc-embed.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | ;; 2005, 2006, 2007 Free Software Foundation, Inc. | 4 | ;; 2005, 2006, 2007 Free Software Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Author: David Gillespie <daveg@synaptics.com> | 6 | ;; Author: David Gillespie <daveg@synaptics.com> |
| 7 | ;; Maintainer: Jay Belanger <belanger@truman.edu> | 7 | ;; Maintainer: Jay Belanger <jay.p.belanger@gmail.com> |
| 8 | 8 | ||
| 9 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
| 10 | 10 | ||
diff --git a/lisp/calc/calc-ext.el b/lisp/calc/calc-ext.el index 22b366a04d9..ca89928d46e 100644 --- a/lisp/calc/calc-ext.el +++ b/lisp/calc/calc-ext.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | ;; 2005, 2006, 2007 Free Software Foundation, Inc. | 4 | ;; 2005, 2006, 2007 Free Software Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Author: David Gillespie <daveg@synaptics.com> | 6 | ;; Author: David Gillespie <daveg@synaptics.com> |
| 7 | ;; Maintainer: Jay Belanger <belanger@truman.edu> | 7 | ;; Maintainer: Jay Belanger <jay.p.belanger@gmail.com> |
| 8 | 8 | ||
| 9 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
| 10 | 10 | ||
diff --git a/lisp/calc/calc-fin.el b/lisp/calc/calc-fin.el index 24516f65535..443ab99a8fe 100644 --- a/lisp/calc/calc-fin.el +++ b/lisp/calc/calc-fin.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | ;; 2005, 2006, 2007 Free Software Foundation, Inc. | 4 | ;; 2005, 2006, 2007 Free Software Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Author: David Gillespie <daveg@synaptics.com> | 6 | ;; Author: David Gillespie <daveg@synaptics.com> |
| 7 | ;; Maintainer: Jay Belanger <belanger@truman.edu> | 7 | ;; Maintainer: Jay Belanger <jay.p.belanger@gmail.com> |
| 8 | 8 | ||
| 9 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
| 10 | 10 | ||
diff --git a/lisp/calc/calc-forms.el b/lisp/calc/calc-forms.el index 3f368499395..10bbf7dc3dd 100644 --- a/lisp/calc/calc-forms.el +++ b/lisp/calc/calc-forms.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | ;; 2005, 2006, 2007 Free Software Foundation, Inc. | 4 | ;; 2005, 2006, 2007 Free Software Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Author: David Gillespie <daveg@synaptics.com> | 6 | ;; Author: David Gillespie <daveg@synaptics.com> |
| 7 | ;; Maintainer: Jay Belanger <belanger@truman.edu> | 7 | ;; Maintainer: Jay Belanger <jay.p.belanger@gmail.com> |
| 8 | 8 | ||
| 9 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
| 10 | 10 | ||
diff --git a/lisp/calc/calc-frac.el b/lisp/calc/calc-frac.el index b30fcd1d145..2fa3bce8508 100644 --- a/lisp/calc/calc-frac.el +++ b/lisp/calc/calc-frac.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | ;; 2005, 2006, 2007 Free Software Foundation, Inc. | 4 | ;; 2005, 2006, 2007 Free Software Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Author: David Gillespie <daveg@synaptics.com> | 6 | ;; Author: David Gillespie <daveg@synaptics.com> |
| 7 | ;; Maintainer: Jay Belanger <belanger@truman.edu> | 7 | ;; Maintainer: Jay Belanger <jay.p.belanger@gmail.com> |
| 8 | 8 | ||
| 9 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
| 10 | 10 | ||
diff --git a/lisp/calc/calc-funcs.el b/lisp/calc/calc-funcs.el index bd8aa753ddf..479116b0c76 100644 --- a/lisp/calc/calc-funcs.el +++ b/lisp/calc/calc-funcs.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | ;; 2005, 2006, 2007 Free Software Foundation, Inc. | 4 | ;; 2005, 2006, 2007 Free Software Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Author: David Gillespie <daveg@synaptics.com> | 6 | ;; Author: David Gillespie <daveg@synaptics.com> |
| 7 | ;; Maintainer: Jay Belanger <belanger@truman.edu> | 7 | ;; Maintainer: Jay Belanger <jay.p.belanger@gmail.com> |
| 8 | 8 | ||
| 9 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
| 10 | 10 | ||
diff --git a/lisp/calc/calc-graph.el b/lisp/calc/calc-graph.el index 734f7615329..e5ffd2263fa 100644 --- a/lisp/calc/calc-graph.el +++ b/lisp/calc/calc-graph.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | ;; 2005, 2006, 2007 Free Software Foundation, Inc. | 4 | ;; 2005, 2006, 2007 Free Software Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Author: David Gillespie <daveg@synaptics.com> | 6 | ;; Author: David Gillespie <daveg@synaptics.com> |
| 7 | ;; Maintainer: Jay Belanger <belanger@truman.edu> | 7 | ;; Maintainer: Jay Belanger <jay.p.belanger@gmail.com> |
| 8 | 8 | ||
| 9 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
| 10 | 10 | ||
diff --git a/lisp/calc/calc-help.el b/lisp/calc/calc-help.el index 90a89c079fa..9f324a67785 100644 --- a/lisp/calc/calc-help.el +++ b/lisp/calc/calc-help.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | ;; 2005, 2006, 2007 Free Software Foundation, Inc. | 4 | ;; 2005, 2006, 2007 Free Software Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Author: David Gillespie <daveg@synaptics.com> | 6 | ;; Author: David Gillespie <daveg@synaptics.com> |
| 7 | ;; Maintainer: Jay Belanger <belanger@truman.edu> | 7 | ;; Maintainer: Jay Belanger <jay.p.belanger@gmail.com> |
| 8 | 8 | ||
| 9 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
| 10 | 10 | ||
diff --git a/lisp/calc/calc-incom.el b/lisp/calc/calc-incom.el index 5d1034cf2fc..ee20476938e 100644 --- a/lisp/calc/calc-incom.el +++ b/lisp/calc/calc-incom.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | ;; 2005, 2006, 2007 Free Software Foundation, Inc. | 4 | ;; 2005, 2006, 2007 Free Software Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Author: David Gillespie <daveg@synaptics.com> | 6 | ;; Author: David Gillespie <daveg@synaptics.com> |
| 7 | ;; Maintainer: Jay Belanger <belanger@truman.edu> | 7 | ;; Maintainer: Jay Belanger <jay.p.belanger@gmail.com> |
| 8 | 8 | ||
| 9 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
| 10 | 10 | ||
diff --git a/lisp/calc/calc-keypd.el b/lisp/calc/calc-keypd.el index d044335e94c..1f71c648ef3 100644 --- a/lisp/calc/calc-keypd.el +++ b/lisp/calc/calc-keypd.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | ;; 2005, 2006, 2007 Free Software Foundation, Inc. | 4 | ;; 2005, 2006, 2007 Free Software Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Author: David Gillespie <daveg@synaptics.com> | 6 | ;; Author: David Gillespie <daveg@synaptics.com> |
| 7 | ;; Maintainer: Jay Belanger <belanger@truman.edu> | 7 | ;; Maintainer: Jay Belanger <jay.p.belanger@gmail.com> |
| 8 | 8 | ||
| 9 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
| 10 | 10 | ||
diff --git a/lisp/calc/calc-lang.el b/lisp/calc/calc-lang.el index 5e91fe153af..79c33b473c3 100644 --- a/lisp/calc/calc-lang.el +++ b/lisp/calc/calc-lang.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | ;; 2005, 2006, 2007 Free Software Foundation, Inc. | 4 | ;; 2005, 2006, 2007 Free Software Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Author: David Gillespie <daveg@synaptics.com> | 6 | ;; Author: David Gillespie <daveg@synaptics.com> |
| 7 | ;; Maintainer: Jay Belanger <belanger@truman.edu> | 7 | ;; Maintainer: Jay Belanger <jay.p.belanger@gmail.com> |
| 8 | 8 | ||
| 9 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
| 10 | 10 | ||
diff --git a/lisp/calc/calc-macs.el b/lisp/calc/calc-macs.el index 692770030fc..68b42876e94 100644 --- a/lisp/calc/calc-macs.el +++ b/lisp/calc/calc-macs.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | ;; 2005, 2006, 2007 Free Software Foundation, Inc. | 4 | ;; 2005, 2006, 2007 Free Software Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Author: David Gillespie <daveg@synaptics.com> | 6 | ;; Author: David Gillespie <daveg@synaptics.com> |
| 7 | ;; Maintainer: Jay Belanger <belanger@truman.edu> | 7 | ;; Maintainer: Jay Belanger <jay.p.belanger@gmail.com> |
| 8 | 8 | ||
| 9 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
| 10 | 10 | ||
diff --git a/lisp/calc/calc-map.el b/lisp/calc/calc-map.el index 9ae9a9b5cfd..b9eb0019ab7 100644 --- a/lisp/calc/calc-map.el +++ b/lisp/calc/calc-map.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | ;; 2005, 2006, 2007 Free Software Foundation, Inc. | 4 | ;; 2005, 2006, 2007 Free Software Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Author: David Gillespie <daveg@synaptics.com> | 6 | ;; Author: David Gillespie <daveg@synaptics.com> |
| 7 | ;; Maintainer: Jay Belanger <belanger@truman.edu> | 7 | ;; Maintainer: Jay Belanger <jay.p.belanger@gmail.com> |
| 8 | 8 | ||
| 9 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
| 10 | 10 | ||
diff --git a/lisp/calc/calc-math.el b/lisp/calc/calc-math.el index 32a3f0409c8..b6481d30b73 100644 --- a/lisp/calc/calc-math.el +++ b/lisp/calc/calc-math.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | ;; 2005, 2006, 2007 Free Software Foundation, Inc. | 4 | ;; 2005, 2006, 2007 Free Software Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Author: David Gillespie <daveg@synaptics.com> | 6 | ;; Author: David Gillespie <daveg@synaptics.com> |
| 7 | ;; Maintainer: Jay Belanger <belanger@truman.edu> | 7 | ;; Maintainer: Jay Belanger <jay.p.belanger@gmail.com> |
| 8 | 8 | ||
| 9 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
| 10 | 10 | ||
diff --git a/lisp/calc/calc-misc.el b/lisp/calc/calc-misc.el index 178734c1f1d..e9674ff938b 100644 --- a/lisp/calc/calc-misc.el +++ b/lisp/calc/calc-misc.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | ;; 2005, 2006, 2007 Free Software Foundation, Inc. | 4 | ;; 2005, 2006, 2007 Free Software Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Author: David Gillespie <daveg@synaptics.com> | 6 | ;; Author: David Gillespie <daveg@synaptics.com> |
| 7 | ;; Maintainer: Jay Belanger <belanger@truman.edu> | 7 | ;; Maintainer: Jay Belanger <jay.p.belanger@gmail.com> |
| 8 | 8 | ||
| 9 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
| 10 | 10 | ||
diff --git a/lisp/calc/calc-mode.el b/lisp/calc/calc-mode.el index 136ca2e91a9..7240009a8e8 100644 --- a/lisp/calc/calc-mode.el +++ b/lisp/calc/calc-mode.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | ;; 2005, 2006, 2007 Free Software Foundation, Inc. | 4 | ;; 2005, 2006, 2007 Free Software Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Author: David Gillespie <daveg@synaptics.com> | 6 | ;; Author: David Gillespie <daveg@synaptics.com> |
| 7 | ;; Maintainer: Jay Belanger <belanger@truman.edu> | 7 | ;; Maintainer: Jay Belanger <jay.p.belanger@gmail.com> |
| 8 | 8 | ||
| 9 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
| 10 | 10 | ||
diff --git a/lisp/calc/calc-mtx.el b/lisp/calc/calc-mtx.el index 012600f86ab..0ab90a4a51d 100644 --- a/lisp/calc/calc-mtx.el +++ b/lisp/calc/calc-mtx.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | ;; 2005, 2006, 2007 Free Software Foundation, Inc. | 4 | ;; 2005, 2006, 2007 Free Software Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Author: David Gillespie <daveg@synaptics.com> | 6 | ;; Author: David Gillespie <daveg@synaptics.com> |
| 7 | ;; Maintainer: Jay Belanger <belanger@truman.edu> | 7 | ;; Maintainer: Jay Belanger <jay.p.belanger@gmail.com> |
| 8 | 8 | ||
| 9 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
| 10 | 10 | ||
diff --git a/lisp/calc/calc-poly.el b/lisp/calc/calc-poly.el index 31e026e4ffe..0bcf78af861 100644 --- a/lisp/calc/calc-poly.el +++ b/lisp/calc/calc-poly.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | ;; 2005, 2006, 2007 Free Software Foundation, Inc. | 4 | ;; 2005, 2006, 2007 Free Software Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Author: David Gillespie <daveg@synaptics.com> | 6 | ;; Author: David Gillespie <daveg@synaptics.com> |
| 7 | ;; Maintainer: Jay Belanger <belanger@truman.edu> | 7 | ;; Maintainer: Jay Belanger <jay.p.belanger@gmail.com> |
| 8 | 8 | ||
| 9 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
| 10 | 10 | ||
diff --git a/lisp/calc/calc-prog.el b/lisp/calc/calc-prog.el index b0a0feccec8..4dff6f04013 100644 --- a/lisp/calc/calc-prog.el +++ b/lisp/calc/calc-prog.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | ;; 2005, 2006, 2007 Free Software Foundation, Inc. | 4 | ;; 2005, 2006, 2007 Free Software Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Author: David Gillespie <daveg@synaptics.com> | 6 | ;; Author: David Gillespie <daveg@synaptics.com> |
| 7 | ;; Maintainer: Jay Belanger <belanger@truman.edu> | 7 | ;; Maintainer: Jay Belanger <jay.p.belanger@gmail.com> |
| 8 | 8 | ||
| 9 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
| 10 | 10 | ||
diff --git a/lisp/calc/calc-rewr.el b/lisp/calc/calc-rewr.el index d1dc4a27f1c..bf9ac13c6cf 100644 --- a/lisp/calc/calc-rewr.el +++ b/lisp/calc/calc-rewr.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | ;; 2005, 2006, 2007 Free Software Foundation, Inc. | 4 | ;; 2005, 2006, 2007 Free Software Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Author: David Gillespie <daveg@synaptics.com> | 6 | ;; Author: David Gillespie <daveg@synaptics.com> |
| 7 | ;; Maintainer: Jay Belanger <belanger@truman.edu> | 7 | ;; Maintainer: Jay Belanger <jay.p.belanger@gmail.com> |
| 8 | 8 | ||
| 9 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
| 10 | 10 | ||
diff --git a/lisp/calc/calc-rules.el b/lisp/calc/calc-rules.el index 5053a0a9fa1..09f71014a0d 100644 --- a/lisp/calc/calc-rules.el +++ b/lisp/calc/calc-rules.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | ;; 2005, 2006, 2007 Free Software Foundation, Inc. | 4 | ;; 2005, 2006, 2007 Free Software Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Author: David Gillespie <daveg@synaptics.com> | 6 | ;; Author: David Gillespie <daveg@synaptics.com> |
| 7 | ;; Maintainer: Jay Belanger <belanger@truman.edu> | 7 | ;; Maintainer: Jay Belanger <jay.p.belanger@gmail.com> |
| 8 | 8 | ||
| 9 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
| 10 | 10 | ||
diff --git a/lisp/calc/calc-sel.el b/lisp/calc/calc-sel.el index 61b0dd70bd8..fe67127d649 100644 --- a/lisp/calc/calc-sel.el +++ b/lisp/calc/calc-sel.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | ;; 2005, 2006, 2007 Free Software Foundation, Inc. | 4 | ;; 2005, 2006, 2007 Free Software Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Author: David Gillespie <daveg@synaptics.com> | 6 | ;; Author: David Gillespie <daveg@synaptics.com> |
| 7 | ;; Maintainer: Jay Belanger <belanger@truman.edu> | 7 | ;; Maintainer: Jay Belanger <jay.p.belanger@gmail.com> |
| 8 | 8 | ||
| 9 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
| 10 | 10 | ||
diff --git a/lisp/calc/calc-stat.el b/lisp/calc/calc-stat.el index d1c481d16fd..967d45e7ba8 100644 --- a/lisp/calc/calc-stat.el +++ b/lisp/calc/calc-stat.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | ;; 2005, 2006, 2007 Free Software Foundation, Inc. | 4 | ;; 2005, 2006, 2007 Free Software Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Author: David Gillespie <daveg@synaptics.com> | 6 | ;; Author: David Gillespie <daveg@synaptics.com> |
| 7 | ;; Maintainer: Jay Belanger <belanger@truman.edu> | 7 | ;; Maintainer: Jay Belanger <jay.p.belanger@gmail.com> |
| 8 | 8 | ||
| 9 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
| 10 | 10 | ||
diff --git a/lisp/calc/calc-store.el b/lisp/calc/calc-store.el index 517106f9d7d..8fa77563211 100644 --- a/lisp/calc/calc-store.el +++ b/lisp/calc/calc-store.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | ;; 2005, 2006, 2007 Free Software Foundation, Inc. | 4 | ;; 2005, 2006, 2007 Free Software Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Author: David Gillespie <daveg@synaptics.com> | 6 | ;; Author: David Gillespie <daveg@synaptics.com> |
| 7 | ;; Maintainer: Jay Belanger <belanger@truman.edu> | 7 | ;; Maintainer: Jay Belanger <jay.p.belanger@gmail.com> |
| 8 | 8 | ||
| 9 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
| 10 | 10 | ||
diff --git a/lisp/calc/calc-stuff.el b/lisp/calc/calc-stuff.el index cafe298fb0e..89cf044c097 100644 --- a/lisp/calc/calc-stuff.el +++ b/lisp/calc/calc-stuff.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | ;; 2005, 2006, 2007 Free Software Foundation, Inc. | 4 | ;; 2005, 2006, 2007 Free Software Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Author: David Gillespie <daveg@synaptics.com> | 6 | ;; Author: David Gillespie <daveg@synaptics.com> |
| 7 | ;; Maintainer: Jay Belanger <belanger@truman.edu> | 7 | ;; Maintainer: Jay Belanger <jay.p.belanger@gmail.com> |
| 8 | 8 | ||
| 9 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
| 10 | 10 | ||
diff --git a/lisp/calc/calc-trail.el b/lisp/calc/calc-trail.el index 2f3de0c5e28..ba18a633c43 100644 --- a/lisp/calc/calc-trail.el +++ b/lisp/calc/calc-trail.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | ;; 2005, 2006, 2007 Free Software Foundation, Inc. | 4 | ;; 2005, 2006, 2007 Free Software Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Author: David Gillespie <daveg@synaptics.com> | 6 | ;; Author: David Gillespie <daveg@synaptics.com> |
| 7 | ;; Maintainer: Jay Belanger <belanger@truman.edu> | 7 | ;; Maintainer: Jay Belanger <jay.p.belanger@gmail.com> |
| 8 | 8 | ||
| 9 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
| 10 | 10 | ||
diff --git a/lisp/calc/calc-undo.el b/lisp/calc/calc-undo.el index e1cec48abf5..9df08597956 100644 --- a/lisp/calc/calc-undo.el +++ b/lisp/calc/calc-undo.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | ;; 2005, 2006, 2007 Free Software Foundation, Inc. | 4 | ;; 2005, 2006, 2007 Free Software Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Author: David Gillespie <daveg@synaptics.com> | 6 | ;; Author: David Gillespie <daveg@synaptics.com> |
| 7 | ;; Maintainer: Jay Belanger <belanger@truman.edu> | 7 | ;; Maintainer: Jay Belanger <jay.p.belanger@gmail.com> |
| 8 | 8 | ||
| 9 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
| 10 | 10 | ||
diff --git a/lisp/calc/calc-units.el b/lisp/calc/calc-units.el index 750dc53a54a..81062b356fa 100644 --- a/lisp/calc/calc-units.el +++ b/lisp/calc/calc-units.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | ;; 2005, 2006, 2007 Free Software Foundation, Inc. | 4 | ;; 2005, 2006, 2007 Free Software Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Author: David Gillespie <daveg@synaptics.com> | 6 | ;; Author: David Gillespie <daveg@synaptics.com> |
| 7 | ;; Maintainer: Jay Belanger <belanger@truman.edu> | 7 | ;; Maintainer: Jay Belanger <jay.p.belanger@gmail.com> |
| 8 | 8 | ||
| 9 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
| 10 | 10 | ||
diff --git a/lisp/calc/calc-vec.el b/lisp/calc/calc-vec.el index d2ec77ceab7..e85d1259b5f 100644 --- a/lisp/calc/calc-vec.el +++ b/lisp/calc/calc-vec.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | ;; 2005, 2006, 2007 Free Software Foundation, Inc. | 4 | ;; 2005, 2006, 2007 Free Software Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Author: David Gillespie <daveg@synaptics.com> | 6 | ;; Author: David Gillespie <daveg@synaptics.com> |
| 7 | ;; Maintainer: Jay Belanger <belanger@truman.edu> | 7 | ;; Maintainer: Jay Belanger <jay.p.belanger@gmail.com> |
| 8 | 8 | ||
| 9 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
| 10 | 10 | ||
diff --git a/lisp/calc/calc-yank.el b/lisp/calc/calc-yank.el index 17997c1f8e1..abd78e5f926 100644 --- a/lisp/calc/calc-yank.el +++ b/lisp/calc/calc-yank.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | ;; 2005, 2006, 2007 Free Software Foundation, Inc. | 4 | ;; 2005, 2006, 2007 Free Software Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Author: David Gillespie <daveg@synaptics.com> | 6 | ;; Author: David Gillespie <daveg@synaptics.com> |
| 7 | ;; Maintainer: Jay Belanger <belanger@truman.edu> | 7 | ;; Maintainer: Jay Belanger <jay.p.belanger@gmail.com> |
| 8 | 8 | ||
| 9 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
| 10 | 10 | ||
diff --git a/lisp/calc/calc.el b/lisp/calc/calc.el index 75e1c83df03..4ca5662afdc 100644 --- a/lisp/calc/calc.el +++ b/lisp/calc/calc.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | ;; 2005, 2006, 2007 Free Software Foundation, Inc. | 4 | ;; 2005, 2006, 2007 Free Software Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Author: David Gillespie <daveg@synaptics.com> | 6 | ;; Author: David Gillespie <daveg@synaptics.com> |
| 7 | ;; Maintainer: Jay Belanger <belanger@truman.edu> | 7 | ;; Maintainer: Jay Belanger <jay.p.belanger@gmail.com> |
| 8 | ;; Keywords: convenience, extensions | 8 | ;; Keywords: convenience, extensions |
| 9 | ;; Version: 2.1 | 9 | ;; Version: 2.1 |
| 10 | 10 | ||
| @@ -401,7 +401,7 @@ This is not required to be present for user-written mode annotations." | |||
| 401 | :group 'calc | 401 | :group 'calc |
| 402 | :type '(choice (string) (sexp))) | 402 | :type '(choice (string) (sexp))) |
| 403 | 403 | ||
| 404 | (defvar calc-bug-address "belanger@truman.edu" | 404 | (defvar calc-bug-address "jay.p.belanger@gmail.com" |
| 405 | "Address of the maintainer of Calc, for use by `report-calc-bug'.") | 405 | "Address of the maintainer of Calc, for use by `report-calc-bug'.") |
| 406 | 406 | ||
| 407 | (defvar calc-scan-for-dels t | 407 | (defvar calc-scan-for-dels t |
| @@ -1148,6 +1148,11 @@ If nil, selections displayed but ignored.") | |||
| 1148 | 1148 | ||
| 1149 | (defvar calc-alg-map) ; Defined in calc-ext.el | 1149 | (defvar calc-alg-map) ; Defined in calc-ext.el |
| 1150 | 1150 | ||
| 1151 | (defun calc-version () | ||
| 1152 | "Return version of this version of Calc." | ||
| 1153 | (interactive) | ||
| 1154 | (message (concat "Calc version " calc-version))) | ||
| 1155 | |||
| 1151 | (defun calc-mode () | 1156 | (defun calc-mode () |
| 1152 | "Calculator major mode. | 1157 | "Calculator major mode. |
| 1153 | 1158 | ||
| @@ -1258,8 +1263,7 @@ commands given here will actually operate on the *Calculator* stack." | |||
| 1258 | (set (make-local-variable 'calc-main-buffer) buf)) | 1263 | (set (make-local-variable 'calc-main-buffer) buf)) |
| 1259 | (when (= (buffer-size) 0) | 1264 | (when (= (buffer-size) 0) |
| 1260 | (let ((buffer-read-only nil)) | 1265 | (let ((buffer-read-only nil)) |
| 1261 | (insert (propertize (concat "Emacs Calculator v" calc-version | 1266 | (insert (propertize (concat "Emacs Calculator Trail\n") |
| 1262 | " by Dave Gillespie\n") | ||
| 1263 | 'font-lock-face 'italic)))) | 1267 | 'font-lock-face 'italic)))) |
| 1264 | (run-mode-hooks 'calc-trail-mode-hook)) | 1268 | (run-mode-hooks 'calc-trail-mode-hook)) |
| 1265 | 1269 | ||
diff --git a/lisp/calc/calcalg2.el b/lisp/calc/calcalg2.el index 5bf388b7431..8b1d4a2c9b3 100644 --- a/lisp/calc/calcalg2.el +++ b/lisp/calc/calcalg2.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | ;; 2005, 2006, 2007 Free Software Foundation, Inc. | 4 | ;; 2005, 2006, 2007 Free Software Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Author: David Gillespie <daveg@synaptics.com> | 6 | ;; Author: David Gillespie <daveg@synaptics.com> |
| 7 | ;; Maintainer: Jay Belanger <belanger@truman.edu> | 7 | ;; Maintainer: Jay Belanger <jay.p.belanger@gmail.com> |
| 8 | 8 | ||
| 9 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
| 10 | 10 | ||
diff --git a/lisp/calc/calcalg3.el b/lisp/calc/calcalg3.el index f5053689fe7..5864091614a 100644 --- a/lisp/calc/calcalg3.el +++ b/lisp/calc/calcalg3.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | ;; 2005, 2006, 2007 Free Software Foundation, Inc. | 4 | ;; 2005, 2006, 2007 Free Software Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Author: David Gillespie <daveg@synaptics.com> | 6 | ;; Author: David Gillespie <daveg@synaptics.com> |
| 7 | ;; Maintainer: Jay Belanger <belanger@truman.edu> | 7 | ;; Maintainer: Jay Belanger <jay.p.belanger@gmail.com> |
| 8 | 8 | ||
| 9 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
| 10 | 10 | ||
diff --git a/lisp/calc/calccomp.el b/lisp/calc/calccomp.el index 1bc844af481..7b385261735 100644 --- a/lisp/calc/calccomp.el +++ b/lisp/calc/calccomp.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | ;; 2005, 2006, 2007 Free Software Foundation, Inc. | 4 | ;; 2005, 2006, 2007 Free Software Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Author: David Gillespie <daveg@synaptics.com> | 6 | ;; Author: David Gillespie <daveg@synaptics.com> |
| 7 | ;; Maintainer: Jay Belanger <belanger@truman.edu> | 7 | ;; Maintainer: Jay Belanger <jay.p.belanger@gmail.com> |
| 8 | 8 | ||
| 9 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
| 10 | 10 | ||
diff --git a/lisp/calc/calcsel2.el b/lisp/calc/calcsel2.el index f28efba30b8..afc3bb45a1e 100644 --- a/lisp/calc/calcsel2.el +++ b/lisp/calc/calcsel2.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | ;; 2005, 2006, 2007 Free Software Foundation, Inc. | 4 | ;; 2005, 2006, 2007 Free Software Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Author: David Gillespie <daveg@synaptics.com> | 6 | ;; Author: David Gillespie <daveg@synaptics.com> |
| 7 | ;; Maintainer: Jay Belanger <belanger@truman.edu> | 7 | ;; Maintainer: Jay Belanger <jay.p.belanger@gmail.com> |
| 8 | 8 | ||
| 9 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
| 10 | 10 | ||
diff --git a/lisp/calendar/appt.el b/lisp/calendar/appt.el index 82fa0e66dbf..02865c994e3 100644 --- a/lisp/calendar/appt.el +++ b/lisp/calendar/appt.el | |||
| @@ -233,8 +233,8 @@ The variable `appt-audible' controls the audible reminder." | |||
| 233 | ;; vars appt-msg-window and appt-visible are dropped. | 233 | ;; vars appt-msg-window and appt-visible are dropped. |
| 234 | (let ((appt-display-format | 234 | (let ((appt-display-format |
| 235 | (if (eq appt-display-format 'ignore) | 235 | (if (eq appt-display-format 'ignore) |
| 236 | (cond (appt-msg-window 'window) | 236 | (cond (appt-msg-window 'window) |
| 237 | (appt-visible 'echo)) | 237 | (appt-visible 'echo)) |
| 238 | appt-display-format))) | 238 | appt-display-format))) |
| 239 | (cond ((eq appt-display-format 'window) | 239 | (cond ((eq appt-display-format 'window) |
| 240 | (funcall appt-disp-window-function | 240 | (funcall appt-disp-window-function |
| @@ -457,7 +457,9 @@ NEW-TIME is a string giving the date." | |||
| 457 | (same-window-p (buffer-name appt-disp-buf))) | 457 | (same-window-p (buffer-name appt-disp-buf))) |
| 458 | ;; By default, split the bottom window and use the lower part. | 458 | ;; By default, split the bottom window and use the lower part. |
| 459 | (appt-select-lowest-window) | 459 | (appt-select-lowest-window) |
| 460 | (select-window (split-window))) | 460 | ;; Split the window, unless it's too small to do so. |
| 461 | (when (>= (window-height) (* 2 window-min-height)) | ||
| 462 | (select-window (split-window)))) | ||
| 461 | (switch-to-buffer appt-disp-buf)) | 463 | (switch-to-buffer appt-disp-buf)) |
| 462 | (calendar-set-mode-line | 464 | (calendar-set-mode-line |
| 463 | (format " Appointment in %s minutes. %s " min-to-app new-time)) | 465 | (format " Appointment in %s minutes. %s " min-to-app new-time)) |
diff --git a/lisp/calendar/cal-china.el b/lisp/calendar/cal-china.el index a838141db1c..7f6646dda64 100644 --- a/lisp/calendar/cal-china.el +++ b/lisp/calendar/cal-china.el | |||
| @@ -43,12 +43,6 @@ | |||
| 43 | ;; ``Calendrical Calculations: The Millennium Edition'' by Edward M. Reingold | 43 | ;; ``Calendrical Calculations: The Millennium Edition'' by Edward M. Reingold |
| 44 | ;; and Nachum Dershowitz, Cambridge University Press (2001). | 44 | ;; and Nachum Dershowitz, Cambridge University Press (2001). |
| 45 | 45 | ||
| 46 | ;; Comments, corrections, and improvements should be sent to | ||
| 47 | ;; Edward M. Reingold Department of Computer Science | ||
| 48 | ;; (217) 333-6733 University of Illinois at Urbana-Champaign | ||
| 49 | ;; reingold@cs.uiuc.edu 1304 West Springfield Avenue | ||
| 50 | ;; Urbana, Illinois 61801 | ||
| 51 | |||
| 52 | ;;; Code: | 46 | ;;; Code: |
| 53 | 47 | ||
| 54 | (defvar date) | 48 | (defvar date) |
diff --git a/lisp/calendar/cal-coptic.el b/lisp/calendar/cal-coptic.el index 23de17a16a8..b5cf96949c6 100644 --- a/lisp/calendar/cal-coptic.el +++ b/lisp/calendar/cal-coptic.el | |||
| @@ -34,12 +34,6 @@ | |||
| 34 | ;; ``Calendrical Calculations: The Millennium Edition'' by Edward M. Reingold | 34 | ;; ``Calendrical Calculations: The Millennium Edition'' by Edward M. Reingold |
| 35 | ;; and Nachum Dershowitz, Cambridge University Press (2001). | 35 | ;; and Nachum Dershowitz, Cambridge University Press (2001). |
| 36 | 36 | ||
| 37 | ;; Comments, corrections, and improvements should be sent to | ||
| 38 | ;; Edward M. Reingold Department of Computer Science | ||
| 39 | ;; (217) 333-6733 University of Illinois at Urbana-Champaign | ||
| 40 | ;; reingold@cs.uiuc.edu 1304 West Springfield Avenue | ||
| 41 | ;; Urbana, Illinois 61801 | ||
| 42 | |||
| 43 | ;;; Code: | 37 | ;;; Code: |
| 44 | 38 | ||
| 45 | (defvar date) | 39 | (defvar date) |
diff --git a/lisp/calendar/cal-dst.el b/lisp/calendar/cal-dst.el index 3aea69b8ccf..6159d7e9dc1 100644 --- a/lisp/calendar/cal-dst.el +++ b/lisp/calendar/cal-dst.el | |||
| @@ -31,12 +31,6 @@ | |||
| 31 | ;; This collection of functions implements the features of calendar.el and | 31 | ;; This collection of functions implements the features of calendar.el and |
| 32 | ;; holiday.el that deal with daylight saving time. | 32 | ;; holiday.el that deal with daylight saving time. |
| 33 | 33 | ||
| 34 | ;; Comments, corrections, and improvements should be sent to | ||
| 35 | ;; Edward M. Reingold Department of Computer Science | ||
| 36 | ;; (217) 333-6733 University of Illinois at Urbana-Champaign | ||
| 37 | ;; reingold@cs.uiuc.edu 1304 West Springfield Avenue | ||
| 38 | ;; Urbana, Illinois 61801 | ||
| 39 | |||
| 40 | ;;; Code: | 34 | ;;; Code: |
| 41 | 35 | ||
| 42 | (require 'calendar) | 36 | (require 'calendar) |
| @@ -266,12 +260,20 @@ Returns a list (YEAR START END), where START and END are | |||
| 266 | expressions that when evaluated return the start and end dates, | 260 | expressions that when evaluated return the start and end dates, |
| 267 | respectively. This function first attempts to use pre-calculated | 261 | respectively. This function first attempts to use pre-calculated |
| 268 | data from `calendar-dst-transition-cache', otherwise it calls | 262 | data from `calendar-dst-transition-cache', otherwise it calls |
| 269 | `calendar-dst-find-data' (and adds the results to the cache)." | 263 | `calendar-dst-find-data' (and adds the results to the cache). |
| 264 | If dates in YEAR cannot be handled by `encode-time' (e.g. if they | ||
| 265 | are too large to be represented as a lisp integer), then rather | ||
| 266 | than an error this function returns the result appropriate for | ||
| 267 | the current year." | ||
| 270 | (let ((e (assoc year calendar-dst-transition-cache)) | 268 | (let ((e (assoc year calendar-dst-transition-cache)) |
| 271 | f) | 269 | f) |
| 272 | (or e | 270 | (or e |
| 273 | (progn | 271 | (progn |
| 274 | (setq e (calendar-dst-find-data (encode-time 1 0 0 1 1 year)) | 272 | (setq e (calendar-dst-find-data |
| 273 | (condition-case nil | ||
| 274 | (encode-time 1 0 0 1 1 year) | ||
| 275 | (error | ||
| 276 | (encode-time 1 0 0 1 1 (nth 5 (decode-time)))))) | ||
| 275 | f (nth 4 e) | 277 | f (nth 4 e) |
| 276 | e (list year f (nth 5 e)) | 278 | e (list year f (nth 5 e)) |
| 277 | calendar-dst-transition-cache | 279 | calendar-dst-transition-cache |
diff --git a/lisp/calendar/cal-french.el b/lisp/calendar/cal-french.el index 99af7042472..439dbd34632 100644 --- a/lisp/calendar/cal-french.el +++ b/lisp/calendar/cal-french.el | |||
| @@ -37,12 +37,6 @@ | |||
| 37 | ;; E. M. Reingold, N. Dershowitz, and S. M. Clamen, Software--Practice and | 37 | ;; E. M. Reingold, N. Dershowitz, and S. M. Clamen, Software--Practice and |
| 38 | ;; Experience, Volume 23, Number 4 (April, 1993), pages 383-404. | 38 | ;; Experience, Volume 23, Number 4 (April, 1993), pages 383-404. |
| 39 | 39 | ||
| 40 | ;; Comments, corrections, and improvements should be sent to | ||
| 41 | ;; Edward M. Reingold Department of Computer Science | ||
| 42 | ;; (217) 333-6733 University of Illinois at Urbana-Champaign | ||
| 43 | ;; reingold@cs.uiuc.edu 1304 West Springfield Avenue | ||
| 44 | ;; Urbana, Illinois 61801 | ||
| 45 | |||
| 46 | ;;; Code: | 40 | ;;; Code: |
| 47 | 41 | ||
| 48 | (defvar date) | 42 | (defvar date) |
diff --git a/lisp/calendar/cal-hebrew.el b/lisp/calendar/cal-hebrew.el index a61bea8eacf..9f32d9df471 100644 --- a/lisp/calendar/cal-hebrew.el +++ b/lisp/calendar/cal-hebrew.el | |||
| @@ -35,12 +35,6 @@ | |||
| 35 | ;; ``Calendrical Calculations: The Millennium Edition'' by Edward M. Reingold | 35 | ;; ``Calendrical Calculations: The Millennium Edition'' by Edward M. Reingold |
| 36 | ;; and Nachum Dershowitz, Cambridge University Press (2001). | 36 | ;; and Nachum Dershowitz, Cambridge University Press (2001). |
| 37 | 37 | ||
| 38 | ;; Comments, corrections, and improvements should be sent to | ||
| 39 | ;; Edward M. Reingold Department of Computer Science | ||
| 40 | ;; (217) 333-6733 University of Illinois at Urbana-Champaign | ||
| 41 | ;; reingold@cs.uiuc.edu 1304 West Springfield Avenue | ||
| 42 | ;; Urbana, Illinois 61801 | ||
| 43 | |||
| 44 | ;;; Code: | 38 | ;;; Code: |
| 45 | 39 | ||
| 46 | (defvar date) | 40 | (defvar date) |
diff --git a/lisp/calendar/cal-islam.el b/lisp/calendar/cal-islam.el index 28faed4d397..57c0f9de65e 100644 --- a/lisp/calendar/cal-islam.el +++ b/lisp/calendar/cal-islam.el | |||
| @@ -34,12 +34,6 @@ | |||
| 34 | ;; ``Calendrical Calculations: The Millennium Edition'' by Edward M. Reingold | 34 | ;; ``Calendrical Calculations: The Millennium Edition'' by Edward M. Reingold |
| 35 | ;; and Nachum Dershowitz, Cambridge University Press (2001). | 35 | ;; and Nachum Dershowitz, Cambridge University Press (2001). |
| 36 | 36 | ||
| 37 | ;; Comments, corrections, and improvements should be sent to | ||
| 38 | ;; Edward M. Reingold Department of Computer Science | ||
| 39 | ;; (217) 333-6733 University of Illinois at Urbana-Champaign | ||
| 40 | ;; reingold@cs.uiuc.edu 1304 West Springfield Avenue | ||
| 41 | ;; Urbana, Illinois 61801 | ||
| 42 | |||
| 43 | ;;; Code: | 37 | ;;; Code: |
| 44 | 38 | ||
| 45 | (defvar date) | 39 | (defvar date) |
diff --git a/lisp/calendar/cal-iso.el b/lisp/calendar/cal-iso.el index 93b39cd4d15..052087e2558 100644 --- a/lisp/calendar/cal-iso.el +++ b/lisp/calendar/cal-iso.el | |||
| @@ -34,12 +34,6 @@ | |||
| 34 | ;; ``Calendrical Calculations: The Millennium Edition'' by Edward M. Reingold | 34 | ;; ``Calendrical Calculations: The Millennium Edition'' by Edward M. Reingold |
| 35 | ;; and Nachum Dershowitz, Cambridge University Press (2001). | 35 | ;; and Nachum Dershowitz, Cambridge University Press (2001). |
| 36 | 36 | ||
| 37 | ;; Comments, corrections, and improvements should be sent to | ||
| 38 | ;; Edward M. Reingold Department of Computer Science | ||
| 39 | ;; (217) 333-6733 University of Illinois at Urbana-Champaign | ||
| 40 | ;; reingold@cs.uiuc.edu 1304 West Springfield Avenue | ||
| 41 | ;; Urbana, Illinois 61801 | ||
| 42 | |||
| 43 | ;;; Code: | 37 | ;;; Code: |
| 44 | 38 | ||
| 45 | (defvar date) | 39 | (defvar date) |
diff --git a/lisp/calendar/cal-julian.el b/lisp/calendar/cal-julian.el index 768e57bbab5..ff6a3f72e1b 100644 --- a/lisp/calendar/cal-julian.el +++ b/lisp/calendar/cal-julian.el | |||
| @@ -34,12 +34,6 @@ | |||
| 34 | ;; ``Calendrical Calculations: The Millennium Edition'' by Edward M. Reingold | 34 | ;; ``Calendrical Calculations: The Millennium Edition'' by Edward M. Reingold |
| 35 | ;; and Nachum Dershowitz, Cambridge University Press (2001). | 35 | ;; and Nachum Dershowitz, Cambridge University Press (2001). |
| 36 | 36 | ||
| 37 | ;; Comments, corrections, and improvements should be sent to | ||
| 38 | ;; Edward M. Reingold Department of Computer Science | ||
| 39 | ;; (217) 333-6733 University of Illinois at Urbana-Champaign | ||
| 40 | ;; reingold@cs.uiuc.edu 1304 West Springfield Avenue | ||
| 41 | ;; Urbana, Illinois 61801 | ||
| 42 | |||
| 43 | ;;; Code: | 37 | ;;; Code: |
| 44 | 38 | ||
| 45 | (defvar date) | 39 | (defvar date) |
diff --git a/lisp/calendar/cal-mayan.el b/lisp/calendar/cal-mayan.el index 20703cb85b6..2cb6d31022e 100644 --- a/lisp/calendar/cal-mayan.el +++ b/lisp/calendar/cal-mayan.el | |||
| @@ -43,8 +43,6 @@ | |||
| 43 | ;; reingold@cs.uiuc.edu 1304 West Springfield Avenue | 43 | ;; reingold@cs.uiuc.edu 1304 West Springfield Avenue |
| 44 | ;; Urbana, Illinois 61801 | 44 | ;; Urbana, Illinois 61801 |
| 45 | 45 | ||
| 46 | ;; Comments, improvements, and bug reports should be sent to Reingold. | ||
| 47 | |||
| 48 | ;; Technical details of the Mayan calendrical calculations can be found in | 46 | ;; Technical details of the Mayan calendrical calculations can be found in |
| 49 | ;; ``Calendrical Calculations: The Millennium Edition'' by Edward M. Reingold | 47 | ;; ``Calendrical Calculations: The Millennium Edition'' by Edward M. Reingold |
| 50 | ;; and Nachum Dershowitz, Cambridge University Press (2001), and in | 48 | ;; and Nachum Dershowitz, Cambridge University Press (2001), and in |
diff --git a/lisp/calendar/cal-menu.el b/lisp/calendar/cal-menu.el index 1320f778cc6..25929976dbd 100644 --- a/lisp/calendar/cal-menu.el +++ b/lisp/calendar/cal-menu.el | |||
| @@ -31,12 +31,6 @@ | |||
| 31 | ;; This collection of functions implements menu bar and popup menu support for | 31 | ;; This collection of functions implements menu bar and popup menu support for |
| 32 | ;; calendar.el. | 32 | ;; calendar.el. |
| 33 | 33 | ||
| 34 | ;; Comments, corrections, and improvements should be sent to | ||
| 35 | ;; Edward M. Reingold Department of Computer Science | ||
| 36 | ;; (217) 333-6733 University of Illinois at Urbana-Champaign | ||
| 37 | ;; reingold@cs.uiuc.edu 1304 West Springfield Avenue | ||
| 38 | ;; Urbana, Illinois 61801 | ||
| 39 | |||
| 40 | ;;; Code: | 34 | ;;; Code: |
| 41 | 35 | ||
| 42 | (defvar displayed-month) | 36 | (defvar displayed-month) |
diff --git a/lisp/calendar/cal-move.el b/lisp/calendar/cal-move.el index b12289c7456..3a08b98bf00 100644 --- a/lisp/calendar/cal-move.el +++ b/lisp/calendar/cal-move.el | |||
| @@ -30,12 +30,6 @@ | |||
| 30 | ;; This collection of functions implements movement in the calendar for | 30 | ;; This collection of functions implements movement in the calendar for |
| 31 | ;; calendar.el. | 31 | ;; calendar.el. |
| 32 | 32 | ||
| 33 | ;; Comments, corrections, and improvements should be sent to | ||
| 34 | ;; Edward M. Reingold Department of Computer Science | ||
| 35 | ;; (217) 333-6733 University of Illinois at Urbana-Champaign | ||
| 36 | ;; reingold@cs.uiuc.edu 1304 West Springfield Avenue | ||
| 37 | ;; Urbana, Illinois 61801 | ||
| 38 | |||
| 39 | ;;; Code: | 33 | ;;; Code: |
| 40 | 34 | ||
| 41 | (defvar displayed-month) | 35 | (defvar displayed-month) |
diff --git a/lisp/calendar/cal-persia.el b/lisp/calendar/cal-persia.el index 6055de121af..a37f9c1f27e 100644 --- a/lisp/calendar/cal-persia.el +++ b/lisp/calendar/cal-persia.el | |||
| @@ -30,16 +30,6 @@ | |||
| 30 | ;; This collection of functions implements the features of calendar.el and | 30 | ;; This collection of functions implements the features of calendar.el and |
| 31 | ;; diary.el that deal with the Persian calendar. | 31 | ;; diary.el that deal with the Persian calendar. |
| 32 | 32 | ||
| 33 | ;; Technical details of all the calendrical calculations can be found in | ||
| 34 | ;; ``Calendrical Calculations: The Millennium Edition'' by Edward M. Reingold | ||
| 35 | ;; and Nachum Dershowitz, Cambridge University Press (2001). | ||
| 36 | |||
| 37 | ;; Comments, corrections, and improvements should be sent to | ||
| 38 | ;; Edward M. Reingold Department of Computer Science | ||
| 39 | ;; (217) 333-6733 University of Illinois at Urbana-Champaign | ||
| 40 | ;; reingold@cs.uiuc.edu 1304 West Springfield Avenue | ||
| 41 | ;; Urbana, Illinois 61801 | ||
| 42 | |||
| 43 | ;;; Code: | 33 | ;;; Code: |
| 44 | 34 | ||
| 45 | (defvar date) | 35 | (defvar date) |
diff --git a/lisp/calendar/cal-x.el b/lisp/calendar/cal-x.el index b7f1748ff34..5f2c89e82c5 100644 --- a/lisp/calendar/cal-x.el +++ b/lisp/calendar/cal-x.el | |||
| @@ -31,12 +31,6 @@ | |||
| 31 | ;; This collection of functions implements dedicated frames in X for | 31 | ;; This collection of functions implements dedicated frames in X for |
| 32 | ;; calendar.el. | 32 | ;; calendar.el. |
| 33 | 33 | ||
| 34 | ;; Comments, corrections, and improvements should be sent to | ||
| 35 | ;; Edward M. Reingold Department of Computer Science | ||
| 36 | ;; (217) 333-6733 University of Illinois at Urbana-Champaign | ||
| 37 | ;; reingold@cs.uiuc.edu 1304 West Springfield Avenue | ||
| 38 | ;; Urbana, Illinois 61801 | ||
| 39 | |||
| 40 | ;;; Code: | 34 | ;;; Code: |
| 41 | 35 | ||
| 42 | (require 'calendar) | 36 | (require 'calendar) |
diff --git a/lisp/calendar/calendar.el b/lisp/calendar/calendar.el index 78f0ad115ec..03f9a95fe37 100644 --- a/lisp/calendar/calendar.el +++ b/lisp/calendar/calendar.el | |||
| @@ -90,12 +90,6 @@ | |||
| 90 | ;; reingold@cs.uiuc.edu with the SUBJECT "send-paper-cal" (no quotes) and | 90 | ;; reingold@cs.uiuc.edu with the SUBJECT "send-paper-cal" (no quotes) and |
| 91 | ;; the message BODY containing your mailing address (snail). | 91 | ;; the message BODY containing your mailing address (snail). |
| 92 | 92 | ||
| 93 | ;; Comments, corrections, and improvements should be sent to | ||
| 94 | ;; Edward M. Reingold Department of Computer Science | ||
| 95 | ;; (217) 333-6733 University of Illinois at Urbana-Champaign | ||
| 96 | ;; reingold@cs.uiuc.edu 1304 West Springfield Avenue | ||
| 97 | ;; Urbana, Illinois 61801 | ||
| 98 | |||
| 99 | ;;; Code: | 93 | ;;; Code: |
| 100 | 94 | ||
| 101 | (defvar displayed-month) | 95 | (defvar displayed-month) |
diff --git a/lisp/calendar/diary-lib.el b/lisp/calendar/diary-lib.el index 2adec8750c3..ee93b60eb98 100644 --- a/lisp/calendar/diary-lib.el +++ b/lisp/calendar/diary-lib.el | |||
| @@ -29,12 +29,6 @@ | |||
| 29 | ;; This collection of functions implements the diary features as described | 29 | ;; This collection of functions implements the diary features as described |
| 30 | ;; in calendar.el. | 30 | ;; in calendar.el. |
| 31 | 31 | ||
| 32 | ;; Comments, corrections, and improvements should be sent to | ||
| 33 | ;; Edward M. Reingold Department of Computer Science | ||
| 34 | ;; (217) 333-6733 University of Illinois at Urbana-Champaign | ||
| 35 | ;; reingold@cs.uiuc.edu 1304 West Springfield Avenue | ||
| 36 | ;; Urbana, Illinois 61801 | ||
| 37 | |||
| 38 | ;;; Code: | 32 | ;;; Code: |
| 39 | 33 | ||
| 40 | (require 'calendar) | 34 | (require 'calendar) |
| @@ -282,6 +276,7 @@ The format of the header is specified by `diary-header-line-format'." | |||
| 282 | :group 'diary | 276 | :group 'diary |
| 283 | :type 'boolean | 277 | :type 'boolean |
| 284 | :initialize 'custom-initialize-default | 278 | :initialize 'custom-initialize-default |
| 279 | ;; FIXME overkill. | ||
| 285 | :set 'diary-set-maybe-redraw | 280 | :set 'diary-set-maybe-redraw |
| 286 | :version "22.1") | 281 | :version "22.1") |
| 287 | 282 | ||
| @@ -298,6 +293,9 @@ before edit/copy" | |||
| 298 | Only used if `diary-header-line-flag' is non-nil." | 293 | Only used if `diary-header-line-flag' is non-nil." |
| 299 | :group 'diary | 294 | :group 'diary |
| 300 | :type 'sexp | 295 | :type 'sexp |
| 296 | :initialize 'custom-initialize-default | ||
| 297 | ;; FIXME overkill. | ||
| 298 | :set 'diary-set-maybe-redraw | ||
| 301 | :version "22.1") | 299 | :version "22.1") |
| 302 | 300 | ||
| 303 | (defvar diary-saved-point) ; internal | 301 | (defvar diary-saved-point) ; internal |
| @@ -440,10 +438,17 @@ If LIST-ONLY is non-nil don't modify or display the buffer, only return a list." | |||
| 440 | (or (verify-visited-file-modtime diary-buffer) | 438 | (or (verify-visited-file-modtime diary-buffer) |
| 441 | (revert-buffer t t)))) | 439 | (revert-buffer t t)))) |
| 442 | ;; Setup things like the header-line-format and invisibility-spec. | 440 | ;; Setup things like the header-line-format and invisibility-spec. |
| 443 | ;; This used to only run if the major-mode was default-major-mode, | 441 | (if (eq major-mode default-major-mode) |
| 444 | ;; but that meant eg changes to header-line-format did not | 442 | (diary-mode) |
| 445 | ;; take effect from one diary invocation to the next. | 443 | ;; This kludge is to make customizations to |
| 446 | (diary-mode) | 444 | ;; diary-header-line-flag after diary has been displayed |
| 445 | ;; take effect. Unconditionally calling (diary-mode) | ||
| 446 | ;; clobbers file local variables. | ||
| 447 | ;; http://lists.gnu.org/archive/html/emacs-pretest-bug/2007-03/msg00363.html | ||
| 448 | ;; http://lists.gnu.org/archive/html/emacs-pretest-bug/2007-04/msg00404.html | ||
| 449 | (if (eq major-mode 'diary-mode) | ||
| 450 | (setq header-line-format (and diary-header-line-flag | ||
| 451 | diary-header-line-format)))) | ||
| 447 | ;; d-s-p is passed to the diary display function. | 452 | ;; d-s-p is passed to the diary display function. |
| 448 | (let ((diary-saved-point (point))) | 453 | (let ((diary-saved-point (point))) |
| 449 | (save-excursion | 454 | (save-excursion |
diff --git a/lisp/calendar/holidays.el b/lisp/calendar/holidays.el index 6f53a47221a..fc6e6315916 100644 --- a/lisp/calendar/holidays.el +++ b/lisp/calendar/holidays.el | |||
| @@ -45,12 +45,6 @@ | |||
| 45 | ;; reingold@cs.uiuc.edu with the SUBJECT "send-paper-cal" (no quotes) and | 45 | ;; reingold@cs.uiuc.edu with the SUBJECT "send-paper-cal" (no quotes) and |
| 46 | ;; the message BODY containing your mailing address (snail). | 46 | ;; the message BODY containing your mailing address (snail). |
| 47 | 47 | ||
| 48 | ;; Comments, corrections, and improvements should be sent to | ||
| 49 | ;; Edward M. Reingold Department of Computer Science | ||
| 50 | ;; (217) 333-6733 University of Illinois at Urbana-Champaign | ||
| 51 | ;; reingold@cs.uiuc.edu 1304 West Springfield Avenue | ||
| 52 | ;; Urbana, Illinois 61801 | ||
| 53 | |||
| 54 | ;;; Code: | 48 | ;;; Code: |
| 55 | 49 | ||
| 56 | (defvar displayed-month) | 50 | (defvar displayed-month) |
diff --git a/lisp/calendar/lunar.el b/lisp/calendar/lunar.el index 33da7cef8e0..8aa062d69c3 100644 --- a/lisp/calendar/lunar.el +++ b/lisp/calendar/lunar.el | |||
| @@ -43,12 +43,6 @@ | |||
| 43 | ;; ``Calendrical Calculations: The Millennium Edition'' by Edward M. Reingold | 43 | ;; ``Calendrical Calculations: The Millennium Edition'' by Edward M. Reingold |
| 44 | ;; and Nachum Dershowitz, Cambridge University Press (2001). | 44 | ;; and Nachum Dershowitz, Cambridge University Press (2001). |
| 45 | 45 | ||
| 46 | ;; Comments, corrections, and improvements should be sent to | ||
| 47 | ;; Edward M. Reingold Department of Computer Science | ||
| 48 | ;; (217) 333-6733 University of Illinois at Urbana-Champaign | ||
| 49 | ;; reingold@cs.uiuc.edu 1304 West Springfield Avenue | ||
| 50 | ;; Urbana, Illinois 61801 | ||
| 51 | |||
| 52 | ;;; Code: | 46 | ;;; Code: |
| 53 | 47 | ||
| 54 | (defvar date) | 48 | (defvar date) |
diff --git a/lisp/calendar/parse-time.el b/lisp/calendar/parse-time.el index 4a786da7726..0913bc92160 100644 --- a/lisp/calendar/parse-time.el +++ b/lisp/calendar/parse-time.el | |||
| @@ -66,7 +66,8 @@ | |||
| 66 | (aref parse-time-digits char)) | 66 | (aref parse-time-digits char)) |
| 67 | 67 | ||
| 68 | (defsubst parse-time-string-chars (char) | 68 | (defsubst parse-time-string-chars (char) |
| 69 | (aref parse-time-syntax char)) | 69 | (and (< char (length parse-time-syntax)) |
| 70 | (aref parse-time-syntax char))) | ||
| 70 | 71 | ||
| 71 | (put 'parse-error 'error-conditions '(parse-error error)) | 72 | (put 'parse-error 'error-conditions '(parse-error error)) |
| 72 | (put 'parse-error 'error-message "Parsing error") | 73 | (put 'parse-error 'error-message "Parsing error") |
diff --git a/lisp/calendar/solar.el b/lisp/calendar/solar.el index c4a8352a8d8..4281c0e1307 100644 --- a/lisp/calendar/solar.el +++ b/lisp/calendar/solar.el | |||
| @@ -53,12 +53,6 @@ | |||
| 53 | ;; ``Calendrical Calculations: The Millennium Edition'' by Edward M. Reingold | 53 | ;; ``Calendrical Calculations: The Millennium Edition'' by Edward M. Reingold |
| 54 | ;; and Nachum Dershowitz, Cambridge University Press (2001). | 54 | ;; and Nachum Dershowitz, Cambridge University Press (2001). |
| 55 | 55 | ||
| 56 | ;; Comments, corrections, and improvements should be sent to | ||
| 57 | ;; Edward M. Reingold Department of Computer Science | ||
| 58 | ;; (217) 333-6733 University of Illinois at Urbana-Champaign | ||
| 59 | ;; reingold@cs.uiuc.edu 1304 West Springfield Avenue | ||
| 60 | ;; Urbana, Illinois 61801 | ||
| 61 | |||
| 62 | ;;; Code: | 56 | ;;; Code: |
| 63 | 57 | ||
| 64 | (defvar date) | 58 | (defvar date) |
diff --git a/lisp/calendar/todo-mode.el b/lisp/calendar/todo-mode.el index 9449c84cb2a..fc222c2d839 100644 --- a/lisp/calendar/todo-mode.el +++ b/lisp/calendar/todo-mode.el | |||
| @@ -205,11 +205,11 @@ | |||
| 205 | ;; by the binary insertion algorithm. However, you may not | 205 | ;; by the binary insertion algorithm. However, you may not |
| 206 | ;; really have a need for such accurate priorities amongst your | 206 | ;; really have a need for such accurate priorities amongst your |
| 207 | ;; TODO items. If you now think about the binary insertion | 207 | ;; TODO items. If you now think about the binary insertion |
| 208 | ;; halfing the size of the window each time, then the threshhold | 208 | ;; halving the size of the window each time, then the threshold |
| 209 | ;; is the window size at which it will stop. If you set the | 209 | ;; is the window size at which it will stop. If you set the |
| 210 | ;; threshhold to zero, the upper and lower bound will coincide at | 210 | ;; threshold to zero, the upper and lower bound will coincide at |
| 211 | ;; the end of the loop and you will insert your item just before | 211 | ;; the end of the loop and you will insert your item just before |
| 212 | ;; that point. If you set the threshhold to, e.g. 8, it will stop | 212 | ;; that point. If you set the threshold to, e.g. 8, it will stop |
| 213 | ;; as soon as the window size drops below that amount and will | 213 | ;; as soon as the window size drops below that amount and will |
| 214 | ;; insert the item in the approximate centre of that window. I | 214 | ;; insert the item in the approximate centre of that window. I |
| 215 | ;; got the idea for this feature after reading a very helpful | 215 | ;; got the idea for this feature after reading a very helpful |
| @@ -231,7 +231,7 @@ | |||
| 231 | ;; an event (unless marked by &) | 231 | ;; an event (unless marked by &) |
| 232 | ;; o The optional COUNT variable of todo-forward-item should be | 232 | ;; o The optional COUNT variable of todo-forward-item should be |
| 233 | ;; applied to the other functions performing similar tasks | 233 | ;; applied to the other functions performing similar tasks |
| 234 | ;; o Modularization could be done for repeaded elements of | 234 | ;; o Modularization could be done for repeated elements of |
| 235 | ;; the code, like the completing-read lines of code. | 235 | ;; the code, like the completing-read lines of code. |
| 236 | ;; o license / version function | 236 | ;; o license / version function |
| 237 | ;; o export to diary file | 237 | ;; o export to diary file |
| @@ -241,7 +241,7 @@ | |||
| 241 | ;; outline mode) | 241 | ;; outline mode) |
| 242 | ;; o rewrite complete package to store data as lisp objects | 242 | ;; o rewrite complete package to store data as lisp objects |
| 243 | ;; and have display modes for display, for diary export, | 243 | ;; and have display modes for display, for diary export, |
| 244 | ;; etc. (Richard Stallman pointed out this is a bad idea) | 244 | ;; etc. (Richard Stallman pointed out this is a bad idea) |
| 245 | ;; o so base todo-mode.el on generic-mode.el instead | 245 | ;; o so base todo-mode.el on generic-mode.el instead |
| 246 | ;; | 246 | ;; |
| 247 | ;; History and Gossip | 247 | ;; History and Gossip |
| @@ -254,7 +254,7 @@ | |||
| 254 | ;; things to my parents' address! | 254 | ;; things to my parents' address! |
| 255 | ;; | 255 | ;; |
| 256 | ;; Oliver Seidel | 256 | ;; Oliver Seidel |
| 257 | ;; (Lessingstr. 8, 65760 Eschborn, Federal Republic of Germany) | 257 | ;; (Lessingstr. 8, 65760 Eschborn, Federal Republic of Germany) |
| 258 | 258 | ||
| 259 | ;;; Code: | 259 | ;;; Code: |
| 260 | 260 | ||
| @@ -280,7 +280,7 @@ in your diary file to include your todo list file as part of your | |||
| 280 | diary. With the default value \"*/*\" the diary displays each entry | 280 | diary. With the default value \"*/*\" the diary displays each entry |
| 281 | every day and it may also be marked on every day of the calendar. | 281 | every day and it may also be marked on every day of the calendar. |
| 282 | Using \"&%%(equal (calendar-current-date) date)\" instead will only | 282 | Using \"&%%(equal (calendar-current-date) date)\" instead will only |
| 283 | show and mark todo entreis for today, but may slow down processing of | 283 | show and mark todo entries for today, but may slow down processing of |
| 284 | the diary file somewhat." | 284 | the diary file somewhat." |
| 285 | :type 'string | 285 | :type 'string |
| 286 | :group 'todo) | 286 | :group 'todo) |
| @@ -306,11 +306,11 @@ the diary file somewhat." | |||
| 306 | If you have 8 items in your TODO list, then you may get asked 4 | 306 | If you have 8 items in your TODO list, then you may get asked 4 |
| 307 | questions by the binary insertion algorithm. However, you may not | 307 | questions by the binary insertion algorithm. However, you may not |
| 308 | really have a need for such accurate priorities amongst your TODO | 308 | really have a need for such accurate priorities amongst your TODO |
| 309 | items. If you now think about the binary insertion halfing the size | 309 | items. If you now think about the binary insertion halving the size |
| 310 | of the window each time, then the threshhold is the window size at | 310 | of the window each time, then the threshold is the window size at |
| 311 | which it will stop. If you set the threshhold to zero, the upper and | 311 | which it will stop. If you set the threshold to zero, the upper and |
| 312 | lower bound will coincide at the end of the loop and you will insert | 312 | lower bound will coincide at the end of the loop and you will insert |
| 313 | your item just before that point. If you set the threshhold to, | 313 | your item just before that point. If you set the threshold to, |
| 314 | e.g. 8, it will stop as soon as the window size drops below that | 314 | e.g. 8, it will stop as soon as the window size drops below that |
| 315 | amount and will insert the item in the approximate center of that | 315 | amount and will insert the item in the approximate center of that |
| 316 | window." | 316 | window." |
diff --git a/lisp/complete.el b/lisp/complete.el index 1cdff0d9acd..b1bb36f9dfa 100644 --- a/lisp/complete.el +++ b/lisp/complete.el | |||
| @@ -190,6 +190,14 @@ If nil, means use the colon-separated path in the variable $INCPATH instead." | |||
| 190 | (defvar PC-do-completion-end nil | 190 | (defvar PC-do-completion-end nil |
| 191 | "Internal variable used by `PC-do-completion'.") | 191 | "Internal variable used by `PC-do-completion'.") |
| 192 | 192 | ||
| 193 | (make-variable-buffer-local 'PC-do-completion-end) | ||
| 194 | |||
| 195 | (defvar PC-goto-end nil | ||
| 196 | "Internal variable set in `PC-do-completion', used in | ||
| 197 | `choose-completion-string-functions'.") | ||
| 198 | |||
| 199 | (make-variable-buffer-local 'PC-goto-end) | ||
| 200 | |||
| 193 | ;;;###autoload | 201 | ;;;###autoload |
| 194 | (define-minor-mode partial-completion-mode | 202 | (define-minor-mode partial-completion-mode |
| 195 | "Toggle Partial Completion mode. | 203 | "Toggle Partial Completion mode. |
| @@ -242,11 +250,16 @@ second TAB brings up the `*Completions*' buffer." | |||
| 242 | (if partial-completion-mode 'add-hook 'remove-hook) | 250 | (if partial-completion-mode 'add-hook 'remove-hook) |
| 243 | 'choose-completion-string-functions | 251 | 'choose-completion-string-functions |
| 244 | (lambda (choice buffer mini-p base-size) | 252 | (lambda (choice buffer mini-p base-size) |
| 245 | (if mini-p (goto-char (point-max)) | 253 | ;; When completing M-: (lisp- ) with point before the ), it is |
| 254 | ;; not appropriate to go to point-max (unlike the filename case). | ||
| 255 | (if (and (not PC-goto-end) | ||
| 256 | mini-p) | ||
| 257 | (goto-char (point-max)) | ||
| 246 | ;; Need a similar hack for the non-minibuffer-case -- gm. | 258 | ;; Need a similar hack for the non-minibuffer-case -- gm. |
| 247 | (when PC-do-completion-end | 259 | (when PC-do-completion-end |
| 248 | (goto-char PC-do-completion-end) | 260 | (goto-char PC-do-completion-end) |
| 249 | (setq PC-do-completion-end nil))) | 261 | (setq PC-do-completion-end nil))) |
| 262 | (setq PC-goto-end nil) | ||
| 250 | nil)) | 263 | nil)) |
| 251 | ;; Build the env-completion and mapping table. | 264 | ;; Build the env-completion and mapping table. |
| 252 | (when (and partial-completion-mode (null PC-env-vars-alist)) | 265 | (when (and partial-completion-mode (null PC-env-vars-alist)) |
| @@ -417,7 +430,13 @@ of `minibuffer-completion-table' and the minibuffer contents.") | |||
| 417 | (let ((result (try-completion string alist predicate))) | 430 | (let ((result (try-completion string alist predicate))) |
| 418 | (if (eq result t) string result))) | 431 | (if (eq result t) string result))) |
| 419 | 432 | ||
| 420 | (defun PC-do-completion (&optional mode beg end) | 433 | ;; TODO document MODE magic... |
| 434 | (defun PC-do-completion (&optional mode beg end goto-end) | ||
| 435 | "Internal function to do the work of partial completion. | ||
| 436 | Text to be completed lies between BEG and END. Normally when | ||
| 437 | replacing text in the minibuffer, this function replaces up to | ||
| 438 | point-max (as is appropriate for completing a file name). If | ||
| 439 | GOTO-END is non-nil, however, it instead replaces up to END." | ||
| 421 | (or beg (setq beg (minibuffer-prompt-end))) | 440 | (or beg (setq beg (minibuffer-prompt-end))) |
| 422 | (or end (setq end (point-max))) | 441 | (or end (setq end (point-max))) |
| 423 | (let* ((table minibuffer-completion-table) | 442 | (let* ((table minibuffer-completion-table) |
| @@ -753,6 +772,8 @@ of `minibuffer-completion-table' and the minibuffer contents.") | |||
| 753 | (let ((prompt-end (minibuffer-prompt-end))) | 772 | (let ((prompt-end (minibuffer-prompt-end))) |
| 754 | (with-output-to-temp-buffer "*Completions*" | 773 | (with-output-to-temp-buffer "*Completions*" |
| 755 | (display-completion-list (sort helpposs 'string-lessp)) | 774 | (display-completion-list (sort helpposs 'string-lessp)) |
| 775 | (setq PC-do-completion-end end | ||
| 776 | PC-goto-end goto-end) | ||
| 756 | (with-current-buffer standard-output | 777 | (with-current-buffer standard-output |
| 757 | ;; Record which part of the buffer we are completing | 778 | ;; Record which part of the buffer we are completing |
| 758 | ;; so that choosing a completion from the list | 779 | ;; so that choosing a completion from the list |
| @@ -771,8 +792,7 @@ of `minibuffer-completion-table' and the minibuffer contents.") | |||
| 771 | ;; plays around with point. | 792 | ;; plays around with point. |
| 772 | (setq completion-base-size (if dirname | 793 | (setq completion-base-size (if dirname |
| 773 | dirlength | 794 | dirlength |
| 774 | (- beg prompt-end)) | 795 | (- beg prompt-end)))))) |
| 775 | PC-do-completion-end end)))) | ||
| 776 | (PC-temp-minibuffer-message " [Next char not unique]")) | 796 | (PC-temp-minibuffer-message " [Next char not unique]")) |
| 777 | nil))))) | 797 | nil))))) |
| 778 | 798 | ||
| @@ -886,11 +906,11 @@ or properties are considered." | |||
| 886 | ;; Alternatively alternatively, maybe end should be computed in | 906 | ;; Alternatively alternatively, maybe end should be computed in |
| 887 | ;; the same way as beg. That would change the behaviour though. | 907 | ;; the same way as beg. That would change the behaviour though. |
| 888 | (if (equal last-command 'PC-lisp-complete-symbol) | 908 | (if (equal last-command 'PC-lisp-complete-symbol) |
| 889 | (PC-do-completion nil beg PC-lisp-complete-end) | 909 | (PC-do-completion nil beg PC-lisp-complete-end t) |
| 890 | (if PC-lisp-complete-end | 910 | (if PC-lisp-complete-end |
| 891 | (move-marker PC-lisp-complete-end end) | 911 | (move-marker PC-lisp-complete-end end) |
| 892 | (setq PC-lisp-complete-end (copy-marker end t))) | 912 | (setq PC-lisp-complete-end (copy-marker end t))) |
| 893 | (PC-do-completion nil beg end)))) | 913 | (PC-do-completion nil beg end t)))) |
| 894 | 914 | ||
| 895 | (defun PC-complete-as-file-name () | 915 | (defun PC-complete-as-file-name () |
| 896 | "Perform completion on file names preceding point. | 916 | "Perform completion on file names preceding point. |
diff --git a/lisp/cus-edit.el b/lisp/cus-edit.el index d8fdf966374..4dae3bab018 100644 --- a/lisp/cus-edit.el +++ b/lisp/cus-edit.el | |||
| @@ -422,7 +422,7 @@ | |||
| 422 | :group 'development) | 422 | :group 'development) |
| 423 | 423 | ||
| 424 | (defgroup minibuffer nil | 424 | (defgroup minibuffer nil |
| 425 | "Controling the behavior of the minibuffer." | 425 | "Controlling the behavior of the minibuffer." |
| 426 | :link '(custom-manual "(emacs)Minibuffer") | 426 | :link '(custom-manual "(emacs)Minibuffer") |
| 427 | :group 'environment) | 427 | :group 'environment) |
| 428 | 428 | ||
| @@ -443,7 +443,7 @@ | |||
| 443 | :group 'environment) | 443 | :group 'environment) |
| 444 | 444 | ||
| 445 | (defgroup auto-save nil | 445 | (defgroup auto-save nil |
| 446 | "Preventing accidential loss of data." | 446 | "Preventing accidental loss of data." |
| 447 | :group 'files) | 447 | :group 'files) |
| 448 | 448 | ||
| 449 | (defgroup processes-basics nil | 449 | (defgroup processes-basics nil |
diff --git a/lisp/desktop.el b/lisp/desktop.el index 8d7776be36c..31de08bdc26 100644 --- a/lisp/desktop.el +++ b/lisp/desktop.el | |||
| @@ -45,9 +45,9 @@ | |||
| 45 | ;; "Saving Emacs Sessions" in the GNU Emacs Manual. | 45 | ;; "Saving Emacs Sessions" in the GNU Emacs Manual. |
| 46 | 46 | ||
| 47 | ;; When the desktop module is loaded, the function `desktop-kill' is | 47 | ;; When the desktop module is loaded, the function `desktop-kill' is |
| 48 | ;; added to the `kill-emacs-hook'. This function is responsible for | 48 | ;; added to the `kill-emacs-hook'. This function is responsible for |
| 49 | ;; saving the desktop when Emacs is killed. Furthermore an anonymous | 49 | ;; saving the desktop when Emacs is killed. Furthermore an anonymous |
| 50 | ;; function is added to the `after-init-hook'. This function is | 50 | ;; function is added to the `after-init-hook'. This function is |
| 51 | ;; responsible for loading the desktop when Emacs is started. | 51 | ;; responsible for loading the desktop when Emacs is started. |
| 52 | 52 | ||
| 53 | ;; Special handling. | 53 | ;; Special handling. |
| @@ -55,12 +55,12 @@ | |||
| 55 | ;; Variables `desktop-buffer-mode-handlers' and `desktop-minor-mode-handlers' | 55 | ;; Variables `desktop-buffer-mode-handlers' and `desktop-minor-mode-handlers' |
| 56 | ;; are supplied to handle special major and minor modes respectively. | 56 | ;; are supplied to handle special major and minor modes respectively. |
| 57 | ;; `desktop-buffer-mode-handlers' is an alist of major mode specific functions | 57 | ;; `desktop-buffer-mode-handlers' is an alist of major mode specific functions |
| 58 | ;; to restore a desktop buffer. Elements must have the form | 58 | ;; to restore a desktop buffer. Elements must have the form |
| 59 | ;; | 59 | ;; |
| 60 | ;; (MAJOR-MODE . RESTORE-BUFFER-FUNCTION). | 60 | ;; (MAJOR-MODE . RESTORE-BUFFER-FUNCTION). |
| 61 | ;; | 61 | ;; |
| 62 | ;; Functions listed are called by `desktop-create-buffer' when `desktop-read' | 62 | ;; Functions listed are called by `desktop-create-buffer' when `desktop-read' |
| 63 | ;; evaluates the desktop file. Buffers with a major mode not specified here, | 63 | ;; evaluates the desktop file. Buffers with a major mode not specified here, |
| 64 | ;; are restored by the default handler `desktop-restore-file-buffer'. | 64 | ;; are restored by the default handler `desktop-restore-file-buffer'. |
| 65 | ;; `desktop-minor-mode-handlers' is an alist of functions to restore | 65 | ;; `desktop-minor-mode-handlers' is an alist of functions to restore |
| 66 | ;; non-standard minor modes. Elements must have the form | 66 | ;; non-standard minor modes. Elements must have the form |
| @@ -85,7 +85,7 @@ | |||
| 85 | ;; '(bar-mode . bar-desktop-restore)) | 85 | ;; '(bar-mode . bar-desktop-restore)) |
| 86 | 86 | ||
| 87 | ;; in the module itself, and make shure that the mode function is | 87 | ;; in the module itself, and make shure that the mode function is |
| 88 | ;; autoloaded. See the docstrings of `desktop-buffer-mode-handlers' and | 88 | ;; autoloaded. See the docstrings of `desktop-buffer-mode-handlers' and |
| 89 | ;; `desktop-minor-mode-handlers' for more info. | 89 | ;; `desktop-minor-mode-handlers' for more info. |
| 90 | 90 | ||
| 91 | ;; Minor modes. | 91 | ;; Minor modes. |
| @@ -100,7 +100,7 @@ | |||
| 100 | ;; The variables `desktop-minor-mode-table' and `desktop-minor-mode-handlers' | 100 | ;; The variables `desktop-minor-mode-table' and `desktop-minor-mode-handlers' |
| 101 | ;; are used to handle non-conventional minor modes. `desktop-save' uses | 101 | ;; are used to handle non-conventional minor modes. `desktop-save' uses |
| 102 | ;; `desktop-minor-mode-table' to map minor mode variables to minor mode | 102 | ;; `desktop-minor-mode-table' to map minor mode variables to minor mode |
| 103 | ;; functions before writing `desktop-minor-modes'. If a minor mode has a | 103 | ;; functions before writing `desktop-minor-modes'. If a minor mode has a |
| 104 | ;; variable name that is different form its function name, an entry | 104 | ;; variable name that is different form its function name, an entry |
| 105 | 105 | ||
| 106 | ;; (NAME RESTORE-FUNCTION) | 106 | ;; (NAME RESTORE-FUNCTION) |
| @@ -619,8 +619,7 @@ QUOTE may be `may' (value may be quoted), | |||
| 619 | (setq newlist (cons q.txt newlist))) | 619 | (setq newlist (cons q.txt newlist))) |
| 620 | (setq p (cdr p))) | 620 | (setq p (cdr p))) |
| 621 | (if p | 621 | (if p |
| 622 | (let ((last (desktop-internal-v2s p)) | 622 | (let ((last (desktop-internal-v2s p))) |
| 623 | (el (car newlist))) | ||
| 624 | (or anynil (setq anynil (null (car last)))) | 623 | (or anynil (setq anynil (null (car last)))) |
| 625 | (or anynil | 624 | (or anynil |
| 626 | (setq newlist (cons '(must . ".") newlist))) | 625 | (setq newlist (cons '(must . ".") newlist))) |
| @@ -782,7 +781,8 @@ See also `desktop-base-file-name'." | |||
| 782 | ";; Desktop file format version " desktop-file-version "\n" | 781 | ";; Desktop file format version " desktop-file-version "\n" |
| 783 | ";; Emacs version " emacs-version "\n\n" | 782 | ";; Emacs version " emacs-version "\n\n" |
| 784 | ";; Global section:\n") | 783 | ";; Global section:\n") |
| 785 | (mapcar (function desktop-outvar) desktop-globals-to-save) | 784 | (dolist (varspec desktop-globals-to-save) |
| 785 | (desktop-outvar varspec)) | ||
| 786 | (if (memq 'kill-ring desktop-globals-to-save) | 786 | (if (memq 'kill-ring desktop-globals-to-save) |
| 787 | (insert | 787 | (insert |
| 788 | "(setq kill-ring-yank-pointer (nthcdr " | 788 | "(setq kill-ring-yank-pointer (nthcdr " |
| @@ -790,22 +790,20 @@ See also `desktop-base-file-name'." | |||
| 790 | " kill-ring))\n")) | 790 | " kill-ring))\n")) |
| 791 | 791 | ||
| 792 | (insert "\n;; Buffer section -- buffers listed in same order as in buffer list:\n") | 792 | (insert "\n;; Buffer section -- buffers listed in same order as in buffer list:\n") |
| 793 | (mapcar #'(lambda (l) | 793 | (dolist (l info) |
| 794 | (when (apply 'desktop-save-buffer-p l) | 794 | (when (apply 'desktop-save-buffer-p l) |
| 795 | (insert "(" | 795 | (insert "(" |
| 796 | (if (or (not (integerp eager)) | 796 | (if (or (not (integerp eager)) |
| 797 | (unless (zerop eager) | 797 | (unless (zerop eager) |
| 798 | (setq eager (1- eager)) | 798 | (setq eager (1- eager)) |
| 799 | t)) | 799 | t)) |
| 800 | "desktop-create-buffer" | 800 | "desktop-create-buffer" |
| 801 | "desktop-append-buffer-args") | 801 | "desktop-append-buffer-args") |
| 802 | " " | 802 | " " |
| 803 | desktop-file-version) | 803 | desktop-file-version) |
| 804 | (mapcar #'(lambda (e) | 804 | (dolist (e l) |
| 805 | (insert "\n " (desktop-value-to-string e))) | 805 | (insert "\n " (desktop-value-to-string e))) |
| 806 | l) | 806 | (insert ")\n\n"))) |
| 807 | (insert ")\n\n"))) | ||
| 808 | info) | ||
| 809 | (setq default-directory dirname) | 807 | (setq default-directory dirname) |
| 810 | (let ((coding-system-for-write 'utf-8-emacs)) | 808 | (let ((coding-system-for-write 'utf-8-emacs)) |
| 811 | (write-region (point-min) (point-max) filename nil 'nomessage))))) | 809 | (write-region (point-min) (point-max) filename nil 'nomessage))))) |
| @@ -941,14 +939,13 @@ directory DIRNAME." | |||
| 941 | (desktop-clear) | 939 | (desktop-clear) |
| 942 | (desktop-read desktop-dirname)) | 940 | (desktop-read desktop-dirname)) |
| 943 | 941 | ||
| 942 | (defvar desktop-buffer-major-mode) | ||
| 943 | (defvar desktop-buffer-locals) | ||
| 944 | ;; ---------------------------------------------------------------------------- | 944 | ;; ---------------------------------------------------------------------------- |
| 945 | (defun desktop-restore-file-buffer (desktop-buffer-file-name | 945 | (defun desktop-restore-file-buffer (desktop-buffer-file-name |
| 946 | desktop-buffer-name | 946 | desktop-buffer-name |
| 947 | desktop-buffer-misc) | 947 | desktop-buffer-misc) |
| 948 | "Restore a file buffer." | 948 | "Restore a file buffer." |
| 949 | (eval-when-compile ; Just to silence the byte compiler | ||
| 950 | (defvar desktop-buffer-major-mode) | ||
| 951 | (defvar desktop-buffer-locals)) | ||
| 952 | (if desktop-buffer-file-name | 949 | (if desktop-buffer-file-name |
| 953 | (if (or (file-exists-p desktop-buffer-file-name) | 950 | (if (or (file-exists-p desktop-buffer-file-name) |
| 954 | (let ((msg (format "Desktop: File \"%s\" no longer exists." | 951 | (let ((msg (format "Desktop: File \"%s\" no longer exists." |
| @@ -985,8 +982,12 @@ directory DIRNAME." | |||
| 985 | ;; called from Desktop file only. | 982 | ;; called from Desktop file only. |
| 986 | 983 | ||
| 987 | ;; Just to silence the byte compiler. | 984 | ;; Just to silence the byte compiler. |
| 988 | (eval-when-compile | 985 | |
| 989 | (defvar desktop-first-buffer)) ; Dynamically bound in `desktop-read' | 986 | (defvar desktop-first-buffer) ; Dynamically bound in `desktop-read' |
| 987 | |||
| 988 | ;; Bound locally in `desktop-read'. | ||
| 989 | (defvar desktop-buffer-ok-count) | ||
| 990 | (defvar desktop-buffer-fail-count) | ||
| 990 | 991 | ||
| 991 | (defun desktop-create-buffer | 992 | (defun desktop-create-buffer |
| 992 | (desktop-file-version | 993 | (desktop-file-version |
| @@ -1000,10 +1001,6 @@ directory DIRNAME." | |||
| 1000 | desktop-buffer-misc | 1001 | desktop-buffer-misc |
| 1001 | &optional | 1002 | &optional |
| 1002 | desktop-buffer-locals) | 1003 | desktop-buffer-locals) |
| 1003 | ;; Just to silence the byte compiler. Bound locally in `desktop-read'. | ||
| 1004 | (eval-when-compile | ||
| 1005 | (defvar desktop-buffer-ok-count) | ||
| 1006 | (defvar desktop-buffer-fail-count)) | ||
| 1007 | ;; To make desktop files with relative file names possible, we cannot | 1004 | ;; To make desktop files with relative file names possible, we cannot |
| 1008 | ;; allow `default-directory' to change. Therefore we save current buffer. | 1005 | ;; allow `default-directory' to change. Therefore we save current buffer. |
| 1009 | (save-current-buffer | 1006 | (save-current-buffer |
| @@ -1045,21 +1042,22 @@ directory DIRNAME." | |||
| 1045 | ((equal '(nil) desktop-buffer-minor-modes) ; backwards compatible | 1042 | ((equal '(nil) desktop-buffer-minor-modes) ; backwards compatible |
| 1046 | (auto-fill-mode 0)) | 1043 | (auto-fill-mode 0)) |
| 1047 | (t | 1044 | (t |
| 1048 | (mapcar #'(lambda (minor-mode) | 1045 | (dolist (minor-mode desktop-buffer-minor-modes) |
| 1049 | ;; Give minor mode module a chance to add a handler. | 1046 | ;; Give minor mode module a chance to add a handler. |
| 1050 | (desktop-load-file minor-mode) | 1047 | (desktop-load-file minor-mode) |
| 1051 | (let ((handler (cdr (assq minor-mode desktop-minor-mode-handlers)))) | 1048 | (let ((handler (cdr (assq minor-mode desktop-minor-mode-handlers)))) |
| 1052 | (if handler | 1049 | (if handler |
| 1053 | (funcall handler desktop-buffer-locals) | 1050 | (funcall handler desktop-buffer-locals) |
| 1054 | (when (functionp minor-mode) | 1051 | (when (functionp minor-mode) |
| 1055 | (funcall minor-mode 1))))) | 1052 | (funcall minor-mode 1))))))) |
| 1056 | desktop-buffer-minor-modes))) | 1053 | ;; Even though point and mark are non-nil when written by |
| 1057 | ;; Even though point and mark are non-nil when written by `desktop-save', | 1054 | ;; `desktop-save', they may be modified by handlers wanting to set |
| 1058 | ;; they may be modified by handlers wanting to set point or mark themselves. | 1055 | ;; point or mark themselves. |
| 1059 | (when desktop-buffer-point | 1056 | (when desktop-buffer-point |
| 1060 | (goto-char | 1057 | (goto-char |
| 1061 | (condition-case err | 1058 | (condition-case err |
| 1062 | ;; Evaluate point. Thus point can be something like '(search-forward ... | 1059 | ;; Evaluate point. Thus point can be something like |
| 1060 | ;; '(search-forward ... | ||
| 1063 | (eval desktop-buffer-point) | 1061 | (eval desktop-buffer-point) |
| 1064 | (error (message "%s" (error-message-string err)) 1)))) | 1062 | (error (message "%s" (error-message-string err)) 1)))) |
| 1065 | (when desktop-buffer-mark | 1063 | (when desktop-buffer-mark |
| @@ -1167,7 +1165,7 @@ If there are no buffers left to create, kill the timer." | |||
| 1167 | ;; functions are processed after `after-init-hook'. | 1165 | ;; functions are processed after `after-init-hook'. |
| 1168 | (add-hook | 1166 | (add-hook |
| 1169 | 'after-init-hook | 1167 | 'after-init-hook |
| 1170 | '(lambda () | 1168 | (lambda () |
| 1171 | (let ((key "--no-desktop")) | 1169 | (let ((key "--no-desktop")) |
| 1172 | (when (member key command-line-args) | 1170 | (when (member key command-line-args) |
| 1173 | (setq command-line-args (delete key command-line-args)) | 1171 | (setq command-line-args (delete key command-line-args)) |
| @@ -1176,5 +1174,5 @@ If there are no buffers left to create, kill the timer." | |||
| 1176 | 1174 | ||
| 1177 | (provide 'desktop) | 1175 | (provide 'desktop) |
| 1178 | 1176 | ||
| 1179 | ;;; arch-tag: 221907c3-1771-4fd3-9c2e-c6f700c6ede9 | 1177 | ;; arch-tag: 221907c3-1771-4fd3-9c2e-c6f700c6ede9 |
| 1180 | ;;; desktop.el ends here | 1178 | ;;; desktop.el ends here |
diff --git a/lisp/dired-x.el b/lisp/dired-x.el index f5e6250b475..eecb1dbb709 100644 --- a/lisp/dired-x.el +++ b/lisp/dired-x.el | |||
| @@ -790,21 +790,18 @@ nil." | |||
| 790 | (revert-buffer))) | 790 | (revert-buffer))) |
| 791 | 791 | ||
| 792 | ;; A zero-arg version of dired-virtual. | 792 | ;; A zero-arg version of dired-virtual. |
| 793 | ;; You need my modified version of set-auto-mode for the | ||
| 794 | ;; `buffer-contents-mode-alist'. | ||
| 795 | ;; Or you use infer-mode.el and infer-mode-alist, same syntax. | ||
| 796 | (defun dired-virtual-mode () | 793 | (defun dired-virtual-mode () |
| 797 | "Put current buffer into Virtual Dired mode (see `dired-virtual'). | 794 | "Put current buffer into Virtual Dired mode (see `dired-virtual'). |
| 798 | Useful on `buffer-contents-mode-alist' (which see) with the regexp | 795 | Useful on `magic-mode-alist' with the regexp |
| 799 | 796 | ||
| 800 | \"^ \\(/[^ /]+\\)/?+:$\" | 797 | \"^ \\\\(/[^ /]+\\\\)+/?:$\" |
| 801 | 798 | ||
| 802 | to put saved dired buffers automatically into Virtual Dired mode. | 799 | to put saved dired buffers automatically into Virtual Dired mode. |
| 803 | 800 | ||
| 804 | Also useful for `auto-mode-alist' (which see) like this: | 801 | Also useful for `auto-mode-alist' like this: |
| 805 | 802 | ||
| 806 | \(setq auto-mode-alist (cons '(\"[^/]\\.dired\\'\" . dired-virtual-mode) | 803 | (add-to-list 'auto-mode-alist |
| 807 | auto-mode-alist)\)" | 804 | '(\"[^/]\\\\.dired\\\\'\" . dired-virtual-mode))" |
| 808 | (interactive) | 805 | (interactive) |
| 809 | (dired-virtual (dired-virtual-guess-dir))) | 806 | (dired-virtual (dired-virtual-guess-dir))) |
| 810 | 807 | ||
diff --git a/lisp/dired.el b/lisp/dired.el index 7734a9bd69f..c618eec5159 100644 --- a/lisp/dired.el +++ b/lisp/dired.el | |||
| @@ -1251,19 +1251,19 @@ Do so according to the former subdir alist OLD-SUBDIR-ALIST." | |||
| 1251 | (define-key map "\177" 'dired-unmark-backward) | 1251 | (define-key map "\177" 'dired-unmark-backward) |
| 1252 | (define-key map [remap undo] 'dired-undo) | 1252 | (define-key map [remap undo] 'dired-undo) |
| 1253 | (define-key map [remap advertised-undo] 'dired-undo) | 1253 | (define-key map [remap advertised-undo] 'dired-undo) |
| 1254 | ;; thumbnail manipulation (tumme) | 1254 | ;; thumbnail manipulation (image-dired) |
| 1255 | (define-key map "\C-td" 'tumme-display-thumbs) | 1255 | (define-key map "\C-td" 'image-dired-display-thumbs) |
| 1256 | (define-key map "\C-tt" 'tumme-tag-files) | 1256 | (define-key map "\C-tt" 'image-dired-tag-files) |
| 1257 | (define-key map "\C-tr" 'tumme-delete-tag) | 1257 | (define-key map "\C-tr" 'image-dired-delete-tag) |
| 1258 | (define-key map "\C-tj" 'tumme-jump-thumbnail-buffer) | 1258 | (define-key map "\C-tj" 'image-dired-jump-thumbnail-buffer) |
| 1259 | (define-key map "\C-ti" 'tumme-dired-display-image) | 1259 | (define-key map "\C-ti" 'image-dired-dired-display-image) |
| 1260 | (define-key map "\C-tx" 'tumme-dired-display-external) | 1260 | (define-key map "\C-tx" 'image-dired-dired-display-external) |
| 1261 | (define-key map "\C-ta" 'tumme-display-thumbs-append) | 1261 | (define-key map "\C-ta" 'image-dired-display-thumbs-append) |
| 1262 | (define-key map "\C-t." 'tumme-display-thumb) | 1262 | (define-key map "\C-t." 'image-dired-display-thumb) |
| 1263 | (define-key map "\C-tc" 'tumme-dired-comment-files) | 1263 | (define-key map "\C-tc" 'image-dired-dired-comment-files) |
| 1264 | (define-key map "\C-tf" 'tumme-mark-tagged-files) | 1264 | (define-key map "\C-tf" 'image-dired-mark-tagged-files) |
| 1265 | (define-key map "\C-t\C-t" 'tumme-dired-insert-marked-thumbs) | 1265 | (define-key map "\C-t\C-t" 'image-dired-dired-insert-marked-thumbs) |
| 1266 | (define-key map "\C-te" 'tumme-dired-edit-comment-and-tags) | 1266 | (define-key map "\C-te" 'image-dired-dired-edit-comment-and-tags) |
| 1267 | 1267 | ||
| 1268 | ;; Make menu bar items. | 1268 | ;; Make menu bar items. |
| 1269 | 1269 | ||
| @@ -1310,12 +1310,12 @@ Do so according to the former subdir alist OLD-SUBDIR-ALIST." | |||
| 1310 | (cons "Immediate" (make-sparse-keymap "Immediate"))) | 1310 | (cons "Immediate" (make-sparse-keymap "Immediate"))) |
| 1311 | 1311 | ||
| 1312 | (define-key map | 1312 | (define-key map |
| 1313 | [menu-bar immediate tumme-dired-display-external] | 1313 | [menu-bar immediate image-dired-dired-display-external] |
| 1314 | '(menu-item "Display Image Externally" tumme-dired-display-external | 1314 | '(menu-item "Display Image Externally" image-dired-dired-display-external |
| 1315 | :help "Display image in external viewer")) | 1315 | :help "Display image in external viewer")) |
| 1316 | (define-key map | 1316 | (define-key map |
| 1317 | [menu-bar immediate tumme-dired-display-image] | 1317 | [menu-bar immediate image-dired-dired-display-image] |
| 1318 | '(menu-item "Display Image" tumme-dired-display-image | 1318 | '(menu-item "Display Image" image-dired-dired-display-image |
| 1319 | :help "Display sized image in a separate window")) | 1319 | :help "Display sized image in a separate window")) |
| 1320 | 1320 | ||
| 1321 | (define-key map [menu-bar immediate dashes-4] | 1321 | (define-key map [menu-bar immediate dashes-4] |
| @@ -1358,8 +1358,8 @@ Do so according to the former subdir alist OLD-SUBDIR-ALIST." | |||
| 1358 | (cons "Regexp" (make-sparse-keymap "Regexp"))) | 1358 | (cons "Regexp" (make-sparse-keymap "Regexp"))) |
| 1359 | 1359 | ||
| 1360 | (define-key map | 1360 | (define-key map |
| 1361 | [menu-bar regexp tumme-mark-tagged-files] | 1361 | [menu-bar regexp image-dired-mark-tagged-files] |
| 1362 | '(menu-item "Mark From Image Tag..." tumme-mark-tagged-files | 1362 | '(menu-item "Mark From Image Tag..." image-dired-mark-tagged-files |
| 1363 | :help "Mark files whose image tags matches regexp")) | 1363 | :help "Mark files whose image tags matches regexp")) |
| 1364 | 1364 | ||
| 1365 | (define-key map [menu-bar regexp dashes-1] | 1365 | (define-key map [menu-bar regexp dashes-1] |
| @@ -1456,21 +1456,21 @@ Do so according to the former subdir alist OLD-SUBDIR-ALIST." | |||
| 1456 | '("--")) | 1456 | '("--")) |
| 1457 | 1457 | ||
| 1458 | (define-key map | 1458 | (define-key map |
| 1459 | [menu-bar operate tumme-delete-tag] | 1459 | [menu-bar operate image-dired-delete-tag] |
| 1460 | '(menu-item "Delete Image Tag..." tumme-delete-tag | 1460 | '(menu-item "Delete Image Tag..." image-dired-delete-tag |
| 1461 | :help "Delete image tag from current or marked files")) | 1461 | :help "Delete image tag from current or marked files")) |
| 1462 | (define-key map | 1462 | (define-key map |
| 1463 | [menu-bar operate tumme-tag-files] | 1463 | [menu-bar operate image-dired-tag-files] |
| 1464 | '(menu-item "Add Image Tags..." tumme-tag-files | 1464 | '(menu-item "Add Image Tags..." image-dired-tag-files |
| 1465 | :help "Add image tags to current or marked files")) | 1465 | :help "Add image tags to current or marked files")) |
| 1466 | (define-key map | 1466 | (define-key map |
| 1467 | [menu-bar operate tumme-dired-comment-files] | 1467 | [menu-bar operate image-dired-dired-comment-files] |
| 1468 | '(menu-item "Add Image Comment..." tumme-dired-comment-files | 1468 | '(menu-item "Add Image Comment..." image-dired-dired-comment-files |
| 1469 | :help "Add image comment to current or marked files")) | 1469 | :help "Add image comment to current or marked files")) |
| 1470 | (define-key map | 1470 | (define-key map |
| 1471 | [menu-bar operate tumme-display-thumbs] | 1471 | [menu-bar operate image-dired-display-thumbs] |
| 1472 | '(menu-item "Display Thumbnails" tumme-display-thumbs | 1472 | '(menu-item "Display Image-Dired" image-dired-display-thumbs |
| 1473 | :help "Display thumbnails for current or marked image files")) | 1473 | :help "Display image-dired for current or marked image files")) |
| 1474 | 1474 | ||
| 1475 | (define-key map [menu-bar operate dashes-3] | 1475 | (define-key map [menu-bar operate dashes-3] |
| 1476 | '("--")) | 1476 | '("--")) |
diff --git a/lisp/dnd.el b/lisp/dnd.el index 972354f3908..56a619490aa 100644 --- a/lisp/dnd.el +++ b/lisp/dnd.el | |||
| @@ -146,7 +146,7 @@ Return nil if URI is not a local file." | |||
| 146 | (substring uri (match-end 0)))))) | 146 | (substring uri (match-end 0)))))) |
| 147 | (when (and f must-exist) | 147 | (when (and f must-exist) |
| 148 | (setq f (replace-regexp-in-string | 148 | (setq f (replace-regexp-in-string |
| 149 | "%[A-Z0-9][A-Z0-9]" | 149 | "%[A-Fa-f0-9][A-Fa-f0-9]" |
| 150 | (lambda (arg) | 150 | (lambda (arg) |
| 151 | (let ((str (make-string 1 0))) | 151 | (let ((str (make-string 1 0))) |
| 152 | (aset str 0 (string-to-number (substring arg 1) 16)) | 152 | (aset str 0 (string-to-number (substring arg 1) 16)) |
diff --git a/lisp/emacs-lisp/byte-opt.el b/lisp/emacs-lisp/byte-opt.el index d0589b3eb00..be135850d56 100644 --- a/lisp/emacs-lisp/byte-opt.el +++ b/lisp/emacs-lisp/byte-opt.el | |||
| @@ -557,8 +557,20 @@ | |||
| 557 | ;; Otherwise, no args can be considered to be for-effect, | 557 | ;; Otherwise, no args can be considered to be for-effect, |
| 558 | ;; even if the called function is for-effect, because we | 558 | ;; even if the called function is for-effect, because we |
| 559 | ;; don't know anything about that function. | 559 | ;; don't know anything about that function. |
| 560 | (cons fn (mapcar 'byte-optimize-form (cdr form))))))) | 560 | (let ((args (mapcar #'byte-optimize-form (cdr form)))) |
| 561 | 561 | (if (and (get fn 'pure) | |
| 562 | (byte-optimize-all-constp args)) | ||
| 563 | (list 'quote (apply fn (mapcar #'eval args))) | ||
| 564 | (cons fn args))))))) | ||
| 565 | |||
| 566 | (defun byte-optimize-all-constp (list) | ||
| 567 | "Non-nil iff all elements of LIST satisfy `byte-compile-constp'." | ||
| 568 | (let ((constant t)) | ||
| 569 | (while (and list constant) | ||
| 570 | (unless (byte-compile-constp (car list)) | ||
| 571 | (setq constant nil)) | ||
| 572 | (setq list (cdr list))) | ||
| 573 | constant)) | ||
| 562 | 574 | ||
| 563 | (defun byte-optimize-form (form &optional for-effect) | 575 | (defun byte-optimize-form (form &optional for-effect) |
| 564 | "The source-level pass of the optimizer." | 576 | "The source-level pass of the optimizer." |
| @@ -1117,26 +1129,6 @@ | |||
| 1117 | (byte-optimize-predicate form)) | 1129 | (byte-optimize-predicate form)) |
| 1118 | form)) | 1130 | form)) |
| 1119 | 1131 | ||
| 1120 | ;; Avoid having to write forward-... with a negative arg for speed. | ||
| 1121 | ;; Fixme: don't be limited to constant args. | ||
| 1122 | (put 'backward-char 'byte-optimizer 'byte-optimize-backward-char) | ||
| 1123 | (defun byte-optimize-backward-char (form) | ||
| 1124 | (cond ((and (= 2 (safe-length form)) | ||
| 1125 | (numberp (nth 1 form))) | ||
| 1126 | (list 'forward-char (eval (- (nth 1 form))))) | ||
| 1127 | ((= 1 (safe-length form)) | ||
| 1128 | '(forward-char -1)) | ||
| 1129 | (t form))) | ||
| 1130 | |||
| 1131 | (put 'backward-word 'byte-optimizer 'byte-optimize-backward-word) | ||
| 1132 | (defun byte-optimize-backward-word (form) | ||
| 1133 | (cond ((and (= 2 (safe-length form)) | ||
| 1134 | (numberp (nth 1 form))) | ||
| 1135 | (list 'forward-word (eval (- (nth 1 form))))) | ||
| 1136 | ((= 1 (safe-length form)) | ||
| 1137 | '(forward-word -1)) | ||
| 1138 | (t form))) | ||
| 1139 | |||
| 1140 | ;; Fixme: delete-char -> delete-region (byte-coded) | 1132 | ;; Fixme: delete-char -> delete-region (byte-coded) |
| 1141 | ;; optimize string-as-unibyte, string-as-multibyte, string-make-unibyte, | 1133 | ;; optimize string-as-unibyte, string-as-multibyte, string-make-unibyte, |
| 1142 | ;; string-make-multibyte for constant args. | 1134 | ;; string-make-multibyte for constant args. |
| @@ -1266,6 +1258,18 @@ | |||
| 1266 | (setq side-effect-and-error-free-fns (cdr side-effect-and-error-free-fns))) | 1258 | (setq side-effect-and-error-free-fns (cdr side-effect-and-error-free-fns))) |
| 1267 | nil) | 1259 | nil) |
| 1268 | 1260 | ||
| 1261 | |||
| 1262 | ;; pure functions are side-effect free functions whose values depend | ||
| 1263 | ;; only on their arguments. For these functions, calls with constant | ||
| 1264 | ;; arguments can be evaluated at compile time. This may shift run time | ||
| 1265 | ;; errors to compile time. | ||
| 1266 | |||
| 1267 | (let ((pure-fns | ||
| 1268 | '(concat symbol-name regexp-opt regexp-quote string-to-syntax))) | ||
| 1269 | (while pure-fns | ||
| 1270 | (put (car pure-fns) 'pure t) | ||
| 1271 | (setq pure-fns (cdr pure-fns))) | ||
| 1272 | nil) | ||
| 1269 | 1273 | ||
| 1270 | (defun byte-compile-splice-in-already-compiled-code (form) | 1274 | (defun byte-compile-splice-in-already-compiled-code (form) |
| 1271 | ;; form is (byte-code "..." [...] n) | 1275 | ;; form is (byte-code "..." [...] n) |
diff --git a/lisp/emacs-lisp/bytecomp.el b/lisp/emacs-lisp/bytecomp.el index 2a32ff9a016..8606f1ae2b8 100644 --- a/lisp/emacs-lisp/bytecomp.el +++ b/lisp/emacs-lisp/bytecomp.el | |||
| @@ -3149,6 +3149,8 @@ That command is designed for interactive use only" fn)) | |||
| 3149 | ;; more complicated compiler macros | 3149 | ;; more complicated compiler macros |
| 3150 | 3150 | ||
| 3151 | (byte-defop-compiler char-before) | 3151 | (byte-defop-compiler char-before) |
| 3152 | (byte-defop-compiler backward-char) | ||
| 3153 | (byte-defop-compiler backward-word) | ||
| 3152 | (byte-defop-compiler list) | 3154 | (byte-defop-compiler list) |
| 3153 | (byte-defop-compiler concat) | 3155 | (byte-defop-compiler concat) |
| 3154 | (byte-defop-compiler fset) | 3156 | (byte-defop-compiler fset) |
| @@ -3162,10 +3164,31 @@ That command is designed for interactive use only" fn)) | |||
| 3162 | 3164 | ||
| 3163 | (defun byte-compile-char-before (form) | 3165 | (defun byte-compile-char-before (form) |
| 3164 | (cond ((= 2 (length form)) | 3166 | (cond ((= 2 (length form)) |
| 3165 | (byte-compile-form `(char-after (1- ,(nth 1 form))))) | 3167 | (byte-compile-form (list 'char-after (if (numberp (nth 1 form)) |
| 3166 | ((= 1 (length form)) | 3168 | (1- (nth 1 form)) |
| 3167 | (byte-compile-form '(char-after (1- (point))))) | 3169 | `(1- ,(nth 1 form)))))) |
| 3168 | (t (byte-compile-subr-wrong-args form "0-1")))) | 3170 | ((= 1 (length form)) |
| 3171 | (byte-compile-form '(char-after (1- (point))))) | ||
| 3172 | (t (byte-compile-subr-wrong-args form "0-1")))) | ||
| 3173 | |||
| 3174 | ;; backward-... ==> forward-... with negated argument. | ||
| 3175 | (defun byte-compile-backward-char (form) | ||
| 3176 | (cond ((= 2 (length form)) | ||
| 3177 | (byte-compile-form (list 'forward-char (if (numberp (nth 1 form)) | ||
| 3178 | (- (nth 1 form)) | ||
| 3179 | `(- ,(nth 1 form)))))) | ||
| 3180 | ((= 1 (length form)) | ||
| 3181 | (byte-compile-form '(forward-char -1))) | ||
| 3182 | (t (byte-compile-subr-wrong-args form "0-1")))) | ||
| 3183 | |||
| 3184 | (defun byte-compile-backward-word (form) | ||
| 3185 | (cond ((= 2 (length form)) | ||
| 3186 | (byte-compile-form (list 'forward-word (if (numberp (nth 1 form)) | ||
| 3187 | (- (nth 1 form)) | ||
| 3188 | `(- ,(nth 1 form)))))) | ||
| 3189 | ((= 1 (length form)) | ||
| 3190 | (byte-compile-form '(forward-word -1))) | ||
| 3191 | (t (byte-compile-subr-wrong-args form "0-1")))) | ||
| 3169 | 3192 | ||
| 3170 | (defun byte-compile-list (form) | 3193 | (defun byte-compile-list (form) |
| 3171 | (let ((count (length (cdr form)))) | 3194 | (let ((count (length (cdr form)))) |
diff --git a/lisp/emacs-lisp/easy-mmode.el b/lisp/emacs-lisp/easy-mmode.el index 8b8dc6ba09d..2ce4ca8cf38 100644 --- a/lisp/emacs-lisp/easy-mmode.el +++ b/lisp/emacs-lisp/easy-mmode.el | |||
| @@ -327,11 +327,12 @@ call another major mode in their body." | |||
| 327 | (make-variable-buffer-local ',MODE-major-mode) | 327 | (make-variable-buffer-local ',MODE-major-mode) |
| 328 | ;; The actual global minor-mode | 328 | ;; The actual global minor-mode |
| 329 | (define-minor-mode ,global-mode | 329 | (define-minor-mode ,global-mode |
| 330 | ,(format "Toggle %s in every buffer. | 330 | ,(format "Toggle %s in every possible buffer. |
| 331 | With prefix ARG, turn %s on if and only if ARG is positive. | 331 | With prefix ARG, turn %s on if and only if ARG is positive. |
| 332 | %s is actually not turned on in every buffer but only in those | 332 | %s is enabled in all buffers where `%s' would do it. |
| 333 | in which `%s' turns it on." | 333 | See `%s' for more information on %s." |
| 334 | pretty-name pretty-global-name pretty-name turn-on) | 334 | pretty-name pretty-global-name pretty-name turn-on |
| 335 | mode pretty-name) | ||
| 335 | :global t ,@group ,@(nreverse extra-keywords) | 336 | :global t ,@group ,@(nreverse extra-keywords) |
| 336 | 337 | ||
| 337 | ;; Setup hook to handle future mode changes and new buffers. | 338 | ;; Setup hook to handle future mode changes and new buffers. |
diff --git a/lisp/emacs-lisp/edebug.el b/lisp/emacs-lisp/edebug.el index 151bbd2bd9e..9ae33599f09 100644 --- a/lisp/emacs-lisp/edebug.el +++ b/lisp/emacs-lisp/edebug.el | |||
| @@ -364,31 +364,39 @@ Return the result of the last expression in BODY." | |||
| 364 | 364 | ||
| 365 | (defun edebug-pop-to-buffer (buffer &optional window) | 365 | (defun edebug-pop-to-buffer (buffer &optional window) |
| 366 | ;; Like pop-to-buffer, but select window where BUFFER was last shown. | 366 | ;; Like pop-to-buffer, but select window where BUFFER was last shown. |
| 367 | ;; Select WINDOW if it provided and it still exists. Otherwise, | 367 | ;; Select WINDOW if it is provided and still exists. Otherwise, |
| 368 | ;; if buffer is currently shown in several windows, choose one. | 368 | ;; if buffer is currently shown in several windows, choose one. |
| 369 | ;; Otherwise, find a new window, possibly splitting one. | 369 | ;; Otherwise, find a new window, possibly splitting one. |
| 370 | (setq window (if (and (windowp window) (edebug-window-live-p window) | 370 | (setq window |
| 371 | (eq (window-buffer window) buffer)) | 371 | (cond |
| 372 | window | 372 | ((and (windowp window) (edebug-window-live-p window) |
| 373 | (if (eq (window-buffer (selected-window)) buffer) | 373 | (eq (window-buffer window) buffer)) |
| 374 | (selected-window) | 374 | window) |
| 375 | (edebug-get-buffer-window buffer)))) | 375 | ((eq (window-buffer (selected-window)) buffer) |
| 376 | (if window | 376 | ;; Selected window already displays BUFFER. |
| 377 | (select-window window) | 377 | (selected-window)) |
| 378 | (if (one-window-p) | 378 | ((edebug-get-buffer-window buffer)) |
| 379 | (split-window)) | 379 | ((one-window-p 'nomini) |
| 380 | ;; (message "next window: %s" (next-window)) (sit-for 1) | 380 | ;; When there's one window only, split it. |
| 381 | (if (eq (get-buffer-window edebug-trace-buffer) (next-window)) | 381 | (split-window)) |
| 382 | ;; Don't select trace window | 382 | ((let ((trace-window (get-buffer-window edebug-trace-buffer))) |
| 383 | nil | 383 | (catch 'found |
| 384 | (select-window (next-window)))) | 384 | (dolist (elt (window-list nil 'nomini)) |
| 385 | (set-window-buffer (selected-window) buffer) | 385 | (unless (or (eq elt (selected-window)) (eq elt trace-window) |
| 386 | (set-window-hscroll (selected-window) 0);; should this be?? | 386 | (window-dedicated-p elt)) |
| 387 | ;; Found a non-dedicated window not showing | ||
| 388 | ;; `edebug-trace-buffer', use it. | ||
| 389 | (throw 'found elt)))))) | ||
| 390 | ;; All windows are dedicated or show `edebug-trace-buffer', split | ||
| 391 | ;; selected one. | ||
| 392 | (t (split-window)))) | ||
| 393 | (select-window window) | ||
| 394 | (set-window-buffer window buffer) | ||
| 395 | (set-window-hscroll window 0);; should this be?? | ||
| 387 | ;; Selecting the window does not set the buffer until command loop. | 396 | ;; Selecting the window does not set the buffer until command loop. |
| 388 | ;;(set-buffer buffer) | 397 | ;;(set-buffer buffer) |
| 389 | ) | 398 | ) |
| 390 | 399 | ||
| 391 | |||
| 392 | (defun edebug-get-displayed-buffer-points () | 400 | (defun edebug-get-displayed-buffer-points () |
| 393 | ;; Return a list of buffer point pairs, for all displayed buffers. | 401 | ;; Return a list of buffer point pairs, for all displayed buffers. |
| 394 | (let (list) | 402 | (let (list) |
diff --git a/lisp/files.el b/lisp/files.el index b96ab2e96fb..1b6a94766d3 100644 --- a/lisp/files.el +++ b/lisp/files.el | |||
| @@ -2123,19 +2123,20 @@ associated with that interpreter in `interpreter-mode-alist'.") | |||
| 2123 | `((image-type-auto-detected-p . image-mode) | 2123 | `((image-type-auto-detected-p . image-mode) |
| 2124 | ;; The < comes before the groups (but the first) to reduce backtracking. | 2124 | ;; The < comes before the groups (but the first) to reduce backtracking. |
| 2125 | ;; TODO: UTF-16 <?xml may be preceded by a BOM 0xff 0xfe or 0xfe 0xff. | 2125 | ;; TODO: UTF-16 <?xml may be preceded by a BOM 0xff 0xfe or 0xfe 0xff. |
| 2126 | ;; We use [ \t\n] instead of `\\s ' to make regex overflow less likely. | 2126 | ;; We use [ \t\r\n] instead of `\\s ' to make regex overflow less likely. |
| 2127 | (,(let* ((incomment-re "\\(?:[^-]\\|-[^-]\\)") | 2127 | (,(let* ((incomment-re "\\(?:[^-]\\|-[^-]\\)") |
| 2128 | (comment-re (concat "\\(?:!--" incomment-re "*-->[ \t\n]*<\\)"))) | 2128 | (comment-re (concat "\\(?:!--" incomment-re "*-->[ \t\r\n]*<\\)"))) |
| 2129 | (concat "\\(?:<\\?xml[ \t\n]+[^>]*>\\)?[ \t\n]*<" | 2129 | (concat "\\(?:<\\?xml[ \t\r\n]+[^>]*>\\)?[ \t\r\n]*<" |
| 2130 | comment-re "*" | 2130 | comment-re "*" |
| 2131 | "\\(?:!DOCTYPE[ \t\n]+[^>]*>[ \t\n]*<[ \t\n]*" comment-re "*\\)?" | 2131 | "\\(?:!DOCTYPE[ \t\r\n]+[^>]*>[ \t\r\n]*<[ \t\r\n]*" comment-re "*\\)?" |
| 2132 | "[Hh][Tt][Mm][Ll]")) | 2132 | "[Hh][Tt][Mm][Ll]")) |
| 2133 | . html-mode) | 2133 | . html-mode) |
| 2134 | ("<!DOCTYPE[ \t\r\n]+[Hh][Tt][Mm][Ll]" . html-mode) | ||
| 2134 | ;; These two must come after html, because they are more general: | 2135 | ;; These two must come after html, because they are more general: |
| 2135 | ("<\\?xml " . xml-mode) | 2136 | ("<\\?xml " . xml-mode) |
| 2136 | (,(let* ((incomment-re "\\(?:[^-]\\|-[^-]\\)") | 2137 | (,(let* ((incomment-re "\\(?:[^-]\\|-[^-]\\)") |
| 2137 | (comment-re (concat "\\(?:!--" incomment-re "*-->[ \t\n]*<\\)"))) | 2138 | (comment-re (concat "\\(?:!--" incomment-re "*-->[ \t\r\n]*<\\)"))) |
| 2138 | (concat "[ \t\n]*<" comment-re "*!DOCTYPE ")) | 2139 | (concat "[ \t\r\n]*<" comment-re "*!DOCTYPE ")) |
| 2139 | . sgml-mode) | 2140 | . sgml-mode) |
| 2140 | ("%!PS" . ps-mode) | 2141 | ("%!PS" . ps-mode) |
| 2141 | ("# xmcd " . conf-unix-mode)) | 2142 | ("# xmcd " . conf-unix-mode)) |
| @@ -2434,13 +2435,14 @@ asking you for confirmation." | |||
| 2434 | 2435 | ||
| 2435 | (mapc (lambda (pair) | 2436 | (mapc (lambda (pair) |
| 2436 | (put (car pair) 'safe-local-variable (cdr pair))) | 2437 | (put (car pair) 'safe-local-variable (cdr pair))) |
| 2437 | '((buffer-read-only . booleanp) ;; C source code | 2438 | '((buffer-read-only . booleanp) ;; C source code |
| 2438 | (fill-column . integerp) ;; C source code | 2439 | (default-directory . stringp) ;; C source code |
| 2439 | (indent-tabs-mode . booleanp) ;; C source code | 2440 | (fill-column . integerp) ;; C source code |
| 2440 | (left-margin . integerp) ;; C source code | 2441 | (indent-tabs-mode . booleanp) ;; C source code |
| 2441 | (no-update-autoloads . booleanp) | 2442 | (left-margin . integerp) ;; C source code |
| 2442 | (tab-width . integerp) ;; C source code | 2443 | (no-update-autoloads . booleanp) |
| 2443 | (truncate-lines . booleanp))) ;; C source code | 2444 | (tab-width . integerp) ;; C source code |
| 2445 | (truncate-lines . booleanp))) ;; C source code | ||
| 2444 | 2446 | ||
| 2445 | (put 'c-set-style 'safe-local-eval-function t) | 2447 | (put 'c-set-style 'safe-local-eval-function t) |
| 2446 | 2448 | ||
diff --git a/lisp/font-lock.el b/lisp/font-lock.el index 4bc79fc6ee5..306cf5fd399 100644 --- a/lisp/font-lock.el +++ b/lisp/font-lock.el | |||
| @@ -468,6 +468,7 @@ they are added at the end. | |||
| 468 | 468 | ||
| 469 | This is normally set via `font-lock-add-keywords' and | 469 | This is normally set via `font-lock-add-keywords' and |
| 470 | `font-lock-remove-keywords'.") | 470 | `font-lock-remove-keywords'.") |
| 471 | (put 'font-lock-keywords-alist 'risky-local-variable t) | ||
| 471 | 472 | ||
| 472 | (defvar font-lock-removed-keywords-alist nil | 473 | (defvar font-lock-removed-keywords-alist nil |
| 473 | "Alist of `font-lock-keywords' elements to be removed for major modes. | 474 | "Alist of `font-lock-keywords' elements to be removed for major modes. |
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog index 8f094dd6537..b02dc6c2f8e 100644 --- a/lisp/gnus/ChangeLog +++ b/lisp/gnus/ChangeLog | |||
| @@ -1,3 +1,15 @@ | |||
| 1 | 2007-04-19 Katsumi Yamaoka <yamaoka@jpl.org> | ||
| 2 | |||
| 3 | * gnus-art.el (gnus-mime-strip-charset-parameters): New function. | ||
| 4 | (gnus-mime-view-part-as-charset): Use it; redisplay subpart currently | ||
| 5 | displayed of multipart/alternative part if it is invoked from summary | ||
| 6 | buffer. | ||
| 7 | (gnus-article-part-wrapper): Select article window. | ||
| 8 | |||
| 9 | * mm-view.el (mm-inline-text-html-render-with-w3m) | ||
| 10 | (mm-inline-text-html-render-with-w3m-standalone) | ||
| 11 | (mm-inline-render-with-function): Use mail-parse-charset by default. | ||
| 12 | |||
| 1 | 2007-04-10 Katsumi Yamaoka <yamaoka@jpl.org> | 13 | 2007-04-10 Katsumi Yamaoka <yamaoka@jpl.org> |
| 2 | 14 | ||
| 3 | * gnus-msg.el (gnus-inews-yank-articles): Use | 15 | * gnus-msg.el (gnus-inews-yank-articles): Use |
diff --git a/lisp/gnus/gnus-art.el b/lisp/gnus/gnus-art.el index 552f3a68f49..6ae52b5eedd 100644 --- a/lisp/gnus/gnus-art.el +++ b/lisp/gnus/gnus-art.el | |||
| @@ -4606,6 +4606,21 @@ are decompressed." | |||
| 4606 | (mm-string-to-multibyte contents))) | 4606 | (mm-string-to-multibyte contents))) |
| 4607 | (goto-char b))))) | 4607 | (goto-char b))))) |
| 4608 | 4608 | ||
| 4609 | (defun gnus-mime-strip-charset-parameters (handle) | ||
| 4610 | "Strip charset parameters from HANDLE." | ||
| 4611 | (if (stringp (car handle)) | ||
| 4612 | (mapc #'gnus-mime-strip-charset-parameters (cdr handle)) | ||
| 4613 | (let* ((type (mm-handle-type (if (equal (mm-handle-media-type handle) | ||
| 4614 | "message/external-body") | ||
| 4615 | (progn | ||
| 4616 | (unless (mm-handle-cache handle) | ||
| 4617 | (mm-extern-cache-contents handle)) | ||
| 4618 | (mm-handle-cache handle)) | ||
| 4619 | handle))) | ||
| 4620 | (charset (assq 'charset (cdr type)))) | ||
| 4621 | (when charset | ||
| 4622 | (delq charset type))))) | ||
| 4623 | |||
| 4609 | (defun gnus-mime-view-part-as-charset (&optional handle arg) | 4624 | (defun gnus-mime-view-part-as-charset (&optional handle arg) |
| 4610 | "Insert the MIME part under point into the current buffer using the | 4625 | "Insert the MIME part under point into the current buffer using the |
| 4611 | specified charset." | 4626 | specified charset." |
| @@ -4614,7 +4629,7 @@ specified charset." | |||
| 4614 | (let ((handle (or handle (get-text-property (point) 'gnus-data))) | 4629 | (let ((handle (or handle (get-text-property (point) 'gnus-data))) |
| 4615 | (fun (get-text-property (point) 'gnus-callback)) | 4630 | (fun (get-text-property (point) 'gnus-callback)) |
| 4616 | (gnus-newsgroup-ignored-charsets 'gnus-all) | 4631 | (gnus-newsgroup-ignored-charsets 'gnus-all) |
| 4617 | gnus-newsgroup-charset type charset) | 4632 | gnus-newsgroup-charset form preferred parts) |
| 4618 | (when handle | 4633 | (when handle |
| 4619 | (if (mm-handle-undisplayer handle) | 4634 | (if (mm-handle-undisplayer handle) |
| 4620 | (mm-remove-part handle)) | 4635 | (mm-remove-part handle)) |
| @@ -4622,17 +4637,24 @@ specified charset." | |||
| 4622 | (setq gnus-newsgroup-charset | 4637 | (setq gnus-newsgroup-charset |
| 4623 | (or (cdr (assq arg gnus-summary-show-article-charset-alist)) | 4638 | (or (cdr (assq arg gnus-summary-show-article-charset-alist)) |
| 4624 | (mm-read-coding-system "Charset: "))) | 4639 | (mm-read-coding-system "Charset: "))) |
| 4625 | ;; Strip the charset parameter from `handle'. | 4640 | (gnus-mime-strip-charset-parameters handle) |
| 4626 | (setq type (mm-handle-type | 4641 | (when (and (consp (setq form (cdr-safe fun))) |
| 4627 | (if (equal (mm-handle-media-type handle) | 4642 | (setq form (ignore-errors |
| 4628 | "message/external-body") | 4643 | (assq 'gnus-mime-display-alternative form))) |
| 4629 | (progn | 4644 | (setq preferred (caddr form)) |
| 4630 | (unless (mm-handle-cache handle) | 4645 | (progn |
| 4631 | (mm-extern-cache-contents handle)) | 4646 | (when (eq (car preferred) 'quote) |
| 4632 | (mm-handle-cache handle)) | 4647 | (setq preferred (cadr preferred))) |
| 4633 | handle)) | 4648 | (not (equal preferred |
| 4634 | charset (assq 'charset (cdr type))) | 4649 | (get-text-property (point) 'gnus-data)))) |
| 4635 | (delq charset type) | 4650 | (setq parts (get-text-property (point) 'gnus-part)) |
| 4651 | (setq parts (cdr (assq parts | ||
| 4652 | gnus-article-mime-handle-alist))) | ||
| 4653 | (equal (mm-handle-media-type parts) "multipart/alternative") | ||
| 4654 | (setq parts (reverse (cdr parts)))) | ||
| 4655 | (setcar (cddr form) | ||
| 4656 | (list 'quote (or (cadr (member preferred parts)) | ||
| 4657 | (car parts))))) | ||
| 4636 | (funcall fun handle))))) | 4658 | (funcall fun handle))))) |
| 4637 | 4659 | ||
| 4638 | (defun gnus-mime-view-part-externally (&optional handle) | 4660 | (defun gnus-mime-view-part-externally (&optional handle) |
| @@ -4688,13 +4710,22 @@ If no internal viewer is available, use an external viewer." | |||
| 4688 | (funcall (cdr action-pair))))) | 4710 | (funcall (cdr action-pair))))) |
| 4689 | 4711 | ||
| 4690 | (defun gnus-article-part-wrapper (n function) | 4712 | (defun gnus-article-part-wrapper (n function) |
| 4691 | (save-current-buffer | 4713 | (let ((window (get-buffer-window gnus-article-buffer 'visible)) |
| 4692 | (set-buffer gnus-article-buffer) | 4714 | frame) |
| 4693 | (when (> n (length gnus-article-mime-handle-alist)) | 4715 | (when window |
| 4694 | (error "No such part")) | 4716 | ;; It is necessary to select the article window so that |
| 4695 | (gnus-article-goto-part n) | 4717 | ;; `gnus-article-goto-part' may really move the point. |
| 4696 | (let ((handle (cdr (assq n gnus-article-mime-handle-alist)))) | 4718 | (setq frame (selected-frame)) |
| 4697 | (funcall function handle)))) | 4719 | (gnus-select-frame-set-input-focus (window-frame window)) |
| 4720 | (unwind-protect | ||
| 4721 | (save-window-excursion | ||
| 4722 | (select-window window) | ||
| 4723 | (when (> n (length gnus-article-mime-handle-alist)) | ||
| 4724 | (error "No such part")) | ||
| 4725 | (gnus-article-goto-part n) | ||
| 4726 | (let ((handle (cdr (assq n gnus-article-mime-handle-alist)))) | ||
| 4727 | (funcall function handle))) | ||
| 4728 | (gnus-select-frame-set-input-focus frame))))) | ||
| 4698 | 4729 | ||
| 4699 | (defun gnus-article-pipe-part (n) | 4730 | (defun gnus-article-pipe-part (n) |
| 4700 | "Pipe MIME part N, which is the numerical prefix." | 4731 | "Pipe MIME part N, which is the numerical prefix." |
diff --git a/lisp/gnus/mm-view.el b/lisp/gnus/mm-view.el index 14d480fe7df..888c814bf24 100644 --- a/lisp/gnus/mm-view.el +++ b/lisp/gnus/mm-view.el | |||
| @@ -238,7 +238,8 @@ | |||
| 238 | (mm-setup-w3m) | 238 | (mm-setup-w3m) |
| 239 | (let ((text (mm-get-part handle)) | 239 | (let ((text (mm-get-part handle)) |
| 240 | (b (point)) | 240 | (b (point)) |
| 241 | (charset (mail-content-type-get (mm-handle-type handle) 'charset))) | 241 | (charset (or (mail-content-type-get (mm-handle-type handle) 'charset) |
| 242 | mail-parse-charset))) | ||
| 242 | (save-excursion | 243 | (save-excursion |
| 243 | (insert (if charset (mm-decode-string text charset) text)) | 244 | (insert (if charset (mm-decode-string text charset) text)) |
| 244 | (save-restriction | 245 | (save-restriction |
| @@ -302,7 +303,9 @@ | |||
| 302 | "Render a text/html part using w3m." | 303 | "Render a text/html part using w3m." |
| 303 | (if (mm-w3m-standalone-supports-m17n-p) | 304 | (if (mm-w3m-standalone-supports-m17n-p) |
| 304 | (let ((source (mm-get-part handle)) | 305 | (let ((source (mm-get-part handle)) |
| 305 | (charset (mail-content-type-get (mm-handle-type handle) 'charset)) | 306 | (charset (or (mail-content-type-get (mm-handle-type handle) |
| 307 | 'charset) | ||
| 308 | (symbol-name mail-parse-charset))) | ||
| 306 | cs) | 309 | cs) |
| 307 | (unless (and charset | 310 | (unless (and charset |
| 308 | (setq cs (mm-charset-to-coding-system charset)) | 311 | (setq cs (mm-charset-to-coding-system charset)) |
| @@ -368,7 +371,8 @@ | |||
| 368 | 371 | ||
| 369 | (defun mm-inline-render-with-function (handle func &rest args) | 372 | (defun mm-inline-render-with-function (handle func &rest args) |
| 370 | (let ((source (mm-get-part handle)) | 373 | (let ((source (mm-get-part handle)) |
| 371 | (charset (mail-content-type-get (mm-handle-type handle) 'charset))) | 374 | (charset (or (mail-content-type-get (mm-handle-type handle) 'charset) |
| 375 | mail-parse-charset))) | ||
| 372 | (mm-insert-inline | 376 | (mm-insert-inline |
| 373 | handle | 377 | handle |
| 374 | (mm-with-multibyte-buffer | 378 | (mm-with-multibyte-buffer |
diff --git a/lisp/hi-lock.el b/lisp/hi-lock.el index 889b13cfa59..d97d0407ab8 100644 --- a/lisp/hi-lock.el +++ b/lisp/hi-lock.el | |||
| @@ -3,7 +3,7 @@ | |||
| 3 | ;; Copyright (C) 2000, 2001, 2002, 2003, 2004, | 3 | ;; Copyright (C) 2000, 2001, 2002, 2003, 2004, |
| 4 | ;; 2005, 2006, 2007 Free Software Foundation, Inc. | 4 | ;; 2005, 2006, 2007 Free Software Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Author: David M. Koppelman, koppel@ee.lsu.edu | 6 | ;; Author: David M. Koppelman, koppel@ece.lsu.edu |
| 7 | ;; Keywords: faces, minor-mode, matching, display | 7 | ;; Keywords: faces, minor-mode, matching, display |
| 8 | 8 | ||
| 9 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
| @@ -33,7 +33,8 @@ | |||
| 33 | ;; will remove the highlighting. Any existing face can be used for | 33 | ;; will remove the highlighting. Any existing face can be used for |
| 34 | ;; highlighting and a set of appropriate faces is provided. The | 34 | ;; highlighting and a set of appropriate faces is provided. The |
| 35 | ;; regexps can be written into the current buffer in a form that will | 35 | ;; regexps can be written into the current buffer in a form that will |
| 36 | ;; be recognized the next time the corresponding file is read. | 36 | ;; be recognized the next time the corresponding file is read (when |
| 37 | ;; file patterns is turned on). | ||
| 37 | ;; | 38 | ;; |
| 38 | ;; Applications: | 39 | ;; Applications: |
| 39 | ;; | 40 | ;; |
| @@ -60,6 +61,14 @@ | |||
| 60 | ;; | 61 | ;; |
| 61 | ;; (global-hi-lock-mode 1) | 62 | ;; (global-hi-lock-mode 1) |
| 62 | ;; | 63 | ;; |
| 64 | ;; To enable the use of patterns found in files (presumably placed | ||
| 65 | ;; there by hi-lock) include the following in your .emacs file: | ||
| 66 | ;; | ||
| 67 | ;; (setq hi-lock-file-patterns-policy 'ask) | ||
| 68 | ;; | ||
| 69 | ;; If you get tired of being asked each time a file is loaded replace | ||
| 70 | ;; `ask' with a function that returns t if patterns should be read. | ||
| 71 | ;; | ||
| 63 | ;; You might also want to bind the hi-lock commands to more | 72 | ;; You might also want to bind the hi-lock commands to more |
| 64 | ;; finger-friendly sequences: | 73 | ;; finger-friendly sequences: |
| 65 | 74 | ||
| @@ -115,6 +124,20 @@ calls." | |||
| 115 | :type '(repeat symbol) | 124 | :type '(repeat symbol) |
| 116 | :group 'hi-lock) | 125 | :group 'hi-lock) |
| 117 | 126 | ||
| 127 | (defcustom hi-lock-file-patterns-policy 'never | ||
| 128 | "Specify when hi-lock should use patterns found in file. | ||
| 129 | If `ask', prompt when patterns found in buffer; if bound to a function, | ||
| 130 | use patterns when function returns t (function is called with patterns | ||
| 131 | as first argument); if nil or `never' or anything else, don't use file | ||
| 132 | patterns." | ||
| 133 | :type '(choice (const :tag "Do not use file patterns" never) | ||
| 134 | (const :tag "Ask about file patterns" ask) | ||
| 135 | (function :tag "Function to check file patterns")) | ||
| 136 | :group 'hi-lock | ||
| 137 | :version "22.1") | ||
| 138 | |||
| 139 | ;; It can have a function value. | ||
| 140 | (put 'hi-lock-file-patterns-policy 'risky-local-variable t) | ||
| 118 | 141 | ||
| 119 | (defgroup hi-lock-faces nil | 142 | (defgroup hi-lock-faces nil |
| 120 | "Faces for hi-lock." | 143 | "Faces for hi-lock." |
| @@ -196,7 +219,7 @@ calls." | |||
| 196 | "History of regexps used for interactive fontification.") | 219 | "History of regexps used for interactive fontification.") |
| 197 | 220 | ||
| 198 | (defvar hi-lock-file-patterns-prefix "Hi-lock" | 221 | (defvar hi-lock-file-patterns-prefix "Hi-lock" |
| 199 | "Regexp for finding hi-lock patterns at top of file.") | 222 | "Search target for finding hi-lock patterns at top of file.") |
| 200 | 223 | ||
| 201 | (defvar hi-lock-archaic-interface-message-used nil | 224 | (defvar hi-lock-archaic-interface-message-used nil |
| 202 | "True if user alerted that `global-hi-lock-mode' is now the global switch. | 225 | "True if user alerted that `global-hi-lock-mode' is now the global switch. |
| @@ -283,17 +306,22 @@ called interactively, are: | |||
| 283 | Remove highlighting on matches of REGEXP in current buffer. | 306 | Remove highlighting on matches of REGEXP in current buffer. |
| 284 | 307 | ||
| 285 | \\[hi-lock-write-interactive-patterns] | 308 | \\[hi-lock-write-interactive-patterns] |
| 286 | Write active REGEXPs into buffer as comments (if possible). They will | 309 | Write active REGEXPs into buffer as comments (if possible). They may |
| 287 | be read the next time file is loaded or when the \\[hi-lock-find-patterns] command | 310 | be read the next time file is loaded or when the \\[hi-lock-find-patterns] command |
| 288 | is issued. The inserted regexps are in the form of font lock keywords. | 311 | is issued. The inserted regexps are in the form of font lock keywords. |
| 289 | (See `font-lock-keywords'.) They may be edited and re-loaded with \\[hi-lock-find-patterns], | 312 | (See `font-lock-keywords'.) They may be edited and re-loaded with \\[hi-lock-find-patterns], |
| 290 | any valid `font-lock-keywords' form is acceptable. | 313 | any valid `font-lock-keywords' form is acceptable. When a file is |
| 314 | loaded the patterns are read if `hi-lock-file-patterns-policy is | ||
| 315 | 'ask and the user responds y to the prompt, or if | ||
| 316 | `hi-lock-file-patterns-policy' is bound to a function and that | ||
| 317 | function returns t. | ||
| 291 | 318 | ||
| 292 | \\[hi-lock-find-patterns] | 319 | \\[hi-lock-find-patterns] |
| 293 | Re-read patterns stored in buffer (in the format produced by \\[hi-lock-write-interactive-patterns]). | 320 | Re-read patterns stored in buffer (in the format produced by \\[hi-lock-write-interactive-patterns]). |
| 294 | 321 | ||
| 295 | When hi-lock is started and if the mode is not excluded, the | 322 | When hi-lock is started and if the mode is not excluded or patterns |
| 296 | beginning of the buffer is searched for lines of the form: | 323 | rejected, the beginning of the buffer is searched for lines of the |
| 324 | form: | ||
| 297 | Hi-lock: FOO | 325 | Hi-lock: FOO |
| 298 | where FOO is a list of patterns. These are added to the font lock | 326 | where FOO is a list of patterns. These are added to the font lock |
| 299 | keywords already present. The patterns must start before position | 327 | keywords already present. The patterns must start before position |
| @@ -590,9 +618,18 @@ not suitable." | |||
| 590 | (setq all-patterns (append (read (current-buffer)) all-patterns)) | 618 | (setq all-patterns (append (read (current-buffer)) all-patterns)) |
| 591 | (error (message "Invalid pattern list expression at %d" | 619 | (error (message "Invalid pattern list expression at %d" |
| 592 | (line-number-at-pos))))))) | 620 | (line-number-at-pos))))))) |
| 593 | (when hi-lock-mode (hi-lock-set-file-patterns all-patterns)) | 621 | (when (and all-patterns |
| 594 | (if (interactive-p) | 622 | hi-lock-mode |
| 595 | (message "Hi-lock added %d patterns." (length all-patterns)))))) | 623 | (cond |
| 624 | ((eq this-command 'hi-lock-find-patterns) t) | ||
| 625 | ((functionp hi-lock-file-patterns-policy) | ||
| 626 | (funcall hi-lock-file-patterns-policy all-patterns)) | ||
| 627 | ((eq hi-lock-file-patterns-policy 'ask) | ||
| 628 | (y-or-n-p "Add patterns from this buffer to hi-lock? ")) | ||
| 629 | (t nil))) | ||
| 630 | (hi-lock-set-file-patterns all-patterns) | ||
| 631 | (if (interactive-p) | ||
| 632 | (message "Hi-lock added %d patterns." (length all-patterns))))))) | ||
| 596 | 633 | ||
| 597 | (defun hi-lock-font-lock-hook () | 634 | (defun hi-lock-font-lock-hook () |
| 598 | "Add hi-lock patterns to font-lock's." | 635 | "Add hi-lock patterns to font-lock's." |
diff --git a/lisp/ido.el b/lisp/ido.el index 80ed82c2583..5a7be3e5ae6 100644 --- a/lisp/ido.el +++ b/lisp/ido.el | |||
| @@ -3817,7 +3817,7 @@ for first matching file." | |||
| 3817 | If cursor is not at the end of the user input, delete to end of input." | 3817 | If cursor is not at the end of the user input, delete to end of input." |
| 3818 | (interactive) | 3818 | (interactive) |
| 3819 | (if (not (eobp)) | 3819 | (if (not (eobp)) |
| 3820 | (kill-line) | 3820 | (delete-region (point) (line-end-position)) |
| 3821 | (let ((enable-recursive-minibuffers t) | 3821 | (let ((enable-recursive-minibuffers t) |
| 3822 | (buf (ido-name (car ido-matches)))) | 3822 | (buf (ido-name (car ido-matches)))) |
| 3823 | (when buf | 3823 | (when buf |
| @@ -3835,7 +3835,7 @@ If cursor is not at the end of the user input, delete to end of input." | |||
| 3835 | If cursor is not at the end of the user input, delete to end of input." | 3835 | If cursor is not at the end of the user input, delete to end of input." |
| 3836 | (interactive) | 3836 | (interactive) |
| 3837 | (if (not (eobp)) | 3837 | (if (not (eobp)) |
| 3838 | (kill-line) | 3838 | (delete-region (point) (line-end-position)) |
| 3839 | (let ((enable-recursive-minibuffers t) | 3839 | (let ((enable-recursive-minibuffers t) |
| 3840 | (file (ido-name (car ido-matches)))) | 3840 | (file (ido-name (car ido-matches)))) |
| 3841 | (if file | 3841 | (if file |
diff --git a/lisp/tumme.el b/lisp/image-dired.el index 8d4527d8ff4..ed330410d88 100644 --- a/lisp/tumme.el +++ b/lisp/image-dired.el | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | ;;; tumme.el --- use dired to browse and manipulate your images | 1 | ;;; image-dired.el --- use dired to browse and manipulate your images |
| 2 | ;; | 2 | ;; |
| 3 | ;; Copyright (C) 2005, 2006, 2007 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 2005, 2006, 2007 Free Software Foundation, Inc. |
| 4 | ;; | 4 | ;; |
| @@ -45,20 +45,15 @@ | |||
| 45 | ;; powerful than this package, it did not work the way I wanted to. It | 45 | ;; powerful than this package, it did not work the way I wanted to. It |
| 46 | ;; was too slow to created thumbnails of all files in a directory (I | 46 | ;; was too slow to created thumbnails of all files in a directory (I |
| 47 | ;; currently keep all my 2000+ images in the same directory) and | 47 | ;; currently keep all my 2000+ images in the same directory) and |
| 48 | ;; browsing the thumbnail buffer was slow too. tumme.el will not | 48 | ;; browsing the thumbnail buffer was slow too. image-dired.el will not |
| 49 | ;; create thumbnails until they are needed and the browsing is done | 49 | ;; create thumbnails until they are needed and the browsing is done |
| 50 | ;; quickly and easily in dired. I copied a great deal of ideas and | 50 | ;; quickly and easily in dired. I copied a great deal of ideas and |
| 51 | ;; code from there though... :) | 51 | ;; code from there though... :) |
| 52 | ;; | 52 | ;; |
| 53 | ;; About the name: tumme means thumb in Swedish and it is used for | 53 | ;; `image-dired' stores the thumbnail files in `image-dired-dir' |
| 54 | ;; working with thumbnails, so... :) If you want to know how to | 54 | ;; using the file name format ORIGNAME.thumb.ORIGEXT. For example |
| 55 | ;; pronounce it, go to the page on EmacsWiki and download the .ogg | 55 | ;; ~/.emacs.d/image-dired/myimage01.thumb.jpg. The "database" is for |
| 56 | ;; file from there. | 56 | ;; now just a plain text file with the following format: |
| 57 | ;; | ||
| 58 | ;; `tumme' stores the thumbnail files in `tumme-dir' using the file | ||
| 59 | ;; name format ORIGNAME.thumb.ORIGEXT. For example | ||
| 60 | ;; ~/.emacs.d/tumme/myimage01.thumb.jpg. The "database" is for now | ||
| 61 | ;; just a plain text file with the following format: | ||
| 62 | ;; | 57 | ;; |
| 63 | ;; file-name-non-directory;comment:comment-text;tag1;tag2;tag3;...;tagN | 58 | ;; file-name-non-directory;comment:comment-text;tag1;tag2;tag3;...;tagN |
| 64 | ;; | 59 | ;; |
| @@ -72,13 +67,13 @@ | |||
| 72 | ;; * For non-lossy rotation of JPEG images, the JpegTRAN program is | 67 | ;; * For non-lossy rotation of JPEG images, the JpegTRAN program is |
| 73 | ;; needed. | 68 | ;; needed. |
| 74 | ;; | 69 | ;; |
| 75 | ;; * For `tumme-get-exif-data' and `tumme-write-exif-data' to work, | 70 | ;; * For `image-dired-get-exif-data' and `image-dired-write-exif-data' to work, |
| 76 | ;; the command line tool `exiftool' is needed. It can be found here: | 71 | ;; the command line tool `exiftool' is needed. It can be found here: |
| 77 | ;; http://www.sno.phy.queensu.ca/~phil/exiftool/. These two functions | 72 | ;; http://www.sno.phy.queensu.ca/~phil/exiftool/. These two functions |
| 78 | ;; are, among other things, used for writing comments to image files | 73 | ;; are, among other things, used for writing comments to image files |
| 79 | ;; using `tumme-thumbnail-set-image-description' and to create | 74 | ;; using `image-dired-thumbnail-set-image-description' and to create |
| 80 | ;; "unique" file names using `tumme-get-exif-file-name' (used by | 75 | ;; "unique" file names using `image-dired-get-exif-file-name' (used by |
| 81 | ;; `tumme-copy-with-exif-file-name'). | 76 | ;; `image-dired-copy-with-exif-file-name'). |
| 82 | ;; | 77 | ;; |
| 83 | ;; | 78 | ;; |
| 84 | ;; USAGE | 79 | ;; USAGE |
| @@ -88,7 +83,7 @@ | |||
| 88 | ;; the Emacs manual and go to the node Thumbnails by typing `g | 83 | ;; the Emacs manual and go to the node Thumbnails by typing `g |
| 89 | ;; Thumbnails RET'. | 84 | ;; Thumbnails RET'. |
| 90 | ;; | 85 | ;; |
| 91 | ;; Quickstart: M-x tumme RET DIRNAME RET | 86 | ;; Quickstart: M-x image-dired RET DIRNAME RET |
| 92 | ;; | 87 | ;; |
| 93 | ;; where DIRNAME is a directory containing image files. | 88 | ;; where DIRNAME is a directory containing image files. |
| 94 | ;; | 89 | ;; |
| @@ -99,7 +94,7 @@ | |||
| 99 | ;; the thumbnails are hard-coded to JPEG format. | 94 | ;; the thumbnails are hard-coded to JPEG format. |
| 100 | ;; | 95 | ;; |
| 101 | ;; * WARNING: The "database" format used might be changed so keep a | 96 | ;; * WARNING: The "database" format used might be changed so keep a |
| 102 | ;; backup of `tumme-db-file' when testing new versions. | 97 | ;; backup of `image-dired-db-file' when testing new versions. |
| 103 | ;; | 98 | ;; |
| 104 | ;; | 99 | ;; |
| 105 | ;; TODO | 100 | ;; TODO |
| @@ -122,7 +117,7 @@ | |||
| 122 | ;; | 117 | ;; |
| 123 | ;; * From thumbs.el: Add setroot function. | 118 | ;; * From thumbs.el: Add setroot function. |
| 124 | ;; | 119 | ;; |
| 125 | ;; * From thumbs.el: Add image resizing, if useful (tumme's automatic | 120 | ;; * From thumbs.el: Add image resizing, if useful (image-dired's automatic |
| 126 | ;; "image fit" might be enough) | 121 | ;; "image fit" might be enough) |
| 127 | ;; | 122 | ;; |
| 128 | ;; * From thumbs.el: Add the "modify" commands (emboss, negate, | 123 | ;; * From thumbs.el: Add the "modify" commands (emboss, negate, |
| @@ -130,26 +125,26 @@ | |||
| 130 | ;; | 125 | ;; |
| 131 | ;; * Asynchronous creation of thumbnails. | 126 | ;; * Asynchronous creation of thumbnails. |
| 132 | ;; | 127 | ;; |
| 133 | ;; * Add `tumme-display-thumbs-ring' and functions to cycle that. Find | 128 | ;; * Add `image-dired-display-thumbs-ring' and functions to cycle that. Find |
| 134 | ;; out which is best, saving old batch just before inserting new, or | 129 | ;; out which is best, saving old batch just before inserting new, or |
| 135 | ;; saving the current batch in the ring when inserting it. Adding it | 130 | ;; saving the current batch in the ring when inserting it. Adding it |
| 136 | ;; probably needs rewriting `tumme-display-thumbs' to be more general. | 131 | ;; probably needs rewriting `image-dired-display-thumbs' to be more general. |
| 137 | ;; | 132 | ;; |
| 138 | ;; * Find some way of toggling on and off really nice keybindings in | 133 | ;; * Find some way of toggling on and off really nice keybindings in |
| 139 | ;; dired (for example, using C-n or <down> instead of C-S-n). Richard | 134 | ;; dired (for example, using C-n or <down> instead of C-S-n). Richard |
| 140 | ;; suggested that we could keep C-t as prefix for tumme commands as it | 135 | ;; suggested that we could keep C-t as prefix for image-dired commands |
| 141 | ;; is currently not used in dired. He also suggested that | 136 | ;; as it is currently not used in dired. He also suggested that |
| 142 | ;; `dired-next-line' and `dired-previous-line' figure out if tumme is | 137 | ;; `dired-next-line' and `dired-previous-line' figure out if |
| 143 | ;; enabled in the current buffer and, if it is, call | 138 | ;; image-dired is enabled in the current buffer and, if it is, call |
| 144 | ;; `tumme-dired-next-line' and `tumme-dired-previous-line', | 139 | ;; `image-dired-dired-next-line' and |
| 145 | ;; respectively. Update: This is partly done; some bindings have now | 140 | ;; `image-dired-dired-previous-line', respectively. Update: This is |
| 146 | ;; been added to dired. | 141 | ;; partly done; some bindings have now been added to dired. |
| 147 | ;; | 142 | ;; |
| 148 | ;; * Enhanced gallery creation with basic CSS-support and pagination | 143 | ;; * Enhanced gallery creation with basic CSS-support and pagination |
| 149 | ;; of tag pages with many pictures. | 144 | ;; of tag pages with many pictures. |
| 150 | ;; | 145 | ;; |
| 151 | ;; * Rewrite `tumme-modify-mark-on-thumb-original-file' to be less | 146 | ;; * Rewrite `image-dired-modify-mark-on-thumb-original-file' to be |
| 152 | ;; ugly. | 147 | ;; less ugly. |
| 153 | ;; | 148 | ;; |
| 154 | ;; * In some way keep track of buffers and windows and stuff so that | 149 | ;; * In some way keep track of buffers and windows and stuff so that |
| 155 | ;; it works as the user expects. | 150 | ;; it works as the user expects. |
| @@ -166,135 +161,135 @@ | |||
| 166 | (eval-when-compile | 161 | (eval-when-compile |
| 167 | (require 'wid-edit)) | 162 | (require 'wid-edit)) |
| 168 | 163 | ||
| 169 | (defgroup tumme nil | 164 | (defgroup image-dired nil |
| 170 | "Use dired to browse your images as thumbnails, and more." | 165 | "Use dired to browse your images as thumbnails, and more." |
| 171 | :prefix "tumme-" | 166 | :prefix "image-dired-" |
| 172 | :group 'multimedia) | 167 | :group 'multimedia) |
| 173 | 168 | ||
| 174 | (defcustom tumme-dir "~/.emacs.d/tumme/" | 169 | (defcustom image-dired-dir "~/.emacs.d/image-dired/" |
| 175 | "Directory where thumbnail images are stored." | 170 | "Directory where thumbnail images are stored." |
| 176 | :type 'string | 171 | :type 'string |
| 177 | :group 'tumme) | 172 | :group 'image-dired) |
| 178 | 173 | ||
| 179 | (defcustom tumme-thumbnail-storage 'use-tumme-dir | 174 | (defcustom image-dired-thumbnail-storage 'use-image-dired-dir |
| 180 | "How to store tumme's thumbnail files. | 175 | "How to store image-dired's thumbnail files. |
| 181 | Tumme can store thumbnail files in one of two ways and this is | 176 | Image-Dired can store thumbnail files in one of two ways and this is |
| 182 | controlled by this variable. \"Use tumme dir\" means that the | 177 | controlled by this variable. \"Use image-dired dir\" means that the |
| 183 | thumbnails are stored in a central directory. \"Per directory\" | 178 | thumbnails are stored in a central directory. \"Per directory\" |
| 184 | means that each thumbnail is stored in a subdirectory called | 179 | means that each thumbnail is stored in a subdirectory called |
| 185 | \".tumme\" in the same directory where the image file is. | 180 | \".image-dired\" in the same directory where the image file is. |
| 186 | \"Thumbnail Managing Standard\" means that the thumbnails are | 181 | \"Thumbnail Managing Standard\" means that the thumbnails are |
| 187 | stored and generated according to the Thumbnail Managing Standard | 182 | stored and generated according to the Thumbnail Managing Standard |
| 188 | that allows sharing of thumbnails across different programs." | 183 | that allows sharing of thumbnails across different programs." |
| 189 | :type '(choice :tag "How to store thumbnail files" | 184 | :type '(choice :tag "How to store thumbnail files" |
| 190 | (const :tag "Thumbnail Managing Standard" standard) | 185 | (const :tag "Thumbnail Managing Standard" standard) |
| 191 | (const :tag "Use tumme-dir" use-tumme-dir) | 186 | (const :tag "Use image-dired-dir" use-image-dired-dir) |
| 192 | (const :tag "Per-directory" per-directory)) | 187 | (const :tag "Per-directory" per-directory)) |
| 193 | :group 'tumme) | 188 | :group 'image-dired) |
| 194 | 189 | ||
| 195 | (defcustom tumme-db-file "~/.emacs.d/tumme/.tumme_db" | 190 | (defcustom image-dired-db-file "~/.emacs.d/image-dired/.image-dired_db" |
| 196 | "Database file where file names and their associated tags are stored." | 191 | "Database file where file names and their associated tags are stored." |
| 197 | :type 'string | 192 | :type 'string |
| 198 | :group 'tumme) | 193 | :group 'image-dired) |
| 199 | 194 | ||
| 200 | (defcustom tumme-temp-image-file "~/.emacs.d/tumme/.tumme_temp" | 195 | (defcustom image-dired-temp-image-file "~/.emacs.d/image-dired/.image-dired_temp" |
| 201 | "Name of temporary image file used by various commands." | 196 | "Name of temporary image file used by various commands." |
| 202 | :type 'string | 197 | :type 'string |
| 203 | :group 'tumme) | 198 | :group 'image-dired) |
| 204 | 199 | ||
| 205 | (defcustom tumme-gallery-dir "~/.emacs.d/tumme/.tumme_gallery" | 200 | (defcustom image-dired-gallery-dir "~/.emacs.d/image-dired/.image-dired_gallery" |
| 206 | "Directory to store generated gallery html pages. | 201 | "Directory to store generated gallery html pages. |
| 207 | This path needs to be \"shared\" to the public so that it can access | 202 | This path needs to be \"shared\" to the public so that it can access |
| 208 | the index.html page that tumme creates." | 203 | the index.html page that image-dired creates." |
| 209 | :type 'string | 204 | :type 'string |
| 210 | :group 'tumme) | 205 | :group 'image-dired) |
| 211 | 206 | ||
| 212 | (defcustom tumme-gallery-image-root-url | 207 | (defcustom image-dired-gallery-image-root-url |
| 213 | "http://your.own.server/tummepics" | 208 | "http://your.own.server/image-diredpics" |
| 214 | "URL where the full size images are to be found. | 209 | "URL where the full size images are to be found. |
| 215 | Note that this path has to be configured in your web server. Tumme | 210 | Note that this path has to be configured in your web server. Image-Dired |
| 216 | expects to find pictures in this directory." | 211 | expects to find pictures in this directory." |
| 217 | :type 'string | 212 | :type 'string |
| 218 | :group 'tumme) | 213 | :group 'image-dired) |
| 219 | 214 | ||
| 220 | (defcustom tumme-gallery-thumb-image-root-url | 215 | (defcustom image-dired-gallery-thumb-image-root-url |
| 221 | "http://your.own.server/tummethumbs" | 216 | "http://your.own.server/image-diredthumbs" |
| 222 | "URL where the thumbnail images are to be found. | 217 | "URL where the thumbnail images are to be found. |
| 223 | Note that this path has to be configured in your web server. Tumme | 218 | Note that this path has to be configured in your web server. Image-Dired |
| 224 | expects to find pictures in this directory." | 219 | expects to find pictures in this directory." |
| 225 | :type 'string | 220 | :type 'string |
| 226 | :group 'tumme) | 221 | :group 'image-dired) |
| 227 | 222 | ||
| 228 | (defcustom tumme-cmd-create-thumbnail-program | 223 | (defcustom image-dired-cmd-create-thumbnail-program |
| 229 | "convert" | 224 | "convert" |
| 230 | "Executable used to create thumbnail. | 225 | "Executable used to create thumbnail. |
| 231 | Used together with `tumme-cmd-create-thumbnail-options'." | 226 | Used together with `image-dired-cmd-create-thumbnail-options'." |
| 232 | :type 'string | 227 | :type 'string |
| 233 | :group 'tumme) | 228 | :group 'image-dired) |
| 234 | 229 | ||
| 235 | (defcustom tumme-cmd-create-thumbnail-options | 230 | (defcustom image-dired-cmd-create-thumbnail-options |
| 236 | "%p -size %wx%h \"%f\" -resize %wx%h +profile \"*\" jpeg:\"%t\"" | 231 | "%p -size %wx%h \"%f\" -resize %wx%h +profile \"*\" jpeg:\"%t\"" |
| 237 | "Format of command used to create thumbnail image. | 232 | "Format of command used to create thumbnail image. |
| 238 | Available options are %p which is replaced by | 233 | Available options are %p which is replaced by |
| 239 | `tumme-cmd-create-thumbnail-program', %w which is replaced by | 234 | `image-dired-cmd-create-thumbnail-program', %w which is replaced by |
| 240 | `tumme-thumb-width', %h which is replaced by `tumme-thumb-height', | 235 | `image-dired-thumb-width', %h which is replaced by `image-dired-thumb-height', |
| 241 | %f which is replaced by the file name of the original image and %t | 236 | %f which is replaced by the file name of the original image and %t |
| 242 | which is replaced by the file name of the thumbnail file." | 237 | which is replaced by the file name of the thumbnail file." |
| 243 | :type 'string | 238 | :type 'string |
| 244 | :group 'tumme) | 239 | :group 'image-dired) |
| 245 | 240 | ||
| 246 | (defcustom tumme-cmd-create-temp-image-program | 241 | (defcustom image-dired-cmd-create-temp-image-program |
| 247 | "convert" | 242 | "convert" |
| 248 | "Executable used to create temporary image. | 243 | "Executable used to create temporary image. |
| 249 | Used together with `tumme-cmd-create-temp-image-options'." | 244 | Used together with `image-dired-cmd-create-temp-image-options'." |
| 250 | :type 'string | 245 | :type 'string |
| 251 | :group 'tumme) | 246 | :group 'image-dired) |
| 252 | 247 | ||
| 253 | (defcustom tumme-cmd-create-temp-image-options | 248 | (defcustom image-dired-cmd-create-temp-image-options |
| 254 | "%p -size %wx%h \"%f\" -resize %wx%h +profile \"*\" jpeg:\"%t\"" | 249 | "%p -size %wx%h \"%f\" -resize %wx%h +profile \"*\" jpeg:\"%t\"" |
| 255 | "Format of command used to create temporary image for display window. | 250 | "Format of command used to create temporary image for display window. |
| 256 | Available options are %p which is replaced by | 251 | Available options are %p which is replaced by |
| 257 | `tumme-cmd-create-temp-image-program', %w and %h which is replaced by | 252 | `image-dired-cmd-create-temp-image-program', %w and %h which is replaced by |
| 258 | the calculated max size for width and height in the image display window, | 253 | the calculated max size for width and height in the image display window, |
| 259 | %f which is replaced by the file name of the original image and %t which | 254 | %f which is replaced by the file name of the original image and %t which |
| 260 | is replaced by the file name of the temporary file." | 255 | is replaced by the file name of the temporary file." |
| 261 | :type 'string | 256 | :type 'string |
| 262 | :group 'tumme) | 257 | :group 'image-dired) |
| 263 | 258 | ||
| 264 | (defcustom tumme-cmd-pngnq-program (executable-find "pngnq") | 259 | (defcustom image-dired-cmd-pngnq-program (executable-find "pngnq") |
| 265 | "The file name of the `pngnq' program. | 260 | "The file name of the `pngnq' program. |
| 266 | It quantizes colors of PNG images down to 256 colors." | 261 | It quantizes colors of PNG images down to 256 colors." |
| 267 | :type '(choice (const :tag "Not Set" nil) string) | 262 | :type '(choice (const :tag "Not Set" nil) string) |
| 268 | :group 'tumme) | 263 | :group 'image-dired) |
| 269 | 264 | ||
| 270 | (defcustom tumme-cmd-pngcrush-program (executable-find "pngcrush") | 265 | (defcustom image-dired-cmd-pngcrush-program (executable-find "pngcrush") |
| 271 | "The file name of the `pngcrush' program. | 266 | "The file name of the `pngcrush' program. |
| 272 | It optimizes the compression of PNG images. Also it adds PNG textual chunks | 267 | It optimizes the compression of PNG images. Also it adds PNG textual chunks |
| 273 | with the information required by the Thumbnail Managing Standard." | 268 | with the information required by the Thumbnail Managing Standard." |
| 274 | :type '(choice (const :tag "Not Set" nil) string) | 269 | :type '(choice (const :tag "Not Set" nil) string) |
| 275 | :group 'tumme) | 270 | :group 'image-dired) |
| 276 | 271 | ||
| 277 | (defcustom tumme-cmd-create-standard-thumbnail-command | 272 | (defcustom image-dired-cmd-create-standard-thumbnail-command |
| 278 | (concat | 273 | (concat |
| 279 | tumme-cmd-create-thumbnail-program " " | 274 | image-dired-cmd-create-thumbnail-program " " |
| 280 | "-size %wx%h \"%f\" " | 275 | "-size %wx%h \"%f\" " |
| 281 | (unless (or tumme-cmd-pngcrush-program tumme-cmd-pngnq-program) | 276 | (unless (or image-dired-cmd-pngcrush-program image-dired-cmd-pngnq-program) |
| 282 | (concat | 277 | (concat |
| 283 | "-set \"Thumb::MTime\" \"%m\" " | 278 | "-set \"Thumb::MTime\" \"%m\" " |
| 284 | "-set \"Thumb::URI\" \"file://%f\" " | 279 | "-set \"Thumb::URI\" \"file://%f\" " |
| 285 | "-set \"Description\" \"Thumbnail of file://%f\" " | 280 | "-set \"Description\" \"Thumbnail of file://%f\" " |
| 286 | "-set \"Software\" \"" (emacs-version) "\" ")) | 281 | "-set \"Software\" \"" (emacs-version) "\" ")) |
| 287 | "-thumbnail %wx%h png:\"%t\"" | 282 | "-thumbnail %wx%h png:\"%t\"" |
| 288 | (if tumme-cmd-pngnq-program | 283 | (if image-dired-cmd-pngnq-program |
| 289 | (concat | 284 | (concat |
| 290 | " ; " tumme-cmd-pngnq-program " -f \"%t\"" | 285 | " ; " image-dired-cmd-pngnq-program " -f \"%t\"" |
| 291 | (unless tumme-cmd-pngcrush-program | 286 | (unless image-dired-cmd-pngcrush-program |
| 292 | " ; mv %q %t"))) | 287 | " ; mv %q %t"))) |
| 293 | (if tumme-cmd-pngcrush-program | 288 | (if image-dired-cmd-pngcrush-program |
| 294 | (concat | 289 | (concat |
| 295 | (unless tumme-cmd-pngcrush-program | 290 | (unless image-dired-cmd-pngcrush-program |
| 296 | " ; cp %t %q") | 291 | " ; cp %t %q") |
| 297 | " ; " tumme-cmd-pngcrush-program " -q " | 292 | " ; " image-dired-cmd-pngcrush-program " -q " |
| 298 | "-text b \"Description\" \"Thumbnail of file://%f\" " | 293 | "-text b \"Description\" \"Thumbnail of file://%f\" " |
| 299 | "-text b \"Software\" \"" (emacs-version) "\" " | 294 | "-text b \"Software\" \"" (emacs-version) "\" " |
| 300 | ;; "-text b \"Thumb::Image::Height\" \"%oh\" " | 295 | ;; "-text b \"Thumb::Image::Height\" \"%oh\" " |
| @@ -307,194 +302,194 @@ with the information required by the Thumbnail Managing Standard." | |||
| 307 | " ; rm %q"))) | 302 | " ; rm %q"))) |
| 308 | "Command to create thumbnails according to the Thumbnail Managing Standard." | 303 | "Command to create thumbnails according to the Thumbnail Managing Standard." |
| 309 | :type 'string | 304 | :type 'string |
| 310 | :group 'tumme) | 305 | :group 'image-dired) |
| 311 | 306 | ||
| 312 | (defcustom tumme-cmd-rotate-thumbnail-program | 307 | (defcustom image-dired-cmd-rotate-thumbnail-program |
| 313 | "mogrify" | 308 | "mogrify" |
| 314 | "Executable used to rotate thumbnail. | 309 | "Executable used to rotate thumbnail. |
| 315 | Used together with `tumme-cmd-rotate-thumbnail-options'." | 310 | Used together with `image-dired-cmd-rotate-thumbnail-options'." |
| 316 | :type 'string | 311 | :type 'string |
| 317 | :group 'tumme) | 312 | :group 'image-dired) |
| 318 | 313 | ||
| 319 | (defcustom tumme-cmd-rotate-thumbnail-options | 314 | (defcustom image-dired-cmd-rotate-thumbnail-options |
| 320 | "%p -rotate %d \"%t\"" | 315 | "%p -rotate %d \"%t\"" |
| 321 | "Format of command used to rotate thumbnail image. | 316 | "Format of command used to rotate thumbnail image. |
| 322 | Available options are %p which is replaced by | 317 | Available options are %p which is replaced by |
| 323 | `tumme-cmd-rotate-thumbnail-program', %d which is replaced by the | 318 | `image-dired-cmd-rotate-thumbnail-program', %d which is replaced by the |
| 324 | number of (positive) degrees to rotate the image, normally 90 or 270 | 319 | number of (positive) degrees to rotate the image, normally 90 or 270 |
| 325 | \(for 90 degrees right and left), %t which is replaced by the file name | 320 | \(for 90 degrees right and left), %t which is replaced by the file name |
| 326 | of the thumbnail file." | 321 | of the thumbnail file." |
| 327 | :type 'string | 322 | :type 'string |
| 328 | :group 'tumme) | 323 | :group 'image-dired) |
| 329 | 324 | ||
| 330 | (defcustom tumme-cmd-rotate-original-program | 325 | (defcustom image-dired-cmd-rotate-original-program |
| 331 | "jpegtran" | 326 | "jpegtran" |
| 332 | "Executable used to rotate original image. | 327 | "Executable used to rotate original image. |
| 333 | Used together with `tumme-cmd-rotate-original-options'." | 328 | Used together with `image-dired-cmd-rotate-original-options'." |
| 334 | :type 'string | 329 | :type 'string |
| 335 | :group 'tumme) | 330 | :group 'image-dired) |
| 336 | 331 | ||
| 337 | (defcustom tumme-cmd-rotate-original-options | 332 | (defcustom image-dired-cmd-rotate-original-options |
| 338 | "%p -rotate %d -copy all -outfile %t \"%o\"" | 333 | "%p -rotate %d -copy all -outfile %t \"%o\"" |
| 339 | "Format of command used to rotate original image. | 334 | "Format of command used to rotate original image. |
| 340 | Available options are %p which is replaced by | 335 | Available options are %p which is replaced by |
| 341 | `tumme-cmd-rotate-original-program', %d which is replaced by the | 336 | `image-dired-cmd-rotate-original-program', %d which is replaced by the |
| 342 | number of (positive) degrees to rotate the image, normally 90 or | 337 | number of (positive) degrees to rotate the image, normally 90 or |
| 343 | 270 \(for 90 degrees right and left), %o which is replaced by the | 338 | 270 \(for 90 degrees right and left), %o which is replaced by the |
| 344 | original image file name and %t which is replaced by | 339 | original image file name and %t which is replaced by |
| 345 | `tumme-temp-image-file'." | 340 | `image-dired-temp-image-file'." |
| 346 | :type 'string | 341 | :type 'string |
| 347 | :group 'tumme) | 342 | :group 'image-dired) |
| 348 | 343 | ||
| 349 | (defcustom tumme-temp-rotate-image-file | 344 | (defcustom image-dired-temp-rotate-image-file |
| 350 | "~/.emacs.d/tumme/.tumme_rotate_temp" | 345 | "~/.emacs.d/image-dired/.image-dired_rotate_temp" |
| 351 | "Temporary file for rotate operations." | 346 | "Temporary file for rotate operations." |
| 352 | :type 'string | 347 | :type 'string |
| 353 | :group 'tumme) | 348 | :group 'image-dired) |
| 354 | 349 | ||
| 355 | (defcustom tumme-rotate-original-ask-before-overwrite t | 350 | (defcustom image-dired-rotate-original-ask-before-overwrite t |
| 356 | "Confirm overwrite of original file after rotate operation. | 351 | "Confirm overwrite of original file after rotate operation. |
| 357 | If non-nil, ask user for confirmation before overwriting the | 352 | If non-nil, ask user for confirmation before overwriting the |
| 358 | original file with `tumme-temp-rotate-image-file'." | 353 | original file with `image-dired-temp-rotate-image-file'." |
| 359 | :type 'boolean | 354 | :type 'boolean |
| 360 | :group 'tumme) | 355 | :group 'image-dired) |
| 361 | 356 | ||
| 362 | (defcustom tumme-cmd-write-exif-data-program | 357 | (defcustom image-dired-cmd-write-exif-data-program |
| 363 | "exiftool" | 358 | "exiftool" |
| 364 | "Program used to write EXIF data to image. | 359 | "Program used to write EXIF data to image. |
| 365 | Used together with `tumme-cmd-write-exif-data-options'." | 360 | Used together with `image-dired-cmd-write-exif-data-options'." |
| 366 | :type 'string | 361 | :type 'string |
| 367 | :group 'tumme) | 362 | :group 'image-dired) |
| 368 | 363 | ||
| 369 | (defcustom tumme-cmd-write-exif-data-options | 364 | (defcustom image-dired-cmd-write-exif-data-options |
| 370 | "%p -%t=\"%v\" \"%f\"" | 365 | "%p -%t=\"%v\" \"%f\"" |
| 371 | "Format of command used to write EXIF data. | 366 | "Format of command used to write EXIF data. |
| 372 | Available options are %p which is replaced by | 367 | Available options are %p which is replaced by |
| 373 | `tumme-cmd-write-exif-data-program', %f which is replaced by the | 368 | `image-dired-cmd-write-exif-data-program', %f which is replaced by the |
| 374 | image file name, %t which is replaced by the tag name and %v | 369 | image file name, %t which is replaced by the tag name and %v |
| 375 | which is replaced by the tag value." | 370 | which is replaced by the tag value." |
| 376 | :type 'string | 371 | :type 'string |
| 377 | :group 'tumme) | 372 | :group 'image-dired) |
| 378 | 373 | ||
| 379 | (defcustom tumme-cmd-read-exif-data-program | 374 | (defcustom image-dired-cmd-read-exif-data-program |
| 380 | "exiftool" | 375 | "exiftool" |
| 381 | "Program used to read EXIF data to image. | 376 | "Program used to read EXIF data to image. |
| 382 | Used together with `tumme-cmd-read-exif-data-program-options'." | 377 | Used together with `image-dired-cmd-read-exif-data-program-options'." |
| 383 | :type 'string | 378 | :type 'string |
| 384 | :group 'tumme) | 379 | :group 'image-dired) |
| 385 | 380 | ||
| 386 | (defcustom tumme-cmd-read-exif-data-options | 381 | (defcustom image-dired-cmd-read-exif-data-options |
| 387 | "%p -s -s -s -%t \"%f\"" | 382 | "%p -s -s -s -%t \"%f\"" |
| 388 | "Format of command used to read EXIF data. | 383 | "Format of command used to read EXIF data. |
| 389 | Available options are %p which is replaced by | 384 | Available options are %p which is replaced by |
| 390 | `tumme-cmd-write-exif-data-options', %f which is replaced | 385 | `image-dired-cmd-write-exif-data-options', %f which is replaced |
| 391 | by the image file name and %t which is replaced by the tag name." | 386 | by the image file name and %t which is replaced by the tag name." |
| 392 | :type 'string | 387 | :type 'string |
| 393 | :group 'tumme) | 388 | :group 'image-dired) |
| 394 | 389 | ||
| 395 | (defcustom tumme-gallery-hidden-tags | 390 | (defcustom image-dired-gallery-hidden-tags |
| 396 | (list "private" "hidden" "pending") | 391 | (list "private" "hidden" "pending") |
| 397 | "List of \"hidden\" tags. | 392 | "List of \"hidden\" tags. |
| 398 | Used by `tumme-gallery-generate' to leave out \"hidden\" images." | 393 | Used by `image-dired-gallery-generate' to leave out \"hidden\" images." |
| 399 | :type '(repeat string) | 394 | :type '(repeat string) |
| 400 | :group 'tumme) | 395 | :group 'image-dired) |
| 401 | 396 | ||
| 402 | (defcustom tumme-thumb-size (if (eq 'standard tumme-thumbnail-storage) 128 100) | 397 | (defcustom image-dired-thumb-size (if (eq 'standard image-dired-thumbnail-storage) 128 100) |
| 403 | "Size of thumbnails, in pixels. | 398 | "Size of thumbnails, in pixels. |
| 404 | This is the default size for both `tumme-thumb-width' and `tumme-thumb-height'." | 399 | This is the default size for both `image-dired-thumb-width' and `image-dired-thumb-height'." |
| 405 | :type 'integer | 400 | :type 'integer |
| 406 | :group 'tumme) | 401 | :group 'image-dired) |
| 407 | 402 | ||
| 408 | (defcustom tumme-thumb-width tumme-thumb-size | 403 | (defcustom image-dired-thumb-width image-dired-thumb-size |
| 409 | "Width of thumbnails, in pixels." | 404 | "Width of thumbnails, in pixels." |
| 410 | :type 'integer | 405 | :type 'integer |
| 411 | :group 'tumme) | 406 | :group 'image-dired) |
| 412 | 407 | ||
| 413 | (defcustom tumme-thumb-height tumme-thumb-size | 408 | (defcustom image-dired-thumb-height image-dired-thumb-size |
| 414 | "Height of thumbnails, in pixels." | 409 | "Height of thumbnails, in pixels." |
| 415 | :type 'integer | 410 | :type 'integer |
| 416 | :group 'tumme) | 411 | :group 'image-dired) |
| 417 | 412 | ||
| 418 | (defcustom tumme-thumb-relief 2 | 413 | (defcustom image-dired-thumb-relief 2 |
| 419 | "Size of button-like border around thumbnails." | 414 | "Size of button-like border around thumbnails." |
| 420 | :type 'integer | 415 | :type 'integer |
| 421 | :group 'tumme) | 416 | :group 'image-dired) |
| 422 | 417 | ||
| 423 | (defcustom tumme-thumb-margin 2 | 418 | (defcustom image-dired-thumb-margin 2 |
| 424 | "Size of the margin around thumbnails. | 419 | "Size of the margin around thumbnails. |
| 425 | This is where you see the cursor." | 420 | This is where you see the cursor." |
| 426 | :type 'integer | 421 | :type 'integer |
| 427 | :group 'tumme) | 422 | :group 'image-dired) |
| 428 | 423 | ||
| 429 | (defcustom tumme-line-up-method 'dynamic | 424 | (defcustom image-dired-line-up-method 'dynamic |
| 430 | "Default method for line-up of thumbnails in thumbnail buffer. | 425 | "Default method for line-up of thumbnails in thumbnail buffer. |
| 431 | Used by `tumme-display-thumbs' and other functions that needs to | 426 | Used by `image-dired-display-thumbs' and other functions that needs to |
| 432 | line-up thumbnails. Dynamic means to use the available width of the | 427 | line-up thumbnails. Dynamic means to use the available width of the |
| 433 | window containing the thumbnail buffer, Fixed means to use | 428 | window containing the thumbnail buffer, Fixed means to use |
| 434 | `tumme-thumbs-per-row', Interactive is for asking the user, and No | 429 | `image-dired-thumbs-per-row', Interactive is for asking the user, and No |
| 435 | line-up means that no automatic line-up will be done." | 430 | line-up means that no automatic line-up will be done." |
| 436 | :type '(choice :tag "Default line-up method" | 431 | :type '(choice :tag "Default line-up method" |
| 437 | (const :tag "Dynamic" dynamic) | 432 | (const :tag "Dynamic" dynamic) |
| 438 | (const :tag "Fixed" fixed) | 433 | (const :tag "Fixed" fixed) |
| 439 | (const :tag "Interactive" interactive) | 434 | (const :tag "Interactive" interactive) |
| 440 | (const :tag "No line-up" none)) | 435 | (const :tag "No line-up" none)) |
| 441 | :group 'tumme) | 436 | :group 'image-dired) |
| 442 | 437 | ||
| 443 | (defcustom tumme-thumbs-per-row 3 | 438 | (defcustom image-dired-thumbs-per-row 3 |
| 444 | "Number of thumbnails to display per row in thumb buffer." | 439 | "Number of thumbnails to display per row in thumb buffer." |
| 445 | :type 'integer | 440 | :type 'integer |
| 446 | :group 'tumme) | 441 | :group 'image-dired) |
| 447 | 442 | ||
| 448 | (defcustom tumme-display-window-width-correction 1 | 443 | (defcustom image-dired-display-window-width-correction 1 |
| 449 | "Number to be used to correct image display window width. | 444 | "Number to be used to correct image display window width. |
| 450 | Change if the default (1) does not work (i.e. if the image does not | 445 | Change if the default (1) does not work (i.e. if the image does not |
| 451 | completely fit)." | 446 | completely fit)." |
| 452 | :type 'integer | 447 | :type 'integer |
| 453 | :group 'tumme) | 448 | :group 'image-dired) |
| 454 | 449 | ||
| 455 | (defcustom tumme-display-window-height-correction 0 | 450 | (defcustom image-dired-display-window-height-correction 0 |
| 456 | "Number to be used to correct image display window height. | 451 | "Number to be used to correct image display window height. |
| 457 | Change if the default (0) does not work (i.e. if the image does not | 452 | Change if the default (0) does not work (i.e. if the image does not |
| 458 | completely fit)." | 453 | completely fit)." |
| 459 | :type 'integer | 454 | :type 'integer |
| 460 | :group 'tumme) | 455 | :group 'image-dired) |
| 461 | 456 | ||
| 462 | (defcustom tumme-track-movement t | 457 | (defcustom image-dired-track-movement t |
| 463 | "The current state of the tracking and mirroring. | 458 | "The current state of the tracking and mirroring. |
| 464 | For more information, see the documentation for | 459 | For more information, see the documentation for |
| 465 | `tumme-toggle-movement-tracking'." | 460 | `image-dired-toggle-movement-tracking'." |
| 466 | :type 'boolean | 461 | :type 'boolean |
| 467 | :group 'tumme) | 462 | :group 'image-dired) |
| 468 | 463 | ||
| 469 | (defcustom tumme-append-when-browsing nil | 464 | (defcustom image-dired-append-when-browsing nil |
| 470 | "Append thumbnails in thumbnail buffer when browsing. | 465 | "Append thumbnails in thumbnail buffer when browsing. |
| 471 | If non-nil, using `tumme-next-line-and-display' and | 466 | If non-nil, using `image-dired-next-line-and-display' and |
| 472 | `tumme-previous-line-and-display' will leave a trail of thumbnail | 467 | `image-dired-previous-line-and-display' will leave a trail of thumbnail |
| 473 | images in the thumbnail buffer. If you enable this and want to clean | 468 | images in the thumbnail buffer. If you enable this and want to clean |
| 474 | the thumbnail buffer because it is filled with too many thumbmnails, | 469 | the thumbnail buffer because it is filled with too many thumbmnails, |
| 475 | just call `tumme-display-thumb' to display only the image at point. | 470 | just call `image-dired-display-thumb' to display only the image at point. |
| 476 | This value can be toggled using `tumme-toggle-append-browsing'." | 471 | This value can be toggled using `image-dired-toggle-append-browsing'." |
| 477 | :type 'boolean | 472 | :type 'boolean |
| 478 | :group 'tumme) | 473 | :group 'image-dired) |
| 479 | 474 | ||
| 480 | (defcustom tumme-dired-disp-props t | 475 | (defcustom image-dired-dired-disp-props t |
| 481 | "If non-nil, display properties for dired file when browsing. | 476 | "If non-nil, display properties for dired file when browsing. |
| 482 | Used by `tumme-next-line-and-display', | 477 | Used by `image-dired-next-line-and-display', |
| 483 | `tumme-previous-line-and-display' and `tumme-mark-and-display-next'. | 478 | `image-dired-previous-line-and-display' and `image-dired-mark-and-display-next'. |
| 484 | If the database file is large, this can slow down image browsing in | 479 | If the database file is large, this can slow down image browsing in |
| 485 | dired and you might want to turn it off." | 480 | dired and you might want to turn it off." |
| 486 | :type 'boolean | 481 | :type 'boolean |
| 487 | :group 'tumme) | 482 | :group 'image-dired) |
| 488 | 483 | ||
| 489 | (defcustom tumme-display-properties-format "%b: %f (%t): %c" | 484 | (defcustom image-dired-display-properties-format "%b: %f (%t): %c" |
| 490 | "Display format for thumbnail properties. | 485 | "Display format for thumbnail properties. |
| 491 | %b is replaced with associated dired buffer name, %f with file name | 486 | %b is replaced with associated dired buffer name, %f with file name |
| 492 | \(without path) of original image file, %t with the list of tags and %c | 487 | \(without path) of original image file, %t with the list of tags and %c |
| 493 | with the comment." | 488 | with the comment." |
| 494 | :type 'string | 489 | :type 'string |
| 495 | :group 'tumme) | 490 | :group 'image-dired) |
| 496 | 491 | ||
| 497 | (defcustom tumme-external-viewer | 492 | (defcustom image-dired-external-viewer |
| 498 | ;; TODO: Use mailcap, dired-guess-shell-alist-default, | 493 | ;; TODO: Use mailcap, dired-guess-shell-alist-default, |
| 499 | ;; dired-view-command-alist. | 494 | ;; dired-view-command-alist. |
| 500 | (cond ((executable-find "display")) | 495 | (cond ((executable-find "display")) |
| @@ -502,33 +497,33 @@ with the comment." | |||
| 502 | ((executable-find "qiv") "qiv -t")) | 497 | ((executable-find "qiv") "qiv -t")) |
| 503 | "Name of external viewer. | 498 | "Name of external viewer. |
| 504 | Including parameters. Used when displaying original image from | 499 | Including parameters. Used when displaying original image from |
| 505 | `tumme-thumbnail-mode'." | 500 | `image-dired-thumbnail-mode'." |
| 506 | :type 'string | 501 | :type 'string |
| 507 | :group 'tumme) | 502 | :group 'image-dired) |
| 508 | 503 | ||
| 509 | (defcustom tumme-main-image-directory "~/pics/" | 504 | (defcustom image-dired-main-image-directory "~/pics/" |
| 510 | "Name of main image directory, if any. | 505 | "Name of main image directory, if any. |
| 511 | Used by `tumme-copy-with-exif-file-name'." | 506 | Used by `image-dired-copy-with-exif-file-name'." |
| 512 | :type 'string | 507 | :type 'string |
| 513 | :group 'tumme) | 508 | :group 'image-dired) |
| 514 | 509 | ||
| 515 | (defcustom tumme-show-all-from-dir-max-files 50 | 510 | (defcustom image-dired-show-all-from-dir-max-files 50 |
| 516 | "Maximum number of files to show using `tumme-show-all-from-dir'. | 511 | "Maximum number of files to show using `image-dired-show-all-from-dir'. |
| 517 | before warning the user." | 512 | before warning the user." |
| 518 | :type 'integer | 513 | :type 'integer |
| 519 | :group 'tumme) | 514 | :group 'image-dired) |
| 520 | 515 | ||
| 521 | (defun tumme-dir () | 516 | (defun image-dired-dir () |
| 522 | "Return the current thumbnails directory (from variable `tumme-dir'). | 517 | "Return the current thumbnails directory (from variable `image-dired-dir'). |
| 523 | Create the thumbnails directory if it does not exist." | 518 | Create the thumbnails directory if it does not exist." |
| 524 | (let ((tumme-dir (file-name-as-directory | 519 | (let ((image-dired-dir (file-name-as-directory |
| 525 | (expand-file-name tumme-dir)))) | 520 | (expand-file-name image-dired-dir)))) |
| 526 | (unless (file-directory-p tumme-dir) | 521 | (unless (file-directory-p image-dired-dir) |
| 527 | (make-directory tumme-dir t) | 522 | (make-directory image-dired-dir t) |
| 528 | (message "Creating thumbnails directory")) | 523 | (message "Creating thumbnails directory")) |
| 529 | tumme-dir)) | 524 | image-dired-dir)) |
| 530 | 525 | ||
| 531 | (defun tumme-insert-image (file type relief margin) | 526 | (defun image-dired-insert-image (file type relief margin) |
| 532 | "Insert image FILE of image TYPE, using RELIEF and MARGIN, at point." | 527 | "Insert image FILE of image TYPE, using RELIEF and MARGIN, at point." |
| 533 | 528 | ||
| 534 | (let ((i `(image :type ,type | 529 | (let ((i `(image :type ,type |
| @@ -537,56 +532,56 @@ Create the thumbnails directory if it does not exist." | |||
| 537 | :margin ,margin))) | 532 | :margin ,margin))) |
| 538 | (insert-image i))) | 533 | (insert-image i))) |
| 539 | 534 | ||
| 540 | (defun tumme-get-thumbnail-image (file) | 535 | (defun image-dired-get-thumbnail-image (file) |
| 541 | "Return the image descriptor for a thumbnail of image file FILE." | 536 | "Return the image descriptor for a thumbnail of image file FILE." |
| 542 | (unless (string-match (image-file-name-regexp) file) | 537 | (unless (string-match (image-file-name-regexp) file) |
| 543 | (error "%s is not a valid image file" file)) | 538 | (error "%s is not a valid image file" file)) |
| 544 | (let ((thumb-file (tumme-thumb-name file))) | 539 | (let ((thumb-file (image-dired-thumb-name file))) |
| 545 | (unless (and (file-exists-p thumb-file) | 540 | (unless (and (file-exists-p thumb-file) |
| 546 | (<= (float-time (nth 5 (file-attributes file))) | 541 | (<= (float-time (nth 5 (file-attributes file))) |
| 547 | (float-time (nth 5 (file-attributes thumb-file))))) | 542 | (float-time (nth 5 (file-attributes thumb-file))))) |
| 548 | (tumme-create-thumb file thumb-file)) | 543 | (image-dired-create-thumb file thumb-file)) |
| 549 | (create-image thumb-file) | 544 | (create-image thumb-file) |
| 550 | ;; (list 'image :type 'jpeg | 545 | ;; (list 'image :type 'jpeg |
| 551 | ;; :file thumb-file | 546 | ;; :file thumb-file |
| 552 | ;; :relief tumme-thumb-relief :margin tumme-thumb-margin) | 547 | ;; :relief image-dired-thumb-relief :margin image-dired-thumb-margin) |
| 553 | )) | 548 | )) |
| 554 | 549 | ||
| 555 | (defun tumme-insert-thumbnail (file original-file-name | 550 | (defun image-dired-insert-thumbnail (file original-file-name |
| 556 | associated-dired-buffer) | 551 | associated-dired-buffer) |
| 557 | "Insert thumbnail image FILE. | 552 | "Insert thumbnail image FILE. |
| 558 | Add text properties ORIGINAL-FILE-NAME and ASSOCIATED-DIRED-BUFFER." | 553 | Add text properties ORIGINAL-FILE-NAME and ASSOCIATED-DIRED-BUFFER." |
| 559 | (let (beg end) | 554 | (let (beg end) |
| 560 | (setq beg (point)) | 555 | (setq beg (point)) |
| 561 | (tumme-insert-image file | 556 | (image-dired-insert-image file |
| 562 | ;; TODO: this should depend on the real file type | 557 | ;; TODO: this should depend on the real file type |
| 563 | (if (eq 'standard tumme-thumbnail-storage) | 558 | (if (eq 'standard image-dired-thumbnail-storage) |
| 564 | 'png 'jpeg) | 559 | 'png 'jpeg) |
| 565 | tumme-thumb-relief | 560 | image-dired-thumb-relief |
| 566 | tumme-thumb-margin) | 561 | image-dired-thumb-margin) |
| 567 | (setq end (point)) | 562 | (setq end (point)) |
| 568 | (add-text-properties | 563 | (add-text-properties |
| 569 | beg end | 564 | beg end |
| 570 | (list 'tumme-thumbnail t | 565 | (list 'image-dired-thumbnail t |
| 571 | 'original-file-name original-file-name | 566 | 'original-file-name original-file-name |
| 572 | 'associated-dired-buffer associated-dired-buffer | 567 | 'associated-dired-buffer associated-dired-buffer |
| 573 | 'tags (tumme-list-tags original-file-name) | 568 | 'tags (image-dired-list-tags original-file-name) |
| 574 | 'mouse-face 'highlight | 569 | 'mouse-face 'highlight |
| 575 | 'comment (tumme-get-comment original-file-name))))) | 570 | 'comment (image-dired-get-comment original-file-name))))) |
| 576 | 571 | ||
| 577 | (defun tumme-thumb-name (file) | 572 | (defun image-dired-thumb-name (file) |
| 578 | "Return thumbnail file name for FILE. | 573 | "Return thumbnail file name for FILE. |
| 579 | Depending on the value of `tumme-thumbnail-storage', the file | 574 | Depending on the value of `image-dired-thumbnail-storage', the file |
| 580 | name will vary. For central thumbnail file storage, make a | 575 | name will vary. For central thumbnail file storage, make a |
| 581 | MD5-hash of the image file's directory name and add that to make | 576 | MD5-hash of the image file's directory name and add that to make |
| 582 | the thumbnail file name unique. For per-directory storage, just | 577 | the thumbnail file name unique. For per-directory storage, just |
| 583 | add a subdirectory. For standard storage, produce the file name | 578 | add a subdirectory. For standard storage, produce the file name |
| 584 | according to the Thumbnail Managing Standard." | 579 | according to the Thumbnail Managing Standard." |
| 585 | (cond ((eq 'standard tumme-thumbnail-storage) | 580 | (cond ((eq 'standard image-dired-thumbnail-storage) |
| 586 | (expand-file-name | 581 | (expand-file-name |
| 587 | (concat "~/.thumbnails/normal/" | 582 | (concat "~/.thumbnails/normal/" |
| 588 | (md5 (concat "file://" (expand-file-name file))) ".png"))) | 583 | (md5 (concat "file://" (expand-file-name file))) ".png"))) |
| 589 | ((eq 'use-tumme-dir tumme-thumbnail-storage) | 584 | ((eq 'use-image-dired-dir image-dired-thumbnail-storage) |
| 590 | (let* ((f (expand-file-name file)) | 585 | (let* ((f (expand-file-name file)) |
| 591 | (md5-hash | 586 | (md5-hash |
| 592 | ;; Is MD5 hashes fast enough? The checksum of a | 587 | ;; Is MD5 hashes fast enough? The checksum of a |
| @@ -595,32 +590,32 @@ according to the Thumbnail Managing Standard." | |||
| 595 | ;; be used here. | 590 | ;; be used here. |
| 596 | (md5 (file-name-as-directory (file-name-directory f))))) | 591 | (md5 (file-name-as-directory (file-name-directory f))))) |
| 597 | (format "%s%s%s.thumb.%s" | 592 | (format "%s%s%s.thumb.%s" |
| 598 | (file-name-as-directory (expand-file-name (tumme-dir))) | 593 | (file-name-as-directory (expand-file-name (image-dired-dir))) |
| 599 | (file-name-sans-extension (file-name-nondirectory f)) | 594 | (file-name-sans-extension (file-name-nondirectory f)) |
| 600 | (if md5-hash (concat "_" md5-hash) "") | 595 | (if md5-hash (concat "_" md5-hash) "") |
| 601 | (file-name-extension f)))) | 596 | (file-name-extension f)))) |
| 602 | ((eq 'per-directory tumme-thumbnail-storage) | 597 | ((eq 'per-directory image-dired-thumbnail-storage) |
| 603 | (let ((f (expand-file-name file))) | 598 | (let ((f (expand-file-name file))) |
| 604 | (format "%s.tumme/%s.thumb.%s" | 599 | (format "%s.image-dired/%s.thumb.%s" |
| 605 | (file-name-directory f) | 600 | (file-name-directory f) |
| 606 | (file-name-sans-extension (file-name-nondirectory f)) | 601 | (file-name-sans-extension (file-name-nondirectory f)) |
| 607 | (file-name-extension f)))))) | 602 | (file-name-extension f)))))) |
| 608 | 603 | ||
| 609 | (defun tumme-create-thumb (original-file thumbnail-file) | 604 | (defun image-dired-create-thumb (original-file thumbnail-file) |
| 610 | "For ORIGINAL-FILE, create thumbnail image named THUMBNAIL-FILE." | 605 | "For ORIGINAL-FILE, create thumbnail image named THUMBNAIL-FILE." |
| 611 | (let* ((width (int-to-string tumme-thumb-width)) | 606 | (let* ((width (int-to-string image-dired-thumb-width)) |
| 612 | (height (int-to-string tumme-thumb-height)) | 607 | (height (int-to-string image-dired-thumb-height)) |
| 613 | (modif-time (format "%.0f" (float-time (nth 5 (file-attributes | 608 | (modif-time (format "%.0f" (float-time (nth 5 (file-attributes |
| 614 | original-file))))) | 609 | original-file))))) |
| 615 | (thumbnail-nq8-file (replace-regexp-in-string ".png\\'" "-nq8.png" | 610 | (thumbnail-nq8-file (replace-regexp-in-string ".png\\'" "-nq8.png" |
| 616 | thumbnail-file)) | 611 | thumbnail-file)) |
| 617 | (command | 612 | (command |
| 618 | (format-spec | 613 | (format-spec |
| 619 | (if (eq 'standard tumme-thumbnail-storage) | 614 | (if (eq 'standard image-dired-thumbnail-storage) |
| 620 | tumme-cmd-create-standard-thumbnail-command | 615 | image-dired-cmd-create-standard-thumbnail-command |
| 621 | tumme-cmd-create-thumbnail-options) | 616 | image-dired-cmd-create-thumbnail-options) |
| 622 | (list | 617 | (list |
| 623 | (cons ?p tumme-cmd-create-thumbnail-program) | 618 | (cons ?p image-dired-cmd-create-thumbnail-program) |
| 624 | (cons ?w width) | 619 | (cons ?w width) |
| 625 | (cons ?h height) | 620 | (cons ?h height) |
| 626 | (cons ?m modif-time) | 621 | (cons ?m modif-time) |
| @@ -635,13 +630,13 @@ according to the Thumbnail Managing Standard." | |||
| 635 | (call-process shell-file-name nil nil nil shell-command-switch command))) | 630 | (call-process shell-file-name nil nil nil shell-command-switch command))) |
| 636 | 631 | ||
| 637 | ;;;###autoload | 632 | ;;;###autoload |
| 638 | (defun tumme-dired-insert-marked-thumbs () | 633 | (defun image-dired-dired-insert-marked-thumbs () |
| 639 | "Insert thumbnails before file names of marked files in the dired buffer." | 634 | "Insert thumbnails before file names of marked files in the dired buffer." |
| 640 | (interactive) | 635 | (interactive) |
| 641 | (dired-map-over-marks | 636 | (dired-map-over-marks |
| 642 | (let* ((image-pos (dired-move-to-filename)) | 637 | (let* ((image-pos (dired-move-to-filename)) |
| 643 | (image-file (dired-get-filename)) | 638 | (image-file (dired-get-filename)) |
| 644 | (thumb-file (tumme-get-thumbnail-image image-file)) | 639 | (thumb-file (image-dired-get-thumbnail-image image-file)) |
| 645 | overlay) | 640 | overlay) |
| 646 | ;; If image is not already added, then add it. | 641 | ;; If image is not already added, then add it. |
| 647 | (unless (delq nil (mapcar (lambda (o) (overlay-get o 'put-image)) | 642 | (unless (delq nil (mapcar (lambda (o) (overlay-get o 'put-image)) |
| @@ -655,9 +650,9 @@ according to the Thumbnail Managing Standard." | |||
| 655 | (overlay-put overlay 'image-file image-file) | 650 | (overlay-put overlay 'image-file image-file) |
| 656 | (overlay-put overlay 'thumb-file thumb-file))) | 651 | (overlay-put overlay 'thumb-file thumb-file))) |
| 657 | nil) | 652 | nil) |
| 658 | (add-hook 'dired-after-readin-hook 'tumme-dired-after-readin-hook nil t)) | 653 | (add-hook 'dired-after-readin-hook 'image-dired-dired-after-readin-hook nil t)) |
| 659 | 654 | ||
| 660 | (defun tumme-dired-after-readin-hook () | 655 | (defun image-dired-dired-after-readin-hook () |
| 661 | "Relocate existing thumbnail overlays in dired buffer after reverting. | 656 | "Relocate existing thumbnail overlays in dired buffer after reverting. |
| 662 | Move them to their corresponding files if they are still exist. | 657 | Move them to their corresponding files if they are still exist. |
| 663 | Otherwise, delete overlays." | 658 | Otherwise, delete overlays." |
| @@ -670,82 +665,82 @@ Otherwise, delete overlays." | |||
| 670 | (delete-overlay overlay))))) | 665 | (delete-overlay overlay))))) |
| 671 | (overlays-in (point-min) (point-max)))) | 666 | (overlays-in (point-min) (point-max)))) |
| 672 | 667 | ||
| 673 | (defun tumme-next-line-and-display () | 668 | (defun image-dired-next-line-and-display () |
| 674 | "Move to next dired line and display thumbnail image." | 669 | "Move to next dired line and display thumbnail image." |
| 675 | (interactive) | 670 | (interactive) |
| 676 | (dired-next-line 1) | 671 | (dired-next-line 1) |
| 677 | (tumme-display-thumbs | 672 | (image-dired-display-thumbs |
| 678 | t (or tumme-append-when-browsing nil) t) | 673 | t (or image-dired-append-when-browsing nil) t) |
| 679 | (if tumme-dired-disp-props | 674 | (if image-dired-dired-disp-props |
| 680 | (tumme-dired-display-properties))) | 675 | (image-dired-dired-display-properties))) |
| 681 | 676 | ||
| 682 | (defun tumme-previous-line-and-display () | 677 | (defun image-dired-previous-line-and-display () |
| 683 | "Move to previous dired line and display thumbnail image." | 678 | "Move to previous dired line and display thumbnail image." |
| 684 | (interactive) | 679 | (interactive) |
| 685 | (dired-previous-line 1) | 680 | (dired-previous-line 1) |
| 686 | (tumme-display-thumbs | 681 | (image-dired-display-thumbs |
| 687 | t (or tumme-append-when-browsing nil) t) | 682 | t (or image-dired-append-when-browsing nil) t) |
| 688 | (if tumme-dired-disp-props | 683 | (if image-dired-dired-disp-props |
| 689 | (tumme-dired-display-properties))) | 684 | (image-dired-dired-display-properties))) |
| 690 | 685 | ||
| 691 | (defun tumme-toggle-append-browsing () | 686 | (defun image-dired-toggle-append-browsing () |
| 692 | "Toggle `tumme-append-when-browsing'." | 687 | "Toggle `image-dired-append-when-browsing'." |
| 693 | (interactive) | 688 | (interactive) |
| 694 | (setq tumme-append-when-browsing | 689 | (setq image-dired-append-when-browsing |
| 695 | (not tumme-append-when-browsing)) | 690 | (not image-dired-append-when-browsing)) |
| 696 | (message "Append browsing %s." | 691 | (message "Append browsing %s." |
| 697 | (if tumme-append-when-browsing | 692 | (if image-dired-append-when-browsing |
| 698 | "on" | 693 | "on" |
| 699 | "off"))) | 694 | "off"))) |
| 700 | 695 | ||
| 701 | (defun tumme-mark-and-display-next () | 696 | (defun image-dired-mark-and-display-next () |
| 702 | "Mark current file in dired and display next thumbnail image." | 697 | "Mark current file in dired and display next thumbnail image." |
| 703 | (interactive) | 698 | (interactive) |
| 704 | (dired-mark 1) | 699 | (dired-mark 1) |
| 705 | (tumme-display-thumbs | 700 | (image-dired-display-thumbs |
| 706 | t (or tumme-append-when-browsing nil) t) | 701 | t (or image-dired-append-when-browsing nil) t) |
| 707 | (if tumme-dired-disp-props | 702 | (if image-dired-dired-disp-props |
| 708 | (tumme-dired-display-properties))) | 703 | (image-dired-dired-display-properties))) |
| 709 | 704 | ||
| 710 | (defun tumme-toggle-dired-display-properties () | 705 | (defun image-dired-toggle-dired-display-properties () |
| 711 | "Toggle `tumme-dired-disp-props'." | 706 | "Toggle `image-dired-dired-disp-props'." |
| 712 | (interactive) | 707 | (interactive) |
| 713 | (setq tumme-dired-disp-props | 708 | (setq image-dired-dired-disp-props |
| 714 | (not tumme-dired-disp-props)) | 709 | (not image-dired-dired-disp-props)) |
| 715 | (message "Dired display properties %s." | 710 | (message "Dired display properties %s." |
| 716 | (if tumme-dired-disp-props | 711 | (if image-dired-dired-disp-props |
| 717 | "on" | 712 | "on" |
| 718 | "off"))) | 713 | "off"))) |
| 719 | 714 | ||
| 720 | (defvar tumme-thumbnail-buffer "*tumme*" | 715 | (defvar image-dired-thumbnail-buffer "*image-dired*" |
| 721 | "Tumme's thumbnail buffer.") | 716 | "Image-Dired's thumbnail buffer.") |
| 722 | 717 | ||
| 723 | (defun tumme-create-thumbnail-buffer () | 718 | (defun image-dired-create-thumbnail-buffer () |
| 724 | "Create thumb buffer and set `tumme-thumbnail-mode'." | 719 | "Create thumb buffer and set `image-dired-thumbnail-mode'." |
| 725 | (let ((buf (get-buffer-create tumme-thumbnail-buffer))) | 720 | (let ((buf (get-buffer-create image-dired-thumbnail-buffer))) |
| 726 | (with-current-buffer buf | 721 | (with-current-buffer buf |
| 727 | (setq buffer-read-only t) | 722 | (setq buffer-read-only t) |
| 728 | (if (not (eq major-mode 'tumme-thumbnail-mode)) | 723 | (if (not (eq major-mode 'image-dired-thumbnail-mode)) |
| 729 | (tumme-thumbnail-mode))) | 724 | (image-dired-thumbnail-mode))) |
| 730 | buf)) | 725 | buf)) |
| 731 | 726 | ||
| 732 | (defvar tumme-display-image-buffer "*tumme-display-image*" | 727 | (defvar image-dired-display-image-buffer "*image-dired-display-image*" |
| 733 | "Where larger versions of the images are display.") | 728 | "Where larger versions of the images are display.") |
| 734 | 729 | ||
| 735 | (defun tumme-create-display-image-buffer () | 730 | (defun image-dired-create-display-image-buffer () |
| 736 | "Create image display buffer and set `tumme-display-image-mode'." | 731 | "Create image display buffer and set `image-dired-display-image-mode'." |
| 737 | (let ((buf (get-buffer-create tumme-display-image-buffer))) | 732 | (let ((buf (get-buffer-create image-dired-display-image-buffer))) |
| 738 | (with-current-buffer buf | 733 | (with-current-buffer buf |
| 739 | (setq buffer-read-only t) | 734 | (setq buffer-read-only t) |
| 740 | (if (not (eq major-mode 'tumme-display-image-mode)) | 735 | (if (not (eq major-mode 'image-dired-display-image-mode)) |
| 741 | (tumme-display-image-mode))) | 736 | (image-dired-display-image-mode))) |
| 742 | buf)) | 737 | buf)) |
| 743 | 738 | ||
| 744 | (defvar tumme-saved-window-configuration nil | 739 | (defvar image-dired-saved-window-configuration nil |
| 745 | "Saved window configuration.") | 740 | "Saved window configuration.") |
| 746 | 741 | ||
| 747 | ;;;###autoload | 742 | ;;;###autoload |
| 748 | (defun tumme-dired-with-window-configuration (dir &optional arg) | 743 | (defun image-dired-dired-with-window-configuration (dir &optional arg) |
| 749 | "Open directory DIR and create a default window configuration. | 744 | "Open directory DIR and create a default window configuration. |
| 750 | 745 | ||
| 751 | Convenience command that: | 746 | Convenience command that: |
| @@ -756,16 +751,16 @@ Convenience command that: | |||
| 756 | 751 | ||
| 757 | After the command has finished, you would typically mark some | 752 | After the command has finished, you would typically mark some |
| 758 | image files in dired and type | 753 | image files in dired and type |
| 759 | \\[tumme-display-thumbs] (`tumme-display-thumbs'). | 754 | \\[image-dired-display-thumbs] (`image-dired-display-thumbs'). |
| 760 | 755 | ||
| 761 | If called with prefix argument ARG, skip splitting of windows. | 756 | If called with prefix argument ARG, skip splitting of windows. |
| 762 | 757 | ||
| 763 | The current window configuration is saved and can be restored by | 758 | The current window configuration is saved and can be restored by |
| 764 | calling `tumme-restore-window-configuration'." | 759 | calling `image-dired-restore-window-configuration'." |
| 765 | (interactive "DDirectory: \nP") | 760 | (interactive "DDirectory: \nP") |
| 766 | (let ((buf (tumme-create-thumbnail-buffer)) | 761 | (let ((buf (image-dired-create-thumbnail-buffer)) |
| 767 | (buf2 (tumme-create-display-image-buffer))) | 762 | (buf2 (image-dired-create-display-image-buffer))) |
| 768 | (setq tumme-saved-window-configuration | 763 | (setq image-dired-saved-window-configuration |
| 769 | (current-window-configuration)) | 764 | (current-window-configuration)) |
| 770 | (dired dir) | 765 | (dired dir) |
| 771 | (delete-other-windows) | 766 | (delete-other-windows) |
| @@ -780,18 +775,18 @@ calling `tumme-restore-window-configuration'." | |||
| 780 | (switch-to-buffer buf2) | 775 | (switch-to-buffer buf2) |
| 781 | (other-window -2))))) | 776 | (other-window -2))))) |
| 782 | 777 | ||
| 783 | (defun tumme-restore-window-configuration () | 778 | (defun image-dired-restore-window-configuration () |
| 784 | "Restore window configuration. | 779 | "Restore window configuration. |
| 785 | Restore any changes to the window configuration made by calling | 780 | Restore any changes to the window configuration made by calling |
| 786 | `tumme-dired-with-window-configuration'." | 781 | `image-dired-dired-with-window-configuration'." |
| 787 | (interactive) | 782 | (interactive) |
| 788 | (if tumme-saved-window-configuration | 783 | (if image-dired-saved-window-configuration |
| 789 | (set-window-configuration tumme-saved-window-configuration) | 784 | (set-window-configuration image-dired-saved-window-configuration) |
| 790 | (message "No saved window configuration"))) | 785 | (message "No saved window configuration"))) |
| 791 | 786 | ||
| 792 | ;;;###autoload | 787 | ;;;###autoload |
| 793 | (defun tumme-display-thumbs (&optional arg append do-not-pop) | 788 | (defun image-dired-display-thumbs (&optional arg append do-not-pop) |
| 794 | "Display thumbnails of all marked files, in `tumme-thumbnail-buffer'. | 789 | "Display thumbnails of all marked files, in `image-dired-thumbnail-buffer'. |
| 795 | If a thumbnail image does not exist for a file, it is created on the | 790 | If a thumbnail image does not exist for a file, it is created on the |
| 796 | fly. With prefix argument ARG, display only thumbnail for file at | 791 | fly. With prefix argument ARG, display only thumbnail for file at |
| 797 | point (this is useful if you have marked some files but want to show | 792 | point (this is useful if you have marked some files but want to show |
| @@ -799,7 +794,7 @@ another one). | |||
| 799 | 794 | ||
| 800 | Recommended usage is to split the current frame horizontally so that | 795 | Recommended usage is to split the current frame horizontally so that |
| 801 | you have the dired buffer in the left window and the | 796 | you have the dired buffer in the left window and the |
| 802 | `tumme-thumbnail-buffer' buffer in the right window. | 797 | `image-dired-thumbnail-buffer' buffer in the right window. |
| 803 | 798 | ||
| 804 | With optional argument APPEND, append thumbnail to thumbnail buffer | 799 | With optional argument APPEND, append thumbnail to thumbnail buffer |
| 805 | instead of erasing it first. | 800 | instead of erasing it first. |
| @@ -807,11 +802,11 @@ instead of erasing it first. | |||
| 807 | Option argument DO-NOT-POP controls if `pop-to-buffer' should be | 802 | Option argument DO-NOT-POP controls if `pop-to-buffer' should be |
| 808 | used or not. If non-nil, use `display-buffer' instead of | 803 | used or not. If non-nil, use `display-buffer' instead of |
| 809 | `pop-to-buffer'. This is used from functions like | 804 | `pop-to-buffer'. This is used from functions like |
| 810 | `tumme-next-line-and-display' and | 805 | `image-dired-next-line-and-display' and |
| 811 | `tumme-previous-line-and-display' where we do not want the | 806 | `image-dired-previous-line-and-display' where we do not want the |
| 812 | thumbnail buffer to be selected." | 807 | thumbnail buffer to be selected." |
| 813 | (interactive "P") | 808 | (interactive "P") |
| 814 | (let ((buf (tumme-create-thumbnail-buffer)) | 809 | (let ((buf (image-dired-create-thumbnail-buffer)) |
| 815 | curr-file thumb-name files count dired-buf beg) | 810 | curr-file thumb-name files count dired-buf beg) |
| 816 | (if arg | 811 | (if arg |
| 817 | (setq files (list (dired-get-filename))) | 812 | (setq files (list (dired-get-filename))) |
| @@ -824,58 +819,61 @@ thumbnail buffer to be selected." | |||
| 824 | (goto-char (point-max))) | 819 | (goto-char (point-max))) |
| 825 | (mapcar | 820 | (mapcar |
| 826 | (lambda (curr-file) | 821 | (lambda (curr-file) |
| 827 | (setq thumb-name (tumme-thumb-name curr-file)) | 822 | (setq thumb-name (image-dired-thumb-name curr-file)) |
| 828 | (if (and (not (file-exists-p thumb-name)) | 823 | (if (and (not (file-exists-p thumb-name)) |
| 829 | (not (= 0 (tumme-create-thumb curr-file thumb-name)))) | 824 | (not (= 0 (image-dired-create-thumb curr-file thumb-name)))) |
| 830 | (message "Thumb could not be created for file %s" curr-file) | 825 | (message "Thumb could not be created for file %s" curr-file) |
| 831 | (tumme-insert-thumbnail thumb-name curr-file dired-buf))) | 826 | (image-dired-insert-thumbnail thumb-name curr-file dired-buf))) |
| 832 | files)) | 827 | files)) |
| 833 | (cond ((eq 'dynamic tumme-line-up-method) | 828 | (cond ((eq 'dynamic image-dired-line-up-method) |
| 834 | (tumme-line-up-dynamic)) | 829 | (image-dired-line-up-dynamic)) |
| 835 | ((eq 'fixed tumme-line-up-method) | 830 | ((eq 'fixed image-dired-line-up-method) |
| 836 | (tumme-line-up)) | 831 | (image-dired-line-up)) |
| 837 | ((eq 'interactive tumme-line-up-method) | 832 | ((eq 'interactive image-dired-line-up-method) |
| 838 | (tumme-line-up-interactive)) | 833 | (image-dired-line-up-interactive)) |
| 839 | ((eq 'none tumme-line-up-method) | 834 | ((eq 'none image-dired-line-up-method) |
| 840 | nil) | 835 | nil) |
| 841 | (t | 836 | (t |
| 842 | (tumme-line-up-dynamic)))) | 837 | (image-dired-line-up-dynamic)))) |
| 843 | (if do-not-pop | 838 | (if do-not-pop |
| 844 | (display-buffer tumme-thumbnail-buffer) | 839 | (display-buffer image-dired-thumbnail-buffer) |
| 845 | (pop-to-buffer tumme-thumbnail-buffer)))) | 840 | (pop-to-buffer image-dired-thumbnail-buffer)))) |
| 846 | 841 | ||
| 847 | ;;;###autoload | 842 | ;;;###autoload |
| 848 | (defun tumme-show-all-from-dir (dir) | 843 | (defun image-dired-show-all-from-dir (dir) |
| 849 | "Make a preview buffer for all images in DIR and display it. | 844 | "Make a preview buffer for all images in DIR and display it. |
| 850 | If the number of files in DIR matching `image-file-name-regexp' | 845 | If the number of files in DIR matching `image-file-name-regexp' |
| 851 | exceeds `tumme-show-all-from-dir-max-files', a warning will be | 846 | exceeds `image-dired-show-all-from-dir-max-files', a warning will be |
| 852 | displayed." | 847 | displayed." |
| 853 | (interactive "DDir: ") | 848 | (interactive "DDir: ") |
| 854 | (dired dir) | 849 | (dired dir) |
| 855 | (dired-mark-files-regexp (image-file-name-regexp)) | 850 | (dired-mark-files-regexp (image-file-name-regexp)) |
| 856 | (let ((files (dired-get-marked-files))) | 851 | (let ((files (dired-get-marked-files))) |
| 857 | (if (or (<= (length files) tumme-show-all-from-dir-max-files) | 852 | (if (or (<= (length files) image-dired-show-all-from-dir-max-files) |
| 858 | (and (> (length files) tumme-show-all-from-dir-max-files) | 853 | (and (> (length files) image-dired-show-all-from-dir-max-files) |
| 859 | (y-or-n-p | 854 | (y-or-n-p |
| 860 | (format | 855 | (format |
| 861 | "Directory contains more than %d image files. Proceed? " | 856 | "Directory contains more than %d image files. Proceed? " |
| 862 | tumme-show-all-from-dir-max-files)))) | 857 | image-dired-show-all-from-dir-max-files)))) |
| 863 | (progn | 858 | (progn |
| 864 | (tumme-display-thumbs) | 859 | (image-dired-display-thumbs) |
| 865 | (pop-to-buffer tumme-thumbnail-buffer)) | 860 | (pop-to-buffer image-dired-thumbnail-buffer)) |
| 866 | (message "Cancelled.")))) | 861 | (message "Cancelled.")))) |
| 867 | 862 | ||
| 868 | ;;;###autoload | 863 | ;;;###autoload |
| 869 | (defalias 'tumme 'tumme-show-all-from-dir) | 864 | (defalias 'image-dired 'image-dired-show-all-from-dir) |
| 865 | |||
| 866 | ;;;###autoload | ||
| 867 | (defalias 'tumme 'image-dired-show-all-from-dir) | ||
| 870 | 868 | ||
| 871 | (defun tumme-write-tags (file-tags) | 869 | (defun image-dired-write-tags (file-tags) |
| 872 | "Write file tags to database. | 870 | "Write file tags to database. |
| 873 | Write each file and tag in FILE-TAGS to the database. FILE-TAGS | 871 | Write each file and tag in FILE-TAGS to the database. FILE-TAGS |
| 874 | is an alist in the following form: | 872 | is an alist in the following form: |
| 875 | ((FILE . TAG) ... )" | 873 | ((FILE . TAG) ... )" |
| 876 | (let (end file tag) | 874 | (let (end file tag) |
| 877 | (with-temp-file tumme-db-file | 875 | (with-temp-file image-dired-db-file |
| 878 | (insert-file-contents tumme-db-file) | 876 | (insert-file-contents image-dired-db-file) |
| 879 | (dolist (elt file-tags) | 877 | (dolist (elt file-tags) |
| 880 | (setq file (car elt) | 878 | (setq file (car elt) |
| 881 | tag (cdr elt)) | 879 | tag (cdr elt)) |
| @@ -890,11 +888,11 @@ is an alist in the following form: | |||
| 890 | (goto-char (point-max)) | 888 | (goto-char (point-max)) |
| 891 | (insert (format "\n%s;%s" file tag))))))) | 889 | (insert (format "\n%s;%s" file tag))))))) |
| 892 | 890 | ||
| 893 | (defun tumme-remove-tag (files tag) | 891 | (defun image-dired-remove-tag (files tag) |
| 894 | "For all FILES, remove TAG from the image database." | 892 | "For all FILES, remove TAG from the image database." |
| 895 | (save-excursion | 893 | (save-excursion |
| 896 | (let (end buf start) | 894 | (let (end buf start) |
| 897 | (setq buf (find-file tumme-db-file)) | 895 | (setq buf (find-file image-dired-db-file)) |
| 898 | (if (not (listp files)) | 896 | (if (not (listp files)) |
| 899 | (if (stringp files) | 897 | (if (stringp files) |
| 900 | (setq files (list files)) | 898 | (setq files (list files)) |
| @@ -924,11 +922,11 @@ is an alist in the following form: | |||
| 924 | (save-buffer) | 922 | (save-buffer) |
| 925 | (kill-buffer buf)))) | 923 | (kill-buffer buf)))) |
| 926 | 924 | ||
| 927 | (defun tumme-list-tags (file) | 925 | (defun image-dired-list-tags (file) |
| 928 | "Read all tags for image FILE from the image database." | 926 | "Read all tags for image FILE from the image database." |
| 929 | (save-excursion | 927 | (save-excursion |
| 930 | (let (end buf (tags "")) | 928 | (let (end buf (tags "")) |
| 931 | (setq buf (find-file tumme-db-file)) | 929 | (setq buf (find-file image-dired-db-file)) |
| 932 | (goto-char (point-min)) | 930 | (goto-char (point-min)) |
| 933 | (when (search-forward-regexp | 931 | (when (search-forward-regexp |
| 934 | (format "^%s" file) nil t) | 932 | (format "^%s" file) nil t) |
| @@ -944,7 +942,7 @@ is an alist in the following form: | |||
| 944 | (split-string tags ";")))) | 942 | (split-string tags ";")))) |
| 945 | 943 | ||
| 946 | ;;;###autoload | 944 | ;;;###autoload |
| 947 | (defun tumme-tag-files (arg) | 945 | (defun image-dired-tag-files (arg) |
| 948 | "Tag marked file(s) in dired. With prefix ARG, tag file at point." | 946 | "Tag marked file(s) in dired. With prefix ARG, tag file at point." |
| 949 | (interactive "P") | 947 | (interactive "P") |
| 950 | (let ((tag (read-string "Tags to add (separate tags with a semicolon): ")) | 948 | (let ((tag (read-string "Tags to add (separate tags with a semicolon): ")) |
| @@ -952,22 +950,22 @@ is an alist in the following form: | |||
| 952 | (if arg | 950 | (if arg |
| 953 | (setq files (list (dired-get-filename))) | 951 | (setq files (list (dired-get-filename))) |
| 954 | (setq files (dired-get-marked-files))) | 952 | (setq files (dired-get-marked-files))) |
| 955 | (tumme-write-tags | 953 | (image-dired-write-tags |
| 956 | (mapcar | 954 | (mapcar |
| 957 | (lambda (x) | 955 | (lambda (x) |
| 958 | (cons x tag)) | 956 | (cons x tag)) |
| 959 | files)))) | 957 | files)))) |
| 960 | 958 | ||
| 961 | (defun tumme-tag-thumbnail () | 959 | (defun image-dired-tag-thumbnail () |
| 962 | "Tag current thumbnail." | 960 | "Tag current thumbnail." |
| 963 | (interactive) | 961 | (interactive) |
| 964 | (let ((tag (read-string "Tags to add (separate tags with a semicolon): "))) | 962 | (let ((tag (read-string "Tags to add (separate tags with a semicolon): "))) |
| 965 | (tumme-write-tags (list (cons (tumme-original-file-name) tag)))) | 963 | (image-dired-write-tags (list (cons (image-dired-original-file-name) tag)))) |
| 966 | (tumme-update-property | 964 | (image-dired-update-property |
| 967 | 'tags (tumme-list-tags (tumme-original-file-name)))) | 965 | 'tags (image-dired-list-tags (image-dired-original-file-name)))) |
| 968 | 966 | ||
| 969 | ;;;###autoload | 967 | ;;;###autoload |
| 970 | (defun tumme-delete-tag (arg) | 968 | (defun image-dired-delete-tag (arg) |
| 971 | "Remove tag for selected file(s). | 969 | "Remove tag for selected file(s). |
| 972 | With prefix argument ARG, remove tag from file at point." | 970 | With prefix argument ARG, remove tag from file at point." |
| 973 | (interactive "P") | 971 | (interactive "P") |
| @@ -976,39 +974,39 @@ With prefix argument ARG, remove tag from file at point." | |||
| 976 | (if arg | 974 | (if arg |
| 977 | (setq files (list (dired-get-filename))) | 975 | (setq files (list (dired-get-filename))) |
| 978 | (setq files (dired-get-marked-files))) | 976 | (setq files (dired-get-marked-files))) |
| 979 | (tumme-remove-tag files tag))) | 977 | (image-dired-remove-tag files tag))) |
| 980 | 978 | ||
| 981 | (defun tumme-tag-thumbnail-remove () | 979 | (defun image-dired-tag-thumbnail-remove () |
| 982 | "Remove tag from thumbnail." | 980 | "Remove tag from thumbnail." |
| 983 | (interactive) | 981 | (interactive) |
| 984 | (let ((tag (read-string "Tag to remove: "))) | 982 | (let ((tag (read-string "Tag to remove: "))) |
| 985 | (tumme-remove-tag (tumme-original-file-name) tag)) | 983 | (image-dired-remove-tag (image-dired-original-file-name) tag)) |
| 986 | (tumme-update-property | 984 | (image-dired-update-property |
| 987 | 'tags (tumme-list-tags (tumme-original-file-name)))) | 985 | 'tags (image-dired-list-tags (image-dired-original-file-name)))) |
| 988 | 986 | ||
| 989 | (defun tumme-original-file-name () | 987 | (defun image-dired-original-file-name () |
| 990 | "Get original file name for thumbnail or display image at point." | 988 | "Get original file name for thumbnail or display image at point." |
| 991 | (get-text-property (point) 'original-file-name)) | 989 | (get-text-property (point) 'original-file-name)) |
| 992 | 990 | ||
| 993 | (defun tumme-associated-dired-buffer () | 991 | (defun image-dired-associated-dired-buffer () |
| 994 | "Get associated dired buffer at point." | 992 | "Get associated dired buffer at point." |
| 995 | (get-text-property (point) 'associated-dired-buffer)) | 993 | (get-text-property (point) 'associated-dired-buffer)) |
| 996 | 994 | ||
| 997 | (defun tumme-get-buffer-window (buf) | 995 | (defun image-dired-get-buffer-window (buf) |
| 998 | "Return window where buffer BUF is." | 996 | "Return window where buffer BUF is." |
| 999 | (get-window-with-predicate | 997 | (get-window-with-predicate |
| 1000 | (lambda (window) | 998 | (lambda (window) |
| 1001 | (equal (window-buffer window) buf)) | 999 | (equal (window-buffer window) buf)) |
| 1002 | nil t)) | 1000 | nil t)) |
| 1003 | 1001 | ||
| 1004 | (defun tumme-track-original-file () | 1002 | (defun image-dired-track-original-file () |
| 1005 | "Track the original file in the associated dired buffer. | 1003 | "Track the original file in the associated dired buffer. |
| 1006 | See documentation for `tumme-toggle-movement-tracking'. Interactive | 1004 | See documentation for `image-dired-toggle-movement-tracking'. Interactive |
| 1007 | use only useful if `tumme-track-movement' is nil." | 1005 | use only useful if `image-dired-track-movement' is nil." |
| 1008 | (interactive) | 1006 | (interactive) |
| 1009 | (let ((old-buf (current-buffer)) | 1007 | (let ((old-buf (current-buffer)) |
| 1010 | (dired-buf (tumme-associated-dired-buffer)) | 1008 | (dired-buf (image-dired-associated-dired-buffer)) |
| 1011 | (file-name (tumme-original-file-name))) | 1009 | (file-name (image-dired-original-file-name))) |
| 1012 | (when (and (buffer-live-p dired-buf) file-name) | 1010 | (when (and (buffer-live-p dired-buf) file-name) |
| 1013 | (setq file-name (file-name-nondirectory file-name)) | 1011 | (setq file-name (file-name-nondirectory file-name)) |
| 1014 | (set-buffer dired-buf) | 1012 | (set-buffer dired-buf) |
| @@ -1017,28 +1015,28 @@ use only useful if `tumme-track-movement' is nil." | |||
| 1017 | (message "Could not track file") | 1015 | (message "Could not track file") |
| 1018 | (dired-move-to-filename) | 1016 | (dired-move-to-filename) |
| 1019 | (set-window-point | 1017 | (set-window-point |
| 1020 | (tumme-get-buffer-window dired-buf) (point))) | 1018 | (image-dired-get-buffer-window dired-buf) (point))) |
| 1021 | (set-buffer old-buf)))) | 1019 | (set-buffer old-buf)))) |
| 1022 | 1020 | ||
| 1023 | (defun tumme-toggle-movement-tracking () | 1021 | (defun image-dired-toggle-movement-tracking () |
| 1024 | "Turn on and off `tumme-track-movement'. | 1022 | "Turn on and off `image-dired-track-movement'. |
| 1025 | Tracking of the movements between thumbnail and dired buffer so that | 1023 | Tracking of the movements between thumbnail and dired buffer so that |
| 1026 | they are \"mirrored\" in the dired buffer. When this is on, moving | 1024 | they are \"mirrored\" in the dired buffer. When this is on, moving |
| 1027 | around in the thumbnail or dired buffer will find the matching | 1025 | around in the thumbnail or dired buffer will find the matching |
| 1028 | position in the other buffer." | 1026 | position in the other buffer." |
| 1029 | (interactive) | 1027 | (interactive) |
| 1030 | (setq tumme-track-movement (not tumme-track-movement)) | 1028 | (setq image-dired-track-movement (not image-dired-track-movement)) |
| 1031 | (message "Tracking %s" (if tumme-track-movement "on" "off"))) | 1029 | (message "Tracking %s" (if image-dired-track-movement "on" "off"))) |
| 1032 | 1030 | ||
| 1033 | (defun tumme-track-thumbnail () | 1031 | (defun image-dired-track-thumbnail () |
| 1034 | "Track current dired file's thumb in `tumme-thumbnail-buffer'. | 1032 | "Track current dired file's thumb in `image-dired-thumbnail-buffer'. |
| 1035 | This is almost the same as what `tumme-track-original-file' does, but | 1033 | This is almost the same as what `image-dired-track-original-file' does, but |
| 1036 | the other way around." | 1034 | the other way around." |
| 1037 | (let ((file (dired-get-filename)) | 1035 | (let ((file (dired-get-filename)) |
| 1038 | (old-buf (current-buffer)) | 1036 | (old-buf (current-buffer)) |
| 1039 | prop-val found) | 1037 | prop-val found) |
| 1040 | (when (get-buffer tumme-thumbnail-buffer) | 1038 | (when (get-buffer image-dired-thumbnail-buffer) |
| 1041 | (set-buffer tumme-thumbnail-buffer) | 1039 | (set-buffer image-dired-thumbnail-buffer) |
| 1042 | (goto-char (point-min)) | 1040 | (goto-char (point-min)) |
| 1043 | (while (and (not (eobp)) | 1041 | (while (and (not (eobp)) |
| 1044 | (not found)) | 1042 | (not found)) |
| @@ -1050,29 +1048,29 @@ the other way around." | |||
| 1050 | (forward-char 1))) | 1048 | (forward-char 1))) |
| 1051 | (when found | 1049 | (when found |
| 1052 | (set-window-point | 1050 | (set-window-point |
| 1053 | (tumme-thumbnail-window) (point)) | 1051 | (image-dired-thumbnail-window) (point)) |
| 1054 | (tumme-display-thumb-properties)) | 1052 | (image-dired-display-thumb-properties)) |
| 1055 | (set-buffer old-buf)))) | 1053 | (set-buffer old-buf)))) |
| 1056 | 1054 | ||
| 1057 | (defun tumme-dired-next-line (&optional arg) | 1055 | (defun image-dired-dired-next-line (&optional arg) |
| 1058 | "Call `dired-next-line', then track thumbnail. | 1056 | "Call `dired-next-line', then track thumbnail. |
| 1059 | This can safely replace `dired-next-line'. With prefix argument, move | 1057 | This can safely replace `dired-next-line'. With prefix argument, move |
| 1060 | ARG lines." | 1058 | ARG lines." |
| 1061 | (interactive "P") | 1059 | (interactive "P") |
| 1062 | (dired-next-line (or arg 1)) | 1060 | (dired-next-line (or arg 1)) |
| 1063 | (if tumme-track-movement | 1061 | (if image-dired-track-movement |
| 1064 | (tumme-track-thumbnail))) | 1062 | (image-dired-track-thumbnail))) |
| 1065 | 1063 | ||
| 1066 | (defun tumme-dired-previous-line (&optional arg) | 1064 | (defun image-dired-dired-previous-line (&optional arg) |
| 1067 | "Call `dired-previous-line', then track thumbnail. | 1065 | "Call `dired-previous-line', then track thumbnail. |
| 1068 | This can safely replace `dired-previous-line'. With prefix argument, | 1066 | This can safely replace `dired-previous-line'. With prefix argument, |
| 1069 | move ARG lines." | 1067 | move ARG lines." |
| 1070 | (interactive "P") | 1068 | (interactive "P") |
| 1071 | (dired-previous-line (or arg 1)) | 1069 | (dired-previous-line (or arg 1)) |
| 1072 | (if tumme-track-movement | 1070 | (if image-dired-track-movement |
| 1073 | (tumme-track-thumbnail))) | 1071 | (image-dired-track-thumbnail))) |
| 1074 | 1072 | ||
| 1075 | (defun tumme-forward-image (&optional arg) | 1073 | (defun image-dired-forward-image (&optional arg) |
| 1076 | "Move to next image and display properties. | 1074 | "Move to next image and display properties. |
| 1077 | Optional prefix ARG says how many images to move; default is one | 1075 | Optional prefix ARG says how many images to move; default is one |
| 1078 | image." | 1076 | image." |
| @@ -1083,17 +1081,17 @@ image." | |||
| 1083 | (save-excursion | 1081 | (save-excursion |
| 1084 | (forward-char) | 1082 | (forward-char) |
| 1085 | (while (and (not (eobp)) | 1083 | (while (and (not (eobp)) |
| 1086 | (not (tumme-image-at-point-p))) | 1084 | (not (image-dired-image-at-point-p))) |
| 1087 | (forward-char)) | 1085 | (forward-char)) |
| 1088 | (setq pos (point)) | 1086 | (setq pos (point)) |
| 1089 | (tumme-image-at-point-p))) | 1087 | (image-dired-image-at-point-p))) |
| 1090 | (goto-char pos) | 1088 | (goto-char pos) |
| 1091 | (error "At last image")))) | 1089 | (error "At last image")))) |
| 1092 | (when tumme-track-movement | 1090 | (when image-dired-track-movement |
| 1093 | (tumme-track-original-file)) | 1091 | (image-dired-track-original-file)) |
| 1094 | (tumme-display-thumb-properties)) | 1092 | (image-dired-display-thumb-properties)) |
| 1095 | 1093 | ||
| 1096 | (defun tumme-backward-image (&optional arg) | 1094 | (defun image-dired-backward-image (&optional arg) |
| 1097 | "Move to previous image and display properties. | 1095 | "Move to previous image and display properties. |
| 1098 | Optional prefix ARG says how many images to move; default is one | 1096 | Optional prefix ARG says how many images to move; default is one |
| 1099 | image." | 1097 | image." |
| @@ -1104,29 +1102,29 @@ image." | |||
| 1104 | (save-excursion | 1102 | (save-excursion |
| 1105 | (backward-char) | 1103 | (backward-char) |
| 1106 | (while (and (not (bobp)) | 1104 | (while (and (not (bobp)) |
| 1107 | (not (tumme-image-at-point-p))) | 1105 | (not (image-dired-image-at-point-p))) |
| 1108 | (backward-char)) | 1106 | (backward-char)) |
| 1109 | (setq pos (point)) | 1107 | (setq pos (point)) |
| 1110 | (tumme-image-at-point-p))) | 1108 | (image-dired-image-at-point-p))) |
| 1111 | (goto-char pos) | 1109 | (goto-char pos) |
| 1112 | (error "At first image")))) | 1110 | (error "At first image")))) |
| 1113 | (when tumme-track-movement | 1111 | (when image-dired-track-movement |
| 1114 | (tumme-track-original-file)) | 1112 | (image-dired-track-original-file)) |
| 1115 | (tumme-display-thumb-properties)) | 1113 | (image-dired-display-thumb-properties)) |
| 1116 | 1114 | ||
| 1117 | (defun tumme-next-line () | 1115 | (defun image-dired-next-line () |
| 1118 | "Move to next line and display properties." | 1116 | "Move to next line and display properties." |
| 1119 | (interactive) | 1117 | (interactive) |
| 1120 | (next-line 1) | 1118 | (next-line 1) |
| 1121 | ;; If we end up in an empty spot, back up to the next thumbnail. | 1119 | ;; If we end up in an empty spot, back up to the next thumbnail. |
| 1122 | (if (not (tumme-image-at-point-p)) | 1120 | (if (not (image-dired-image-at-point-p)) |
| 1123 | (tumme-backward-image)) | 1121 | (image-dired-backward-image)) |
| 1124 | (if tumme-track-movement | 1122 | (if image-dired-track-movement |
| 1125 | (tumme-track-original-file)) | 1123 | (image-dired-track-original-file)) |
| 1126 | (tumme-display-thumb-properties)) | 1124 | (image-dired-display-thumb-properties)) |
| 1127 | 1125 | ||
| 1128 | 1126 | ||
| 1129 | (defun tumme-previous-line () | 1127 | (defun image-dired-previous-line () |
| 1130 | "Move to previous line and display properties." | 1128 | "Move to previous line and display properties." |
| 1131 | (interactive) | 1129 | (interactive) |
| 1132 | (previous-line 1) | 1130 | (previous-line 1) |
| @@ -1134,30 +1132,30 @@ image." | |||
| 1134 | ;; thumbnail. This should only happen if the user deleted a | 1132 | ;; thumbnail. This should only happen if the user deleted a |
| 1135 | ;; thumbnail and did not refresh, so it is not very common. But we | 1133 | ;; thumbnail and did not refresh, so it is not very common. But we |
| 1136 | ;; can handle it in a good manner, so why not? | 1134 | ;; can handle it in a good manner, so why not? |
| 1137 | (if (not (tumme-image-at-point-p)) | 1135 | (if (not (image-dired-image-at-point-p)) |
| 1138 | (tumme-backward-image)) | 1136 | (image-dired-backward-image)) |
| 1139 | (if tumme-track-movement | 1137 | (if image-dired-track-movement |
| 1140 | (tumme-track-original-file)) | 1138 | (image-dired-track-original-file)) |
| 1141 | (tumme-display-thumb-properties)) | 1139 | (image-dired-display-thumb-properties)) |
| 1142 | 1140 | ||
| 1143 | (defun tumme-format-properties-string (buf file props comment) | 1141 | (defun image-dired-format-properties-string (buf file props comment) |
| 1144 | "Format display properties. | 1142 | "Format display properties. |
| 1145 | BUF is the associated dired buffer, FILE is the original image file | 1143 | BUF is the associated dired buffer, FILE is the original image file |
| 1146 | name, PROPS is a list of tags and COMMENT is the image files's | 1144 | name, PROPS is a list of tags and COMMENT is the image files's |
| 1147 | comment." | 1145 | comment." |
| 1148 | (format-spec | 1146 | (format-spec |
| 1149 | tumme-display-properties-format | 1147 | image-dired-display-properties-format |
| 1150 | (list | 1148 | (list |
| 1151 | (cons ?b (or buf "")) | 1149 | (cons ?b (or buf "")) |
| 1152 | (cons ?f file) | 1150 | (cons ?f file) |
| 1153 | (cons ?t (or (princ props) "")) | 1151 | (cons ?t (or (princ props) "")) |
| 1154 | (cons ?c (or comment ""))))) | 1152 | (cons ?c (or comment ""))))) |
| 1155 | 1153 | ||
| 1156 | (defun tumme-display-thumb-properties () | 1154 | (defun image-dired-display-thumb-properties () |
| 1157 | "Display thumbnail properties in the echo area." | 1155 | "Display thumbnail properties in the echo area." |
| 1158 | (if (not (eobp)) | 1156 | (if (not (eobp)) |
| 1159 | (let ((file-name (file-name-nondirectory (tumme-original-file-name))) | 1157 | (let ((file-name (file-name-nondirectory (image-dired-original-file-name))) |
| 1160 | (dired-buf (buffer-name (tumme-associated-dired-buffer))) | 1158 | (dired-buf (buffer-name (image-dired-associated-dired-buffer))) |
| 1161 | (props (mapconcat | 1159 | (props (mapconcat |
| 1162 | 'princ | 1160 | 'princ |
| 1163 | (get-text-property (point) 'tags) | 1161 | (get-text-property (point) 'tags) |
| @@ -1165,26 +1163,26 @@ comment." | |||
| 1165 | (comment (get-text-property (point) 'comment))) | 1163 | (comment (get-text-property (point) 'comment))) |
| 1166 | (if file-name | 1164 | (if file-name |
| 1167 | (message | 1165 | (message |
| 1168 | (tumme-format-properties-string | 1166 | (image-dired-format-properties-string |
| 1169 | dired-buf | 1167 | dired-buf |
| 1170 | file-name | 1168 | file-name |
| 1171 | props | 1169 | props |
| 1172 | comment)))))) | 1170 | comment)))))) |
| 1173 | 1171 | ||
| 1174 | (defun tumme-dired-file-marked-p () | 1172 | (defun image-dired-dired-file-marked-p () |
| 1175 | "Check whether file on current line is marked or not." | 1173 | "Check whether file on current line is marked or not." |
| 1176 | (save-excursion | 1174 | (save-excursion |
| 1177 | (beginning-of-line) | 1175 | (beginning-of-line) |
| 1178 | (not (looking-at "^ .*$")))) | 1176 | (not (looking-at "^ .*$")))) |
| 1179 | 1177 | ||
| 1180 | (defun tumme-modify-mark-on-thumb-original-file (command) | 1178 | (defun image-dired-modify-mark-on-thumb-original-file (command) |
| 1181 | "Modify mark in dired buffer. | 1179 | "Modify mark in dired buffer. |
| 1182 | This is quite ugly but I don't know how to implemented in a better | 1180 | This is quite ugly but I don't know how to implemented in a better |
| 1183 | way. COMMAND is one of 'mark for marking file in dired, 'unmark for | 1181 | way. COMMAND is one of 'mark for marking file in dired, 'unmark for |
| 1184 | unmarking file in dired or 'flag for flagging file for delete in | 1182 | unmarking file in dired or 'flag for flagging file for delete in |
| 1185 | dired." | 1183 | dired." |
| 1186 | (let ((file-name (tumme-original-file-name)) | 1184 | (let ((file-name (image-dired-original-file-name)) |
| 1187 | (dired-buf (tumme-associated-dired-buffer))) | 1185 | (dired-buf (image-dired-associated-dired-buffer))) |
| 1188 | (if (not (and dired-buf file-name)) | 1186 | (if (not (and dired-buf file-name)) |
| 1189 | (message "No image, or image with correct properties, at point.") | 1187 | (message "No image, or image with correct properties, at point.") |
| 1190 | (with-current-buffer dired-buf | 1188 | (with-current-buffer dired-buf |
| @@ -1195,42 +1193,42 @@ dired." | |||
| 1195 | (cond ((eq command 'mark) (dired-mark 1)) | 1193 | (cond ((eq command 'mark) (dired-mark 1)) |
| 1196 | ((eq command 'unmark) (dired-unmark 1)) | 1194 | ((eq command 'unmark) (dired-unmark 1)) |
| 1197 | ((eq command 'toggle) | 1195 | ((eq command 'toggle) |
| 1198 | (if (tumme-dired-file-marked-p) | 1196 | (if (image-dired-dired-file-marked-p) |
| 1199 | (dired-unmark 1) | 1197 | (dired-unmark 1) |
| 1200 | (dired-mark 1))) | 1198 | (dired-mark 1))) |
| 1201 | ((eq command 'flag) (dired-flag-file-deletion 1)))))))) | 1199 | ((eq command 'flag) (dired-flag-file-deletion 1)))))))) |
| 1202 | 1200 | ||
| 1203 | (defun tumme-mark-thumb-original-file () | 1201 | (defun image-dired-mark-thumb-original-file () |
| 1204 | "Mark original image file in associated dired buffer." | 1202 | "Mark original image file in associated dired buffer." |
| 1205 | (interactive) | 1203 | (interactive) |
| 1206 | (tumme-modify-mark-on-thumb-original-file 'mark) | 1204 | (image-dired-modify-mark-on-thumb-original-file 'mark) |
| 1207 | (tumme-forward-image)) | 1205 | (image-dired-forward-image)) |
| 1208 | 1206 | ||
| 1209 | (defun tumme-unmark-thumb-original-file () | 1207 | (defun image-dired-unmark-thumb-original-file () |
| 1210 | "Unmark original image file in associated dired buffer." | 1208 | "Unmark original image file in associated dired buffer." |
| 1211 | (interactive) | 1209 | (interactive) |
| 1212 | (tumme-modify-mark-on-thumb-original-file 'unmark) | 1210 | (image-dired-modify-mark-on-thumb-original-file 'unmark) |
| 1213 | (tumme-forward-image)) | 1211 | (image-dired-forward-image)) |
| 1214 | 1212 | ||
| 1215 | (defun tumme-flag-thumb-original-file () | 1213 | (defun image-dired-flag-thumb-original-file () |
| 1216 | "Flag original image file for deletion in associated dired buffer." | 1214 | "Flag original image file for deletion in associated dired buffer." |
| 1217 | (interactive) | 1215 | (interactive) |
| 1218 | (tumme-modify-mark-on-thumb-original-file 'flag) | 1216 | (image-dired-modify-mark-on-thumb-original-file 'flag) |
| 1219 | (tumme-forward-image)) | 1217 | (image-dired-forward-image)) |
| 1220 | 1218 | ||
| 1221 | (defun tumme-toggle-mark-thumb-original-file () | 1219 | (defun image-dired-toggle-mark-thumb-original-file () |
| 1222 | "Toggle mark on original image file in associated dired buffer." | 1220 | "Toggle mark on original image file in associated dired buffer." |
| 1223 | (interactive) | 1221 | (interactive) |
| 1224 | (tumme-modify-mark-on-thumb-original-file 'toggle)) | 1222 | (image-dired-modify-mark-on-thumb-original-file 'toggle)) |
| 1225 | 1223 | ||
| 1226 | (defun tumme-jump-original-dired-buffer () | 1224 | (defun image-dired-jump-original-dired-buffer () |
| 1227 | "Jump to the dired buffer associated with the current image file. | 1225 | "Jump to the dired buffer associated with the current image file. |
| 1228 | You probably want to use this together with | 1226 | You probably want to use this together with |
| 1229 | `tumme-track-original-file'." | 1227 | `image-dired-track-original-file'." |
| 1230 | (interactive) | 1228 | (interactive) |
| 1231 | (let ((buf (tumme-associated-dired-buffer)) | 1229 | (let ((buf (image-dired-associated-dired-buffer)) |
| 1232 | window frame) | 1230 | window frame) |
| 1233 | (setq window (tumme-get-buffer-window buf)) | 1231 | (setq window (image-dired-get-buffer-window buf)) |
| 1234 | (if window | 1232 | (if window |
| 1235 | (progn | 1233 | (progn |
| 1236 | (if (not (equal (selected-frame) (setq frame (window-frame window)))) | 1234 | (if (not (equal (selected-frame) (setq frame (window-frame window)))) |
| @@ -1239,10 +1237,10 @@ You probably want to use this together with | |||
| 1239 | (message "Associated dired buffer not visible")))) | 1237 | (message "Associated dired buffer not visible")))) |
| 1240 | 1238 | ||
| 1241 | ;;;###autoload | 1239 | ;;;###autoload |
| 1242 | (defun tumme-jump-thumbnail-buffer () | 1240 | (defun image-dired-jump-thumbnail-buffer () |
| 1243 | "Jump to thumbnail buffer." | 1241 | "Jump to thumbnail buffer." |
| 1244 | (interactive) | 1242 | (interactive) |
| 1245 | (let ((window (tumme-thumbnail-window)) | 1243 | (let ((window (image-dired-thumbnail-window)) |
| 1246 | frame) | 1244 | frame) |
| 1247 | (if window | 1245 | (if window |
| 1248 | (progn | 1246 | (progn |
| @@ -1251,327 +1249,327 @@ You probably want to use this together with | |||
| 1251 | (select-window window)) | 1249 | (select-window window)) |
| 1252 | (message "Thumbnail buffer not visible")))) | 1250 | (message "Thumbnail buffer not visible")))) |
| 1253 | 1251 | ||
| 1254 | (defvar tumme-thumbnail-mode-map (make-sparse-keymap) | 1252 | (defvar image-dired-thumbnail-mode-map (make-sparse-keymap) |
| 1255 | "Keymap for `tumme-thumbnail-mode'.") | 1253 | "Keymap for `image-dired-thumbnail-mode'.") |
| 1256 | 1254 | ||
| 1257 | (defvar tumme-thumbnail-mode-line-up-map (make-sparse-keymap) | 1255 | (defvar image-dired-thumbnail-mode-line-up-map (make-sparse-keymap) |
| 1258 | "Keymap for line-up commands in `tumme-thumbnail-mode'.") | 1256 | "Keymap for line-up commands in `image-dired-thumbnail-mode'.") |
| 1259 | 1257 | ||
| 1260 | (defvar tumme-thumbnail-mode-tag-map (make-sparse-keymap) | 1258 | (defvar image-dired-thumbnail-mode-tag-map (make-sparse-keymap) |
| 1261 | "Keymap for tag commands in `tumme-thumbnail-mode'.") | 1259 | "Keymap for tag commands in `image-dired-thumbnail-mode'.") |
| 1262 | 1260 | ||
| 1263 | (defun tumme-define-thumbnail-mode-keymap () | 1261 | (defun image-dired-define-thumbnail-mode-keymap () |
| 1264 | "Define keymap for `tumme-thumbnail-mode'." | 1262 | "Define keymap for `image-dired-thumbnail-mode'." |
| 1265 | 1263 | ||
| 1266 | ;; Keys | 1264 | ;; Keys |
| 1267 | (define-key tumme-thumbnail-mode-map [right] 'tumme-forward-image) | 1265 | (define-key image-dired-thumbnail-mode-map [right] 'image-dired-forward-image) |
| 1268 | (define-key tumme-thumbnail-mode-map [left] 'tumme-backward-image) | 1266 | (define-key image-dired-thumbnail-mode-map [left] 'image-dired-backward-image) |
| 1269 | (define-key tumme-thumbnail-mode-map [up] 'tumme-previous-line) | 1267 | (define-key image-dired-thumbnail-mode-map [up] 'image-dired-previous-line) |
| 1270 | (define-key tumme-thumbnail-mode-map [down] 'tumme-next-line) | 1268 | (define-key image-dired-thumbnail-mode-map [down] 'image-dired-next-line) |
| 1271 | (define-key tumme-thumbnail-mode-map "\C-f" 'tumme-forward-image) | 1269 | (define-key image-dired-thumbnail-mode-map "\C-f" 'image-dired-forward-image) |
| 1272 | (define-key tumme-thumbnail-mode-map "\C-b" 'tumme-backward-image) | 1270 | (define-key image-dired-thumbnail-mode-map "\C-b" 'image-dired-backward-image) |
| 1273 | (define-key tumme-thumbnail-mode-map "\C-p" 'tumme-previous-line) | 1271 | (define-key image-dired-thumbnail-mode-map "\C-p" 'image-dired-previous-line) |
| 1274 | (define-key tumme-thumbnail-mode-map "\C-n" 'tumme-next-line) | 1272 | (define-key image-dired-thumbnail-mode-map "\C-n" 'image-dired-next-line) |
| 1275 | 1273 | ||
| 1276 | (define-key tumme-thumbnail-mode-map "d" 'tumme-flag-thumb-original-file) | 1274 | (define-key image-dired-thumbnail-mode-map "d" 'image-dired-flag-thumb-original-file) |
| 1277 | (define-key tumme-thumbnail-mode-map [delete] | 1275 | (define-key image-dired-thumbnail-mode-map [delete] |
| 1278 | 'tumme-flag-thumb-original-file) | 1276 | 'image-dired-flag-thumb-original-file) |
| 1279 | (define-key tumme-thumbnail-mode-map "m" 'tumme-mark-thumb-original-file) | 1277 | (define-key image-dired-thumbnail-mode-map "m" 'image-dired-mark-thumb-original-file) |
| 1280 | (define-key tumme-thumbnail-mode-map "u" 'tumme-unmark-thumb-original-file) | 1278 | (define-key image-dired-thumbnail-mode-map "u" 'image-dired-unmark-thumb-original-file) |
| 1281 | (define-key tumme-thumbnail-mode-map "." 'tumme-track-original-file) | 1279 | (define-key image-dired-thumbnail-mode-map "." 'image-dired-track-original-file) |
| 1282 | (define-key tumme-thumbnail-mode-map [tab] 'tumme-jump-original-dired-buffer) | 1280 | (define-key image-dired-thumbnail-mode-map [tab] 'image-dired-jump-original-dired-buffer) |
| 1283 | 1281 | ||
| 1284 | ;; add line-up map | 1282 | ;; add line-up map |
| 1285 | (define-key tumme-thumbnail-mode-map "g" tumme-thumbnail-mode-line-up-map) | 1283 | (define-key image-dired-thumbnail-mode-map "g" image-dired-thumbnail-mode-line-up-map) |
| 1286 | 1284 | ||
| 1287 | ;; map it to "g" so that the user can press it more quickly | 1285 | ;; map it to "g" so that the user can press it more quickly |
| 1288 | (define-key tumme-thumbnail-mode-line-up-map "g" 'tumme-line-up-dynamic) | 1286 | (define-key image-dired-thumbnail-mode-line-up-map "g" 'image-dired-line-up-dynamic) |
| 1289 | ;; "f" for "fixed" number of thumbs per row | 1287 | ;; "f" for "fixed" number of thumbs per row |
| 1290 | (define-key tumme-thumbnail-mode-line-up-map "f" 'tumme-line-up) | 1288 | (define-key image-dired-thumbnail-mode-line-up-map "f" 'image-dired-line-up) |
| 1291 | ;; "i" for "interactive" | 1289 | ;; "i" for "interactive" |
| 1292 | (define-key tumme-thumbnail-mode-line-up-map "i" 'tumme-line-up-interactive) | 1290 | (define-key image-dired-thumbnail-mode-line-up-map "i" 'image-dired-line-up-interactive) |
| 1293 | 1291 | ||
| 1294 | ;; add tag map | 1292 | ;; add tag map |
| 1295 | (define-key tumme-thumbnail-mode-map "t" tumme-thumbnail-mode-tag-map) | 1293 | (define-key image-dired-thumbnail-mode-map "t" image-dired-thumbnail-mode-tag-map) |
| 1296 | 1294 | ||
| 1297 | ;; map it to "t" so that the user can press it more quickly | 1295 | ;; map it to "t" so that the user can press it more quickly |
| 1298 | (define-key tumme-thumbnail-mode-tag-map "t" 'tumme-tag-thumbnail) | 1296 | (define-key image-dired-thumbnail-mode-tag-map "t" 'image-dired-tag-thumbnail) |
| 1299 | ;; "r" for "remove" | 1297 | ;; "r" for "remove" |
| 1300 | (define-key tumme-thumbnail-mode-tag-map "r" 'tumme-tag-thumbnail-remove) | 1298 | (define-key image-dired-thumbnail-mode-tag-map "r" 'image-dired-tag-thumbnail-remove) |
| 1301 | 1299 | ||
| 1302 | (define-key tumme-thumbnail-mode-map "\C-m" | 1300 | (define-key image-dired-thumbnail-mode-map "\C-m" |
| 1303 | 'tumme-display-thumbnail-original-image) | 1301 | 'image-dired-display-thumbnail-original-image) |
| 1304 | (define-key tumme-thumbnail-mode-map [C-return] | 1302 | (define-key image-dired-thumbnail-mode-map [C-return] |
| 1305 | 'tumme-thumbnail-display-external) | 1303 | 'image-dired-thumbnail-display-external) |
| 1306 | 1304 | ||
| 1307 | (define-key tumme-thumbnail-mode-map "l" 'tumme-rotate-thumbnail-left) | 1305 | (define-key image-dired-thumbnail-mode-map "l" 'image-dired-rotate-thumbnail-left) |
| 1308 | (define-key tumme-thumbnail-mode-map "r" 'tumme-rotate-thumbnail-right) | 1306 | (define-key image-dired-thumbnail-mode-map "r" 'image-dired-rotate-thumbnail-right) |
| 1309 | 1307 | ||
| 1310 | (define-key tumme-thumbnail-mode-map "L" 'tumme-rotate-original-left) | 1308 | (define-key image-dired-thumbnail-mode-map "L" 'image-dired-rotate-original-left) |
| 1311 | (define-key tumme-thumbnail-mode-map "R" 'tumme-rotate-original-right) | 1309 | (define-key image-dired-thumbnail-mode-map "R" 'image-dired-rotate-original-right) |
| 1312 | 1310 | ||
| 1313 | (define-key tumme-thumbnail-mode-map "D" | 1311 | (define-key image-dired-thumbnail-mode-map "D" |
| 1314 | 'tumme-thumbnail-set-image-description) | 1312 | 'image-dired-thumbnail-set-image-description) |
| 1315 | 1313 | ||
| 1316 | (define-key tumme-thumbnail-mode-map "\C-d" 'tumme-delete-char) | 1314 | (define-key image-dired-thumbnail-mode-map "\C-d" 'image-dired-delete-char) |
| 1317 | (define-key tumme-thumbnail-mode-map " " | 1315 | (define-key image-dired-thumbnail-mode-map " " |
| 1318 | 'tumme-display-next-thumbnail-original) | 1316 | 'image-dired-display-next-thumbnail-original) |
| 1319 | (define-key tumme-thumbnail-mode-map | 1317 | (define-key image-dired-thumbnail-mode-map |
| 1320 | (kbd "DEL") 'tumme-display-previous-thumbnail-original) | 1318 | (kbd "DEL") 'image-dired-display-previous-thumbnail-original) |
| 1321 | (define-key tumme-thumbnail-mode-map "c" 'tumme-comment-thumbnail) | 1319 | (define-key image-dired-thumbnail-mode-map "c" 'image-dired-comment-thumbnail) |
| 1322 | (define-key tumme-thumbnail-mode-map "q" 'tumme-kill-buffer-and-window) | 1320 | (define-key image-dired-thumbnail-mode-map "q" 'image-dired-kill-buffer-and-window) |
| 1323 | 1321 | ||
| 1324 | ;; Mouse | 1322 | ;; Mouse |
| 1325 | (define-key tumme-thumbnail-mode-map [mouse-2] 'tumme-mouse-display-image) | 1323 | (define-key image-dired-thumbnail-mode-map [mouse-2] 'image-dired-mouse-display-image) |
| 1326 | (define-key tumme-thumbnail-mode-map [mouse-1] 'tumme-mouse-select-thumbnail) | 1324 | (define-key image-dired-thumbnail-mode-map [mouse-1] 'image-dired-mouse-select-thumbnail) |
| 1327 | 1325 | ||
| 1328 | ;; Seems I must first set C-down-mouse-1 to undefined, or else it | 1326 | ;; Seems I must first set C-down-mouse-1 to undefined, or else it |
| 1329 | ;; will trigger the buffer menu. If I try to instead bind | 1327 | ;; will trigger the buffer menu. If I try to instead bind |
| 1330 | ;; C-down-mouse-1 to `tumme-mouse-toggle-mark', I get a message | 1328 | ;; C-down-mouse-1 to `image-dired-mouse-toggle-mark', I get a message |
| 1331 | ;; about C-mouse-1 not being defined afterwards. Annoying, but I | 1329 | ;; about C-mouse-1 not being defined afterwards. Annoying, but I |
| 1332 | ;; probably do not completely understand mouse events. | 1330 | ;; probably do not completely understand mouse events. |
| 1333 | 1331 | ||
| 1334 | (define-key tumme-thumbnail-mode-map [C-down-mouse-1] 'undefined) | 1332 | (define-key image-dired-thumbnail-mode-map [C-down-mouse-1] 'undefined) |
| 1335 | (define-key tumme-thumbnail-mode-map [C-mouse-1] 'tumme-mouse-toggle-mark) | 1333 | (define-key image-dired-thumbnail-mode-map [C-mouse-1] 'image-dired-mouse-toggle-mark) |
| 1336 | 1334 | ||
| 1337 | ;; Menu | 1335 | ;; Menu |
| 1338 | (define-key tumme-thumbnail-mode-map [menu-bar tumme] | 1336 | (define-key image-dired-thumbnail-mode-map [menu-bar image-dired] |
| 1339 | (cons "Tumme" (make-sparse-keymap "Tumme"))) | 1337 | (cons "Image-Dired" (make-sparse-keymap "Image-Dired"))) |
| 1340 | 1338 | ||
| 1341 | (define-key tumme-thumbnail-mode-map | 1339 | (define-key image-dired-thumbnail-mode-map |
| 1342 | [menu-bar tumme tumme-kill-buffer-and-window] | 1340 | [menu-bar image-dired image-dired-kill-buffer-and-window] |
| 1343 | '("Quit" . tumme-kill-buffer-and-window)) | 1341 | '("Quit" . image-dired-kill-buffer-and-window)) |
| 1344 | 1342 | ||
| 1345 | (define-key tumme-thumbnail-mode-map | 1343 | (define-key image-dired-thumbnail-mode-map |
| 1346 | [menu-bar tumme tumme-delete-char] | 1344 | [menu-bar image-dired image-dired-delete-char] |
| 1347 | '("Delete thumbnail from buffer" . tumme-delete-char)) | 1345 | '("Delete thumbnail from buffer" . image-dired-delete-char)) |
| 1348 | 1346 | ||
| 1349 | (define-key tumme-thumbnail-mode-map | 1347 | (define-key image-dired-thumbnail-mode-map |
| 1350 | [menu-bar tumme tumme-tag-thumbnail-remove] | 1348 | [menu-bar image-dired image-dired-tag-thumbnail-remove] |
| 1351 | '("Remove tag from thumbnail" . tumme-tag-thumbnail-remove)) | 1349 | '("Remove tag from thumbnail" . image-dired-tag-thumbnail-remove)) |
| 1352 | 1350 | ||
| 1353 | (define-key tumme-thumbnail-mode-map | 1351 | (define-key image-dired-thumbnail-mode-map |
| 1354 | [menu-bar tumme tumme-tag-thumbnail] | 1352 | [menu-bar image-dired image-dired-tag-thumbnail] |
| 1355 | '("Tag thumbnail" . tumme-tag-thumbnail)) | 1353 | '("Tag thumbnail" . image-dired-tag-thumbnail)) |
| 1356 | 1354 | ||
| 1357 | (define-key tumme-thumbnail-mode-map | 1355 | (define-key image-dired-thumbnail-mode-map |
| 1358 | [menu-bar tumme tumme-comment-thumbnail] | 1356 | [menu-bar image-dired image-dired-comment-thumbnail] |
| 1359 | '("Comment thumbnail" . tumme-comment-thumbnail)) | 1357 | '("Comment thumbnail" . image-dired-comment-thumbnail)) |
| 1360 | 1358 | ||
| 1361 | (define-key tumme-thumbnail-mode-map | 1359 | (define-key image-dired-thumbnail-mode-map |
| 1362 | [menu-bar tumme tumme-refresh-thumb] | 1360 | [menu-bar image-dired image-dired-refresh-thumb] |
| 1363 | '("Refresh thumb" . tumme-refresh-thumb)) | 1361 | '("Refresh thumb" . image-dired-refresh-thumb)) |
| 1364 | (define-key tumme-thumbnail-mode-map | 1362 | (define-key image-dired-thumbnail-mode-map |
| 1365 | [menu-bar tumme tumme-line-up-dynamic] | 1363 | [menu-bar image-dired image-dired-line-up-dynamic] |
| 1366 | '("Dynamic line up" . tumme-line-up-dynamic)) | 1364 | '("Dynamic line up" . image-dired-line-up-dynamic)) |
| 1367 | (define-key tumme-thumbnail-mode-map | 1365 | (define-key image-dired-thumbnail-mode-map |
| 1368 | [menu-bar tumme tumme-line-up] | 1366 | [menu-bar image-dired image-dired-line-up] |
| 1369 | '("Line up thumbnails" . tumme-line-up)) | 1367 | '("Line up thumbnails" . image-dired-line-up)) |
| 1370 | 1368 | ||
| 1371 | (define-key tumme-thumbnail-mode-map | 1369 | (define-key image-dired-thumbnail-mode-map |
| 1372 | [menu-bar tumme tumme-rotate-thumbnail-left] | 1370 | [menu-bar image-dired image-dired-rotate-thumbnail-left] |
| 1373 | '("Rotate thumbnail left" . tumme-rotate-thumbnail-left)) | 1371 | '("Rotate thumbnail left" . image-dired-rotate-thumbnail-left)) |
| 1374 | (define-key tumme-thumbnail-mode-map | 1372 | (define-key image-dired-thumbnail-mode-map |
| 1375 | [menu-bar tumme tumme-rotate-thumbnail-right] | 1373 | [menu-bar image-dired image-dired-rotate-thumbnail-right] |
| 1376 | '("Rotate thumbnail right" . tumme-rotate-thumbnail-right)) | 1374 | '("Rotate thumbnail right" . image-dired-rotate-thumbnail-right)) |
| 1377 | 1375 | ||
| 1378 | (define-key tumme-thumbnail-mode-map | 1376 | (define-key image-dired-thumbnail-mode-map |
| 1379 | [menu-bar tumme tumme-rotate-original-left] | 1377 | [menu-bar image-dired image-dired-rotate-original-left] |
| 1380 | '("Rotate original left" . tumme-rotate-original-left)) | 1378 | '("Rotate original left" . image-dired-rotate-original-left)) |
| 1381 | (define-key tumme-thumbnail-mode-map | 1379 | (define-key image-dired-thumbnail-mode-map |
| 1382 | [menu-bar tumme tumme-rotate-original-right] | 1380 | [menu-bar image-dired image-dired-rotate-original-right] |
| 1383 | '("Rotate original right" . tumme-rotate-original-right)) | 1381 | '("Rotate original right" . image-dired-rotate-original-right)) |
| 1384 | 1382 | ||
| 1385 | (define-key tumme-thumbnail-mode-map | 1383 | (define-key image-dired-thumbnail-mode-map |
| 1386 | [menu-bar tumme tumme-toggle-movement-tracking] | 1384 | [menu-bar image-dired image-dired-toggle-movement-tracking] |
| 1387 | '("Toggle movement tracking on/off" . tumme-toggle-movement-tracking)) | 1385 | '("Toggle movement tracking on/off" . image-dired-toggle-movement-tracking)) |
| 1388 | 1386 | ||
| 1389 | (define-key tumme-thumbnail-mode-map | 1387 | (define-key image-dired-thumbnail-mode-map |
| 1390 | [menu-bar tumme tumme-jump-original-dired-buffer] | 1388 | [menu-bar image-dired image-dired-jump-original-dired-buffer] |
| 1391 | '("Jump to dired buffer" . tumme-jump-original-dired-buffer)) | 1389 | '("Jump to dired buffer" . image-dired-jump-original-dired-buffer)) |
| 1392 | (define-key tumme-thumbnail-mode-map | 1390 | (define-key image-dired-thumbnail-mode-map |
| 1393 | [menu-bar tumme tumme-track-original-file] | 1391 | [menu-bar image-dired image-dired-track-original-file] |
| 1394 | '("Track original" . tumme-track-original-file)) | 1392 | '("Track original" . image-dired-track-original-file)) |
| 1395 | 1393 | ||
| 1396 | (define-key tumme-thumbnail-mode-map | 1394 | (define-key image-dired-thumbnail-mode-map |
| 1397 | [menu-bar tumme tumme-flag-thumb-original-file] | 1395 | [menu-bar image-dired image-dired-flag-thumb-original-file] |
| 1398 | '("Flag original for deletion" . tumme-flag-thumb-original-file)) | 1396 | '("Flag original for deletion" . image-dired-flag-thumb-original-file)) |
| 1399 | (define-key tumme-thumbnail-mode-map | 1397 | (define-key image-dired-thumbnail-mode-map |
| 1400 | [menu-bar tumme tumme-unmark-thumb-original-file] | 1398 | [menu-bar image-dired image-dired-unmark-thumb-original-file] |
| 1401 | '("Unmark original" . tumme-unmark-thumb-original-file)) | 1399 | '("Unmark original" . image-dired-unmark-thumb-original-file)) |
| 1402 | (define-key tumme-thumbnail-mode-map | 1400 | (define-key image-dired-thumbnail-mode-map |
| 1403 | [menu-bar tumme tumme-mark-thumb-original-file] | 1401 | [menu-bar image-dired image-dired-mark-thumb-original-file] |
| 1404 | '("Mark original" . tumme-mark-thumb-original-file)) | 1402 | '("Mark original" . image-dired-mark-thumb-original-file)) |
| 1405 | 1403 | ||
| 1406 | (define-key tumme-thumbnail-mode-map | 1404 | (define-key image-dired-thumbnail-mode-map |
| 1407 | [menu-bar tumme tumme-thumbnail-display-external] | 1405 | [menu-bar image-dired image-dired-thumbnail-display-external] |
| 1408 | '("Display in external viewer" . tumme-thumbnail-display-external)) | 1406 | '("Display in external viewer" . image-dired-thumbnail-display-external)) |
| 1409 | (define-key tumme-thumbnail-mode-map | 1407 | (define-key image-dired-thumbnail-mode-map |
| 1410 | [menu-bar tumme tumme-display-thumbnail-original-image] | 1408 | [menu-bar image-dired image-dired-display-thumbnail-original-image] |
| 1411 | '("Display image" . tumme-display-thumbnail-original-image))) | 1409 | '("Display image" . image-dired-display-thumbnail-original-image))) |
| 1412 | 1410 | ||
| 1413 | (defvar tumme-display-image-mode-map (make-sparse-keymap) | 1411 | (defvar image-dired-display-image-mode-map (make-sparse-keymap) |
| 1414 | "Keymap for `tumme-display-image-mode'.") | 1412 | "Keymap for `image-dired-display-image-mode'.") |
| 1415 | 1413 | ||
| 1416 | (defun tumme-define-display-image-mode-keymap () | 1414 | (defun image-dired-define-display-image-mode-keymap () |
| 1417 | "Define keymap for `tumme-display-image-mode'." | 1415 | "Define keymap for `image-dired-display-image-mode'." |
| 1418 | 1416 | ||
| 1419 | ;; Keys | 1417 | ;; Keys |
| 1420 | (define-key tumme-display-image-mode-map "q" 'tumme-kill-buffer-and-window) | 1418 | (define-key image-dired-display-image-mode-map "q" 'image-dired-kill-buffer-and-window) |
| 1421 | 1419 | ||
| 1422 | (define-key tumme-display-image-mode-map "f" | 1420 | (define-key image-dired-display-image-mode-map "f" |
| 1423 | 'tumme-display-current-image-full) | 1421 | 'image-dired-display-current-image-full) |
| 1424 | 1422 | ||
| 1425 | (define-key tumme-display-image-mode-map "s" | 1423 | (define-key image-dired-display-image-mode-map "s" |
| 1426 | 'tumme-display-current-image-sized) | 1424 | 'image-dired-display-current-image-sized) |
| 1427 | 1425 | ||
| 1428 | ;; Menu | 1426 | ;; Menu |
| 1429 | (define-key tumme-display-image-mode-map [menu-bar tumme] | 1427 | (define-key image-dired-display-image-mode-map [menu-bar image-dired] |
| 1430 | (cons "Tumme" (make-sparse-keymap "Tumme"))) | 1428 | (cons "Image-Dired" (make-sparse-keymap "Image-Dired"))) |
| 1431 | 1429 | ||
| 1432 | (define-key tumme-display-image-mode-map | 1430 | (define-key image-dired-display-image-mode-map |
| 1433 | [menu-bar tumme tumme-kill-buffer-and-window] | 1431 | [menu-bar image-dired image-dired-kill-buffer-and-window] |
| 1434 | '("Quit" . tumme-kill-buffer-and-window)) | 1432 | '("Quit" . image-dired-kill-buffer-and-window)) |
| 1435 | 1433 | ||
| 1436 | (define-key tumme-display-image-mode-map | 1434 | (define-key image-dired-display-image-mode-map |
| 1437 | [menu-bar tumme tumme-display-current-image-sized] | 1435 | [menu-bar image-dired image-dired-display-current-image-sized] |
| 1438 | '("Display original, sized to fit" . tumme-display-current-image-sized)) | 1436 | '("Display original, sized to fit" . image-dired-display-current-image-sized)) |
| 1439 | 1437 | ||
| 1440 | (define-key tumme-display-image-mode-map | 1438 | (define-key image-dired-display-image-mode-map |
| 1441 | [menu-bar tumme tumme-display-current-image-full] | 1439 | [menu-bar image-dired image-dired-display-current-image-full] |
| 1442 | '("Display original, full size" . tumme-display-current-image-full)) | 1440 | '("Display original, full size" . image-dired-display-current-image-full)) |
| 1443 | 1441 | ||
| 1444 | ) | 1442 | ) |
| 1445 | 1443 | ||
| 1446 | (defun tumme-display-current-image-full () | 1444 | (defun image-dired-display-current-image-full () |
| 1447 | "Display current image in full size." | 1445 | "Display current image in full size." |
| 1448 | (interactive) | 1446 | (interactive) |
| 1449 | (let ((file (tumme-original-file-name))) | 1447 | (let ((file (image-dired-original-file-name))) |
| 1450 | (if file | 1448 | (if file |
| 1451 | (progn | 1449 | (progn |
| 1452 | (tumme-display-image file t) | 1450 | (image-dired-display-image file t) |
| 1453 | (message "Full size image displayed")) | 1451 | (message "Full size image displayed")) |
| 1454 | (error "No original file name at point")))) | 1452 | (error "No original file name at point")))) |
| 1455 | 1453 | ||
| 1456 | (defun tumme-display-current-image-sized () | 1454 | (defun image-dired-display-current-image-sized () |
| 1457 | "Display current image in sized to fit window dimensions." | 1455 | "Display current image in sized to fit window dimensions." |
| 1458 | (interactive) | 1456 | (interactive) |
| 1459 | (let ((file (tumme-original-file-name))) | 1457 | (let ((file (image-dired-original-file-name))) |
| 1460 | (if file | 1458 | (if file |
| 1461 | (progn | 1459 | (progn |
| 1462 | (tumme-display-image file) | 1460 | (image-dired-display-image file) |
| 1463 | (message "Full size image displayed")) | 1461 | (message "Full size image displayed")) |
| 1464 | (error "No original file name at point")))) | 1462 | (error "No original file name at point")))) |
| 1465 | 1463 | ||
| 1466 | (define-derived-mode tumme-thumbnail-mode | 1464 | (define-derived-mode image-dired-thumbnail-mode |
| 1467 | fundamental-mode "tumme-thumbnail" | 1465 | fundamental-mode "image-dired-thumbnail" |
| 1468 | "Browse and manipulate thumbnail images using dired. | 1466 | "Browse and manipulate thumbnail images using dired. |
| 1469 | Use `tumme-dired' and `tumme-setup-dired-keybindings' to get a | 1467 | Use `image-dired-dired' and `image-dired-setup-dired-keybindings' to get a |
| 1470 | nice setup to start with." | 1468 | nice setup to start with." |
| 1471 | (tumme-define-thumbnail-mode-keymap) | 1469 | (image-dired-define-thumbnail-mode-keymap) |
| 1472 | (message "tumme-thumbnail-mode enabled")) | 1470 | (message "image-dired-thumbnail-mode enabled")) |
| 1473 | 1471 | ||
| 1474 | (define-derived-mode tumme-display-image-mode | 1472 | (define-derived-mode image-dired-display-image-mode |
| 1475 | fundamental-mode "tumme-image-display" | 1473 | fundamental-mode "image-dired-image-display" |
| 1476 | "Mode for displaying and manipulating original image. | 1474 | "Mode for displaying and manipulating original image. |
| 1477 | Resized or in full-size." | 1475 | Resized or in full-size." |
| 1478 | (tumme-define-display-image-mode-keymap) | 1476 | (image-dired-define-display-image-mode-keymap) |
| 1479 | (message "tumme-display-image-mode enabled")) | 1477 | (message "image-dired-display-image-mode enabled")) |
| 1480 | 1478 | ||
| 1481 | ;;;###autoload | 1479 | ;;;###autoload |
| 1482 | (defun tumme-setup-dired-keybindings () | 1480 | (defun image-dired-setup-dired-keybindings () |
| 1483 | "Setup easy-to-use keybindings for the commands to be used in dired mode. | 1481 | "Setup easy-to-use keybindings for the commands to be used in dired mode. |
| 1484 | Note that n, p and <down> and <up> will be hijacked and bound to | 1482 | Note that n, p and <down> and <up> will be hijacked and bound to |
| 1485 | `tumme-dired-x-line'." | 1483 | `image-dired-dired-x-line'." |
| 1486 | (interactive) | 1484 | (interactive) |
| 1487 | 1485 | ||
| 1488 | ;; Hijack previous and next line movement. Let C-p and C-b be | 1486 | ;; Hijack previous and next line movement. Let C-p and C-b be |
| 1489 | ;; though... | 1487 | ;; though... |
| 1490 | 1488 | ||
| 1491 | (define-key dired-mode-map "p" 'tumme-dired-previous-line) | 1489 | (define-key dired-mode-map "p" 'image-dired-dired-previous-line) |
| 1492 | (define-key dired-mode-map "n" 'tumme-dired-next-line) | 1490 | (define-key dired-mode-map "n" 'image-dired-dired-next-line) |
| 1493 | (define-key dired-mode-map [up] 'tumme-dired-previous-line) | 1491 | (define-key dired-mode-map [up] 'image-dired-dired-previous-line) |
| 1494 | (define-key dired-mode-map [down] 'tumme-dired-next-line) | 1492 | (define-key dired-mode-map [down] 'image-dired-dired-next-line) |
| 1495 | 1493 | ||
| 1496 | (define-key dired-mode-map (kbd "C-S-n") 'tumme-next-line-and-display) | 1494 | (define-key dired-mode-map (kbd "C-S-n") 'image-dired-next-line-and-display) |
| 1497 | (define-key dired-mode-map (kbd "C-S-p") 'tumme-previous-line-and-display) | 1495 | (define-key dired-mode-map (kbd "C-S-p") 'image-dired-previous-line-and-display) |
| 1498 | (define-key dired-mode-map (kbd "C-S-m") 'tumme-mark-and-display-next) | 1496 | (define-key dired-mode-map (kbd "C-S-m") 'image-dired-mark-and-display-next) |
| 1499 | 1497 | ||
| 1500 | (define-key dired-mode-map "\C-td" 'tumme-display-thumbs) | 1498 | (define-key dired-mode-map "\C-td" 'image-dired-display-thumbs) |
| 1501 | (define-key dired-mode-map "\C-tt" 'tumme-tag-files) | 1499 | (define-key dired-mode-map "\C-tt" 'image-dired-tag-files) |
| 1502 | (define-key dired-mode-map "\C-tr" 'tumme-delete-tag) | 1500 | (define-key dired-mode-map "\C-tr" 'image-dired-delete-tag) |
| 1503 | (define-key dired-mode-map [tab] 'tumme-jump-thumbnail-buffer) | 1501 | (define-key dired-mode-map [tab] 'image-dired-jump-thumbnail-buffer) |
| 1504 | (define-key dired-mode-map "\C-ti" 'tumme-dired-display-image) | 1502 | (define-key dired-mode-map "\C-ti" 'image-dired-dired-display-image) |
| 1505 | (define-key dired-mode-map "\C-tx" 'tumme-dired-display-external) | 1503 | (define-key dired-mode-map "\C-tx" 'image-dired-dired-display-external) |
| 1506 | (define-key dired-mode-map "\C-ta" 'tumme-display-thumbs-append) | 1504 | (define-key dired-mode-map "\C-ta" 'image-dired-display-thumbs-append) |
| 1507 | (define-key dired-mode-map "\C-t." 'tumme-display-thumb) | 1505 | (define-key dired-mode-map "\C-t." 'image-dired-display-thumb) |
| 1508 | (define-key dired-mode-map "\C-tc" 'tumme-dired-comment-files) | 1506 | (define-key dired-mode-map "\C-tc" 'image-dired-dired-comment-files) |
| 1509 | (define-key dired-mode-map "\C-tf" 'tumme-mark-tagged-files) | 1507 | (define-key dired-mode-map "\C-tf" 'image-dired-mark-tagged-files) |
| 1510 | 1508 | ||
| 1511 | ;; Menu for dired | 1509 | ;; Menu for dired |
| 1512 | (define-key dired-mode-map [menu-bar tumme] | 1510 | (define-key dired-mode-map [menu-bar image-dired] |
| 1513 | (cons "Tumme" (make-sparse-keymap "Tumme"))) | 1511 | (cons "Image-Dired" (make-sparse-keymap "Image-Dired"))) |
| 1514 | 1512 | ||
| 1515 | (define-key dired-mode-map [menu-bar tumme tumme-copy-with-exif-file-name] | 1513 | (define-key dired-mode-map [menu-bar image-dired image-dired-copy-with-exif-file-name] |
| 1516 | '("Copy with EXIF file name" . tumme-copy-with-exif-file-name)) | 1514 | '("Copy with EXIF file name" . image-dired-copy-with-exif-file-name)) |
| 1517 | 1515 | ||
| 1518 | (define-key dired-mode-map [menu-bar tumme tumme-dired-comment-files] | 1516 | (define-key dired-mode-map [menu-bar image-dired image-dired-dired-comment-files] |
| 1519 | '("Comment files" . tumme-dired-comment-files)) | 1517 | '("Comment files" . image-dired-dired-comment-files)) |
| 1520 | 1518 | ||
| 1521 | (define-key dired-mode-map [menu-bar tumme tumme-mark-tagged-files] | 1519 | (define-key dired-mode-map [menu-bar image-dired image-dired-mark-tagged-files] |
| 1522 | '("Mark tagged files" . tumme-mark-tagged-files)) | 1520 | '("Mark tagged files" . image-dired-mark-tagged-files)) |
| 1523 | 1521 | ||
| 1524 | (define-key dired-mode-map [menu-bar tumme tumme-delete-tag] | 1522 | (define-key dired-mode-map [menu-bar image-dired image-dired-delete-tag] |
| 1525 | '("Remove tag from files" . tumme-delete-tag)) | 1523 | '("Remove tag from files" . image-dired-delete-tag)) |
| 1526 | 1524 | ||
| 1527 | (define-key dired-mode-map [menu-bar tumme tumme-tag-files] | 1525 | (define-key dired-mode-map [menu-bar image-dired image-dired-tag-files] |
| 1528 | '("Tag files" . tumme-tag-files)) | 1526 | '("Tag files" . image-dired-tag-files)) |
| 1529 | 1527 | ||
| 1530 | (define-key dired-mode-map [menu-bar tumme tumme-jump-thumbnail-buffer] | 1528 | (define-key dired-mode-map [menu-bar image-dired image-dired-jump-thumbnail-buffer] |
| 1531 | '("Jump to thumbnail buffer" . tumme-jump-thumbnail-buffer)) | 1529 | '("Jump to thumbnail buffer" . image-dired-jump-thumbnail-buffer)) |
| 1532 | 1530 | ||
| 1533 | (define-key dired-mode-map [menu-bar tumme tumme-toggle-movement-tracking] | 1531 | (define-key dired-mode-map [menu-bar image-dired image-dired-toggle-movement-tracking] |
| 1534 | '("Toggle movement tracking" . tumme-toggle-movement-tracking)) | 1532 | '("Toggle movement tracking" . image-dired-toggle-movement-tracking)) |
| 1535 | 1533 | ||
| 1536 | (define-key dired-mode-map | 1534 | (define-key dired-mode-map |
| 1537 | [menu-bar tumme tumme-toggle-append-browsing] | 1535 | [menu-bar image-dired image-dired-toggle-append-browsing] |
| 1538 | '("Toggle append browsing" . tumme-toggle-append-browsing)) | 1536 | '("Toggle append browsing" . image-dired-toggle-append-browsing)) |
| 1539 | 1537 | ||
| 1540 | (define-key dired-mode-map | 1538 | (define-key dired-mode-map |
| 1541 | [menu-bar tumme tumme-toggle-disp-props] | 1539 | [menu-bar image-dired image-dired-toggle-disp-props] |
| 1542 | '("Toggle display properties" . tumme-toggle-dired-display-properties)) | 1540 | '("Toggle display properties" . image-dired-toggle-dired-display-properties)) |
| 1543 | 1541 | ||
| 1544 | (define-key dired-mode-map | 1542 | (define-key dired-mode-map |
| 1545 | [menu-bar tumme tumme-dired-display-external] | 1543 | [menu-bar image-dired image-dired-dired-display-external] |
| 1546 | '("Display in external viewer" . tumme-dired-display-external)) | 1544 | '("Display in external viewer" . image-dired-dired-display-external)) |
| 1547 | (define-key dired-mode-map | 1545 | (define-key dired-mode-map |
| 1548 | [menu-bar tumme tumme-dired-display-image] | 1546 | [menu-bar image-dired image-dired-dired-display-image] |
| 1549 | '("Display image" . tumme-dired-display-image)) | 1547 | '("Display image" . image-dired-dired-display-image)) |
| 1550 | (define-key dired-mode-map | 1548 | (define-key dired-mode-map |
| 1551 | [menu-bar tumme tumme-display-thumb] | 1549 | [menu-bar image-dired image-dired-display-thumb] |
| 1552 | '("Display this thumbnail" . tumme-display-thumb)) | 1550 | '("Display this thumbnail" . image-dired-display-thumb)) |
| 1553 | (define-key dired-mode-map | 1551 | (define-key dired-mode-map |
| 1554 | [menu-bar tumme tumme-display-thumbs-append] | 1552 | [menu-bar image-dired image-dired-display-thumbs-append] |
| 1555 | '("Display thumbnails append" . tumme-display-thumbs-append)) | 1553 | '("Display thumbnails append" . image-dired-display-thumbs-append)) |
| 1556 | (define-key dired-mode-map | 1554 | (define-key dired-mode-map |
| 1557 | [menu-bar tumme tumme-display-thumbs] | 1555 | [menu-bar image-dired image-dired-display-thumbs] |
| 1558 | '("Display thumbnails" . tumme-display-thumbs)) | 1556 | '("Display thumbnails" . image-dired-display-thumbs)) |
| 1559 | 1557 | ||
| 1560 | (define-key dired-mode-map | 1558 | (define-key dired-mode-map |
| 1561 | [menu-bar tumme tumme-create-thumbs] | 1559 | [menu-bar image-dired image-dired-create-thumbs] |
| 1562 | '("Create thumbnails for marked files" . tumme-create-thumbs)) | 1560 | '("Create thumbnails for marked files" . image-dired-create-thumbs)) |
| 1563 | 1561 | ||
| 1564 | (define-key dired-mode-map | 1562 | (define-key dired-mode-map |
| 1565 | [menu-bar tumme tumme-mark-and-display-next] | 1563 | [menu-bar image-dired image-dired-mark-and-display-next] |
| 1566 | '("Mark and display next" . tumme-mark-and-display-next)) | 1564 | '("Mark and display next" . image-dired-mark-and-display-next)) |
| 1567 | (define-key dired-mode-map | 1565 | (define-key dired-mode-map |
| 1568 | [menu-bar tumme tumme-previous-line-and-display] | 1566 | [menu-bar image-dired image-dired-previous-line-and-display] |
| 1569 | '("Display thumb for previous file" . tumme-previous-line-and-display)) | 1567 | '("Display thumb for previous file" . image-dired-previous-line-and-display)) |
| 1570 | (define-key dired-mode-map | 1568 | (define-key dired-mode-map |
| 1571 | [menu-bar tumme tumme-next-line-and-display] | 1569 | [menu-bar image-dired image-dired-next-line-and-display] |
| 1572 | '("Display thumb for next file" . tumme-next-line-and-display))) | 1570 | '("Display thumb for next file" . image-dired-next-line-and-display))) |
| 1573 | 1571 | ||
| 1574 | (defun tumme-create-thumbs (&optional arg) | 1572 | (defun image-dired-create-thumbs (&optional arg) |
| 1575 | "Create thumbnail images for all marked files in dired. | 1573 | "Create thumbnail images for all marked files in dired. |
| 1576 | With prefix argument ARG, create thumbnails even if they already exist | 1574 | With prefix argument ARG, create thumbnails even if they already exist |
| 1577 | \(i.e. use this to refresh your thumbnails)." | 1575 | \(i.e. use this to refresh your thumbnails)." |
| @@ -1580,7 +1578,7 @@ With prefix argument ARG, create thumbnails even if they already exist | |||
| 1580 | (setq files (dired-get-marked-files)) | 1578 | (setq files (dired-get-marked-files)) |
| 1581 | (mapcar | 1579 | (mapcar |
| 1582 | (lambda (curr-file) | 1580 | (lambda (curr-file) |
| 1583 | (setq thumb-name (tumme-thumb-name curr-file)) | 1581 | (setq thumb-name (image-dired-thumb-name curr-file)) |
| 1584 | ;; If the user overrides the exist check, we must clear the | 1582 | ;; If the user overrides the exist check, we must clear the |
| 1585 | ;; image cache so that if the user wants to display the | 1583 | ;; image cache so that if the user wants to display the |
| 1586 | ;; thumnail, it is not fetched from cache. | 1584 | ;; thumnail, it is not fetched from cache. |
| @@ -1588,49 +1586,49 @@ With prefix argument ARG, create thumbnails even if they already exist | |||
| 1588 | (clear-image-cache)) | 1586 | (clear-image-cache)) |
| 1589 | (if (or (not (file-exists-p thumb-name)) | 1587 | (if (or (not (file-exists-p thumb-name)) |
| 1590 | arg) | 1588 | arg) |
| 1591 | (if (not (= 0 (tumme-create-thumb curr-file | 1589 | (if (not (= 0 (image-dired-create-thumb curr-file |
| 1592 | (tumme-thumb-name curr-file)))) | 1590 | (image-dired-thumb-name curr-file)))) |
| 1593 | (error "Thumb could not be created")))) | 1591 | (error "Thumb could not be created")))) |
| 1594 | files))) | 1592 | files))) |
| 1595 | 1593 | ||
| 1596 | (defvar tumme-slideshow-timer nil | 1594 | (defvar image-dired-slideshow-timer nil |
| 1597 | "Slideshow timer.") | 1595 | "Slideshow timer.") |
| 1598 | 1596 | ||
| 1599 | (defvar tumme-slideshow-count 0 | 1597 | (defvar image-dired-slideshow-count 0 |
| 1600 | "Keeping track on number of images in slideshow.") | 1598 | "Keeping track on number of images in slideshow.") |
| 1601 | 1599 | ||
| 1602 | (defvar tumme-slideshow-times 0 | 1600 | (defvar image-dired-slideshow-times 0 |
| 1603 | "Number of pictures to display in slideshow.") | 1601 | "Number of pictures to display in slideshow.") |
| 1604 | 1602 | ||
| 1605 | (defun tumme-slideshow-step () | 1603 | (defun image-dired-slideshow-step () |
| 1606 | "Step to next file, if `tumme-slideshow-times' has not been reached." | 1604 | "Step to next file, if `image-dired-slideshow-times' has not been reached." |
| 1607 | (if (< tumme-slideshow-count tumme-slideshow-times) | 1605 | (if (< image-dired-slideshow-count image-dired-slideshow-times) |
| 1608 | (progn | 1606 | (progn |
| 1609 | (message "%s" (1+ tumme-slideshow-count)) | 1607 | (message "%s" (1+ image-dired-slideshow-count)) |
| 1610 | (setq tumme-slideshow-count (1+ tumme-slideshow-count)) | 1608 | (setq image-dired-slideshow-count (1+ image-dired-slideshow-count)) |
| 1611 | (tumme-next-line-and-display)) | 1609 | (image-dired-next-line-and-display)) |
| 1612 | (tumme-slideshow-stop))) | 1610 | (image-dired-slideshow-stop))) |
| 1613 | 1611 | ||
| 1614 | (defun tumme-slideshow-start () | 1612 | (defun image-dired-slideshow-start () |
| 1615 | "Start slideshow. | 1613 | "Start slideshow. |
| 1616 | Ask user for number of images to show and the delay in between." | 1614 | Ask user for number of images to show and the delay in between." |
| 1617 | (interactive) | 1615 | (interactive) |
| 1618 | (setq tumme-slideshow-count 0) | 1616 | (setq image-dired-slideshow-count 0) |
| 1619 | (setq tumme-slideshow-times (string-to-number (read-string "How many: "))) | 1617 | (setq image-dired-slideshow-times (string-to-number (read-string "How many: "))) |
| 1620 | (let ((repeat (string-to-number | 1618 | (let ((repeat (string-to-number |
| 1621 | (read-string | 1619 | (read-string |
| 1622 | "Delay, in seconds. Decimals are accepted : " "1")))) | 1620 | "Delay, in seconds. Decimals are accepted : " "1")))) |
| 1623 | (setq tumme-slideshow-timer | 1621 | (setq image-dired-slideshow-timer |
| 1624 | (run-with-timer | 1622 | (run-with-timer |
| 1625 | 0 repeat | 1623 | 0 repeat |
| 1626 | 'tumme-slideshow-step)))) | 1624 | 'image-dired-slideshow-step)))) |
| 1627 | 1625 | ||
| 1628 | (defun tumme-slideshow-stop () | 1626 | (defun image-dired-slideshow-stop () |
| 1629 | "Cancel slideshow." | 1627 | "Cancel slideshow." |
| 1630 | (interactive) | 1628 | (interactive) |
| 1631 | (cancel-timer tumme-slideshow-timer)) | 1629 | (cancel-timer image-dired-slideshow-timer)) |
| 1632 | 1630 | ||
| 1633 | (defun tumme-delete-char () | 1631 | (defun image-dired-delete-char () |
| 1634 | "Remove current thumbnail from thumbnail buffer and line up." | 1632 | "Remove current thumbnail from thumbnail buffer and line up." |
| 1635 | (interactive) | 1633 | (interactive) |
| 1636 | (let ((inhibit-read-only t)) | 1634 | (let ((inhibit-read-only t)) |
| @@ -1639,133 +1637,133 @@ Ask user for number of images to show and the delay in between." | |||
| 1639 | (delete-char 1)))) | 1637 | (delete-char 1)))) |
| 1640 | 1638 | ||
| 1641 | ;;;###autoload | 1639 | ;;;###autoload |
| 1642 | (defun tumme-display-thumbs-append () | 1640 | (defun image-dired-display-thumbs-append () |
| 1643 | "Append thumbnails to `tumme-thumbnail-buffer'." | 1641 | "Append thumbnails to `image-dired-thumbnail-buffer'." |
| 1644 | (interactive) | 1642 | (interactive) |
| 1645 | (tumme-display-thumbs nil t t)) | 1643 | (image-dired-display-thumbs nil t t)) |
| 1646 | 1644 | ||
| 1647 | ;;;###autoload | 1645 | ;;;###autoload |
| 1648 | (defun tumme-display-thumb () | 1646 | (defun image-dired-display-thumb () |
| 1649 | "Shorthand for `tumme-display-thumbs' with prefix argument." | 1647 | "Shorthand for `image-dired-display-thumbs' with prefix argument." |
| 1650 | (interactive) | 1648 | (interactive) |
| 1651 | (tumme-display-thumbs t nil t)) | 1649 | (image-dired-display-thumbs t nil t)) |
| 1652 | 1650 | ||
| 1653 | (defun tumme-line-up () | 1651 | (defun image-dired-line-up () |
| 1654 | "Line up thumbnails according to `tumme-thumbs-per-row'. | 1652 | "Line up thumbnails according to `image-dired-thumbs-per-row'. |
| 1655 | See also `tumme-line-up-dynamic'." | 1653 | See also `image-dired-line-up-dynamic'." |
| 1656 | (interactive) | 1654 | (interactive) |
| 1657 | (let ((inhibit-read-only t)) | 1655 | (let ((inhibit-read-only t)) |
| 1658 | (goto-char (point-min)) | 1656 | (goto-char (point-min)) |
| 1659 | (while (and (not (tumme-image-at-point-p)) | 1657 | (while (and (not (image-dired-image-at-point-p)) |
| 1660 | (not (eobp))) | 1658 | (not (eobp))) |
| 1661 | (delete-char 1)) | 1659 | (delete-char 1)) |
| 1662 | (while (not (eobp)) | 1660 | (while (not (eobp)) |
| 1663 | (forward-char) | 1661 | (forward-char) |
| 1664 | (while (and (not (tumme-image-at-point-p)) | 1662 | (while (and (not (image-dired-image-at-point-p)) |
| 1665 | (not (eobp))) | 1663 | (not (eobp))) |
| 1666 | (delete-char 1))) | 1664 | (delete-char 1))) |
| 1667 | (goto-char (point-min)) | 1665 | (goto-char (point-min)) |
| 1668 | (let ((count 0)) | 1666 | (let ((count 0)) |
| 1669 | (while (not (eobp)) | 1667 | (while (not (eobp)) |
| 1670 | (forward-char) | 1668 | (forward-char) |
| 1671 | (if (= tumme-thumbs-per-row 1) | 1669 | (if (= image-dired-thumbs-per-row 1) |
| 1672 | (insert "\n") | 1670 | (insert "\n") |
| 1673 | (insert " ") | 1671 | (insert " ") |
| 1674 | (setq count (1+ count)) | 1672 | (setq count (1+ count)) |
| 1675 | (when (and (= count (- tumme-thumbs-per-row 1)) | 1673 | (when (and (= count (- image-dired-thumbs-per-row 1)) |
| 1676 | (not (eobp))) | 1674 | (not (eobp))) |
| 1677 | (forward-char) | 1675 | (forward-char) |
| 1678 | (insert "\n") | 1676 | (insert "\n") |
| 1679 | (setq count 0))))) | 1677 | (setq count 0))))) |
| 1680 | (goto-char (point-min)))) | 1678 | (goto-char (point-min)))) |
| 1681 | 1679 | ||
| 1682 | (defun tumme-line-up-dynamic () | 1680 | (defun image-dired-line-up-dynamic () |
| 1683 | "Line up thumbnails images dynamically. | 1681 | "Line up thumbnails images dynamically. |
| 1684 | Calculate how many thumbnails fit." | 1682 | Calculate how many thumbnails fit." |
| 1685 | (interactive) | 1683 | (interactive) |
| 1686 | (let* ((char-width (frame-char-width)) | 1684 | (let* ((char-width (frame-char-width)) |
| 1687 | (width (tumme-window-width-pixels (tumme-thumbnail-window))) | 1685 | (width (image-dired-window-width-pixels (image-dired-thumbnail-window))) |
| 1688 | (tumme-thumbs-per-row | 1686 | (image-dired-thumbs-per-row |
| 1689 | (/ width | 1687 | (/ width |
| 1690 | (+ (* 2 tumme-thumb-relief) | 1688 | (+ (* 2 image-dired-thumb-relief) |
| 1691 | (* 2 tumme-thumb-margin) | 1689 | (* 2 image-dired-thumb-margin) |
| 1692 | tumme-thumb-width char-width)))) | 1690 | image-dired-thumb-width char-width)))) |
| 1693 | (tumme-line-up))) | 1691 | (image-dired-line-up))) |
| 1694 | 1692 | ||
| 1695 | (defun tumme-line-up-interactive () | 1693 | (defun image-dired-line-up-interactive () |
| 1696 | "Line up thumbnails interactively. | 1694 | "Line up thumbnails interactively. |
| 1697 | Ask user how many thumbnails should be displayed per row." | 1695 | Ask user how many thumbnails should be displayed per row." |
| 1698 | (interactive) | 1696 | (interactive) |
| 1699 | (let ((tumme-thumbs-per-row | 1697 | (let ((image-dired-thumbs-per-row |
| 1700 | (string-to-number (read-string "How many thumbs per row: ")))) | 1698 | (string-to-number (read-string "How many thumbs per row: ")))) |
| 1701 | (if (not (> tumme-thumbs-per-row 0)) | 1699 | (if (not (> image-dired-thumbs-per-row 0)) |
| 1702 | (message "Number must be greater than 0") | 1700 | (message "Number must be greater than 0") |
| 1703 | (tumme-line-up)))) | 1701 | (image-dired-line-up)))) |
| 1704 | 1702 | ||
| 1705 | (defun tumme-thumbnail-display-external () | 1703 | (defun image-dired-thumbnail-display-external () |
| 1706 | "Display original image for thumbnail at point using external viewer." | 1704 | "Display original image for thumbnail at point using external viewer." |
| 1707 | (interactive) | 1705 | (interactive) |
| 1708 | (let ((file (tumme-original-file-name))) | 1706 | (let ((file (image-dired-original-file-name))) |
| 1709 | (if (not (tumme-image-at-point-p)) | 1707 | (if (not (image-dired-image-at-point-p)) |
| 1710 | (message "No thumbnail at point") | 1708 | (message "No thumbnail at point") |
| 1711 | (if (not file) | 1709 | (if (not file) |
| 1712 | (message "No original file name found") | 1710 | (message "No original file name found") |
| 1713 | (call-process shell-file-name nil nil nil shell-command-switch | 1711 | (call-process shell-file-name nil nil nil shell-command-switch |
| 1714 | (format "%s \"%s\"" tumme-external-viewer file)))))) | 1712 | (format "%s \"%s\"" image-dired-external-viewer file)))))) |
| 1715 | 1713 | ||
| 1716 | ;;;###autoload | 1714 | ;;;###autoload |
| 1717 | (defun tumme-dired-display-external () | 1715 | (defun image-dired-dired-display-external () |
| 1718 | "Display file at point using an external viewer." | 1716 | "Display file at point using an external viewer." |
| 1719 | (interactive) | 1717 | (interactive) |
| 1720 | (let ((file (dired-get-filename))) | 1718 | (let ((file (dired-get-filename))) |
| 1721 | (call-process shell-file-name nil nil nil shell-command-switch | 1719 | (call-process shell-file-name nil nil nil shell-command-switch |
| 1722 | (format "%s \"%s\"" tumme-external-viewer file)))) | 1720 | (format "%s \"%s\"" image-dired-external-viewer file)))) |
| 1723 | 1721 | ||
| 1724 | (defun tumme-window-width-pixels (window) | 1722 | (defun image-dired-window-width-pixels (window) |
| 1725 | "Calculate WINDOW width in pixels." | 1723 | "Calculate WINDOW width in pixels." |
| 1726 | (* (window-width window) (frame-char-width))) | 1724 | (* (window-width window) (frame-char-width))) |
| 1727 | 1725 | ||
| 1728 | (defun tumme-window-height-pixels (window) | 1726 | (defun image-dired-window-height-pixels (window) |
| 1729 | "Calculate WINDOW height in pixels." | 1727 | "Calculate WINDOW height in pixels." |
| 1730 | ;; Note: The mode-line consumes one line | 1728 | ;; Note: The mode-line consumes one line |
| 1731 | (* (- (window-height window) 1) (frame-char-height))) | 1729 | (* (- (window-height window) 1) (frame-char-height))) |
| 1732 | 1730 | ||
| 1733 | (defun tumme-display-window () | 1731 | (defun image-dired-display-window () |
| 1734 | "Return window where `tumme-display-image-buffer' is visible." | 1732 | "Return window where `image-dired-display-image-buffer' is visible." |
| 1735 | (get-window-with-predicate | 1733 | (get-window-with-predicate |
| 1736 | (lambda (window) | 1734 | (lambda (window) |
| 1737 | (equal (buffer-name (window-buffer window)) tumme-display-image-buffer)) | 1735 | (equal (buffer-name (window-buffer window)) image-dired-display-image-buffer)) |
| 1738 | nil t)) | 1736 | nil t)) |
| 1739 | 1737 | ||
| 1740 | (defun tumme-thumbnail-window () | 1738 | (defun image-dired-thumbnail-window () |
| 1741 | "Return window where `tumme-thumbnail-buffer' is visible." | 1739 | "Return window where `image-dired-thumbnail-buffer' is visible." |
| 1742 | (get-window-with-predicate | 1740 | (get-window-with-predicate |
| 1743 | (lambda (window) | 1741 | (lambda (window) |
| 1744 | (equal (buffer-name (window-buffer window)) tumme-thumbnail-buffer)) | 1742 | (equal (buffer-name (window-buffer window)) image-dired-thumbnail-buffer)) |
| 1745 | nil t)) | 1743 | nil t)) |
| 1746 | 1744 | ||
| 1747 | (defun tumme-associated-dired-buffer-window () | 1745 | (defun image-dired-associated-dired-buffer-window () |
| 1748 | "Return window where associated dired buffer is visible." | 1746 | "Return window where associated dired buffer is visible." |
| 1749 | (let (buf) | 1747 | (let (buf) |
| 1750 | (if (tumme-image-at-point-p) | 1748 | (if (image-dired-image-at-point-p) |
| 1751 | (progn | 1749 | (progn |
| 1752 | (setq buf (tumme-associated-dired-buffer)) | 1750 | (setq buf (image-dired-associated-dired-buffer)) |
| 1753 | (get-window-with-predicate | 1751 | (get-window-with-predicate |
| 1754 | (lambda (window) | 1752 | (lambda (window) |
| 1755 | (equal (window-buffer window) buf)))) | 1753 | (equal (window-buffer window) buf)))) |
| 1756 | (error "No thumbnail image at point")))) | 1754 | (error "No thumbnail image at point")))) |
| 1757 | 1755 | ||
| 1758 | (defun tumme-display-window-width () | 1756 | (defun image-dired-display-window-width () |
| 1759 | "Return width, in pixels, of tumme's image display window." | 1757 | "Return width, in pixels, of image-dired's image display window." |
| 1760 | (- (tumme-window-width-pixels (tumme-display-window)) | 1758 | (- (image-dired-window-width-pixels (image-dired-display-window)) |
| 1761 | tumme-display-window-width-correction)) | 1759 | image-dired-display-window-width-correction)) |
| 1762 | 1760 | ||
| 1763 | (defun tumme-display-window-height () | 1761 | (defun image-dired-display-window-height () |
| 1764 | "Return height, in pixels, of tumme's image display window." | 1762 | "Return height, in pixels, of image-dired's image display window." |
| 1765 | (- (tumme-window-height-pixels (tumme-display-window)) | 1763 | (- (image-dired-window-height-pixels (image-dired-display-window)) |
| 1766 | tumme-display-window-height-correction)) | 1764 | image-dired-display-window-height-correction)) |
| 1767 | 1765 | ||
| 1768 | (defun tumme-display-image (file &optional original-size) | 1766 | (defun image-dired-display-image (file &optional original-size) |
| 1769 | "Display image FILE in image buffer. | 1767 | "Display image FILE in image buffer. |
| 1770 | Use this when you want to display the image, semi sized, in a new | 1768 | Use this when you want to display the image, semi sized, in a new |
| 1771 | window. The image is sized to fit the display window (using a | 1769 | window. The image is sized to fit the display window (using a |
| @@ -1775,18 +1773,18 @@ should feel snappy enough. | |||
| 1775 | 1773 | ||
| 1776 | If optional argument ORIGINAL-SIZE is non-nil, display image in its | 1774 | If optional argument ORIGINAL-SIZE is non-nil, display image in its |
| 1777 | original size." | 1775 | original size." |
| 1778 | (let ((new-file (expand-file-name tumme-temp-image-file)) | 1776 | (let ((new-file (expand-file-name image-dired-temp-image-file)) |
| 1779 | width height command ret) | 1777 | width height command ret) |
| 1780 | (setq file (expand-file-name file)) | 1778 | (setq file (expand-file-name file)) |
| 1781 | (if (not original-size) | 1779 | (if (not original-size) |
| 1782 | (progn | 1780 | (progn |
| 1783 | (setq width (tumme-display-window-width)) | 1781 | (setq width (image-dired-display-window-width)) |
| 1784 | (setq height (tumme-display-window-height)) | 1782 | (setq height (image-dired-display-window-height)) |
| 1785 | (setq command | 1783 | (setq command |
| 1786 | (format-spec | 1784 | (format-spec |
| 1787 | tumme-cmd-create-temp-image-options | 1785 | image-dired-cmd-create-temp-image-options |
| 1788 | (list | 1786 | (list |
| 1789 | (cons ?p tumme-cmd-create-temp-image-program) | 1787 | (cons ?p image-dired-cmd-create-temp-image-program) |
| 1790 | (cons ?w width) | 1788 | (cons ?w width) |
| 1791 | (cons ?h height) | 1789 | (cons ?h height) |
| 1792 | (cons ?f file) | 1790 | (cons ?f file) |
| @@ -1796,55 +1794,55 @@ original size." | |||
| 1796 | (if (not (= 0 ret)) | 1794 | (if (not (= 0 ret)) |
| 1797 | (error "Could not resize image"))) | 1795 | (error "Could not resize image"))) |
| 1798 | (copy-file file new-file t)) | 1796 | (copy-file file new-file t)) |
| 1799 | (with-current-buffer (tumme-create-display-image-buffer) | 1797 | (with-current-buffer (image-dired-create-display-image-buffer) |
| 1800 | (let ((inhibit-read-only t)) | 1798 | (let ((inhibit-read-only t)) |
| 1801 | (erase-buffer) | 1799 | (erase-buffer) |
| 1802 | (clear-image-cache) | 1800 | (clear-image-cache) |
| 1803 | (tumme-insert-image tumme-temp-image-file 'jpeg 0 0) | 1801 | (image-dired-insert-image image-dired-temp-image-file 'jpeg 0 0) |
| 1804 | (goto-char (point-min)) | 1802 | (goto-char (point-min)) |
| 1805 | (tumme-update-property 'original-file-name file))))) | 1803 | (image-dired-update-property 'original-file-name file))))) |
| 1806 | 1804 | ||
| 1807 | (defun tumme-display-thumbnail-original-image (&optional arg) | 1805 | (defun image-dired-display-thumbnail-original-image (&optional arg) |
| 1808 | "Display current thumbnail's original image in display buffer. | 1806 | "Display current thumbnail's original image in display buffer. |
| 1809 | See documentation for `tumme-display-image' for more information. | 1807 | See documentation for `image-dired-display-image' for more information. |
| 1810 | With prefix argument ARG, display image in its original size." | 1808 | With prefix argument ARG, display image in its original size." |
| 1811 | (interactive "P") | 1809 | (interactive "P") |
| 1812 | (let ((file (tumme-original-file-name))) | 1810 | (let ((file (image-dired-original-file-name))) |
| 1813 | (if (not (string-equal major-mode "tumme-thumbnail-mode")) | 1811 | (if (not (string-equal major-mode "image-dired-thumbnail-mode")) |
| 1814 | (message "Not in tumme-thumbnail-mode") | 1812 | (message "Not in image-dired-thumbnail-mode") |
| 1815 | (if (not (tumme-image-at-point-p)) | 1813 | (if (not (image-dired-image-at-point-p)) |
| 1816 | (message "No thumbnail at point") | 1814 | (message "No thumbnail at point") |
| 1817 | (if (not file) | 1815 | (if (not file) |
| 1818 | (message "No original file name found") | 1816 | (message "No original file name found") |
| 1819 | (tumme-create-display-image-buffer) | 1817 | (image-dired-create-display-image-buffer) |
| 1820 | (display-buffer tumme-display-image-buffer) | 1818 | (display-buffer image-dired-display-image-buffer) |
| 1821 | (tumme-display-image file arg)))))) | 1819 | (image-dired-display-image file arg)))))) |
| 1822 | 1820 | ||
| 1823 | 1821 | ||
| 1824 | ;;;###autoload | 1822 | ;;;###autoload |
| 1825 | (defun tumme-dired-display-image (&optional arg) | 1823 | (defun image-dired-dired-display-image (&optional arg) |
| 1826 | "Display current image file. | 1824 | "Display current image file. |
| 1827 | See documentation for `tumme-display-image' for more information. | 1825 | See documentation for `image-dired-display-image' for more information. |
| 1828 | With prefix argument ARG, display image in its original size." | 1826 | With prefix argument ARG, display image in its original size." |
| 1829 | (interactive "P") | 1827 | (interactive "P") |
| 1830 | (tumme-create-display-image-buffer) | 1828 | (image-dired-create-display-image-buffer) |
| 1831 | (display-buffer tumme-display-image-buffer) | 1829 | (display-buffer image-dired-display-image-buffer) |
| 1832 | (tumme-display-image (dired-get-filename) arg)) | 1830 | (image-dired-display-image (dired-get-filename) arg)) |
| 1833 | 1831 | ||
| 1834 | (defun tumme-image-at-point-p () | 1832 | (defun image-dired-image-at-point-p () |
| 1835 | "Return true if there is a tumme thumbnail at point." | 1833 | "Return true if there is a image-dired thumbnail at point." |
| 1836 | (get-text-property (point) 'tumme-thumbnail)) | 1834 | (get-text-property (point) 'image-dired-thumbnail)) |
| 1837 | 1835 | ||
| 1838 | (defun tumme-rotate-thumbnail (degrees) | 1836 | (defun image-dired-rotate-thumbnail (degrees) |
| 1839 | "Rotate thumbnail DEGREES degrees." | 1837 | "Rotate thumbnail DEGREES degrees." |
| 1840 | (if (not (tumme-image-at-point-p)) | 1838 | (if (not (image-dired-image-at-point-p)) |
| 1841 | (message "No thumbnail at point") | 1839 | (message "No thumbnail at point") |
| 1842 | (let ((file (tumme-thumb-name (tumme-original-file-name))) | 1840 | (let ((file (image-dired-thumb-name (image-dired-original-file-name))) |
| 1843 | command) | 1841 | command) |
| 1844 | (setq command (format-spec | 1842 | (setq command (format-spec |
| 1845 | tumme-cmd-rotate-thumbnail-options | 1843 | image-dired-cmd-rotate-thumbnail-options |
| 1846 | (list | 1844 | (list |
| 1847 | (cons ?p tumme-cmd-rotate-thumbnail-program) | 1845 | (cons ?p image-dired-cmd-rotate-thumbnail-program) |
| 1848 | (cons ?d degrees) | 1846 | (cons ?d degrees) |
| 1849 | (cons ?t (expand-file-name file))))) | 1847 | (cons ?t (expand-file-name file))))) |
| 1850 | (call-process shell-file-name nil nil nil shell-command-switch command) | 1848 | (call-process shell-file-name nil nil nil shell-command-switch command) |
| @@ -1852,76 +1850,76 @@ With prefix argument ARG, display image in its original size." | |||
| 1852 | ;; the current file but I do not know how to do that. Yet... | 1850 | ;; the current file but I do not know how to do that. Yet... |
| 1853 | (clear-image-cache)))) | 1851 | (clear-image-cache)))) |
| 1854 | 1852 | ||
| 1855 | (defun tumme-rotate-thumbnail-left () | 1853 | (defun image-dired-rotate-thumbnail-left () |
| 1856 | "Rotate thumbnail left (counter clockwise) 90 degrees. | 1854 | "Rotate thumbnail left (counter clockwise) 90 degrees. |
| 1857 | The result of the rotation is displayed in the image display area | 1855 | The result of the rotation is displayed in the image display area |
| 1858 | and a confirmation is needed before the original image files is | 1856 | and a confirmation is needed before the original image files is |
| 1859 | overwritten. This confirmation can be turned off using | 1857 | overwritten. This confirmation can be turned off using |
| 1860 | `tumme-rotate-original-ask-before-overwrite'." | 1858 | `image-dired-rotate-original-ask-before-overwrite'." |
| 1861 | (interactive) | 1859 | (interactive) |
| 1862 | (tumme-rotate-thumbnail "270")) | 1860 | (image-dired-rotate-thumbnail "270")) |
| 1863 | 1861 | ||
| 1864 | (defun tumme-rotate-thumbnail-right () | 1862 | (defun image-dired-rotate-thumbnail-right () |
| 1865 | "Rotate thumbnail counter right (clockwise) 90 degrees. | 1863 | "Rotate thumbnail counter right (clockwise) 90 degrees. |
| 1866 | The result of the rotation is displayed in the image display area | 1864 | The result of the rotation is displayed in the image display area |
| 1867 | and a confirmation is needed before the original image files is | 1865 | and a confirmation is needed before the original image files is |
| 1868 | overwritten. This confirmation can be turned off using | 1866 | overwritten. This confirmation can be turned off using |
| 1869 | `tumme-rotate-original-ask-before-overwrite'." | 1867 | `image-dired-rotate-original-ask-before-overwrite'." |
| 1870 | (interactive) | 1868 | (interactive) |
| 1871 | (tumme-rotate-thumbnail "90")) | 1869 | (image-dired-rotate-thumbnail "90")) |
| 1872 | 1870 | ||
| 1873 | (defun tumme-refresh-thumb () | 1871 | (defun image-dired-refresh-thumb () |
| 1874 | "Force creation of new image for current thumbnail." | 1872 | "Force creation of new image for current thumbnail." |
| 1875 | (interactive) | 1873 | (interactive) |
| 1876 | (let ((file (tumme-original-file-name))) | 1874 | (let ((file (image-dired-original-file-name))) |
| 1877 | (clear-image-cache) | 1875 | (clear-image-cache) |
| 1878 | (tumme-create-thumb file (tumme-thumb-name file)))) | 1876 | (image-dired-create-thumb file (image-dired-thumb-name file)))) |
| 1879 | 1877 | ||
| 1880 | (defun tumme-rotate-original (degrees) | 1878 | (defun image-dired-rotate-original (degrees) |
| 1881 | "Rotate original image DEGREES degrees." | 1879 | "Rotate original image DEGREES degrees." |
| 1882 | (if (not (tumme-image-at-point-p)) | 1880 | (if (not (image-dired-image-at-point-p)) |
| 1883 | (message "No image at point") | 1881 | (message "No image at point") |
| 1884 | (let ((file (tumme-original-file-name)) | 1882 | (let ((file (image-dired-original-file-name)) |
| 1885 | command temp-file) | 1883 | command temp-file) |
| 1886 | (if (not (string-match "\.[jJ][pP[eE]?[gG]$" file)) | 1884 | (if (not (string-match "\.[jJ][pP[eE]?[gG]$" file)) |
| 1887 | (error "Only JPEG images can be rotated!")) | 1885 | (error "Only JPEG images can be rotated!")) |
| 1888 | (setq command (format-spec | 1886 | (setq command (format-spec |
| 1889 | tumme-cmd-rotate-original-options | 1887 | image-dired-cmd-rotate-original-options |
| 1890 | (list | 1888 | (list |
| 1891 | (cons ?p tumme-cmd-rotate-original-program) | 1889 | (cons ?p image-dired-cmd-rotate-original-program) |
| 1892 | (cons ?d degrees) | 1890 | (cons ?d degrees) |
| 1893 | (cons ?o (expand-file-name file)) | 1891 | (cons ?o (expand-file-name file)) |
| 1894 | (cons ?t tumme-temp-rotate-image-file)))) | 1892 | (cons ?t image-dired-temp-rotate-image-file)))) |
| 1895 | (if (not (= 0 (call-process shell-file-name nil nil nil | 1893 | (if (not (= 0 (call-process shell-file-name nil nil nil |
| 1896 | shell-command-switch command))) | 1894 | shell-command-switch command))) |
| 1897 | (error "Could not rotate image") | 1895 | (error "Could not rotate image") |
| 1898 | (tumme-display-image tumme-temp-rotate-image-file) | 1896 | (image-dired-display-image image-dired-temp-rotate-image-file) |
| 1899 | (if (or (and tumme-rotate-original-ask-before-overwrite | 1897 | (if (or (and image-dired-rotate-original-ask-before-overwrite |
| 1900 | (y-or-n-p | 1898 | (y-or-n-p |
| 1901 | "Rotate to temp file OK. Overwrite original image? ")) | 1899 | "Rotate to temp file OK. Overwrite original image? ")) |
| 1902 | (not tumme-rotate-original-ask-before-overwrite)) | 1900 | (not image-dired-rotate-original-ask-before-overwrite)) |
| 1903 | (progn | 1901 | (progn |
| 1904 | (copy-file tumme-temp-rotate-image-file file t) | 1902 | (copy-file image-dired-temp-rotate-image-file file t) |
| 1905 | (tumme-refresh-thumb)) | 1903 | (image-dired-refresh-thumb)) |
| 1906 | (tumme-display-image file)))))) | 1904 | (image-dired-display-image file)))))) |
| 1907 | 1905 | ||
| 1908 | (defun tumme-rotate-original-left () | 1906 | (defun image-dired-rotate-original-left () |
| 1909 | "Rotate original image left (counter clockwise) 90 degrees." | 1907 | "Rotate original image left (counter clockwise) 90 degrees." |
| 1910 | (interactive) | 1908 | (interactive) |
| 1911 | (tumme-rotate-original "270")) | 1909 | (image-dired-rotate-original "270")) |
| 1912 | 1910 | ||
| 1913 | (defun tumme-rotate-original-right () | 1911 | (defun image-dired-rotate-original-right () |
| 1914 | "Rotate original image right (clockwise) 90 degrees." | 1912 | "Rotate original image right (clockwise) 90 degrees." |
| 1915 | (interactive) | 1913 | (interactive) |
| 1916 | (tumme-rotate-original "90")) | 1914 | (image-dired-rotate-original "90")) |
| 1917 | 1915 | ||
| 1918 | (defun tumme-get-exif-file-name (file) | 1916 | (defun image-dired-get-exif-file-name (file) |
| 1919 | "Use the image's EXIF information to return a unique file name. | 1917 | "Use the image's EXIF information to return a unique file name. |
| 1920 | The file name should be unique as long as you do not take more than | 1918 | The file name should be unique as long as you do not take more than |
| 1921 | one picture per second. The original file name is suffixed at the end | 1919 | one picture per second. The original file name is suffixed at the end |
| 1922 | for traceability. The format of the returned file name is | 1920 | for traceability. The format of the returned file name is |
| 1923 | YYYY_MM_DD_HH_MM_DD_ORIG_FILE_NAME.jpg. Used from | 1921 | YYYY_MM_DD_HH_MM_DD_ORIG_FILE_NAME.jpg. Used from |
| 1924 | `tumme-copy-with-exif-file-name'." | 1922 | `image-dired-copy-with-exif-file-name'." |
| 1925 | (let (data no-exif-data-found) | 1923 | (let (data no-exif-data-found) |
| 1926 | (if (not (string-match "\.[Jj][Pp][Ee]?[Gg]$" (expand-file-name file))) | 1924 | (if (not (string-match "\.[Jj][Pp][Ee]?[Gg]$" (expand-file-name file))) |
| 1927 | (progn | 1925 | (progn |
| @@ -1930,7 +1928,7 @@ YYYY_MM_DD_HH_MM_DD_ORIG_FILE_NAME.jpg. Used from | |||
| 1930 | (format-time-string | 1928 | (format-time-string |
| 1931 | "%Y:%m:%d %H:%M:%S" | 1929 | "%Y:%m:%d %H:%M:%S" |
| 1932 | (nth 5 (file-attributes (expand-file-name file)))))) | 1930 | (nth 5 (file-attributes (expand-file-name file)))))) |
| 1933 | (setq data (tumme-get-exif-data (expand-file-name file) | 1931 | (setq data (image-dired-get-exif-data (expand-file-name file) |
| 1934 | "DateTimeOriginal"))) | 1932 | "DateTimeOriginal"))) |
| 1935 | (while (string-match "[ :]" data) | 1933 | (while (string-match "[ :]" data) |
| 1936 | (setq data (replace-match "_" nil nil data))) | 1934 | (setq data (replace-match "_" nil nil data))) |
| @@ -1940,42 +1938,42 @@ YYYY_MM_DD_HH_MM_DD_ORIG_FILE_NAME.jpg. Used from | |||
| 1940 | "_") | 1938 | "_") |
| 1941 | (file-name-nondirectory file)))) | 1939 | (file-name-nondirectory file)))) |
| 1942 | 1940 | ||
| 1943 | (defun tumme-thumbnail-set-image-description () | 1941 | (defun image-dired-thumbnail-set-image-description () |
| 1944 | "Set the ImageDescription EXIF tag for the original image. | 1942 | "Set the ImageDescription EXIF tag for the original image. |
| 1945 | If the image already has a value for this tag, it is used as the | 1943 | If the image already has a value for this tag, it is used as the |
| 1946 | default value at the prompt." | 1944 | default value at the prompt." |
| 1947 | (interactive) | 1945 | (interactive) |
| 1948 | (if (not (tumme-image-at-point-p)) | 1946 | (if (not (image-dired-image-at-point-p)) |
| 1949 | (message "No thumbnail at point") | 1947 | (message "No thumbnail at point") |
| 1950 | (let* ((file (tumme-original-file-name)) | 1948 | (let* ((file (image-dired-original-file-name)) |
| 1951 | (old-value (tumme-get-exif-data file "ImageDescription"))) | 1949 | (old-value (image-dired-get-exif-data file "ImageDescription"))) |
| 1952 | (if (eq 0 | 1950 | (if (eq 0 |
| 1953 | (tumme-set-exif-data file "ImageDescription" | 1951 | (image-dired-set-exif-data file "ImageDescription" |
| 1954 | (read-string "Value of ImageDescription: " | 1952 | (read-string "Value of ImageDescription: " |
| 1955 | old-value))) | 1953 | old-value))) |
| 1956 | (message "Successfully wrote ImageDescription tag.") | 1954 | (message "Successfully wrote ImageDescription tag.") |
| 1957 | (error "Could not write ImageDescription tag"))))) | 1955 | (error "Could not write ImageDescription tag"))))) |
| 1958 | 1956 | ||
| 1959 | (defun tumme-set-exif-data (file tag-name tag-value) | 1957 | (defun image-dired-set-exif-data (file tag-name tag-value) |
| 1960 | "In FILE, set EXIF tag TAG-NAME to value TAG-VALUE." | 1958 | "In FILE, set EXIF tag TAG-NAME to value TAG-VALUE." |
| 1961 | (let (command) | 1959 | (let (command) |
| 1962 | (setq command (format-spec | 1960 | (setq command (format-spec |
| 1963 | tumme-cmd-write-exif-data-options | 1961 | image-dired-cmd-write-exif-data-options |
| 1964 | (list | 1962 | (list |
| 1965 | (cons ?p tumme-cmd-write-exif-data-program) | 1963 | (cons ?p image-dired-cmd-write-exif-data-program) |
| 1966 | (cons ?f (expand-file-name file)) | 1964 | (cons ?f (expand-file-name file)) |
| 1967 | (cons ?t tag-name) | 1965 | (cons ?t tag-name) |
| 1968 | (cons ?v tag-value)))) | 1966 | (cons ?v tag-value)))) |
| 1969 | (call-process shell-file-name nil nil nil shell-command-switch command))) | 1967 | (call-process shell-file-name nil nil nil shell-command-switch command))) |
| 1970 | 1968 | ||
| 1971 | (defun tumme-get-exif-data (file tag-name) | 1969 | (defun image-dired-get-exif-data (file tag-name) |
| 1972 | "From FILE, return EXIF tag TAG-NAME." | 1970 | "From FILE, return EXIF tag TAG-NAME." |
| 1973 | (let ((buf (get-buffer-create "*tumme-get-exif-data*")) | 1971 | (let ((buf (get-buffer-create "*image-dired-get-exif-data*")) |
| 1974 | command tag-value) | 1972 | command tag-value) |
| 1975 | (setq command (format-spec | 1973 | (setq command (format-spec |
| 1976 | tumme-cmd-read-exif-data-options | 1974 | image-dired-cmd-read-exif-data-options |
| 1977 | (list | 1975 | (list |
| 1978 | (cons ?p tumme-cmd-read-exif-data-program) | 1976 | (cons ?p image-dired-cmd-read-exif-data-program) |
| 1979 | (cons ?f file) | 1977 | (cons ?f file) |
| 1980 | (cons ?t tag-name)))) | 1978 | (cons ?t tag-name)))) |
| 1981 | (with-current-buffer buf | 1979 | (with-current-buffer buf |
| @@ -1991,17 +1989,17 @@ default value at the prompt." | |||
| 1991 | (setq tag-value (buffer-substring (point-min) (point-max))))) | 1989 | (setq tag-value (buffer-substring (point-min) (point-max))))) |
| 1992 | tag-value)) | 1990 | tag-value)) |
| 1993 | 1991 | ||
| 1994 | (defun tumme-copy-with-exif-file-name () | 1992 | (defun image-dired-copy-with-exif-file-name () |
| 1995 | "Copy file with unique name to main image directory. | 1993 | "Copy file with unique name to main image directory. |
| 1996 | Copy current or all marked files in dired to a new file in your | 1994 | Copy current or all marked files in dired to a new file in your |
| 1997 | main image directory, using a file name generated by | 1995 | main image directory, using a file name generated by |
| 1998 | `tumme-get-exif-file-name'. A typical usage for this if when | 1996 | `image-dired-get-exif-file-name'. A typical usage for this if when |
| 1999 | copying images from a digital camera into the image directory. | 1997 | copying images from a digital camera into the image directory. |
| 2000 | 1998 | ||
| 2001 | Typically, you would open up the folder with the incoming | 1999 | Typically, you would open up the folder with the incoming |
| 2002 | digital images, mark the files to be copied, and execute this | 2000 | digital images, mark the files to be copied, and execute this |
| 2003 | function. The result is a couple of new files in | 2001 | function. The result is a couple of new files in |
| 2004 | `tumme-main-image-directory' called | 2002 | `image-dired-main-image-directory' called |
| 2005 | 2005_05_08_12_52_00_dscn0319.jpg, | 2003 | 2005_05_08_12_52_00_dscn0319.jpg, |
| 2006 | 2005_05_08_14_27_45_dscn0320.jpg etc." | 2004 | 2005_05_08_14_27_45_dscn0320.jpg etc." |
| 2007 | (interactive) | 2005 | (interactive) |
| @@ -2012,32 +2010,32 @@ function. The result is a couple of new files in | |||
| 2012 | (setq new-name | 2010 | (setq new-name |
| 2013 | (format "%s/%s" | 2011 | (format "%s/%s" |
| 2014 | (file-name-as-directory | 2012 | (file-name-as-directory |
| 2015 | (expand-file-name tumme-main-image-directory)) | 2013 | (expand-file-name image-dired-main-image-directory)) |
| 2016 | (tumme-get-exif-file-name curr-file))) | 2014 | (image-dired-get-exif-file-name curr-file))) |
| 2017 | (message "Copying %s to %s" curr-file new-name) | 2015 | (message "Copying %s to %s" curr-file new-name) |
| 2018 | (copy-file curr-file new-name)) | 2016 | (copy-file curr-file new-name)) |
| 2019 | files))) | 2017 | files))) |
| 2020 | 2018 | ||
| 2021 | (defun tumme-display-next-thumbnail-original () | 2019 | (defun image-dired-display-next-thumbnail-original () |
| 2022 | "In thubnail buffer, move to next thumbnail and display the image." | 2020 | "In thubnail buffer, move to next thumbnail and display the image." |
| 2023 | (interactive) | 2021 | (interactive) |
| 2024 | (tumme-forward-image) | 2022 | (image-dired-forward-image) |
| 2025 | (tumme-display-thumbnail-original-image)) | 2023 | (image-dired-display-thumbnail-original-image)) |
| 2026 | 2024 | ||
| 2027 | (defun tumme-display-previous-thumbnail-original () | 2025 | (defun image-dired-display-previous-thumbnail-original () |
| 2028 | "Move to previous thumbnail and display image." | 2026 | "Move to previous thumbnail and display image." |
| 2029 | (interactive) | 2027 | (interactive) |
| 2030 | (tumme-backward-image) | 2028 | (image-dired-backward-image) |
| 2031 | (tumme-display-thumbnail-original-image)) | 2029 | (image-dired-display-thumbnail-original-image)) |
| 2032 | 2030 | ||
| 2033 | (defun tumme-write-comments (file-comments) | 2031 | (defun image-dired-write-comments (file-comments) |
| 2034 | "Write file comments to database. | 2032 | "Write file comments to database. |
| 2035 | Write file comments to one or more files. FILE-COMMENTS is an alist on | 2033 | Write file comments to one or more files. FILE-COMMENTS is an alist on |
| 2036 | the following form: | 2034 | the following form: |
| 2037 | ((FILE . COMMENT) ... )" | 2035 | ((FILE . COMMENT) ... )" |
| 2038 | (let (end comment-beg-pos comment-end-pos file comment) | 2036 | (let (end comment-beg-pos comment-end-pos file comment) |
| 2039 | (with-temp-file tumme-db-file | 2037 | (with-temp-file image-dired-db-file |
| 2040 | (insert-file-contents tumme-db-file) | 2038 | (insert-file-contents image-dired-db-file) |
| 2041 | (dolist (elt file-comments) | 2039 | (dolist (elt file-comments) |
| 2042 | (setq file (car elt) | 2040 | (setq file (car elt) |
| 2043 | comment (cdr elt)) | 2041 | comment (cdr elt)) |
| @@ -2065,7 +2063,7 @@ the following form: | |||
| 2065 | (goto-char (point-max)) | 2063 | (goto-char (point-max)) |
| 2066 | (insert (format "\n%s;comment:%s" file comment))))))) | 2064 | (insert (format "\n%s;comment:%s" file comment))))))) |
| 2067 | 2065 | ||
| 2068 | (defun tumme-update-property (prop value) | 2066 | (defun image-dired-update-property (prop value) |
| 2069 | "Update text property PROP with value VALUE at point." | 2067 | "Update text property PROP with value VALUE at point." |
| 2070 | (let ((inhibit-read-only t)) | 2068 | (let ((inhibit-read-only t)) |
| 2071 | (put-text-property | 2069 | (put-text-property |
| @@ -2074,40 +2072,40 @@ the following form: | |||
| 2074 | value))) | 2072 | value))) |
| 2075 | 2073 | ||
| 2076 | ;;;###autoload | 2074 | ;;;###autoload |
| 2077 | (defun tumme-dired-comment-files () | 2075 | (defun image-dired-dired-comment-files () |
| 2078 | "Add comment to current or marked files in dired." | 2076 | "Add comment to current or marked files in dired." |
| 2079 | (interactive) | 2077 | (interactive) |
| 2080 | (let ((comment (tumme-read-comment))) | 2078 | (let ((comment (image-dired-read-comment))) |
| 2081 | (tumme-write-comments | 2079 | (image-dired-write-comments |
| 2082 | (mapcar | 2080 | (mapcar |
| 2083 | (lambda (curr-file) | 2081 | (lambda (curr-file) |
| 2084 | (cons curr-file comment)) | 2082 | (cons curr-file comment)) |
| 2085 | (dired-get-marked-files))))) | 2083 | (dired-get-marked-files))))) |
| 2086 | 2084 | ||
| 2087 | (defun tumme-comment-thumbnail () | 2085 | (defun image-dired-comment-thumbnail () |
| 2088 | "Add comment to current thumbnail in thumbnail buffer." | 2086 | "Add comment to current thumbnail in thumbnail buffer." |
| 2089 | (interactive) | 2087 | (interactive) |
| 2090 | (let* ((file (tumme-original-file-name)) | 2088 | (let* ((file (image-dired-original-file-name)) |
| 2091 | (comment (tumme-read-comment file))) | 2089 | (comment (image-dired-read-comment file))) |
| 2092 | (tumme-write-comments (list (cons file comment))) | 2090 | (image-dired-write-comments (list (cons file comment))) |
| 2093 | (tumme-update-property 'comment comment)) | 2091 | (image-dired-update-property 'comment comment)) |
| 2094 | (tumme-display-thumb-properties)) | 2092 | (image-dired-display-thumb-properties)) |
| 2095 | 2093 | ||
| 2096 | (defun tumme-read-comment (&optional file) | 2094 | (defun image-dired-read-comment (&optional file) |
| 2097 | "Read comment for an image. | 2095 | "Read comment for an image. |
| 2098 | Read comment for an image, optionally using old comment from FILE | 2096 | Read comment for an image, optionally using old comment from FILE |
| 2099 | as initial value." | 2097 | as initial value." |
| 2100 | (let ((comment | 2098 | (let ((comment |
| 2101 | (read-string | 2099 | (read-string |
| 2102 | "Comment: " | 2100 | "Comment: " |
| 2103 | (if file (tumme-get-comment file))))) | 2101 | (if file (image-dired-get-comment file))))) |
| 2104 | comment)) | 2102 | comment)) |
| 2105 | 2103 | ||
| 2106 | (defun tumme-get-comment (file) | 2104 | (defun image-dired-get-comment (file) |
| 2107 | "Get comment for file FILE." | 2105 | "Get comment for file FILE." |
| 2108 | (save-excursion | 2106 | (save-excursion |
| 2109 | (let (end buf comment-beg-pos comment-end-pos comment) | 2107 | (let (end buf comment-beg-pos comment-end-pos comment) |
| 2110 | (setq buf (find-file tumme-db-file)) | 2108 | (setq buf (find-file image-dired-db-file)) |
| 2111 | (goto-char (point-min)) | 2109 | (goto-char (point-min)) |
| 2112 | (when (search-forward-regexp | 2110 | (when (search-forward-regexp |
| 2113 | (format "^%s" file) nil t) | 2111 | (format "^%s" file) nil t) |
| @@ -2125,10 +2123,10 @@ as initial value." | |||
| 2125 | comment))) | 2123 | comment))) |
| 2126 | 2124 | ||
| 2127 | ;;;###autoload | 2125 | ;;;###autoload |
| 2128 | (defun tumme-mark-tagged-files () | 2126 | (defun image-dired-mark-tagged-files () |
| 2129 | "Use regexp to mark files with matching tag. | 2127 | "Use regexp to mark files with matching tag. |
| 2130 | A `tag' is a keyword, a piece of meta data, associated with an | 2128 | A `tag' is a keyword, a piece of meta data, associated with an |
| 2131 | image file and stored in tumme's database file. This command | 2129 | image file and stored in image-dired's database file. This command |
| 2132 | lets you input a regexp and this will be matched against all tags | 2130 | lets you input a regexp and this will be matched against all tags |
| 2133 | on all image files in the database file. The files that have a | 2131 | on all image files in the database file. The files that have a |
| 2134 | matching tags will be marked in the dired buffer." | 2132 | matching tags will be marked in the dired buffer." |
| @@ -2137,7 +2135,7 @@ matching tags will be marked in the dired buffer." | |||
| 2137 | (hits 0) | 2135 | (hits 0) |
| 2138 | files buf) | 2136 | files buf) |
| 2139 | (save-excursion | 2137 | (save-excursion |
| 2140 | (setq buf (find-file tumme-db-file)) | 2138 | (setq buf (find-file image-dired-db-file)) |
| 2141 | (goto-char (point-min)) | 2139 | (goto-char (point-min)) |
| 2142 | ;; Collect matches | 2140 | ;; Collect matches |
| 2143 | (while (search-forward-regexp | 2141 | (while (search-forward-regexp |
| @@ -2163,46 +2161,46 @@ matching tags will be marked in the dired buffer." | |||
| 2163 | files)) | 2161 | files)) |
| 2164 | (message "%d files with matching tag marked." hits))) | 2162 | (message "%d files with matching tag marked." hits))) |
| 2165 | 2163 | ||
| 2166 | (defun tumme-mouse-display-image (event) | 2164 | (defun image-dired-mouse-display-image (event) |
| 2167 | "Use mouse EVENT, call `tumme-display-image' to display image. | 2165 | "Use mouse EVENT, call `image-dired-display-image' to display image. |
| 2168 | Track this in associated dired buffer if `tumme-track-movement' is | 2166 | Track this in associated dired buffer if `image-dired-track-movement' is |
| 2169 | non-nil." | 2167 | non-nil." |
| 2170 | (interactive "e") | 2168 | (interactive "e") |
| 2171 | (let (file) | 2169 | (let (file) |
| 2172 | (mouse-set-point event) | 2170 | (mouse-set-point event) |
| 2173 | (goto-char (posn-point (event-end event))) | 2171 | (goto-char (posn-point (event-end event))) |
| 2174 | (setq file (tumme-original-file-name)) | 2172 | (setq file (image-dired-original-file-name)) |
| 2175 | (if tumme-track-movement | 2173 | (if image-dired-track-movement |
| 2176 | (tumme-track-original-file)) | 2174 | (image-dired-track-original-file)) |
| 2177 | (tumme-create-display-image-buffer) | 2175 | (image-dired-create-display-image-buffer) |
| 2178 | (display-buffer tumme-display-image-buffer) | 2176 | (display-buffer image-dired-display-image-buffer) |
| 2179 | (tumme-display-image file))) | 2177 | (image-dired-display-image file))) |
| 2180 | 2178 | ||
| 2181 | (defun tumme-mouse-select-thumbnail (event) | 2179 | (defun image-dired-mouse-select-thumbnail (event) |
| 2182 | "Use mouse EVENT to select thumbnail image. | 2180 | "Use mouse EVENT to select thumbnail image. |
| 2183 | Track this in associated dired buffer if `tumme-track-movement' is | 2181 | Track this in associated dired buffer if `image-dired-track-movement' is |
| 2184 | non-nil." | 2182 | non-nil." |
| 2185 | (interactive "e") | 2183 | (interactive "e") |
| 2186 | (let (file) | 2184 | (let (file) |
| 2187 | (mouse-set-point event) | 2185 | (mouse-set-point event) |
| 2188 | (goto-char (posn-point (event-end event))) | 2186 | (goto-char (posn-point (event-end event))) |
| 2189 | (if tumme-track-movement | 2187 | (if image-dired-track-movement |
| 2190 | (tumme-track-original-file))) | 2188 | (image-dired-track-original-file))) |
| 2191 | (tumme-display-thumb-properties)) | 2189 | (image-dired-display-thumb-properties)) |
| 2192 | 2190 | ||
| 2193 | (defun tumme-mouse-toggle-mark (event) | 2191 | (defun image-dired-mouse-toggle-mark (event) |
| 2194 | "Use mouse EVENT to toggle dired mark for thumbnail. | 2192 | "Use mouse EVENT to toggle dired mark for thumbnail. |
| 2195 | Track this in associated dired buffer if `tumme-track-movement' is | 2193 | Track this in associated dired buffer if `image-dired-track-movement' is |
| 2196 | non-nil." | 2194 | non-nil." |
| 2197 | (interactive "e") | 2195 | (interactive "e") |
| 2198 | (let (file) | 2196 | (let (file) |
| 2199 | (mouse-set-point event) | 2197 | (mouse-set-point event) |
| 2200 | (goto-char (posn-point (event-end event))) | 2198 | (goto-char (posn-point (event-end event))) |
| 2201 | (if tumme-track-movement | 2199 | (if image-dired-track-movement |
| 2202 | (tumme-track-original-file))) | 2200 | (image-dired-track-original-file))) |
| 2203 | (tumme-toggle-mark-thumb-original-file)) | 2201 | (image-dired-toggle-mark-thumb-original-file)) |
| 2204 | 2202 | ||
| 2205 | (defun tumme-dired-display-properties () | 2203 | (defun image-dired-dired-display-properties () |
| 2206 | "Display properties for dired file in the echo area." | 2204 | "Display properties for dired file in the echo area." |
| 2207 | (interactive) | 2205 | (interactive) |
| 2208 | (let* ((file (dired-get-filename)) | 2206 | (let* ((file (dired-get-filename)) |
| @@ -2210,98 +2208,98 @@ non-nil." | |||
| 2210 | (dired-buf (buffer-name (current-buffer))) | 2208 | (dired-buf (buffer-name (current-buffer))) |
| 2211 | (props (mapconcat | 2209 | (props (mapconcat |
| 2212 | 'princ | 2210 | 'princ |
| 2213 | (tumme-list-tags file) | 2211 | (image-dired-list-tags file) |
| 2214 | ", ")) | 2212 | ", ")) |
| 2215 | (comment (tumme-get-comment file))) | 2213 | (comment (image-dired-get-comment file))) |
| 2216 | (if file-name | 2214 | (if file-name |
| 2217 | (message | 2215 | (message |
| 2218 | (tumme-format-properties-string | 2216 | (image-dired-format-properties-string |
| 2219 | dired-buf | 2217 | dired-buf |
| 2220 | file-name | 2218 | file-name |
| 2221 | props | 2219 | props |
| 2222 | comment))))) | 2220 | comment))))) |
| 2223 | 2221 | ||
| 2224 | (defvar tumme-tag-file-list nil | 2222 | (defvar image-dired-tag-file-list nil |
| 2225 | "List to store tag-file structure.") | 2223 | "List to store tag-file structure.") |
| 2226 | 2224 | ||
| 2227 | (defvar tumme-file-tag-list nil | 2225 | (defvar image-dired-file-tag-list nil |
| 2228 | "List to store file-tag structure.") | 2226 | "List to store file-tag structure.") |
| 2229 | 2227 | ||
| 2230 | (defvar tumme-file-comment-list nil | 2228 | (defvar image-dired-file-comment-list nil |
| 2231 | "List to store file comments.") | 2229 | "List to store file comments.") |
| 2232 | 2230 | ||
| 2233 | (defun tumme-add-to-tag-file-list (tag file) | 2231 | (defun image-dired-add-to-tag-file-list (tag file) |
| 2234 | "Add relation between TAG and FILE." | 2232 | "Add relation between TAG and FILE." |
| 2235 | (let (curr) | 2233 | (let (curr) |
| 2236 | (if tumme-tag-file-list | 2234 | (if image-dired-tag-file-list |
| 2237 | (if (setq curr (assoc tag tumme-tag-file-list)) | 2235 | (if (setq curr (assoc tag image-dired-tag-file-list)) |
| 2238 | (if (not (member file curr)) | 2236 | (if (not (member file curr)) |
| 2239 | (setcdr curr (cons file (cdr curr)))) | 2237 | (setcdr curr (cons file (cdr curr)))) |
| 2240 | (setcdr tumme-tag-file-list | 2238 | (setcdr image-dired-tag-file-list |
| 2241 | (cons (list tag file) (cdr tumme-tag-file-list)))) | 2239 | (cons (list tag file) (cdr image-dired-tag-file-list)))) |
| 2242 | (setq tumme-tag-file-list (list (list tag file)))))) | 2240 | (setq image-dired-tag-file-list (list (list tag file)))))) |
| 2243 | 2241 | ||
| 2244 | (defun tumme-add-to-tag-file-lists (tag file) | 2242 | (defun image-dired-add-to-tag-file-lists (tag file) |
| 2245 | "Helper function used from `tumme-create-gallery-lists'. | 2243 | "Helper function used from `image-dired-create-gallery-lists'. |
| 2246 | 2244 | ||
| 2247 | Add TAG to FILE in one list and FILE to TAG in the other. | 2245 | Add TAG to FILE in one list and FILE to TAG in the other. |
| 2248 | 2246 | ||
| 2249 | Lisp structures look like the following: | 2247 | Lisp structures look like the following: |
| 2250 | 2248 | ||
| 2251 | tumme-file-tag-list: | 2249 | image-dired-file-tag-list: |
| 2252 | 2250 | ||
| 2253 | ((\"filename1\" \"tag1\" \"tag2\" \"tag3\" ...) | 2251 | ((\"filename1\" \"tag1\" \"tag2\" \"tag3\" ...) |
| 2254 | (\"filename2\" \"tag1\" \"tag2\" \"tag3\" ...) | 2252 | (\"filename2\" \"tag1\" \"tag2\" \"tag3\" ...) |
| 2255 | ...) | 2253 | ...) |
| 2256 | 2254 | ||
| 2257 | tumme-tag-file-list: | 2255 | image-dired-tag-file-list: |
| 2258 | 2256 | ||
| 2259 | ((\"tag1\" \"filename1\" \"filename2\" \"filename3\" ...) | 2257 | ((\"tag1\" \"filename1\" \"filename2\" \"filename3\" ...) |
| 2260 | (\"tag2\" \"filename1\" \"filename2\" \"filename3\" ...) | 2258 | (\"tag2\" \"filename1\" \"filename2\" \"filename3\" ...) |
| 2261 | ...)" | 2259 | ...)" |
| 2262 | ;; Add tag to file list | 2260 | ;; Add tag to file list |
| 2263 | (let (curr) | 2261 | (let (curr) |
| 2264 | (if tumme-file-tag-list | 2262 | (if image-dired-file-tag-list |
| 2265 | (if (setq curr (assoc file tumme-file-tag-list)) | 2263 | (if (setq curr (assoc file image-dired-file-tag-list)) |
| 2266 | (setcdr curr (cons tag (cdr curr))) | 2264 | (setcdr curr (cons tag (cdr curr))) |
| 2267 | (setcdr tumme-file-tag-list | 2265 | (setcdr image-dired-file-tag-list |
| 2268 | (cons (list file tag) (cdr tumme-file-tag-list)))) | 2266 | (cons (list file tag) (cdr image-dired-file-tag-list)))) |
| 2269 | (setq tumme-file-tag-list (list (list file tag)))) | 2267 | (setq image-dired-file-tag-list (list (list file tag)))) |
| 2270 | ;; Add file to tag list | 2268 | ;; Add file to tag list |
| 2271 | (if tumme-tag-file-list | 2269 | (if image-dired-tag-file-list |
| 2272 | (if (setq curr (assoc tag tumme-tag-file-list)) | 2270 | (if (setq curr (assoc tag image-dired-tag-file-list)) |
| 2273 | (if (not (member file curr)) | 2271 | (if (not (member file curr)) |
| 2274 | (setcdr curr (cons file (cdr curr)))) | 2272 | (setcdr curr (cons file (cdr curr)))) |
| 2275 | (setcdr tumme-tag-file-list | 2273 | (setcdr image-dired-tag-file-list |
| 2276 | (cons (list tag file) (cdr tumme-tag-file-list)))) | 2274 | (cons (list tag file) (cdr image-dired-tag-file-list)))) |
| 2277 | (setq tumme-tag-file-list (list (list tag file)))))) | 2275 | (setq image-dired-tag-file-list (list (list tag file)))))) |
| 2278 | 2276 | ||
| 2279 | (defun tumme-add-to-file-comment-list (file comment) | 2277 | (defun image-dired-add-to-file-comment-list (file comment) |
| 2280 | "Helper function used from `tumme-create-gallery-lists'. | 2278 | "Helper function used from `image-dired-create-gallery-lists'. |
| 2281 | 2279 | ||
| 2282 | For FILE, add COMMENT to list. | 2280 | For FILE, add COMMENT to list. |
| 2283 | 2281 | ||
| 2284 | Lisp structure looks like the following: | 2282 | Lisp structure looks like the following: |
| 2285 | 2283 | ||
| 2286 | tumme-file-comment-list: | 2284 | image-dired-file-comment-list: |
| 2287 | 2285 | ||
| 2288 | ((\"filename1\" . \"comment1\") | 2286 | ((\"filename1\" . \"comment1\") |
| 2289 | (\"filename2\" . \"comment2\") | 2287 | (\"filename2\" . \"comment2\") |
| 2290 | ...)" | 2288 | ...)" |
| 2291 | (if tumme-file-comment-list | 2289 | (if image-dired-file-comment-list |
| 2292 | (if (not (assoc file tumme-file-comment-list)) | 2290 | (if (not (assoc file image-dired-file-comment-list)) |
| 2293 | (setcdr tumme-file-comment-list | 2291 | (setcdr image-dired-file-comment-list |
| 2294 | (cons (cons file comment) | 2292 | (cons (cons file comment) |
| 2295 | (cdr tumme-file-comment-list)))) | 2293 | (cdr image-dired-file-comment-list)))) |
| 2296 | (setq tumme-file-comment-list (list (cons file comment))))) | 2294 | (setq image-dired-file-comment-list (list (cons file comment))))) |
| 2297 | 2295 | ||
| 2298 | (defun tumme-create-gallery-lists () | 2296 | (defun image-dired-create-gallery-lists () |
| 2299 | "Create temporary lists used by `tumme-gallery-generate'." | 2297 | "Create temporary lists used by `image-dired-gallery-generate'." |
| 2300 | (let ((buf (find-file tumme-db-file)) | 2298 | (let ((buf (find-file image-dired-db-file)) |
| 2301 | end beg file row-tags) | 2299 | end beg file row-tags) |
| 2302 | (setq tumme-tag-file-list nil) | 2300 | (setq image-dired-tag-file-list nil) |
| 2303 | (setq tumme-file-tag-list nil) | 2301 | (setq image-dired-file-tag-list nil) |
| 2304 | (setq tumme-file-comment-list nil) | 2302 | (setq image-dired-file-comment-list nil) |
| 2305 | (goto-char (point-min)) | 2303 | (goto-char (point-min)) |
| 2306 | (while (search-forward-regexp "^." nil t) | 2304 | (while (search-forward-regexp "^." nil t) |
| 2307 | (end-of-line) | 2305 | (end-of-line) |
| @@ -2316,51 +2314,51 @@ tumme-file-comment-list: | |||
| 2316 | (mapc | 2314 | (mapc |
| 2317 | (lambda (x) | 2315 | (lambda (x) |
| 2318 | (if (not (string-match "^comment:\\(.*\\)" x)) | 2316 | (if (not (string-match "^comment:\\(.*\\)" x)) |
| 2319 | (tumme-add-to-tag-file-lists x file) | 2317 | (image-dired-add-to-tag-file-lists x file) |
| 2320 | (tumme-add-to-file-comment-list file (match-string 1 x)))) | 2318 | (image-dired-add-to-file-comment-list file (match-string 1 x)))) |
| 2321 | (cdr row-tags))) | 2319 | (cdr row-tags))) |
| 2322 | (kill-buffer buf)) | 2320 | (kill-buffer buf)) |
| 2323 | ;; Sort tag-file list | 2321 | ;; Sort tag-file list |
| 2324 | (setq tumme-tag-file-list | 2322 | (setq image-dired-tag-file-list |
| 2325 | (sort tumme-tag-file-list | 2323 | (sort image-dired-tag-file-list |
| 2326 | (lambda (x y) | 2324 | (lambda (x y) |
| 2327 | (string< (car x) (car y)))))) | 2325 | (string< (car x) (car y)))))) |
| 2328 | 2326 | ||
| 2329 | (defun tumme-hidden-p (file) | 2327 | (defun image-dired-hidden-p (file) |
| 2330 | "Return t if image FILE has a \"hidden\" tag." | 2328 | "Return t if image FILE has a \"hidden\" tag." |
| 2331 | (let (hidden) | 2329 | (let (hidden) |
| 2332 | (mapc | 2330 | (mapc |
| 2333 | (lambda (tag) | 2331 | (lambda (tag) |
| 2334 | (if (member tag tumme-gallery-hidden-tags) | 2332 | (if (member tag image-dired-gallery-hidden-tags) |
| 2335 | (setq hidden t))) | 2333 | (setq hidden t))) |
| 2336 | (cdr (assoc file tumme-file-tag-list))) | 2334 | (cdr (assoc file image-dired-file-tag-list))) |
| 2337 | hidden)) | 2335 | hidden)) |
| 2338 | 2336 | ||
| 2339 | (defun tumme-gallery-generate () | 2337 | (defun image-dired-gallery-generate () |
| 2340 | "Generate gallery pages. | 2338 | "Generate gallery pages. |
| 2341 | First we create a couple of Lisp structures from the database to make | 2339 | First we create a couple of Lisp structures from the database to make |
| 2342 | it easier to generate, then HTML-files are created in | 2340 | it easier to generate, then HTML-files are created in |
| 2343 | `tumme-gallery-dir'" | 2341 | `image-dired-gallery-dir'" |
| 2344 | (interactive) | 2342 | (interactive) |
| 2345 | (if (eq 'per-directory tumme-thumbnail-storage) | 2343 | (if (eq 'per-directory image-dired-thumbnail-storage) |
| 2346 | (error "Currently, gallery generation is not supported \ | 2344 | (error "Currently, gallery generation is not supported \ |
| 2347 | when using per-directory thumbnail file storage")) | 2345 | when using per-directory thumbnail file storage")) |
| 2348 | (tumme-create-gallery-lists) | 2346 | (image-dired-create-gallery-lists) |
| 2349 | (let ((tags tumme-tag-file-list) | 2347 | (let ((tags image-dired-tag-file-list) |
| 2350 | count curr tag index-buf tag-buf | 2348 | count curr tag index-buf tag-buf |
| 2351 | comment file-tags tag-link tag-link-list) | 2349 | comment file-tags tag-link tag-link-list) |
| 2352 | ;; Make sure gallery root exist | 2350 | ;; Make sure gallery root exist |
| 2353 | (if (file-exists-p tumme-gallery-dir) | 2351 | (if (file-exists-p image-dired-gallery-dir) |
| 2354 | (if (not (file-directory-p tumme-gallery-dir)) | 2352 | (if (not (file-directory-p image-dired-gallery-dir)) |
| 2355 | (error "Variable tumme-gallery-dir is not a directory")) | 2353 | (error "Variable image-dired-gallery-dir is not a directory")) |
| 2356 | (make-directory tumme-gallery-dir)) | 2354 | (make-directory image-dired-gallery-dir)) |
| 2357 | ;; Open index file | 2355 | ;; Open index file |
| 2358 | (setq index-buf (find-file | 2356 | (setq index-buf (find-file |
| 2359 | (format "%s/index.html" tumme-gallery-dir))) | 2357 | (format "%s/index.html" image-dired-gallery-dir))) |
| 2360 | (erase-buffer) | 2358 | (erase-buffer) |
| 2361 | (insert "<html>\n") | 2359 | (insert "<html>\n") |
| 2362 | (insert " <body>\n") | 2360 | (insert " <body>\n") |
| 2363 | (insert " <h2>Tumme Gallery</h2>\n") | 2361 | (insert " <h2>Image-Dired Gallery</h2>\n") |
| 2364 | (insert (format "<p>\n Gallery generated %s\n <p>\n" | 2362 | (insert (format "<p>\n Gallery generated %s\n <p>\n" |
| 2365 | (current-time-string))) | 2363 | (current-time-string))) |
| 2366 | (insert " <h3>Tag index</h3>\n") | 2364 | (insert " <h3>Tag index</h3>\n") |
| @@ -2369,7 +2367,7 @@ when using per-directory thumbnail file storage")) | |||
| 2369 | (mapc | 2367 | (mapc |
| 2370 | (lambda (curr) | 2368 | (lambda (curr) |
| 2371 | (setq tag (car curr)) | 2369 | (setq tag (car curr)) |
| 2372 | (when (not (member tag tumme-gallery-hidden-tags)) | 2370 | (when (not (member tag image-dired-gallery-hidden-tags)) |
| 2373 | (setq tag-link (format "<a href=\"%d.html\">%s</a>" count tag)) | 2371 | (setq tag-link (format "<a href=\"%d.html\">%s</a>" count tag)) |
| 2374 | (if tag-link-list | 2372 | (if tag-link-list |
| 2375 | (setq tag-link-list | 2373 | (setq tag-link-list |
| @@ -2383,12 +2381,12 @@ when using per-directory thumbnail file storage")) | |||
| 2383 | (lambda (curr) | 2381 | (lambda (curr) |
| 2384 | (setq tag (car curr)) | 2382 | (setq tag (car curr)) |
| 2385 | ;; Don't display hidden tags | 2383 | ;; Don't display hidden tags |
| 2386 | (when (not (member tag tumme-gallery-hidden-tags)) | 2384 | (when (not (member tag image-dired-gallery-hidden-tags)) |
| 2387 | ;; Insert link to tag page in index | 2385 | ;; Insert link to tag page in index |
| 2388 | (insert (format " %s<br>\n" (cdr (assoc tag tag-link-list)))) | 2386 | (insert (format " %s<br>\n" (cdr (assoc tag tag-link-list)))) |
| 2389 | ;; Open per-tag file | 2387 | ;; Open per-tag file |
| 2390 | (setq tag-buf (find-file | 2388 | (setq tag-buf (find-file |
| 2391 | (format "%s/%s.html" tumme-gallery-dir count))) | 2389 | (format "%s/%s.html" image-dired-gallery-dir count))) |
| 2392 | (erase-buffer) | 2390 | (erase-buffer) |
| 2393 | (insert "<html>\n") | 2391 | (insert "<html>\n") |
| 2394 | (insert " <body>\n") | 2392 | (insert " <body>\n") |
| @@ -2397,21 +2395,21 @@ when using per-directory thumbnail file storage")) | |||
| 2397 | ;; Main loop for files per tag page | 2395 | ;; Main loop for files per tag page |
| 2398 | (mapc | 2396 | (mapc |
| 2399 | (lambda (file) | 2397 | (lambda (file) |
| 2400 | (when (not (tumme-hidden-p file)) | 2398 | (when (not (image-dired-hidden-p file)) |
| 2401 | ;; Insert thumbnail with link to full image | 2399 | ;; Insert thumbnail with link to full image |
| 2402 | (insert | 2400 | (insert |
| 2403 | (format "<a href=\"%s/%s\"><img src=\"%s/%s\"%s></a>\n" | 2401 | (format "<a href=\"%s/%s\"><img src=\"%s/%s\"%s></a>\n" |
| 2404 | tumme-gallery-image-root-url | 2402 | image-dired-gallery-image-root-url |
| 2405 | (file-name-nondirectory file) | 2403 | (file-name-nondirectory file) |
| 2406 | tumme-gallery-thumb-image-root-url | 2404 | image-dired-gallery-thumb-image-root-url |
| 2407 | (file-name-nondirectory (tumme-thumb-name file)) file)) | 2405 | (file-name-nondirectory (image-dired-thumb-name file)) file)) |
| 2408 | ;; Insert comment, if any | 2406 | ;; Insert comment, if any |
| 2409 | (if (setq comment (cdr (assoc file tumme-file-comment-list))) | 2407 | (if (setq comment (cdr (assoc file image-dired-file-comment-list))) |
| 2410 | (insert (format "<br>\n%s<br>\n" comment)) | 2408 | (insert (format "<br>\n%s<br>\n" comment)) |
| 2411 | (insert "<br>\n")) | 2409 | (insert "<br>\n")) |
| 2412 | ;; Insert links to other tags, if any | 2410 | ;; Insert links to other tags, if any |
| 2413 | (when (> (length | 2411 | (when (> (length |
| 2414 | (setq file-tags (assoc file tumme-file-tag-list))) 2) | 2412 | (setq file-tags (assoc file image-dired-file-tag-list))) 2) |
| 2415 | (insert "[ ") | 2413 | (insert "[ ") |
| 2416 | (mapc | 2414 | (mapc |
| 2417 | (lambda (extra-tag) | 2415 | (lambda (extra-tag) |
| @@ -2435,7 +2433,7 @@ when using per-directory thumbnail file storage")) | |||
| 2435 | (save-buffer) | 2433 | (save-buffer) |
| 2436 | (kill-buffer index-buf))) | 2434 | (kill-buffer index-buf))) |
| 2437 | 2435 | ||
| 2438 | (defun tumme-kill-buffer-and-window () | 2436 | (defun image-dired-kill-buffer-and-window () |
| 2439 | "Kill the current buffer and, if possible, also the window." | 2437 | "Kill the current buffer and, if possible, also the window." |
| 2440 | (interactive) | 2438 | (interactive) |
| 2441 | (let ((buffer (current-buffer))) | 2439 | (let ((buffer (current-buffer))) |
| @@ -2444,19 +2442,19 @@ when using per-directory thumbnail file storage")) | |||
| 2444 | (error nil)) | 2442 | (error nil)) |
| 2445 | (kill-buffer buffer))) | 2443 | (kill-buffer buffer))) |
| 2446 | 2444 | ||
| 2447 | (defvar tumme-widget-list nil | 2445 | (defvar image-dired-widget-list nil |
| 2448 | "List to keep track of meta data in edit buffer.") | 2446 | "List to keep track of meta data in edit buffer.") |
| 2449 | 2447 | ||
| 2450 | ;;;###autoload | 2448 | ;;;###autoload |
| 2451 | (defun tumme-dired-edit-comment-and-tags () | 2449 | (defun image-dired-dired-edit-comment-and-tags () |
| 2452 | "Edit comment and tags of current or marked image files. | 2450 | "Edit comment and tags of current or marked image files. |
| 2453 | Edit comment and tags for all marked image files in an | 2451 | Edit comment and tags for all marked image files in an |
| 2454 | easy-to-use form." | 2452 | easy-to-use form." |
| 2455 | (interactive) | 2453 | (interactive) |
| 2456 | (setq tumme-widget-list nil) | 2454 | (setq image-dired-widget-list nil) |
| 2457 | ;; Setup buffer. | 2455 | ;; Setup buffer. |
| 2458 | (let ((files (dired-get-marked-files))) | 2456 | (let ((files (dired-get-marked-files))) |
| 2459 | (switch-to-buffer "*Tumme Edit Meta Data*") | 2457 | (switch-to-buffer "*Image-Dired Edit Meta Data*") |
| 2460 | (kill-all-local-variables) | 2458 | (kill-all-local-variables) |
| 2461 | (make-local-variable 'widget-example-repeat) | 2459 | (make-local-variable 'widget-example-repeat) |
| 2462 | (let ((inhibit-read-only t)) | 2460 | (let ((inhibit-read-only t)) |
| @@ -2475,7 +2473,7 @@ the operation by activating the Cancel button.\n\n") | |||
| 2475 | 2473 | ||
| 2476 | (dolist (file files) | 2474 | (dolist (file files) |
| 2477 | 2475 | ||
| 2478 | (setq thumb-file (tumme-thumb-name file) | 2476 | (setq thumb-file (image-dired-thumb-name file) |
| 2479 | img (create-image thumb-file)) | 2477 | img (create-image thumb-file)) |
| 2480 | 2478 | ||
| 2481 | (insert-image img) | 2479 | (insert-image img) |
| @@ -2484,7 +2482,7 @@ the operation by activating the Cancel button.\n\n") | |||
| 2484 | (widget-create 'editable-field | 2482 | (widget-create 'editable-field |
| 2485 | :size 60 | 2483 | :size 60 |
| 2486 | :format "%v " | 2484 | :format "%v " |
| 2487 | :value (or (tumme-get-comment file) ""))) | 2485 | :value (or (image-dired-get-comment file) ""))) |
| 2488 | (widget-insert "\nTags: ") | 2486 | (widget-insert "\nTags: ") |
| 2489 | (setq tag-widget | 2487 | (setq tag-widget |
| 2490 | (widget-create 'editable-field | 2488 | (widget-create 'editable-field |
| @@ -2493,12 +2491,12 @@ the operation by activating the Cancel button.\n\n") | |||
| 2493 | :value (or (mapconcat | 2491 | :value (or (mapconcat |
| 2494 | (lambda (tag) | 2492 | (lambda (tag) |
| 2495 | tag) | 2493 | tag) |
| 2496 | (tumme-list-tags file) | 2494 | (image-dired-list-tags file) |
| 2497 | ",") ""))) | 2495 | ",") ""))) |
| 2498 | ;; Save information in all widgets so that we can use it when | 2496 | ;; Save information in all widgets so that we can use it when |
| 2499 | ;; the user saves the form. | 2497 | ;; the user saves the form. |
| 2500 | (setq tumme-widget-list | 2498 | (setq image-dired-widget-list |
| 2501 | (append tumme-widget-list | 2499 | (append image-dired-widget-list |
| 2502 | (list (list file comment-widget tag-widget)))) | 2500 | (list (list file comment-widget tag-widget)))) |
| 2503 | (widget-insert "\n\n"))) | 2501 | (widget-insert "\n\n"))) |
| 2504 | 2502 | ||
| @@ -2507,7 +2505,7 @@ the operation by activating the Cancel button.\n\n") | |||
| 2507 | (widget-create 'push-button | 2505 | (widget-create 'push-button |
| 2508 | :notify | 2506 | :notify |
| 2509 | (lambda (&rest ignore) | 2507 | (lambda (&rest ignore) |
| 2510 | (tumme-save-information-from-widgets) | 2508 | (image-dired-save-information-from-widgets) |
| 2511 | (bury-buffer) | 2509 | (bury-buffer) |
| 2512 | (message "Done.")) | 2510 | (message "Done.")) |
| 2513 | "Save") | 2511 | "Save") |
| @@ -2524,21 +2522,21 @@ the operation by activating the Cancel button.\n\n") | |||
| 2524 | ;; Jump to the first widget. | 2522 | ;; Jump to the first widget. |
| 2525 | (widget-forward 1))) | 2523 | (widget-forward 1))) |
| 2526 | 2524 | ||
| 2527 | (defun tumme-save-information-from-widgets () | 2525 | (defun image-dired-save-information-from-widgets () |
| 2528 | "Save information found in `tumme-widget-list'. | 2526 | "Save information found in `image-dired-widget-list'. |
| 2529 | Use the information in `tumme-widget-list' to save comments and | 2527 | Use the information in `image-dired-widget-list' to save comments and |
| 2530 | tags to their respective image file. Internal function used by | 2528 | tags to their respective image file. Internal function used by |
| 2531 | `tumme-dired-edit-comment-and-tags'." | 2529 | `image-dired-dired-edit-comment-and-tags'." |
| 2532 | (let (file comment tag-string tag-list lst) | 2530 | (let (file comment tag-string tag-list lst) |
| 2533 | (tumme-write-comments | 2531 | (image-dired-write-comments |
| 2534 | (mapcar | 2532 | (mapcar |
| 2535 | (lambda (widget) | 2533 | (lambda (widget) |
| 2536 | (setq file (car widget) | 2534 | (setq file (car widget) |
| 2537 | comment (widget-value (cadr widget))) | 2535 | comment (widget-value (cadr widget))) |
| 2538 | (cons file comment)) | 2536 | (cons file comment)) |
| 2539 | tumme-widget-list)) | 2537 | image-dired-widget-list)) |
| 2540 | (tumme-write-tags | 2538 | (image-dired-write-tags |
| 2541 | (dolist (widget tumme-widget-list lst) | 2539 | (dolist (widget image-dired-widget-list lst) |
| 2542 | (setq file (car widget) | 2540 | (setq file (car widget) |
| 2543 | tag-string (widget-value (car (cddr widget))) | 2541 | tag-string (widget-value (car (cddr widget))) |
| 2544 | tag-list (split-string tag-string ",")) | 2542 | tag-list (split-string tag-string ",")) |
| @@ -2549,12 +2547,12 @@ tags to their respective image file. Internal function used by | |||
| 2549 | ;;;;;;;;; TEST-SECTION ;;;;;;;;;;; | 2547 | ;;;;;;;;; TEST-SECTION ;;;;;;;;;;; |
| 2550 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | 2548 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
| 2551 | 2549 | ||
| 2552 | ;; (defvar tumme-dir-max-size 12300000) | 2550 | ;; (defvar image-dired-dir-max-size 12300000) |
| 2553 | 2551 | ||
| 2554 | ;; (defun tumme-test-clean-old-files () | 2552 | ;; (defun image-dired-test-clean-old-files () |
| 2555 | ;; "Clean `tumme-dir' from old thumbnail files. | 2553 | ;; "Clean `image-dired-dir' from old thumbnail files. |
| 2556 | ;; \"Oldness\" measured using last access time. If the total size of all | 2554 | ;; \"Oldness\" measured using last access time. If the total size of all |
| 2557 | ;; thumbnail files in `tumme-dir' is larger than 'tumme-dir-max-size', | 2555 | ;; thumbnail files in `image-dired-dir' is larger than 'image-dired-dir-max-size', |
| 2558 | ;; old files are deleted until the max size is reached." | 2556 | ;; old files are deleted until the max size is reached." |
| 2559 | ;; (let* ((files | 2557 | ;; (let* ((files |
| 2560 | ;; (sort | 2558 | ;; (sort |
| @@ -2563,12 +2561,12 @@ tags to their respective image file. Internal function used by | |||
| 2563 | ;; (let ((fattribs (file-attributes f))) | 2561 | ;; (let ((fattribs (file-attributes f))) |
| 2564 | ;; ;; Get last access time and file size | 2562 | ;; ;; Get last access time and file size |
| 2565 | ;; `(,(nth 4 fattribs) ,(nth 7 fattribs) ,f))) | 2563 | ;; `(,(nth 4 fattribs) ,(nth 7 fattribs) ,f))) |
| 2566 | ;; (directory-files (tumme-dir) t ".+\.thumb\..+$")) | 2564 | ;; (directory-files (image-dired-dir) t ".+\.thumb\..+$")) |
| 2567 | ;; ;; Sort function. Compare time between two files. | 2565 | ;; ;; Sort function. Compare time between two files. |
| 2568 | ;; '(lambda (l1 l2) | 2566 | ;; '(lambda (l1 l2) |
| 2569 | ;; (time-less-p (car l1) (car l2))))) | 2567 | ;; (time-less-p (car l1) (car l2))))) |
| 2570 | ;; (dirsize (apply '+ (mapcar (lambda (x) (cadr x)) files)))) | 2568 | ;; (dirsize (apply '+ (mapcar (lambda (x) (cadr x)) files)))) |
| 2571 | ;; (while (> dirsize tumme-dir-max-size) | 2569 | ;; (while (> dirsize image-dired-dir-max-size) |
| 2572 | ;; (y-or-n-p | 2570 | ;; (y-or-n-p |
| 2573 | ;; (format "Size of thumbnail directory: %d, delete old file %s? " | 2571 | ;; (format "Size of thumbnail directory: %d, delete old file %s? " |
| 2574 | ;; dirsize (cadr (cdar files)))) | 2572 | ;; dirsize (cadr (cdar files)))) |
| @@ -2579,8 +2577,8 @@ tags to their respective image file. Internal function used by | |||
| 2579 | ;;;;;;;;;;;;;;;;;;;;;;, | 2577 | ;;;;;;;;;;;;;;;;;;;;;;, |
| 2580 | 2578 | ||
| 2581 | ;; (defun dired-speedbar-buttons (dired-buffer) | 2579 | ;; (defun dired-speedbar-buttons (dired-buffer) |
| 2582 | ;; (when (and (boundp 'tumme-use-speedbar) | 2580 | ;; (when (and (boundp 'image-dired-use-speedbar) |
| 2583 | ;; tumme-use-speedbar) | 2581 | ;; image-dired-use-speedbar) |
| 2584 | ;; (let ((filename (with-current-buffer dired-buffer | 2582 | ;; (let ((filename (with-current-buffer dired-buffer |
| 2585 | ;; (dired-get-filename)))) | 2583 | ;; (dired-get-filename)))) |
| 2586 | ;; (when (and (not (string-equal filename (buffer-string))) | 2584 | ;; (when (and (not (string-equal filename (buffer-string))) |
| @@ -2589,11 +2587,11 @@ tags to their respective image file. Internal function used by | |||
| 2589 | ;; (insert (propertize | 2587 | ;; (insert (propertize |
| 2590 | ;; filename | 2588 | ;; filename |
| 2591 | ;; 'display | 2589 | ;; 'display |
| 2592 | ;; (tumme-get-thumbnail-image filename))))))) | 2590 | ;; (image-dired-get-thumbnail-image filename))))))) |
| 2593 | 2591 | ||
| 2594 | ;; (setq tumme-use-speedbar t) | 2592 | ;; (setq image-dired-use-speedbar t) |
| 2595 | 2593 | ||
| 2596 | (provide 'tumme) | 2594 | (provide 'image-dired) |
| 2597 | 2595 | ||
| 2598 | ;; arch-tag: 9d11411d-331f-4380-8b44-8adfe3a0343e | 2596 | ;; arch-tag: 9d11411d-331f-4380-8b44-8adfe3a0343e |
| 2599 | ;;; tumme.el ends here | 2597 | ;;; image-dired.el ends here |
diff --git a/lisp/info.el b/lisp/info.el index 6757929424b..4d1e1d8e3e9 100644 --- a/lisp/info.el +++ b/lisp/info.el | |||
| @@ -1400,8 +1400,8 @@ any double quotes or backslashes must be escaped (\\\",\\\\)." | |||
| 1400 | 1400 | ||
| 1401 | (defvar Info-mode-line-node-keymap | 1401 | (defvar Info-mode-line-node-keymap |
| 1402 | (let ((map (make-sparse-keymap))) | 1402 | (let ((map (make-sparse-keymap))) |
| 1403 | (define-key map [mode-line mouse-1] 'Info-scroll-up) | 1403 | (define-key map [mode-line mouse-1] 'Info-mouse-scroll-up) |
| 1404 | (define-key map [mode-line mouse-3] 'Info-scroll-down) | 1404 | (define-key map [mode-line mouse-3] 'Info-mouse-scroll-down) |
| 1405 | map) | 1405 | map) |
| 1406 | "Keymap to put on the Info node name in the mode line.") | 1406 | "Keymap to put on the Info node name in the mode line.") |
| 1407 | 1407 | ||
| @@ -2620,6 +2620,15 @@ in other ways.)" | |||
| 2620 | (t (Info-next-preorder))) | 2620 | (t (Info-next-preorder))) |
| 2621 | (scroll-up)))) | 2621 | (scroll-up)))) |
| 2622 | 2622 | ||
| 2623 | (defun Info-mouse-scroll-up (e) | ||
| 2624 | "Scroll one screenful forward in Info, using the mouse. | ||
| 2625 | See `Info-scroll-up'." | ||
| 2626 | (interactive "e") | ||
| 2627 | (save-selected-window | ||
| 2628 | (if (eventp e) | ||
| 2629 | (select-window (posn-window (event-start e)))) | ||
| 2630 | (Info-scroll-up))) | ||
| 2631 | |||
| 2623 | (defun Info-scroll-down () | 2632 | (defun Info-scroll-down () |
| 2624 | "Scroll one screenful back in Info, considering all nodes as one sequence. | 2633 | "Scroll one screenful back in Info, considering all nodes as one sequence. |
| 2625 | If point is within the menu of a node, and `Info-scroll-prefer-subnodes' | 2634 | If point is within the menu of a node, and `Info-scroll-prefer-subnodes' |
| @@ -2646,6 +2655,15 @@ parent node." | |||
| 2646 | (Info-last-preorder) | 2655 | (Info-last-preorder) |
| 2647 | (scroll-down)))) | 2656 | (scroll-down)))) |
| 2648 | 2657 | ||
| 2658 | (defun Info-mouse-scroll-down (e) | ||
| 2659 | "Scroll one screenful backward in Info, using the mouse. | ||
| 2660 | See `Info-scroll-down'." | ||
| 2661 | (interactive "e") | ||
| 2662 | (save-selected-window | ||
| 2663 | (if (eventp e) | ||
| 2664 | (select-window (posn-window (event-start e)))) | ||
| 2665 | (Info-scroll-down))) | ||
| 2666 | |||
| 2649 | (defun Info-next-reference (&optional recur) | 2667 | (defun Info-next-reference (&optional recur) |
| 2650 | "Move cursor to the next cross-reference or menu item in the node." | 2668 | "Move cursor to the next cross-reference or menu item in the node." |
| 2651 | (interactive) | 2669 | (interactive) |
diff --git a/lisp/international/mule.el b/lisp/international/mule.el index 92573c0d417..e94a2fb81f5 100644 --- a/lisp/international/mule.el +++ b/lisp/international/mule.el | |||
| @@ -1567,8 +1567,10 @@ text, and convert it in the temporary buffer. Otherwise, convert in-place." | |||
| 1567 | ;;; FILE I/O | 1567 | ;;; FILE I/O |
| 1568 | 1568 | ||
| 1569 | (defcustom auto-coding-alist | 1569 | (defcustom auto-coding-alist |
| 1570 | '(("\\.\\(arc\\|zip\\|lzh\\|lha\\|zoo\\|[jew]ar\\|xpi\\)\\'" . no-conversion) | 1570 | ;; .exe and .EXE are added to support archive-mode looking at DOS |
| 1571 | ("\\.\\(ARC\\|ZIP\\|LZH\\|LHA\\|ZOO\\|[JEW]AR\\|XPI\\)\\'" . no-conversion) | 1571 | ;; self-extracting exe archives. |
| 1572 | '(("\\.\\(arc\\|zip\\|lzh\\|lha\\|zoo\\|[jew]ar\\|xpi\\|exe\\)\\'" . no-conversion) | ||
| 1573 | ("\\.\\(ARC\\|ZIP\\|LZH\\|LHA\\|ZOO\\|[JEW]AR\\|XPI\\|EXE\\)\\'" . no-conversion) | ||
| 1572 | ("\\.\\(sx[dmicw]\\|odt\\|tar\\|tgz\\)\\'" . no-conversion) | 1574 | ("\\.\\(sx[dmicw]\\|odt\\|tar\\|tgz\\)\\'" . no-conversion) |
| 1573 | ("\\.\\(gz\\|Z\\|bz\\|bz2\\|gpg\\)\\'" . no-conversion) | 1575 | ("\\.\\(gz\\|Z\\|bz\\|bz2\\|gpg\\)\\'" . no-conversion) |
| 1574 | ("\\.\\(jpe?g\\|png\\|gif\\|tiff?\\|p[bpgn]m\\)\\'" . no-conversion) | 1576 | ("\\.\\(jpe?g\\|png\\|gif\\|tiff?\\|p[bpgn]m\\)\\'" . no-conversion) |
diff --git a/lisp/ldefs-boot.el b/lisp/ldefs-boot.el index 342dd04b936..12391dd774d 100644 --- a/lisp/ldefs-boot.el +++ b/lisp/ldefs-boot.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | 4 | ||
| 5 | ;;;### (autoloads (5x5-crack 5x5-crack-xor-mutate 5x5-crack-mutating-best | 5 | ;;;### (autoloads (5x5-crack 5x5-crack-xor-mutate 5x5-crack-mutating-best |
| 6 | ;;;;;; 5x5-crack-mutating-current 5x5-crack-randomly 5x5) "5x5" | 6 | ;;;;;; 5x5-crack-mutating-current 5x5-crack-randomly 5x5) "5x5" |
| 7 | ;;;;;; "play/5x5.el" (17876 15555)) | 7 | ;;;;;; "play/5x5.el" (17941 38806)) |
| 8 | ;;; Generated autoloads from play/5x5.el | 8 | ;;; Generated autoloads from play/5x5.el |
| 9 | 9 | ||
| 10 | (autoload (quote 5x5) "5x5" "\ | 10 | (autoload (quote 5x5) "5x5" "\ |
| @@ -852,7 +852,7 @@ Not documented | |||
| 852 | ;;;*** | 852 | ;;;*** |
| 853 | 853 | ||
| 854 | ;;;### (autoloads (animate-birthday-present animate-sequence animate-string) | 854 | ;;;### (autoloads (animate-birthday-present animate-sequence animate-string) |
| 855 | ;;;;;; "animate" "play/animate.el" (17842 55395)) | 855 | ;;;;;; "animate" "play/animate.el" (17941 38806)) |
| 856 | ;;; Generated autoloads from play/animate.el | 856 | ;;; Generated autoloads from play/animate.el |
| 857 | 857 | ||
| 858 | (autoload (quote animate-string) "animate" "\ | 858 | (autoload (quote animate-string) "animate" "\ |
| @@ -945,7 +945,7 @@ Used in `antlr-mode'. Also a useful function in `java-mode-hook'. | |||
| 945 | ;;;### (autoloads (appt-activate appt-make-list appt-delete appt-add | 945 | ;;;### (autoloads (appt-activate appt-make-list appt-delete appt-add |
| 946 | ;;;;;; appt-display-diary appt-display-duration appt-display-mode-line | 946 | ;;;;;; appt-display-diary appt-display-duration appt-display-mode-line |
| 947 | ;;;;;; appt-msg-window appt-visible appt-audible appt-message-warning-time | 947 | ;;;;;; appt-msg-window appt-visible appt-audible appt-message-warning-time |
| 948 | ;;;;;; appt-issue-message) "appt" "calendar/appt.el" (17842 53792)) | 948 | ;;;;;; appt-issue-message) "appt" "calendar/appt.el" (17952 17513)) |
| 949 | ;;; Generated autoloads from calendar/appt.el | 949 | ;;; Generated autoloads from calendar/appt.el |
| 950 | 950 | ||
| 951 | (defvar appt-issue-message t "\ | 951 | (defvar appt-issue-message t "\ |
| @@ -1129,8 +1129,8 @@ Returns list of symbols and documentation found. | |||
| 1129 | 1129 | ||
| 1130 | ;;;*** | 1130 | ;;;*** |
| 1131 | 1131 | ||
| 1132 | ;;;### (autoloads (archive-mode) "arc-mode" "arc-mode.el" (17842 | 1132 | ;;;### (autoloads (archive-mode) "arc-mode" "arc-mode.el" (17956 |
| 1133 | ;;;;;; 58280)) | 1133 | ;;;;;; 9517)) |
| 1134 | ;;; Generated autoloads from arc-mode.el | 1134 | ;;; Generated autoloads from arc-mode.el |
| 1135 | 1135 | ||
| 1136 | (autoload (quote archive-mode) "arc-mode" "\ | 1136 | (autoload (quote archive-mode) "arc-mode" "\ |
| @@ -1794,8 +1794,8 @@ non-interactive use see also `benchmark-run' and | |||
| 1794 | 1794 | ||
| 1795 | ;;;*** | 1795 | ;;;*** |
| 1796 | 1796 | ||
| 1797 | ;;;### (autoloads (bibtex-mode) "bibtex" "textmodes/bibtex.el" (17843 | 1797 | ;;;### (autoloads (bibtex-mode) "bibtex" "textmodes/bibtex.el" (17956 |
| 1798 | ;;;;;; 28300)) | 1798 | ;;;;;; 9518)) |
| 1799 | ;;; Generated autoloads from textmodes/bibtex.el | 1799 | ;;; Generated autoloads from textmodes/bibtex.el |
| 1800 | 1800 | ||
| 1801 | (autoload (quote bibtex-mode) "bibtex" "\ | 1801 | (autoload (quote bibtex-mode) "bibtex" "\ |
| @@ -2671,7 +2671,7 @@ Also see `make-text-button'. | |||
| 2671 | ;;;;;; batch-byte-compile-if-not-done display-call-tree byte-compile | 2671 | ;;;;;; batch-byte-compile-if-not-done display-call-tree byte-compile |
| 2672 | ;;;;;; compile-defun byte-compile-file byte-recompile-directory | 2672 | ;;;;;; compile-defun byte-compile-file byte-recompile-directory |
| 2673 | ;;;;;; byte-force-recompile byte-compile-warnings-safe-p) "bytecomp" | 2673 | ;;;;;; byte-force-recompile byte-compile-warnings-safe-p) "bytecomp" |
| 2674 | ;;;;;; "emacs-lisp/bytecomp.el" (17927 20254)) | 2674 | ;;;;;; "emacs-lisp/bytecomp.el" (17949 41467)) |
| 2675 | ;;; Generated autoloads from emacs-lisp/bytecomp.el | 2675 | ;;; Generated autoloads from emacs-lisp/bytecomp.el |
| 2676 | (put 'byte-compile-dynamic 'safe-local-variable 'booleanp) | 2676 | (put 'byte-compile-dynamic 'safe-local-variable 'booleanp) |
| 2677 | (put 'byte-compile-disable-print-circle 'safe-local-variable 'booleanp) | 2677 | (put 'byte-compile-disable-print-circle 'safe-local-variable 'booleanp) |
| @@ -2802,7 +2802,7 @@ from the cursor position. | |||
| 2802 | ;;;### (autoloads (defmath calc-embedded-activate calc-embedded calc-grab-rectangle | 2802 | ;;;### (autoloads (defmath calc-embedded-activate calc-embedded calc-grab-rectangle |
| 2803 | ;;;;;; calc-grab-region full-calc-keypad calc-keypad calc-eval quick-calc | 2803 | ;;;;;; calc-grab-region full-calc-keypad calc-keypad calc-eval quick-calc |
| 2804 | ;;;;;; full-calc calc calc-dispatch calc-settings-file) "calc" "calc/calc.el" | 2804 | ;;;;;; full-calc calc calc-dispatch calc-settings-file) "calc" "calc/calc.el" |
| 2805 | ;;;;;; (17919 4936)) | 2805 | ;;;;;; (17955 4296)) |
| 2806 | ;;; Generated autoloads from calc/calc.el | 2806 | ;;; Generated autoloads from calc/calc.el |
| 2807 | 2807 | ||
| 2808 | (defvar calc-settings-file (convert-standard-filename "~/.calc.el") "\ | 2808 | (defvar calc-settings-file (convert-standard-filename "~/.calc.el") "\ |
| @@ -2909,7 +2909,7 @@ See the documentation for `calculator-mode' for more information. | |||
| 2909 | ;;;;;; mark-holidays-in-calendar view-calendar-holidays-initially | 2909 | ;;;;;; mark-holidays-in-calendar view-calendar-holidays-initially |
| 2910 | ;;;;;; calendar-remove-frame-by-deleting mark-diary-entries-in-calendar | 2910 | ;;;;;; calendar-remove-frame-by-deleting mark-diary-entries-in-calendar |
| 2911 | ;;;;;; view-diary-entries-initially calendar-offset) "calendar" | 2911 | ;;;;;; view-diary-entries-initially calendar-offset) "calendar" |
| 2912 | ;;;;;; "calendar/calendar.el" (17929 8808)) | 2912 | ;;;;;; "calendar/calendar.el" (17944 20140)) |
| 2913 | ;;; Generated autoloads from calendar/calendar.el | 2913 | ;;; Generated autoloads from calendar/calendar.el |
| 2914 | 2914 | ||
| 2915 | (defvar calendar-offset 0 "\ | 2915 | (defvar calendar-offset 0 "\ |
| @@ -3507,7 +3507,7 @@ it fails. | |||
| 3507 | ;;;*** | 3507 | ;;;*** |
| 3508 | 3508 | ||
| 3509 | ;;;### (autoloads (c-guess-basic-syntax) "cc-engine" "progmodes/cc-engine.el" | 3509 | ;;;### (autoloads (c-guess-basic-syntax) "cc-engine" "progmodes/cc-engine.el" |
| 3510 | ;;;;;; (17926 45410)) | 3510 | ;;;;;; (17942 63381)) |
| 3511 | ;;; Generated autoloads from progmodes/cc-engine.el | 3511 | ;;; Generated autoloads from progmodes/cc-engine.el |
| 3512 | 3512 | ||
| 3513 | (autoload (quote c-guess-basic-syntax) "cc-engine" "\ | 3513 | (autoload (quote c-guess-basic-syntax) "cc-engine" "\ |
| @@ -3728,14 +3728,14 @@ and exists only for compatibility reasons. | |||
| 3728 | 3728 | ||
| 3729 | ;;;*** | 3729 | ;;;*** |
| 3730 | 3730 | ||
| 3731 | ;;;### (autoloads nil "cc-subword" "progmodes/cc-subword.el" (17842 | 3731 | ;;;### (autoloads nil "cc-subword" "progmodes/cc-subword.el" (17949 |
| 3732 | ;;;;;; 56333)) | 3732 | ;;;;;; 41467)) |
| 3733 | ;;; Generated autoloads from progmodes/cc-subword.el | 3733 | ;;; Generated autoloads from progmodes/cc-subword.el |
| 3734 | (autoload 'c-subword-mode "cc-subword" "Mode enabling subword movement and editing keys." t) | 3734 | (autoload 'c-subword-mode "cc-subword" "Mode enabling subword movement and editing keys." t) |
| 3735 | 3735 | ||
| 3736 | ;;;*** | 3736 | ;;;*** |
| 3737 | 3737 | ||
| 3738 | ;;;### (autoloads nil "cc-vars" "progmodes/cc-vars.el" (17854 7681)) | 3738 | ;;;### (autoloads nil "cc-vars" "progmodes/cc-vars.el" (17941 38806)) |
| 3739 | ;;; Generated autoloads from progmodes/cc-vars.el | 3739 | ;;; Generated autoloads from progmodes/cc-vars.el |
| 3740 | (put 'c-basic-offset 'safe-local-variable 'integerp) | 3740 | (put 'c-basic-offset 'safe-local-variable 'integerp) |
| 3741 | (put 'c-backslash-column 'safe-local-variable 'integerp) | 3741 | (put 'c-backslash-column 'safe-local-variable 'integerp) |
| @@ -4535,7 +4535,7 @@ on third call it again advances points to the next difference and so on. | |||
| 4535 | ;;;;;; compilation-shell-minor-mode compilation-mode compilation-start | 4535 | ;;;;;; compilation-shell-minor-mode compilation-mode compilation-start |
| 4536 | ;;;;;; compile compilation-disable-input compile-command compilation-search-path | 4536 | ;;;;;; compile compilation-disable-input compile-command compilation-search-path |
| 4537 | ;;;;;; compilation-ask-about-save compilation-window-height compilation-mode-hook) | 4537 | ;;;;;; compilation-ask-about-save compilation-window-height compilation-mode-hook) |
| 4538 | ;;;;;; "compile" "progmodes/compile.el" (17928 33291)) | 4538 | ;;;;;; "compile" "progmodes/compile.el" (17952 11093)) |
| 4539 | ;;; Generated autoloads from progmodes/compile.el | 4539 | ;;; Generated autoloads from progmodes/compile.el |
| 4540 | 4540 | ||
| 4541 | (defvar compilation-mode-hook nil "\ | 4541 | (defvar compilation-mode-hook nil "\ |
| @@ -4698,7 +4698,7 @@ This is the value of `next-error-function' in Compilation buffers. | |||
| 4698 | ;;;*** | 4698 | ;;;*** |
| 4699 | 4699 | ||
| 4700 | ;;;### (autoloads (partial-completion-mode) "complete" "complete.el" | 4700 | ;;;### (autoloads (partial-completion-mode) "complete" "complete.el" |
| 4701 | ;;;;;; (17931 55720)) | 4701 | ;;;;;; (17954 15344)) |
| 4702 | ;;; Generated autoloads from complete.el | 4702 | ;;; Generated autoloads from complete.el |
| 4703 | 4703 | ||
| 4704 | (defvar partial-completion-mode nil "\ | 4704 | (defvar partial-completion-mode nil "\ |
| @@ -5200,7 +5200,7 @@ Insert a copyright by $ORGANIZATION notice at cursor. | |||
| 5200 | ;;;*** | 5200 | ;;;*** |
| 5201 | 5201 | ||
| 5202 | ;;;### (autoloads (cperl-perldoc-at-point cperl-perldoc cperl-mode) | 5202 | ;;;### (autoloads (cperl-perldoc-at-point cperl-perldoc cperl-mode) |
| 5203 | ;;;;;; "cperl-mode" "progmodes/cperl-mode.el" (17899 1957)) | 5203 | ;;;;;; "cperl-mode" "progmodes/cperl-mode.el" (17955 36604)) |
| 5204 | ;;; Generated autoloads from progmodes/cperl-mode.el | 5204 | ;;; Generated autoloads from progmodes/cperl-mode.el |
| 5205 | 5205 | ||
| 5206 | (autoload (quote cperl-mode) "cperl-mode" "\ | 5206 | (autoload (quote cperl-mode) "cperl-mode" "\ |
| @@ -5538,7 +5538,7 @@ Enable CUA selection mode without the C-z/C-x/C-c/C-v bindings. | |||
| 5538 | ;;;;;; customize-mode customize customize-save-variable customize-set-variable | 5538 | ;;;;;; customize-mode customize customize-save-variable customize-set-variable |
| 5539 | ;;;;;; customize-set-value custom-menu-sort-alphabetically custom-buffer-sort-alphabetically | 5539 | ;;;;;; customize-set-value custom-menu-sort-alphabetically custom-buffer-sort-alphabetically |
| 5540 | ;;;;;; custom-browse-sort-alphabetically) "cus-edit" "cus-edit.el" | 5540 | ;;;;;; custom-browse-sort-alphabetically) "cus-edit" "cus-edit.el" |
| 5541 | ;;;;;; (17900 13368)) | 5541 | ;;;;;; (17952 11093)) |
| 5542 | ;;; Generated autoloads from cus-edit.el | 5542 | ;;; Generated autoloads from cus-edit.el |
| 5543 | 5543 | ||
| 5544 | (defvar custom-browse-sort-alphabetically nil "\ | 5544 | (defvar custom-browse-sort-alphabetically nil "\ |
| @@ -6044,8 +6044,8 @@ See also `dabbrev-abbrev-char-regexp' and \\[dabbrev-completion]. | |||
| 6044 | 6044 | ||
| 6045 | ;;;*** | 6045 | ;;;*** |
| 6046 | 6046 | ||
| 6047 | ;;;### (autoloads (dcl-mode) "dcl-mode" "progmodes/dcl-mode.el" (17842 | 6047 | ;;;### (autoloads (dcl-mode) "dcl-mode" "progmodes/dcl-mode.el" (17949 |
| 6048 | ;;;;;; 56333)) | 6048 | ;;;;;; 41468)) |
| 6049 | ;;; Generated autoloads from progmodes/dcl-mode.el | 6049 | ;;; Generated autoloads from progmodes/dcl-mode.el |
| 6050 | 6050 | ||
| 6051 | (autoload (quote dcl-mode) "dcl-mode" "\ | 6051 | (autoload (quote dcl-mode) "dcl-mode" "\ |
| @@ -6442,7 +6442,7 @@ as well as widgets, buttons, overlays, and text properties. | |||
| 6442 | ;;;### (autoloads (desktop-revert desktop-save-in-desktop-dir desktop-change-dir | 6442 | ;;;### (autoloads (desktop-revert desktop-save-in-desktop-dir desktop-change-dir |
| 6443 | ;;;;;; desktop-load-default desktop-read desktop-remove desktop-save | 6443 | ;;;;;; desktop-load-default desktop-read desktop-remove desktop-save |
| 6444 | ;;;;;; desktop-clear desktop-locals-to-save desktop-save-mode) "desktop" | 6444 | ;;;;;; desktop-clear desktop-locals-to-save desktop-save-mode) "desktop" |
| 6445 | ;;;;;; "desktop.el" (17893 17506)) | 6445 | ;;;;;; "desktop.el" (17949 41467)) |
| 6446 | ;;; Generated autoloads from desktop.el | 6446 | ;;; Generated autoloads from desktop.el |
| 6447 | 6447 | ||
| 6448 | (defvar desktop-save-mode nil "\ | 6448 | (defvar desktop-save-mode nil "\ |
| @@ -6676,7 +6676,7 @@ Not documented | |||
| 6676 | ;;;*** | 6676 | ;;;*** |
| 6677 | 6677 | ||
| 6678 | ;;;### (autoloads (diary-mode diary-mail-entries diary) "diary-lib" | 6678 | ;;;### (autoloads (diary-mode diary-mail-entries diary) "diary-lib" |
| 6679 | ;;;;;; "calendar/diary-lib.el" (17929 8808)) | 6679 | ;;;;;; "calendar/diary-lib.el" (17944 20140)) |
| 6680 | ;;; Generated autoloads from calendar/diary-lib.el | 6680 | ;;; Generated autoloads from calendar/diary-lib.el |
| 6681 | 6681 | ||
| 6682 | (autoload (quote diary) "diary-lib" "\ | 6682 | (autoload (quote diary) "diary-lib" "\ |
| @@ -6756,14 +6756,13 @@ With prefix arg, prompt for diff switches. | |||
| 6756 | ;;;*** | 6756 | ;;;*** |
| 6757 | 6757 | ||
| 6758 | ;;;### (autoloads (diff-minor-mode diff-mode) "diff-mode" "diff-mode.el" | 6758 | ;;;### (autoloads (diff-minor-mode diff-mode) "diff-mode" "diff-mode.el" |
| 6759 | ;;;;;; (17907 56729)) | 6759 | ;;;;;; (17942 63381)) |
| 6760 | ;;; Generated autoloads from diff-mode.el | 6760 | ;;; Generated autoloads from diff-mode.el |
| 6761 | 6761 | ||
| 6762 | (autoload (quote diff-mode) "diff-mode" "\ | 6762 | (autoload (quote diff-mode) "diff-mode" "\ |
| 6763 | Major mode for viewing/editing context diffs. | 6763 | Major mode for viewing/editing context diffs. |
| 6764 | Supports unified and context diffs as well as (to a lesser extent) | 6764 | Supports unified and context diffs as well as (to a lesser extent) |
| 6765 | normal diffs. If you edit the buffer manually, diff-mode will try | 6765 | normal diffs. |
| 6766 | to update the hunk headers for you on-the-fly. | ||
| 6767 | 6766 | ||
| 6768 | When the buffer is read-only, the ESC prefix is not necessary. | 6767 | When the buffer is read-only, the ESC prefix is not necessary. |
| 6769 | If you edit the buffer manually, diff-mode will try to update the hunk | 6768 | If you edit the buffer manually, diff-mode will try to update the hunk |
| @@ -6773,9 +6772,6 @@ You can also switch between context diff and unified diff with \\[diff-context-> | |||
| 6773 | or vice versa with \\[diff-unified->context] and you can also reverse the direction of | 6772 | or vice versa with \\[diff-unified->context] and you can also reverse the direction of |
| 6774 | a diff with \\[diff-reverse-direction]. | 6773 | a diff with \\[diff-reverse-direction]. |
| 6775 | 6774 | ||
| 6776 | When the buffer is read-only, the Meta- modifier is not necessary | ||
| 6777 | to run the Diff mode commands: | ||
| 6778 | |||
| 6779 | \\{diff-mode-map} | 6775 | \\{diff-mode-map} |
| 6780 | 6776 | ||
| 6781 | \(fn)" t nil) | 6777 | \(fn)" t nil) |
| @@ -7412,7 +7408,7 @@ true then the type of the file linked to by FILE is printed instead. | |||
| 7412 | ;;;*** | 7408 | ;;;*** |
| 7413 | 7409 | ||
| 7414 | ;;;### (autoloads (dired-do-relsymlink dired-jump) "dired-x" "dired-x.el" | 7410 | ;;;### (autoloads (dired-do-relsymlink dired-jump) "dired-x" "dired-x.el" |
| 7415 | ;;;;;; (17859 33405)) | 7411 | ;;;;;; (17942 63381)) |
| 7416 | ;;; Generated autoloads from dired-x.el | 7412 | ;;; Generated autoloads from dired-x.el |
| 7417 | 7413 | ||
| 7418 | (autoload (quote dired-jump) "dired-x" "\ | 7414 | (autoload (quote dired-jump) "dired-x" "\ |
| @@ -7596,7 +7592,7 @@ for users who call this function in `.emacs'. | |||
| 7596 | ;;;*** | 7592 | ;;;*** |
| 7597 | 7593 | ||
| 7598 | ;;;### (autoloads (dissociated-press) "dissociate" "play/dissociate.el" | 7594 | ;;;### (autoloads (dissociated-press) "dissociate" "play/dissociate.el" |
| 7599 | ;;;;;; (17842 55395)) | 7595 | ;;;;;; (17941 38806)) |
| 7600 | ;;; Generated autoloads from play/dissociate.el | 7596 | ;;; Generated autoloads from play/dissociate.el |
| 7601 | 7597 | ||
| 7602 | (autoload (quote dissociated-press) "dissociate" "\ | 7598 | (autoload (quote dissociated-press) "dissociate" "\ |
| @@ -7612,7 +7608,7 @@ Default is 2. | |||
| 7612 | 7608 | ||
| 7613 | ;;;*** | 7609 | ;;;*** |
| 7614 | 7610 | ||
| 7615 | ;;;### (autoloads (dnd-protocol-alist) "dnd" "dnd.el" (17842 58280)) | 7611 | ;;;### (autoloads (dnd-protocol-alist) "dnd" "dnd.el" (17949 41467)) |
| 7616 | ;;; Generated autoloads from dnd.el | 7612 | ;;; Generated autoloads from dnd.el |
| 7617 | 7613 | ||
| 7618 | (defvar dnd-protocol-alist (quote (("^file:///" . dnd-open-local-file) ("^file://" . dnd-open-file) ("^file:" . dnd-open-local-file) ("^\\(https?\\|ftp\\|file\\|nfs\\)://" . dnd-open-file))) "\ | 7614 | (defvar dnd-protocol-alist (quote (("^file:///" . dnd-open-local-file) ("^file://" . dnd-open-file) ("^file:" . dnd-open-local-file) ("^\\(https?\\|ftp\\|file\\|nfs\\)://" . dnd-open-file))) "\ |
| @@ -7657,7 +7653,7 @@ Locate SOA record and increment the serial field. | |||
| 7657 | 7653 | ||
| 7658 | ;;;*** | 7654 | ;;;*** |
| 7659 | 7655 | ||
| 7660 | ;;;### (autoloads (doctor) "doctor" "play/doctor.el" (17842 55395)) | 7656 | ;;;### (autoloads (doctor) "doctor" "play/doctor.el" (17941 38806)) |
| 7661 | ;;; Generated autoloads from play/doctor.el | 7657 | ;;; Generated autoloads from play/doctor.el |
| 7662 | 7658 | ||
| 7663 | (autoload (quote doctor) "doctor" "\ | 7659 | (autoload (quote doctor) "doctor" "\ |
| @@ -7956,7 +7952,7 @@ To implement dynamic menus, either call this from | |||
| 7956 | ;;;;;; ebnf-eps-directory ebnf-spool-region ebnf-spool-buffer ebnf-spool-file | 7952 | ;;;;;; ebnf-eps-directory ebnf-spool-region ebnf-spool-buffer ebnf-spool-file |
| 7957 | ;;;;;; ebnf-spool-directory ebnf-print-region ebnf-print-buffer | 7953 | ;;;;;; ebnf-spool-directory ebnf-print-region ebnf-print-buffer |
| 7958 | ;;;;;; ebnf-print-file ebnf-print-directory ebnf-customize) "ebnf2ps" | 7954 | ;;;;;; ebnf-print-file ebnf-print-directory ebnf-customize) "ebnf2ps" |
| 7959 | ;;;;;; "progmodes/ebnf2ps.el" (17859 54480)) | 7955 | ;;;;;; "progmodes/ebnf2ps.el" (17952 11093)) |
| 7960 | ;;; Generated autoloads from progmodes/ebnf2ps.el | 7956 | ;;; Generated autoloads from progmodes/ebnf2ps.el |
| 7961 | 7957 | ||
| 7962 | (autoload (quote ebnf-customize) "ebnf2ps" "\ | 7958 | (autoload (quote ebnf-customize) "ebnf2ps" "\ |
| @@ -8413,7 +8409,7 @@ With prefix arg NOCONFIRM, execute current line as-is without editing. | |||
| 8413 | 8409 | ||
| 8414 | ;;;### (autoloads (edebug-all-forms edebug-all-defs edebug-eval-top-level-form | 8410 | ;;;### (autoloads (edebug-all-forms edebug-all-defs edebug-eval-top-level-form |
| 8415 | ;;;;;; edebug-basic-spec edebug-all-forms edebug-all-defs) "edebug" | 8411 | ;;;;;; edebug-basic-spec edebug-all-forms edebug-all-defs) "edebug" |
| 8416 | ;;;;;; "emacs-lisp/edebug.el" (17930 34071)) | 8412 | ;;;;;; "emacs-lisp/edebug.el" (17952 11093)) |
| 8417 | ;;; Generated autoloads from emacs-lisp/edebug.el | 8413 | ;;; Generated autoloads from emacs-lisp/edebug.el |
| 8418 | 8414 | ||
| 8419 | (defvar edebug-all-defs nil "\ | 8415 | (defvar edebug-all-defs nil "\ |
| @@ -10719,7 +10715,7 @@ you can set `feedmail-queue-reminder-alist' to nil. | |||
| 10719 | ;;;*** | 10715 | ;;;*** |
| 10720 | 10716 | ||
| 10721 | ;;;### (autoloads (ffap-bindings dired-at-point ffap-at-mouse ffap-menu | 10717 | ;;;### (autoloads (ffap-bindings dired-at-point ffap-at-mouse ffap-menu |
| 10722 | ;;;;;; find-file-at-point ffap-next) "ffap" "ffap.el" (17829 31540)) | 10718 | ;;;;;; find-file-at-point ffap-next) "ffap" "ffap.el" (17943 4602)) |
| 10723 | ;;; Generated autoloads from ffap.el | 10719 | ;;; Generated autoloads from ffap.el |
| 10724 | 10720 | ||
| 10725 | (autoload (quote ffap-next) "ffap" "\ | 10721 | (autoload (quote ffap-next) "ffap" "\ |
| @@ -11271,7 +11267,7 @@ Turn flymake mode off. | |||
| 11271 | 11267 | ||
| 11272 | ;;;### (autoloads (flyspell-buffer flyspell-region flyspell-mode-off | 11268 | ;;;### (autoloads (flyspell-buffer flyspell-region flyspell-mode-off |
| 11273 | ;;;;;; turn-off-flyspell turn-on-flyspell flyspell-mode flyspell-prog-mode) | 11269 | ;;;;;; turn-off-flyspell turn-on-flyspell flyspell-mode flyspell-prog-mode) |
| 11274 | ;;;;;; "flyspell" "textmodes/flyspell.el" (17927 20254)) | 11270 | ;;;;;; "flyspell" "textmodes/flyspell.el" (17942 63381)) |
| 11275 | ;;; Generated autoloads from textmodes/flyspell.el | 11271 | ;;; Generated autoloads from textmodes/flyspell.el |
| 11276 | 11272 | ||
| 11277 | (autoload (quote flyspell-prog-mode) "flyspell" "\ | 11273 | (autoload (quote flyspell-prog-mode) "flyspell" "\ |
| @@ -11414,8 +11410,8 @@ in your `~/.emacs' file, replacing [f7] by your favourite key: | |||
| 11414 | 11410 | ||
| 11415 | ;;;*** | 11411 | ;;;*** |
| 11416 | 11412 | ||
| 11417 | ;;;### (autoloads (footnote-mode) "footnote" "mail/footnote.el" (17842 | 11413 | ;;;### (autoloads (footnote-mode) "footnote" "mail/footnote.el" (17954 |
| 11418 | ;;;;;; 55035)) | 11414 | ;;;;;; 24686)) |
| 11419 | ;;; Generated autoloads from mail/footnote.el | 11415 | ;;; Generated autoloads from mail/footnote.el |
| 11420 | 11416 | ||
| 11421 | (autoload (quote footnote-mode) "footnote" "\ | 11417 | (autoload (quote footnote-mode) "footnote" "\ |
| @@ -11609,7 +11605,7 @@ and choose the directory as the fortune-file. | |||
| 11609 | ;;;*** | 11605 | ;;;*** |
| 11610 | 11606 | ||
| 11611 | ;;;### (autoloads (gdb-enable-debug gdba) "gdb-ui" "progmodes/gdb-ui.el" | 11607 | ;;;### (autoloads (gdb-enable-debug gdba) "gdb-ui" "progmodes/gdb-ui.el" |
| 11612 | ;;;;;; (17893 61665)) | 11608 | ;;;;;; (17941 38806)) |
| 11613 | ;;; Generated autoloads from progmodes/gdb-ui.el | 11609 | ;;; Generated autoloads from progmodes/gdb-ui.el |
| 11614 | 11610 | ||
| 11615 | (autoload (quote gdba) "gdb-ui" "\ | 11611 | (autoload (quote gdba) "gdb-ui" "\ |
| @@ -12303,7 +12299,7 @@ Update the .newsrc.eld file to reflect the change of nntp server. | |||
| 12303 | ;;;*** | 12299 | ;;;*** |
| 12304 | 12300 | ||
| 12305 | ;;;### (autoloads (gnus-button-reply gnus-button-mailto gnus-msg-mail) | 12301 | ;;;### (autoloads (gnus-button-reply gnus-button-mailto gnus-msg-mail) |
| 12306 | ;;;;;; "gnus-msg" "gnus/gnus-msg.el" (17938 61442)) | 12302 | ;;;;;; "gnus-msg" "gnus/gnus-msg.el" (17949 41467)) |
| 12307 | ;;; Generated autoloads from gnus/gnus-msg.el | 12303 | ;;; Generated autoloads from gnus/gnus-msg.el |
| 12308 | 12304 | ||
| 12309 | (autoload (quote gnus-msg-mail) "gnus-msg" "\ | 12305 | (autoload (quote gnus-msg-mail) "gnus-msg" "\ |
| @@ -12543,7 +12539,7 @@ Add the window configuration CONF to `gnus-buffer-configuration'. | |||
| 12543 | 12539 | ||
| 12544 | ;;;*** | 12540 | ;;;*** |
| 12545 | 12541 | ||
| 12546 | ;;;### (autoloads (gomoku) "gomoku" "play/gomoku.el" (17842 55395)) | 12542 | ;;;### (autoloads (gomoku) "gomoku" "play/gomoku.el" (17941 38806)) |
| 12547 | ;;; Generated autoloads from play/gomoku.el | 12543 | ;;; Generated autoloads from play/gomoku.el |
| 12548 | 12544 | ||
| 12549 | (autoload (quote gomoku) "gomoku" "\ | 12545 | (autoload (quote gomoku) "gomoku" "\ |
| @@ -12600,7 +12596,7 @@ Also fontifies the buffer appropriately (see `goto-address-fontify-p' and | |||
| 12600 | 12596 | ||
| 12601 | ;;;### (autoloads (rgrep lgrep grep-find grep grep-mode grep-compute-defaults | 12597 | ;;;### (autoloads (rgrep lgrep grep-find grep grep-mode grep-compute-defaults |
| 12602 | ;;;;;; grep-process-setup grep-setup-hook grep-find-command grep-command | 12598 | ;;;;;; grep-process-setup grep-setup-hook grep-find-command grep-command |
| 12603 | ;;;;;; grep-window-height) "grep" "progmodes/grep.el" (17908 16392)) | 12599 | ;;;;;; grep-window-height) "grep" "progmodes/grep.el" (17944 20144)) |
| 12604 | ;;; Generated autoloads from progmodes/grep.el | 12600 | ;;; Generated autoloads from progmodes/grep.el |
| 12605 | 12601 | ||
| 12606 | (defvar grep-window-height nil "\ | 12602 | (defvar grep-window-height nil "\ |
| @@ -12643,10 +12639,10 @@ The default find program for `grep-find-command'. | |||
| 12643 | This variable's value takes effect when `grep-compute-defaults' is called.") | 12639 | This variable's value takes effect when `grep-compute-defaults' is called.") |
| 12644 | 12640 | ||
| 12645 | (defvar grep-find-use-xargs nil "\ | 12641 | (defvar grep-find-use-xargs nil "\ |
| 12646 | Whether \\[grep-find] uses the `xargs' utility by default. | 12642 | Non-nil means that `grep-find' uses the `xargs' utility by default. |
| 12647 | 12643 | If `exec', use `find -exec'. | |
| 12648 | If `exec', it uses `find -exec'; if `gnu', it uses `find -print0' and `xargs -0'; | 12644 | If `gnu', use `find -print0' and `xargs -0'. |
| 12649 | if not nil and not `gnu', it uses `find -print' and `xargs'. | 12645 | Any other non-nil value means to use `find -print' and `xargs'. |
| 12650 | 12646 | ||
| 12651 | This variable's value takes effect when `grep-compute-defaults' is called.") | 12647 | This variable's value takes effect when `grep-compute-defaults' is called.") |
| 12652 | 12648 | ||
| @@ -12754,7 +12750,7 @@ the form \"WINDOW-ID PIXMAP-ID\". Value is non-nil if successful. | |||
| 12754 | ;;;*** | 12750 | ;;;*** |
| 12755 | 12751 | ||
| 12756 | ;;;### (autoloads (gdb-script-mode jdb pdb perldb xdb dbx sdb gdb) | 12752 | ;;;### (autoloads (gdb-script-mode jdb pdb perldb xdb dbx sdb gdb) |
| 12757 | ;;;;;; "gud" "progmodes/gud.el" (17938 61442)) | 12753 | ;;;;;; "gud" "progmodes/gud.el" (17950 21759)) |
| 12758 | ;;; Generated autoloads from progmodes/gud.el | 12754 | ;;; Generated autoloads from progmodes/gud.el |
| 12759 | 12755 | ||
| 12760 | (autoload (quote gdb) "gud" "\ | 12756 | (autoload (quote gdb) "gud" "\ |
| @@ -16488,7 +16484,7 @@ Not documented | |||
| 16488 | ;;;*** | 16484 | ;;;*** |
| 16489 | 16485 | ||
| 16490 | ;;;### (autoloads (lm lm-test-run) "landmark" "play/landmark.el" | 16486 | ;;;### (autoloads (lm lm-test-run) "landmark" "play/landmark.el" |
| 16491 | ;;;;;; (17842 55395)) | 16487 | ;;;;;; (17941 38806)) |
| 16492 | ;;; Generated autoloads from play/landmark.el | 16488 | ;;; Generated autoloads from play/landmark.el |
| 16493 | 16489 | ||
| 16494 | (defalias (quote landmark-repeat) (quote lm-test-run)) | 16490 | (defalias (quote landmark-repeat) (quote lm-test-run)) |
| @@ -16711,8 +16707,8 @@ generations (this defaults to 1). | |||
| 16711 | 16707 | ||
| 16712 | ;;;*** | 16708 | ;;;*** |
| 16713 | 16709 | ||
| 16714 | ;;;### (autoloads (unload-feature) "loadhist" "loadhist.el" (17870 | 16710 | ;;;### (autoloads (unload-feature) "loadhist" "loadhist.el" (17942 |
| 16715 | ;;;;;; 63949)) | 16711 | ;;;;;; 63381)) |
| 16716 | ;;; Generated autoloads from loadhist.el | 16712 | ;;; Generated autoloads from loadhist.el |
| 16717 | 16713 | ||
| 16718 | (autoload (quote unload-feature) "loadhist" "\ | 16714 | (autoload (quote unload-feature) "loadhist" "\ |
| @@ -17450,8 +17446,8 @@ yourself the value of `master-of' by calling `master-show-slave'. | |||
| 17450 | 17446 | ||
| 17451 | ;;;*** | 17447 | ;;;*** |
| 17452 | 17448 | ||
| 17453 | ;;;### (autoloads (menu-bar-mode) "menu-bar" "menu-bar.el" (17842 | 17449 | ;;;### (autoloads (menu-bar-mode) "menu-bar" "menu-bar.el" (17942 |
| 17454 | ;;;;;; 58279)) | 17450 | ;;;;;; 63381)) |
| 17455 | ;;; Generated autoloads from menu-bar.el | 17451 | ;;; Generated autoloads from menu-bar.el |
| 17456 | 17452 | ||
| 17457 | (put (quote menu-bar-mode) (quote standard-value) (quote (t))) | 17453 | (put (quote menu-bar-mode) (quote standard-value) (quote (t))) |
| @@ -17486,7 +17482,7 @@ turn on menu bars; otherwise, turn off menu bars. | |||
| 17486 | ;;;;;; message-cite-function message-yank-prefix message-citation-line-function | 17482 | ;;;;;; message-cite-function message-yank-prefix message-citation-line-function |
| 17487 | ;;;;;; message-send-mail-function message-user-organization-file | 17483 | ;;;;;; message-send-mail-function message-user-organization-file |
| 17488 | ;;;;;; message-signature-separator message-from-style) "message" | 17484 | ;;;;;; message-signature-separator message-from-style) "message" |
| 17489 | ;;;;;; "gnus/message.el" (17929 33467)) | 17485 | ;;;;;; "gnus/message.el" (17949 41467)) |
| 17490 | ;;; Generated autoloads from gnus/message.el | 17486 | ;;; Generated autoloads from gnus/message.el |
| 17491 | 17487 | ||
| 17492 | (defvar message-from-style (quote default) "\ | 17488 | (defvar message-from-style (quote default) "\ |
| @@ -19570,7 +19566,7 @@ The file is stored under the name `org-combined-agenda-icalendar-file'. | |||
| 19570 | ;;;*** | 19566 | ;;;*** |
| 19571 | 19567 | ||
| 19572 | ;;;### (autoloads (outline-minor-mode outline-mode) "outline" "outline.el" | 19568 | ;;;### (autoloads (outline-minor-mode outline-mode) "outline" "outline.el" |
| 19573 | ;;;;;; (17881 61722)) | 19569 | ;;;;;; (17952 11093)) |
| 19574 | ;;; Generated autoloads from outline.el | 19570 | ;;; Generated autoloads from outline.el |
| 19575 | (put 'outline-regexp 'safe-local-variable 'string-or-null-p) | 19571 | (put 'outline-regexp 'safe-local-variable 'string-or-null-p) |
| 19576 | 19572 | ||
| @@ -19949,8 +19945,8 @@ Completion for the `chgrp' command. | |||
| 19949 | 19945 | ||
| 19950 | ;;;### (autoloads (pcomplete-shell-setup pcomplete-comint-setup pcomplete-list | 19946 | ;;;### (autoloads (pcomplete-shell-setup pcomplete-comint-setup pcomplete-list |
| 19951 | ;;;;;; pcomplete-help pcomplete-expand pcomplete-continue pcomplete-expand-and-complete | 19947 | ;;;;;; pcomplete-help pcomplete-expand pcomplete-continue pcomplete-expand-and-complete |
| 19952 | ;;;;;; pcomplete-reverse pcomplete) "pcomplete" "pcomplete.el" (17900 | 19948 | ;;;;;; pcomplete-reverse pcomplete) "pcomplete" "pcomplete.el" (17944 |
| 19953 | ;;;;;; 30230)) | 19949 | ;;;;;; 62194)) |
| 19954 | ;;; Generated autoloads from pcomplete.el | 19950 | ;;; Generated autoloads from pcomplete.el |
| 19955 | 19951 | ||
| 19956 | (autoload (quote pcomplete) "pcomplete" "\ | 19952 | (autoload (quote pcomplete) "pcomplete" "\ |
| @@ -20094,7 +20090,7 @@ The exact behavior is determined also by `cvs-dired-use-hook'." (when (stringp d | |||
| 20094 | ;;;*** | 20090 | ;;;*** |
| 20095 | 20091 | ||
| 20096 | ;;;### (autoloads (perl-mode) "perl-mode" "progmodes/perl-mode.el" | 20092 | ;;;### (autoloads (perl-mode) "perl-mode" "progmodes/perl-mode.el" |
| 20097 | ;;;;;; (17842 56332)) | 20093 | ;;;;;; (17955 36604)) |
| 20098 | ;;; Generated autoloads from progmodes/perl-mode.el | 20094 | ;;; Generated autoloads from progmodes/perl-mode.el |
| 20099 | 20095 | ||
| 20100 | (autoload (quote perl-mode) "perl-mode" "\ | 20096 | (autoload (quote perl-mode) "perl-mode" "\ |
| @@ -21451,7 +21447,7 @@ If EXTENSION is any other symbol, it is ignored. | |||
| 21451 | ;;;*** | 21447 | ;;;*** |
| 21452 | 21448 | ||
| 21453 | ;;;### (autoloads (jython-mode python-mode run-python) "python" "progmodes/python.el" | 21449 | ;;;### (autoloads (jython-mode python-mode run-python) "python" "progmodes/python.el" |
| 21454 | ;;;;;; (17930 34071)) | 21450 | ;;;;;; (17956 9518)) |
| 21455 | ;;; Generated autoloads from progmodes/python.el | 21451 | ;;; Generated autoloads from progmodes/python.el |
| 21456 | 21452 | ||
| 21457 | (add-to-list (quote interpreter-mode-alist) (quote ("jython" . jython-mode))) | 21453 | (add-to-list (quote interpreter-mode-alist) (quote ("jython" . jython-mode))) |
| @@ -23470,7 +23466,7 @@ during scrolling. | |||
| 23470 | ;;;;;; mail-alias-file mail-default-reply-to mail-archive-file-name | 23466 | ;;;;;; mail-alias-file mail-default-reply-to mail-archive-file-name |
| 23471 | ;;;;;; mail-header-separator send-mail-function mail-interactive | 23467 | ;;;;;; mail-header-separator send-mail-function mail-interactive |
| 23472 | ;;;;;; mail-self-blind mail-specify-envelope-from mail-from-style) | 23468 | ;;;;;; mail-self-blind mail-specify-envelope-from mail-from-style) |
| 23473 | ;;;;;; "sendmail" "mail/sendmail.el" (17842 55035)) | 23469 | ;;;;;; "sendmail" "mail/sendmail.el" (17942 63381)) |
| 23474 | ;;; Generated autoloads from mail/sendmail.el | 23470 | ;;; Generated autoloads from mail/sendmail.el |
| 23475 | 23471 | ||
| 23476 | (defvar mail-from-style (quote angles) "\ | 23472 | (defvar mail-from-style (quote angles) "\ |
| @@ -23667,16 +23663,16 @@ Like Text Mode but with these additional commands: | |||
| 23667 | \\[mail-send-and-exit] mail-send-and-exit (send the message and exit) | 23663 | \\[mail-send-and-exit] mail-send-and-exit (send the message and exit) |
| 23668 | 23664 | ||
| 23669 | Here are commands that move to a header field (and create it if there isn't): | 23665 | Here are commands that move to a header field (and create it if there isn't): |
| 23670 | \\[mail-to] move to To: \\[mail-subject] move to Subject: | 23666 | \\[mail-to] move to To: \\[mail-subject] move to Subj: |
| 23671 | \\[mail-cc] move to CC: \\[mail-bcc] move to BCC: | 23667 | \\[mail-bcc] move to BCC: \\[mail-cc] move to CC: |
| 23672 | \\[mail-fcc] move to FCC: \\[mail-reply-to] move to Reply-To: | 23668 | \\[mail-fcc] move to FCC: \\[mail-reply-to] move to Reply-To: |
| 23673 | \\[mail-mail-reply-to] move to Mail-Reply-To: | 23669 | \\[mail-mail-reply-to] move to Mail-Reply-To: |
| 23674 | \\[mail-mail-followup-to] move to Mail-Followup-To: | 23670 | \\[mail-mail-followup-to] move to Mail-Followup-To: |
| 23675 | \\[mail-text] mail-text (move to beginning of message text). | 23671 | \\[mail-text] move to message text. |
| 23676 | \\[mail-signature] mail-signature (insert `mail-signature-file' file). | 23672 | \\[mail-signature] mail-signature (insert `mail-signature-file' file). |
| 23677 | \\[mail-yank-original] mail-yank-original (insert current message, in Rmail). | 23673 | \\[mail-yank-original] mail-yank-original (insert current message, in Rmail). |
| 23678 | \\[mail-fill-yanked-message] mail-fill-yanked-message (fill what was yanked). | 23674 | \\[mail-fill-yanked-message] mail-fill-yanked-message (fill what was yanked). |
| 23679 | \\[mail-sent-via] mail-sent-via (add a Sent-via field for each To or CC). | 23675 | \\[mail-sent-via] mail-sent-via (add a sent-via field for each To or CC). |
| 23680 | Turning on Mail mode runs the normal hooks `text-mode-hook' and | 23676 | Turning on Mail mode runs the normal hooks `text-mode-hook' and |
| 23681 | `mail-mode-hook' (in that order). | 23677 | `mail-mode-hook' (in that order). |
| 23682 | 23678 | ||
| @@ -24141,7 +24137,7 @@ Turning on Sieve mode runs `sieve-mode-hook'. | |||
| 24141 | 24137 | ||
| 24142 | ;;;*** | 24138 | ;;;*** |
| 24143 | 24139 | ||
| 24144 | ;;;### (autoloads nil "simple" "simple.el" (17938 22875)) | 24140 | ;;;### (autoloads nil "simple" "simple.el" (17949 41467)) |
| 24145 | ;;; Generated autoloads from simple.el | 24141 | ;;; Generated autoloads from simple.el |
| 24146 | (put 'fill-prefix 'safe-local-variable 'string-or-null-p) | 24142 | (put 'fill-prefix 'safe-local-variable 'string-or-null-p) |
| 24147 | 24143 | ||
| @@ -24344,7 +24340,7 @@ interactively. If there's no argument, do it at the current buffer | |||
| 24344 | ;;;*** | 24340 | ;;;*** |
| 24345 | 24341 | ||
| 24346 | ;;;### (autoloads (smtpmail-send-queued-mail smtpmail-send-it) "smtpmail" | 24342 | ;;;### (autoloads (smtpmail-send-queued-mail smtpmail-send-it) "smtpmail" |
| 24347 | ;;;;;; "mail/smtpmail.el" (17938 24686)) | 24343 | ;;;;;; "mail/smtpmail.el" (17939 50716)) |
| 24348 | ;;; Generated autoloads from mail/smtpmail.el | 24344 | ;;; Generated autoloads from mail/smtpmail.el |
| 24349 | 24345 | ||
| 24350 | (autoload (quote smtpmail-send-it) "smtpmail" "\ | 24346 | (autoload (quote smtpmail-send-it) "smtpmail" "\ |
| @@ -25404,7 +25400,7 @@ Studlify-case the current buffer. | |||
| 25404 | 25400 | ||
| 25405 | ;;;*** | 25401 | ;;;*** |
| 25406 | 25402 | ||
| 25407 | ;;;### (autoloads (locate-library) "subr" "subr.el" (17938 61442)) | 25403 | ;;;### (autoloads (locate-library) "subr" "subr.el" (17949 41467)) |
| 25408 | ;;; Generated autoloads from subr.el | 25404 | ;;; Generated autoloads from subr.el |
| 25409 | 25405 | ||
| 25410 | (autoload (quote locate-library) "subr" "\ | 25406 | (autoload (quote locate-library) "subr" "\ |
| @@ -26215,8 +26211,8 @@ Normally input is edited in Emacs and sent a line at a time. | |||
| 26215 | 26211 | ||
| 26216 | ;;;*** | 26212 | ;;;*** |
| 26217 | 26213 | ||
| 26218 | ;;;### (autoloads (ansi-term term make-term) "term" "term.el" (17922 | 26214 | ;;;### (autoloads (ansi-term term make-term) "term" "term.el" (17952 |
| 26219 | ;;;;;; 37595)) | 26215 | ;;;;;; 11093)) |
| 26220 | ;;; Generated autoloads from term.el | 26216 | ;;; Generated autoloads from term.el |
| 26221 | 26217 | ||
| 26222 | (autoload (quote make-term) "term" "\ | 26218 | (autoload (quote make-term) "term" "\ |
| @@ -26292,7 +26288,7 @@ Start coverage on function under point. | |||
| 26292 | 26288 | ||
| 26293 | ;;;*** | 26289 | ;;;*** |
| 26294 | 26290 | ||
| 26295 | ;;;### (autoloads (tetris) "tetris" "play/tetris.el" (17897 26294)) | 26291 | ;;;### (autoloads (tetris) "tetris" "play/tetris.el" (17941 38806)) |
| 26296 | ;;; Generated autoloads from play/tetris.el | 26292 | ;;; Generated autoloads from play/tetris.el |
| 26297 | 26293 | ||
| 26298 | (autoload (quote tetris) "tetris" "\ | 26294 | (autoload (quote tetris) "tetris" "\ |
| @@ -27396,7 +27392,7 @@ PATTERN regexp. | |||
| 27396 | ;;;*** | 27392 | ;;;*** |
| 27397 | 27393 | ||
| 27398 | ;;;### (autoloads (tmm-prompt tmm-menubar-mouse tmm-menubar) "tmm" | 27394 | ;;;### (autoloads (tmm-prompt tmm-menubar-mouse tmm-menubar) "tmm" |
| 27399 | ;;;;;; "tmm.el" (17938 22875)) | 27395 | ;;;;;; "tmm.el" (17952 58711)) |
| 27400 | ;;; Generated autoloads from tmm.el | 27396 | ;;; Generated autoloads from tmm.el |
| 27401 | (define-key global-map "\M-`" 'tmm-menubar) | 27397 | (define-key global-map "\M-`" 'tmm-menubar) |
| 27402 | (define-key global-map [f10] 'tmm-menubar) | 27398 | (define-key global-map [f10] 'tmm-menubar) |
| @@ -28469,7 +28465,7 @@ Not documented | |||
| 28469 | ;;;*** | 28465 | ;;;*** |
| 28470 | 28466 | ||
| 28471 | ;;;### (autoloads (url-http-options url-http-file-attributes url-http-file-exists-p | 28467 | ;;;### (autoloads (url-http-options url-http-file-attributes url-http-file-exists-p |
| 28472 | ;;;;;; url-http) "url-http" "url/url-http.el" (17935 53395)) | 28468 | ;;;;;; url-http) "url-http" "url/url-http.el" (17952 11683)) |
| 28473 | ;;; Generated autoloads from url/url-http.el | 28469 | ;;; Generated autoloads from url/url-http.el |
| 28474 | 28470 | ||
| 28475 | (autoload (quote url-http) "url-http" "\ | 28471 | (autoload (quote url-http) "url-http" "\ |
| @@ -28665,7 +28661,7 @@ Not documented | |||
| 28665 | ;;;*** | 28661 | ;;;*** |
| 28666 | 28662 | ||
| 28667 | ;;;### (autoloads (url-generic-parse-url url-recreate-url) "url-parse" | 28663 | ;;;### (autoloads (url-generic-parse-url url-recreate-url) "url-parse" |
| 28668 | ;;;;;; "url/url-parse.el" (17842 56569)) | 28664 | ;;;;;; "url/url-parse.el" (17954 22157)) |
| 28669 | ;;; Generated autoloads from url/url-parse.el | 28665 | ;;; Generated autoloads from url/url-parse.el |
| 28670 | 28666 | ||
| 28671 | (autoload (quote url-recreate-url) "url-parse" "\ | 28667 | (autoload (quote url-recreate-url) "url-parse" "\ |
| @@ -30415,8 +30411,8 @@ With arg, turn widget mode on if and only if arg is positive. | |||
| 30415 | ;;;*** | 30411 | ;;;*** |
| 30416 | 30412 | ||
| 30417 | ;;;### (autoloads (widget-setup widget-insert widget-delete widget-create | 30413 | ;;;### (autoloads (widget-setup widget-insert widget-delete widget-create |
| 30418 | ;;;;;; widget-prompt-value widgetp) "wid-edit" "wid-edit.el" (17884 | 30414 | ;;;;;; widget-prompt-value widgetp) "wid-edit" "wid-edit.el" (17952 |
| 30419 | ;;;;;; 58614)) | 30415 | ;;;;;; 11093)) |
| 30420 | ;;; Generated autoloads from wid-edit.el | 30416 | ;;; Generated autoloads from wid-edit.el |
| 30421 | 30417 | ||
| 30422 | (autoload (quote widgetp) "wid-edit" "\ | 30418 | (autoload (quote widgetp) "wid-edit" "\ |
| @@ -30533,7 +30529,7 @@ With arg, turn Winner mode on if and only if arg is positive. | |||
| 30533 | ;;;*** | 30529 | ;;;*** |
| 30534 | 30530 | ||
| 30535 | ;;;### (autoloads (woman-find-file woman-dired-find-file woman) "woman" | 30531 | ;;;### (autoloads (woman-find-file woman-dired-find-file woman) "woman" |
| 30536 | ;;;;;; "woman.el" (17934 34122)) | 30532 | ;;;;;; "woman.el" (17949 41467)) |
| 30537 | ;;; Generated autoloads from woman.el | 30533 | ;;; Generated autoloads from woman.el |
| 30538 | 30534 | ||
| 30539 | (autoload (quote woman) "woman" "\ | 30535 | (autoload (quote woman) "woman" "\ |
| @@ -30778,7 +30774,7 @@ Zippy goes to the analyst. | |||
| 30778 | 30774 | ||
| 30779 | ;;;*** | 30775 | ;;;*** |
| 30780 | 30776 | ||
| 30781 | ;;;### (autoloads (zone) "zone" "play/zone.el" (17842 55395)) | 30777 | ;;;### (autoloads (zone) "zone" "play/zone.el" (17941 38806)) |
| 30782 | ;;; Generated autoloads from play/zone.el | 30778 | ;;; Generated autoloads from play/zone.el |
| 30783 | 30779 | ||
| 30784 | (autoload (quote zone) "zone" "\ | 30780 | (autoload (quote zone) "zone" "\ |
| @@ -30918,7 +30914,7 @@ Zone out, completely. | |||
| 30918 | ;;;;;; "url/url-vars.el" "url/vc-dav.el" "vc-hooks.el" "vcursor.el" | 30914 | ;;;;;; "url/url-vars.el" "url/vc-dav.el" "vc-hooks.el" "vcursor.el" |
| 30919 | ;;;;;; "version.el" "vms-patch.el" "vmsproc.el" "vt-control.el" | 30915 | ;;;;;; "version.el" "vms-patch.el" "vmsproc.el" "vt-control.el" |
| 30920 | ;;;;;; "vt100-led.el" "w32-fns.el" "w32-vars.el" "widget.el" "window.el" | 30916 | ;;;;;; "vt100-led.el" "w32-fns.el" "w32-vars.el" "widget.el" "window.el" |
| 30921 | ;;;;;; "x-dnd.el") (17938 62045 277063)) | 30917 | ;;;;;; "x-dnd.el") (17956 9728 35408)) |
| 30922 | 30918 | ||
| 30923 | ;;;*** | 30919 | ;;;*** |
| 30924 | 30920 | ||
diff --git a/lisp/locate.el b/lisp/locate.el index e8dafa79048..74a76fa4889 100644 --- a/lisp/locate.el +++ b/lisp/locate.el | |||
| @@ -114,8 +114,10 @@ | |||
| 114 | 114 | ||
| 115 | ;; Variables | 115 | ;; Variables |
| 116 | 116 | ||
| 117 | (defvar locate-current-search nil) | ||
| 118 | (defvar locate-current-filter nil) | 117 | (defvar locate-current-filter nil) |
| 118 | (defvar locate-local-filter nil) | ||
| 119 | (defvar locate-local-search nil) | ||
| 120 | (defvar locate-local-prompt nil) | ||
| 119 | 121 | ||
| 120 | (defgroup locate nil | 122 | (defgroup locate nil |
| 121 | "Interface to the locate command." | 123 | "Interface to the locate command." |
| @@ -220,7 +222,10 @@ option to \"/\"." | |||
| 220 | 222 | ||
| 221 | (defcustom locate-prompt-for-command nil | 223 | (defcustom locate-prompt-for-command nil |
| 222 | "If non-nil, the `locate' command prompts for a command to run. | 224 | "If non-nil, the `locate' command prompts for a command to run. |
| 223 | Otherwise, that behavior is invoked via a prefix argument." | 225 | Otherwise, that behavior is invoked via a prefix argument. |
| 226 | |||
| 227 | Setting this option non-nil actually inverts the meaning of a prefix arg; | ||
| 228 | that is, with a prefix arg, you get the default behavior." | ||
| 224 | :group 'locate | 229 | :group 'locate |
| 225 | :type 'boolean) | 230 | :type 'boolean) |
| 226 | 231 | ||
| @@ -240,8 +245,32 @@ Otherwise, that behavior is invoked via a prefix argument." | |||
| 240 | (skip-chars-backward "." pt) | 245 | (skip-chars-backward "." pt) |
| 241 | (point))))) | 246 | (point))))) |
| 242 | 247 | ||
| 248 | ;; Function for use in interactive declarations. | ||
| 249 | (defun locate-prompt-for-search-string () | ||
| 250 | (if (or (and current-prefix-arg | ||
| 251 | (not locate-prompt-for-command)) | ||
| 252 | (and (not current-prefix-arg) locate-prompt-for-command)) | ||
| 253 | (let ((locate-cmd (funcall locate-make-command-line ""))) | ||
| 254 | (read-from-minibuffer | ||
| 255 | "Run locate (like this): " | ||
| 256 | (cons | ||
| 257 | (concat (car locate-cmd) " " | ||
| 258 | (mapconcat 'identity (cdr locate-cmd) " ")) | ||
| 259 | (+ 2 (length (car locate-cmd)))) | ||
| 260 | nil nil 'locate-history-list)) | ||
| 261 | (let* ((default (locate-word-at-point)) | ||
| 262 | (input | ||
| 263 | (read-from-minibuffer | ||
| 264 | (if (> (length default) 0) | ||
| 265 | (format "Locate (default %s): " default) | ||
| 266 | (format "Locate: ")) | ||
| 267 | nil nil nil 'locate-history-list default t))) | ||
| 268 | (and (equal input "") default | ||
| 269 | (setq input default)) | ||
| 270 | input))) | ||
| 271 | |||
| 243 | ;;;###autoload | 272 | ;;;###autoload |
| 244 | (defun locate (search-string &optional filter) | 273 | (defun locate (search-string &optional filter arg) |
| 245 | "Run the program `locate', putting results in `*Locate*' buffer. | 274 | "Run the program `locate', putting results in `*Locate*' buffer. |
| 246 | Pass it SEARCH-STRING as argument. Interactively, prompt for SEARCH-STRING. | 275 | Pass it SEARCH-STRING as argument. Interactively, prompt for SEARCH-STRING. |
| 247 | With prefix arg, prompt for the exact shell command to run instead. | 276 | With prefix arg, prompt for the exact shell command to run instead. |
| @@ -258,68 +287,49 @@ You can specify another program for this command to run by customizing | |||
| 258 | the variables `locate-command' or `locate-make-command-line'. | 287 | the variables `locate-command' or `locate-make-command-line'. |
| 259 | 288 | ||
| 260 | The main use of FILTER is to implement `locate-with-filter'. See | 289 | The main use of FILTER is to implement `locate-with-filter'. See |
| 261 | the docstring of that function for its meaning." | 290 | the docstring of that function for its meaning. |
| 291 | |||
| 292 | ARG is the interactive prefix arg." | ||
| 262 | (interactive | 293 | (interactive |
| 263 | (list | 294 | (list |
| 264 | (if (or (and current-prefix-arg | 295 | (locate-prompt-for-search-string) |
| 265 | (not locate-prompt-for-command)) | 296 | nil |
| 266 | (and (not current-prefix-arg) locate-prompt-for-command)) | 297 | current-prefix-arg)) |
| 267 | (let ((locate-cmd (funcall locate-make-command-line ""))) | 298 | |
| 268 | (read-from-minibuffer | ||
| 269 | "Run locate (like this): " | ||
| 270 | (cons | ||
| 271 | (concat (car locate-cmd) " " | ||
| 272 | (mapconcat 'identity (cdr locate-cmd) " ")) | ||
| 273 | (+ 2 (length (car locate-cmd)))) | ||
| 274 | nil nil 'locate-history-list)) | ||
| 275 | (let* ((default (locate-word-at-point)) | ||
| 276 | (input | ||
| 277 | (read-from-minibuffer | ||
| 278 | (if (> (length default) 0) | ||
| 279 | (format "Locate (default %s): " default) | ||
| 280 | (format "Locate: ")) | ||
| 281 | nil nil nil 'locate-history-list default t))) | ||
| 282 | (and (equal input "") default | ||
| 283 | (setq input default)) | ||
| 284 | input)))) | ||
| 285 | (if (equal search-string "") | 299 | (if (equal search-string "") |
| 286 | (error "Please specify a filename to search for")) | 300 | (error "Please specify a filename to search for")) |
| 287 | (let* ((locate-cmd-list (funcall locate-make-command-line search-string)) | 301 | (let* ((locate-cmd-list (funcall locate-make-command-line search-string)) |
| 288 | (locate-cmd (car locate-cmd-list)) | 302 | (locate-cmd (car locate-cmd-list)) |
| 289 | (locate-cmd-args (cdr locate-cmd-list)) | 303 | (locate-cmd-args (cdr locate-cmd-list)) |
| 290 | (run-locate-command | 304 | (run-locate-command |
| 291 | (or (and current-prefix-arg (not locate-prompt-for-command)) | 305 | (or (and arg (not locate-prompt-for-command)) |
| 292 | (and (not current-prefix-arg) locate-prompt-for-command))) | 306 | (and (not arg) locate-prompt-for-command))) |
| 293 | locate-buffer | ||
| 294 | ) | 307 | ) |
| 295 | 308 | ||
| 296 | ;; Find the Locate buffer | 309 | ;; Find the Locate buffer |
| 297 | (setq locate-buffer (if (eq major-mode 'locate-mode) | 310 | (save-window-excursion |
| 298 | (current-buffer) | 311 | (set-buffer (get-buffer-create locate-buffer-name)) |
| 299 | (get-buffer-create locate-buffer-name))) | ||
| 300 | |||
| 301 | (save-excursion | ||
| 302 | (set-buffer locate-buffer) | ||
| 303 | (locate-mode) | 312 | (locate-mode) |
| 304 | |||
| 305 | (let ((inhibit-read-only t) | 313 | (let ((inhibit-read-only t) |
| 306 | (buffer-undo-list t)) | 314 | (buffer-undo-list t)) |
| 307 | (erase-buffer) | 315 | (erase-buffer) |
| 308 | 316 | ||
| 309 | (set (make-local-variable 'locate-current-search) search-string) | 317 | (setq locate-current-filter filter) |
| 310 | (set (make-local-variable 'locate-current-filter) filter) | 318 | (set (make-local-variable 'locate-local-search) search-string) |
| 319 | (set (make-local-variable 'locate-local-filter) filter) | ||
| 320 | (set (make-local-variable 'locate-local-prompt) run-locate-command) | ||
| 311 | 321 | ||
| 312 | (if run-locate-command | 322 | (if run-locate-command |
| 313 | (shell-command search-string) | 323 | (shell-command search-string locate-buffer-name) |
| 314 | (apply 'call-process locate-cmd nil t nil locate-cmd-args)) | 324 | (apply 'call-process locate-cmd nil t nil locate-cmd-args)) |
| 315 | 325 | ||
| 316 | (and filter | 326 | (and filter |
| 317 | (locate-filter-output filter)) | 327 | (locate-filter-output filter)) |
| 318 | 328 | ||
| 319 | (locate-do-setup search-string))) | 329 | (locate-do-setup search-string) |
| 320 | 330 | )) | |
| 321 | (unless (eq (current-buffer) locate-buffer) | 331 | (and (not (string-equal (buffer-name) locate-buffer-name)) |
| 322 | (switch-to-buffer-other-window locate-buffer)) | 332 | (switch-to-buffer-other-window locate-buffer-name)) |
| 323 | 333 | ||
| 324 | (run-hooks 'dired-mode-hook) | 334 | (run-hooks 'dired-mode-hook) |
| 325 | (dired-next-line 3) ;move to first matching file. | 335 | (dired-next-line 3) ;move to first matching file. |
| @@ -328,7 +338,7 @@ the docstring of that function for its meaning." | |||
| 328 | ) | 338 | ) |
| 329 | 339 | ||
| 330 | ;;;###autoload | 340 | ;;;###autoload |
| 331 | (defun locate-with-filter (search-string filter) | 341 | (defun locate-with-filter (search-string filter &optional arg) |
| 332 | "Run the executable program `locate' with a filter. | 342 | "Run the executable program `locate' with a filter. |
| 333 | This function is similar to the function `locate', which see. | 343 | This function is similar to the function `locate', which see. |
| 334 | The difference is that, when invoked interactively, the present function | 344 | The difference is that, when invoked interactively, the present function |
| @@ -338,14 +348,17 @@ that lists only those lines in the output of the locate program that | |||
| 338 | contain a match for the regular expression FILTER; this is often useful | 348 | contain a match for the regular expression FILTER; this is often useful |
| 339 | to constrain a big search. | 349 | to constrain a big search. |
| 340 | 350 | ||
| 351 | ARG is the interactive prefix arg, which has the same effect as in `locate'. | ||
| 352 | |||
| 341 | When called from Lisp, this function is identical with `locate', | 353 | When called from Lisp, this function is identical with `locate', |
| 342 | except that FILTER is not optional." | 354 | except that FILTER is not optional." |
| 343 | (interactive | 355 | (interactive |
| 344 | (list (read-from-minibuffer "Locate: " nil nil | 356 | (list |
| 345 | nil 'locate-history-list) | 357 | (locate-prompt-for-search-string) |
| 346 | (read-from-minibuffer "Filter: " nil nil | 358 | (read-from-minibuffer "Filter: " nil nil |
| 347 | nil 'locate-grep-history-list))) | 359 | nil 'locate-grep-history-list) |
| 348 | (locate search-string filter)) | 360 | current-prefix-arg)) |
| 361 | (locate search-string filter arg)) | ||
| 349 | 362 | ||
| 350 | (defun locate-filter-output (filter) | 363 | (defun locate-filter-output (filter) |
| 351 | "Filter output from the locate command." | 364 | "Filter output from the locate command." |
| @@ -469,7 +482,6 @@ do not work in subdirectories. | |||
| 469 | default-directory "/" | 482 | default-directory "/" |
| 470 | buffer-read-only t | 483 | buffer-read-only t |
| 471 | selective-display t) | 484 | selective-display t) |
| 472 | (buffer-disable-undo) | ||
| 473 | (dired-alist-add-1 default-directory (point-min-marker)) | 485 | (dired-alist-add-1 default-directory (point-min-marker)) |
| 474 | (set (make-local-variable 'dired-directory) "/") | 486 | (set (make-local-variable 'dired-directory) "/") |
| 475 | (set (make-local-variable 'dired-subdir-switches) locate-ls-subdir-switches) | 487 | (set (make-local-variable 'dired-subdir-switches) locate-ls-subdir-switches) |
| @@ -501,12 +513,11 @@ do not work in subdirectories. | |||
| 501 | ;; Nothing returned from locate command? | 513 | ;; Nothing returned from locate command? |
| 502 | (and (eobp) | 514 | (and (eobp) |
| 503 | (progn | 515 | (progn |
| 504 | (let ((filter locate-current-filter)) ; local | 516 | (kill-buffer locate-buffer-name) |
| 505 | (kill-buffer (current-buffer)) | 517 | (if locate-current-filter |
| 506 | (if filter | 518 | (error "Locate: no match for %s in database using filter %s" |
| 507 | (error "Locate: no match for %s in database using filter %s" | 519 | search-string locate-current-filter) |
| 508 | search-string filter) | 520 | (error "Locate: no match for %s in database" search-string)))) |
| 509 | (error "Locate: no match for %s in database" search-string))))) | ||
| 510 | 521 | ||
| 511 | (locate-insert-header search-string) | 522 | (locate-insert-header search-string) |
| 512 | 523 | ||
| @@ -590,14 +601,16 @@ do not work in subdirectories. | |||
| 590 | "Revert the *Locate* buffer. | 601 | "Revert the *Locate* buffer. |
| 591 | If `locate-update-when-revert' is non-nil, offer to update the | 602 | If `locate-update-when-revert' is non-nil, offer to update the |
| 592 | locate database using the shell command in `locate-update-command'." | 603 | locate database using the shell command in `locate-update-command'." |
| 593 | (and locate-update-when-revert | 604 | (let ((locate-buffer-name (buffer-name)) |
| 594 | (yes-or-no-p "Update locate database (may take a few seconds)? ") | 605 | (locate-prompt-for-command locate-local-prompt)) |
| 595 | ;; `expand-file-name' is used in order to autoload Tramp if | 606 | (and locate-update-when-revert |
| 596 | ;; necessary. It cannot be loaded when `default-directory' | 607 | (yes-or-no-p "Update locate database (may take a few seconds)? ") |
| 597 | ;; is remote. | 608 | ;; `expand-file-name' is used in order to autoload Tramp if |
| 598 | (let ((default-directory (expand-file-name locate-update-path))) | 609 | ;; necessary. It cannot be loaded when `default-directory' |
| 599 | (shell-command locate-update-command))) | 610 | ;; is remote. |
| 600 | (locate locate-current-search locate-current-filter)) | 611 | (let ((default-directory (expand-file-name locate-update-path))) |
| 612 | (shell-command locate-update-command))) | ||
| 613 | (locate locate-local-search locate-local-filter))) | ||
| 601 | 614 | ||
| 602 | ;;; Modified three functions from `dired.el': | 615 | ;;; Modified three functions from `dired.el': |
| 603 | ;;; dired-find-directory, | 616 | ;;; dired-find-directory, |
diff --git a/lisp/mail/footnote.el b/lisp/mail/footnote.el index 2dd2e7af175..7992438df25 100644 --- a/lisp/mail/footnote.el +++ b/lisp/mail/footnote.el | |||
| @@ -267,14 +267,17 @@ Wrapping around the alphabet implies successive repetitions of letters." | |||
| 267 | 267 | ||
| 268 | ;; Latin-1 | 268 | ;; Latin-1 |
| 269 | 269 | ||
| 270 | (defconst footnote-latin-regexp "¹²³ºª§¶" | 270 | (defconst footnote-latin-string "¹²³ºª§¶" |
| 271 | "String of Latin-1 footnoting characters.") | ||
| 272 | |||
| 273 | (defconst footnote-latin-regexp (concat "[" footnote-latin-string "]") | ||
| 271 | "Regexp for Latin-1 footnoting characters.") | 274 | "Regexp for Latin-1 footnoting characters.") |
| 272 | 275 | ||
| 273 | (defun Footnote-latin (n) | 276 | (defun Footnote-latin (n) |
| 274 | "Latin-1 footnote style. | 277 | "Latin-1 footnote style. |
| 275 | Use a range of Latin-1 non-ASCII characters for footnoting." | 278 | Use a range of Latin-1 non-ASCII characters for footnoting." |
| 276 | (string (aref footnote-latin-regexp | 279 | (string (aref footnote-latin-string |
| 277 | (mod (1- n) (length footnote-latin-regexp))))) | 280 | (mod (1- n) (length footnote-latin-string))))) |
| 278 | 281 | ||
| 279 | ;;; list of all footnote styles | 282 | ;;; list of all footnote styles |
| 280 | (defvar footnote-style-alist | 283 | (defvar footnote-style-alist |
| @@ -291,14 +294,18 @@ See footnote-han.el, footnote-greek.el and footnote-hebrew.el for more | |||
| 291 | exciting styles.") | 294 | exciting styles.") |
| 292 | 295 | ||
| 293 | (defcustom footnote-style 'numeric | 296 | (defcustom footnote-style 'numeric |
| 294 | "*Style used for footnoting. | 297 | "*Default style used for footnoting. |
| 295 | numeric == 1, 2, 3, ... | 298 | numeric == 1, 2, 3, ... |
| 296 | english-lower == a, b, c, ... | 299 | english-lower == a, b, c, ... |
| 297 | english-upper == A, B, C, ... | 300 | english-upper == A, B, C, ... |
| 298 | roman-lower == i, ii, iii, iv, v, ... | 301 | roman-lower == i, ii, iii, iv, v, ... |
| 299 | roman-upper == I, II, III, IV, V, ... | 302 | roman-upper == I, II, III, IV, V, ... |
| 300 | latin == ¹ ² ³ º ª § ¶ | 303 | latin == ¹ ² ³ º ª § ¶ |
| 301 | See also variables `footnote-start-tag' and `footnote-end-tag'." | 304 | See also variables `footnote-start-tag' and `footnote-end-tag'. |
| 305 | |||
| 306 | Customizing this variable has no effect on buffers already | ||
| 307 | displaying footnotes. You can change the style of existing | ||
| 308 | buffers using the command `Footnote-set-style'." | ||
| 302 | :type (cons 'choice (mapcar (lambda (x) (list 'const (car x))) | 309 | :type (cons 'choice (mapcar (lambda (x) (list 'const (car x))) |
| 303 | footnote-style-alist)) | 310 | footnote-style-alist)) |
| 304 | :group 'footnote) | 311 | :group 'footnote) |
| @@ -654,7 +661,7 @@ delete the footnote with that number." | |||
| 654 | (while (< i notes) | 661 | (while (< i notes) |
| 655 | (setq alist-ptr (nth i footnote-pointer-marker-alist)) | 662 | (setq alist-ptr (nth i footnote-pointer-marker-alist)) |
| 656 | (setq alist-txt (nth i footnote-text-marker-alist)) | 663 | (setq alist-txt (nth i footnote-text-marker-alist)) |
| 657 | (unless (eq (1+ i) (car alist-ptr)) | 664 | (unless (= (1+ i) (car alist-ptr)) |
| 658 | (Footnote-renumber (car alist-ptr) (1+ i) alist-ptr alist-txt)) | 665 | (Footnote-renumber (car alist-ptr) (1+ i) alist-ptr alist-txt)) |
| 659 | (setq i (1+ i)))))) | 666 | (setq i (1+ i)))))) |
| 660 | 667 | ||
diff --git a/lisp/outline.el b/lisp/outline.el index 579997754f2..d0c121a12c4 100644 --- a/lisp/outline.el +++ b/lisp/outline.el | |||
| @@ -1000,7 +1000,8 @@ Stop at the first and last subheadings of a superior heading." | |||
| 1000 | (error "No following same-level heading")))))) | 1000 | (error "No following same-level heading")))))) |
| 1001 | 1001 | ||
| 1002 | (defun outline-get-next-sibling () | 1002 | (defun outline-get-next-sibling () |
| 1003 | "Move to next heading of the same level, and return point or nil if none." | 1003 | "Move to next heading of the same level, and return point. |
| 1004 | If there is no such heading, return nil." | ||
| 1004 | (let ((level (funcall outline-level))) | 1005 | (let ((level (funcall outline-level))) |
| 1005 | (outline-next-visible-heading 1) | 1006 | (outline-next-visible-heading 1) |
| 1006 | (while (and (not (eobp)) (> (funcall outline-level) level)) | 1007 | (while (and (not (eobp)) (> (funcall outline-level) level)) |
| @@ -1026,15 +1027,18 @@ Stop at the first and last subheadings of a superior heading." | |||
| 1026 | (error "No previous same-level heading")))))) | 1027 | (error "No previous same-level heading")))))) |
| 1027 | 1028 | ||
| 1028 | (defun outline-get-last-sibling () | 1029 | (defun outline-get-last-sibling () |
| 1029 | "Move to previous heading of the same level, and return point or nil if none." | 1030 | "Move to previous heading of the same level, and return point. |
| 1030 | (let ((level (funcall outline-level))) | 1031 | If there is no such heading, return nil." |
| 1032 | (let ((opoint (point)) | ||
| 1033 | (level (funcall outline-level))) | ||
| 1031 | (outline-previous-visible-heading 1) | 1034 | (outline-previous-visible-heading 1) |
| 1032 | (while (and (> (funcall outline-level) level) | 1035 | (when (and (/= (point) opoint) (outline-on-heading-p)) |
| 1033 | (not (bobp))) | 1036 | (while (and (> (funcall outline-level) level) |
| 1034 | (outline-previous-visible-heading 1)) | 1037 | (not (bobp))) |
| 1035 | (if (< (funcall outline-level) level) | 1038 | (outline-previous-visible-heading 1)) |
| 1036 | nil | 1039 | (if (< (funcall outline-level) level) |
| 1037 | (point)))) | 1040 | nil |
| 1041 | (point))))) | ||
| 1038 | 1042 | ||
| 1039 | (defun outline-headers-as-kill (beg end) | 1043 | (defun outline-headers-as-kill (beg end) |
| 1040 | "Save the visible outline headers in region at the start of the kill ring. | 1044 | "Save the visible outline headers in region at the start of the kill ring. |
diff --git a/lisp/paren.el b/lisp/paren.el index 95f718d5683..38ac150b402 100644 --- a/lisp/paren.el +++ b/lisp/paren.el | |||
| @@ -143,6 +143,7 @@ in `show-paren-style' after `show-paren-delay' seconds of Emacs idle time." | |||
| 143 | (let ((oldpos (point)) | 143 | (let ((oldpos (point)) |
| 144 | (dir (cond ((eq (syntax-class (syntax-after (1- (point)))) 5) -1) | 144 | (dir (cond ((eq (syntax-class (syntax-after (1- (point)))) 5) -1) |
| 145 | ((eq (syntax-class (syntax-after (point))) 4) 1))) | 145 | ((eq (syntax-class (syntax-after (point))) 4) 1))) |
| 146 | (window-start (window-start)) | ||
| 146 | pos mismatch face) | 147 | pos mismatch face) |
| 147 | ;; | 148 | ;; |
| 148 | ;; Find the other end of the sexp. | 149 | ;; Find the other end of the sexp. |
| @@ -247,7 +248,13 @@ in `show-paren-style' after `show-paren-delay' seconds of Emacs idle time." | |||
| 247 | ;; | 248 | ;; |
| 248 | ;; Always set the overlay face, since it varies. | 249 | ;; Always set the overlay face, since it varies. |
| 249 | (overlay-put show-paren-overlay 'priority show-paren-priority) | 250 | (overlay-put show-paren-overlay 'priority show-paren-priority) |
| 250 | (overlay-put show-paren-overlay 'face face))) | 251 | (overlay-put show-paren-overlay 'face face)) |
| 252 | ;; If there are continued lines, the above operations can | ||
| 253 | ;; force redisplay to recenter the window (since there is no | ||
| 254 | ;; way for it to know that the overlay changes to the buffer | ||
| 255 | ;; are harmless). So reset the window-start. | ||
| 256 | (unless (window-minibuffer-p) | ||
| 257 | (set-window-start (selected-window) window-start))) | ||
| 251 | ;; show-paren-mode is nil in this buffer. | 258 | ;; show-paren-mode is nil in this buffer. |
| 252 | (and show-paren-overlay | 259 | (and show-paren-overlay |
| 253 | (delete-overlay show-paren-overlay)) | 260 | (delete-overlay show-paren-overlay)) |
diff --git a/lisp/progmodes/cc-cmds.el b/lisp/progmodes/cc-cmds.el index 79043c87b63..079ebb02622 100644 --- a/lisp/progmodes/cc-cmds.el +++ b/lisp/progmodes/cc-cmds.el | |||
| @@ -856,8 +856,8 @@ is inhibited." | |||
| 856 | (narrow-to-region (point-min) (point)) | 856 | (narrow-to-region (point-min) (point)) |
| 857 | (back-to-indentation) | 857 | (back-to-indentation) |
| 858 | (looking-at (concat c-current-comment-prefix "[ \t]*$"))))) | 858 | (looking-at (concat c-current-comment-prefix "[ \t]*$"))))) |
| 859 | (kill-region (progn (forward-line 0) (point)) | 859 | (delete-region (progn (forward-line 0) (point)) |
| 860 | (progn (end-of-line) (point))) | 860 | (progn (end-of-line) (point))) |
| 861 | (insert-char ?* 1)) ; the / comes later. ; Do I need a t (retain sticky properties) here? | 861 | (insert-char ?* 1)) ; the / comes later. ; Do I need a t (retain sticky properties) here? |
| 862 | 862 | ||
| 863 | (setq indentp (and (not arg) | 863 | (setq indentp (and (not arg) |
| @@ -1360,10 +1360,24 @@ No indentation or other \"electric\" behavior is performed." | |||
| 1360 | (and c-opt-block-decls-with-vars-key | 1360 | (and c-opt-block-decls-with-vars-key |
| 1361 | (save-excursion | 1361 | (save-excursion |
| 1362 | (c-syntactic-skip-backward "^;}" lim) | 1362 | (c-syntactic-skip-backward "^;}" lim) |
| 1363 | (and (eq (char-before) ?\}) | 1363 | (let ((eo-block (point)) |
| 1364 | (eq (car (c-beginning-of-decl-1 lim)) 'previous) | 1364 | bod) |
| 1365 | (looking-at c-opt-block-decls-with-vars-key) | 1365 | (and (eq (char-before) ?\}) |
| 1366 | (point))))) | 1366 | (eq (car (c-beginning-of-decl-1 lim)) 'previous) |
| 1367 | (setq bod (point)) | ||
| 1368 | ;; Look for struct or union or ... If we find one, it might | ||
| 1369 | ;; be the return type of a function, or the like. Exclude | ||
| 1370 | ;; this case. | ||
| 1371 | (c-syntactic-re-search-forward | ||
| 1372 | (concat "[;=\(\[{]\\|\\(" | ||
| 1373 | c-opt-block-decls-with-vars-key | ||
| 1374 | "\\)") | ||
| 1375 | eo-block t t t) | ||
| 1376 | (match-beginning 1) ; Is there a "struct" etc., somewhere? | ||
| 1377 | (not (eq (char-before) ?_)) | ||
| 1378 | (c-syntactic-re-search-forward "[;=\(\[{]" eo-block t t t) | ||
| 1379 | (eq (char-before) ?\{) | ||
| 1380 | bod))))) | ||
| 1367 | 1381 | ||
| 1368 | (defun c-where-wrt-brace-construct () | 1382 | (defun c-where-wrt-brace-construct () |
| 1369 | ;; Determine where we are with respect to functions (or other brace | 1383 | ;; Determine where we are with respect to functions (or other brace |
| @@ -1531,7 +1545,7 @@ defun." | |||
| 1531 | (setq arg (c-forward-to-nth-EOF-} (- arg) where))) | 1545 | (setq arg (c-forward-to-nth-EOF-} (- arg) where))) |
| 1532 | ;; Move forward to the next opening brace.... | 1546 | ;; Move forward to the next opening brace.... |
| 1533 | (when (and (= arg 0) | 1547 | (when (and (= arg 0) |
| 1534 | (c-syntactic-re-search-forward "{" nil t)) | 1548 | (c-syntactic-re-search-forward "{" nil 'eob)) |
| 1535 | (backward-char) | 1549 | (backward-char) |
| 1536 | ;; ... and backward to the function header. | 1550 | ;; ... and backward to the function header. |
| 1537 | (c-beginning-of-decl-1) | 1551 | (c-beginning-of-decl-1) |
diff --git a/lisp/progmodes/cc-mode.el b/lisp/progmodes/cc-mode.el index f5da0eecc2e..c3c17a6f3c5 100644 --- a/lisp/progmodes/cc-mode.el +++ b/lisp/progmodes/cc-mode.el | |||
| @@ -820,7 +820,7 @@ compatible with old code; callers should always specify it." | |||
| 820 | "$") | 820 | "$") |
| 821 | nil t) | 821 | nil t) |
| 822 | (beginning-of-line) | 822 | (beginning-of-line) |
| 823 | (kill-line 1))) | 823 | (delete-region (point) (progn (end-of-line) (point))))) |
| 824 | 824 | ||
| 825 | ;; Delete the first line, if we've got one, in case it contains a mode spec. | 825 | ;; Delete the first line, if we've got one, in case it contains a mode spec. |
| 826 | (unless (and lv-point | 826 | (unless (and lv-point |
| @@ -828,8 +828,7 @@ compatible with old code; callers should always specify it." | |||
| 828 | (forward-line 0) | 828 | (forward-line 0) |
| 829 | (bobp))) | 829 | (bobp))) |
| 830 | (goto-char (point-min)) | 830 | (goto-char (point-min)) |
| 831 | (unless (eobp) | 831 | (delete-region (point) (progn (end-of-line) (point)))))) |
| 832 | (kill-line 1))))) | ||
| 833 | 832 | ||
| 834 | (defun c-postprocess-file-styles () | 833 | (defun c-postprocess-file-styles () |
| 835 | "Function that post processes relevant file local variables in CC Mode. | 834 | "Function that post processes relevant file local variables in CC Mode. |
diff --git a/lisp/progmodes/compile.el b/lisp/progmodes/compile.el index 7fd5f83ea78..ce933cb13d5 100644 --- a/lisp/progmodes/compile.el +++ b/lisp/progmodes/compile.el | |||
| @@ -1042,7 +1042,7 @@ Returns the compilation buffer created." | |||
| 1042 | highlight-regexp)) | 1042 | highlight-regexp)) |
| 1043 | ;; Output a mode setter, for saving and later reloading this buffer. | 1043 | ;; Output a mode setter, for saving and later reloading this buffer. |
| 1044 | (insert "-*- mode: " name-of-mode | 1044 | (insert "-*- mode: " name-of-mode |
| 1045 | "; compilation-directory: " (prin1-to-string compilation-directory) | 1045 | "; default-directory: " (prin1-to-string default-directory) |
| 1046 | " -*-\n" | 1046 | " -*-\n" |
| 1047 | (format "%s started at %s\n\n" | 1047 | (format "%s started at %s\n\n" |
| 1048 | mode-name | 1048 | mode-name |
diff --git a/lisp/progmodes/cperl-mode.el b/lisp/progmodes/cperl-mode.el index 96c94591531..a07fb5ee44f 100644 --- a/lisp/progmodes/cperl-mode.el +++ b/lisp/progmodes/cperl-mode.el | |||
| @@ -233,6 +233,7 @@ for constructs with multiline if/unless/while/until/for/foreach condition." | |||
| 233 | "*Indentation of CPerl statements with respect to containing block." | 233 | "*Indentation of CPerl statements with respect to containing block." |
| 234 | :type 'integer | 234 | :type 'integer |
| 235 | :group 'cperl-indentation-details) | 235 | :group 'cperl-indentation-details) |
| 236 | (put 'cperl-indent-level 'safe-local-variable 'integerp) | ||
| 236 | 237 | ||
| 237 | (defcustom cperl-lineup-step nil | 238 | (defcustom cperl-lineup-step nil |
| 238 | "*`cperl-lineup' will always lineup at multiple of this number. | 239 | "*`cperl-lineup' will always lineup at multiple of this number. |
diff --git a/lisp/progmodes/ebnf2ps.el b/lisp/progmodes/ebnf2ps.el index 77d20792442..7ba4ffdc749 100644 --- a/lisp/progmodes/ebnf2ps.el +++ b/lisp/progmodes/ebnf2ps.el | |||
| @@ -2830,7 +2830,7 @@ See `ebnf-style-database' documentation." | |||
| 2830 | (and (assoc name ebnf-style-database) | 2830 | (and (assoc name ebnf-style-database) |
| 2831 | (error "Style name already exists: %s" name)) | 2831 | (error "Style name already exists: %s" name)) |
| 2832 | (or (assoc inherits ebnf-style-database) | 2832 | (or (assoc inherits ebnf-style-database) |
| 2833 | (error "Style inheritance name does'nt exist: %s" inherits)) | 2833 | (error "Style inheritance name doesn't exist: %s" inherits)) |
| 2834 | (setq ebnf-style-database | 2834 | (setq ebnf-style-database |
| 2835 | (cons (cons name (cons inherits (ebnf-check-style-values values))) | 2835 | (cons (cons name (cons inherits (ebnf-check-style-values values))) |
| 2836 | ebnf-style-database))) | 2836 | ebnf-style-database))) |
| @@ -2860,7 +2860,7 @@ See `ebnf-style-database' documentation." | |||
| 2860 | See `ebnf-style-database' documentation." | 2860 | See `ebnf-style-database' documentation." |
| 2861 | (interactive "SStyle name: \nXStyle values: ") | 2861 | (interactive "SStyle name: \nXStyle values: ") |
| 2862 | (let ((style (or (assoc name ebnf-style-database) | 2862 | (let ((style (or (assoc name ebnf-style-database) |
| 2863 | (error "Style name does'nt exist: %s" name))) | 2863 | (error "Style name doesn't exist: %s" name))) |
| 2864 | (merge (ebnf-check-style-values values)) | 2864 | (merge (ebnf-check-style-values values)) |
| 2865 | val elt new check) | 2865 | val elt new check) |
| 2866 | ;; modify value of existing variables | 2866 | ;; modify value of existing variables |
diff --git a/lisp/progmodes/gud.el b/lisp/progmodes/gud.el index 1ec9e978229..3d252190eff 100644 --- a/lisp/progmodes/gud.el +++ b/lisp/progmodes/gud.el | |||
| @@ -238,7 +238,7 @@ Used to grey out relevant toolbar icons.") | |||
| 238 | ,(propertize "run" 'face 'font-lock-doc-face) gud-run | 238 | ,(propertize "run" 'face 'font-lock-doc-face) gud-run |
| 239 | :visible (memq gud-minor-mode '(gdbmi gdb dbx jdb))) | 239 | :visible (memq gud-minor-mode '(gdbmi gdb dbx jdb))) |
| 240 | ([menu-bar go] menu-item | 240 | ([menu-bar go] menu-item |
| 241 | ,(propertize "go" 'face 'font-lock-doc-face) gud-go | 241 | ,(propertize " go " 'face 'font-lock-doc-face) gud-go |
| 242 | :visible (and (not gud-running) | 242 | :visible (and (not gud-running) |
| 243 | (eq gud-minor-mode 'gdba))) | 243 | (eq gud-minor-mode 'gdba))) |
| 244 | ([menu-bar stop] menu-item | 244 | ([menu-bar stop] menu-item |
| @@ -2304,6 +2304,8 @@ gud, see `gud-mode'." | |||
| 2304 | (gud-def gud-up "up\C-Mwhere" "<" "Up one stack frame.") | 2304 | (gud-def gud-up "up\C-Mwhere" "<" "Up one stack frame.") |
| 2305 | (gud-def gud-down "down\C-Mwhere" ">" "Up one stack frame.") | 2305 | (gud-def gud-down "down\C-Mwhere" ">" "Up one stack frame.") |
| 2306 | (gud-def gud-run "run" nil "Run the program.") ;if VM start using jdb | 2306 | (gud-def gud-run "run" nil "Run the program.") ;if VM start using jdb |
| 2307 | (gud-def gud-print "print %e" "\C-p" "Evaluate Java expression at point.") | ||
| 2308 | |||
| 2307 | 2309 | ||
| 2308 | (setq comint-prompt-regexp "^> \\|^[^ ]+\\[[0-9]+\\] ") | 2310 | (setq comint-prompt-regexp "^> \\|^[^ ]+\\[[0-9]+\\] ") |
| 2309 | (setq paragraph-start comint-prompt-regexp) | 2311 | (setq paragraph-start comint-prompt-regexp) |
| @@ -2853,7 +2855,9 @@ Obeying it means displaying in another window the specified file and line." | |||
| 2853 | (when (looking-at comint-prompt-regexp) | 2855 | (when (looking-at comint-prompt-regexp) |
| 2854 | (set-marker gud-delete-prompt-marker (point)) | 2856 | (set-marker gud-delete-prompt-marker (point)) |
| 2855 | (set-marker-insertion-type gud-delete-prompt-marker t)) | 2857 | (set-marker-insertion-type gud-delete-prompt-marker t)) |
| 2856 | (insert (concat expr " = "))))) | 2858 | (unless (eq (buffer-local-value 'gud-minor-mode gud-comint-buffer) |
| 2859 | 'jdb) | ||
| 2860 | (insert (concat expr " = ")))))) | ||
| 2857 | expr)) | 2861 | expr)) |
| 2858 | 2862 | ||
| 2859 | ;; The next eight functions are hacked from gdbsrc.el by | 2863 | ;; The next eight functions are hacked from gdbsrc.el by |
diff --git a/lisp/progmodes/idlw-shell.el b/lisp/progmodes/idlw-shell.el index bcecdeafa0f..3b9fb5a896a 100644 --- a/lisp/progmodes/idlw-shell.el +++ b/lisp/progmodes/idlw-shell.el | |||
| @@ -2586,7 +2586,7 @@ breakpoint can not be set." | |||
| 2586 | (if (idlwave-shell-hide-p 'debug) 'mostly) | 2586 | (if (idlwave-shell-hide-p 'debug) 'mostly) |
| 2587 | nil t)) | 2587 | nil t)) |
| 2588 | 2588 | ||
| 2589 | (defun idlwave-shell-clear-bp (bp) | 2589 | (defun idlwave-shell-clear-bp (bp &optional no-query) |
| 2590 | "Clear breakpoint BP. | 2590 | "Clear breakpoint BP. |
| 2591 | Clears in IDL and in `idlwave-shell-bp-alist'." | 2591 | Clears in IDL and in `idlwave-shell-bp-alist'." |
| 2592 | (let ((index (idlwave-shell-bp-get bp))) | 2592 | (let ((index (idlwave-shell-bp-get bp))) |
| @@ -2595,7 +2595,7 @@ Clears in IDL and in `idlwave-shell-bp-alist'." | |||
| 2595 | (idlwave-shell-send-command | 2595 | (idlwave-shell-send-command |
| 2596 | (concat "breakpoint,/clear," (int-to-string index)) | 2596 | (concat "breakpoint,/clear," (int-to-string index)) |
| 2597 | nil (idlwave-shell-hide-p 'breakpoint) nil t) | 2597 | nil (idlwave-shell-hide-p 'breakpoint) nil t) |
| 2598 | (idlwave-shell-bp-query))))) | 2598 | (unless no-query (idlwave-shell-bp-query)))))) |
| 2599 | 2599 | ||
| 2600 | (defun idlwave-shell-current-frame () | 2600 | (defun idlwave-shell-current-frame () |
| 2601 | "Return a list containing the current file name and line point is in. | 2601 | "Return a list containing the current file name and line point is in. |
| @@ -3722,17 +3722,22 @@ Existing overlays are recycled, in order to minimize consumption." | |||
| 3722 | (setq old-buffers (delq (current-buffer) old-buffers))) | 3722 | (setq old-buffers (delq (current-buffer) old-buffers))) |
| 3723 | (if (fboundp 'set-specifier) ;; XEmacs | 3723 | (if (fboundp 'set-specifier) ;; XEmacs |
| 3724 | (set-specifier left-margin-width (cons (current-buffer) 2)) | 3724 | (set-specifier left-margin-width (cons (current-buffer) 2)) |
| 3725 | (setq left-margin-width 2)) | 3725 | (if (< left-margin-width 2) |
| 3726 | (if (setq win (get-buffer-window (current-buffer) t)) | 3726 | (setq left-margin-width 2))) |
| 3727 | (set-window-buffer win (current-buffer)))))) | 3727 | (let ((window (get-buffer-window (current-buffer) 0))) |
| 3728 | (if window | ||
| 3729 | (set-window-margins | ||
| 3730 | window left-margin-width right-margin-width)))))) | ||
| 3728 | (if use-glyph | 3731 | (if use-glyph |
| 3729 | (while (setq buf (pop old-buffers)) | 3732 | (while (setq buf (pop old-buffers)) |
| 3730 | (with-current-buffer buf | 3733 | (with-current-buffer buf |
| 3731 | (if (fboundp 'set-specifier) ;; XEmacs | 3734 | (if (fboundp 'set-specifier) ;; XEmacs |
| 3732 | (set-specifier left-margin-width (cons (current-buffer) 0)) | 3735 | (set-specifier left-margin-width (cons (current-buffer) 0)) |
| 3733 | (setq left-margin-width 0)) | 3736 | (setq left-margin-width 0)) |
| 3734 | (if (setq win (get-buffer-window buf t)) | 3737 | (let ((window (get-buffer-window buf 0))) |
| 3735 | (set-window-buffer win buf)))))))) | 3738 | (if window |
| 3739 | (set-window-margins | ||
| 3740 | window left-margin-width right-margin-width))))))))) | ||
| 3736 | 3741 | ||
| 3737 | (defun idlwave-shell-make-new-bp-overlay (&optional type disabled) | 3742 | (defun idlwave-shell-make-new-bp-overlay (&optional type disabled) |
| 3738 | "Make a new overlay for highlighting breakpoints. | 3743 | "Make a new overlay for highlighting breakpoints. |
| @@ -4055,7 +4060,9 @@ list elements of the form: | |||
| 4055 | idlwave-shell-bp-query | 4060 | idlwave-shell-bp-query |
| 4056 | '(progn | 4061 | '(progn |
| 4057 | (idlwave-shell-filter-bp) | 4062 | (idlwave-shell-filter-bp) |
| 4058 | (mapcar 'idlwave-shell-clear-bp idlwave-shell-bp-alist)) | 4063 | (mapcar (lambda (x) (idlwave-shell-clear-bp x 'no-query)) |
| 4064 | idlwave-shell-bp-alist) | ||
| 4065 | (idlwave-shell-bp-query)) | ||
| 4059 | 'hide)) | 4066 | 'hide)) |
| 4060 | 4067 | ||
| 4061 | (defun idlwave-shell-list-all-bp () | 4068 | (defun idlwave-shell-list-all-bp () |
diff --git a/lisp/progmodes/mantemp.el b/lisp/progmodes/mantemp.el index 61b8d3d4d3d..2084f364d55 100644 --- a/lisp/progmodes/mantemp.el +++ b/lisp/progmodes/mantemp.el | |||
| @@ -105,14 +105,14 @@ | |||
| 105 | "^[A-z :&*<>~=,0-9+]*>::operator " nil t nil) | 105 | "^[A-z :&*<>~=,0-9+]*>::operator " nil t nil) |
| 106 | (progn | 106 | (progn |
| 107 | (backward-char 11) | 107 | (backward-char 11) |
| 108 | (kill-line))) | 108 | (delete-region (point) (line-end-position)))) |
| 109 | ;; Remove other member function extensions. | 109 | ;; Remove other member function extensions. |
| 110 | (goto-char (point-min)) | 110 | (goto-char (point-min)) |
| 111 | (message "Removing member function extensions") | 111 | (message "Removing member function extensions") |
| 112 | (while (re-search-forward "^[A-z :&*<>~=,0-9+]*>::" nil t nil) | 112 | (while (re-search-forward "^[A-z :&*<>~=,0-9+]*>::" nil t nil) |
| 113 | (progn | 113 | (progn |
| 114 | (backward-char 2) | 114 | (backward-char 2) |
| 115 | (kill-line))))) | 115 | (delete-region (point) (line-end-position)))))) |
| 116 | 116 | ||
| 117 | (defun mantemp-sort-and-unique-lines () | 117 | (defun mantemp-sort-and-unique-lines () |
| 118 | "Eliminate all consecutive duplicate lines in the buffer." | 118 | "Eliminate all consecutive duplicate lines in the buffer." |
| @@ -127,7 +127,7 @@ | |||
| 127 | (progn | 127 | (progn |
| 128 | (forward-line -1) | 128 | (forward-line -1) |
| 129 | (beginning-of-line) | 129 | (beginning-of-line) |
| 130 | (kill-line 1))))) | 130 | (delete-region (point) (progn (forward-line 1) (point))))))) |
| 131 | 131 | ||
| 132 | (defun mantemp-insert-cxx-syntax () | 132 | (defun mantemp-insert-cxx-syntax () |
| 133 | "Insert C++ syntax around each template class and function. | 133 | "Insert C++ syntax around each template class and function. |
| @@ -161,7 +161,7 @@ the lines." | |||
| 161 | (progn | 161 | (progn |
| 162 | (beginning-of-line) | 162 | (beginning-of-line) |
| 163 | (forward-word 1) | 163 | (forward-word 1) |
| 164 | (kill-word 1))))) | 164 | (delete-region (point) (progn (forward-word 1) (point))))))) |
| 165 | 165 | ||
| 166 | (defun mantemp-make-mantemps () | 166 | (defun mantemp-make-mantemps () |
| 167 | "Gathering interface to the functions modifying the buffer." | 167 | "Gathering interface to the functions modifying the buffer." |
| @@ -189,16 +189,16 @@ This function does the same thing as `mantemp-make-mantemps-buffer', | |||
| 189 | but operates on the region." | 189 | but operates on the region." |
| 190 | (interactive) | 190 | (interactive) |
| 191 | (let ((cur-buf (current-buffer)) | 191 | (let ((cur-buf (current-buffer)) |
| 192 | (mantemp-buffer (generate-new-buffer "*mantemp*"))) | 192 | (mantemp-buffer (generate-new-buffer "*mantemp*")) |
| 193 | (str (buffer-substring (mark) (point)))) | ||
| 193 | ;; Copy the region to a temporary buffer, make the C++ code there | 194 | ;; Copy the region to a temporary buffer, make the C++ code there |
| 194 | ;; and copy the result back to the current buffer. | 195 | ;; and copy the result back to the current buffer. |
| 195 | (kill-region (mark) (point)) | ||
| 196 | (set-buffer mantemp-buffer) | 196 | (set-buffer mantemp-buffer) |
| 197 | (yank) | 197 | (insert str) |
| 198 | (mantemp-make-mantemps) | 198 | (mantemp-make-mantemps) |
| 199 | (kill-region (point-min) (point-max)) | 199 | (setq str (buffer-string)) |
| 200 | (set-buffer cur-buf) | 200 | (set-buffer cur-buf) |
| 201 | (yank) | 201 | (insert str) |
| 202 | (kill-buffer mantemp-buffer)) | 202 | (kill-buffer mantemp-buffer)) |
| 203 | (message "Done")) | 203 | (message "Done")) |
| 204 | 204 | ||
diff --git a/lisp/progmodes/perl-mode.el b/lisp/progmodes/perl-mode.el index 8b6bc4462d6..35ae6b80901 100644 --- a/lisp/progmodes/perl-mode.el +++ b/lisp/progmodes/perl-mode.el | |||
| @@ -391,6 +391,7 @@ The expansion is entirely correct because it uses the C preprocessor." | |||
| 391 | "*Indentation of Perl statements with respect to containing block." | 391 | "*Indentation of Perl statements with respect to containing block." |
| 392 | :type 'integer | 392 | :type 'integer |
| 393 | :group 'perl) | 393 | :group 'perl) |
| 394 | (put 'perl-indent-level 'safe-local-variable 'integerp) | ||
| 394 | (defcustom perl-continued-statement-offset 4 | 395 | (defcustom perl-continued-statement-offset 4 |
| 395 | "*Extra indent for lines not starting new statements." | 396 | "*Extra indent for lines not starting new statements." |
| 396 | :type 'integer | 397 | :type 'integer |
| @@ -646,10 +647,10 @@ possible action from the following list: | |||
| 646 | (if (and comment-start-skip | 647 | (if (and comment-start-skip |
| 647 | (re-search-forward comment-start-skip eol 'move)) | 648 | (re-search-forward comment-start-skip eol 'move)) |
| 648 | (if (eolp) | 649 | (if (eolp) |
| 649 | (progn ; kill existing comment | 650 | (progn ; delete existing comment |
| 650 | (goto-char (match-beginning 0)) | 651 | (goto-char (match-beginning 0)) |
| 651 | (skip-chars-backward " \t") | 652 | (skip-chars-backward " \t") |
| 652 | (kill-region (point) eol)) | 653 | (delete-region (point) eol)) |
| 653 | (if (or (< oldpnt (point)) (= oldpnt eol)) | 654 | (if (or (< oldpnt (point)) (= oldpnt eol)) |
| 654 | (indent-for-comment) ; indent existing comment | 655 | (indent-for-comment) ; indent existing comment |
| 655 | (end-of-line))) | 656 | (end-of-line))) |
diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el index 1709428a611..e57c7e639c9 100644 --- a/lisp/progmodes/python.el +++ b/lisp/progmodes/python.el | |||
| @@ -981,11 +981,15 @@ don't move and return nil. Otherwise return t." | |||
| 981 | (_ (if (python-comment-line-p) | 981 | (_ (if (python-comment-line-p) |
| 982 | (python-skip-comments/blanks t))) | 982 | (python-skip-comments/blanks t))) |
| 983 | (ci (current-indentation)) | 983 | (ci (current-indentation)) |
| 984 | (open (python-open-block-statement-p))) | 984 | (open (python-open-block-statement-p)) |
| 985 | opoint) | ||
| 985 | (if (and (zerop ci) (not open)) | 986 | (if (and (zerop ci) (not open)) |
| 986 | (not (goto-char point)) | 987 | (not (goto-char point)) |
| 987 | (catch 'done | 988 | (catch 'done |
| 988 | (while (zerop (python-next-statement)) | 989 | (setq opoint (point)) |
| 990 | (while (and (zerop (python-next-statement)) | ||
| 991 | (not (= opoint (point)))) | ||
| 992 | (setq opoint (point)) | ||
| 989 | (when (or (and open (<= (current-indentation) ci)) | 993 | (when (or (and open (<= (current-indentation) ci)) |
| 990 | (< (current-indentation) ci)) | 994 | (< (current-indentation) ci)) |
| 991 | (python-skip-comments/blanks t) | 995 | (python-skip-comments/blanks t) |
diff --git a/lisp/progmodes/vhdl-mode.el b/lisp/progmodes/vhdl-mode.el index 2d7bbd79c6b..c549d066b64 100644 --- a/lisp/progmodes/vhdl-mode.el +++ b/lisp/progmodes/vhdl-mode.el | |||
| @@ -7028,7 +7028,7 @@ else indent `correctly'." | |||
| 7028 | (indent-to comment-column) | 7028 | (indent-to comment-column) |
| 7029 | (indent-according-to-mode)) | 7029 | (indent-according-to-mode)) |
| 7030 | (t ; inline comment indent | 7030 | (t ; inline comment indent |
| 7031 | (kill-line -0)))) | 7031 | (delete-region (line-beginning-position) (point))))) |
| 7032 | ;; dedent | 7032 | ;; dedent |
| 7033 | ((and (>= (current-indentation) vhdl-basic-offset) | 7033 | ((and (>= (current-indentation) vhdl-basic-offset) |
| 7034 | (or (eq last-command 'vhdl-electric-tab) | 7034 | (or (eq last-command 'vhdl-electric-tab) |
| @@ -7161,7 +7161,7 @@ ENDPOS is encountered." | |||
| 7161 | (when (not (looking-at "^\\s-*\\(--.*\\)?$")) | 7161 | (when (not (looking-at "^\\s-*\\(--.*\\)?$")) |
| 7162 | (end-of-line) | 7162 | (end-of-line) |
| 7163 | (if (search-backward " -- ((" (vhdl-point 'bol) t) | 7163 | (if (search-backward " -- ((" (vhdl-point 'bol) t) |
| 7164 | (kill-line)) | 7164 | (delete-region (point) (line-end-position))) |
| 7165 | (insert " -- ") | 7165 | (insert " -- ") |
| 7166 | (insert (format "%s" expurgated)))))) | 7166 | (insert (format "%s" expurgated)))))) |
| 7167 | (vhdl-keep-region-active)) | 7167 | (vhdl-keep-region-active)) |
| @@ -8346,7 +8346,9 @@ Turn on if ARG positive, turn off if ARG negative, toggle if ARG zero or nil." | |||
| 8346 | (progn (vhdl-insert-keyword "FOR ") | 8346 | (progn (vhdl-insert-keyword "FOR ") |
| 8347 | (if (vhdl-template-field "[quantity name]" " USE " t) | 8347 | (if (vhdl-template-field "[quantity name]" " USE " t) |
| 8348 | (progn (vhdl-template-field "quantity name" " => ") t) | 8348 | (progn (vhdl-template-field "quantity name" " => ") t) |
| 8349 | (kill-word -1) nil)) | 8349 | (delete-region (point) |
| 8350 | (progn (forward-word -1) (point))) | ||
| 8351 | nil)) | ||
| 8350 | (vhdl-template-field "[quantity name]" " => " t)) | 8352 | (vhdl-template-field "[quantity name]" " => " t)) |
| 8351 | (vhdl-template-field "expression") | 8353 | (vhdl-template-field "expression") |
| 8352 | (setq position (point)) | 8354 | (setq position (point)) |
| @@ -8482,7 +8484,7 @@ since these are almost equivalent)." | |||
| 8482 | (setq position (point)) | 8484 | (setq position (point)) |
| 8483 | (vhdl-insert-keyword "PORT ") | 8485 | (vhdl-insert-keyword "PORT ") |
| 8484 | (unless (vhdl-template-map position t t) | 8486 | (unless (vhdl-template-map position t t) |
| 8485 | (kill-line -0) | 8487 | (delete-region (line-beginning-position) (point)) |
| 8486 | (delete-char -1)) | 8488 | (delete-char -1)) |
| 8487 | (insert ";")))) | 8489 | (insert ";")))) |
| 8488 | 8490 | ||
| @@ -8573,7 +8575,7 @@ a configuration declaration if not within a design unit." | |||
| 8573 | (setq position (point)) | 8575 | (setq position (point)) |
| 8574 | (vhdl-insert-keyword "PORT ") | 8576 | (vhdl-insert-keyword "PORT ") |
| 8575 | (unless (vhdl-template-map position t t) | 8577 | (unless (vhdl-template-map position t t) |
| 8576 | (kill-line -0) | 8578 | (delete-region (line-beginning-position) (point)) |
| 8577 | (delete-char -1)) | 8579 | (delete-char -1)) |
| 8578 | (insert ";") | 8580 | (insert ";") |
| 8579 | t) | 8581 | t) |
| @@ -9116,11 +9118,11 @@ otherwise." | |||
| 9116 | (cond ((equal definition "") | 9118 | (cond ((equal definition "") |
| 9117 | (insert ";")) | 9119 | (insert ";")) |
| 9118 | ((equal definition "ARRAY") | 9120 | ((equal definition "ARRAY") |
| 9119 | (kill-word -1) | 9121 | (delete-region (point) (progn (forward-word -1) (point))) |
| 9120 | (vhdl-template-array 'nature t)) | 9122 | (vhdl-template-array 'nature t)) |
| 9121 | ((equal definition "RECORD") | 9123 | ((equal definition "RECORD") |
| 9122 | (setq mid-pos (point-marker)) | 9124 | (setq mid-pos (point-marker)) |
| 9123 | (kill-word -1) | 9125 | (delete-region (point) (progn (forward-word -1) (point))) |
| 9124 | (vhdl-template-record 'nature name t)) | 9126 | (vhdl-template-record 'nature name t)) |
| 9125 | (t | 9127 | (t |
| 9126 | (vhdl-insert-keyword " ACROSS ") | 9128 | (vhdl-insert-keyword " ACROSS ") |
| @@ -9435,7 +9437,7 @@ otherwise." | |||
| 9435 | (insert "\n") | 9437 | (insert "\n") |
| 9436 | (indent-to (+ margin vhdl-basic-offset)) | 9438 | (indent-to (+ margin vhdl-basic-offset)) |
| 9437 | (setq first nil)) | 9439 | (setq first nil)) |
| 9438 | (kill-line -0) | 9440 | (delete-region (line-beginning-position) (point)) |
| 9439 | (indent-to margin) | 9441 | (indent-to margin) |
| 9440 | (vhdl-insert-keyword "END RECORD") | 9442 | (vhdl-insert-keyword "END RECORD") |
| 9441 | (unless (vhdl-standard-p '87) (and name (insert " " name))) | 9443 | (unless (vhdl-standard-p '87) (and name (insert " " name))) |
| @@ -9600,11 +9602,11 @@ otherwise." | |||
| 9600 | (delete-backward-char 4) | 9602 | (delete-backward-char 4) |
| 9601 | (insert ";")) | 9603 | (insert ";")) |
| 9602 | ((equal definition "ARRAY") | 9604 | ((equal definition "ARRAY") |
| 9603 | (kill-word -1) | 9605 | (delete-region (point) (progn (forward-word -1) (point))) |
| 9604 | (vhdl-template-array 'type t)) | 9606 | (vhdl-template-array 'type t)) |
| 9605 | ((equal definition "RECORD") | 9607 | ((equal definition "RECORD") |
| 9606 | (setq mid-pos (point-marker)) | 9608 | (setq mid-pos (point-marker)) |
| 9607 | (kill-word -1) | 9609 | (delete-region (point) (progn (forward-word -1) (point))) |
| 9608 | (vhdl-template-record 'type name t)) | 9610 | (vhdl-template-record 'type name t)) |
| 9609 | ((equal definition "ACCESS") | 9611 | ((equal definition "ACCESS") |
| 9610 | (insert " ") | 9612 | (insert " ") |
diff --git a/lisp/replace.el b/lisp/replace.el index a8dfd043c72..ed1fa9a6b59 100644 --- a/lisp/replace.el +++ b/lisp/replace.el | |||
| @@ -303,6 +303,11 @@ Use \\[repeat-complex-command] after this command for details." | |||
| 303 | 303 | ||
| 304 | (defun query-replace-regexp-eval (regexp to-expr &optional delimited start end) | 304 | (defun query-replace-regexp-eval (regexp to-expr &optional delimited start end) |
| 305 | "Replace some things after point matching REGEXP with the result of TO-EXPR. | 305 | "Replace some things after point matching REGEXP with the result of TO-EXPR. |
| 306 | |||
| 307 | Interactive use of this function is deprecated in favor of the | ||
| 308 | `\\,' feature of `query-replace-regexp'. For non-interactive use, a loop | ||
| 309 | using `search-forward-regexp' and `replace-match' is preferred. | ||
| 310 | |||
| 306 | As each match is found, the user must type a character saying | 311 | As each match is found, the user must type a character saying |
| 307 | what to do with it. For directions, type \\[help-command] at that time. | 312 | what to do with it. For directions, type \\[help-command] at that time. |
| 308 | 313 | ||
| @@ -354,6 +359,11 @@ Fourth and fifth arg START and END specify the region to operate on." | |||
| 354 | (perform-replace regexp (cons 'replace-eval-replacement to-expr) | 359 | (perform-replace regexp (cons 'replace-eval-replacement to-expr) |
| 355 | t 'literal delimited nil nil start end)) | 360 | t 'literal delimited nil nil start end)) |
| 356 | 361 | ||
| 362 | (make-obsolete 'query-replace-regexp-eval | ||
| 363 | "for interactive use, use the special `\\,' feature of | ||
| 364 | `query-replace-regexp' instead. Non-interactively, a loop | ||
| 365 | using `search-forward-regexp' and `replace-match' is preferred." "22.1") | ||
| 366 | |||
| 357 | (defun map-query-replace-regexp (regexp to-strings &optional n start end) | 367 | (defun map-query-replace-regexp (regexp to-strings &optional n start end) |
| 358 | "Replace some matches for REGEXP with various strings, in rotation. | 368 | "Replace some matches for REGEXP with various strings, in rotation. |
| 359 | The second argument TO-STRINGS contains the replacement strings, | 369 | The second argument TO-STRINGS contains the replacement strings, |
diff --git a/lisp/simple.el b/lisp/simple.el index 382a121b222..d3ceb3d994f 100644 --- a/lisp/simple.el +++ b/lisp/simple.el | |||
| @@ -3179,6 +3179,8 @@ Start discarding off end if gets this big." | |||
| 3179 | (interactive) | 3179 | (interactive) |
| 3180 | (if (null (mark t)) | 3180 | (if (null (mark t)) |
| 3181 | (error "No mark set in this buffer") | 3181 | (error "No mark set in this buffer") |
| 3182 | (if (= (point) (mark t)) | ||
| 3183 | (message "Mark popped")) | ||
| 3182 | (goto-char (mark t)) | 3184 | (goto-char (mark t)) |
| 3183 | (pop-mark))) | 3185 | (pop-mark))) |
| 3184 | 3186 | ||
| @@ -3196,24 +3198,31 @@ Display `Mark set' unless the optional second arg NOMSG is non-nil." | |||
| 3196 | (message "Mark activated"))))) | 3198 | (message "Mark activated"))))) |
| 3197 | 3199 | ||
| 3198 | (defcustom set-mark-command-repeat-pop nil | 3200 | (defcustom set-mark-command-repeat-pop nil |
| 3199 | "*Non-nil means that repeating \\[set-mark-command] after popping will pop. | 3201 | "*Non-nil means repeating \\[set-mark-command] after popping mark pops it again. |
| 3200 | This means that if you type C-u \\[set-mark-command] \\[set-mark-command] | 3202 | That means that C-u \\[set-mark-command] \\[set-mark-command] |
| 3201 | will pop twice." | 3203 | will pop the mark twice, and |
| 3204 | C-u \\[set-mark-command] \\[set-mark-command] \\[set-mark-command] | ||
| 3205 | will pop the mark three times. | ||
| 3206 | |||
| 3207 | nil means \\[set-mark-command]'s behavior does not change | ||
| 3208 | after C-u \\[set-mark-command]." | ||
| 3202 | :type 'boolean | 3209 | :type 'boolean |
| 3203 | :group 'editing) | 3210 | :group 'editing-basics) |
| 3204 | 3211 | ||
| 3205 | (defun set-mark-command (arg) | 3212 | (defun set-mark-command (arg) |
| 3206 | "Set mark where point is, or jump to mark. | 3213 | "Set the mark where point is, or jump to the mark. |
| 3207 | Setting the mark also sets the \"region\", which is the closest | 3214 | Setting the mark also alters the region, which is the text |
| 3208 | equivalent in Emacs to what some editors call the \"selection\". | 3215 | between point and mark; this is the closest equivalent in |
| 3216 | Emacs to what some editors call the \"selection\". | ||
| 3217 | |||
| 3218 | With no prefix argument, set the mark at point, and push the | ||
| 3219 | old mark position on local mark ring. Also push the old mark on | ||
| 3220 | global mark ring, if the previous mark was set in another buffer. | ||
| 3209 | 3221 | ||
| 3210 | With no prefix argument, set mark and push old mark position on local | 3222 | Immediately repeating this command activates `transient-mark-mode' temporarily. |
| 3211 | mark ring. Also, push mark on global mark ring, if last mark was set in | ||
| 3212 | another buffer. Immediately repeating the command activates | ||
| 3213 | `transient-mark-mode' temporarily. | ||
| 3214 | 3223 | ||
| 3215 | With prefix argument \(e.g., \\[universal-argument] \\[set-mark-command]\), \ | 3224 | With prefix argument \(e.g., \\[universal-argument] \\[set-mark-command]\), \ |
| 3216 | jump to mark, and set mark from | 3225 | jump to the mark, and set the mark from |
| 3217 | position popped off the local mark ring \(this does not affect the global | 3226 | position popped off the local mark ring \(this does not affect the global |
| 3218 | mark ring\). Use \\[pop-global-mark] to jump to a mark popped off the global | 3227 | mark ring\). Use \\[pop-global-mark] to jump to a mark popped off the global |
| 3219 | mark ring \(see `pop-global-mark'\). | 3228 | mark ring \(see `pop-global-mark'\). |
| @@ -3222,9 +3231,9 @@ If `set-mark-command-repeat-pop' is non-nil, repeating | |||
| 3222 | the \\[set-mark-command] command with no prefix argument pops the next position | 3231 | the \\[set-mark-command] command with no prefix argument pops the next position |
| 3223 | off the local (or global) mark ring and jumps there. | 3232 | off the local (or global) mark ring and jumps there. |
| 3224 | 3233 | ||
| 3225 | With a double \\[universal-argument] prefix argument \(e.g., \\[universal-argument] \ | 3234 | With \\[universal-argument] \\[universal-argument] as prefix |
| 3226 | \\[universal-argument] \\[set-mark-command]\), unconditionally | 3235 | argument, unconditionally set mark where point is, even if |
| 3227 | set mark where point is, even if `set-mark-command-repeat-pop' is non-nil. | 3236 | `set-mark-command-repeat-pop' is non-nil. |
| 3228 | 3237 | ||
| 3229 | Novice Emacs Lisp programmers often try to use the mark for the wrong | 3238 | Novice Emacs Lisp programmers often try to use the mark for the wrong |
| 3230 | purposes. See the documentation of `set-mark' for more information." | 3239 | purposes. See the documentation of `set-mark' for more information." |
diff --git a/lisp/subr.el b/lisp/subr.el index 31604d3ecda..d42c096a414 100644 --- a/lisp/subr.el +++ b/lisp/subr.el | |||
| @@ -1719,6 +1719,9 @@ by doing (clear-string STRING)." | |||
| 1719 | 1719 | ||
| 1720 | ;; This should be used by `call-interactively' for `n' specs. | 1720 | ;; This should be used by `call-interactively' for `n' specs. |
| 1721 | (defun read-number (prompt &optional default) | 1721 | (defun read-number (prompt &optional default) |
| 1722 | "Read a numeric value in the minibuffer, prompting with PROMPT. | ||
| 1723 | DEFAULT specifies a default value to return if the user just types RET. | ||
| 1724 | The value of DEFAULT is inserted into PROMPT." | ||
| 1722 | (let ((n nil)) | 1725 | (let ((n nil)) |
| 1723 | (when default | 1726 | (when default |
| 1724 | (setq prompt | 1727 | (setq prompt |
| @@ -1732,9 +1735,11 @@ by doing (clear-string STRING)." | |||
| 1732 | (let ((str (read-from-minibuffer prompt nil nil nil nil | 1735 | (let ((str (read-from-minibuffer prompt nil nil nil nil |
| 1733 | (and default | 1736 | (and default |
| 1734 | (number-to-string default))))) | 1737 | (number-to-string default))))) |
| 1735 | (setq n (cond | 1738 | (condition-case nil |
| 1736 | ((zerop (length str)) default) | 1739 | (setq n (cond |
| 1737 | ((stringp str) (read str))))) | 1740 | ((zerop (length str)) default) |
| 1741 | ((stringp str) (read str)))) | ||
| 1742 | (error nil))) | ||
| 1738 | (unless (numberp n) | 1743 | (unless (numberp n) |
| 1739 | (message "Please enter a number.") | 1744 | (message "Please enter a number.") |
| 1740 | (sit-for 1) | 1745 | (sit-for 1) |
diff --git a/lisp/t-mouse.el b/lisp/t-mouse.el index eca2ce2b9fe..15521decd90 100644 --- a/lisp/t-mouse.el +++ b/lisp/t-mouse.el | |||
| @@ -166,6 +166,8 @@ Also trim the accumulator by all the data used to build the event." | |||
| 166 | (if (or (eq (car ob-pos) 'STILL) (eq (car ob-pos) '***) (not ob-pos)) | 166 | (if (or (eq (car ob-pos) 'STILL) (eq (car ob-pos) '***) (not ob-pos)) |
| 167 | nil | 167 | nil |
| 168 | (setq ob (car ob-pos)) | 168 | (setq ob (car ob-pos)) |
| 169 | (if (string-match "mev:$" (prin1-to-string ob)) | ||
| 170 | (error "Can't open mouse connection")) | ||
| 169 | (setq t-mouse-filter-accumulator | 171 | (setq t-mouse-filter-accumulator |
| 170 | (substring t-mouse-filter-accumulator (cdr ob-pos))) | 172 | (substring t-mouse-filter-accumulator (cdr ob-pos))) |
| 171 | 173 | ||
diff --git a/lisp/term.el b/lisp/term.el index 7bbef6e526e..e8848d64efb 100644 --- a/lisp/term.el +++ b/lisp/term.el | |||
| @@ -627,7 +627,7 @@ executed once when the buffer is created." | |||
| 627 | "Keyboard map for sending characters directly to the inferior process.") | 627 | "Keyboard map for sending characters directly to the inferior process.") |
| 628 | (defvar term-escape-char nil | 628 | (defvar term-escape-char nil |
| 629 | "Escape character for char sub-mode of term mode. | 629 | "Escape character for char sub-mode of term mode. |
| 630 | Do not change it directly; use `term-set-escape-char' instead.") | 630 | Do not change it directly; use `term-set-escape-char' instead.") |
| 631 | (defvar term-raw-escape-map nil) | 631 | (defvar term-raw-escape-map nil) |
| 632 | 632 | ||
| 633 | (defvar term-pager-break-map nil) | 633 | (defvar term-pager-break-map nil) |
| @@ -714,7 +714,7 @@ Buffer local variable.") | |||
| 714 | (defvar term-buffer-maximum-size 2048 | 714 | (defvar term-buffer-maximum-size 2048 |
| 715 | "*The maximum size in lines for term buffers. | 715 | "*The maximum size in lines for term buffers. |
| 716 | Term buffers are truncated from the top to be no greater than this number. | 716 | Term buffers are truncated from the top to be no greater than this number. |
| 717 | Notice that a setting of 0 means 'don't truncate anything'. This variable | 717 | Notice that a setting of 0 means \"don't truncate anything\". This variable |
| 718 | is buffer-local.") | 718 | is buffer-local.") |
| 719 | ;;; | 719 | ;;; |
| 720 | 720 | ||
| @@ -856,7 +856,7 @@ is buffer-local.") | |||
| 856 | ;; Set up term-raw-map, etc. | 856 | ;; Set up term-raw-map, etc. |
| 857 | 857 | ||
| 858 | (defun term-set-escape-char (c) | 858 | (defun term-set-escape-char (c) |
| 859 | "Change term-escape-char and keymaps that depend on it." | 859 | "Change `term-escape-char' and keymaps that depend on it." |
| 860 | (when term-escape-char | 860 | (when term-escape-char |
| 861 | (define-key term-raw-map term-escape-char 'term-send-raw)) | 861 | (define-key term-raw-map term-escape-char 'term-send-raw)) |
| 862 | (setq c (make-string 1 c)) | 862 | (setq c (make-string 1 c)) |
| @@ -1098,7 +1098,7 @@ Entry to this mode runs the hooks on `term-mode-hook'." | |||
| 1098 | (make-local-variable 'term-current-face) | 1098 | (make-local-variable 'term-current-face) |
| 1099 | (make-local-variable 'term-pending-frame) | 1099 | (make-local-variable 'term-pending-frame) |
| 1100 | (setq term-pending-frame nil) | 1100 | (setq term-pending-frame nil) |
| 1101 | ;; Cua-mode's keybindings interfere with the term keybindings, disable it. | 1101 | ;; Cua-mode's keybindings interfere with the term keybindings, disable it. |
| 1102 | (set (make-local-variable 'cua-mode) nil) | 1102 | (set (make-local-variable 'cua-mode) nil) |
| 1103 | (run-mode-hooks 'term-mode-hook) | 1103 | (run-mode-hooks 'term-mode-hook) |
| 1104 | (when (featurep 'xemacs) | 1104 | (when (featurep 'xemacs) |
| @@ -1194,7 +1194,7 @@ without any interpretation." | |||
| 1194 | "Insert the last stretch of killed text at the position clicked on." | 1194 | "Insert the last stretch of killed text at the position clicked on." |
| 1195 | (interactive "e\nP") | 1195 | (interactive "e\nP") |
| 1196 | (if (featurep 'xemacs) | 1196 | (if (featurep 'xemacs) |
| 1197 | (term-send-raw-string | 1197 | (term-send-raw-string |
| 1198 | (or (condition-case () (x-get-selection) (error ())) | 1198 | (or (condition-case () (x-get-selection) (error ())) |
| 1199 | (x-get-cutbuffer) | 1199 | (x-get-cutbuffer) |
| 1200 | (error "No selection or cut buffer available"))) | 1200 | (error "No selection or cut buffer available"))) |
| @@ -1312,7 +1312,7 @@ commands to use in that buffer. | |||
| 1312 | "Start up a process in buffer for term modes. | 1312 | "Start up a process in buffer for term modes. |
| 1313 | Blasts any old process running in the buffer. Doesn't set the buffer mode. | 1313 | Blasts any old process running in the buffer. Doesn't set the buffer mode. |
| 1314 | You can use this to cheaply run a series of processes in the same term | 1314 | You can use this to cheaply run a series of processes in the same term |
| 1315 | buffer. The hook term-exec-hook is run after each exec." | 1315 | buffer. The hook `term-exec-hook' is run after each exec." |
| 1316 | (save-excursion | 1316 | (save-excursion |
| 1317 | (set-buffer buffer) | 1317 | (set-buffer buffer) |
| 1318 | (let ((proc (get-buffer-process buffer))) ; Blast any old process. | 1318 | (let ((proc (get-buffer-process buffer))) ; Blast any old process. |
| @@ -1342,7 +1342,7 @@ buffer. The hook term-exec-hook is run after each exec." | |||
| 1342 | (run-hooks 'term-exec-hook) | 1342 | (run-hooks 'term-exec-hook) |
| 1343 | buffer))) | 1343 | buffer))) |
| 1344 | 1344 | ||
| 1345 | (defun term-sentinel (proc msg) | 1345 | (defun term-sentinel (proc msg) |
| 1346 | "Sentinel for term buffers. | 1346 | "Sentinel for term buffers. |
| 1347 | The main purpose is to get rid of the local keymap." | 1347 | The main purpose is to get rid of the local keymap." |
| 1348 | (let ((buffer (process-buffer proc))) | 1348 | (let ((buffer (process-buffer proc))) |
| @@ -1402,7 +1402,7 @@ The main purpose is to get rid of the local keymap." | |||
| 1402 | :kb=^?:kD=^[[3~:sc=\\E7:rc=\\E8:r1=\\Ec:" | 1402 | :kb=^?:kD=^[[3~:sc=\\E7:rc=\\E8:r1=\\Ec:" |
| 1403 | ;;; : -undefine ic | 1403 | ;;; : -undefine ic |
| 1404 | ;;; don't define :te=\\E[2J\\E[?47l\\E8:ti=\\E7\\E[?47h\ | 1404 | ;;; don't define :te=\\E[2J\\E[?47l\\E8:ti=\\E7\\E[?47h\ |
| 1405 | "termcap capabilities supported") | 1405 | "Termcap capabilities supported.") |
| 1406 | 1406 | ||
| 1407 | ;;; This auxiliary function cranks up the process for term-exec in | 1407 | ;;; This auxiliary function cranks up the process for term-exec in |
| 1408 | ;;; the appropriate environment. | 1408 | ;;; the appropriate environment. |
| @@ -2044,9 +2044,9 @@ Similarly for Soar, Scheme, etc." | |||
| 2044 | (funcall term-input-sender proc input))))) | 2044 | (funcall term-input-sender proc input))))) |
| 2045 | 2045 | ||
| 2046 | (defun term-get-old-input-default () | 2046 | (defun term-get-old-input-default () |
| 2047 | "Default for term-get-old-input. | 2047 | "Default for `term-get-old-input'. |
| 2048 | Take the current line, and discard any initial text matching | 2048 | Take the current line, and discard any initial text matching |
| 2049 | term-prompt-regexp." | 2049 | `term-prompt-regexp'." |
| 2050 | (save-excursion | 2050 | (save-excursion |
| 2051 | (beginning-of-line) | 2051 | (beginning-of-line) |
| 2052 | (term-skip-prompt) | 2052 | (term-skip-prompt) |
| @@ -2066,7 +2066,7 @@ Calls `term-get-old-input' to get old input." | |||
| 2066 | (insert input)))) | 2066 | (insert input)))) |
| 2067 | 2067 | ||
| 2068 | (defun term-skip-prompt () | 2068 | (defun term-skip-prompt () |
| 2069 | "Skip past the text matching regexp term-prompt-regexp. | 2069 | "Skip past the text matching regexp `term-prompt-regexp'. |
| 2070 | If this takes us past the end of the current line, don't skip at all." | 2070 | If this takes us past the end of the current line, don't skip at all." |
| 2071 | (let ((eol (save-excursion (end-of-line) (point)))) | 2071 | (let ((eol (save-excursion (end-of-line) (point)))) |
| 2072 | (when (and (looking-at term-prompt-regexp) | 2072 | (when (and (looking-at term-prompt-regexp) |
| @@ -2097,7 +2097,7 @@ If a prefix argument is given (\\[universal-argument]), then no prompt skip | |||
| 2097 | -- go straight to column 0. | 2097 | -- go straight to column 0. |
| 2098 | 2098 | ||
| 2099 | The prompt skip is done by skipping text matching the regular expression | 2099 | The prompt skip is done by skipping text matching the regular expression |
| 2100 | term-prompt-regexp, a buffer local variable." | 2100 | `term-prompt-regexp', a buffer local variable." |
| 2101 | (interactive "P") | 2101 | (interactive "P") |
| 2102 | (beginning-of-line) | 2102 | (beginning-of-line) |
| 2103 | (when (null arg) (term-skip-prompt))) | 2103 | (when (null arg) (term-skip-prompt))) |
| @@ -2180,8 +2180,8 @@ If your process is choking on big inputs, try lowering the value.") | |||
| 2180 | 2180 | ||
| 2181 | (defun term-send-string (proc str) | 2181 | (defun term-send-string (proc str) |
| 2182 | "Send to PROC the contents of STR as input. | 2182 | "Send to PROC the contents of STR as input. |
| 2183 | This is equivalent to process-send-string, except that long input strings | 2183 | This is equivalent to `process-send-string', except that long input strings |
| 2184 | are broken up into chunks of size term-input-chunk-size. Processes | 2184 | are broken up into chunks of size `term-input-chunk-size'. Processes |
| 2185 | are given a chance to output between chunks. This can help prevent processes | 2185 | are given a chance to output between chunks. This can help prevent processes |
| 2186 | from hanging when you send them long inputs on some OS's." | 2186 | from hanging when you send them long inputs on some OS's." |
| 2187 | (let* ((len (length str)) | 2187 | (let* ((len (length str)) |
| @@ -2195,7 +2195,7 @@ from hanging when you send them long inputs on some OS's." | |||
| 2195 | 2195 | ||
| 2196 | (defun term-send-region (proc start end) | 2196 | (defun term-send-region (proc start end) |
| 2197 | "Send to PROC the region delimited by START and END. | 2197 | "Send to PROC the region delimited by START and END. |
| 2198 | This is a replacement for process-send-region that tries to keep | 2198 | This is a replacement for `process-send-region' that tries to keep |
| 2199 | your process from hanging on long inputs. See `term-send-string'." | 2199 | your process from hanging on long inputs. See `term-send-string'." |
| 2200 | (term-send-string proc (buffer-substring start end))) | 2200 | (term-send-string proc (buffer-substring start end))) |
| 2201 | 2201 | ||
| @@ -2874,7 +2874,7 @@ See `term-prompt-regexp'." | |||
| 2874 | ;; (setq term-terminal-state 0)) | 2874 | ;; (setq term-terminal-state 0)) |
| 2875 | ((eq char ?M) ;; scroll reversed (terminfo: ri) | 2875 | ((eq char ?M) ;; scroll reversed (terminfo: ri) |
| 2876 | (if (or (< (term-current-row) term-scroll-start) | 2876 | (if (or (< (term-current-row) term-scroll-start) |
| 2877 | (>= (1- (term-current-row)) | 2877 | (>= (1- (term-current-row)) |
| 2878 | term-scroll-start)) | 2878 | term-scroll-start)) |
| 2879 | ;; Scrolling up will not move outside | 2879 | ;; Scrolling up will not move outside |
| 2880 | ;; the scroll region. | 2880 | ;; the scroll region. |
| @@ -2900,7 +2900,7 @@ See `term-prompt-regexp'." | |||
| 2900 | (when term-saved-cursor | 2900 | (when term-saved-cursor |
| 2901 | (term-goto (nth 0 term-saved-cursor) | 2901 | (term-goto (nth 0 term-saved-cursor) |
| 2902 | (nth 1 term-saved-cursor)) | 2902 | (nth 1 term-saved-cursor)) |
| 2903 | (setq term-ansi-current-bg-color | 2903 | (setq term-ansi-current-bg-color |
| 2904 | (nth 2 term-saved-cursor) | 2904 | (nth 2 term-saved-cursor) |
| 2905 | term-ansi-current-bold | 2905 | term-ansi-current-bold |
| 2906 | (nth 3 term-saved-cursor) | 2906 | (nth 3 term-saved-cursor) |
| @@ -3188,7 +3188,7 @@ See `term-prompt-regexp'." | |||
| 3188 | (when term-ansi-current-underline | 3188 | (when term-ansi-current-underline |
| 3189 | (setq term-current-face | 3189 | (setq term-current-face |
| 3190 | (append '(:underline t) term-current-face)))))) | 3190 | (append '(:underline t) term-current-face)))))) |
| 3191 | 3191 | ||
| 3192 | ;;; (message "Debug %S" term-current-face) | 3192 | ;;; (message "Debug %S" term-current-face) |
| 3193 | (setq term-ansi-face-already-done nil)) | 3193 | (setq term-ansi-face-already-done nil)) |
| 3194 | 3194 | ||
| @@ -3217,7 +3217,7 @@ See `term-prompt-regexp'." | |||
| 3217 | ((eq char ?A) | 3217 | ((eq char ?A) |
| 3218 | (term-handle-deferred-scroll) | 3218 | (term-handle-deferred-scroll) |
| 3219 | (let ((tcr (term-current-row))) | 3219 | (let ((tcr (term-current-row))) |
| 3220 | (term-down | 3220 | (term-down |
| 3221 | (if (< (- tcr term-terminal-parameter) term-scroll-start) | 3221 | (if (< (- tcr term-terminal-parameter) term-scroll-start) |
| 3222 | ;; If the amount to move is before scroll start, move | 3222 | ;; If the amount to move is before scroll start, move |
| 3223 | ;; to scroll start. | 3223 | ;; to scroll start. |
| @@ -3229,7 +3229,7 @@ See `term-prompt-regexp'." | |||
| 3229 | ((eq char ?B) | 3229 | ((eq char ?B) |
| 3230 | (let ((tcr (term-current-row))) | 3230 | (let ((tcr (term-current-row))) |
| 3231 | (unless (= tcr (1- term-scroll-end)) | 3231 | (unless (= tcr (1- term-scroll-end)) |
| 3232 | (term-down | 3232 | (term-down |
| 3233 | (if (> (+ tcr term-terminal-parameter) term-scroll-end) | 3233 | (if (> (+ tcr term-terminal-parameter) term-scroll-end) |
| 3234 | (- term-scroll-end 1 tcr) | 3234 | (- term-scroll-end 1 tcr) |
| 3235 | (max 1 term-terminal-parameter)) t)))) | 3235 | (max 1 term-terminal-parameter)) t)))) |
| @@ -3493,7 +3493,7 @@ The top-most line is line 0." | |||
| 3493 | ((term-pager-continue deficit))))) | 3493 | ((term-pager-continue deficit))))) |
| 3494 | 3494 | ||
| 3495 | (defun term-pager-page (arg) | 3495 | (defun term-pager-page (arg) |
| 3496 | "Proceed past the **MORE** break, allowing the next page of output to appear" | 3496 | "Proceed past the **MORE** break, allowing the next page of output to appear." |
| 3497 | (interactive "p") | 3497 | (interactive "p") |
| 3498 | (term-pager-line (* arg term-height))) | 3498 | (term-pager-line (* arg term-height))) |
| 3499 | 3499 | ||
| @@ -3562,7 +3562,7 @@ The top-most line is line 0." | |||
| 3562 | (put 'term-fake-pager-disable 'menu-enable 'term-pager-count)) | 3562 | (put 'term-fake-pager-disable 'menu-enable 'term-pager-count)) |
| 3563 | 3563 | ||
| 3564 | (defun term-pager-help () | 3564 | (defun term-pager-help () |
| 3565 | "Provide help on commands available in a terminal-emulator **MORE** break" | 3565 | "Provide help on commands available in a terminal-emulator **MORE** break." |
| 3566 | (interactive) | 3566 | (interactive) |
| 3567 | (message "Terminal-emulator pager break help...") | 3567 | (message "Terminal-emulator pager break help...") |
| 3568 | (sit-for 0) | 3568 | (sit-for 0) |
| @@ -3604,9 +3604,9 @@ all pending output has been dealt with.")) | |||
| 3604 | 3604 | ||
| 3605 | (defun term-handle-scroll (down) | 3605 | (defun term-handle-scroll (down) |
| 3606 | (let ((scroll-needed | 3606 | (let ((scroll-needed |
| 3607 | (- (+ (term-current-row) down) | 3607 | (- (+ (term-current-row) down) |
| 3608 | (if (< down 0) term-scroll-start term-scroll-end)))) | 3608 | (if (< down 0) term-scroll-start term-scroll-end)))) |
| 3609 | (when (or (and (< down 0) (< scroll-needed 0)) | 3609 | (when (or (and (< down 0) (< scroll-needed 0)) |
| 3610 | (and (> down 0) (> scroll-needed 0))) | 3610 | (and (> down 0) (> scroll-needed 0))) |
| 3611 | (let ((save-point (copy-marker (point))) (save-top)) | 3611 | (let ((save-point (copy-marker (point))) (save-top)) |
| 3612 | (goto-char term-home-marker) | 3612 | (goto-char term-home-marker) |
| @@ -3704,7 +3704,7 @@ all pending output has been dealt with.")) | |||
| 3704 | ;; contain a space, to force the previous line to continue to wrap. | 3704 | ;; contain a space, to force the previous line to continue to wrap. |
| 3705 | ;; We could do this always, but it seems preferable to not add the | 3705 | ;; We could do this always, but it seems preferable to not add the |
| 3706 | ;; extra space when wrapped is false. | 3706 | ;; extra space when wrapped is false. |
| 3707 | (when wrapped | 3707 | (when wrapped |
| 3708 | (insert ? )) | 3708 | (insert ? )) |
| 3709 | (insert ?\n) | 3709 | (insert ?\n) |
| 3710 | (put-text-property saved-point (point) 'face 'default) | 3710 | (put-text-property saved-point (point) 'face 'default) |
| @@ -3795,8 +3795,8 @@ Should only be called when point is at the start of a screen line." | |||
| 3795 | ;; we need to go one line past it in order to ensure correct | 3795 | ;; we need to go one line past it in order to ensure correct |
| 3796 | ;; scrolling. | 3796 | ;; scrolling. |
| 3797 | (if (< save-current-row term-scroll-start) | 3797 | (if (< save-current-row term-scroll-start) |
| 3798 | ;; If point is before scroll start, | 3798 | ;; If point is before scroll start, |
| 3799 | (progn | 3799 | (progn |
| 3800 | (setq lines (- lines (- term-scroll-start save-current-row))) | 3800 | (setq lines (- lines (- term-scroll-start save-current-row))) |
| 3801 | (term-down (- term-scroll-start save-current-row)) | 3801 | (term-down (- term-scroll-start save-current-row)) |
| 3802 | (setq start (point))) | 3802 | (setq start (point))) |
diff --git a/lisp/textmodes/bibtex.el b/lisp/textmodes/bibtex.el index 06fa3a01186..0b413e3b7ab 100644 --- a/lisp/textmodes/bibtex.el +++ b/lisp/textmodes/bibtex.el | |||
| @@ -86,7 +86,7 @@ If this is a function, call it to generate the initial field text." | |||
| 86 | :group 'bibtex | 86 | :group 'bibtex |
| 87 | :type '(choice (const :tag "None" nil) | 87 | :type '(choice (const :tag "None" nil) |
| 88 | (string :tag "Initial text") | 88 | (string :tag "Initial text") |
| 89 | (function :tag "Initialize Function" :value fun) | 89 | (function :tag "Initialize Function") |
| 90 | (const :tag "Default" t))) | 90 | (const :tag "Default" t))) |
| 91 | (put 'bibtex-include-OPTkey 'risky-local-variable t) | 91 | (put 'bibtex-include-OPTkey 'risky-local-variable t) |
| 92 | 92 | ||
| @@ -98,11 +98,8 @@ CROSSREF-OPTIONAL lists in `bibtex-entry-field-alist' (which see)." | |||
| 98 | :group 'bibtex | 98 | :group 'bibtex |
| 99 | :type '(repeat (group (string :tag "Field") | 99 | :type '(repeat (group (string :tag "Field") |
| 100 | (string :tag "Comment") | 100 | (string :tag "Comment") |
| 101 | (option (group :inline t | 101 | (option (choice :tag "Init" |
| 102 | :extra-offset -4 | 102 | (const nil) string function))))) |
| 103 | (choice :tag "Init" :value "" | ||
| 104 | string | ||
| 105 | function)))))) | ||
| 106 | (put 'bibtex-user-optional-fields 'risky-local-variable t) | 103 | (put 'bibtex-user-optional-fields 'risky-local-variable t) |
| 107 | 104 | ||
| 108 | (defcustom bibtex-entry-format | 105 | (defcustom bibtex-entry-format |
| @@ -224,7 +221,7 @@ If parsing fails, try to set this variable to nil." | |||
| 224 | :group 'bibtex | 221 | :group 'bibtex |
| 225 | :type 'boolean) | 222 | :type 'boolean) |
| 226 | 223 | ||
| 227 | (defvar bibtex-entry-field-alist | 224 | (defcustom bibtex-entry-field-alist |
| 228 | '(("Article" | 225 | '(("Article" |
| 229 | ((("author" "Author1 [and Author2 ...] [and others]") | 226 | ((("author" "Author1 [and Author2 ...] [and others]") |
| 230 | ("title" "Title of the article (BibTeX converts it to lowercase)") | 227 | ("title" "Title of the article (BibTeX converts it to lowercase)") |
| @@ -452,7 +449,36 @@ appears in the echo area, INIT is either the initial content of the | |||
| 452 | field or a function, which is called to determine the initial content | 449 | field or a function, which is called to determine the initial content |
| 453 | of the field, and ALTERNATIVE-FLAG (either nil or t) marks if the | 450 | of the field, and ALTERNATIVE-FLAG (either nil or t) marks if the |
| 454 | field is an alternative. ALTERNATIVE-FLAG may be t only in the | 451 | field is an alternative. ALTERNATIVE-FLAG may be t only in the |
| 455 | REQUIRED or CROSSREF-REQUIRED lists.") | 452 | REQUIRED or CROSSREF-REQUIRED lists." |
| 453 | :group 'bibtex | ||
| 454 | :type '(repeat (group (string :tag "Entry name") | ||
| 455 | (group (repeat :tag "Required fields" | ||
| 456 | (group (string :tag "Field") | ||
| 457 | (string :tag "Comment") | ||
| 458 | (option (choice :tag "Init" :value nil | ||
| 459 | (const nil) string function)) | ||
| 460 | (option (choice :tag "Alternative" | ||
| 461 | (const :tag "No" nil) | ||
| 462 | (const :tag "Yes" t))))) | ||
| 463 | (repeat :tag "Optional fields" | ||
| 464 | (group (string :tag "Field") | ||
| 465 | (string :tag "Comment") | ||
| 466 | (option (choice :tag "Init" :value nil | ||
| 467 | (const nil) string function))))) | ||
| 468 | (option :extra-offset -4 | ||
| 469 | (group (repeat :tag "Crossref: required fields" | ||
| 470 | (group (string :tag "Field") | ||
| 471 | (string :tag "Comment") | ||
| 472 | (option (choice :tag "Init" :value nil | ||
| 473 | (const nil) string function)) | ||
| 474 | (option (choice :tag "Alternative" | ||
| 475 | (const :tag "No" nil) | ||
| 476 | (const :tag "Yes" t))))) | ||
| 477 | (repeat :tag "Crossref: optional fields" | ||
| 478 | (group (string :tag "Field") | ||
| 479 | (string :tag "Comment") | ||
| 480 | (option (choice :tag "Init" :value nil | ||
| 481 | (const nil) string function))))))))) | ||
| 456 | (put 'bibtex-entry-field-alist 'risky-local-variable t) | 482 | (put 'bibtex-entry-field-alist 'risky-local-variable t) |
| 457 | 483 | ||
| 458 | (defcustom bibtex-comment-start "@Comment" | 484 | (defcustom bibtex-comment-start "@Comment" |
| @@ -1785,7 +1811,7 @@ Optional arg COMMA is as in `bibtex-enclosing-field'." | |||
| 1785 | (set-mark (point)) | 1811 | (set-mark (point)) |
| 1786 | (message "Mark set") | 1812 | (message "Mark set") |
| 1787 | (bibtex-make-field (funcall fun 'bibtex-field-kill-ring-yank-pointer | 1813 | (bibtex-make-field (funcall fun 'bibtex-field-kill-ring-yank-pointer |
| 1788 | bibtex-field-kill-ring) t)) | 1814 | bibtex-field-kill-ring) t nil t)) |
| 1789 | ;; insert past the current entry | 1815 | ;; insert past the current entry |
| 1790 | (bibtex-skip-to-valid-entry) | 1816 | (bibtex-skip-to-valid-entry) |
| 1791 | (set-mark (point)) | 1817 | (set-mark (point)) |
| @@ -2831,7 +2857,7 @@ and `bibtex-user-optional-fields'." | |||
| 2831 | (push (list "key" | 2857 | (push (list "key" |
| 2832 | "Used for reference key creation if author and editor fields are missing" | 2858 | "Used for reference key creation if author and editor fields are missing" |
| 2833 | (if (or (stringp bibtex-include-OPTkey) | 2859 | (if (or (stringp bibtex-include-OPTkey) |
| 2834 | (fboundp bibtex-include-OPTkey)) | 2860 | (functionp bibtex-include-OPTkey)) |
| 2835 | bibtex-include-OPTkey)) | 2861 | bibtex-include-OPTkey)) |
| 2836 | optional)) | 2862 | optional)) |
| 2837 | (if (member-ignore-case entry-type bibtex-include-OPTcrossref) | 2863 | (if (member-ignore-case entry-type bibtex-include-OPTcrossref) |
| @@ -3020,7 +3046,7 @@ interactive calls." | |||
| 3020 | (if comment (message "%s" (nth 1 comment)) | 3046 | (if comment (message "%s" (nth 1 comment)) |
| 3021 | (message "No comment available"))))) | 3047 | (message "No comment available"))))) |
| 3022 | 3048 | ||
| 3023 | (defun bibtex-make-field (field &optional move interactive) | 3049 | (defun bibtex-make-field (field &optional move interactive nodelim) |
| 3024 | "Make a field named FIELD in current BibTeX entry. | 3050 | "Make a field named FIELD in current BibTeX entry. |
| 3025 | FIELD is either a string or a list of the form | 3051 | FIELD is either a string or a list of the form |
| 3026 | \(FIELD-NAME COMMENT-STRING INIT ALTERNATIVE-FLAG) as in | 3052 | \(FIELD-NAME COMMENT-STRING INIT ALTERNATIVE-FLAG) as in |
| @@ -3028,7 +3054,8 @@ FIELD is either a string or a list of the form | |||
| 3028 | If MOVE is non-nil, move point past the present field before making | 3054 | If MOVE is non-nil, move point past the present field before making |
| 3029 | the new field. If INTERACTIVE is non-nil, move point to the end of | 3055 | the new field. If INTERACTIVE is non-nil, move point to the end of |
| 3030 | the new field. Otherwise move point past the new field. | 3056 | the new field. Otherwise move point past the new field. |
| 3031 | MOVE and INTERACTIVE are t when called interactively." | 3057 | MOVE and INTERACTIVE are t when called interactively. |
| 3058 | INIT is surrounded by field delimiters, unless NODELIM is non-nil." | ||
| 3032 | (interactive | 3059 | (interactive |
| 3033 | (list (let ((completion-ignore-case t) | 3060 | (list (let ((completion-ignore-case t) |
| 3034 | (field-list (bibtex-field-list | 3061 | (field-list (bibtex-field-list |
| @@ -3058,10 +3085,13 @@ MOVE and INTERACTIVE are t when called interactively." | |||
| 3058 | (indent-to-column (+ bibtex-entry-offset | 3085 | (indent-to-column (+ bibtex-entry-offset |
| 3059 | bibtex-text-indentation))) | 3086 | bibtex-text-indentation))) |
| 3060 | (let ((init (nth 2 field))) | 3087 | (let ((init (nth 2 field))) |
| 3061 | (insert (cond ((stringp init) init) | 3088 | (if (not init) (setq init "") |
| 3062 | ((fboundp init) (funcall init)) | 3089 | (if (functionp init) (setq init (funcall init))) |
| 3063 | (t (concat (bibtex-field-left-delimiter) | 3090 | (unless (stringp init) (error "`%s' is not a string" init))) |
| 3064 | (bibtex-field-right-delimiter)))))) | 3091 | ;; NODELIM is required by `bibtex-insert-kill' |
| 3092 | (if nodelim (insert init) | ||
| 3093 | (insert (bibtex-field-left-delimiter) init | ||
| 3094 | (bibtex-field-right-delimiter)))) | ||
| 3065 | (when interactive | 3095 | (when interactive |
| 3066 | ;; (bibtex-find-text nil nil bibtex-help-message) | 3096 | ;; (bibtex-find-text nil nil bibtex-help-message) |
| 3067 | (if (memq (preceding-char) '(?} ?\")) (forward-char -1)) | 3097 | (if (memq (preceding-char) '(?} ?\")) (forward-char -1)) |
diff --git a/lisp/textmodes/fill.el b/lisp/textmodes/fill.el index 0f7767697fe..9da8519d12d 100644 --- a/lisp/textmodes/fill.el +++ b/lisp/textmodes/fill.el | |||
| @@ -526,7 +526,6 @@ The break position will be always after LINEBEG and generally before point." | |||
| 526 | ;; Ok, skip at least one word or one \c| character. | 526 | ;; Ok, skip at least one word or one \c| character. |
| 527 | ;; Meanwhile, don't stop at a period followed by one space. | 527 | ;; Meanwhile, don't stop at a period followed by one space. |
| 528 | (let ((to (line-end-position)) | 528 | (let ((to (line-end-position)) |
| 529 | (fill-nobreak-predicate nil) ;to break sooner. | ||
| 530 | (first t)) | 529 | (first t)) |
| 531 | (goto-char linebeg) | 530 | (goto-char linebeg) |
| 532 | (while (and (< (point) to) (or first (fill-nobreak-p))) | 531 | (while (and (< (point) to) (or first (fill-nobreak-p))) |
diff --git a/lisp/textmodes/flyspell.el b/lisp/textmodes/flyspell.el index 339160db9bd..185f2e8dea3 100644 --- a/lisp/textmodes/flyspell.el +++ b/lisp/textmodes/flyspell.el | |||
| @@ -1827,7 +1827,7 @@ misspelled words backwards." | |||
| 1827 | (defun flyspell-define-abbrev (name expansion) | 1827 | (defun flyspell-define-abbrev (name expansion) |
| 1828 | (let ((table (flyspell-abbrev-table))) | 1828 | (let ((table (flyspell-abbrev-table))) |
| 1829 | (when table | 1829 | (when table |
| 1830 | (define-abbrev table name expansion)))) | 1830 | (define-abbrev table (downcase name) expansion)))) |
| 1831 | 1831 | ||
| 1832 | ;;*---------------------------------------------------------------------*/ | 1832 | ;;*---------------------------------------------------------------------*/ |
| 1833 | ;;* flyspell-auto-correct-word ... */ | 1833 | ;;* flyspell-auto-correct-word ... */ |
diff --git a/lisp/thumbs.el b/lisp/thumbs.el index af17d925d35..7df2d295c9e 100644 --- a/lisp/thumbs.el +++ b/lisp/thumbs.el | |||
| @@ -29,7 +29,7 @@ | |||
| 29 | ;; It is used for basic browsing and viewing of images from within Emacs. | 29 | ;; It is used for basic browsing and viewing of images from within Emacs. |
| 30 | ;; Minimal image manipulation functions are also available via external | 30 | ;; Minimal image manipulation functions are also available via external |
| 31 | ;; programs. If you want to do more complex tasks like categorise and tag | 31 | ;; programs. If you want to do more complex tasks like categorise and tag |
| 32 | ;; your images, use tumme.el | 32 | ;; your images, use image-dired.el |
| 33 | ;; | 33 | ;; |
| 34 | ;; The 'convert' program from 'ImageMagick' | 34 | ;; The 'convert' program from 'ImageMagick' |
| 35 | ;; [URL:http://www.imagemagick.org/] is required. | 35 | ;; [URL:http://www.imagemagick.org/] is required. |
diff --git a/lisp/tmm.el b/lisp/tmm.el index d441db76235..f70a8cd2ea2 100644 --- a/lisp/tmm.el +++ b/lisp/tmm.el | |||
| @@ -541,15 +541,15 @@ of `menu-bar-final-items'." | |||
| 541 | ;; Make a list of all the bindings in all the keymaps. | 541 | ;; Make a list of all the bindings in all the keymaps. |
| 542 | (setq minorbind (mapcar 'cdr (minor-mode-key-binding keyseq))) | 542 | (setq minorbind (mapcar 'cdr (minor-mode-key-binding keyseq))) |
| 543 | (setq localbind (local-key-binding keyseq)) | 543 | (setq localbind (local-key-binding keyseq)) |
| 544 | (setq globalbind (cdr (global-key-binding keyseq))) | 544 | (setq globalbind (copy-sequence (cdr (global-key-binding keyseq)))) |
| 545 | 545 | ||
| 546 | ;; If items have been redefined/undefined locally, remove them from | 546 | ;; If items have been redefined/undefined locally, remove them from |
| 547 | ;; the global list. | 547 | ;; the global list. |
| 548 | (dolist (minor minorbind) | 548 | (dolist (minor minorbind) |
| 549 | (dolist (item (cdr minor)) | 549 | (dolist (item (cdr minor)) |
| 550 | (setq globalbind (assq-delete-all (car item) globalbind)))) | 550 | (setq globalbind (assq-delete-all (car-safe item) globalbind)))) |
| 551 | (dolist (item (cdr localbind)) | 551 | (dolist (item (cdr localbind)) |
| 552 | (setq globalbind (assq-delete-all (car item) globalbind))) | 552 | (setq globalbind (assq-delete-all (car-safe item) globalbind))) |
| 553 | 553 | ||
| 554 | (setq globalbind (cons 'keymap globalbind)) | 554 | (setq globalbind (cons 'keymap globalbind)) |
| 555 | (setq allbind (cons globalbind (cons localbind minorbind))) | 555 | (setq allbind (cons globalbind (cons localbind minorbind))) |
diff --git a/lisp/url/ChangeLog b/lisp/url/ChangeLog index 01c2d70870a..8c53d49fdd1 100644 --- a/lisp/url/ChangeLog +++ b/lisp/url/ChangeLog | |||
| @@ -1,4 +1,15 @@ | |||
| 1 | 2007-04-01 Diane Murray <disumu@x3y2z1.net> | 1 | 2007-04-15 Chong Yidong <cyd@stupidchicken.com> |
| 2 | |||
| 3 | * url-parse.el (url-generic-parse-url): Revert 2006-10-09 changes. | ||
| 4 | |||
| 5 | 2007-04-13 Chong Yidong <cyd@stupidchicken.com> | ||
| 6 | |||
| 7 | * url-http.el (url-http-parse-headers): Stop after a set number of | ||
| 8 | redirections. Suggested by Diane Murray. | ||
| 9 | |||
| 10 | * url-vars.el (url-max-redirections): New var. | ||
| 11 | |||
| 12 | 2007-04-01 Diane Murray <disumu@x3y2z1.net> (tiny change) | ||
| 2 | 13 | ||
| 3 | * url-http.el (url-http-handle-cookies): Reverse list returned by | 14 | * url-http.el (url-http-handle-cookies): Reverse list returned by |
| 4 | `mail-fetch-field', so that cookies are set in the correct order. | 15 | `mail-fetch-field', so that cookies are set in the correct order. |
| @@ -65,7 +76,7 @@ | |||
| 65 | (url-http-parse-response): Set it. | 76 | (url-http-parse-response): Set it. |
| 66 | (url-http-parse-headers): Use it to determine keep-alive behavior. | 77 | (url-http-parse-headers): Use it to determine keep-alive behavior. |
| 67 | 78 | ||
| 68 | 2006-11-23 Diane Murray <disumu@x3y2z1.net> | 79 | 2006-11-23 Diane Murray <disumu@x3y2z1.net> (tiny change) |
| 69 | 80 | ||
| 70 | * url-http.el (url-http-content-length-after-change-function): Use | 81 | * url-http.el (url-http-content-length-after-change-function): Use |
| 71 | `url-lazy-message'. | 82 | `url-lazy-message'. |
| @@ -174,7 +185,7 @@ | |||
| 174 | getenv returns an empty string for http_proxy. This prevents an | 185 | getenv returns an empty string for http_proxy. This prevents an |
| 175 | error when calling `format' later on. | 186 | error when calling `format' later on. |
| 176 | 187 | ||
| 177 | 2006-08-31 Diane Murray <disumu@x3y2z1.net> | 188 | 2006-08-31 Diane Murray <disumu@x3y2z1.net> (tiny change) |
| 178 | 189 | ||
| 179 | * url-parse.el (url-recreate-url-attributes): New function, code | 190 | * url-parse.el (url-recreate-url-attributes): New function, code |
| 180 | simply moved from `url-recreate-url'. | 191 | simply moved from `url-recreate-url'. |
| @@ -184,7 +195,7 @@ | |||
| 184 | * url-http.el (url-http-create-request): | 195 | * url-http.el (url-http-create-request): |
| 185 | Use `url-recreate-url-attributes' when setting real-fname. | 196 | Use `url-recreate-url-attributes' when setting real-fname. |
| 186 | 197 | ||
| 187 | 2006-08-29 Diane Murray <disumu@x3y2z1.net> | 198 | 2006-08-29 Diane Murray <disumu@x3y2z1.net> (tiny change) |
| 188 | 199 | ||
| 189 | * url-cookie.el (url-cookie-write-file): Really don't use versioned | 200 | * url-cookie.el (url-cookie-write-file): Really don't use versioned |
| 190 | backups. | 201 | backups. |
diff --git a/lisp/url/url-http.el b/lisp/url/url-http.el index 10a6f2e7278..d9ac81838d4 100644 --- a/lisp/url/url-http.el +++ b/lisp/url/url-http.el | |||
| @@ -556,21 +556,43 @@ should be shown to the user." | |||
| 556 | (let ((url-request-method url-http-method) | 556 | (let ((url-request-method url-http-method) |
| 557 | (url-request-data url-http-data) | 557 | (url-request-data url-http-data) |
| 558 | (url-request-extra-headers url-http-extra-headers)) | 558 | (url-request-extra-headers url-http-extra-headers)) |
| 559 | ;; Remember that the request was redirected. | 559 | ;; Check existing number of redirects |
| 560 | (setf (car url-callback-arguments) | 560 | (if (or (< url-max-redirections 0) |
| 561 | (nconc (list :redirect redirect-uri) | 561 | (and (> url-max-redirections 0) |
| 562 | (car url-callback-arguments))) | 562 | (let ((events (car url-callback-arguments)) |
| 563 | ;; Put in the current buffer a forwarding pointer to the new | 563 | (old-redirects 0)) |
| 564 | ;; destination buffer. | 564 | (while events |
| 565 | ;; FIXME: This is a hack to fix url-retrieve-synchronously | 565 | (if (eq (car events) :redirect) |
| 566 | ;; without changing the API. Instead url-retrieve should | 566 | (setq old-redirects (1+ old-redirects))) |
| 567 | ;; either simply not return the "destination" buffer, or it | 567 | (and (setq events (cdr events)) |
| 568 | ;; should take an optional `dest-buf' argument. | 568 | (setq events (cdr events)))) |
| 569 | (set (make-local-variable 'url-redirect-buffer) | 569 | (< old-redirects url-max-redirections)))) |
| 570 | (url-retrieve-internal | 570 | ;; url-max-redirections hasn't been reached, so go |
| 571 | redirect-uri url-callback-function | 571 | ;; ahead and redirect. |
| 572 | url-callback-arguments)) | 572 | (progn |
| 573 | (url-mark-buffer-as-dead (current-buffer)))))) | 573 | ;; Remember that the request was redirected. |
| 574 | (setf (car url-callback-arguments) | ||
| 575 | (nconc (list :redirect redirect-uri) | ||
| 576 | (car url-callback-arguments))) | ||
| 577 | ;; Put in the current buffer a forwarding pointer to the new | ||
| 578 | ;; destination buffer. | ||
| 579 | ;; FIXME: This is a hack to fix url-retrieve-synchronously | ||
| 580 | ;; without changing the API. Instead url-retrieve should | ||
| 581 | ;; either simply not return the "destination" buffer, or it | ||
| 582 | ;; should take an optional `dest-buf' argument. | ||
| 583 | (set (make-local-variable 'url-redirect-buffer) | ||
| 584 | (url-retrieve-internal | ||
| 585 | redirect-uri url-callback-function | ||
| 586 | url-callback-arguments)) | ||
| 587 | (url-mark-buffer-as-dead (current-buffer))) | ||
| 588 | ;; We hit url-max-redirections, so issue an error and | ||
| 589 | ;; stop redirecting. | ||
| 590 | (url-http-debug "Maximum redirections reached") | ||
| 591 | (setf (car url-callback-arguments) | ||
| 592 | (nconc (list :error (list 'error 'http-redirect-limit | ||
| 593 | redirect-uri)) | ||
| 594 | (car url-callback-arguments))) | ||
| 595 | (setq success t)))))) | ||
| 574 | (4 ; Client error | 596 | (4 ; Client error |
| 575 | ;; 400 Bad Request | 597 | ;; 400 Bad Request |
| 576 | ;; 401 Unauthorized | 598 | ;; 401 Unauthorized |
diff --git a/lisp/url/url-parse.el b/lisp/url/url-parse.el index 2b69c54133f..a9a0fb151e9 100644 --- a/lisp/url/url-parse.el +++ b/lisp/url/url-parse.el | |||
| @@ -108,7 +108,7 @@ | |||
| 108 | (defun url-recreate-url-attributes (urlobj) | 108 | (defun url-recreate-url-attributes (urlobj) |
| 109 | "Recreate the attributes of an URL string from the parsed URLOBJ." | 109 | "Recreate the attributes of an URL string from the parsed URLOBJ." |
| 110 | (when (url-attributes urlobj) | 110 | (when (url-attributes urlobj) |
| 111 | (concat "?" | 111 | (concat ";" |
| 112 | (mapconcat (lambda (x) | 112 | (mapconcat (lambda (x) |
| 113 | (if (cdr x) | 113 | (if (cdr x) |
| 114 | (concat (car x) "=" (cdr x)) | 114 | (concat (car x) "=" (cdr x)) |
| @@ -168,7 +168,7 @@ Format is: | |||
| 168 | (setq full t) | 168 | (setq full t) |
| 169 | (forward-char 2) | 169 | (forward-char 2) |
| 170 | (setq save-pos (point)) | 170 | (setq save-pos (point)) |
| 171 | (skip-chars-forward "^/\\?#") | 171 | (skip-chars-forward "^/") |
| 172 | (setq host (buffer-substring save-pos (point))) | 172 | (setq host (buffer-substring save-pos (point))) |
| 173 | (if (string-match "^\\([^@]+\\)@" host) | 173 | (if (string-match "^\\([^@]+\\)@" host) |
| 174 | (setq user (match-string 1 host) | 174 | (setq user (match-string 1 host) |
| @@ -189,25 +189,29 @@ Format is: | |||
| 189 | (setq port (url-scheme-get-property prot 'default-port))) | 189 | (setq port (url-scheme-get-property prot 'default-port))) |
| 190 | 190 | ||
| 191 | ;; 3.3. Path | 191 | ;; 3.3. Path |
| 192 | ;; Gross hack to preserve ';' in data URLs | ||
| 192 | (setq save-pos (point)) | 193 | (setq save-pos (point)) |
| 193 | (skip-chars-forward "^#?") | ||
| 194 | (setq file (buffer-substring save-pos (point))) | ||
| 195 | 194 | ||
| 196 | ;; 3.4. Query | 195 | ;; 3.4. Query |
| 197 | (when (looking-at "\\?") | 196 | (if (string= "data" prot) |
| 198 | (forward-char 1) | 197 | (goto-char (point-max)) |
| 199 | (setq save-pos (point)) | 198 | ;; Now check for references |
| 200 | (skip-chars-forward "^#") | 199 | (skip-chars-forward "^#") |
| 201 | ;; RFC 3986 specifies no general way of parsing the query | 200 | (if (eobp) |
| 202 | ;; string, but `url-parse-args' seems universal enough. | 201 | nil |
| 203 | (setq attr (url-parse-args (buffer-substring save-pos (point)) t) | 202 | (delete-region |
| 204 | attr (nreverse attr))) | 203 | (point) |
| 205 | 204 | (progn | |
| 206 | ;; 3.5. Fragment | 205 | (skip-chars-forward "#") |
| 207 | (when (looking-at "#") | 206 | (setq refs (buffer-substring (point) (point-max))) |
| 208 | (forward-char 1) | 207 | (point-max)))) |
| 209 | (setq refs (buffer-substring (point) (point-max)))) | 208 | (goto-char save-pos) |
| 209 | (skip-chars-forward "^;") | ||
| 210 | (if (not (eobp)) | ||
| 211 | (setq attr (url-parse-args (buffer-substring (point) (point-max)) t) | ||
| 212 | attr (nreverse attr)))) | ||
| 210 | 213 | ||
| 214 | (setq file (buffer-substring save-pos (point))) | ||
| 211 | (if (and host (string-match "%[0-9][0-9]" host)) | 215 | (if (and host (string-match "%[0-9][0-9]" host)) |
| 212 | (setq host (url-unhex-string host))) | 216 | (setq host (url-unhex-string host))) |
| 213 | (vector prot user pass host port file refs attr full)))))) | 217 | (vector prot user pass host port file refs attr full)))))) |
diff --git a/lisp/url/url-vars.el b/lisp/url/url-vars.el index 705eb947001..d0bd9a84c05 100644 --- a/lisp/url/url-vars.el +++ b/lisp/url/url-vars.el | |||
| @@ -320,6 +320,12 @@ undefined." | |||
| 320 | "\\`\\([-a-zA-Z0-9+.]+:\\)" | 320 | "\\`\\([-a-zA-Z0-9+.]+:\\)" |
| 321 | "A regular expression that will match an absolute URL.") | 321 | "A regular expression that will match an absolute URL.") |
| 322 | 322 | ||
| 323 | (defcustom url-max-redirections 30 | ||
| 324 | "*The maximum number of redirection requests to honor in a HTTP connection. | ||
| 325 | A negative number means to honor an unlimited number of redirection requests." | ||
| 326 | :type 'integer | ||
| 327 | :group 'url) | ||
| 328 | |||
| 323 | (defcustom url-confirmation-func 'y-or-n-p | 329 | (defcustom url-confirmation-func 'y-or-n-p |
| 324 | "*What function to use for asking yes or no functions. | 330 | "*What function to use for asking yes or no functions. |
| 325 | Possible values are `yes-or-no-p' or `y-or-n-p', or any function that | 331 | Possible values are `yes-or-no-p' or `y-or-n-p', or any function that |
diff --git a/lisp/wid-edit.el b/lisp/wid-edit.el index c7981180c10..9c791631e33 100644 --- a/lisp/wid-edit.el +++ b/lisp/wid-edit.el | |||
| @@ -84,7 +84,7 @@ | |||
| 84 | :group 'hypermedia) | 84 | :group 'hypermedia) |
| 85 | 85 | ||
| 86 | (defgroup widget-documentation nil | 86 | (defgroup widget-documentation nil |
| 87 | "Options controling the display of documentation strings." | 87 | "Options controlling the display of documentation strings." |
| 88 | :group 'widgets) | 88 | :group 'widgets) |
| 89 | 89 | ||
| 90 | (defgroup widget-faces nil | 90 | (defgroup widget-faces nil |
diff --git a/lispref/ChangeLog b/lispref/ChangeLog index d6dfcb87b49..7326f9cd8b2 100644 --- a/lispref/ChangeLog +++ b/lispref/ChangeLog | |||
| @@ -1,3 +1,61 @@ | |||
| 1 | 2007-04-22 Richard Stallman <rms@gnu.org> | ||
| 2 | |||
| 3 | * keymaps.texi (Extended Menu Items): Move the info about | ||
| 4 | format with cached keyboard binding. | ||
| 5 | |||
| 6 | 2007-04-21 Richard Stallman <rms@gnu.org> | ||
| 7 | |||
| 8 | * text.texi (Special Properties): Clarify previous change. | ||
| 9 | |||
| 10 | * files.texi (File Name Expansion): Clarify previous change. | ||
| 11 | |||
| 12 | * display.texi (Attribute Functions): Fix example for | ||
| 13 | face-attribute-relative-p. | ||
| 14 | |||
| 15 | 2007-04-19 Kenichi Handa <handa@m17n.org> | ||
| 16 | |||
| 17 | * text.texi (Special Properties): Document composition property. | ||
| 18 | |||
| 19 | 2007-04-19 Glenn Morris <rgm@gnu.org> | ||
| 20 | |||
| 21 | * files.texi (File Name Expansion): Mention "superroot". | ||
| 22 | |||
| 23 | 2007-04-15 Chong Yidong <cyd@stupidchicken.com> | ||
| 24 | |||
| 25 | * frames.texi (Multiple Displays): Add note about "multi-monitor" | ||
| 26 | setups. | ||
| 27 | (Display Feature Testing): Note that display refers to all | ||
| 28 | physical monitors for multi-monitor setups. | ||
| 29 | |||
| 30 | 2007-04-14 Richard Stallman <rms@gnu.org> | ||
| 31 | |||
| 32 | * lists.texi (Sets And Lists): Clarify `delete' examples. | ||
| 33 | Remove spurious xref to same node. | ||
| 34 | Clarify xref for add-to-list. | ||
| 35 | |||
| 36 | 2007-04-12 Nick Roberts <nickrob@snap.net.nz> | ||
| 37 | |||
| 38 | * keymaps.texi (Format of Keymaps): Remove spurious ")" from | ||
| 39 | value of lisp-mode-map. | ||
| 40 | |||
| 41 | 2007-04-11 Karl Berry <karl@gnu.org> | ||
| 42 | |||
| 43 | * anti.texi (Antinews), | ||
| 44 | * display.texi (Overlay Properties) and (Defining Images), | ||
| 45 | * processes.texi (Synchronous Processes) and (Sentinels), | ||
| 46 | * syntax.texi (Syntax Table Internals), | ||
| 47 | * searching.texi (Regexp Special), | ||
| 48 | * nonascii.texi (Default Coding Systems), | ||
| 49 | * text.texi (Special Properties), | ||
| 50 | * minibuf.texi (Basic Completion): Wording to improve breaks in | ||
| 51 | 8.5x11 format. | ||
| 52 | * elisp.texi (smallbook): new @set to more easily switch between | ||
| 53 | smallbook and 8.5x11. | ||
| 54 | |||
| 55 | 2007-04-11 Richard Stallman <rms@gnu.org> | ||
| 56 | |||
| 57 | * text.texi (Lazy Properties): Minor fix. | ||
| 58 | |||
| 1 | 2007-04-08 Karl Berry <karl@gnu.org> | 59 | 2007-04-08 Karl Berry <karl@gnu.org> |
| 2 | 60 | ||
| 3 | * symbols.texi (Plists and Alists): Period after "vs" in index entries. | 61 | * symbols.texi (Plists and Alists): Period after "vs" in index entries. |
| @@ -15,7 +73,7 @@ | |||
| 15 | adaptive-fill-regexp's value, since they are not in the standard | 73 | adaptive-fill-regexp's value, since they are not in the standard |
| 16 | TeX fonts. | 74 | TeX fonts. |
| 17 | 75 | ||
| 18 | 2007-04-07 Herbert Euler <herberteuler@hotmail.com> | 76 | 2007-04-07 Guanpeng Xu <herberteuler@hotmail.com> |
| 19 | 77 | ||
| 20 | * display.texi (Defining Faces): Fix example. | 78 | * display.texi (Defining Faces): Fix example. |
| 21 | 79 | ||
diff --git a/lispref/anti.texi b/lispref/anti.texi index de07936d2f4..b258e959a46 100644 --- a/lispref/anti.texi +++ b/lispref/anti.texi | |||
| @@ -433,11 +433,10 @@ The @code{table} argument to @code{translate-region} can no longer be | |||
| 433 | a char-table; it has to be a string. | 433 | a char-table; it has to be a string. |
| 434 | 434 | ||
| 435 | @item | 435 | @item |
| 436 | The two functions @code{merge-coding-systems} and | 436 | The variable @code{auto-coding-functions} and the two functions |
| 437 | @code{decode-coding-inserted-region}, and the variable | 437 | @code{merge-coding-systems} and @code{decode-coding-inserted-region} |
| 438 | @code{auto-coding-functions}, have been deleted. The | 438 | have been deleted. The coding system property |
| 439 | @code{mime-text-unsuitable} coding system property no longer has any | 439 | @code{mime-text-unsuitable} no longer has any special meaning. |
| 440 | special meaning. | ||
| 441 | 440 | ||
| 442 | @item | 441 | @item |
| 443 | If pure storage overflows while dumping, Emacs won't tell you how much | 442 | If pure storage overflows while dumping, Emacs won't tell you how much |
diff --git a/lispref/display.texi b/lispref/display.texi index 4d94ba1ec4d..770d6e9d91a 100644 --- a/lispref/display.texi +++ b/lispref/display.texi | |||
| @@ -1365,7 +1365,7 @@ specify a particular attribute for certain text. @xref{Face | |||
| 1365 | Attributes}. | 1365 | Attributes}. |
| 1366 | 1366 | ||
| 1367 | @item | 1367 | @item |
| 1368 | A cons cell of the form @code{(foreground-color . @var{color-name})} or | 1368 | A cons cell, either of the form @code{(foreground-color . @var{color-name})} or |
| 1369 | @code{(background-color . @var{color-name})}. These elements specify | 1369 | @code{(background-color . @var{color-name})}. These elements specify |
| 1370 | just the foreground color or just the background color. | 1370 | just the foreground color or just the background color. |
| 1371 | 1371 | ||
| @@ -2144,10 +2144,9 @@ For @code{:height}, floating point values are also relative. | |||
| 2144 | For example: | 2144 | For example: |
| 2145 | 2145 | ||
| 2146 | @example | 2146 | @example |
| 2147 | (read-face-name "Describe face" "= `default' face" t) | 2147 | (face-attribute-relative-p :height 2.0) |
| 2148 | @result{} t | ||
| 2148 | @end example | 2149 | @end example |
| 2149 | |||
| 2150 | prompts with @samp{Describe face (default = `default' face): }. | ||
| 2151 | @end defun | 2150 | @end defun |
| 2152 | 2151 | ||
| 2153 | @defun merge-face-attribute attribute value1 value2 | 2152 | @defun merge-face-attribute attribute value1 value2 |
| @@ -4138,8 +4137,8 @@ should specify the image as follows: | |||
| 4138 | This function returns a suitable search path for images used by the | 4137 | This function returns a suitable search path for images used by the |
| 4139 | Lisp package @var{library}. | 4138 | Lisp package @var{library}. |
| 4140 | 4139 | ||
| 4141 | The function searches for @var{image} first in @code{image-load-path} | 4140 | The function searches for @var{image} first using @code{image-load-path}, |
| 4142 | (excluding @file{@code{data-directory}/images}) and then in | 4141 | excluding @file{@code{data-directory}/images}, and then in |
| 4143 | @code{load-path}, followed by a path suitable for @var{library}, which | 4142 | @code{load-path}, followed by a path suitable for @var{library}, which |
| 4144 | includes @file{../../etc/images} and @file{../etc/images} relative to | 4143 | includes @file{../../etc/images} and @file{../etc/images} relative to |
| 4145 | the library file itself, and finally in | 4144 | the library file itself, and finally in |
diff --git a/lispref/elisp.texi b/lispref/elisp.texi index 5c05a17a955..546f1ca4f97 100644 --- a/lispref/elisp.texi +++ b/lispref/elisp.texi | |||
| @@ -7,24 +7,29 @@ | |||
| 7 | @c Version of the manual and of Emacs. | 7 | @c Version of the manual and of Emacs. |
| 8 | @c Please remember to update the edition number in README as well. | 8 | @c Please remember to update the edition number in README as well. |
| 9 | @set VERSION 2.9 | 9 | @set VERSION 2.9 |
| 10 | @set EMACSVER 22.0.97 | 10 | @set EMACSVER 22.0.98 |
| 11 | 11 | ||
| 12 | @dircategory Emacs | 12 | @dircategory Emacs |
| 13 | @direntry | 13 | @direntry |
| 14 | * Elisp: (elisp). The Emacs Lisp Reference Manual. | 14 | * Elisp: (elisp). The Emacs Lisp Reference Manual. |
| 15 | @end direntry | 15 | @end direntry |
| 16 | 16 | ||
| 17 | @c So that anyone making the printed manual gets the version we have | 17 | @c for full 8.5x11, comment this out. |
| 18 | @c tuned to avoid bad line breaks, etc. | 18 | @set smallbook |
| 19 | |||
| 20 | @ifset smallbook | ||
| 19 | @smallbook | 21 | @smallbook |
| 22 | @end ifset | ||
| 20 | 23 | ||
| 21 | @c per rms and peterb, use 10pt fonts for the main text, mostly to | 24 | @c per rms and peterb, use 10pt fonts for the main text, mostly to |
| 22 | @c save on paper cost. Also, do not declare @setchapternewpage odd, | 25 | @c save on paper cost. Also, do not declare @setchapternewpage odd, |
| 23 | @c for the same reason. Do this inside @tex for now, so the | 26 | @c for the same reason. Do this inside @tex for now, so the |
| 24 | @c last-released makeinfo does not complain. | 27 | @c last-released makeinfo does not complain. |
| 25 | @tex | 28 | @tex |
| 29 | @ifset smallbook | ||
| 26 | @fonttextsize 10 | 30 | @fonttextsize 10 |
| 27 | \global\hbadness=6000 % don't worry about not-too-underfull boxes | 31 | @end ifset |
| 32 | \global\hbadness=6666 % don't worry about not-too-underfull boxes | ||
| 28 | @end tex | 33 | @end tex |
| 29 | 34 | ||
| 30 | @c Combine indices. | 35 | @c Combine indices. |
| @@ -61,7 +66,7 @@ Software Foundation raise funds for GNU development.'' | |||
| 61 | @titlepage | 66 | @titlepage |
| 62 | @title GNU Emacs Lisp Reference Manual | 67 | @title GNU Emacs Lisp Reference Manual |
| 63 | @subtitle For Emacs Version @value{EMACSVER} | 68 | @subtitle For Emacs Version @value{EMACSVER} |
| 64 | @subtitle Revision @value{VERSION}, January 2002 | 69 | @subtitle Revision @value{VERSION}, April 2007 |
| 65 | 70 | ||
| 66 | @author by Bil Lewis, Dan LaLiberte, Richard Stallman | 71 | @author by Bil Lewis, Dan LaLiberte, Richard Stallman |
| 67 | @author and the GNU Manual Group | 72 | @author and the GNU Manual Group |
diff --git a/lispref/files.texi b/lispref/files.texi index f357b1f3814..656dbf346dc 100644 --- a/lispref/files.texi +++ b/lispref/files.texi | |||
| @@ -1990,6 +1990,20 @@ canonical form: | |||
| 1990 | @end group | 1990 | @end group |
| 1991 | @end example | 1991 | @end example |
| 1992 | 1992 | ||
| 1993 | In some cases, a leading @samp{..} component can remain in the output: | ||
| 1994 | |||
| 1995 | @example | ||
| 1996 | @group | ||
| 1997 | (expand-file-name "../home" "/") | ||
| 1998 | @result{} "/../home" | ||
| 1999 | @end group | ||
| 2000 | @end example | ||
| 2001 | |||
| 2002 | @noindent | ||
| 2003 | This is for the sake of filesystems that have the concept of a | ||
| 2004 | ``superroot'' above the root directory @file{/}. On other filesystems, | ||
| 2005 | @file{/../} is interpreted exactly the same as @file{/}. | ||
| 2006 | |||
| 1993 | Note that @code{expand-file-name} does @emph{not} expand environment | 2007 | Note that @code{expand-file-name} does @emph{not} expand environment |
| 1994 | variables; only @code{substitute-in-file-name} does that. | 2008 | variables; only @code{substitute-in-file-name} does that. |
| 1995 | 2009 | ||
diff --git a/lispref/frames.texi b/lispref/frames.texi index 1bad33cdb4e..527f27385f3 100644 --- a/lispref/frames.texi +++ b/lispref/frames.texi | |||
| @@ -150,6 +150,13 @@ screens belonging to one server, Emacs knows by the similarity in their | |||
| 150 | names that they share a single keyboard, and it treats them as a single | 150 | names that they share a single keyboard, and it treats them as a single |
| 151 | terminal. | 151 | terminal. |
| 152 | 152 | ||
| 153 | Note that some graphical terminals can output to more than a one | ||
| 154 | monitor (or other output device) at the same time. On these | ||
| 155 | ``multi-monitor'' setups, a single @var{display} value controls the | ||
| 156 | output to all the physical monitors. In this situation, there is | ||
| 157 | currently no platform-independent way for Emacs to distinguish between | ||
| 158 | the different physical monitors. | ||
| 159 | |||
| 153 | @deffn Command make-frame-on-display display &optional parameters | 160 | @deffn Command make-frame-on-display display &optional parameters |
| 154 | This creates and returns a new frame on display @var{display}, taking | 161 | This creates and returns a new frame on display @var{display}, taking |
| 155 | the other frame parameters from @var{parameters}. Aside from the | 162 | the other frame parameters from @var{parameters}. Aside from the |
| @@ -2089,11 +2096,19 @@ This function returns the number of screens associated with the display. | |||
| 2089 | @defun display-pixel-height &optional display | 2096 | @defun display-pixel-height &optional display |
| 2090 | This function returns the height of the screen in pixels. | 2097 | This function returns the height of the screen in pixels. |
| 2091 | On a character terminal, it gives the height in characters. | 2098 | On a character terminal, it gives the height in characters. |
| 2099 | |||
| 2100 | For graphical terminals, note that on ``multi-monitor'' setups this | ||
| 2101 | refers to the pixel width for all physical monitors associated with | ||
| 2102 | @var{display}. @xref{Multiple Displays}. | ||
| 2092 | @end defun | 2103 | @end defun |
| 2093 | 2104 | ||
| 2094 | @defun display-pixel-width &optional display | 2105 | @defun display-pixel-width &optional display |
| 2095 | This function returns the width of the screen in pixels. | 2106 | This function returns the width of the screen in pixels. |
| 2096 | On a character terminal, it gives the width in characters. | 2107 | On a character terminal, it gives the width in characters. |
| 2108 | |||
| 2109 | For graphical terminals, note that on ``multi-monitor'' setups this | ||
| 2110 | refers to the pixel width for all physical monitors associated with | ||
| 2111 | @var{display}. @xref{Multiple Displays}. | ||
| 2097 | @end defun | 2112 | @end defun |
| 2098 | 2113 | ||
| 2099 | @defun display-mm-height &optional display | 2114 | @defun display-mm-height &optional display |
diff --git a/lispref/keymaps.texi b/lispref/keymaps.texi index d94de6d70f0..88b312d227b 100644 --- a/lispref/keymaps.texi +++ b/lispref/keymaps.texi | |||
| @@ -255,7 +255,7 @@ lisp-mode-map | |||
| 255 | (24 . lisp-send-defun) | 255 | (24 . lisp-send-defun) |
| 256 | keymap | 256 | keymap |
| 257 | ;; @r{@kbd{M-C-q}, treated as @kbd{@key{ESC} C-q}} | 257 | ;; @r{@kbd{M-C-q}, treated as @kbd{@key{ESC} C-q}} |
| 258 | (17 . indent-sexp))) | 258 | (17 . indent-sexp)) |
| 259 | @end group | 259 | @end group |
| 260 | @group | 260 | @group |
| 261 | ;; @r{This part is inherited from @code{lisp-mode-shared-map}.} | 261 | ;; @r{This part is inherited from @code{lisp-mode-shared-map}.} |
| @@ -2094,7 +2094,17 @@ Here, @var{item-name} is an expression which evaluates to the menu item | |||
| 2094 | string. Thus, the string need not be a constant. The third element, | 2094 | string. Thus, the string need not be a constant. The third element, |
| 2095 | @var{real-binding}, is the command to execute. The tail of the list, | 2095 | @var{real-binding}, is the command to execute. The tail of the list, |
| 2096 | @var{item-property-list}, has the form of a property list which contains | 2096 | @var{item-property-list}, has the form of a property list which contains |
| 2097 | other information. Here is a table of the properties that are supported: | 2097 | other information. |
| 2098 | |||
| 2099 | When an equivalent keyboard key binding is cached, the extended menu | ||
| 2100 | item binding looks like this: | ||
| 2101 | |||
| 2102 | @example | ||
| 2103 | (menu-item @var{item-name} @var{real-binding} (@var{key-binding-data}) | ||
| 2104 | . @var{item-property-list}) | ||
| 2105 | @end example | ||
| 2106 | |||
| 2107 | Here is a table of the properties that are supported: | ||
| 2098 | 2108 | ||
| 2099 | @table @code | 2109 | @table @code |
| 2100 | @item :enable @var{form} | 2110 | @item :enable @var{form} |
| @@ -2180,13 +2190,6 @@ operates on menu data structures, so you should write it so it can | |||
| 2180 | safely be called at any time. | 2190 | safely be called at any time. |
| 2181 | @end table | 2191 | @end table |
| 2182 | 2192 | ||
| 2183 | When an equivalent key binding is cached, the binding looks like this. | ||
| 2184 | |||
| 2185 | @example | ||
| 2186 | (menu-item @var{item-name} @var{real-binding} (@var{key-binding-data}) | ||
| 2187 | . @var{item-property-list}) | ||
| 2188 | @end example | ||
| 2189 | |||
| 2190 | @node Menu Separators | 2193 | @node Menu Separators |
| 2191 | @subsubsection Menu Separators | 2194 | @subsubsection Menu Separators |
| 2192 | @cindex menu separators | 2195 | @cindex menu separators |
diff --git a/lispref/lists.texi b/lispref/lists.texi index 53fe64c3cc6..ffe4df2413d 100644 --- a/lispref/lists.texi +++ b/lispref/lists.texi | |||
| @@ -1366,6 +1366,9 @@ and the @code{(4)} in the @code{sample-list} are not @code{eq}: | |||
| 1366 | (delq '(4) sample-list) | 1366 | (delq '(4) sample-list) |
| 1367 | @result{} (a c (4)) | 1367 | @result{} (a c (4)) |
| 1368 | @end group | 1368 | @end group |
| 1369 | |||
| 1370 | If you want to delete elements that are @code{equal} to a given value, | ||
| 1371 | use @code{delete} (see below). | ||
| 1369 | @end example | 1372 | @end example |
| 1370 | 1373 | ||
| 1371 | @defun remq object list | 1374 | @defun remq object list |
| @@ -1388,9 +1391,6 @@ sample-list | |||
| 1388 | @result{} (a b c a b c) | 1391 | @result{} (a b c a b c) |
| 1389 | @end group | 1392 | @end group |
| 1390 | @end example | 1393 | @end example |
| 1391 | @noindent | ||
| 1392 | The function @code{delq} offers a way to perform this operation | ||
| 1393 | destructively. See @ref{Sets And Lists}. | ||
| 1394 | @end defun | 1394 | @end defun |
| 1395 | 1395 | ||
| 1396 | @defun memql object list | 1396 | @defun memql object list |
| @@ -1448,8 +1448,8 @@ If @code{sequence} is a list, this function destructively removes all | |||
| 1448 | elements @code{equal} to @var{object} from @var{sequence}. For lists, | 1448 | elements @code{equal} to @var{object} from @var{sequence}. For lists, |
| 1449 | @code{delete} is to @code{delq} as @code{member} is to @code{memq}: it | 1449 | @code{delete} is to @code{delq} as @code{member} is to @code{memq}: it |
| 1450 | uses @code{equal} to compare elements with @var{object}, like | 1450 | uses @code{equal} to compare elements with @var{object}, like |
| 1451 | @code{member}; when it finds an element that matches, it removes the | 1451 | @code{member}; when it finds an element that matches, it cuts the |
| 1452 | element just as @code{delq} would. | 1452 | element out just as @code{delq} would. |
| 1453 | 1453 | ||
| 1454 | If @code{sequence} is a vector or string, @code{delete} returns a copy | 1454 | If @code{sequence} is a vector or string, @code{delete} returns a copy |
| 1455 | of @code{sequence} with all elements @code{equal} to @code{object} | 1455 | of @code{sequence} with all elements @code{equal} to @code{object} |
| @@ -1459,8 +1459,22 @@ For example: | |||
| 1459 | 1459 | ||
| 1460 | @example | 1460 | @example |
| 1461 | @group | 1461 | @group |
| 1462 | (delete '(2) '((2) (1) (2))) | 1462 | (setq l '((2) (1) (2))) |
| 1463 | (delete '(2) l) | ||
| 1463 | @result{} ((1)) | 1464 | @result{} ((1)) |
| 1465 | l | ||
| 1466 | @result{} ((2) (1)) | ||
| 1467 | ;; @r{If you want to change @code{l} reliably,} | ||
| 1468 | ;; @r{write @code{(setq l (delete elt l))}.} | ||
| 1469 | @end group | ||
| 1470 | @group | ||
| 1471 | (setq l '((2) (1) (2))) | ||
| 1472 | (delete '(1) l) | ||
| 1473 | @result{} ((2) (2)) | ||
| 1474 | l | ||
| 1475 | @result{} ((2) (2)) | ||
| 1476 | ;; @r{In this case, it makes no difference whether you set @code{l},} | ||
| 1477 | ;; @r{but you should do so for the sake of the other case.} | ||
| 1464 | @end group | 1478 | @end group |
| 1465 | @group | 1479 | @group |
| 1466 | (delete '(2) [(2) (1) (2)]) | 1480 | (delete '(2) [(2) (1) (2)]) |
| @@ -1470,7 +1484,7 @@ For example: | |||
| 1470 | @end defun | 1484 | @end defun |
| 1471 | 1485 | ||
| 1472 | @defun remove object sequence | 1486 | @defun remove object sequence |
| 1473 | This function is the non-destructive counterpart of @code{delete}. If | 1487 | This function is the non-destructive counterpart of @code{delete}. It |
| 1474 | returns a copy of @code{sequence}, a list, vector, or string, with | 1488 | returns a copy of @code{sequence}, a list, vector, or string, with |
| 1475 | elements @code{equal} to @code{object} removed. For example: | 1489 | elements @code{equal} to @code{object} removed. For example: |
| 1476 | 1490 | ||
| @@ -1509,7 +1523,8 @@ several @code{equal} occurrences of an element in @var{list}, | |||
| 1509 | @end defun | 1523 | @end defun |
| 1510 | 1524 | ||
| 1511 | See also the function @code{add-to-list}, in @ref{List Variables}, | 1525 | See also the function @code{add-to-list}, in @ref{List Variables}, |
| 1512 | for another way to add an element to a list stored in a variable. | 1526 | for a way to add an element to a list stored in a variable and used as a |
| 1527 | set. | ||
| 1513 | 1528 | ||
| 1514 | @node Association Lists | 1529 | @node Association Lists |
| 1515 | @section Association Lists | 1530 | @section Association Lists |
diff --git a/lispref/minibuf.texi b/lispref/minibuf.texi index efe2d7575c7..98901df87f8 100644 --- a/lispref/minibuf.texi +++ b/lispref/minibuf.texi | |||
| @@ -767,7 +767,7 @@ completion possibility specified by @var{collection} and | |||
| 767 | strings, this is true if @var{string} appears in the list and | 767 | strings, this is true if @var{string} appears in the list and |
| 768 | @var{predicate} is satisfied. | 768 | @var{predicate} is satisfied. |
| 769 | 769 | ||
| 770 | @code{test-completion} uses @code{completion-regexp-list} in the same | 770 | This function uses @code{completion-regexp-list} in the same |
| 771 | way that @code{try-completion} does. | 771 | way that @code{try-completion} does. |
| 772 | 772 | ||
| 773 | If @var{predicate} is non-@code{nil} and if @var{collection} contains | 773 | If @var{predicate} is non-@code{nil} and if @var{collection} contains |
diff --git a/lispref/nonascii.texi b/lispref/nonascii.texi index 899899f8f93..dd0f15c817e 100644 --- a/lispref/nonascii.texi +++ b/lispref/nonascii.texi | |||
| @@ -1105,11 +1105,11 @@ for decoding (in case @var{operation} does decoding), and | |||
| 1105 | @var{encoding-system} is the coding system for encoding (in case | 1105 | @var{encoding-system} is the coding system for encoding (in case |
| 1106 | @var{operation} does encoding). | 1106 | @var{operation} does encoding). |
| 1107 | 1107 | ||
| 1108 | The argument @var{operation} should be a symbol, any one of | 1108 | The argument @var{operation} is a symbol, one of @code{write-region}, |
| 1109 | @code{insert-file-contents}, @code{write-region}, | ||
| 1110 | @code{start-process}, @code{call-process}, @code{call-process-region}, | 1109 | @code{start-process}, @code{call-process}, @code{call-process-region}, |
| 1111 | or @code{open-network-stream}. These are the names of the Emacs I/O | 1110 | @code{insert-file-contents}, or @code{open-network-stream}. These are |
| 1112 | primitives that can do character code and eol conversion. | 1111 | the names of the Emacs I/O primitives that can do character code and |
| 1112 | eol conversion. | ||
| 1113 | 1113 | ||
| 1114 | The remaining arguments should be the same arguments that might be given | 1114 | The remaining arguments should be the same arguments that might be given |
| 1115 | to the corresponding I/O primitive. Depending on the primitive, one | 1115 | to the corresponding I/O primitive. Depending on the primitive, one |
| @@ -1165,9 +1165,9 @@ of the right way to use the variable: | |||
| 1165 | (insert-file-contents filename)) | 1165 | (insert-file-contents filename)) |
| 1166 | @end example | 1166 | @end example |
| 1167 | 1167 | ||
| 1168 | When its value is non-@code{nil}, @code{coding-system-for-read} takes | 1168 | When its value is non-@code{nil}, this variable takes precedence over |
| 1169 | precedence over all other methods of specifying a coding system to use for | 1169 | all other methods of specifying a coding system to use for input, |
| 1170 | input, including @code{file-coding-system-alist}, | 1170 | including @code{file-coding-system-alist}, |
| 1171 | @code{process-coding-system-alist} and | 1171 | @code{process-coding-system-alist} and |
| 1172 | @code{network-coding-system-alist}. | 1172 | @code{network-coding-system-alist}. |
| 1173 | @end defvar | 1173 | @end defvar |
diff --git a/lispref/processes.texi b/lispref/processes.texi index 34b9b34e762..fbc8b785c11 100644 --- a/lispref/processes.texi +++ b/lispref/processes.texi | |||
| @@ -349,7 +349,7 @@ handler could be different from the handler chosen for the | |||
| 349 | @var{infile} is on another remote host. Or @code{default-directory} | 349 | @var{infile} is on another remote host. Or @code{default-directory} |
| 350 | could be non-special, whereas @var{infile} is on a remote host.) | 350 | could be non-special, whereas @var{infile} is on a remote host.) |
| 351 | 351 | ||
| 352 | If @var{buffer} has the form @code{(@var{real-destination} | 352 | If @var{buffer} is a list of the form @code{(@var{real-destination} |
| 353 | @var{error-destination})}, and @var{error-destination} names a file, | 353 | @var{error-destination})}, and @var{error-destination} names a file, |
| 354 | then the same remarks as for @var{infile} apply. | 354 | then the same remarks as for @var{infile} apply. |
| 355 | 355 | ||
| @@ -2066,8 +2066,9 @@ number @var{p}. @code{format-network-address} converts that to the | |||
| 2066 | string @code{"@var{a}.@var{b}.@var{c}.@var{d}:@var{p}"}. | 2066 | string @code{"@var{a}.@var{b}.@var{c}.@var{d}:@var{p}"}. |
| 2067 | 2067 | ||
| 2068 | A nine-element vector @code{[@var{a} @var{b} @var{c} @var{d} @var{e} | 2068 | A nine-element vector @code{[@var{a} @var{b} @var{c} @var{d} @var{e} |
| 2069 | @var{f} @var{g} @var{h} @var{p}]} represents an IPv6 address and port | 2069 | @var{f} @var{g} @var{h} @var{p}]} represents an IPv6 address along |
| 2070 | number. @code{format-network-address} converts that to the string | 2070 | with a port number. @code{format-network-address} converts that to |
| 2071 | the string | ||
| 2071 | @code{"[@var{a}:@var{b}:@var{c}:@var{d}:@var{e}:@var{f}:@var{g}:@var{h}]:@var{p}"}. | 2072 | @code{"[@var{a}:@var{b}:@var{c}:@var{d}:@var{e}:@var{f}:@var{g}:@var{h}]:@var{p}"}. |
| 2072 | 2073 | ||
| 2073 | If the vector does not include the port number, @var{p}, or if | 2074 | If the vector does not include the port number, @var{p}, or if |
diff --git a/lispref/searching.texi b/lispref/searching.texi index 056e1bd51a5..10e8c672962 100644 --- a/lispref/searching.texi +++ b/lispref/searching.texi | |||
| @@ -309,17 +309,16 @@ first tries to match all three @samp{a}s; but the rest of the pattern is | |||
| 309 | The next alternative is for @samp{a*} to match only two @samp{a}s. With | 309 | The next alternative is for @samp{a*} to match only two @samp{a}s. With |
| 310 | this choice, the rest of the regexp matches successfully. | 310 | this choice, the rest of the regexp matches successfully. |
| 311 | 311 | ||
| 312 | @strong{Warning:} Nested repetition operators take a long time, | 312 | @strong{Warning:} Nested repetition operators can run for an |
| 313 | or even forever, if they | 313 | indefinitely long time, if they lead to ambiguous matching. For |
| 314 | lead to ambiguous matching. For example, trying to match the regular | 314 | example, trying to match the regular expression @samp{\(x+y*\)*a} |
| 315 | expression @samp{\(x+y*\)*a} against the string | 315 | against the string @samp{xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxz} could |
| 316 | @samp{xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxz} could take hours before it | 316 | take hours before it ultimately fails. Emacs must try each way of |
| 317 | ultimately fails. Emacs must try each way of grouping the 35 | 317 | grouping the @samp{x}s before concluding that none of them can work. |
| 318 | @samp{x}s before concluding that none of them can work. Even worse, | 318 | Even worse, @samp{\(x*\)*} can match the null string in infinitely |
| 319 | @samp{\(x*\)*} can match the null string in infinitely many ways, so | 319 | many ways, so it causes an infinite loop. To avoid these problems, |
| 320 | it causes an infinite loop. To avoid these problems, check nested | 320 | check nested repetitions carefully, to make sure that they do not |
| 321 | repetitions carefully, to make sure that they do not cause combinatorial | 321 | cause combinatorial explosions in backtracking. |
| 322 | explosions in backtracking. | ||
| 323 | 322 | ||
| 324 | @item @samp{+} | 323 | @item @samp{+} |
| 325 | @cindex @samp{+} in regexp | 324 | @cindex @samp{+} in regexp |
diff --git a/lispref/syntax.texi b/lispref/syntax.texi index 1e4b1b1fefe..340f74632bd 100644 --- a/lispref/syntax.texi +++ b/lispref/syntax.texi | |||
| @@ -1011,8 +1011,9 @@ corresponds to each syntax flag. | |||
| 1011 | @end multitable | 1011 | @end multitable |
| 1012 | 1012 | ||
| 1013 | @defun string-to-syntax @var{desc} | 1013 | @defun string-to-syntax @var{desc} |
| 1014 | This function returns the internal form @code{(@var{syntax-code} . | 1014 | This function returns the internal form corresponding to the syntax |
| 1015 | @var{matching-char})} corresponding to the syntax descriptor @var{desc}. | 1015 | descriptor @var{desc}, a cons cell @code{(@var{syntax-code} |
| 1016 | . @var{matching-char})}. | ||
| 1016 | @end defun | 1017 | @end defun |
| 1017 | 1018 | ||
| 1018 | @defun syntax-after pos | 1019 | @defun syntax-after pos |
diff --git a/lispref/text.texi b/lispref/text.texi index 4065aba4aef..13d2d543f94 100644 --- a/lispref/text.texi +++ b/lispref/text.texi | |||
| @@ -2987,13 +2987,13 @@ time you want to specify a particular attribute for certain text. | |||
| 2987 | @xref{Face Attributes}. | 2987 | @xref{Face Attributes}. |
| 2988 | 2988 | ||
| 2989 | @item | 2989 | @item |
| 2990 | A cons cell of the form @code{(foreground-color . @var{color-name})} or | 2990 | A cons cell with the form @code{(foreground-color . @var{color-name})} or |
| 2991 | @code{(background-color . @var{color-name})}. These elements specify | 2991 | @code{(background-color . @var{color-name})}. These elements specify |
| 2992 | just the foreground color or just the background color. @xref{Color | 2992 | just the foreground color or just the background color. @xref{Color |
| 2993 | Names}, for the supported forms of @var{color-name}. | 2993 | Names}, for the supported forms of @var{color-name}. |
| 2994 | 2994 | ||
| 2995 | @code{(foreground-color . @var{color-name})} is equivalent to | 2995 | A cons cell of @code{(foreground-color . @var{color-name})} is equivalent to |
| 2996 | specifying @code{(:foreground @var{color-name})}, and likewise for the | 2996 | specifying @code{(:foreground @var{color-name})}; likewise for the |
| 2997 | background. | 2997 | background. |
| 2998 | @end itemize | 2998 | @end itemize |
| 2999 | 2999 | ||
| @@ -3241,7 +3241,6 @@ functions (which may be the same function). In any case, all the | |||
| 3241 | It is possible with @code{char-after} to examine characters at various | 3241 | It is possible with @code{char-after} to examine characters at various |
| 3242 | buffer positions without moving point to those positions. Only an | 3242 | buffer positions without moving point to those positions. Only an |
| 3243 | actual change in the value of point runs these hook functions. | 3243 | actual change in the value of point runs these hook functions. |
| 3244 | @end table | ||
| 3245 | 3244 | ||
| 3246 | @defvar inhibit-point-motion-hooks | 3245 | @defvar inhibit-point-motion-hooks |
| 3247 | When this variable is non-@code{nil}, @code{point-left} and | 3246 | When this variable is non-@code{nil}, @code{point-left} and |
| @@ -3260,6 +3259,30 @@ string to display. Tooltip mode (@pxref{Tooltips,,, emacs, The GNU Emacs | |||
| 3260 | Manual}) provides an example. | 3259 | Manual}) provides an example. |
| 3261 | @end defvar | 3260 | @end defvar |
| 3262 | 3261 | ||
| 3262 | @item composition | ||
| 3263 | @kindex composition @r{(text property)} | ||
| 3264 | This text property is used to display a sequence of characters as a | ||
| 3265 | single glyph composed from components. For instance, in Thai a base | ||
| 3266 | consonant is composed with the following combining vowel as a single | ||
| 3267 | glyph. The value should be a character or a sequence (vector, list, | ||
| 3268 | or string) of integers. | ||
| 3269 | |||
| 3270 | @itemize @bullet | ||
| 3271 | @item | ||
| 3272 | If it is a character, it means to display that character instead of | ||
| 3273 | the text in the region. | ||
| 3274 | |||
| 3275 | @item | ||
| 3276 | If it is a string, it means to display that string's contents instead | ||
| 3277 | of the text in the region. | ||
| 3278 | |||
| 3279 | @item | ||
| 3280 | If it is a vector or list, the elements are characters interleaved | ||
| 3281 | with internal codes specifying how to compose the following character | ||
| 3282 | with the previous one. | ||
| 3283 | @end itemize | ||
| 3284 | @end table | ||
| 3285 | |||
| 3263 | @node Format Properties | 3286 | @node Format Properties |
| 3264 | @subsection Formatted Text Properties | 3287 | @subsection Formatted Text Properties |
| 3265 | 3288 | ||
| @@ -3470,7 +3493,7 @@ once for the same part of the buffer, you can use the variable | |||
| 3470 | @code{buffer-access-fontified-property}. | 3493 | @code{buffer-access-fontified-property}. |
| 3471 | 3494 | ||
| 3472 | @defvar buffer-access-fontified-property | 3495 | @defvar buffer-access-fontified-property |
| 3473 | If this value's variable is non-@code{nil}, it is a symbol which is used | 3496 | If this variable's value is non-@code{nil}, it is a symbol which is used |
| 3474 | as a text property name. A non-@code{nil} value for that text property | 3497 | as a text property name. A non-@code{nil} value for that text property |
| 3475 | means, ``the other text properties for this character have already been | 3498 | means, ``the other text properties for this character have already been |
| 3476 | computed.'' | 3499 | computed.'' |
diff --git a/mac/Emacs.app/Contents/Resources/English.lproj/InfoPlist.strings b/mac/Emacs.app/Contents/Resources/English.lproj/InfoPlist.strings index e064b75f487..c9f8190c883 100644 --- a/mac/Emacs.app/Contents/Resources/English.lproj/InfoPlist.strings +++ b/mac/Emacs.app/Contents/Resources/English.lproj/InfoPlist.strings | |||
| @@ -1,5 +1,5 @@ | |||
| 1 | /* Localized versions of Info.plist keys */ | 1 | /* Localized versions of Info.plist keys */ |
| 2 | 2 | ||
| 3 | CFBundleName = "Emacs"; | 3 | CFBundleName = "Emacs"; |
| 4 | CFBundleShortVersionString = "22.0.97"; | 4 | CFBundleShortVersionString = "22.0.98"; |
| 5 | CFBundleGetInfoString = "22.0.97, Copyright (C) 2007 Free Software Foundation, Inc."; | 5 | CFBundleGetInfoString = "22.0.98, Copyright (C) 2007 Free Software Foundation, Inc."; |
diff --git a/mac/src/Emacs.r b/mac/src/Emacs.r index 78626b09fb3..0a17e379168 100644 --- a/mac/src/Emacs.r +++ b/mac/src/Emacs.r | |||
| @@ -221,10 +221,10 @@ resource 'vers' (1) { | |||
| 221 | 0x22, /* Major revision in BCD */ | 221 | 0x22, /* Major revision in BCD */ |
| 222 | 0x0, /* Minor revision in BCD */ | 222 | 0x0, /* Minor revision in BCD */ |
| 223 | alpha, /* development, alpha, beta, or final (release) */ | 223 | alpha, /* development, alpha, beta, or final (release) */ |
| 224 | 97, /* Non-final release # */ | 224 | 98, /* Non-final release # */ |
| 225 | 0, /* Region code */ | 225 | 0, /* Region code */ |
| 226 | "22.0.97", /* Short version number */ | 226 | "22.0.98", /* Short version number */ |
| 227 | "22.0.97, Copyright \0xa9 2007 " | 227 | "22.0.98, Copyright \0xa9 2007 " |
| 228 | "Free Software Foundation, Inc." /* Long version number */ | 228 | "Free Software Foundation, Inc." /* Long version number */ |
| 229 | }; | 229 | }; |
| 230 | 230 | ||
diff --git a/man/ChangeLog b/man/ChangeLog index 8fe3bcd9484..3981e0c7d25 100644 --- a/man/ChangeLog +++ b/man/ChangeLog | |||
| @@ -1,3 +1,122 @@ | |||
| 1 | 2007-04-23 Jay Belanger <jay.p.belanger@gmail.com> | ||
| 2 | |||
| 3 | * calc.texi (Reporting bugs): Update maintainer's address. | ||
| 4 | |||
| 5 | 2007-04-23 Chong Yidong <cyd@stupidchicken.com> | ||
| 6 | |||
| 7 | * display.texi (Highlight Interactively): Correct description of | ||
| 8 | hi-lock-file-patterns-policy. | ||
| 9 | |||
| 10 | * files.texi (File Archives): Mention self-extracting executables. | ||
| 11 | |||
| 12 | 2007-04-23 Eli Zaretskii <eliz@gnu.org> | ||
| 13 | |||
| 14 | * search.texi (Unconditional Replace, Query Replace): Add xref to | ||
| 15 | "Replacement and Case". | ||
| 16 | |||
| 17 | 2007-04-22 Chong Yidong <cyd@stupidchicken.com> | ||
| 18 | |||
| 19 | * dired.texi (Image-Dired): Move from Thumbnails node. | ||
| 20 | * misc.texi (Thumbnails): Node deleted. | ||
| 21 | * emacs.texi (Top): Update node listing. | ||
| 22 | |||
| 23 | * files.texi (File Conveniences): | ||
| 24 | * ack.texi (Acknowledgments): | ||
| 25 | * faq.texi (New in Emacs 22): Rename "tumme" to "image-dired". | ||
| 26 | |||
| 27 | 2007-04-21 Richard Stallman <rms@gnu.org> | ||
| 28 | |||
| 29 | * display.texi (Highlight Interactively): Correct previous change. | ||
| 30 | Clarify doc of hi-lock-find-patterns, and move new features into it. | ||
| 31 | |||
| 32 | 2007-04-20 David Koppelman <koppel@ece.lsu.edu> | ||
| 33 | |||
| 34 | * display.texi (Highlight Interactively): Document | ||
| 35 | hi-lock-file-patterns-policy. | ||
| 36 | |||
| 37 | 2007-04-20 Martin Rudalics <rudalics@gmx.at> | ||
| 38 | |||
| 39 | * display.texi (Scrolling): Fix typo. | ||
| 40 | |||
| 41 | 2007-04-15 Jay Belanger <belanger@truman.edu> | ||
| 42 | |||
| 43 | * calc.texi (Title page): Remove the date. | ||
| 44 | (Basic Arithmetic): Emphasize that / binds less strongly than *. | ||
| 45 | (The Standard Calc Interface): Change trail title. | ||
| 46 | (Floats): Mention that when non-decimal floats are entered, only | ||
| 47 | approximations are stored. | ||
| 48 | (Copying): Move to the appendices. | ||
| 49 | (GNU Free Documentation License): Add as an appendix. | ||
| 50 | |||
| 51 | 2007-04-15 Chong Yidong <cyd@stupidchicken.com> | ||
| 52 | |||
| 53 | * ada-mode.texi, autotype.texi, cc-mode.texi, cl.texi: | ||
| 54 | * dired-x.texi, ebrowse.texi, ediff.texi: | ||
| 55 | * emacs-mime.texi, erc.texi, eshell.texi: | ||
| 56 | * eudc.texi, flymake.texi, forms.texi, gnus.texi: | ||
| 57 | * idlwave.texi, message.texi, newsticker.texi, org.texi: | ||
| 58 | * pcl-cvs.texi, pgg.texi, rcirc.texi, reftex.texi, sc.texi: | ||
| 59 | * ses.texi, sieve.texi, smtpmail.texi, speedbar.texi: | ||
| 60 | * tramp.texi, url.texi, vip.texi, viper.texi, widget.texi: | ||
| 61 | * woman.texi: Include GFDL. | ||
| 62 | |||
| 63 | * doclicense.texi: Remove node heading, so that it can be included by | ||
| 64 | other files. | ||
| 65 | |||
| 66 | * emacs.texi: Insert node heading for GFDL. | ||
| 67 | |||
| 68 | * dired-x.texi: Relicence under GFDL. Remove date from title page. | ||
| 69 | |||
| 70 | * calc.texi (Algebraic Tutorial): Emphasize that / binds less strongly | ||
| 71 | than *. | ||
| 72 | |||
| 73 | 2007-04-14 Carsten Dominik <dominik@science.uva.nl> | ||
| 74 | |||
| 75 | * org.texi (Formula syntax for Calc): Emphasize the operator precedence | ||
| 76 | in Calc. | ||
| 77 | |||
| 78 | 2007-04-14 Eli Zaretskii <eliz@gnu.org> | ||
| 79 | |||
| 80 | * cmdargs.texi (Colors): Qualify "color of window" index entry by | ||
| 81 | "command line". | ||
| 82 | |||
| 83 | * display.texi (Faces): Refer to "Creating Frames" for face | ||
| 84 | and other frame customizations in .emacs. | ||
| 85 | |||
| 86 | * frames.texi (Creating Frames): Mention that face customizations can | ||
| 87 | be put in .emacs. Add index entries. | ||
| 88 | |||
| 89 | 2007-04-12 Richard Stallman <rms@gnu.org> | ||
| 90 | |||
| 91 | * glossary.texi (Glossary): Explain `iff'. | ||
| 92 | |||
| 93 | 2007-04-11 Karl Berry <karl@gnu.org> | ||
| 94 | |||
| 95 | * gnu.texi (Top), | ||
| 96 | * macos.texi (Mac Font Specs), | ||
| 97 | * anti.texi (Antinews), | ||
| 98 | * xresources.texi (Resources), | ||
| 99 | * misc.texi (Emulation), | ||
| 100 | * calendar.texi (Daylight Saving), | ||
| 101 | * dired.texi (Dired and Find), | ||
| 102 | * rmail.texi (Remote Mailboxes), | ||
| 103 | * sending.texi (Mail Headers), | ||
| 104 | * programs.texi (Which Function), | ||
| 105 | * files.texi (Recover), | ||
| 106 | * buffers.texi (Uniquify), | ||
| 107 | * frames.texi (Wheeled Mice), | ||
| 108 | * killing.texi (Rectangles): Wording to improve breaks in | ||
| 109 | 8.5x11 format. | ||
| 110 | * mule.texi (Language Environments): \hbadness=10000 since there's | ||
| 111 | no way to reword. | ||
| 112 | * emacs.texi (smallbook): New @set to more easily switch between | ||
| 113 | smallbook and 8.5x11. | ||
| 114 | |||
| 115 | 2007-04-11 Richard Stallman <rms@gnu.org> | ||
| 116 | |||
| 117 | * files.texi (File Conveniences): Add xref to Tumme. | ||
| 118 | Delete text about Thumbnail mode. | ||
| 119 | |||
| 1 | 2007-04-09 Romain Francoise <romain@orebokech.com> | 120 | 2007-04-09 Romain Francoise <romain@orebokech.com> |
| 2 | 121 | ||
| 3 | * faq.texi (New in Emacs 22): Mention improvements to the Windows and | 122 | * faq.texi (New in Emacs 22): Mention improvements to the Windows and |
diff --git a/man/ack.texi b/man/ack.texi index 51397f0b13f..46213aa8cf5 100644 --- a/man/ack.texi +++ b/man/ack.texi | |||
| @@ -186,8 +186,8 @@ Doug Cutting and Jamie Zawinski wrote @file{disass.el}, a disassembler | |||
| 186 | for compiled Emacs Lisp code. | 186 | for compiled Emacs Lisp code. |
| 187 | 187 | ||
| 188 | @item | 188 | @item |
| 189 | Mathias Dahl wrote @file{tumme.el}, a package for viewing image files | 189 | Mathias Dahl wrote @file{image-dired.el}, a package for viewing image |
| 190 | as ``thumbnails.'' | 190 | files as ``thumbnails.'' |
| 191 | 191 | ||
| 192 | @item | 192 | @item |
| 193 | Michael DeCorte wrote @file{emacs.csh}, a C-shell script that starts a | 193 | Michael DeCorte wrote @file{emacs.csh}, a C-shell script that starts a |
diff --git a/man/ada-mode.texi b/man/ada-mode.texi index 7acae36c74f..241149803e8 100644 --- a/man/ada-mode.texi +++ b/man/ada-mode.texi | |||
| @@ -64,6 +64,7 @@ license to the document, as described in section 6 of the license. | |||
| 64 | * Automatic Casing:: Adjusting the case of words automatically | 64 | * Automatic Casing:: Adjusting the case of words automatically |
| 65 | * Statement Templates:: Inserting code templates | 65 | * Statement Templates:: Inserting code templates |
| 66 | * Comment Handling:: Reformatting comments easily | 66 | * Comment Handling:: Reformatting comments easily |
| 67 | * GNU Free Documentation License:: The license for this documentation. | ||
| 67 | * Index:: | 68 | * Index:: |
| 68 | @end menu | 69 | @end menu |
| 69 | 70 | ||
| @@ -1373,7 +1374,7 @@ exception (@code{ada-exception}). | |||
| 1373 | type (@code{ada-type}). | 1374 | type (@code{ada-type}). |
| 1374 | @end table | 1375 | @end table |
| 1375 | 1376 | ||
| 1376 | @node Comment Handling, Index, Statement Templates, Top | 1377 | @node Comment Handling, GNU Free Documentation License, Statement Templates, Top |
| 1377 | @chapter Comment Handling | 1378 | @chapter Comment Handling |
| 1378 | 1379 | ||
| 1379 | By default, comment lines get indented like Ada code. There are a few | 1380 | By default, comment lines get indented like Ada code. There are a few |
| @@ -1392,7 +1393,11 @@ Uncomment the selected region | |||
| 1392 | autofill the current comment. | 1393 | autofill the current comment. |
| 1393 | @end table | 1394 | @end table |
| 1394 | 1395 | ||
| 1395 | @node Index, , Comment Handling, Top | 1396 | @node GNU Free Documentation License, Index, Comment Handling, Top |
| 1397 | @appendix GNU Free Documentation License | ||
| 1398 | @include doclicense.texi | ||
| 1399 | |||
| 1400 | @node Index, , GNU Free Documentation License, Top | ||
| 1396 | @unnumbered Index | 1401 | @unnumbered Index |
| 1397 | 1402 | ||
| 1398 | @printindex fn | 1403 | @printindex fn |
diff --git a/man/anti.texi b/man/anti.texi index a0003c012db..ebff1c7677f 100644 --- a/man/anti.texi +++ b/man/anti.texi | |||
| @@ -53,9 +53,9 @@ command-line option @samp{--no-splash} is therefore obsolete, and has | |||
| 53 | been removed. | 53 | been removed. |
| 54 | 54 | ||
| 55 | @item | 55 | @item |
| 56 | The command line options @samp{--color}, @samp{--fullwidth}, | 56 | These command line options have also been removed: @samp{--color}, |
| 57 | @samp{--fullheight}, @samp{--fullscreen}, @samp{--no-blinking-cursor}, | 57 | @samp{--fullwidth}, @samp{--fullheight}, @samp{--fullscreen}, |
| 58 | @samp{--no-desktop}, and @samp{-Q} have also been removed. | 58 | @samp{--no-blinking-cursor}, @samp{--no-desktop}, and @samp{-Q}. |
| 59 | 59 | ||
| 60 | @item | 60 | @item |
| 61 | The @samp{--geometry} option applies only to the initial frame, and | 61 | The @samp{--geometry} option applies only to the initial frame, and |
diff --git a/man/autotype.texi b/man/autotype.texi index a462b7a97a2..7b51f3115ac 100644 --- a/man/autotype.texi +++ b/man/autotype.texi | |||
| @@ -101,6 +101,7 @@ completions and expansions of text at point. | |||
| 101 | * Tempo:: Flexible template insertion. | 101 | * Tempo:: Flexible template insertion. |
| 102 | * Hippie Expand:: Expansion of text trying various methods. | 102 | * Hippie Expand:: Expansion of text trying various methods. |
| 103 | 103 | ||
| 104 | * GNU Free Documentation License:: The license for this documentation. | ||
| 104 | * Concept Index:: | 105 | * Concept Index:: |
| 105 | * Command Index:: | 106 | * Command Index:: |
| 106 | * Variable Index:: | 107 | * Variable Index:: |
| @@ -650,6 +651,9 @@ Typically you would bind @code{hippie-expand} to @kbd{M-/} with | |||
| 650 | @code{dabbrev-expand}, the standard binding of @kbd{M-/}, providing one | 651 | @code{dabbrev-expand}, the standard binding of @kbd{M-/}, providing one |
| 651 | of the expansion possibilities. | 652 | of the expansion possibilities. |
| 652 | 653 | ||
| 654 | @node GNU Free Documentation License | ||
| 655 | @appendix GNU Free Documentation License | ||
| 656 | @include doclicense.texi | ||
| 653 | 657 | ||
| 654 | @node Concept Index | 658 | @node Concept Index |
| 655 | @unnumbered Concept Index | 659 | @unnumbered Concept Index |
diff --git a/man/buffers.texi b/man/buffers.texi index ed4b855b684..b43d72b1067 100644 --- a/man/buffers.texi +++ b/man/buffers.texi | |||
| @@ -573,14 +573,14 @@ names (all but one of them). | |||
| 573 | buffer name. To select one, customize the variable | 573 | buffer name. To select one, customize the variable |
| 574 | @code{uniquify-buffer-name-style} (@pxref{Easy Customization}). | 574 | @code{uniquify-buffer-name-style} (@pxref{Easy Customization}). |
| 575 | 575 | ||
| 576 | For instance, the @code{forward} naming method puts part of the | 576 | To begin with, the @code{forward} naming method includes part of the |
| 577 | directory name at the beginning of the buffer name; using this method, | 577 | file's directory name at the beginning of the buffer name; using this |
| 578 | buffers visiting @file{/u/rms/tmp/Makefile} and | 578 | method, buffers visiting the files @file{/u/rms/tmp/Makefile} and |
| 579 | @file{/usr/projects/zaphod/Makefile} would be named | 579 | @file{/usr/projects/zaphod/Makefile} would be named |
| 580 | @samp{tmp/Makefile} and @samp{zaphod/Makefile}, respectively (instead | 580 | @samp{tmp/Makefile} and @samp{zaphod/Makefile}, respectively (instead |
| 581 | of @samp{Makefile} and @samp{Makefile<2>}). | 581 | of @samp{Makefile} and @samp{Makefile<2>}). |
| 582 | 582 | ||
| 583 | By contrast, the @code{post-forward} naming method would call the | 583 | In contrast, the @code{post-forward} naming method would call the |
| 584 | buffers @samp{Makefile|tmp} and @samp{Makefile|zaphod}, and the | 584 | buffers @samp{Makefile|tmp} and @samp{Makefile|zaphod}, and the |
| 585 | @code{reverse} naming method would call them @samp{Makefile\tmp} and | 585 | @code{reverse} naming method would call them @samp{Makefile\tmp} and |
| 586 | @samp{Makefile\zaphod}. The nontrivial difference between | 586 | @samp{Makefile\zaphod}. The nontrivial difference between |
diff --git a/man/calc.texi b/man/calc.texi index 0544bc1e3b4..ecf85a450bd 100644 --- a/man/calc.texi +++ b/man/calc.texi | |||
| @@ -92,7 +92,8 @@ under the terms of the GNU Free Documentation License, Version 1.2 or | |||
| 92 | any later version published by the Free Software Foundation; with the | 92 | any later version published by the Free Software Foundation; with the |
| 93 | Invariant Sections being just ``GNU GENERAL PUBLIC LICENSE'', with the | 93 | Invariant Sections being just ``GNU GENERAL PUBLIC LICENSE'', with the |
| 94 | Front-Cover texts being ``A GNU Manual,'' and with the Back-Cover | 94 | Front-Cover texts being ``A GNU Manual,'' and with the Back-Cover |
| 95 | Texts as in (a) below. | 95 | Texts as in (a) below. A copy of the license is included in the section |
| 96 | entitled ``GNU Free Documentation License.'' | ||
| 96 | 97 | ||
| 97 | (a) The FSF's Back-Cover Text is: ``You have freedom to copy and modify | 98 | (a) The FSF's Back-Cover Text is: ``You have freedom to copy and modify |
| 98 | this GNU Manual, like GNU software. Copies published by the Free | 99 | this GNU Manual, like GNU software. Copies published by the Free |
| @@ -111,8 +112,6 @@ Software Foundation raise funds for GNU development.'' | |||
| 111 | @sp 4 | 112 | @sp 4 |
| 112 | @center GNU Emacs Calc Version 2.1 | 113 | @center GNU Emacs Calc Version 2.1 |
| 113 | @c [volume] | 114 | @c [volume] |
| 114 | @sp 1 | ||
| 115 | @center March 2005 | ||
| 116 | @sp 5 | 115 | @sp 5 |
| 117 | @center Dave Gillespie | 116 | @center Dave Gillespie |
| 118 | @center daveg@@synaptics.com | 117 | @center daveg@@synaptics.com |
| @@ -126,7 +125,7 @@ Copyright @copyright{} 1990, 1991, 2001, 2002, 2003, 2004, | |||
| 126 | 125 | ||
| 127 | @c [begin] | 126 | @c [begin] |
| 128 | @ifinfo | 127 | @ifinfo |
| 129 | @node Top, , (dir), (dir) | 128 | @node Top, Getting Started, (dir), (dir) |
| 130 | @chapter The GNU Emacs Calculator | 129 | @chapter The GNU Emacs Calculator |
| 131 | 130 | ||
| 132 | @noindent | 131 | @noindent |
| @@ -145,8 +144,6 @@ longer Info tutorial.) | |||
| 145 | 144 | ||
| 146 | @end ifinfo | 145 | @end ifinfo |
| 147 | @menu | 146 | @menu |
| 148 | * Copying:: How you can copy and share Calc. | ||
| 149 | |||
| 150 | * Getting Started:: General description and overview. | 147 | * Getting Started:: General description and overview. |
| 151 | * Interactive Tutorial:: | 148 | * Interactive Tutorial:: |
| 152 | * Tutorial:: A step-by-step introduction for beginners. | 149 | * Tutorial:: A step-by-step introduction for beginners. |
| @@ -167,7 +164,9 @@ longer Info tutorial.) | |||
| 167 | * Embedded Mode:: Working with formulas embedded in a file. | 164 | * Embedded Mode:: Working with formulas embedded in a file. |
| 168 | * Programming:: Calc as a programmable calculator. | 165 | * Programming:: Calc as a programmable calculator. |
| 169 | 166 | ||
| 170 | * Customizing Calc:: Customizing Calc. | 167 | * Copying:: How you can copy and share Calc. |
| 168 | * GNU Free Documentation License:: The license for this documentation. | ||
| 169 | * Customizing Calc:: Customizing Calc. | ||
| 171 | * Reporting Bugs:: How to report bugs and make suggestions. | 170 | * Reporting Bugs:: How to report bugs and make suggestions. |
| 172 | 171 | ||
| 173 | * Summary:: Summary of Calc commands and functions. | 172 | * Summary:: Summary of Calc commands and functions. |
| @@ -180,400 +179,7 @@ longer Info tutorial.) | |||
| 180 | * Lisp Function Index:: Internal Lisp math functions. | 179 | * Lisp Function Index:: Internal Lisp math functions. |
| 181 | @end menu | 180 | @end menu |
| 182 | 181 | ||
| 183 | @node Copying, Getting Started, Top, Top | 182 | @node Getting Started, Interactive Tutorial, Top, Top |
| 184 | @unnumbered GNU GENERAL PUBLIC LICENSE | ||
| 185 | @center Version 2, June 1991 | ||
| 186 | |||
| 187 | @c This file is intended to be included in another file. | ||
| 188 | |||
| 189 | @display | ||
| 190 | Copyright @copyright{} 1989, 1991 Free Software Foundation, Inc. | ||
| 191 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA | ||
| 192 | |||
| 193 | Everyone is permitted to copy and distribute verbatim copies | ||
| 194 | of this license document, but changing it is not allowed. | ||
| 195 | @end display | ||
| 196 | |||
| 197 | @unnumberedsec Preamble | ||
| 198 | |||
| 199 | The licenses for most software are designed to take away your | ||
| 200 | freedom to share and change it. By contrast, the GNU General Public | ||
| 201 | License is intended to guarantee your freedom to share and change free | ||
| 202 | software---to make sure the software is free for all its users. This | ||
| 203 | General Public License applies to most of the Free Software | ||
| 204 | Foundation's software and to any other program whose authors commit to | ||
| 205 | using it. (Some other Free Software Foundation software is covered by | ||
| 206 | the GNU Lesser General Public License instead.) You can apply it to | ||
| 207 | your programs, too. | ||
| 208 | |||
| 209 | When we speak of free software, we are referring to freedom, not | ||
| 210 | price. Our General Public Licenses are designed to make sure that you | ||
| 211 | have the freedom to distribute copies of free software (and charge for | ||
| 212 | this service if you wish), that you receive source code or can get it | ||
| 213 | if you want it, that you can change the software or use pieces of it | ||
| 214 | in new free programs; and that you know you can do these things. | ||
| 215 | |||
| 216 | To protect your rights, we need to make restrictions that forbid | ||
| 217 | anyone to deny you these rights or to ask you to surrender the rights. | ||
| 218 | These restrictions translate to certain responsibilities for you if you | ||
| 219 | distribute copies of the software, or if you modify it. | ||
| 220 | |||
| 221 | For example, if you distribute copies of such a program, whether | ||
| 222 | gratis or for a fee, you must give the recipients all the rights that | ||
| 223 | you have. You must make sure that they, too, receive or can get the | ||
| 224 | source code. And you must show them these terms so they know their | ||
| 225 | rights. | ||
| 226 | |||
| 227 | We protect your rights with two steps: (1) copyright the software, and | ||
| 228 | (2) offer you this license which gives you legal permission to copy, | ||
| 229 | distribute and/or modify the software. | ||
| 230 | |||
| 231 | Also, for each author's protection and ours, we want to make certain | ||
| 232 | that everyone understands that there is no warranty for this free | ||
| 233 | software. If the software is modified by someone else and passed on, we | ||
| 234 | want its recipients to know that what they have is not the original, so | ||
| 235 | that any problems introduced by others will not reflect on the original | ||
| 236 | authors' reputations. | ||
| 237 | |||
| 238 | Finally, any free program is threatened constantly by software | ||
| 239 | patents. We wish to avoid the danger that redistributors of a free | ||
| 240 | program will individually obtain patent licenses, in effect making the | ||
| 241 | program proprietary. To prevent this, we have made it clear that any | ||
| 242 | patent must be licensed for everyone's free use or not licensed at all. | ||
| 243 | |||
| 244 | The precise terms and conditions for copying, distribution and | ||
| 245 | modification follow. | ||
| 246 | |||
| 247 | @iftex | ||
| 248 | @unnumberedsec TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION | ||
| 249 | @end iftex | ||
| 250 | @ifinfo | ||
| 251 | @center TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION | ||
| 252 | @end ifinfo | ||
| 253 | |||
| 254 | @enumerate 0 | ||
| 255 | @item | ||
| 256 | This License applies to any program or other work which contains | ||
| 257 | a notice placed by the copyright holder saying it may be distributed | ||
| 258 | under the terms of this General Public License. The ``Program'', below, | ||
| 259 | refers to any such program or work, and a ``work based on the Program'' | ||
| 260 | means either the Program or any derivative work under copyright law: | ||
| 261 | that is to say, a work containing the Program or a portion of it, | ||
| 262 | either verbatim or with modifications and/or translated into another | ||
| 263 | language. (Hereinafter, translation is included without limitation in | ||
| 264 | the term ``modification''.) Each licensee is addressed as ``you''. | ||
| 265 | |||
| 266 | Activities other than copying, distribution and modification are not | ||
| 267 | covered by this License; they are outside its scope. The act of | ||
| 268 | running the Program is not restricted, and the output from the Program | ||
| 269 | is covered only if its contents constitute a work based on the | ||
| 270 | Program (independent of having been made by running the Program). | ||
| 271 | Whether that is true depends on what the Program does. | ||
| 272 | |||
| 273 | @item | ||
| 274 | You may copy and distribute verbatim copies of the Program's | ||
| 275 | source code as you receive it, in any medium, provided that you | ||
| 276 | conspicuously and appropriately publish on each copy an appropriate | ||
| 277 | copyright notice and disclaimer of warranty; keep intact all the | ||
| 278 | notices that refer to this License and to the absence of any warranty; | ||
| 279 | and give any other recipients of the Program a copy of this License | ||
| 280 | along with the Program. | ||
| 281 | |||
| 282 | You may charge a fee for the physical act of transferring a copy, and | ||
| 283 | you may at your option offer warranty protection in exchange for a fee. | ||
| 284 | |||
| 285 | @item | ||
| 286 | You may modify your copy or copies of the Program or any portion | ||
| 287 | of it, thus forming a work based on the Program, and copy and | ||
| 288 | distribute such modifications or work under the terms of Section 1 | ||
| 289 | above, provided that you also meet all of these conditions: | ||
| 290 | |||
| 291 | @enumerate a | ||
| 292 | @item | ||
| 293 | You must cause the modified files to carry prominent notices | ||
| 294 | stating that you changed the files and the date of any change. | ||
| 295 | |||
| 296 | @item | ||
| 297 | You must cause any work that you distribute or publish, that in | ||
| 298 | whole or in part contains or is derived from the Program or any | ||
| 299 | part thereof, to be licensed as a whole at no charge to all third | ||
| 300 | parties under the terms of this License. | ||
| 301 | |||
| 302 | @item | ||
| 303 | If the modified program normally reads commands interactively | ||
| 304 | when run, you must cause it, when started running for such | ||
| 305 | interactive use in the most ordinary way, to print or display an | ||
| 306 | announcement including an appropriate copyright notice and a | ||
| 307 | notice that there is no warranty (or else, saying that you provide | ||
| 308 | a warranty) and that users may redistribute the program under | ||
| 309 | these conditions, and telling the user how to view a copy of this | ||
| 310 | License. (Exception: if the Program itself is interactive but | ||
| 311 | does not normally print such an announcement, your work based on | ||
| 312 | the Program is not required to print an announcement.) | ||
| 313 | @end enumerate | ||
| 314 | |||
| 315 | These requirements apply to the modified work as a whole. If | ||
| 316 | identifiable sections of that work are not derived from the Program, | ||
| 317 | and can be reasonably considered independent and separate works in | ||
| 318 | themselves, then this License, and its terms, do not apply to those | ||
| 319 | sections when you distribute them as separate works. But when you | ||
| 320 | distribute the same sections as part of a whole which is a work based | ||
| 321 | on the Program, the distribution of the whole must be on the terms of | ||
| 322 | this License, whose permissions for other licensees extend to the | ||
| 323 | entire whole, and thus to each and every part regardless of who wrote it. | ||
| 324 | |||
| 325 | Thus, it is not the intent of this section to claim rights or contest | ||
| 326 | your rights to work written entirely by you; rather, the intent is to | ||
| 327 | exercise the right to control the distribution of derivative or | ||
| 328 | collective works based on the Program. | ||
| 329 | |||
| 330 | In addition, mere aggregation of another work not based on the Program | ||
| 331 | with the Program (or with a work based on the Program) on a volume of | ||
| 332 | a storage or distribution medium does not bring the other work under | ||
| 333 | the scope of this License. | ||
| 334 | |||
| 335 | @item | ||
| 336 | You may copy and distribute the Program (or a work based on it, | ||
| 337 | under Section 2) in object code or executable form under the terms of | ||
| 338 | Sections 1 and 2 above provided that you also do one of the following: | ||
| 339 | |||
| 340 | @enumerate a | ||
| 341 | @item | ||
| 342 | Accompany it with the complete corresponding machine-readable | ||
| 343 | source code, which must be distributed under the terms of Sections | ||
| 344 | 1 and 2 above on a medium customarily used for software interchange; or, | ||
| 345 | |||
| 346 | @item | ||
| 347 | Accompany it with a written offer, valid for at least three | ||
| 348 | years, to give any third party, for a charge no more than your | ||
| 349 | cost of physically performing source distribution, a complete | ||
| 350 | machine-readable copy of the corresponding source code, to be | ||
| 351 | distributed under the terms of Sections 1 and 2 above on a medium | ||
| 352 | customarily used for software interchange; or, | ||
| 353 | |||
| 354 | @item | ||
| 355 | Accompany it with the information you received as to the offer | ||
| 356 | to distribute corresponding source code. (This alternative is | ||
| 357 | allowed only for noncommercial distribution and only if you | ||
| 358 | received the program in object code or executable form with such | ||
| 359 | an offer, in accord with Subsection b above.) | ||
| 360 | @end enumerate | ||
| 361 | |||
| 362 | The source code for a work means the preferred form of the work for | ||
| 363 | making modifications to it. For an executable work, complete source | ||
| 364 | code means all the source code for all modules it contains, plus any | ||
| 365 | associated interface definition files, plus the scripts used to | ||
| 366 | control compilation and installation of the executable. However, as a | ||
| 367 | special exception, the source code distributed need not include | ||
| 368 | anything that is normally distributed (in either source or binary | ||
| 369 | form) with the major components (compiler, kernel, and so on) of the | ||
| 370 | operating system on which the executable runs, unless that component | ||
| 371 | itself accompanies the executable. | ||
| 372 | |||
| 373 | If distribution of executable or object code is made by offering | ||
| 374 | access to copy from a designated place, then offering equivalent | ||
| 375 | access to copy the source code from the same place counts as | ||
| 376 | distribution of the source code, even though third parties are not | ||
| 377 | compelled to copy the source along with the object code. | ||
| 378 | |||
| 379 | @item | ||
| 380 | You may not copy, modify, sublicense, or distribute the Program | ||
| 381 | except as expressly provided under this License. Any attempt | ||
| 382 | otherwise to copy, modify, sublicense or distribute the Program is | ||
| 383 | void, and will automatically terminate your rights under this License. | ||
| 384 | However, parties who have received copies, or rights, from you under | ||
| 385 | this License will not have their licenses terminated so long as such | ||
| 386 | parties remain in full compliance. | ||
| 387 | |||
| 388 | @item | ||
| 389 | You are not required to accept this License, since you have not | ||
| 390 | signed it. However, nothing else grants you permission to modify or | ||
| 391 | distribute the Program or its derivative works. These actions are | ||
| 392 | prohibited by law if you do not accept this License. Therefore, by | ||
| 393 | modifying or distributing the Program (or any work based on the | ||
| 394 | Program), you indicate your acceptance of this License to do so, and | ||
| 395 | all its terms and conditions for copying, distributing or modifying | ||
| 396 | the Program or works based on it. | ||
| 397 | |||
| 398 | @item | ||
| 399 | Each time you redistribute the Program (or any work based on the | ||
| 400 | Program), the recipient automatically receives a license from the | ||
| 401 | original licensor to copy, distribute or modify the Program subject to | ||
| 402 | these terms and conditions. You may not impose any further | ||
| 403 | restrictions on the recipients' exercise of the rights granted herein. | ||
| 404 | You are not responsible for enforcing compliance by third parties to | ||
| 405 | this License. | ||
| 406 | |||
| 407 | @item | ||
| 408 | If, as a consequence of a court judgment or allegation of patent | ||
| 409 | infringement or for any other reason (not limited to patent issues), | ||
| 410 | conditions are imposed on you (whether by court order, agreement or | ||
| 411 | otherwise) that contradict the conditions of this License, they do not | ||
| 412 | excuse you from the conditions of this License. If you cannot | ||
| 413 | distribute so as to satisfy simultaneously your obligations under this | ||
| 414 | License and any other pertinent obligations, then as a consequence you | ||
| 415 | may not distribute the Program at all. For example, if a patent | ||
| 416 | license would not permit royalty-free redistribution of the Program by | ||
| 417 | all those who receive copies directly or indirectly through you, then | ||
| 418 | the only way you could satisfy both it and this License would be to | ||
| 419 | refrain entirely from distribution of the Program. | ||
| 420 | |||
| 421 | If any portion of this section is held invalid or unenforceable under | ||
| 422 | any particular circumstance, the balance of the section is intended to | ||
| 423 | apply and the section as a whole is intended to apply in other | ||
| 424 | circumstances. | ||
| 425 | |||
| 426 | It is not the purpose of this section to induce you to infringe any | ||
| 427 | patents or other property right claims or to contest validity of any | ||
| 428 | such claims; this section has the sole purpose of protecting the | ||
| 429 | integrity of the free software distribution system, which is | ||
| 430 | implemented by public license practices. Many people have made | ||
| 431 | generous contributions to the wide range of software distributed | ||
| 432 | through that system in reliance on consistent application of that | ||
| 433 | system; it is up to the author/donor to decide if he or she is willing | ||
| 434 | to distribute software through any other system and a licensee cannot | ||
| 435 | impose that choice. | ||
| 436 | |||
| 437 | This section is intended to make thoroughly clear what is believed to | ||
| 438 | be a consequence of the rest of this License. | ||
| 439 | |||
| 440 | @item | ||
| 441 | If the distribution and/or use of the Program is restricted in | ||
| 442 | certain countries either by patents or by copyrighted interfaces, the | ||
| 443 | original copyright holder who places the Program under this License | ||
| 444 | may add an explicit geographical distribution limitation excluding | ||
| 445 | those countries, so that distribution is permitted only in or among | ||
| 446 | countries not thus excluded. In such case, this License incorporates | ||
| 447 | the limitation as if written in the body of this License. | ||
| 448 | |||
| 449 | @item | ||
| 450 | The Free Software Foundation may publish revised and/or new versions | ||
| 451 | of the General Public License from time to time. Such new versions will | ||
| 452 | be similar in spirit to the present version, but may differ in detail to | ||
| 453 | address new problems or concerns. | ||
| 454 | |||
| 455 | Each version is given a distinguishing version number. If the Program | ||
| 456 | specifies a version number of this License which applies to it and ``any | ||
| 457 | later version'', you have the option of following the terms and conditions | ||
| 458 | either of that version or of any later version published by the Free | ||
| 459 | Software Foundation. If the Program does not specify a version number of | ||
| 460 | this License, you may choose any version ever published by the Free Software | ||
| 461 | Foundation. | ||
| 462 | |||
| 463 | @item | ||
| 464 | If you wish to incorporate parts of the Program into other free | ||
| 465 | programs whose distribution conditions are different, write to the author | ||
| 466 | to ask for permission. For software which is copyrighted by the Free | ||
| 467 | Software Foundation, write to the Free Software Foundation; we sometimes | ||
| 468 | make exceptions for this. Our decision will be guided by the two goals | ||
| 469 | of preserving the free status of all derivatives of our free software and | ||
| 470 | of promoting the sharing and reuse of software generally. | ||
| 471 | |||
| 472 | @iftex | ||
| 473 | @heading NO WARRANTY | ||
| 474 | @end iftex | ||
| 475 | @ifinfo | ||
| 476 | @center NO WARRANTY | ||
| 477 | @end ifinfo | ||
| 478 | |||
| 479 | @item | ||
| 480 | BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY | ||
| 481 | FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN | ||
| 482 | OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES | ||
| 483 | PROVIDE THE PROGRAM ``AS IS'' WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED | ||
| 484 | OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF | ||
| 485 | MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS | ||
| 486 | TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE | ||
| 487 | PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, | ||
| 488 | REPAIR OR CORRECTION. | ||
| 489 | |||
| 490 | @item | ||
| 491 | IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING | ||
| 492 | WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR | ||
| 493 | REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, | ||
| 494 | INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING | ||
| 495 | OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED | ||
| 496 | TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY | ||
| 497 | YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER | ||
| 498 | PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE | ||
| 499 | POSSIBILITY OF SUCH DAMAGES. | ||
| 500 | @end enumerate | ||
| 501 | |||
| 502 | @iftex | ||
| 503 | @heading END OF TERMS AND CONDITIONS | ||
| 504 | @end iftex | ||
| 505 | @ifinfo | ||
| 506 | @center END OF TERMS AND CONDITIONS | ||
| 507 | @end ifinfo | ||
| 508 | |||
| 509 | @page | ||
| 510 | @unnumberedsec Appendix: How to Apply These Terms to Your New Programs | ||
| 511 | |||
| 512 | If you develop a new program, and you want it to be of the greatest | ||
| 513 | possible use to the public, the best way to achieve this is to make it | ||
| 514 | free software which everyone can redistribute and change under these terms. | ||
| 515 | |||
| 516 | To do so, attach the following notices to the program. It is safest | ||
| 517 | to attach them to the start of each source file to most effectively | ||
| 518 | convey the exclusion of warranty; and each file should have at least | ||
| 519 | the ``copyright'' line and a pointer to where the full notice is found. | ||
| 520 | |||
| 521 | @smallexample | ||
| 522 | @var{one line to give the program's name and a brief idea of what it does.} | ||
| 523 | Copyright (C) @var{yyyy} @var{name of author} | ||
| 524 | |||
| 525 | This program is free software; you can redistribute it and/or modify | ||
| 526 | it under the terms of the GNU General Public License as published by | ||
| 527 | the Free Software Foundation; either version 2 of the License, or | ||
| 528 | (at your option) any later version. | ||
| 529 | |||
| 530 | This program is distributed in the hope that it will be useful, | ||
| 531 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 532 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 533 | GNU General Public License for more details. | ||
| 534 | |||
| 535 | You should have received a copy of the GNU General Public License | ||
| 536 | along with this program; if not, write to the Free Software | ||
| 537 | Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | ||
| 538 | @end smallexample | ||
| 539 | |||
| 540 | Also add information on how to contact you by electronic and paper mail. | ||
| 541 | |||
| 542 | If the program is interactive, make it output a short notice like this | ||
| 543 | when it starts in an interactive mode: | ||
| 544 | |||
| 545 | @smallexample | ||
| 546 | Gnomovision version 69, Copyright (C) @var{yyyy} @var{name of author} | ||
| 547 | Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. | ||
| 548 | This is free software, and you are welcome to redistribute it | ||
| 549 | under certain conditions; type `show c' for details. | ||
| 550 | @end smallexample | ||
| 551 | |||
| 552 | The hypothetical commands @samp{show w} and @samp{show c} should show | ||
| 553 | the appropriate parts of the General Public License. Of course, the | ||
| 554 | commands you use may be called something other than @samp{show w} and | ||
| 555 | @samp{show c}; they could even be mouse-clicks or menu items---whatever | ||
| 556 | suits your program. | ||
| 557 | |||
| 558 | You should also get your employer (if you work as a programmer) or your | ||
| 559 | school, if any, to sign a ``copyright disclaimer'' for the program, if | ||
| 560 | necessary. Here is a sample; alter the names: | ||
| 561 | |||
| 562 | @example | ||
| 563 | Yoyodyne, Inc., hereby disclaims all copyright interest in the program | ||
| 564 | `Gnomovision' (which makes passes at compilers) written by James Hacker. | ||
| 565 | |||
| 566 | @var{signature of Ty Coon}, 1 April 1989 | ||
| 567 | Ty Coon, President of Vice | ||
| 568 | @end example | ||
| 569 | |||
| 570 | This General Public License does not permit incorporating your program into | ||
| 571 | proprietary programs. If your program is a subroutine library, you may | ||
| 572 | consider it more useful to permit linking proprietary applications with the | ||
| 573 | library. If this is what you want to do, use the GNU Lesser General | ||
| 574 | Public License instead of this License. | ||
| 575 | |||
| 576 | @node Getting Started, Tutorial, Copying, Top | ||
| 577 | @chapter Getting Started | 183 | @chapter Getting Started |
| 578 | @noindent | 184 | @noindent |
| 579 | This chapter provides a general overview of Calc, the GNU Emacs | 185 | This chapter provides a general overview of Calc, the GNU Emacs |
| @@ -1019,7 +625,7 @@ with the file you were editing on top and Calc on the bottom. | |||
| 1019 | 625 | ||
| 1020 | ... | 626 | ... |
| 1021 | --**-Emacs: myfile (Fundamental)----All---------------------- | 627 | --**-Emacs: myfile (Fundamental)----All---------------------- |
| 1022 | --- Emacs Calculator Mode --- |Emacs Calc Mode v2.1 ... | 628 | --- Emacs Calculator Mode --- |Emacs Calculator Trail |
| 1023 | 2: 17.3 | 17.3 | 629 | 2: 17.3 | 17.3 |
| 1024 | 1: -5 | 3 | 630 | 1: -5 | 3 |
| 1025 | . | 2 | 631 | . | 2 |
| @@ -1348,7 +954,7 @@ A slope of one-third corresponds to an angle of 18.4349488229 degrees. | |||
| 1348 | @c [fix-ref Embedded Mode] | 954 | @c [fix-ref Embedded Mode] |
| 1349 | @xref{Embedded Mode}, for full details. | 955 | @xref{Embedded Mode}, for full details. |
| 1350 | 956 | ||
| 1351 | @node Other C-x * Commands, , Embedded Mode Overview, Using Calc | 957 | @node Other C-x * Commands, , Embedded Mode Overview, Using Calc |
| 1352 | @subsection Other @kbd{C-x *} Commands | 958 | @subsection Other @kbd{C-x *} Commands |
| 1353 | 959 | ||
| 1354 | @noindent | 960 | @noindent |
| @@ -1514,7 +1120,7 @@ and record them as the current keyboard macro. | |||
| 1514 | its initial state: Empty stack, and initial mode settings. | 1120 | its initial state: Empty stack, and initial mode settings. |
| 1515 | @end table | 1121 | @end table |
| 1516 | 1122 | ||
| 1517 | @node History and Acknowledgements, , Using Calc, Getting Started | 1123 | @node History and Acknowledgements, , Using Calc, Getting Started |
| 1518 | @section History and Acknowledgements | 1124 | @section History and Acknowledgements |
| 1519 | 1125 | ||
| 1520 | @noindent | 1126 | @noindent |
| @@ -1617,7 +1223,7 @@ finished in two weeks. | |||
| 1617 | 1223 | ||
| 1618 | @ifinfo | 1224 | @ifinfo |
| 1619 | @c This node is accessed by the `C-x * t' command. | 1225 | @c This node is accessed by the `C-x * t' command. |
| 1620 | @node Interactive Tutorial, , , Top | 1226 | @node Interactive Tutorial, Tutorial, Getting Started, Top |
| 1621 | @chapter Tutorial | 1227 | @chapter Tutorial |
| 1622 | 1228 | ||
| 1623 | @noindent | 1229 | @noindent |
| @@ -1647,7 +1253,7 @@ Press @kbd{1} now to enter the first section of the Tutorial. | |||
| 1647 | @end menu | 1253 | @end menu |
| 1648 | @end ifinfo | 1254 | @end ifinfo |
| 1649 | 1255 | ||
| 1650 | @node Tutorial, Introduction, Getting Started, Top | 1256 | @node Tutorial, Introduction, Interactive Tutorial, Top |
| 1651 | @chapter Tutorial | 1257 | @chapter Tutorial |
| 1652 | 1258 | ||
| 1653 | @noindent | 1259 | @noindent |
| @@ -2128,6 +1734,10 @@ Calculator in Algebraic mode, which is closer to the way | |||
| 2128 | non-RPN calculators work. In Algebraic mode, you enter formulas | 1734 | non-RPN calculators work. In Algebraic mode, you enter formulas |
| 2129 | in traditional @expr{2+3} notation. | 1735 | in traditional @expr{2+3} notation. |
| 2130 | 1736 | ||
| 1737 | @strong{Warning:} Note that @samp{/} has lower precedence than | ||
| 1738 | @samp{*}, so that @samp{a/b*c} is interpreted as @samp{a/(b*c)}. See | ||
| 1739 | below for details. | ||
| 1740 | |||
| 2131 | You don't really need any special ``mode'' to enter algebraic formulas. | 1741 | You don't really need any special ``mode'' to enter algebraic formulas. |
| 2132 | You can enter a formula at any time by pressing the apostrophe (@kbd{'}) | 1742 | You can enter a formula at any time by pressing the apostrophe (@kbd{'}) |
| 2133 | key. Answer the prompt with the desired formula, then press @key{RET}. | 1743 | key. Answer the prompt with the desired formula, then press @key{RET}. |
| @@ -2553,7 +2163,7 @@ new number. This works for formulas, vectors, and all other types | |||
| 2553 | of values you can put on the stack. The @kbd{`} key also works | 2163 | of values you can put on the stack. The @kbd{`} key also works |
| 2554 | during entry of a number or algebraic formula. | 2164 | during entry of a number or algebraic formula. |
| 2555 | 2165 | ||
| 2556 | @node Modes Tutorial, , Undo Tutorial, Basic Tutorial | 2166 | @node Modes Tutorial, , Undo Tutorial, Basic Tutorial |
| 2557 | @subsection Mode-Setting Commands | 2167 | @subsection Mode-Setting Commands |
| 2558 | 2168 | ||
| 2559 | @noindent | 2169 | @noindent |
| @@ -3891,7 +3501,7 @@ $$ | |||
| 3891 | @noindent | 3501 | @noindent |
| 3892 | @xref{Matrix Answer 3, 3}. (@bullet{}) | 3502 | @xref{Matrix Answer 3, 3}. (@bullet{}) |
| 3893 | 3503 | ||
| 3894 | @node List Tutorial, , Matrix Tutorial, Vector/Matrix Tutorial | 3504 | @node List Tutorial, , Matrix Tutorial, Vector/Matrix Tutorial |
| 3895 | @subsection Vectors as Lists | 3505 | @subsection Vectors as Lists |
| 3896 | 3506 | ||
| 3897 | @noindent | 3507 | @noindent |
| @@ -5641,7 +5251,7 @@ details and examples. | |||
| 5641 | @c hard exercise: simplify (2^(n r) - 2^(r*(n - 1))) / (2^r - 1) 2^(n - 1) | 5251 | @c hard exercise: simplify (2^(n r) - 2^(r*(n - 1))) / (2^r - 1) 2^(n - 1) |
| 5642 | @c to 2^((n-1)*(r-1)). | 5252 | @c to 2^((n-1)*(r-1)). |
| 5643 | 5253 | ||
| 5644 | @node Rewrites Tutorial, , Basic Algebra Tutorial, Algebra Tutorial | 5254 | @node Rewrites Tutorial, , Basic Algebra Tutorial, Algebra Tutorial |
| 5645 | @subsection Rewrite Rules | 5255 | @subsection Rewrite Rules |
| 5646 | 5256 | ||
| 5647 | @noindent | 5257 | @noindent |
| @@ -6757,7 +6367,7 @@ The rest of this manual tells the whole story. | |||
| 6757 | @c Volume II of this manual, the @dfn{Calc Reference}, tells the whole story. | 6367 | @c Volume II of this manual, the @dfn{Calc Reference}, tells the whole story. |
| 6758 | 6368 | ||
| 6759 | @page | 6369 | @page |
| 6760 | @node Answers to Exercises, , Programming Tutorial, Tutorial | 6370 | @node Answers to Exercises, , Programming Tutorial, Tutorial |
| 6761 | @section Answers to Exercises | 6371 | @section Answers to Exercises |
| 6762 | 6372 | ||
| 6763 | @noindent | 6373 | @noindent |
| @@ -9945,7 +9555,7 @@ first, because @code{read-kbd-macro} doesn't need to execute the | |||
| 9945 | definition as it reads it in. For this reason, @code{C-x * m} is often | 9555 | definition as it reads it in. For this reason, @code{C-x * m} is often |
| 9946 | the easiest way to create recursive programs in Calc. | 9556 | the easiest way to create recursive programs in Calc. |
| 9947 | 9557 | ||
| 9948 | @node Programming Answer 12, , Programming Answer 11, Answers to Exercises | 9558 | @node Programming Answer 12, , Programming Answer 11, Answers to Exercises |
| 9949 | @subsection Programming Tutorial Exercise 12 | 9559 | @subsection Programming Tutorial Exercise 12 |
| 9950 | 9560 | ||
| 9951 | @noindent | 9561 | @noindent |
| @@ -10738,7 +10348,7 @@ the stack and mode settings of the buffer being quit as the new defaults. | |||
| 10738 | There is only one trail buffer, @samp{*Calc Trail*}, used by all | 10348 | There is only one trail buffer, @samp{*Calc Trail*}, used by all |
| 10739 | Calculator buffers. | 10349 | Calculator buffers. |
| 10740 | 10350 | ||
| 10741 | @node Troubleshooting Commands, , Multiple Calculators, Introduction | 10351 | @node Troubleshooting Commands, , Multiple Calculators, Introduction |
| 10742 | @section Troubleshooting Commands | 10352 | @section Troubleshooting Commands |
| 10743 | 10353 | ||
| 10744 | @noindent | 10354 | @noindent |
| @@ -10829,7 +10439,7 @@ If you suspect a Calculator cache has become corrupt, you can use the | |||
| 10829 | The @kbd{C-x * 0} (with the zero key) command also resets caches along | 10439 | The @kbd{C-x * 0} (with the zero key) command also resets caches along |
| 10830 | with all other aspects of the Calculator's state. | 10440 | with all other aspects of the Calculator's state. |
| 10831 | 10441 | ||
| 10832 | @node Debugging Calc, , Caches, Troubleshooting Commands | 10442 | @node Debugging Calc, , Caches, Troubleshooting Commands |
| 10833 | @subsection Debugging Calc | 10443 | @subsection Debugging Calc |
| 10834 | 10444 | ||
| 10835 | @noindent | 10445 | @noindent |
| @@ -11022,16 +10632,19 @@ Calculator's arithmetic is not intended to be IEEE-conformant in any | |||
| 11022 | way. | 10632 | way. |
| 11023 | 10633 | ||
| 11024 | While floats are always @emph{stored} in decimal, they can be entered | 10634 | While floats are always @emph{stored} in decimal, they can be entered |
| 11025 | and displayed in any radix just like integers and fractions. The | 10635 | and displayed in any radix just like integers and fractions. Since a |
| 11026 | notation @samp{@var{radix}#@var{ddd}.@var{ddd}} is a floating-point | 10636 | float that is entered in a radix other that 10 will be converted to |
| 11027 | number whose digits are in the specified radix. Note that the @samp{.} | 10637 | decimal, the number that Calc stores may not be exactly the number that |
| 11028 | is more aptly referred to as a ``radix point'' than as a decimal | 10638 | was entered, it will be the closest decimal approximation given the |
| 11029 | point in this case. The number @samp{8#123.4567} is defined as | 10639 | current precison. The notation @samp{@var{radix}#@var{ddd}.@var{ddd}} |
| 11030 | @samp{8#1234567 * 8^-4}. If the radix is 14 or less, you can use | 10640 | is a floating-point number whose digits are in the specified radix. |
| 11031 | @samp{e} notation to write a non-decimal number in scientific notation. | 10641 | Note that the @samp{.} is more aptly referred to as a ``radix point'' |
| 11032 | The exponent is written in decimal, and is considered to be a power | 10642 | than as a decimal point in this case. The number @samp{8#123.4567} is |
| 11033 | of the radix: @samp{8#1234567e-4}. If the radix is 15 or above, the | 10643 | defined as @samp{8#1234567 * 8^-4}. If the radix is 14 or less, you can |
| 11034 | letter @samp{e} is a digit, so scientific notation must be written | 10644 | use @samp{e} notation to write a non-decimal number in scientific |
| 10645 | notation. The exponent is written in decimal, and is considered to be a | ||
| 10646 | power of the radix: @samp{8#1234567e-4}. If the radix is 15 or above, | ||
| 10647 | the letter @samp{e} is a digit, so scientific notation must be written | ||
| 11035 | out, e.g., @samp{16#123.4567*16^2}. The first two exercises of the | 10648 | out, e.g., @samp{16#123.4567*16^2}. The first two exercises of the |
| 11036 | Modes Tutorial explore some of the properties of non-decimal floats. | 10649 | Modes Tutorial explore some of the properties of non-decimal floats. |
| 11037 | 10650 | ||
| @@ -11906,7 +11519,7 @@ a value into any of these special variables. | |||
| 11906 | 11519 | ||
| 11907 | @xref{Store and Recall}, for a discussion of commands dealing with variables. | 11520 | @xref{Store and Recall}, for a discussion of commands dealing with variables. |
| 11908 | 11521 | ||
| 11909 | @node Formulas, , Variables, Data Types | 11522 | @node Formulas, , Variables, Data Types |
| 11910 | @section Formulas | 11523 | @section Formulas |
| 11911 | 11524 | ||
| 11912 | @noindent | 11525 | @noindent |
| @@ -12352,7 +11965,7 @@ kills the @var{n} lines below or above the selected one. | |||
| 12352 | The @kbd{t .} (@code{calc-full-trail-vectors}) command is described | 11965 | The @kbd{t .} (@code{calc-full-trail-vectors}) command is described |
| 12353 | elsewhere; @pxref{Vector and Matrix Formats}. | 11966 | elsewhere; @pxref{Vector and Matrix Formats}. |
| 12354 | 11967 | ||
| 12355 | @node Keep Arguments, , Trail Commands, Stack and Trail | 11968 | @node Keep Arguments, , Trail Commands, Stack and Trail |
| 12356 | @section Keep Arguments | 11969 | @section Keep Arguments |
| 12357 | 11970 | ||
| 12358 | @noindent | 11971 | @noindent |
| @@ -12854,7 +12467,7 @@ To update @samp{=>} operators in an Embedded buffer while | |||
| 12854 | automatic recomputation is off, use @w{@kbd{C-x * u}}. | 12467 | automatic recomputation is off, use @w{@kbd{C-x * u}}. |
| 12855 | @xref{Embedded Mode}. | 12468 | @xref{Embedded Mode}. |
| 12856 | 12469 | ||
| 12857 | @node Working Message, , Automatic Recomputation, Calculation Modes | 12470 | @node Working Message, , Automatic Recomputation, Calculation Modes |
| 12858 | @subsection Working Messages | 12471 | @subsection Working Messages |
| 12859 | 12472 | ||
| 12860 | @noindent | 12473 | @noindent |
| @@ -13235,7 +12848,7 @@ using a variable for a new purpose, it is best to use @kbd{s d} | |||
| 13235 | or @kbd{s D} to check to make sure you don't still have an old | 12848 | or @kbd{s D} to check to make sure you don't still have an old |
| 13236 | declaration for the variable that will conflict with its new meaning. | 12849 | declaration for the variable that will conflict with its new meaning. |
| 13237 | 12850 | ||
| 13238 | @node Functions for Declarations, , Kinds of Declarations, Declarations | 12851 | @node Functions for Declarations, , Kinds of Declarations, Declarations |
| 13239 | @subsection Functions for Declarations | 12852 | @subsection Functions for Declarations |
| 13240 | 12853 | ||
| 13241 | @noindent | 12854 | @noindent |
| @@ -13935,7 +13548,7 @@ minus sign on the year value. | |||
| 13935 | If you always enter a four-digit year, and use a name instead | 13548 | If you always enter a four-digit year, and use a name instead |
| 13936 | of a number for the month, there is no danger of ambiguity. | 13549 | of a number for the month, there is no danger of ambiguity. |
| 13937 | 13550 | ||
| 13938 | @node Standard Date Formats, , Free-Form Dates, Date Formats | 13551 | @node Standard Date Formats, , Free-Form Dates, Date Formats |
| 13939 | @subsubsection Standard Date Formats | 13552 | @subsubsection Standard Date Formats |
| 13940 | 13553 | ||
| 13941 | @noindent | 13554 | @noindent |
| @@ -14070,7 +13683,7 @@ when positioning by explicit origins and widths. In the latter | |||
| 14070 | case, the display is formatted as specified, and then uniformly | 13683 | case, the display is formatted as specified, and then uniformly |
| 14071 | shifted over four spaces to fit the line numbers. | 13684 | shifted over four spaces to fit the line numbers. |
| 14072 | 13685 | ||
| 14073 | @node Labels, , Justification, Display Modes | 13686 | @node Labels, , Justification, Display Modes |
| 14074 | @subsection Labels | 13687 | @subsection Labels |
| 14075 | 13688 | ||
| 14076 | @noindent | 13689 | @noindent |
| @@ -15361,7 +14974,7 @@ For @samp{a / b} in Big mode, @code{cascent} returns 2 and @code{cdescent} | |||
| 15361 | returns 1. The only formula for which @code{cascent} will return zero | 14974 | returns 1. The only formula for which @code{cascent} will return zero |
| 15362 | is @samp{cvspace(0)} or equivalents. | 14975 | is @samp{cvspace(0)} or equivalents. |
| 15363 | 14976 | ||
| 15364 | @node User-Defined Compositions, , Information about Compositions, Compositions | 14977 | @node User-Defined Compositions, , Information about Compositions, Compositions |
| 15365 | @subsubsection User-Defined Compositions | 14978 | @subsubsection User-Defined Compositions |
| 15366 | 14979 | ||
| 15367 | @noindent | 14980 | @noindent |
| @@ -15492,7 +15105,7 @@ produce a large, unwieldy integer. | |||
| 15492 | You can save your display formats permanently using the @kbd{Z P} | 15105 | You can save your display formats permanently using the @kbd{Z P} |
| 15493 | command (@pxref{Creating User Keys}). | 15106 | command (@pxref{Creating User Keys}). |
| 15494 | 15107 | ||
| 15495 | @node Syntax Tables, , Compositions, Language Modes | 15108 | @node Syntax Tables, , Compositions, Language Modes |
| 15496 | @subsection Syntax Tables | 15109 | @subsection Syntax Tables |
| 15497 | 15110 | ||
| 15498 | @noindent | 15111 | @noindent |
| @@ -15825,7 +15438,7 @@ backs up and tries the other alternative. Thus Calc has ``partial'' | |||
| 15825 | backtracking. A fully backtracking parser would go on to make sure | 15438 | backtracking. A fully backtracking parser would go on to make sure |
| 15826 | the rest of the pattern matched before finalizing the choice. | 15439 | the rest of the pattern matched before finalizing the choice. |
| 15827 | 15440 | ||
| 15828 | @node Conditional Syntax Rules, , Advanced Syntax Patterns, Syntax Tables | 15441 | @node Conditional Syntax Rules, , Advanced Syntax Patterns, Syntax Tables |
| 15829 | @subsubsection Conditional Syntax Rules | 15442 | @subsubsection Conditional Syntax Rules |
| 15830 | 15443 | ||
| 15831 | @noindent | 15444 | @noindent |
| @@ -16001,7 +15614,7 @@ would not work for fixed-point mode, but it wouldn't be hard to | |||
| 16001 | do a full emulation with the help of the @kbd{Z [} and @kbd{Z ]} | 15614 | do a full emulation with the help of the @kbd{Z [} and @kbd{Z ]} |
| 16002 | programming commands. @xref{Conditionals in Macros}.) | 15615 | programming commands. @xref{Conditionals in Macros}.) |
| 16003 | 15616 | ||
| 16004 | @node Calc Mode Line, , Modes Variable, Mode Settings | 15617 | @node Calc Mode Line, , Modes Variable, Mode Settings |
| 16005 | @section The Calc Mode Line | 15618 | @section The Calc Mode Line |
| 16006 | 15619 | ||
| 16007 | @noindent | 15620 | @noindent |
| @@ -16362,20 +15975,24 @@ whereas @w{@samp{[-2 ..@: 3] ^ 2}} is @samp{[0 ..@: 9]}. | |||
| 16362 | @mindex @null | 15975 | @mindex @null |
| 16363 | @end ignore | 15976 | @end ignore |
| 16364 | @tindex / | 15977 | @tindex / |
| 16365 | The @kbd{/} (@code{calc-divide}) command divides two numbers. When | 15978 | The @kbd{/} (@code{calc-divide}) command divides two numbers. Note that |
| 16366 | dividing a scalar @expr{B} by a square matrix @expr{A}, the computation | 15979 | when using algebraic entry, @samp{/} has lower precedence than @samp{*}, |
| 16367 | performed is @expr{B} times the inverse of @expr{A}. This also occurs | 15980 | so that @samp{a/b*c} is interpreted as @samp{a/(b*c)}. |
| 16368 | if @expr{B} is itself a vector or matrix, in which case the effect is | 15981 | |
| 16369 | to solve the set of linear equations represented by @expr{B}. If @expr{B} | 15982 | When dividing a scalar @expr{B} by a square matrix @expr{A}, the |
| 16370 | is a matrix with the same number of rows as @expr{A}, or a plain vector | 15983 | computation performed is @expr{B} times the inverse of @expr{A}. This |
| 16371 | (which is interpreted here as a column vector), then the equation | 15984 | also occurs if @expr{B} is itself a vector or matrix, in which case the |
| 16372 | @expr{A X = B} is solved for the vector or matrix @expr{X}. Otherwise, | 15985 | effect is to solve the set of linear equations represented by @expr{B}. |
| 16373 | if @expr{B} is a non-square matrix with the same number of @emph{columns} | 15986 | If @expr{B} is a matrix with the same number of rows as @expr{A}, or a |
| 16374 | as @expr{A}, the equation @expr{X A = B} is solved. If you wish a vector | 15987 | plain vector (which is interpreted here as a column vector), then the |
| 16375 | @expr{B} to be interpreted as a row vector to be solved as @expr{X A = B}, | 15988 | equation @expr{A X = B} is solved for the vector or matrix @expr{X}. |
| 16376 | make it into a one-row matrix with @kbd{C-u 1 v p} first. To force a | 15989 | Otherwise, if @expr{B} is a non-square matrix with the same number of |
| 16377 | left-handed solution with a square matrix @expr{B}, transpose @expr{A} and | 15990 | @emph{columns} as @expr{A}, the equation @expr{X A = B} is solved. If |
| 16378 | @expr{B} before dividing, then transpose the result. | 15991 | you wish a vector @expr{B} to be interpreted as a row vector to be |
| 15992 | solved as @expr{X A = B}, make it into a one-row matrix with @kbd{C-u 1 | ||
| 15993 | v p} first. To force a left-handed solution with a square matrix | ||
| 15994 | @expr{B}, transpose @expr{A} and @expr{B} before dividing, then | ||
| 15995 | transpose the result. | ||
| 16379 | 15996 | ||
| 16380 | HMS forms can be divided by real numbers or by other HMS forms. Error | 15997 | HMS forms can be divided by real numbers or by other HMS forms. Error |
| 16381 | forms can be divided in any combination of ways. Modulo forms where both | 15998 | forms can be divided in any combination of ways. Modulo forms where both |
| @@ -17359,7 +16976,7 @@ any date form and returns 1 if that date falls on a weekend or | |||
| 17359 | holiday, as defined in @code{Holidays}, or 0 if the date is a | 16976 | holiday, as defined in @code{Holidays}, or 0 if the date is a |
| 17360 | business day. | 16977 | business day. |
| 17361 | 16978 | ||
| 17362 | @node Time Zones, , Business Days, Date Arithmetic | 16979 | @node Time Zones, , Business Days, Date Arithmetic |
| 17363 | @subsection Time Zones | 16980 | @subsection Time Zones |
| 17364 | 16981 | ||
| 17365 | @noindent | 16982 | @noindent |
| @@ -18006,7 +17623,7 @@ Summing columns with @kbd{V R : +} yields @expr{[10000, 10000, 10000]}; | |||
| 18006 | the total depreciation in any method is (by definition) the | 17623 | the total depreciation in any method is (by definition) the |
| 18007 | difference between the cost and the salvage value. | 17624 | difference between the cost and the salvage value. |
| 18008 | 17625 | ||
| 18009 | @node Definitions of Financial Functions, , Depreciation Functions, Financial Functions | 17626 | @node Definitions of Financial Functions, , Depreciation Functions, Financial Functions |
| 18010 | @subsection Definitions | 17627 | @subsection Definitions |
| 18011 | 17628 | ||
| 18012 | @noindent | 17629 | @noindent |
| @@ -18161,7 +17778,7 @@ and the depreciation is zero for all subsequent periods. The @code{ddb} | |||
| 18161 | function returns the amount the book value decreased in the specified | 17778 | function returns the amount the book value decreased in the specified |
| 18162 | period. | 17779 | period. |
| 18163 | 17780 | ||
| 18164 | @node Binary Functions, , Financial Functions, Arithmetic | 17781 | @node Binary Functions, , Financial Functions, Arithmetic |
| 18165 | @section Binary Number Functions | 17782 | @section Binary Number Functions |
| 18166 | 17783 | ||
| 18167 | @noindent | 17784 | @noindent |
| @@ -19092,7 +18709,7 @@ elements of this vector. @xref{Matrix Functions}. | |||
| 19092 | * Random Number Generator:: (Complete description of Calc's algorithm) | 18709 | * Random Number Generator:: (Complete description of Calc's algorithm) |
| 19093 | @end menu | 18710 | @end menu |
| 19094 | 18711 | ||
| 19095 | @node Random Number Generator, , Random Numbers, Random Numbers | 18712 | @node Random Number Generator, , Random Numbers, Random Numbers |
| 19096 | @subsection Random Number Generator | 18713 | @subsection Random Number Generator |
| 19097 | 18714 | ||
| 19098 | Calc's random number generator uses several methods to ensure that | 18715 | Calc's random number generator uses several methods to ensure that |
| @@ -19408,7 +19025,7 @@ distinct factors, this is @expr{(-1)^k}. If the input number has any | |||
| 19408 | duplicate factors (i.e., can be divided by the same prime more than once), | 19025 | duplicate factors (i.e., can be divided by the same prime more than once), |
| 19409 | the result is zero. | 19026 | the result is zero. |
| 19410 | 19027 | ||
| 19411 | @node Probability Distribution Functions, , Combinatorial Functions, Scientific Functions | 19028 | @node Probability Distribution Functions, , Combinatorial Functions, Scientific Functions |
| 19412 | @section Probability Distribution Functions | 19029 | @section Probability Distribution Functions |
| 19413 | 19030 | ||
| 19414 | @noindent | 19031 | @noindent |
| @@ -20858,7 +20475,7 @@ arguments, interpreted in the same way as the other functions | |||
| 20858 | in this section. For example, @samp{vflat(1, [2, [3, 4]], 5)} | 20475 | in this section. For example, @samp{vflat(1, [2, [3, 4]], 5)} |
| 20859 | returns @samp{[1, 2, 3, 4, 5]}. | 20476 | returns @samp{[1, 2, 3, 4, 5]}. |
| 20860 | 20477 | ||
| 20861 | @node Paired-Sample Statistics, , Single-Variable Statistics, Statistical Operations | 20478 | @node Paired-Sample Statistics, , Single-Variable Statistics, Statistical Operations |
| 20862 | @subsection Paired-Sample Statistics | 20479 | @subsection Paired-Sample Statistics |
| 20863 | 20480 | ||
| 20864 | @noindent | 20481 | @noindent |
| @@ -21350,7 +20967,7 @@ computes the square root of @samp{A} given the initial guess @samp{B}, | |||
| 21350 | stopping when the result is correct within the specified tolerance, or | 20967 | stopping when the result is correct within the specified tolerance, or |
| 21351 | when 20 steps have been taken, whichever is sooner. | 20968 | when 20 steps have been taken, whichever is sooner. |
| 21352 | 20969 | ||
| 21353 | @node Generalized Products, , Nesting and Fixed Points, Reducing and Mapping | 20970 | @node Generalized Products, , Nesting and Fixed Points, Reducing and Mapping |
| 21354 | @subsection Generalized Products | 20971 | @subsection Generalized Products |
| 21355 | 20972 | ||
| 21356 | @kindex V O | 20973 | @kindex V O |
| @@ -21385,7 +21002,7 @@ use @kbd{$} twice to take both operator formulas from the stack, the | |||
| 21385 | first (multiplicative) operator is taken from the top of the stack | 21002 | first (multiplicative) operator is taken from the top of the stack |
| 21386 | and the second (additive) operator is taken from second-to-top. | 21003 | and the second (additive) operator is taken from second-to-top. |
| 21387 | 21004 | ||
| 21388 | @node Vector and Matrix Formats, , Reducing and Mapping, Matrix Functions | 21005 | @node Vector and Matrix Formats, , Reducing and Mapping, Matrix Functions |
| 21389 | @section Vector and Matrix Display Formats | 21006 | @section Vector and Matrix Display Formats |
| 21390 | 21007 | ||
| 21391 | @noindent | 21008 | @noindent |
| @@ -22006,7 +21623,7 @@ to be simplified. | |||
| 22006 | @end group | 21623 | @end group |
| 22007 | @end smallexample | 21624 | @end smallexample |
| 22008 | 21625 | ||
| 22009 | @node Rearranging with Selections, , Operating on Selections, Selecting Subformulas | 21626 | @node Rearranging with Selections, , Operating on Selections, Selecting Subformulas |
| 22010 | @subsection Rearranging Formulas using Selections | 21627 | @subsection Rearranging Formulas using Selections |
| 22011 | 21628 | ||
| 22012 | @noindent | 21629 | @noindent |
| @@ -23104,7 +22721,7 @@ on whether you believe @expr{x} is positive or negative). | |||
| 23104 | The @kbd{a M /} command can be used to divide a factor out of | 22721 | The @kbd{a M /} command can be used to divide a factor out of |
| 23105 | both sides of an inequality. | 22722 | both sides of an inequality. |
| 23106 | 22723 | ||
| 23107 | @node Simplification of Units, , Unsafe Simplifications, Simplifying Formulas | 22724 | @node Simplification of Units, , Unsafe Simplifications, Simplifying Formulas |
| 23108 | @subsection Simplification of Units | 22725 | @subsection Simplification of Units |
| 23109 | 22726 | ||
| 23110 | @noindent | 22727 | @noindent |
| @@ -23738,7 +23355,7 @@ The integral of @samp{1/sqrt(x)} from 0 to 1 exists (it can be found | |||
| 23738 | by Calc's symbolic integrator, for example), but @kbd{a I} will fail | 23355 | by Calc's symbolic integrator, for example), but @kbd{a I} will fail |
| 23739 | because the integrand goes to infinity at one of the endpoints. | 23356 | because the integrand goes to infinity at one of the endpoints. |
| 23740 | 23357 | ||
| 23741 | @node Taylor Series, , Numerical Integration, Calculus | 23358 | @node Taylor Series, , Numerical Integration, Calculus |
| 23742 | @subsection Taylor Series | 23359 | @subsection Taylor Series |
| 23743 | 23360 | ||
| 23744 | @noindent | 23361 | @noindent |
| @@ -23984,7 +23601,7 @@ Another way to deal with certain kinds of overdetermined systems of | |||
| 23984 | equations is the @kbd{a F} command, which does least-squares fitting | 23601 | equations is the @kbd{a F} command, which does least-squares fitting |
| 23985 | to satisfy the equations. @xref{Curve Fitting}. | 23602 | to satisfy the equations. @xref{Curve Fitting}. |
| 23986 | 23603 | ||
| 23987 | @node Decomposing Polynomials, , Solving Systems of Equations, Solving Equations | 23604 | @node Decomposing Polynomials, , Solving Systems of Equations, Solving Equations |
| 23988 | @subsection Decomposing Polynomials | 23605 | @subsection Decomposing Polynomials |
| 23989 | 23606 | ||
| 23990 | @noindent | 23607 | @noindent |
| @@ -24295,7 +23912,7 @@ the initial guess is a complex number the variable will be minimized | |||
| 24295 | over the complex numbers; if it is real or an interval it will | 23912 | over the complex numbers; if it is real or an interval it will |
| 24296 | be minimized over the reals. | 23913 | be minimized over the reals. |
| 24297 | 23914 | ||
| 24298 | @node Numerical Systems of Equations, , Minimization, Numerical Solutions | 23915 | @node Numerical Systems of Equations, , Minimization, Numerical Solutions |
| 24299 | @subsection Systems of Equations | 23916 | @subsection Systems of Equations |
| 24300 | 23917 | ||
| 24301 | @noindent | 23918 | @noindent |
| @@ -25343,7 +24960,7 @@ linearizer was unable to put the model into the required form. | |||
| 25343 | The @code{efit} (corresponding to @kbd{H a F}) and @code{xfit} | 24960 | The @code{efit} (corresponding to @kbd{H a F}) and @code{xfit} |
| 25344 | (for @kbd{I a F}) functions are completely analogous. | 24961 | (for @kbd{I a F}) functions are completely analogous. |
| 25345 | 24962 | ||
| 25346 | @node Interpolation, , Curve Fitting Details, Curve Fitting | 24963 | @node Interpolation, , Curve Fitting Details, Curve Fitting |
| 25347 | @subsection Polynomial Interpolation | 24964 | @subsection Polynomial Interpolation |
| 25348 | 24965 | ||
| 25349 | @kindex a p | 24966 | @kindex a p |
| @@ -25940,7 +25557,7 @@ declarations are used when deciding whether a formula is true; | |||
| 25940 | it returns 0 when @code{dnonzero} would return 0 or leave itself | 25557 | it returns 0 when @code{dnonzero} would return 0 or leave itself |
| 25941 | in symbolic form.) | 25558 | in symbolic form.) |
| 25942 | 25559 | ||
| 25943 | @node Rewrite Rules, , Logical Operations, Algebra | 25560 | @node Rewrite Rules, , Logical Operations, Algebra |
| 25944 | @section Rewrite Rules | 25561 | @section Rewrite Rules |
| 25945 | 25562 | ||
| 25946 | @noindent | 25563 | @noindent |
| @@ -27607,7 +27224,7 @@ buffer (with @kbd{C-x k *Trace* @key{RET}}). If you leave it in | |||
| 27607 | existence and forget about it, all your future rewrite commands will | 27224 | existence and forget about it, all your future rewrite commands will |
| 27608 | be needlessly slow. | 27225 | be needlessly slow. |
| 27609 | 27226 | ||
| 27610 | @node Examples of Rewrite Rules, , Debugging Rewrites, Rewrite Rules | 27227 | @node Examples of Rewrite Rules, , Debugging Rewrites, Rewrite Rules |
| 27611 | @subsection Examples of Rewrite Rules | 27228 | @subsection Examples of Rewrite Rules |
| 27612 | 27229 | ||
| 27613 | @noindent | 27230 | @noindent |
| @@ -28029,7 +27646,7 @@ really is unitless.) | |||
| 28029 | 27646 | ||
| 28030 | @c Describe angular units, luminosity vs. steradians problem. | 27647 | @c Describe angular units, luminosity vs. steradians problem. |
| 28031 | 27648 | ||
| 28032 | @node User-Defined Units, , Predefined Units, Units | 27649 | @node User-Defined Units, , Predefined Units, Units |
| 28033 | @section User-Defined Units | 27650 | @section User-Defined Units |
| 28034 | 27651 | ||
| 28035 | @noindent | 27652 | @noindent |
| @@ -28573,7 +28190,7 @@ example, letting @expr{n=2} in @samp{f(n pi)} with @kbd{a b} will | |||
| 28573 | produce @samp{f(2 pi)}, whereas @kbd{s l} would give @samp{f(6.28)} | 28190 | produce @samp{f(2 pi)}, whereas @kbd{s l} would give @samp{f(6.28)} |
| 28574 | since the evaluation step will also evaluate @code{pi}. | 28191 | since the evaluation step will also evaluate @code{pi}. |
| 28575 | 28192 | ||
| 28576 | @node Evaluates-To Operator, , Let Command, Store and Recall | 28193 | @node Evaluates-To Operator, , Let Command, Store and Recall |
| 28577 | @section The Evaluates-To Operator | 28194 | @section The Evaluates-To Operator |
| 28578 | 28195 | ||
| 28579 | @noindent | 28196 | @noindent |
| @@ -29206,7 +28823,7 @@ lines, and the third curve to have lines in style 3. Point styles will | |||
| 29206 | still be assigned automatically, but you could store another vector in | 28823 | still be assigned automatically, but you could store another vector in |
| 29207 | @code{PointStyles} to define them, too. | 28824 | @code{PointStyles} to define them, too. |
| 29208 | 28825 | ||
| 29209 | @node Devices, , Graphics Options, Graphics | 28826 | @node Devices, , Graphics Options, Graphics |
| 29210 | @section Graphical Devices | 28827 | @section Graphical Devices |
| 29211 | 28828 | ||
| 29212 | @noindent | 28829 | @noindent |
| @@ -29637,7 +29254,7 @@ The @kbd{C-x * y} key sequence is equivalent to @kbd{y} except that | |||
| 29637 | it can be typed anywhere, not just in Calc. This provides an easy | 29254 | it can be typed anywhere, not just in Calc. This provides an easy |
| 29638 | way to guarantee that Calc knows which editing buffer you want to use! | 29255 | way to guarantee that Calc knows which editing buffer you want to use! |
| 29639 | 29256 | ||
| 29640 | @node X Cut and Paste, , Yanking Into Buffers, Kill and Yank | 29257 | @node X Cut and Paste, , Yanking Into Buffers, Kill and Yank |
| 29641 | @section X Cut and Paste | 29258 | @section X Cut and Paste |
| 29642 | 29259 | ||
| 29643 | @noindent | 29260 | @noindent |
| @@ -30007,7 +29624,7 @@ With @key{INV}, @key{HYP}, or @key{INV} and @key{HYP}, the | |||
| 30007 | @kbd{"x"} key pushes the variable names @expr{y}, @expr{z}, and | 29624 | @kbd{"x"} key pushes the variable names @expr{y}, @expr{z}, and |
| 30008 | @expr{t}, respectively. | 29625 | @expr{t}, respectively. |
| 30009 | 29626 | ||
| 30010 | @node Keypad Modes Menu, , Keypad Vectors Menu, Keypad Mode | 29627 | @node Keypad Modes Menu, , Keypad Vectors Menu, Keypad Mode |
| 30011 | @section Modes Menu | 29628 | @section Modes Menu |
| 30012 | 29629 | ||
| 30013 | @smallexample | 29630 | @smallexample |
| @@ -30799,7 +30416,7 @@ annotations at all. | |||
| 30799 | When Embedded mode is not enabled, mode-recording modes except | 30416 | When Embedded mode is not enabled, mode-recording modes except |
| 30800 | for @code{Save} have no effect. | 30417 | for @code{Save} have no effect. |
| 30801 | 30418 | ||
| 30802 | @node Customizing Embedded Mode, , Mode Settings in Embedded Mode, Embedded Mode | 30419 | @node Customizing Embedded Mode, , Mode Settings in Embedded Mode, Embedded Mode |
| 30803 | @section Customizing Embedded Mode | 30420 | @section Customizing Embedded Mode |
| 30804 | 30421 | ||
| 30805 | @noindent | 30422 | @noindent |
| @@ -30953,7 +30570,7 @@ is simply a newline, @code{"\n"}, but may be different for different | |||
| 30953 | major modes. If you change this, it is a good idea still to end with a | 30570 | major modes. If you change this, it is a good idea still to end with a |
| 30954 | newline so that mode annotations will appear on lines by themselves. | 30571 | newline so that mode annotations will appear on lines by themselves. |
| 30955 | 30572 | ||
| 30956 | @node Programming, Customizing Calc, Embedded Mode, Top | 30573 | @node Programming, Copying, Embedded Mode, Top |
| 30957 | @chapter Programming | 30574 | @chapter Programming |
| 30958 | 30575 | ||
| 30959 | @noindent | 30576 | @noindent |
| @@ -31406,7 +31023,7 @@ The contents of the stack and trail, values of non-quick variables, and | |||
| 31406 | other settings such as the language mode and the various display modes, | 31023 | other settings such as the language mode and the various display modes, |
| 31407 | are @emph{not} affected by @kbd{Z `} and @kbd{Z '}. | 31024 | are @emph{not} affected by @kbd{Z `} and @kbd{Z '}. |
| 31408 | 31025 | ||
| 31409 | @node Queries in Macros, , Local Values in Macros, Keyboard Macros | 31026 | @node Queries in Macros, , Local Values in Macros, Keyboard Macros |
| 31410 | @subsection Queries in Keyboard Macros | 31027 | @subsection Queries in Keyboard Macros |
| 31411 | 31028 | ||
| 31412 | @c @noindent | 31029 | @c @noindent |
| @@ -31591,7 +31208,7 @@ default simplifications cures this problem: The definition will be stored | |||
| 31591 | in symbolic form without ever activating the @code{deriv} function. Press | 31208 | in symbolic form without ever activating the @code{deriv} function. Press |
| 31592 | @kbd{m D} to turn the default simplifications back on afterwards. | 31209 | @kbd{m D} to turn the default simplifications back on afterwards. |
| 31593 | 31210 | ||
| 31594 | @node Lisp Definitions, , Algebraic Definitions, Programming | 31211 | @node Lisp Definitions, , Algebraic Definitions, Programming |
| 31595 | @section Programming with Lisp | 31212 | @section Programming with Lisp |
| 31596 | 31213 | ||
| 31597 | @noindent | 31214 | @noindent |
| @@ -32296,7 +31913,7 @@ actually they are less efficient because each operation is really | |||
| 32296 | a division by 512 in disguise; @code{idivmod} allows us to do the | 31913 | a division by 512 in disguise; @code{idivmod} allows us to do the |
| 32297 | same thing with a single division by 512. | 31914 | same thing with a single division by 512. |
| 32298 | 31915 | ||
| 32299 | @node Sine Example, , Bit Counting Example, Example Definitions | 31916 | @node Sine Example, , Bit Counting Example, Example Definitions |
| 32300 | @subsubsection The Sine Function | 31917 | @subsubsection The Sine Function |
| 32301 | 31918 | ||
| 32302 | @noindent | 31919 | @noindent |
| @@ -32776,7 +32393,7 @@ Note the use of @code{insert-before-markers} when changing between | |||
| 32776 | ``F'' and ``C'', so that the character winds up before the cursor | 32393 | ``F'' and ``C'', so that the character winds up before the cursor |
| 32777 | instead of after it. | 32394 | instead of after it. |
| 32778 | 32395 | ||
| 32779 | @node Internals, , Calling Calc from Your Programs, Lisp Definitions | 32396 | @node Internals, , Calling Calc from Your Programs, Lisp Definitions |
| 32780 | @subsection Calculator Internals | 32397 | @subsection Calculator Internals |
| 32781 | 32398 | ||
| 32782 | @noindent | 32399 | @noindent |
| @@ -34668,7 +34285,7 @@ If composition @var{c} is a ``flat'' composition, return the last | |||
| 34668 | @comment @noindent | 34285 | @comment @noindent |
| 34669 | @comment (This section is currently unfinished.) | 34286 | @comment (This section is currently unfinished.) |
| 34670 | 34287 | ||
| 34671 | @node Hooks, , Formatting Lisp Functions, Internals | 34288 | @node Hooks, , Formatting Lisp Functions, Internals |
| 34672 | @subsubsection Hooks | 34289 | @subsubsection Hooks |
| 34673 | 34290 | ||
| 34674 | @noindent | 34291 | @noindent |
| @@ -34832,7 +34449,404 @@ used the first time, your hook should add a variable to the | |||
| 34832 | list and also call @code{make-local-variable} itself. | 34449 | list and also call @code{make-local-variable} itself. |
| 34833 | @end defvar | 34450 | @end defvar |
| 34834 | 34451 | ||
| 34835 | @node Customizing Calc, Reporting Bugs, Programming, Top | 34452 | @node Copying, GNU Free Documentation License, Programming, Top |
| 34453 | @appendix GNU GENERAL PUBLIC LICENSE | ||
| 34454 | @center Version 2, June 1991 | ||
| 34455 | |||
| 34456 | @c This file is intended to be included in another file. | ||
| 34457 | |||
| 34458 | @display | ||
| 34459 | Copyright @copyright{} 1989, 1991 Free Software Foundation, Inc. | ||
| 34460 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA | ||
| 34461 | |||
| 34462 | Everyone is permitted to copy and distribute verbatim copies | ||
| 34463 | of this license document, but changing it is not allowed. | ||
| 34464 | @end display | ||
| 34465 | |||
| 34466 | @unnumberedsec Preamble | ||
| 34467 | |||
| 34468 | The licenses for most software are designed to take away your | ||
| 34469 | freedom to share and change it. By contrast, the GNU General Public | ||
| 34470 | License is intended to guarantee your freedom to share and change free | ||
| 34471 | software---to make sure the software is free for all its users. This | ||
| 34472 | General Public License applies to most of the Free Software | ||
| 34473 | Foundation's software and to any other program whose authors commit to | ||
| 34474 | using it. (Some other Free Software Foundation software is covered by | ||
| 34475 | the GNU Lesser General Public License instead.) You can apply it to | ||
| 34476 | your programs, too. | ||
| 34477 | |||
| 34478 | When we speak of free software, we are referring to freedom, not | ||
| 34479 | price. Our General Public Licenses are designed to make sure that you | ||
| 34480 | have the freedom to distribute copies of free software (and charge for | ||
| 34481 | this service if you wish), that you receive source code or can get it | ||
| 34482 | if you want it, that you can change the software or use pieces of it | ||
| 34483 | in new free programs; and that you know you can do these things. | ||
| 34484 | |||
| 34485 | To protect your rights, we need to make restrictions that forbid | ||
| 34486 | anyone to deny you these rights or to ask you to surrender the rights. | ||
| 34487 | These restrictions translate to certain responsibilities for you if you | ||
| 34488 | distribute copies of the software, or if you modify it. | ||
| 34489 | |||
| 34490 | For example, if you distribute copies of such a program, whether | ||
| 34491 | gratis or for a fee, you must give the recipients all the rights that | ||
| 34492 | you have. You must make sure that they, too, receive or can get the | ||
| 34493 | source code. And you must show them these terms so they know their | ||
| 34494 | rights. | ||
| 34495 | |||
| 34496 | We protect your rights with two steps: (1) copyright the software, and | ||
| 34497 | (2) offer you this license which gives you legal permission to copy, | ||
| 34498 | distribute and/or modify the software. | ||
| 34499 | |||
| 34500 | Also, for each author's protection and ours, we want to make certain | ||
| 34501 | that everyone understands that there is no warranty for this free | ||
| 34502 | software. If the software is modified by someone else and passed on, we | ||
| 34503 | want its recipients to know that what they have is not the original, so | ||
| 34504 | that any problems introduced by others will not reflect on the original | ||
| 34505 | authors' reputations. | ||
| 34506 | |||
| 34507 | Finally, any free program is threatened constantly by software | ||
| 34508 | patents. We wish to avoid the danger that redistributors of a free | ||
| 34509 | program will individually obtain patent licenses, in effect making the | ||
| 34510 | program proprietary. To prevent this, we have made it clear that any | ||
| 34511 | patent must be licensed for everyone's free use or not licensed at all. | ||
| 34512 | |||
| 34513 | The precise terms and conditions for copying, distribution and | ||
| 34514 | modification follow. | ||
| 34515 | |||
| 34516 | @iftex | ||
| 34517 | @unnumberedsec TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION | ||
| 34518 | @end iftex | ||
| 34519 | @ifinfo | ||
| 34520 | @center TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION | ||
| 34521 | @end ifinfo | ||
| 34522 | |||
| 34523 | @enumerate 0 | ||
| 34524 | @item | ||
| 34525 | This License applies to any program or other work which contains | ||
| 34526 | a notice placed by the copyright holder saying it may be distributed | ||
| 34527 | under the terms of this General Public License. The ``Program'', below, | ||
| 34528 | refers to any such program or work, and a ``work based on the Program'' | ||
| 34529 | means either the Program or any derivative work under copyright law: | ||
| 34530 | that is to say, a work containing the Program or a portion of it, | ||
| 34531 | either verbatim or with modifications and/or translated into another | ||
| 34532 | language. (Hereinafter, translation is included without limitation in | ||
| 34533 | the term ``modification''.) Each licensee is addressed as ``you''. | ||
| 34534 | |||
| 34535 | Activities other than copying, distribution and modification are not | ||
| 34536 | covered by this License; they are outside its scope. The act of | ||
| 34537 | running the Program is not restricted, and the output from the Program | ||
| 34538 | is covered only if its contents constitute a work based on the | ||
| 34539 | Program (independent of having been made by running the Program). | ||
| 34540 | Whether that is true depends on what the Program does. | ||
| 34541 | |||
| 34542 | @item | ||
| 34543 | You may copy and distribute verbatim copies of the Program's | ||
| 34544 | source code as you receive it, in any medium, provided that you | ||
| 34545 | conspicuously and appropriately publish on each copy an appropriate | ||
| 34546 | copyright notice and disclaimer of warranty; keep intact all the | ||
| 34547 | notices that refer to this License and to the absence of any warranty; | ||
| 34548 | and give any other recipients of the Program a copy of this License | ||
| 34549 | along with the Program. | ||
| 34550 | |||
| 34551 | You may charge a fee for the physical act of transferring a copy, and | ||
| 34552 | you may at your option offer warranty protection in exchange for a fee. | ||
| 34553 | |||
| 34554 | @item | ||
| 34555 | You may modify your copy or copies of the Program or any portion | ||
| 34556 | of it, thus forming a work based on the Program, and copy and | ||
| 34557 | distribute such modifications or work under the terms of Section 1 | ||
| 34558 | above, provided that you also meet all of these conditions: | ||
| 34559 | |||
| 34560 | @enumerate a | ||
| 34561 | @item | ||
| 34562 | You must cause the modified files to carry prominent notices | ||
| 34563 | stating that you changed the files and the date of any change. | ||
| 34564 | |||
| 34565 | @item | ||
| 34566 | You must cause any work that you distribute or publish, that in | ||
| 34567 | whole or in part contains or is derived from the Program or any | ||
| 34568 | part thereof, to be licensed as a whole at no charge to all third | ||
| 34569 | parties under the terms of this License. | ||
| 34570 | |||
| 34571 | @item | ||
| 34572 | If the modified program normally reads commands interactively | ||
| 34573 | when run, you must cause it, when started running for such | ||
| 34574 | interactive use in the most ordinary way, to print or display an | ||
| 34575 | announcement including an appropriate copyright notice and a | ||
| 34576 | notice that there is no warranty (or else, saying that you provide | ||
| 34577 | a warranty) and that users may redistribute the program under | ||
| 34578 | these conditions, and telling the user how to view a copy of this | ||
| 34579 | License. (Exception: if the Program itself is interactive but | ||
| 34580 | does not normally print such an announcement, your work based on | ||
| 34581 | the Program is not required to print an announcement.) | ||
| 34582 | @end enumerate | ||
| 34583 | |||
| 34584 | These requirements apply to the modified work as a whole. If | ||
| 34585 | identifiable sections of that work are not derived from the Program, | ||
| 34586 | and can be reasonably considered independent and separate works in | ||
| 34587 | themselves, then this License, and its terms, do not apply to those | ||
| 34588 | sections when you distribute them as separate works. But when you | ||
| 34589 | distribute the same sections as part of a whole which is a work based | ||
| 34590 | on the Program, the distribution of the whole must be on the terms of | ||
| 34591 | this License, whose permissions for other licensees extend to the | ||
| 34592 | entire whole, and thus to each and every part regardless of who wrote it. | ||
| 34593 | |||
| 34594 | Thus, it is not the intent of this section to claim rights or contest | ||
| 34595 | your rights to work written entirely by you; rather, the intent is to | ||
| 34596 | exercise the right to control the distribution of derivative or | ||
| 34597 | collective works based on the Program. | ||
| 34598 | |||
| 34599 | In addition, mere aggregation of another work not based on the Program | ||
| 34600 | with the Program (or with a work based on the Program) on a volume of | ||
| 34601 | a storage or distribution medium does not bring the other work under | ||
| 34602 | the scope of this License. | ||
| 34603 | |||
| 34604 | @item | ||
| 34605 | You may copy and distribute the Program (or a work based on it, | ||
| 34606 | under Section 2) in object code or executable form under the terms of | ||
| 34607 | Sections 1 and 2 above provided that you also do one of the following: | ||
| 34608 | |||
| 34609 | @enumerate a | ||
| 34610 | @item | ||
| 34611 | Accompany it with the complete corresponding machine-readable | ||
| 34612 | source code, which must be distributed under the terms of Sections | ||
| 34613 | 1 and 2 above on a medium customarily used for software interchange; or, | ||
| 34614 | |||
| 34615 | @item | ||
| 34616 | Accompany it with a written offer, valid for at least three | ||
| 34617 | years, to give any third party, for a charge no more than your | ||
| 34618 | cost of physically performing source distribution, a complete | ||
| 34619 | machine-readable copy of the corresponding source code, to be | ||
| 34620 | distributed under the terms of Sections 1 and 2 above on a medium | ||
| 34621 | customarily used for software interchange; or, | ||
| 34622 | |||
| 34623 | @item | ||
| 34624 | Accompany it with the information you received as to the offer | ||
| 34625 | to distribute corresponding source code. (This alternative is | ||
| 34626 | allowed only for noncommercial distribution and only if you | ||
| 34627 | received the program in object code or executable form with such | ||
| 34628 | an offer, in accord with Subsection b above.) | ||
| 34629 | @end enumerate | ||
| 34630 | |||
| 34631 | The source code for a work means the preferred form of the work for | ||
| 34632 | making modifications to it. For an executable work, complete source | ||
| 34633 | code means all the source code for all modules it contains, plus any | ||
| 34634 | associated interface definition files, plus the scripts used to | ||
| 34635 | control compilation and installation of the executable. However, as a | ||
| 34636 | special exception, the source code distributed need not include | ||
| 34637 | anything that is normally distributed (in either source or binary | ||
| 34638 | form) with the major components (compiler, kernel, and so on) of the | ||
| 34639 | operating system on which the executable runs, unless that component | ||
| 34640 | itself accompanies the executable. | ||
| 34641 | |||
| 34642 | If distribution of executable or object code is made by offering | ||
| 34643 | access to copy from a designated place, then offering equivalent | ||
| 34644 | access to copy the source code from the same place counts as | ||
| 34645 | distribution of the source code, even though third parties are not | ||
| 34646 | compelled to copy the source along with the object code. | ||
| 34647 | |||
| 34648 | @item | ||
| 34649 | You may not copy, modify, sublicense, or distribute the Program | ||
| 34650 | except as expressly provided under this License. Any attempt | ||
| 34651 | otherwise to copy, modify, sublicense or distribute the Program is | ||
| 34652 | void, and will automatically terminate your rights under this License. | ||
| 34653 | However, parties who have received copies, or rights, from you under | ||
| 34654 | this License will not have their licenses terminated so long as such | ||
| 34655 | parties remain in full compliance. | ||
| 34656 | |||
| 34657 | @item | ||
| 34658 | You are not required to accept this License, since you have not | ||
| 34659 | signed it. However, nothing else grants you permission to modify or | ||
| 34660 | distribute the Program or its derivative works. These actions are | ||
| 34661 | prohibited by law if you do not accept this License. Therefore, by | ||
| 34662 | modifying or distributing the Program (or any work based on the | ||
| 34663 | Program), you indicate your acceptance of this License to do so, and | ||
| 34664 | all its terms and conditions for copying, distributing or modifying | ||
| 34665 | the Program or works based on it. | ||
| 34666 | |||
| 34667 | @item | ||
| 34668 | Each time you redistribute the Program (or any work based on the | ||
| 34669 | Program), the recipient automatically receives a license from the | ||
| 34670 | original licensor to copy, distribute or modify the Program subject to | ||
| 34671 | these terms and conditions. You may not impose any further | ||
| 34672 | restrictions on the recipients' exercise of the rights granted herein. | ||
| 34673 | You are not responsible for enforcing compliance by third parties to | ||
| 34674 | this License. | ||
| 34675 | |||
| 34676 | @item | ||
| 34677 | If, as a consequence of a court judgment or allegation of patent | ||
| 34678 | infringement or for any other reason (not limited to patent issues), | ||
| 34679 | conditions are imposed on you (whether by court order, agreement or | ||
| 34680 | otherwise) that contradict the conditions of this License, they do not | ||
| 34681 | excuse you from the conditions of this License. If you cannot | ||
| 34682 | distribute so as to satisfy simultaneously your obligations under this | ||
| 34683 | License and any other pertinent obligations, then as a consequence you | ||
| 34684 | may not distribute the Program at all. For example, if a patent | ||
| 34685 | license would not permit royalty-free redistribution of the Program by | ||
| 34686 | all those who receive copies directly or indirectly through you, then | ||
| 34687 | the only way you could satisfy both it and this License would be to | ||
| 34688 | refrain entirely from distribution of the Program. | ||
| 34689 | |||
| 34690 | If any portion of this section is held invalid or unenforceable under | ||
| 34691 | any particular circumstance, the balance of the section is intended to | ||
| 34692 | apply and the section as a whole is intended to apply in other | ||
| 34693 | circumstances. | ||
| 34694 | |||
| 34695 | It is not the purpose of this section to induce you to infringe any | ||
| 34696 | patents or other property right claims or to contest validity of any | ||
| 34697 | such claims; this section has the sole purpose of protecting the | ||
| 34698 | integrity of the free software distribution system, which is | ||
| 34699 | implemented by public license practices. Many people have made | ||
| 34700 | generous contributions to the wide range of software distributed | ||
| 34701 | through that system in reliance on consistent application of that | ||
| 34702 | system; it is up to the author/donor to decide if he or she is willing | ||
| 34703 | to distribute software through any other system and a licensee cannot | ||
| 34704 | impose that choice. | ||
| 34705 | |||
| 34706 | This section is intended to make thoroughly clear what is believed to | ||
| 34707 | be a consequence of the rest of this License. | ||
| 34708 | |||
| 34709 | @item | ||
| 34710 | If the distribution and/or use of the Program is restricted in | ||
| 34711 | certain countries either by patents or by copyrighted interfaces, the | ||
| 34712 | original copyright holder who places the Program under this License | ||
| 34713 | may add an explicit geographical distribution limitation excluding | ||
| 34714 | those countries, so that distribution is permitted only in or among | ||
| 34715 | countries not thus excluded. In such case, this License incorporates | ||
| 34716 | the limitation as if written in the body of this License. | ||
| 34717 | |||
| 34718 | @item | ||
| 34719 | The Free Software Foundation may publish revised and/or new versions | ||
| 34720 | of the General Public License from time to time. Such new versions will | ||
| 34721 | be similar in spirit to the present version, but may differ in detail to | ||
| 34722 | address new problems or concerns. | ||
| 34723 | |||
| 34724 | Each version is given a distinguishing version number. If the Program | ||
| 34725 | specifies a version number of this License which applies to it and ``any | ||
| 34726 | later version'', you have the option of following the terms and conditions | ||
| 34727 | either of that version or of any later version published by the Free | ||
| 34728 | Software Foundation. If the Program does not specify a version number of | ||
| 34729 | this License, you may choose any version ever published by the Free Software | ||
| 34730 | Foundation. | ||
| 34731 | |||
| 34732 | @item | ||
| 34733 | If you wish to incorporate parts of the Program into other free | ||
| 34734 | programs whose distribution conditions are different, write to the author | ||
| 34735 | to ask for permission. For software which is copyrighted by the Free | ||
| 34736 | Software Foundation, write to the Free Software Foundation; we sometimes | ||
| 34737 | make exceptions for this. Our decision will be guided by the two goals | ||
| 34738 | of preserving the free status of all derivatives of our free software and | ||
| 34739 | of promoting the sharing and reuse of software generally. | ||
| 34740 | |||
| 34741 | @iftex | ||
| 34742 | @heading NO WARRANTY | ||
| 34743 | @end iftex | ||
| 34744 | @ifinfo | ||
| 34745 | @center NO WARRANTY | ||
| 34746 | @end ifinfo | ||
| 34747 | |||
| 34748 | @item | ||
| 34749 | BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY | ||
| 34750 | FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN | ||
| 34751 | OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES | ||
| 34752 | PROVIDE THE PROGRAM ``AS IS'' WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED | ||
| 34753 | OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF | ||
| 34754 | MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS | ||
| 34755 | TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE | ||
| 34756 | PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, | ||
| 34757 | REPAIR OR CORRECTION. | ||
| 34758 | |||
| 34759 | @item | ||
| 34760 | IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING | ||
| 34761 | WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR | ||
| 34762 | REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, | ||
| 34763 | INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING | ||
| 34764 | OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED | ||
| 34765 | TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY | ||
| 34766 | YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER | ||
| 34767 | PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE | ||
| 34768 | POSSIBILITY OF SUCH DAMAGES. | ||
| 34769 | @end enumerate | ||
| 34770 | |||
| 34771 | @iftex | ||
| 34772 | @heading END OF TERMS AND CONDITIONS | ||
| 34773 | @end iftex | ||
| 34774 | @ifinfo | ||
| 34775 | @center END OF TERMS AND CONDITIONS | ||
| 34776 | @end ifinfo | ||
| 34777 | |||
| 34778 | @page | ||
| 34779 | @unnumberedsec Appendix: How to Apply These Terms to Your New Programs | ||
| 34780 | |||
| 34781 | If you develop a new program, and you want it to be of the greatest | ||
| 34782 | possible use to the public, the best way to achieve this is to make it | ||
| 34783 | free software which everyone can redistribute and change under these terms. | ||
| 34784 | |||
| 34785 | To do so, attach the following notices to the program. It is safest | ||
| 34786 | to attach them to the start of each source file to most effectively | ||
| 34787 | convey the exclusion of warranty; and each file should have at least | ||
| 34788 | the ``copyright'' line and a pointer to where the full notice is found. | ||
| 34789 | |||
| 34790 | @smallexample | ||
| 34791 | @var{one line to give the program's name and a brief idea of what it does.} | ||
| 34792 | Copyright (C) @var{yyyy} @var{name of author} | ||
| 34793 | |||
| 34794 | This program is free software; you can redistribute it and/or modify | ||
| 34795 | it under the terms of the GNU General Public License as published by | ||
| 34796 | the Free Software Foundation; either version 2 of the License, or | ||
| 34797 | (at your option) any later version. | ||
| 34798 | |||
| 34799 | This program is distributed in the hope that it will be useful, | ||
| 34800 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 34801 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 34802 | GNU General Public License for more details. | ||
| 34803 | |||
| 34804 | You should have received a copy of the GNU General Public License | ||
| 34805 | along with this program; if not, write to the Free Software | ||
| 34806 | Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | ||
| 34807 | @end smallexample | ||
| 34808 | |||
| 34809 | Also add information on how to contact you by electronic and paper mail. | ||
| 34810 | |||
| 34811 | If the program is interactive, make it output a short notice like this | ||
| 34812 | when it starts in an interactive mode: | ||
| 34813 | |||
| 34814 | @smallexample | ||
| 34815 | Gnomovision version 69, Copyright (C) @var{yyyy} @var{name of author} | ||
| 34816 | Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. | ||
| 34817 | This is free software, and you are welcome to redistribute it | ||
| 34818 | under certain conditions; type `show c' for details. | ||
| 34819 | @end smallexample | ||
| 34820 | |||
| 34821 | The hypothetical commands @samp{show w} and @samp{show c} should show | ||
| 34822 | the appropriate parts of the General Public License. Of course, the | ||
| 34823 | commands you use may be called something other than @samp{show w} and | ||
| 34824 | @samp{show c}; they could even be mouse-clicks or menu items---whatever | ||
| 34825 | suits your program. | ||
| 34826 | |||
| 34827 | You should also get your employer (if you work as a programmer) or your | ||
| 34828 | school, if any, to sign a ``copyright disclaimer'' for the program, if | ||
| 34829 | necessary. Here is a sample; alter the names: | ||
| 34830 | |||
| 34831 | @example | ||
| 34832 | Yoyodyne, Inc., hereby disclaims all copyright interest in the program | ||
| 34833 | `Gnomovision' (which makes passes at compilers) written by James Hacker. | ||
| 34834 | |||
| 34835 | @var{signature of Ty Coon}, 1 April 1989 | ||
| 34836 | Ty Coon, President of Vice | ||
| 34837 | @end example | ||
| 34838 | |||
| 34839 | This General Public License does not permit incorporating your program into | ||
| 34840 | proprietary programs. If your program is a subroutine library, you may | ||
| 34841 | consider it more useful to permit linking proprietary applications with the | ||
| 34842 | library. If this is what you want to do, use the GNU Lesser General | ||
| 34843 | Public License instead of this License. | ||
| 34844 | |||
| 34845 | @node GNU Free Documentation License, Customizing Calc, Copying, Top | ||
| 34846 | @appendix GNU Free Documentation License | ||
| 34847 | @include doclicense.texi | ||
| 34848 | |||
| 34849 | @node Customizing Calc, Reporting Bugs, GNU Free Documentation License, Top | ||
| 34836 | @appendix Customizing Calc | 34850 | @appendix Customizing Calc |
| 34837 | 34851 | ||
| 34838 | The usual prefix for Calc is the key sequence @kbd{C-x *}. If you wish | 34852 | The usual prefix for Calc is the key sequence @kbd{C-x *}. If you wish |
| @@ -35151,7 +35165,7 @@ and @code{calc-embedded-open-close-plain-alist}. | |||
| 35151 | If you find a bug in Calc, send e-mail to Jay Belanger, | 35165 | If you find a bug in Calc, send e-mail to Jay Belanger, |
| 35152 | 35166 | ||
| 35153 | @example | 35167 | @example |
| 35154 | belanger@@truman.edu | 35168 | jay.p.belanger@@gmail.com |
| 35155 | @end example | 35169 | @end example |
| 35156 | 35170 | ||
| 35157 | @noindent | 35171 | @noindent |
| @@ -36457,7 +36471,7 @@ in your Calc init file or @file{.emacs} file. | |||
| 36457 | 36471 | ||
| 36458 | @printindex vr | 36472 | @printindex vr |
| 36459 | 36473 | ||
| 36460 | @node Lisp Function Index, , Variable Index, Top | 36474 | @node Lisp Function Index, , Variable Index, Top |
| 36461 | @unnumbered Index of Lisp Math Functions | 36475 | @unnumbered Index of Lisp Math Functions |
| 36462 | 36476 | ||
| 36463 | The following functions are meant to be used with @code{defmath}, not | 36477 | The following functions are meant to be used with @code{defmath}, not |
diff --git a/man/calendar.texi b/man/calendar.texi index 11b24f7c210..58ca24af7d9 100644 --- a/man/calendar.texi +++ b/man/calendar.texi | |||
| @@ -1614,11 +1614,12 @@ minutes. The value for Cambridge, Massachusetts is 60. | |||
| 1614 | 1614 | ||
| 1615 | @c @vindex calendar-daylight-savings-starts-time too long! | 1615 | @c @vindex calendar-daylight-savings-starts-time too long! |
| 1616 | @vindex calendar-daylight-savings-ends-time | 1616 | @vindex calendar-daylight-savings-ends-time |
| 1617 | The two variables @code{calendar-daylight-savings-starts-time} and | 1617 | Finally, the two variables |
| 1618 | @code{calendar-daylight-savings-ends-time} specify the number of minutes | 1618 | @code{calendar-daylight-savings-starts-time} and |
| 1619 | after midnight local time when the transition to and from daylight | 1619 | @code{calendar-daylight-savings-ends-time} specify the number of |
| 1620 | saving time should occur. For Cambridge, Massachusetts both variables' | 1620 | minutes after midnight local time when the transition to and from |
| 1621 | values are 120. | 1621 | daylight saving time should occur. For Cambridge, Massachusetts both |
| 1622 | variables' values are 120. | ||
| 1622 | 1623 | ||
| 1623 | @node Time Intervals | 1624 | @node Time Intervals |
| 1624 | @section Summing Time Intervals | 1625 | @section Summing Time Intervals |
diff --git a/man/cc-mode.texi b/man/cc-mode.texi index bc804fa01dc..217c32ff911 100644 --- a/man/cc-mode.texi +++ b/man/cc-mode.texi | |||
| @@ -255,6 +255,7 @@ functions, classes etc - there are other packages for that. | |||
| 255 | * FAQ:: | 255 | * FAQ:: |
| 256 | * Updating CC Mode:: | 256 | * Updating CC Mode:: |
| 257 | * Mailing Lists and Bug Reports:: | 257 | * Mailing Lists and Bug Reports:: |
| 258 | * GNU Free Documentation License:: | ||
| 258 | * Command and Function Index:: | 259 | * Command and Function Index:: |
| 259 | * Variable Index:: | 260 | * Variable Index:: |
| 260 | * Concept and Key Index:: | 261 | * Concept and Key Index:: |
| @@ -6892,7 +6893,7 @@ compatibility, etc. are all available on the web site: | |||
| 6892 | 6893 | ||
| 6893 | 6894 | ||
| 6894 | @comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | 6895 | @comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! |
| 6895 | @node Mailing Lists and Bug Reports, Command and Function Index, Updating CC Mode, Top | 6896 | @node Mailing Lists and Bug Reports, GNU Free Documentation License, Updating CC Mode, Top |
| 6896 | @comment node-name, next, previous, up | 6897 | @comment node-name, next, previous, up |
| 6897 | @appendix Mailing Lists and Submitting Bug Reports | 6898 | @appendix Mailing Lists and Submitting Bug Reports |
| 6898 | @comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | 6899 | @comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! |
| @@ -6934,9 +6935,15 @@ to the Usenet newsgroups @code{gnu.emacs.sources}, @code{comp.emacs}, | |||
| 6934 | @code{comp.lang.idl}, and @code{comp.lang.awk}. | 6935 | @code{comp.lang.idl}, and @code{comp.lang.awk}. |
| 6935 | @c There is no newsgroup for Pike. :-( | 6936 | @c There is no newsgroup for Pike. :-( |
| 6936 | 6937 | ||
| 6938 | |||
| 6939 | @node GNU Free Documentation License, Command and Function Index, Mailing Lists and Bug Reports, Top | ||
| 6940 | @appendix GNU Free Documentation License | ||
| 6941 | @include doclicense.texi | ||
| 6942 | |||
| 6943 | |||
| 6937 | @c Removed the tentative node "Mode Initialization" from here, 2005/8/27. | 6944 | @c Removed the tentative node "Mode Initialization" from here, 2005/8/27. |
| 6938 | @comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | 6945 | @comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! |
| 6939 | @node Command and Function Index, Variable Index, Mailing Lists and Bug Reports, Top | 6946 | @node Command and Function Index, Variable Index, GNU Free Documentation License, Top |
| 6940 | @comment node-name, next, previous, up | 6947 | @comment node-name, next, previous, up |
| 6941 | @unnumbered Command and Function Index | 6948 | @unnumbered Command and Function Index |
| 6942 | @comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | 6949 | @comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! |
diff --git a/man/cl.texi b/man/cl.texi index 6a6663fcd5b..676b9edc5ad 100644 --- a/man/cl.texi +++ b/man/cl.texi | |||
| @@ -78,6 +78,7 @@ does assume a basic familiarity with Emacs Lisp. | |||
| 78 | * Old CL Compatibility:: All known differences with old cl.el | 78 | * Old CL Compatibility:: All known differences with old cl.el |
| 79 | * Porting Common Lisp:: Hints for porting Common Lisp code | 79 | * Porting Common Lisp:: Hints for porting Common Lisp code |
| 80 | 80 | ||
| 81 | * GNU Free Documentation License:: The license for this documentation. | ||
| 81 | * Function Index:: | 82 | * Function Index:: |
| 82 | * Variable Index:: | 83 | * Variable Index:: |
| 83 | @end menu | 84 | @end menu |
| @@ -5141,7 +5142,7 @@ older versions of the old package used the unadorned names | |||
| 5141 | @code{floor}, @code{ceiling}, etc.; @code{cl-compat} cannot use | 5142 | @code{floor}, @code{ceiling}, etc.; @code{cl-compat} cannot use |
| 5142 | these names because they conflict with Emacs built-ins. | 5143 | these names because they conflict with Emacs built-ins. |
| 5143 | 5144 | ||
| 5144 | @node Porting Common Lisp, Function Index, Old CL Compatibility, Top | 5145 | @node Porting Common Lisp, GNU Free Documentation License, Old CL Compatibility, Top |
| 5145 | @appendix Porting Common Lisp | 5146 | @appendix Porting Common Lisp |
| 5146 | 5147 | ||
| 5147 | @noindent | 5148 | @noindent |
| @@ -5353,7 +5354,11 @@ note that the current Emacs Lisp compiler does not optimize tail | |||
| 5353 | recursion. | 5354 | recursion. |
| 5354 | @end itemize | 5355 | @end itemize |
| 5355 | 5356 | ||
| 5356 | @node Function Index, Variable Index, Porting Common Lisp, Top | 5357 | @node GNU Free Documentation License, Function Index, Porting Common Lisp, Top |
| 5358 | @appendix GNU Free Documentation License | ||
| 5359 | @include doclicense.texi | ||
| 5360 | |||
| 5361 | @node Function Index, Variable Index, GNU Free Documentation License, Top | ||
| 5357 | @unnumbered Function Index | 5362 | @unnumbered Function Index |
| 5358 | 5363 | ||
| 5359 | @printindex fn | 5364 | @printindex fn |
diff --git a/man/cmdargs.texi b/man/cmdargs.texi index 860d9ac1403..676d4cdf3b5 100644 --- a/man/cmdargs.texi +++ b/man/cmdargs.texi | |||
| @@ -892,7 +892,7 @@ displays the entire font @samp{6x13}. | |||
| 892 | 892 | ||
| 893 | @node Colors | 893 | @node Colors |
| 894 | @appendixsec Window Color Options | 894 | @appendixsec Window Color Options |
| 895 | @cindex color of window | 895 | @cindex color of window, from command line |
| 896 | @cindex text colors, from command line | 896 | @cindex text colors, from command line |
| 897 | 897 | ||
| 898 | @findex list-colors-display | 898 | @findex list-colors-display |
diff --git a/man/dired-x.texi b/man/dired-x.texi index 0d9e385b789..bf2d5288abc 100644 --- a/man/dired-x.texi +++ b/man/dired-x.texi | |||
| @@ -25,38 +25,27 @@ | |||
| 25 | @comment %**end of header (This is for running Texinfo on a region.) | 25 | @comment %**end of header (This is for running Texinfo on a region.) |
| 26 | 26 | ||
| 27 | @copying | 27 | @copying |
| 28 | This documents the ``extra'' features for Dired Mode for GNU Emacs found in | 28 | Copyright @copyright{} 1994, 1995, 1999, 2001, 2002, 2003, 2004, |
| 29 | the file @file{dired-x.el}. | ||
| 30 | |||
| 31 | Copyright @copyright{} 1993, 1994, 2001, 2002, 2003, 2004, | ||
| 32 | 2005, 2006, 2007 Free Software Foundation, Inc. | 29 | 2005, 2006, 2007 Free Software Foundation, Inc. |
| 33 | 30 | ||
| 34 | @quotation | 31 | @quotation |
| 35 | Permission is granted to make and distribute verbatim copies of this | 32 | Permission is granted to copy, distribute and/or modify this document |
| 36 | manual provided the copyright notice and this permission notice are | 33 | under the terms of the GNU Free Documentation License, Version 1.2 or |
| 37 | preserved on all copies. | 34 | any later version published by the Free Software Foundation; with the |
| 38 | 35 | Invariant Sections being ``The GNU Manifesto'', ``Distribution'' and | |
| 39 | Permission is granted to copy and distribute modified versions of | 36 | ``GNU GENERAL PUBLIC LICENSE'', with the Front-Cover texts being ``A GNU |
| 40 | this manual under the conditions for verbatim copying, provided that | 37 | Manual'', and with the Back-Cover Texts as in (a) below. A copy of the |
| 41 | the entire resulting derived work is distributed under the terms of | 38 | license is included in the section entitled ``GNU Free Documentation |
| 42 | a permission notice identical to this one. | 39 | License'' in the Emacs manual. |
| 43 | 40 | ||
| 44 | Permission is granted to copy and distribute translations of this | 41 | (a) The FSF's Back-Cover Text is: ``You have freedom to copy and modify |
| 45 | manual into another language, under the above conditions for | 42 | this GNU Manual, like GNU software. Copies published by the Free |
| 46 | modified versions, except that this permission notice may be stated | 43 | Software Foundation raise funds for GNU development.'' |
| 47 | in a translation approved by the Free Software Foundation. | 44 | |
| 48 | 45 | This document is part of a collection distributed under the GNU Free | |
| 49 | The file used to create this is called @file{dired-x.texi}, but the | 46 | Documentation License. If you want to distribute this document |
| 50 | original work that was altered to make that file was called | 47 | separately from the collection, you can do so by adding a copy of the |
| 51 | @file{dired.texi} written by Sebastian Kremer. | 48 | license to the document, as described in section 6 of the license. |
| 52 | |||
| 53 | @ignore | ||
| 54 | Permission is granted to process this file through TeX and print the | ||
| 55 | results, provided the printed document carries copying permission | ||
| 56 | notice identical to this one except for the removal of this paragraph | ||
| 57 | (this paragraph not being relevant to the printed manual). | ||
| 58 | |||
| 59 | @end ignore | ||
| 60 | @end quotation | 49 | @end quotation |
| 61 | @end copying | 50 | @end copying |
| 62 | 51 | ||
| @@ -80,9 +69,6 @@ notice identical to this one except for the removal of this paragraph | |||
| 80 | @sp 1 | 69 | @sp 1 |
| 81 | @center @titlefont{Directory Editor} | 70 | @center @titlefont{Directory Editor} |
| 82 | @sp 4 | 71 | @sp 4 |
| 83 | @center Manual Revision: 2.53 | ||
| 84 | @center 2001/02/25 14:05:46 | ||
| 85 | @sp 5 | ||
| 86 | @center Lawrence R@. Dodd | 72 | @center Lawrence R@. Dodd |
| 87 | @c @center @t{dodd@@roebling.poly.edu} | 73 | @c @center @t{dodd@@roebling.poly.edu} |
| 88 | @sp 5 | 74 | @sp 5 |
| @@ -138,6 +124,7 @@ For @file{dired-x.el} revision 2 | |||
| 138 | * Miscellaneous Commands:: | 124 | * Miscellaneous Commands:: |
| 139 | * Bugs:: | 125 | * Bugs:: |
| 140 | 126 | ||
| 127 | * GNU Free Documentation License:: | ||
| 141 | * Concept Index:: | 128 | * Concept Index:: |
| 142 | * Command Index:: | 129 | * Command Index:: |
| 143 | * Key Index:: | 130 | * Key Index:: |
| @@ -1228,7 +1215,7 @@ Bound to @kbd{%Y}. Relative symlink all marked files containing | |||
| 1228 | info. | 1215 | info. |
| 1229 | @end table | 1216 | @end table |
| 1230 | 1217 | ||
| 1231 | @node Bugs, Concept Index, Miscellaneous Commands, Top | 1218 | @node Bugs, GNU Free Documentation License, Miscellaneous Commands, Top |
| 1232 | @comment node-name, next, previous, up | 1219 | @comment node-name, next, previous, up |
| 1233 | @chapter Bugs | 1220 | @chapter Bugs |
| 1234 | @cindex Bugs | 1221 | @cindex Bugs |
| @@ -1252,7 +1239,11 @@ maladjustment. | |||
| 1252 | Lawrence R. Dodd | 1239 | Lawrence R. Dodd |
| 1253 | @c <dodd@@roebling.poly.edu> | 1240 | @c <dodd@@roebling.poly.edu> |
| 1254 | 1241 | ||
| 1255 | @node Concept Index, Command Index, Bugs, Top | 1242 | @node GNU Free Documentation License, Concept Index, Bugs, Top |
| 1243 | @appendix GNU Free Documentation License | ||
| 1244 | @include doclicense.texi | ||
| 1245 | |||
| 1246 | @node Concept Index, Command Index, GNU Free Documentation License, Top | ||
| 1256 | @comment node-name, next, previous, up | 1247 | @comment node-name, next, previous, up |
| 1257 | @unnumbered Concept Index | 1248 | @unnumbered Concept Index |
| 1258 | @printindex cp | 1249 | @printindex cp |
diff --git a/man/dired.texi b/man/dired.texi index c40030147b4..922914a123f 100644 --- a/man/dired.texi +++ b/man/dired.texi | |||
| @@ -44,6 +44,7 @@ on all of them with on command. | |||
| 44 | * Updating: Dired Updating. Discarding lines for files of no interest. | 44 | * Updating: Dired Updating. Discarding lines for files of no interest. |
| 45 | * Find: Dired and Find. Using `find' to choose the files for Dired. | 45 | * Find: Dired and Find. Using `find' to choose the files for Dired. |
| 46 | * Wdired:: Operating on files by editing the Dired buffer. | 46 | * Wdired:: Operating on files by editing the Dired buffer. |
| 47 | * Image-Dired:: Viewing image thumbnails in Dired | ||
| 47 | * Misc: Misc Dired Features. Various other features. | 48 | * Misc: Misc Dired Features. Various other features. |
| 48 | @end menu | 49 | @end menu |
| 49 | 50 | ||
| @@ -920,6 +921,9 @@ Use the @kbd{l} command (@code{dired-do-redisplay}) to update the | |||
| 920 | subdirectory's contents. Use @kbd{C-u k} on the subdirectory header | 921 | subdirectory's contents. Use @kbd{C-u k} on the subdirectory header |
| 921 | line to delete the subdirectory. @xref{Dired Updating}. | 922 | line to delete the subdirectory. @xref{Dired Updating}. |
| 922 | 923 | ||
| 924 | |||
| 925 | |||
| 926 | |||
| 923 | @ifnottex | 927 | @ifnottex |
| 924 | @include dired-xtra.texi | 928 | @include dired-xtra.texi |
| 925 | @end ifnottex | 929 | @end ifnottex |
| @@ -1132,9 +1136,9 @@ may need to change the value of this variable. | |||
| 1132 | @findex locate-with-filter | 1136 | @findex locate-with-filter |
| 1133 | @cindex file database (locate) | 1137 | @cindex file database (locate) |
| 1134 | @vindex locate-command | 1138 | @vindex locate-command |
| 1135 | @kbd{M-x locate} provides a similar interface to the @code{locate} | 1139 | The command @kbd{M-x locate} provides a similar interface to the |
| 1136 | program. @kbd{M-x locate-with-filter} is similar, but keeps only files | 1140 | @code{locate} program. @kbd{M-x locate-with-filter} is similar, but |
| 1137 | whose names match a given regular expression. | 1141 | keeps only files whose names match a given regular expression. |
| 1138 | 1142 | ||
| 1139 | These buffers don't work entirely like ordinary Dired buffers: file | 1143 | These buffers don't work entirely like ordinary Dired buffers: file |
| 1140 | operations work, but do not always automatically update the buffer. | 1144 | operations work, but do not always automatically update the buffer. |
| @@ -1174,6 +1178,78 @@ change @samp{-rw-r--r--} to @samp{-rw-rw-rw-} to make a file | |||
| 1174 | world-writable. These changes also take effect when you type @kbd{C-c | 1178 | world-writable. These changes also take effect when you type @kbd{C-c |
| 1175 | C-c}. | 1179 | C-c}. |
| 1176 | 1180 | ||
| 1181 | @node Image-Dired | ||
| 1182 | @section Viewing Image Thumbnails in Dired | ||
| 1183 | @cindex image-dired mode | ||
| 1184 | @cindex image-dired | ||
| 1185 | |||
| 1186 | Image-Dired is a facility for browsing image files. It provides viewing | ||
| 1187 | the images either as thumbnails or in full size, either inside Emacs | ||
| 1188 | or through an external viewer. | ||
| 1189 | |||
| 1190 | @kindex C-t d @r{(Image-Dired)} | ||
| 1191 | @findex image-dired-display-thumbs | ||
| 1192 | To enter Image-Dired, mark the image files you want to look at in | ||
| 1193 | the Dired buffer, using @kbd{m} as usual. Then type @kbd{C-t d} | ||
| 1194 | (@code{image-dired-display-thumbs}). This creates and switches to a | ||
| 1195 | buffer containing image-dired, corresponding to the marked files. | ||
| 1196 | |||
| 1197 | You can also enter Image-Dired directly by typing @kbd{M-x | ||
| 1198 | image-dired}. This prompts for a directory; specify one that has | ||
| 1199 | images files. This creates thumbnails for all the images in that | ||
| 1200 | directory, and displays them all in the ``thumbnail buffer.'' This | ||
| 1201 | takes a long time if the directory contains many image files, and it | ||
| 1202 | asks for confirmation if the number of image files exceeds | ||
| 1203 | @code{image-dired-show-all-from-dir-max-files}. | ||
| 1204 | |||
| 1205 | With point in the thumbnail buffer, type @kbd{RET} | ||
| 1206 | (@code{image-dired-display-thumbnail-original-image}) to display a | ||
| 1207 | sized version of it in another window. This sizes the image to fit | ||
| 1208 | the window. Use the arrow keys to move around in the buffer. For | ||
| 1209 | easy browsing, type @kbd{SPC} | ||
| 1210 | (@code{image-dired-display-next-thumbnail-original}) to advance and | ||
| 1211 | display the next image. Typing @kbd{DEL} | ||
| 1212 | (@code{image-dired-display-previous-thumbnail-original}) backs up to | ||
| 1213 | the previous thumbnail and displays that instead. | ||
| 1214 | |||
| 1215 | @vindex image-dired-external-viewer | ||
| 1216 | To view and the image in its original size, either provide a prefix | ||
| 1217 | argument (@kbd{C-u}) before pressing @kbd{RET}, or type | ||
| 1218 | @kbd{C-@key{RET}} (@code{image-dired-thumbnail-display-external}) to | ||
| 1219 | display the image in an external viewer. You must first configure | ||
| 1220 | @code{image-dired-external-viewer}. | ||
| 1221 | |||
| 1222 | You can delete images through Image-Dired also. Type @kbd{d} | ||
| 1223 | (@code{image-dired-flag-thumb-original-file}) to flag the image file | ||
| 1224 | for deletion in the Dired buffer. You can also delete the thumbnail | ||
| 1225 | image from the thumbnail buffer with @kbd{C-d} | ||
| 1226 | (@code{image-dired-delete-char}). | ||
| 1227 | |||
| 1228 | More advanced features include @dfn{image tags}, which are metadata | ||
| 1229 | used to categorize image files. The tags are stored in a plain text | ||
| 1230 | file configured by @code{image-dired-db-file}. | ||
| 1231 | |||
| 1232 | To tag image files, mark them in the dired buffer (you can also mark | ||
| 1233 | files in Dired from the thumbnail buffer by typing @kbd{m}) and type | ||
| 1234 | @kbd{C-t t} (@code{image-dired-tag-files}). You will be prompted for | ||
| 1235 | a tag. To mark files having a certain tag, type @kbd{C-t f} | ||
| 1236 | (@code{image-dired-mark-tagged-files}). After marking image files | ||
| 1237 | with a certain tag, you can use @kbd{C-t d} to view them. | ||
| 1238 | |||
| 1239 | You can also tag a file directly from the thumbnail buffer by typing | ||
| 1240 | @kbd{t t} and you can remove a tag by typing @kbd{t r}. There is also | ||
| 1241 | a special ``tag'' called ``comment'' for each file (it is not a tag in | ||
| 1242 | the exact same sense as the other tags, it is handled slightly | ||
| 1243 | different). That is used to enter a comment or description about the | ||
| 1244 | image. You comment a file from the thumbnail buffer by typing | ||
| 1245 | @kbd{c}. You will be prompted for a comment. Type @kbd{C-t c} to add | ||
| 1246 | a comment from Dired (@code{image-dired-dired-comment-files}). | ||
| 1247 | |||
| 1248 | Image-Dired also provides simple image manipulation. In the | ||
| 1249 | thumbnail buffer, type @kbd{L} to rotate the original image 90 degrees | ||
| 1250 | anti clockwise, and @kbd{R} to rotate it 90 degrees clockwise. This | ||
| 1251 | rotation is lossless, and uses an external utility called JpegTRAN. | ||
| 1252 | |||
| 1177 | @node Misc Dired Features | 1253 | @node Misc Dired Features |
| 1178 | @section Other Dired Features | 1254 | @section Other Dired Features |
| 1179 | 1255 | ||
diff --git a/man/display.texi b/man/display.texi index 020721fb462..6cb2d857165 100644 --- a/man/display.texi +++ b/man/display.texi | |||
| @@ -128,7 +128,7 @@ same screen line. To enable this behavior, set the variable | |||
| 128 | @code{scroll-preserve-screen-position} to a non-@code{nil} value. In | 128 | @code{scroll-preserve-screen-position} to a non-@code{nil} value. In |
| 129 | this mode, when these commands would scroll the text around point off | 129 | this mode, when these commands would scroll the text around point off |
| 130 | the screen, or within @code{scroll-margin} lines of the edge, they | 130 | the screen, or within @code{scroll-margin} lines of the edge, they |
| 131 | moves point to keep the same vertical position within the window. | 131 | move point to keep the same vertical position within the window. |
| 132 | This mode is convenient for browsing through a file by scrolling by | 132 | This mode is convenient for browsing through a file by scrolling by |
| 133 | screenfuls; if you come back to the screen where you started, point | 133 | screenfuls; if you come back to the screen where you started, point |
| 134 | goes back to the line where it started. However, this mode is | 134 | goes back to the line where it started. However, this mode is |
| @@ -333,6 +333,11 @@ those to be created in the future. (You can also set foreground and | |||
| 333 | background colors for the current frame only; see @ref{Frame | 333 | background colors for the current frame only; see @ref{Frame |
| 334 | Parameters}.) | 334 | Parameters}.) |
| 335 | 335 | ||
| 336 | If you want to alter the appearance of all Emacs frames, you need to | ||
| 337 | customize the frame parameters in the variable | ||
| 338 | @code{default-frame-alist}; see @ref{Creating Frames, | ||
| 339 | default-frame-alist}. | ||
| 340 | |||
| 336 | Emacs can correctly display variable-width fonts, but Emacs commands | 341 | Emacs can correctly display variable-width fonts, but Emacs commands |
| 337 | that calculate width and indentation do not know how to calculate | 342 | that calculate width and indentation do not know how to calculate |
| 338 | variable widths. This can sometimes lead to incorrect results when | 343 | variable widths. This can sometimes lead to incorrect results when |
| @@ -646,15 +651,14 @@ recently. | |||
| 646 | 651 | ||
| 647 | @cindex Hi Lock mode | 652 | @cindex Hi Lock mode |
| 648 | @findex hi-lock-mode | 653 | @findex hi-lock-mode |
| 649 | Hi Lock mode is another minor mode, which highlights text that | 654 | Hi Lock mode highlights text that matches regular expressions you |
| 650 | matches your specified regular expressions. For example, you might | 655 | specify. For example, you might wish to see all the references to a |
| 651 | wish to see all the references to a certain variable in a program | 656 | certain variable in a program source file, highlight certain parts in |
| 652 | source file, highlight certain parts in a voluminous output of some | 657 | a voluminous output of some program, or make certain names stand out |
| 653 | program, or make certain names stand out in an article. Use the | 658 | in an article. Use the @kbd{M-x hi-lock-mode} command to enable (or |
| 654 | @kbd{M-x hi-lock-mode} command to enable (or disable) Hi Lock mode. | 659 | disable) Hi Lock mode. To enable Hi Lock mode for all buffers, use |
| 655 | To enable Hi Lock mode for all buffers, use @kbd{M-x | 660 | @kbd{M-x global-hi-lock-mode} or place @code{(global-hi-lock-mode 1)} |
| 656 | global-hi-lock-mode} or place @code{(global-hi-lock-mode 1)} in your | 661 | in your @file{.emacs} file. |
| 657 | @file{.emacs} file. | ||
| 658 | 662 | ||
| 659 | Hi Lock mode works like Font Lock mode (@pxref{Font Lock}), except | 663 | Hi Lock mode works like Font Lock mode (@pxref{Font Lock}), except |
| 660 | that you specify explicitly the regular expressions to highlight. You | 664 | that you specify explicitly the regular expressions to highlight. You |
| @@ -706,26 +710,36 @@ at point, with comment delimiters to prevent them from changing your | |||
| 706 | program. (This key binding runs the | 710 | program. (This key binding runs the |
| 707 | @code{hi-lock-write-interactive-patterns} command.) | 711 | @code{hi-lock-write-interactive-patterns} command.) |
| 708 | 712 | ||
| 709 | These patterns will be read the next time you visit the file while | 713 | These patterns are extracted from the comments, if appropriate, if you |
| 710 | Hi Lock mode is enabled, or whenever you use the @kbd{M-x | 714 | invoke @kbd{M-x hi-lock-find-patterns}, or if you visit the file while |
| 711 | hi-lock-find-patterns} command. | 715 | Hi Lock mode is enabled (since that runs @code{hi-lock-find-patterns}). |
| 712 | 716 | ||
| 713 | @item C-x w i | 717 | @item C-x w i |
| 714 | @kindex C-x w i | 718 | @kindex C-x w i |
| 715 | @findex hi-lock-find-patterns | 719 | @findex hi-lock-find-patterns |
| 716 | @vindex hi-lock-exclude-modes | 720 | Extract regexp/face pairs from comments in the current buffer |
| 717 | Re-read regexp/face pairs in the current buffer | 721 | (@code{hi-lock-find-patterns}). Thus, you can enter patterns |
| 718 | (@code{hi-lock-write-interactive-patterns}). Users familiar with Font | 722 | interactively with @code{highlight-regexp}, store them into the file |
| 719 | Lock keywords might interactively enter patterns | 723 | with @code{hi-lock-write-interactive-patterns}, edit them (perhaps |
| 720 | (@code{highlight-regexp}), write them into the file | ||
| 721 | (@code{hi-lock-write-interactive-patterns}), edit them, perhaps | ||
| 722 | including different faces for different parenthesized parts of the | 724 | including different faces for different parenthesized parts of the |
| 723 | match, and finally use this command | 725 | match), and finally use this command (@code{hi-lock-find-patterns}) to |
| 724 | (@code{hi-lock-write-interactive-patterns}) to have Hi Lock highlight | 726 | have Hi Lock highlight the edited patterns. |
| 725 | them. | 727 | |
| 728 | @vindex hi-lock-file-patterns-policy | ||
| 729 | The variable @code{hi-lock-file-patterns-policy} controls whether Hi | ||
| 730 | Lock mode should automatically extract and highlight patterns found in | ||
| 731 | a file when it is visited. Its value can be @code{nil} (never | ||
| 732 | highlight), @code{t} (highlight the patterns), @code{ask} (query the | ||
| 733 | user), or a function. If it is a function, | ||
| 734 | @code{hi-lock-find-patterns} calls it with the patterns as argument; | ||
| 735 | if the function returns non-@code{nil}, the patterns are used. The | ||
| 736 | default is @code{nil}. Note that patterns are always highlighted if | ||
| 737 | you call @code{hi-lock-find-patterns} directly, regardless of the | ||
| 738 | value of this variable. | ||
| 726 | 739 | ||
| 727 | This command does nothing if the current major mode's symbol is a member | 740 | @vindex hi-lock-exclude-modes |
| 728 | of the list @code{hi-lock-exclude-modes}. | 741 | Also, @code{hi-lock-find-patterns} does nothing if the current major |
| 742 | mode's symbol is a member of the list @code{hi-lock-exclude-modes}. | ||
| 729 | @end table | 743 | @end table |
| 730 | 744 | ||
| 731 | @node Fringes | 745 | @node Fringes |
diff --git a/man/doclicense.texi b/man/doclicense.texi index 14fb9926897..83e9d6b5579 100644 --- a/man/doclicense.texi +++ b/man/doclicense.texi | |||
| @@ -1,6 +1,4 @@ | |||
| 1 | @c -*-texinfo-*- | 1 | @c -*-texinfo-*- |
| 2 | @node GNU Free Documentation License, Emacs Invocation, Copying, Top | ||
| 3 | @appendix GNU Free Documentation License | ||
| 4 | @center Version 1.2, November 2002 | 2 | @center Version 1.2, November 2002 |
| 5 | 3 | ||
| 6 | @display | 4 | @display |
diff --git a/man/ebrowse.texi b/man/ebrowse.texi index 25262625e92..c04f99f954c 100644 --- a/man/ebrowse.texi +++ b/man/ebrowse.texi | |||
| @@ -42,8 +42,6 @@ license to the document, as described in section 6 of the license. | |||
| 42 | @title Ebrowse User's Manual | 42 | @title Ebrowse User's Manual |
| 43 | @sp 4 | 43 | @sp 4 |
| 44 | @subtitle Ebrowse/Emacs | 44 | @subtitle Ebrowse/Emacs |
| 45 | @sp 1 | ||
| 46 | @subtitle May 2000 | ||
| 47 | @sp 5 | 45 | @sp 5 |
| 48 | @author Gerd Moellmann | 46 | @author Gerd Moellmann |
| 49 | @page | 47 | @page |
| @@ -65,6 +63,7 @@ Ebrowse. | |||
| 65 | * Tree Buffers:: Traversing class hierarchies | 63 | * Tree Buffers:: Traversing class hierarchies |
| 66 | * Member Buffers:: Looking at member information | 64 | * Member Buffers:: Looking at member information |
| 67 | * Tags-like Functions:: Finding members from source files | 65 | * Tags-like Functions:: Finding members from source files |
| 66 | * GNU Free Documentation License:: The license for this documentation. | ||
| 68 | * Concept Index:: An entry for each concept defined | 67 | * Concept Index:: An entry for each concept defined |
| 69 | @end menu | 68 | @end menu |
| 70 | 69 | ||
| @@ -1240,7 +1239,7 @@ This key is bound to @code{describe-mode}. | |||
| 1240 | @comment *** TAGS LIKE FUNCTIONS | 1239 | @comment *** TAGS LIKE FUNCTIONS |
| 1241 | @comment ************************************************************** | 1240 | @comment ************************************************************** |
| 1242 | 1241 | ||
| 1243 | @node Tags-like Functions, Concept Index, Member Buffers, Top | 1242 | @node Tags-like Functions, GNU Free Documentation License, Member Buffers, Top |
| 1244 | @comment node-name, next, previous, up | 1243 | @comment node-name, next, previous, up |
| 1245 | @chapter Tags-like Functions | 1244 | @chapter Tags-like Functions |
| 1246 | 1245 | ||
| @@ -1438,7 +1437,7 @@ The command @kbd{C-c C-m @key{TAB}} completes the symbol in front of point. | |||
| 1438 | 1437 | ||
| 1439 | 1438 | ||
| 1440 | 1439 | ||
| 1441 | @node Member Buffer Display, , Symbol Completion, Tags-like Functions | 1440 | @node Member Buffer Display, , Symbol Completion, Tags-like Functions |
| 1442 | @section Quick Member Display | 1441 | @section Quick Member Display |
| 1443 | @cindex member buffer, for member at point | 1442 | @cindex member buffer, for member at point |
| 1444 | 1443 | ||
| @@ -1446,7 +1445,12 @@ You can quickly display a member buffer containing the member the cursor | |||
| 1446 | in on with the command @kbd{C-c C-m m}. | 1445 | in on with the command @kbd{C-c C-m m}. |
| 1447 | 1446 | ||
| 1448 | 1447 | ||
| 1449 | @node Concept Index, , Tags-like Functions, Top | 1448 | @node GNU Free Documentation License, Concept Index, Tags-like Functions, Top |
| 1449 | @appendix GNU Free Documentation License | ||
| 1450 | @include doclicense.texi | ||
| 1451 | |||
| 1452 | |||
| 1453 | @node Concept Index, , GNU Free Documentation License, Top | ||
| 1450 | @unnumbered Concept Index | 1454 | @unnumbered Concept Index |
| 1451 | @printindex cp | 1455 | @printindex cp |
| 1452 | 1456 | ||
diff --git a/man/ediff.texi b/man/ediff.texi index 52823cdb8fb..6bb2605e0c6 100644 --- a/man/ediff.texi +++ b/man/ediff.texi | |||
| @@ -56,9 +56,9 @@ license to the document, as described in section 6 of the license. | |||
| 56 | @titlepage | 56 | @titlepage |
| 57 | @title Ediff User's Manual | 57 | @title Ediff User's Manual |
| 58 | @sp 4 | 58 | @sp 4 |
| 59 | @subtitle Ediff version 2.76.1 | 59 | @subtitle Ediff version 2.81.1 |
| 60 | @sp 1 | 60 | @sp 1 |
| 61 | @subtitle January 2002 | 61 | @subtitle April 2007 |
| 62 | @sp 5 | 62 | @sp 5 |
| 63 | @author Michael Kifer | 63 | @author Michael Kifer |
| 64 | @page | 64 | @page |
| @@ -80,6 +80,7 @@ license to the document, as described in section 6 of the license. | |||
| 80 | * Remote and Compressed Files:: You may want to know about this. | 80 | * Remote and Compressed Files:: You may want to know about this. |
| 81 | * Customization:: How to make Ediff work the way YOU want. | 81 | * Customization:: How to make Ediff work the way YOU want. |
| 82 | * Credits:: Thanks to those who helped. | 82 | * Credits:: Thanks to those who helped. |
| 83 | * GNU Free Documentation License:: The license for this documentation. | ||
| 83 | * Index:: | 84 | * Index:: |
| 84 | @end menu | 85 | @end menu |
| 85 | 86 | ||
| @@ -2411,7 +2412,7 @@ non-@code{nil} only if Ediff uses the multiframe display, i.e., when | |||
| 2411 | the control buffer is in its own frame. | 2412 | the control buffer is in its own frame. |
| 2412 | @end table | 2413 | @end table |
| 2413 | 2414 | ||
| 2414 | @node Credits, Index, Customization, Top | 2415 | @node Credits, GNU Free Documentation License, Customization, Top |
| 2415 | @chapter Credits | 2416 | @chapter Credits |
| 2416 | 2417 | ||
| 2417 | Ediff was written by Michael Kifer <kifer@@cs.stonybrook.edu>. It was inspired | 2418 | Ediff was written by Michael Kifer <kifer@@cs.stonybrook.edu>. It was inspired |
| @@ -2527,7 +2528,12 @@ Ilya Zakharevich (ilya@@math.ohio-state.edu), | |||
| 2527 | Eli Zaretskii (eliz@@is.elta.co.il) | 2528 | Eli Zaretskii (eliz@@is.elta.co.il) |
| 2528 | @end example | 2529 | @end example |
| 2529 | 2530 | ||
| 2530 | @node Index, , Credits, Top | 2531 | @node GNU Free Documentation License, Index, Credits, Top |
| 2532 | @appendix GNU Free Documentation License | ||
| 2533 | @include doclicense.texi | ||
| 2534 | |||
| 2535 | |||
| 2536 | @node Index, , GNU Free Documentation License, Top | ||
| 2531 | @unnumbered Index | 2537 | @unnumbered Index |
| 2532 | @printindex cp | 2538 | @printindex cp |
| 2533 | 2539 | ||
diff --git a/man/emacs-mime.texi b/man/emacs-mime.texi index a805b3f581b..56f130b67fb 100644 --- a/man/emacs-mime.texi +++ b/man/emacs-mime.texi | |||
| @@ -75,6 +75,7 @@ read at least RFC2045 and RFC2047. | |||
| 75 | * Interface Functions:: An abstraction over the basic functions. | 75 | * Interface Functions:: An abstraction over the basic functions. |
| 76 | * Basic Functions:: Utility and basic parsing functions. | 76 | * Basic Functions:: Utility and basic parsing functions. |
| 77 | * Standards:: A summary of RFCs and working documents used. | 77 | * Standards:: A summary of RFCs and working documents used. |
| 78 | * GNU Free Documentation License:: The license for this documentation. | ||
| 78 | * Index:: Function and variable index. | 79 | * Index:: Function and variable index. |
| 79 | @end menu | 80 | @end menu |
| 80 | 81 | ||
| @@ -1805,6 +1806,9 @@ Documentation of the text/plain format parameter for flowed text. | |||
| 1805 | 1806 | ||
| 1806 | @end table | 1807 | @end table |
| 1807 | 1808 | ||
| 1809 | @node GNU Free Documentation License | ||
| 1810 | @chapter GNU Free Documentation License | ||
| 1811 | @include doclicense.texi | ||
| 1808 | 1812 | ||
| 1809 | @node Index | 1813 | @node Index |
| 1810 | @chapter Index | 1814 | @chapter Index |
diff --git a/man/emacs.texi b/man/emacs.texi index 800532edf2f..bf18bfb6f02 100644 --- a/man/emacs.texi +++ b/man/emacs.texi | |||
| @@ -5,7 +5,7 @@ | |||
| 5 | 5 | ||
| 6 | @c The edition number appears in several places in this file | 6 | @c The edition number appears in several places in this file |
| 7 | @set EDITION Sixteenth | 7 | @set EDITION Sixteenth |
| 8 | @set EMACSVER 22.0.97 | 8 | @set EMACSVER 22.0.98 |
| 9 | 9 | ||
| 10 | @copying | 10 | @copying |
| 11 | This is the @value{EDITION} edition of the @cite{GNU Emacs Manual}, | 11 | This is the @value{EDITION} edition of the @cite{GNU Emacs Manual}, |
| @@ -39,15 +39,20 @@ Software Foundation raise funds for GNU development.'' | |||
| 39 | @c in general, keep the following line commented out, unless doing a | 39 | @c in general, keep the following line commented out, unless doing a |
| 40 | @c copy of this manual that will be published. the manual should go | 40 | @c copy of this manual that will be published. the manual should go |
| 41 | @c onto the distribution in the full, 8.5 x 11" size. | 41 | @c onto the distribution in the full, 8.5 x 11" size. |
| 42 | @set smallbook | ||
| 42 | 43 | ||
| 44 | @ifset smallbook | ||
| 43 | @smallbook | 45 | @smallbook |
| 46 | @end ifset | ||
| 44 | 47 | ||
| 45 | @c per rms and peterb, use 10pt fonts for the main text, mostly to | 48 | @c per rms and peterb, use 10pt fonts for the main text, mostly to |
| 46 | @c save on paper cost. Also do not declare @setchapternewpage odd. | 49 | @c save on paper cost. Also do not declare @setchapternewpage odd. |
| 47 | @c Do this inside @tex for now, so current makeinfo does not complain. | 50 | @c Do this inside @tex for now, so current makeinfo does not complain. |
| 48 | @tex | 51 | @tex |
| 52 | @ifset smallbook | ||
| 49 | @fonttextsize 10 | 53 | @fonttextsize 10 |
| 50 | \global\hbadness=6000 % don't worry about not-too-underfull boxes | 54 | @end ifset |
| 55 | \global\hbadness=6666 % don't worry about not-too-underfull boxes | ||
| 51 | @end tex | 56 | @end tex |
| 52 | 57 | ||
| 53 | @defcodeindex op | 58 | @defcodeindex op |
| @@ -217,7 +222,6 @@ Advanced Features | |||
| 217 | "recursive editing level". | 222 | "recursive editing level". |
| 218 | * Emulation:: Emulating some other editors with Emacs. | 223 | * Emulation:: Emulating some other editors with Emacs. |
| 219 | * Hyperlinking:: Following links in buffers. | 224 | * Hyperlinking:: Following links in buffers. |
| 220 | * Thumbnails:: Browsing images using thumbnails. | ||
| 221 | * Dissociated Press:: Dissociating text for fun. | 225 | * Dissociated Press:: Dissociating text for fun. |
| 222 | * Amusements:: Various games and hacks. | 226 | * Amusements:: Various games and hacks. |
| 223 | * Customization:: Modifying the behavior of Emacs. | 227 | * Customization:: Modifying the behavior of Emacs. |
| @@ -796,6 +800,7 @@ Dired, the Directory Editor | |||
| 796 | * Dired Updating:: Discarding lines for files of no interest. | 800 | * Dired Updating:: Discarding lines for files of no interest. |
| 797 | * Dired and Find:: Using `find' to choose the files for Dired. | 801 | * Dired and Find:: Using `find' to choose the files for Dired. |
| 798 | * Wdired:: Operating on files by editing the Dired buffer. | 802 | * Wdired:: Operating on files by editing the Dired buffer. |
| 803 | * Image-Dired:: Viewing image thumbnails in Dired | ||
| 799 | * Misc Dired Features:: Various other features. | 804 | * Misc Dired Features:: Various other features. |
| 800 | 805 | ||
| 801 | The Calendar and the Diary | 806 | The Calendar and the Diary |
| @@ -1683,7 +1688,10 @@ consider it more useful to permit linking proprietary applications with the | |||
| 1683 | library. If this is what you want to do, use the GNU Lesser General | 1688 | library. If this is what you want to do, use the GNU Lesser General |
| 1684 | Public License instead of this License. | 1689 | Public License instead of this License. |
| 1685 | 1690 | ||
| 1691 | @node GNU Free Documentation License, Emacs Invocation, Copying, Top | ||
| 1692 | @appendix GNU Free Documentation License | ||
| 1686 | @include doclicense.texi | 1693 | @include doclicense.texi |
| 1694 | |||
| 1687 | @include cmdargs.texi | 1695 | @include cmdargs.texi |
| 1688 | @include xresources.texi | 1696 | @include xresources.texi |
| 1689 | 1697 | ||
diff --git a/man/erc.texi b/man/erc.texi index 3f9f506bef8..72561b33072 100644 --- a/man/erc.texi +++ b/man/erc.texi | |||
| @@ -20,7 +20,14 @@ Copyright @copyright{} 2005, 2006, 2007 Free Software Foundation, Inc. | |||
| 20 | Permission is granted to copy, distribute and/or modify this document | 20 | Permission is granted to copy, distribute and/or modify this document |
| 21 | under the terms of the GNU Free Documentation License, Version 1.2 or | 21 | under the terms of the GNU Free Documentation License, Version 1.2 or |
| 22 | any later version published by the Free Software Foundation; with no | 22 | any later version published by the Free Software Foundation; with no |
| 23 | Invariant Sections, Front-Cover texts, or Back-Cover Texts. | 23 | Invariant Sections, Front-Cover texts, or Back-Cover Texts. A copy of |
| 24 | the license is included in the section entitled ``GNU Free | ||
| 25 | Documentation License'' in the Emacs manual. | ||
| 26 | |||
| 27 | This document is part of a collection distributed under the GNU Free | ||
| 28 | Documentation License. If you want to distribute this document | ||
| 29 | separately from the collection, you can do so by adding a copy of the | ||
| 30 | license to the document, as described in section 6 of the license. | ||
| 24 | 31 | ||
| 25 | All Emacs Lisp code contained in this document may be used, distributed, | 32 | All Emacs Lisp code contained in this document may be used, distributed, |
| 26 | and modified without restriction. | 33 | and modified without restriction. |
| @@ -61,6 +68,7 @@ and modified without restriction. | |||
| 61 | * Advanced Usage:: Cool ways of using ERC. | 68 | * Advanced Usage:: Cool ways of using ERC. |
| 62 | * Getting Help and Reporting Bugs:: | 69 | * Getting Help and Reporting Bugs:: |
| 63 | * History:: The history of ERC. | 70 | * History:: The history of ERC. |
| 71 | * GNU Free Documentation License:: The license for this documentation. | ||
| 64 | * Concept Index:: Search for terms. | 72 | * Concept Index:: Search for terms. |
| 65 | 73 | ||
| 66 | @detailmenu | 74 | @detailmenu |
| @@ -939,7 +947,7 @@ questions. | |||
| 939 | @end itemize | 947 | @end itemize |
| 940 | 948 | ||
| 941 | 949 | ||
| 942 | @node History, Concept Index, Getting Help and Reporting Bugs, Top | 950 | @node History, GNU Free Documentation License, Getting Help and Reporting Bugs, Top |
| 943 | @comment node-name, next, previous, up | 951 | @comment node-name, next, previous, up |
| 944 | @chapter History | 952 | @chapter History |
| 945 | @cindex history, of ERC | 953 | @cindex history, of ERC |
| @@ -1001,7 +1009,11 @@ our revision control system. Our mailing list address changed as well. | |||
| 1001 | 1009 | ||
| 1002 | @end itemize | 1010 | @end itemize |
| 1003 | 1011 | ||
| 1004 | @node Concept Index, , History, Top | 1012 | @node GNU Free Documentation License, Concept Index, History, Top |
| 1013 | @appendix GNU Free Documentation License | ||
| 1014 | @include doclicense.texi | ||
| 1015 | |||
| 1016 | @node Concept Index, , GNU Free Documentation License, Top | ||
| 1005 | @comment node-name, next, previous, up | 1017 | @comment node-name, next, previous, up |
| 1006 | @unnumbered Index | 1018 | @unnumbered Index |
| 1007 | 1019 | ||
diff --git a/man/eshell.texi b/man/eshell.texi index 47f76a1d69a..3a4b705d2c9 100644 --- a/man/eshell.texi +++ b/man/eshell.texi | |||
| @@ -89,6 +89,7 @@ handling the sort of tasks accomplished by those tools. | |||
| 89 | * Extension modules:: | 89 | * Extension modules:: |
| 90 | * Extras and Goodies:: | 90 | * Extras and Goodies:: |
| 91 | * Bugs and ideas:: Known problems, and future ideas. | 91 | * Bugs and ideas:: Known problems, and future ideas. |
| 92 | * GNU Free Documentation License:: The license for this documentation. | ||
| 92 | * Concept Index:: | 93 | * Concept Index:: |
| 93 | * Function and Variable Index:: | 94 | * Function and Variable Index:: |
| 94 | * Key Index:: | 95 | * Key Index:: |
| @@ -922,6 +923,10 @@ Since it keeps the cursor up where the command was invoked. | |||
| 922 | 923 | ||
| 923 | @end table | 924 | @end table |
| 924 | 925 | ||
| 926 | @node GNU Free Documentation License | ||
| 927 | @appendix GNU Free Documentation License | ||
| 928 | @include doclicense.texi | ||
| 929 | |||
| 925 | @node Concept Index | 930 | @node Concept Index |
| 926 | @unnumbered Concept Index | 931 | @unnumbered Concept Index |
| 927 | 932 | ||
diff --git a/man/eudc.texi b/man/eudc.texi index 08c02131f3e..7a8dbbee524 100644 --- a/man/eudc.texi +++ b/man/eudc.texi | |||
| @@ -70,6 +70,7 @@ LDAP or the CCSO white pages directory system (PH/QI) | |||
| 70 | * Installation:: How to install EUDC | 70 | * Installation:: How to install EUDC |
| 71 | * Usage:: The various usage possibilities explained | 71 | * Usage:: The various usage possibilities explained |
| 72 | * Credits:: Who's done what | 72 | * Credits:: Who's done what |
| 73 | * GNU Free Documentation License:: The license for this documentation. | ||
| 73 | * Command and Function Index:: | 74 | * Command and Function Index:: |
| 74 | * Variables Index:: | 75 | * Variables Index:: |
| 75 | @end menu | 76 | @end menu |
| @@ -949,7 +950,7 @@ Update all EUDC variables according to their local settings. | |||
| 949 | 950 | ||
| 950 | 951 | ||
| 951 | 952 | ||
| 952 | @node Credits, Command and Function Index, Usage, Top | 953 | @node Credits, GNU Free Documentation License, Usage, Top |
| 953 | @comment node-name, next, previous, up | 954 | @comment node-name, next, previous, up |
| 954 | @chapter Credits | 955 | @chapter Credits |
| 955 | 956 | ||
| @@ -959,7 +960,11 @@ same author. | |||
| 959 | Thanks to Soren Dayton for his suggestions, his enthusiasm and his help | 960 | Thanks to Soren Dayton for his suggestions, his enthusiasm and his help |
| 960 | in testing and proofreading the code and docs of @file{ph.el}. | 961 | in testing and proofreading the code and docs of @file{ph.el}. |
| 961 | 962 | ||
| 962 | @node Command and Function Index, Variables Index, Credits, Top | 963 | @node GNU Free Documentation License, Command and Function Index, Credits, Top |
| 964 | @appendix GNU Free Documentation License | ||
| 965 | @include doclicense.texi | ||
| 966 | |||
| 967 | @node Command and Function Index, Variables Index, GNU Free Documentation License, Top | ||
| 963 | @comment node-name, next, previous, up | 968 | @comment node-name, next, previous, up |
| 964 | @unnumbered Command and Function Index | 969 | @unnumbered Command and Function Index |
| 965 | 970 | ||
diff --git a/man/faq.texi b/man/faq.texi index 781d7b5ce56..787a85443fc 100644 --- a/man/faq.texi +++ b/man/faq.texi | |||
| @@ -1211,8 +1211,8 @@ indicated in the source buffer. | |||
| 1211 | @item | 1211 | @item |
| 1212 | @cindex New modes | 1212 | @cindex New modes |
| 1213 | Many new modes and packages have been included in Emacs, such as Calc, | 1213 | Many new modes and packages have been included in Emacs, such as Calc, |
| 1214 | TRAMP, URL, IDO, CUA, ERC, rcirc, Table, Tumme, SES, Ruler, Org, PGG, | 1214 | TRAMP, URL, IDO, CUA, ERC, rcirc, Table, Image-Dired, SES, Ruler, Org, |
| 1215 | Flymake, Password, Printing, Reveal, wdired, t-mouse, longlines, | 1215 | PGG, Flymake, Password, Printing, Reveal, wdired, t-mouse, longlines, |
| 1216 | savehist, Conf mode, Python mode, DNS mode, etc. | 1216 | savehist, Conf mode, Python mode, DNS mode, etc. |
| 1217 | 1217 | ||
| 1218 | @cindex Multilingual Environment | 1218 | @cindex Multilingual Environment |
diff --git a/man/files.texi b/man/files.texi index 49c310452b4..16acf241433 100644 --- a/man/files.texi +++ b/man/files.texi | |||
| @@ -1153,13 +1153,14 @@ recover are present in Emacs buffers. You should then save them. Only | |||
| 1153 | this---saving them---updates the files themselves. | 1153 | this---saving them---updates the files themselves. |
| 1154 | 1154 | ||
| 1155 | @vindex auto-save-list-file-prefix | 1155 | @vindex auto-save-list-file-prefix |
| 1156 | Emacs records interrupted sessions for later recovery in files named | 1156 | Emacs records information about interrupted sessions for later |
| 1157 | recovery in files named | ||
| 1157 | @file{~/.emacs.d/auto-save-list/.saves-@var{pid}-@var{hostname}}. All | 1158 | @file{~/.emacs.d/auto-save-list/.saves-@var{pid}-@var{hostname}}. All |
| 1158 | of this name except @file{@var{pid}-@var{hostname}} comes from the | 1159 | of this name except the @file{@var{pid}-@var{hostname}} part comes |
| 1159 | value of @code{auto-save-list-file-prefix}. You can record sessions | 1160 | from the value of @code{auto-save-list-file-prefix}. You can record |
| 1160 | in a different place by customizing that variable. If you set | 1161 | sessions in a different place by customizing that variable. If you |
| 1161 | @code{auto-save-list-file-prefix} to @code{nil} in your @file{.emacs} | 1162 | set @code{auto-save-list-file-prefix} to @code{nil} in your |
| 1162 | file, sessions are not recorded for recovery. | 1163 | @file{.emacs} file, sessions are not recorded for recovery. |
| 1163 | 1164 | ||
| 1164 | @node File Aliases | 1165 | @node File Aliases |
| 1165 | @section File Name Aliases | 1166 | @section File Name Aliases |
| @@ -2582,6 +2583,8 @@ requires the appropriate uncompression program. | |||
| 2582 | A separate but similar Archive mode is used for archives produced by | 2583 | A separate but similar Archive mode is used for archives produced by |
| 2583 | the programs @code{arc}, @code{jar}, @code{lzh}, @code{zip}, and | 2584 | the programs @code{arc}, @code{jar}, @code{lzh}, @code{zip}, and |
| 2584 | @code{zoo}, which have extensions corresponding to the program names. | 2585 | @code{zoo}, which have extensions corresponding to the program names. |
| 2586 | Archive mode also works for those @code{exe} files that are | ||
| 2587 | self-extracting executables. | ||
| 2585 | 2588 | ||
| 2586 | The key bindings of Archive mode are similar to those in Tar mode, | 2589 | The key bindings of Archive mode are similar to those in Tar mode, |
| 2587 | with the addition of the @kbd{m} key which marks a file for subsequent | 2590 | with the addition of the @kbd{m} key which marks a file for subsequent |
| @@ -2815,13 +2818,8 @@ works only when Emacs can display the specific image type. | |||
| 2815 | 2818 | ||
| 2816 | @findex thumbs-mode | 2819 | @findex thumbs-mode |
| 2817 | @findex mode, thumbs | 2820 | @findex mode, thumbs |
| 2818 | Thumbs mode is a major mode for viewing directories containing many | 2821 | See also the Image-Dired package (@pxref{Image-Dired}) for viewing |
| 2819 | image files. To use it, type @kbd{M-x thumbs} and specify the | 2822 | images as thumbnails. |
| 2820 | directory to view. The images in that directory will be displayed in | ||
| 2821 | a @samp{Thumbs} buffer as @dfn{thumbnails}; type @kbd{RET} on a | ||
| 2822 | thumbnail to view the full-size image. Thumbs mode requires the | ||
| 2823 | @file{convert} program, which is part of the ImageMagick software | ||
| 2824 | package. | ||
| 2825 | 2823 | ||
| 2826 | @node Filesets | 2824 | @node Filesets |
| 2827 | @section Filesets | 2825 | @section Filesets |
diff --git a/man/flymake.texi b/man/flymake.texi index 4d6b8303f4a..16947d7f2de 100644 --- a/man/flymake.texi +++ b/man/flymake.texi | |||
| @@ -44,6 +44,7 @@ license to the document, as described in section 6 of the license. | |||
| 44 | @author Pavel Kobiakov(@email{pk_at_work@@yahoo.com}) | 44 | @author Pavel Kobiakov(@email{pk_at_work@@yahoo.com}) |
| 45 | @page | 45 | @page |
| 46 | @vskip 0pt plus 1filll | 46 | @vskip 0pt plus 1filll |
| 47 | @insertcopying | ||
| 47 | @end titlepage | 48 | @end titlepage |
| 48 | 49 | ||
| 49 | @contents | 50 | @contents |
| @@ -59,6 +60,7 @@ license to the document, as described in section 6 of the license. | |||
| 59 | * Using Flymake:: | 60 | * Using Flymake:: |
| 60 | * Configuring Flymake:: | 61 | * Configuring Flymake:: |
| 61 | * Flymake Implementation:: | 62 | * Flymake Implementation:: |
| 63 | * GNU Free Documentation License:: | ||
| 62 | * Index:: | 64 | * Index:: |
| 63 | @end menu | 65 | @end menu |
| 64 | 66 | ||
| @@ -744,6 +746,10 @@ Flymake also provides an alternative command for starting compilation, | |||
| 744 | It just kills all the active syntax check processes before calling | 746 | It just kills all the active syntax check processes before calling |
| 745 | @code{compile}. | 747 | @code{compile}. |
| 746 | 748 | ||
| 749 | @node GNU Free Documentation License | ||
| 750 | @appendix GNU Free Documentation License | ||
| 751 | @include doclicense.texi | ||
| 752 | |||
| 747 | @node Index | 753 | @node Index |
| 748 | @unnumbered Index | 754 | @unnumbered Index |
| 749 | 755 | ||
diff --git a/man/forms.texi b/man/forms.texi index 46210dc8e41..4114453df6c 100644 --- a/man/forms.texi +++ b/man/forms.texi | |||
| @@ -53,9 +53,9 @@ license to the document, as described in section 6 of the license. | |||
| 53 | @sp 4 | 53 | @sp 4 |
| 54 | @center Forms-Mode version 2 | 54 | @center Forms-Mode version 2 |
| 55 | @sp 1 | 55 | @sp 1 |
| 56 | @center for GNU Emacs 20.1 | 56 | @center for GNU Emacs 22.1 |
| 57 | @sp 1 | 57 | @sp 1 |
| 58 | @center June 1997 | 58 | @center April 2007 |
| 59 | @sp 5 | 59 | @sp 5 |
| 60 | @center Johan Vromans | 60 | @center Johan Vromans |
| 61 | @center @i{jvromans@@squirrel.nl} | 61 | @center @i{jvromans@@squirrel.nl} |
| @@ -91,6 +91,7 @@ how to present it. | |||
| 91 | * Miscellaneous:: Forms mode messages and other remarks. | 91 | * Miscellaneous:: Forms mode messages and other remarks. |
| 92 | * Error Messages:: List of error messages forms mode can produce. | 92 | * Error Messages:: List of error messages forms mode can produce. |
| 93 | * Long Example:: A more complex control file example. | 93 | * Long Example:: A more complex control file example. |
| 94 | * GNU Free Documentation License:: The license for this documentation. | ||
| 94 | * Credits:: Thanks everyone. | 95 | * Credits:: Thanks everyone. |
| 95 | * Index:: Index to this manual. | 96 | * Index:: Index to this manual. |
| 96 | @end menu | 97 | @end menu |
| @@ -968,6 +969,10 @@ mode'' by Paul Davis at Schlumberger Cambridge Research | |||
| 968 | None of this would have been possible without GNU Emacs of the Free | 969 | None of this would have been possible without GNU Emacs of the Free |
| 969 | Software Foundation. Thanks, Richard! | 970 | Software Foundation. Thanks, Richard! |
| 970 | 971 | ||
| 972 | @node GNU Free Documentation License | ||
| 973 | @appendix GNU Free Documentation License | ||
| 974 | @include doclicense.texi | ||
| 975 | |||
| 971 | @node Index | 976 | @node Index |
| 972 | @unnumbered Index | 977 | @unnumbered Index |
| 973 | @printindex cp | 978 | @printindex cp |
diff --git a/man/frames.texi b/man/frames.texi index 965ccb0a7b0..a45b582b455 100644 --- a/man/frames.texi +++ b/man/frames.texi | |||
| @@ -515,6 +515,8 @@ frame. This runs @code{find-file-read-only-other-frame}. | |||
| 515 | 515 | ||
| 516 | @cindex default-frame-alist | 516 | @cindex default-frame-alist |
| 517 | @cindex initial-frame-alist | 517 | @cindex initial-frame-alist |
| 518 | @cindex face customization, in @file{~/.emacs} | ||
| 519 | @cindex color customization, in @file{~/.emacs} | ||
| 518 | You can control the appearance of new frames you create by setting the | 520 | You can control the appearance of new frames you create by setting the |
| 519 | frame parameters in @code{default-frame-alist}. You can use the | 521 | frame parameters in @code{default-frame-alist}. You can use the |
| 520 | variable @code{initial-frame-alist} to specify parameters that affect | 522 | variable @code{initial-frame-alist} to specify parameters that affect |
| @@ -538,6 +540,11 @@ Here's a similar example for specifying a foreground color: | |||
| 538 | (add-to-list 'default-frame-alist '(foreground-color . "blue")) | 540 | (add-to-list 'default-frame-alist '(foreground-color . "blue")) |
| 539 | @end example | 541 | @end example |
| 540 | 542 | ||
| 543 | @noindent | ||
| 544 | By putting such customizations in your @file{~/.emacs} init file, you | ||
| 545 | can control the appearance of all the frames Emacs creates, including | ||
| 546 | the initial one. | ||
| 547 | |||
| 541 | @node Frame Commands | 548 | @node Frame Commands |
| 542 | @section Frame Commands | 549 | @section Frame Commands |
| 543 | 550 | ||
| @@ -874,7 +881,7 @@ feature, use @kbd{M-x mouse-wheel-mode}. | |||
| 874 | @vindex mouse-wheel-follow-mouse | 881 | @vindex mouse-wheel-follow-mouse |
| 875 | @vindex mouse-wheel-scroll-amount | 882 | @vindex mouse-wheel-scroll-amount |
| 876 | @vindex mouse-wheel-progressive-speed | 883 | @vindex mouse-wheel-progressive-speed |
| 877 | The variables @code{mouse-wheel-follow-mouse} and | 884 | The two variables @code{mouse-wheel-follow-mouse} and |
| 878 | @code{mouse-wheel-scroll-amount} determine where and by how much | 885 | @code{mouse-wheel-scroll-amount} determine where and by how much |
| 879 | buffers are scrolled. The variable | 886 | buffers are scrolled. The variable |
| 880 | @code{mouse-wheel-progressive-speed} determines whether the scroll | 887 | @code{mouse-wheel-progressive-speed} determines whether the scroll |
diff --git a/man/glossary.texi b/man/glossary.texi index 2a55b49645b..d082e6ec077 100644 --- a/man/glossary.texi +++ b/man/glossary.texi | |||
| @@ -601,6 +601,10 @@ have. To make a character Hyper, type it while holding down the | |||
| 601 | @kbd{Hyper-} (usually written @kbd{H-} for short). @xref{User Input, | 601 | @kbd{Hyper-} (usually written @kbd{H-} for short). @xref{User Input, |
| 602 | Hyper}. | 602 | Hyper}. |
| 603 | 603 | ||
| 604 | @item Iff | ||
| 605 | ``Iff'' means ``if and only if.'' This terminology comes from | ||
| 606 | mathematics. | ||
| 607 | |||
| 604 | @item Inbox | 608 | @item Inbox |
| 605 | An inbox is a file in which mail is delivered by the operating system. | 609 | An inbox is a file in which mail is delivered by the operating system. |
| 606 | Rmail transfers mail from inboxes to Rmail files (q.v.@:) in which the | 610 | Rmail transfers mail from inboxes to Rmail files (q.v.@:) in which the |
diff --git a/man/gnu.texi b/man/gnu.texi index 3b8a8e17f0a..1cf85f41c3c 100644 --- a/man/gnu.texi +++ b/man/gnu.texi | |||
| @@ -41,10 +41,9 @@ Since that time, we have learned about certain common misunderstandings | |||
| 41 | that different wording could help avoid. Footnotes added in 1993 help | 41 | that different wording could help avoid. Footnotes added in 1993 help |
| 42 | clarify these points. | 42 | clarify these points. |
| 43 | 43 | ||
| 44 | For up-to-date information about the available GNU software, please | 44 | For up-to-date information about available GNU software, please see |
| 45 | see @uref{http://www.gnu.org}. For software tasks to work on, see | 45 | our web site, @uref{http://www.gnu.org}. For software tasks and other |
| 46 | @uref{http://savannah.gnu.org/projects/tasklist}. For other ways to | 46 | ways to contribute, see @uref{http://www.gnu.org/help}. |
| 47 | contribute, see @uref{http://www.gnu.org/help}. | ||
| 48 | @end quotation | 47 | @end quotation |
| 49 | 48 | ||
| 50 | @unnumberedsec What's GNU? Gnu's Not Unix! | 49 | @unnumberedsec What's GNU? Gnu's Not Unix! |
| @@ -503,10 +502,11 @@ The sale of teaching, hand-holding and maintenance services could also | |||
| 503 | employ programmers. | 502 | employ programmers. |
| 504 | 503 | ||
| 505 | People with new ideas could distribute programs as | 504 | People with new ideas could distribute programs as |
| 506 | freeware@footnote{Subsequently we have learned to distinguish between | 505 | freeware@footnote{Subsequently we have discovered the need to |
| 507 | "free software" and "freeware". The term "freeware" means software | 506 | distinguish between ``free software'' and ``freeware''. The term |
| 508 | you are free to redistribute, but usually you are not free to study | 507 | ``freeware'' means software you are free to redistribute, but usually |
| 509 | and change the source code, so most of it is not free software. See | 508 | you are not free to study and change the source code, so most of it is |
| 509 | not free software. See | ||
| 510 | @uref{http://www.gnu.org/philosophy/words-to-avoid.html} for more | 510 | @uref{http://www.gnu.org/philosophy/words-to-avoid.html} for more |
| 511 | explanation.}, asking for donations from satisfied users, or selling | 511 | explanation.}, asking for donations from satisfied users, or selling |
| 512 | hand-holding services. I have met people who are already working this | 512 | hand-holding services. I have met people who are already working this |
diff --git a/man/gnus.texi b/man/gnus.texi index 7e5ab5a5342..48ecd630265 100644 --- a/man/gnus.texi +++ b/man/gnus.texi | |||
| @@ -402,6 +402,7 @@ the program. | |||
| 402 | * Various:: General purpose settings. | 402 | * Various:: General purpose settings. |
| 403 | * The End:: Farewell and goodbye. | 403 | * The End:: Farewell and goodbye. |
| 404 | * Appendices:: Terminology, Emacs intro, @acronym{FAQ}, History, Internals. | 404 | * Appendices:: Terminology, Emacs intro, @acronym{FAQ}, History, Internals. |
| 405 | * GNU Free Documentation License:: The license for this documentation. | ||
| 405 | * Index:: Variable, function and concept index. | 406 | * Index:: Variable, function and concept index. |
| 406 | * Key Index:: Key Index. | 407 | * Key Index:: Key Index. |
| 407 | 408 | ||
| @@ -29028,6 +29029,10 @@ former). The manual is unambiguous, but it can be confusing. | |||
| 29028 | @page | 29029 | @page |
| 29029 | @include gnus-faq.texi | 29030 | @include gnus-faq.texi |
| 29030 | 29031 | ||
| 29032 | @node GNU Free Documentation License | ||
| 29033 | @chapter GNU Free Documentation License | ||
| 29034 | @include doclicense.texi | ||
| 29035 | |||
| 29031 | @node Index | 29036 | @node Index |
| 29032 | @chapter Index | 29037 | @chapter Index |
| 29033 | @printindex cp | 29038 | @printindex cp |
diff --git a/man/idlwave.texi b/man/idlwave.texi index 49ee0b7a110..94f59249892 100644 --- a/man/idlwave.texi +++ b/man/idlwave.texi | |||
| @@ -106,6 +106,7 @@ Interactive Data Language (IDL), and running IDL as an inferior shell. | |||
| 106 | * Configuration Examples:: The user is king | 106 | * Configuration Examples:: The user is king |
| 107 | * Windows and MacOS:: What still works, and how | 107 | * Windows and MacOS:: What still works, and how |
| 108 | * Troubleshooting:: When good computers turn bad | 108 | * Troubleshooting:: When good computers turn bad |
| 109 | * GNU Free Documentation License:: The license for this documentation. | ||
| 109 | * Index:: Fast access | 110 | * Index:: Fast access |
| 110 | 111 | ||
| 111 | @detailmenu | 112 | @detailmenu |
| @@ -4096,7 +4097,7 @@ help can skip the browser and use the HTMLHelp functionality directly. | |||
| 4096 | @html | 4097 | @html |
| 4097 | <A NAME="TROUBLE"></A> | 4098 | <A NAME="TROUBLE"></A> |
| 4098 | @end html | 4099 | @end html |
| 4099 | @node Troubleshooting, Index, Windows and MacOS, Top | 4100 | @node Troubleshooting, GNU Free Documentation License, Windows and MacOS, Top |
| 4100 | @appendix Troubleshooting | 4101 | @appendix Troubleshooting |
| 4101 | @cindex Troubleshooting | 4102 | @cindex Troubleshooting |
| 4102 | 4103 | ||
| @@ -4302,7 +4303,11 @@ IDLWAVE is @samp{fsf-compat, xemacs-base, mail-lib}. | |||
| 4302 | 4303 | ||
| 4303 | @end enumerate | 4304 | @end enumerate |
| 4304 | 4305 | ||
| 4305 | @node Index, , Troubleshooting, Top | 4306 | @node GNU Free Documentation License, Index, Troubleshooting, Top |
| 4307 | @appendix GNU Free Documentation License | ||
| 4308 | @include doclicense.texi | ||
| 4309 | |||
| 4310 | @node Index, , GNU Free Documentation License, Top | ||
| 4306 | @unnumbered Index | 4311 | @unnumbered Index |
| 4307 | @printindex cp | 4312 | @printindex cp |
| 4308 | 4313 | ||
diff --git a/man/killing.texi b/man/killing.texi index 3903db82166..b626bfab385 100644 --- a/man/killing.texi +++ b/man/killing.texi | |||
| @@ -551,13 +551,13 @@ Insert blank space to fill the space of the region-rectangle | |||
| 551 | (@code{open-rectangle}). This pushes the previous contents of the | 551 | (@code{open-rectangle}). This pushes the previous contents of the |
| 552 | region-rectangle rightward. | 552 | region-rectangle rightward. |
| 553 | @item C-x r c | 553 | @item C-x r c |
| 554 | Clear the region-rectangle by replacing its contents with spaces | 554 | Clear the region-rectangle by replacing all of its contents with spaces |
| 555 | (@code{clear-rectangle}). | 555 | (@code{clear-rectangle}). |
| 556 | @item M-x delete-whitespace-rectangle | 556 | @item M-x delete-whitespace-rectangle |
| 557 | Delete whitespace in each of the lines on the specified rectangle, | 557 | Delete whitespace in each of the lines on the specified rectangle, |
| 558 | starting from the left edge column of the rectangle. | 558 | starting from the left edge column of the rectangle. |
| 559 | @item C-x r t @var{string} @key{RET} | 559 | @item C-x r t @var{string} @key{RET} |
| 560 | Replace rectangle contents with @var{string} on each line. | 560 | Replace rectangle contents with @var{string} on each line |
| 561 | (@code{string-rectangle}). | 561 | (@code{string-rectangle}). |
| 562 | @item M-x string-insert-rectangle @key{RET} @var{string} @key{RET} | 562 | @item M-x string-insert-rectangle @key{RET} @var{string} @key{RET} |
| 563 | Insert @var{string} on each line of the rectangle. | 563 | Insert @var{string} on each line of the rectangle. |
diff --git a/man/macos.texi b/man/macos.texi index c38c03817ab..28d7f43df8e 100644 --- a/man/macos.texi +++ b/man/macos.texi | |||
| @@ -319,8 +319,9 @@ by the name: | |||
| 319 | -apple-monaco-medium-r-normal--12-*-*-*-*-*-iso10646-1 | 319 | -apple-monaco-medium-r-normal--12-*-*-*-*-*-iso10646-1 |
| 320 | @end example | 320 | @end example |
| 321 | 321 | ||
| 322 | Note that it must be specified in a format containing 14 @samp{-}s | 322 | Note that these names must be specified using a format containing all |
| 323 | (e.g., not by @samp{-apple-monaco-medium-r-normal--12-*-iso10646-1}), | 323 | 14 @samp{-}s (not by |
| 324 | @samp{-apple-monaco-medium-r-normal--12-*-iso10646-1}, for instance), | ||
| 324 | because every @acronym{ATSUI}-compatible font is a scalable one. | 325 | because every @acronym{ATSUI}-compatible font is a scalable one. |
| 325 | 326 | ||
| 326 | QuickDraw Text fonts have maker name @code{apple} and various charset | 327 | QuickDraw Text fonts have maker name @code{apple} and various charset |
| @@ -340,7 +341,7 @@ font for Latin-1 characters introduces wrong glyphs. | |||
| 340 | 341 | ||
| 341 | Native Apple Traditional Chinese, Simplified Chinese, Japanese, | 342 | Native Apple Traditional Chinese, Simplified Chinese, Japanese, |
| 342 | Korean, Central European, Cyrillic, Symbol, and Dingbats fonts have | 343 | Korean, Central European, Cyrillic, Symbol, and Dingbats fonts have |
| 343 | charsets @samp{big5-0}, @samp{gb2312.1980-0}, | 344 | the charsets @samp{big5-0}, @samp{gb2312.1980-0}, |
| 344 | @samp{jisx0208.1983-sjis} and @samp{jisx0201.1976-0}, | 345 | @samp{jisx0208.1983-sjis} and @samp{jisx0201.1976-0}, |
| 345 | @samp{ksc5601.1989-0}, @samp{mac-centraleurroman}, | 346 | @samp{ksc5601.1989-0}, @samp{mac-centraleurroman}, |
| 346 | @samp{mac-cyrillic}, @samp{mac-symbol}, and @samp{mac-dingbats}, | 347 | @samp{mac-cyrillic}, @samp{mac-symbol}, and @samp{mac-dingbats}, |
diff --git a/man/message.texi b/man/message.texi index ccf44f2bade..c843d8c58d9 100644 --- a/man/message.texi +++ b/man/message.texi | |||
| @@ -63,6 +63,7 @@ Message mode buffers. | |||
| 63 | * Variables:: Customizing the message buffers. | 63 | * Variables:: Customizing the message buffers. |
| 64 | * Compatibility:: Making Message backwards compatible. | 64 | * Compatibility:: Making Message backwards compatible. |
| 65 | * Appendices:: More technical things. | 65 | * Appendices:: More technical things. |
| 66 | * GNU Free Documentation License:: The license for this documentation. | ||
| 66 | * Index:: Variable, function and concept index. | 67 | * Index:: Variable, function and concept index. |
| 67 | * Key Index:: List of Message mode keys. | 68 | * Key Index:: List of Message mode keys. |
| 68 | @end menu | 69 | @end menu |
| @@ -2338,6 +2339,9 @@ basis of the new @code{Cc} header, except if this header is | |||
| 2338 | @end table | 2339 | @end table |
| 2339 | 2340 | ||
| 2340 | 2341 | ||
| 2342 | @node GNU Free Documentation License | ||
| 2343 | @chapter GNU Free Documentation License | ||
| 2344 | @include doclicense.texi | ||
| 2341 | 2345 | ||
| 2342 | @node Index | 2346 | @node Index |
| 2343 | @chapter Index | 2347 | @chapter Index |
diff --git a/man/misc.texi b/man/misc.texi index e3eca68532e..c4cdea4359d 100644 --- a/man/misc.texi +++ b/man/misc.texi | |||
| @@ -2177,8 +2177,9 @@ also use the command @kbd{M-x scroll-all-mode} or set the variable | |||
| 2177 | @item EDT (DEC VMS editor) | 2177 | @item EDT (DEC VMS editor) |
| 2178 | @findex edt-emulation-on | 2178 | @findex edt-emulation-on |
| 2179 | @findex edt-emulation-off | 2179 | @findex edt-emulation-off |
| 2180 | Turn on EDT emulation with @kbd{M-x edt-emulation-on}. @kbd{M-x | 2180 | Turn on EDT emulation with the command @kbd{M-x edt-emulation-on}, |
| 2181 | edt-emulation-off} restores normal Emacs command bindings. | 2181 | while @kbd{M-x edt-emulation-off} restores normal Emacs command |
| 2182 | bindings. | ||
| 2182 | 2183 | ||
| 2183 | Most of the EDT emulation commands are keypad keys, and most standard | 2184 | Most of the EDT emulation commands are keypad keys, and most standard |
| 2184 | Emacs key bindings are still available. The EDT emulation rebindings | 2185 | Emacs key bindings are still available. The EDT emulation rebindings |
| @@ -2234,7 +2235,7 @@ not use it. | |||
| 2234 | key bindings. | 2235 | key bindings. |
| 2235 | @end table | 2236 | @end table |
| 2236 | 2237 | ||
| 2237 | @node Hyperlinking, Thumbnails, Emulation, Top | 2238 | @node Hyperlinking, Dissociated Press, Emulation, Top |
| 2238 | @section Hyperlinking and Navigation Features | 2239 | @section Hyperlinking and Navigation Features |
| 2239 | 2240 | ||
| 2240 | @cindex hyperlinking | 2241 | @cindex hyperlinking |
| @@ -2400,76 +2401,7 @@ Display a menu of files and URLs mentioned in current buffer, then | |||
| 2400 | find the one you select (@code{ffap-menu}). | 2401 | find the one you select (@code{ffap-menu}). |
| 2401 | @end table | 2402 | @end table |
| 2402 | 2403 | ||
| 2403 | @node Thumbnails, Dissociated Press, Hyperlinking, Top | 2404 | @node Dissociated Press, Amusements, Hyperlinking, Top |
| 2404 | @section Viewing Images as Thumbnails | ||
| 2405 | @cindex tumme mode | ||
| 2406 | @cindex thumbnails | ||
| 2407 | |||
| 2408 | Tumme is a facility for browsing image files. It provides viewing | ||
| 2409 | the images either as thumbnails or in full size, either inside Emacs | ||
| 2410 | or through an external viewer. | ||
| 2411 | |||
| 2412 | To enter Tumme, type @kbd{M-x tumme}. It prompts for a directory; | ||
| 2413 | specify one that has images files. This creates thumbnails for all | ||
| 2414 | the images in that directory, and displays them all in the ``thumbnail | ||
| 2415 | buffer.'' This takes a long time if the directory contains many image | ||
| 2416 | files, and it asks for confirmation if the number of image files | ||
| 2417 | exceeds @code{tumme-show-all-from-dir-max-files}. | ||
| 2418 | |||
| 2419 | @kindex C-t d @r{(Tumme)} | ||
| 2420 | @findex tumme-display-thumbs | ||
| 2421 | You can also enter Tumme through Dired. Mark the image files you | ||
| 2422 | want to look at, using @kbd{m} as usual, then type @kbd{C-t d} | ||
| 2423 | (@code{tumme-display-thumbs}). This too creates and switches to | ||
| 2424 | a buffer containing thumbnails, corresponding to the marked files. | ||
| 2425 | |||
| 2426 | With point in the thumbnail buffer, type @kbd{RET} | ||
| 2427 | (@code{tumme-display-thumbnail-original-image}) to display a sized | ||
| 2428 | version of it in another window. This sizes the image to fit the | ||
| 2429 | window. Use the arrow keys to move around in the buffer. For easy | ||
| 2430 | browsing, type @kbd{SPC} (@code{tumme-display-next-thumbnail-original}) | ||
| 2431 | to advance and display the next image. Typing @kbd{DEL} | ||
| 2432 | (@code{tumme-display-previous-thumbnail-original}) backs up to the | ||
| 2433 | previous thumbnail and displays that instead. | ||
| 2434 | |||
| 2435 | @vindex tumme-external-viewer | ||
| 2436 | To view and the image in its original size, either provide a prefix | ||
| 2437 | argument (@kbd{C-u}) before pressing @kbd{RET}, or type @kbd{C-@key{RET}} | ||
| 2438 | (@code{tumme-thumbnail-display-external}) to display the image in an | ||
| 2439 | external viewer. You must first configure | ||
| 2440 | @code{tumme-external-viewer}. | ||
| 2441 | |||
| 2442 | You can delete images through Tumme also. Type @kbd{d} | ||
| 2443 | (@code{tumme-flag-thumb-original-file}) to flag the image file for | ||
| 2444 | deletion in the Dired buffer. You can also delete the thumbnail image | ||
| 2445 | from the thumbnail buffer with @kbd{C-d} (@code{tumme-delete-char}). | ||
| 2446 | |||
| 2447 | More advanced features include @dfn{image tags}, which are metadata | ||
| 2448 | used to categorize image files. The tags are stored in a plain text | ||
| 2449 | file configured by @code{tumme-db-file}. | ||
| 2450 | |||
| 2451 | To tag image files, mark them in the dired buffer (you can also mark | ||
| 2452 | files in Dired from the thumbnail buffer by typing @kbd{m}) and type | ||
| 2453 | @kbd{C-t t} (@code{tumme-tag-files}). You will be prompted for a tag. | ||
| 2454 | To mark files having a certain tag, type @kbd{C-t f} | ||
| 2455 | (@code{tumme-mark-tagged-files}). After marking image files with a | ||
| 2456 | certain tag, you can use @kbd{C-t d} to view them. | ||
| 2457 | |||
| 2458 | You can also tag a file directly from the thumbnail buffer by typing | ||
| 2459 | @kbd{t t} and you can remove a tag by typing @kbd{t r}. There is also | ||
| 2460 | a special ``tag'' called ``comment'' for each file (it is not a tag in | ||
| 2461 | the exact same sense as the other tags, it is handled slightly | ||
| 2462 | different). That is used to enter a comment or description about the | ||
| 2463 | image. You comment a file from the thumbnail buffer by typing | ||
| 2464 | @kbd{c}. You will be prompted for a comment. Type @kbd{C-t c} to add | ||
| 2465 | a comment from Dired (@code{tumme-dired-comment-files}). | ||
| 2466 | |||
| 2467 | Tumme also provides simple image manipulation. In the thumbnail | ||
| 2468 | buffer, type @kbd{L} to rotate the original image 90 degrees anti | ||
| 2469 | clockwise, and @kbd{R} to rotate it 90 degrees clockwise. This | ||
| 2470 | rotation is lossless, and uses an external utility called JpegTRAN. | ||
| 2471 | |||
| 2472 | @node Dissociated Press, Amusements, Thumbnails, Top | ||
| 2473 | @section Dissociated Press | 2405 | @section Dissociated Press |
| 2474 | 2406 | ||
| 2475 | @findex dissociated-press | 2407 | @findex dissociated-press |
diff --git a/man/mule.texi b/man/mule.texi index a812cf398b9..c71c820dc27 100644 --- a/man/mule.texi +++ b/man/mule.texi | |||
| @@ -261,6 +261,9 @@ Thai, Tibetan, Turkish, UTF-8 (for a setup which prefers Unicode | |||
| 261 | characters and files encoded in UTF-8), Ukrainian, Vietnamese, Welsh, | 261 | characters and files encoded in UTF-8), Ukrainian, Vietnamese, Welsh, |
| 262 | and Windows-1255 (for a setup which prefers Cyrillic characters and | 262 | and Windows-1255 (for a setup which prefers Cyrillic characters and |
| 263 | files encoded in Windows-1255). | 263 | files encoded in Windows-1255). |
| 264 | @tex | ||
| 265 | \hbadness=10000\par % just avoid underfull hbox warning | ||
| 266 | @end tex | ||
| 264 | @end quotation | 267 | @end quotation |
| 265 | 268 | ||
| 266 | @cindex fonts for various scripts | 269 | @cindex fonts for various scripts |
diff --git a/man/newsticker.texi b/man/newsticker.texi index 95934792a02..48d7f992667 100644 --- a/man/newsticker.texi +++ b/man/newsticker.texi | |||
| @@ -48,6 +48,7 @@ license to the document, as described in section 6 of the license. | |||
| 48 | @author @uref{http://de.geocities.com/ulf_jasper} | 48 | @author @uref{http://de.geocities.com/ulf_jasper} |
| 49 | @page | 49 | @page |
| 50 | @vskip 0pt plus 1filll | 50 | @vskip 0pt plus 1filll |
| 51 | @insertcopying | ||
| 51 | @end titlepage | 52 | @end titlepage |
| 52 | 53 | ||
| 53 | @contents | 54 | @contents |
| @@ -64,6 +65,7 @@ license to the document, as described in section 6 of the license. | |||
| 64 | * Usage:: Basic newsticker instructions. | 65 | * Usage:: Basic newsticker instructions. |
| 65 | * Configuration:: Customizable newsticker settings. | 66 | * Configuration:: Customizable newsticker settings. |
| 66 | * Remarks:: Remarks about newsticker. | 67 | * Remarks:: Remarks about newsticker. |
| 68 | * GNU Free Documentation License:: The license for this documentation. | ||
| 67 | * Index:: Variable, function, and concept index. | 69 | * Index:: Variable, function, and concept index. |
| 68 | @end menu | 70 | @end menu |
| 69 | 71 | ||
| @@ -270,7 +272,9 @@ every once in a while. | |||
| 270 | 272 | ||
| 271 | Byte-compiling newsticker.el is recommended. | 273 | Byte-compiling newsticker.el is recommended. |
| 272 | 274 | ||
| 273 | 275 | @node GNU Free Documentation License | |
| 276 | @appendix GNU Free Documentation License | ||
| 277 | @include doclicense.texi | ||
| 274 | 278 | ||
| 275 | @node Index | 279 | @node Index |
| 276 | @unnumbered Index | 280 | @unnumbered Index |
diff --git a/man/org.texi b/man/org.texi index 4b484f25409..aacc2929d13 100644 --- a/man/org.texi +++ b/man/org.texi | |||
| @@ -89,6 +89,7 @@ Software Foundation raise funds for GNU development.'' | |||
| 89 | * Miscellaneous:: All the rest which did not fit elsewhere | 89 | * Miscellaneous:: All the rest which did not fit elsewhere |
| 90 | * Extensions and Hacking:: It is possible to write add-on code | 90 | * Extensions and Hacking:: It is possible to write add-on code |
| 91 | * History and Acknowledgments:: How Org-mode came into being | 91 | * History and Acknowledgments:: How Org-mode came into being |
| 92 | * GNU Free Documentation License:: The license for this documentation. | ||
| 92 | * Index:: The fast road to specific information | 93 | * Index:: The fast road to specific information |
| 93 | * Key Index:: Key bindings and where they are described | 94 | * Key Index:: Key bindings and where they are described |
| 94 | 95 | ||
| @@ -1478,9 +1479,9 @@ described below, see @ref{Advanced features}. | |||
| 1478 | @cindex syntax, of formulas | 1479 | @cindex syntax, of formulas |
| 1479 | 1480 | ||
| 1480 | A formula can be any algebraic expression understood by the Emacs | 1481 | A formula can be any algebraic expression understood by the Emacs |
| 1481 | @file{Calc} package. Note that @file{calc} has the slightly | 1482 | @file{Calc} package. @b{Note that @file{calc} has the |
| 1482 | non-standard convention that @samp{/} has lower precedence than | 1483 | non-standard convention that @samp{/} has lower precedence than |
| 1483 | @samp{*}, so that @samp{a/b*c} is interpreted as @samp{a/(b*c)}. Before | 1484 | @samp{*}, so that @samp{a/b*c} is interpreted as @samp{a/(b*c)}.} Before |
| 1484 | evaluation by @code{calc-eval} (@pxref{Calling Calc from | 1485 | evaluation by @code{calc-eval} (@pxref{Calling Calc from |
| 1485 | Your Programs,calc-eval,Calling calc from Your Lisp Programs,calc,GNU | 1486 | Your Programs,calc-eval,Calling calc from Your Lisp Programs,calc,GNU |
| 1486 | Emacs Calc Manual}), | 1487 | Emacs Calc Manual}), |
| @@ -6416,7 +6417,7 @@ MATCH is being ignored." | |||
| 6416 | @end lisp | 6417 | @end lisp |
| 6417 | 6418 | ||
| 6418 | 6419 | ||
| 6419 | @node History and Acknowledgments, Index, Extensions and Hacking, Top | 6420 | @node History and Acknowledgments, GNU Free Documentation License, Extensions and Hacking, Top |
| 6420 | @appendix History and Acknowledgments | 6421 | @appendix History and Acknowledgments |
| 6421 | @cindex acknowledgments | 6422 | @cindex acknowledgments |
| 6422 | @cindex history | 6423 | @cindex history |
| @@ -6567,8 +6568,12 @@ work on a tty. | |||
| 6567 | and contributed various ideas and code snippets. | 6568 | and contributed various ideas and code snippets. |
| 6568 | @end itemize | 6569 | @end itemize |
| 6569 | 6570 | ||
| 6571 | @node GNU Free Documentation License, Index, History and Acknowledgments, Top | ||
| 6572 | @appendix GNU Free Documentation License | ||
| 6573 | @include doclicense.texi | ||
| 6570 | 6574 | ||
| 6571 | @node Index, Key Index, History and Acknowledgments, Top | 6575 | |
| 6576 | @node Index, Key Index, GNU Free Documentation License, Top | ||
| 6572 | @unnumbered Index | 6577 | @unnumbered Index |
| 6573 | 6578 | ||
| 6574 | @printindex cp | 6579 | @printindex cp |
diff --git a/man/pcl-cvs.texi b/man/pcl-cvs.texi index e2030c5f758..93bd54eb456 100644 --- a/man/pcl-cvs.texi +++ b/man/pcl-cvs.texi | |||
| @@ -91,6 +91,7 @@ of the various commands and major modes for further information. | |||
| 91 | * Customization:: How you can tailor PCL-CVS to suit your needs. | 91 | * Customization:: How you can tailor PCL-CVS to suit your needs. |
| 92 | * Bugs:: Bugs (known and unknown). | 92 | * Bugs:: Bugs (known and unknown). |
| 93 | 93 | ||
| 94 | * GNU Free Documentation License:: The license for this documentation. | ||
| 94 | * Function and Variable Index:: List of functions and variables. | 95 | * Function and Variable Index:: List of functions and variables. |
| 95 | * Concept Index:: List of concepts. | 96 | * Concept Index:: List of concepts. |
| 96 | * Key Index:: List of keystrokes. | 97 | * Key Index:: List of keystrokes. |
| @@ -1363,7 +1364,7 @@ Used to highlight CVS messages. | |||
| 1363 | @end table | 1364 | @end table |
| 1364 | 1365 | ||
| 1365 | 1366 | ||
| 1366 | @node Bugs, Function and Variable Index, Customization, Top | 1367 | @node Bugs, GNU Free Documentation License, Customization, Top |
| 1367 | @chapter Bugs (known and unknown) | 1368 | @chapter Bugs (known and unknown) |
| 1368 | @cindex Reporting bugs and ideas | 1369 | @cindex Reporting bugs and ideas |
| 1369 | @cindex Bugs, how to report them | 1370 | @cindex Bugs, how to report them |
| @@ -1403,7 +1404,13 @@ output of the CVS process (which should be found in the @samp{ *cvs-tmp*} | |||
| 1403 | buffer), and the versions of Emacs, PCL-CVS and CVS you are using. | 1404 | buffer), and the versions of Emacs, PCL-CVS and CVS you are using. |
| 1404 | @end table | 1405 | @end table |
| 1405 | 1406 | ||
| 1406 | @node Function and Variable Index, Concept Index, Bugs, Top | 1407 | @node GNU Free Documentation License, Function and Variable Index, Bugs, Top |
| 1408 | @appendix GNU Free Documentation License | ||
| 1409 | @include doclicense.texi | ||
| 1410 | |||
| 1411 | |||
| 1412 | |||
| 1413 | @node Function and Variable Index, Concept Index, GNU Free Documentation License, Top | ||
| 1407 | @unnumbered Function and Variable Index | 1414 | @unnumbered Function and Variable Index |
| 1408 | 1415 | ||
| 1409 | This is an index of all the functions and variables documented in this | 1416 | This is an index of all the functions and variables documented in this |
diff --git a/man/pgg.texi b/man/pgg.texi index 263169374d4..6a175db4cb9 100644 --- a/man/pgg.texi +++ b/man/pgg.texi | |||
| @@ -52,6 +52,7 @@ user interface to encrypt, decrypt, sign, and verify MIME messages. | |||
| 52 | * How to use:: Getting started quickly. | 52 | * How to use:: Getting started quickly. |
| 53 | * Architecture:: | 53 | * Architecture:: |
| 54 | * Parsing OpenPGP packets:: | 54 | * Parsing OpenPGP packets:: |
| 55 | * GNU Free Documentation License:: The license for this documentation. | ||
| 55 | * Function Index:: | 56 | * Function Index:: |
| 56 | * Variable Index:: | 57 | * Variable Index:: |
| 57 | @end menu | 58 | @end menu |
| @@ -474,12 +475,16 @@ and @var{end}. | |||
| 474 | If non-@code{nil}, don't check the checksum of the packets. | 475 | If non-@code{nil}, don't check the checksum of the packets. |
| 475 | @end defvar | 476 | @end defvar |
| 476 | 477 | ||
| 478 | @node GNU Free Documentation License | ||
| 479 | @appendix GNU Free Documentation License | ||
| 480 | @include doclicense.texi | ||
| 481 | |||
| 477 | @node Function Index | 482 | @node Function Index |
| 478 | @chapter Function Index | 483 | @unnumbered Function Index |
| 479 | @printindex fn | 484 | @printindex fn |
| 480 | 485 | ||
| 481 | @node Variable Index | 486 | @node Variable Index |
| 482 | @chapter Variable Index | 487 | @unnumbered Variable Index |
| 483 | @printindex vr | 488 | @printindex vr |
| 484 | 489 | ||
| 485 | @summarycontents | 490 | @summarycontents |
diff --git a/man/programs.texi b/man/programs.texi index 5283a1de288..2472d7daabe 100644 --- a/man/programs.texi +++ b/man/programs.texi | |||
| @@ -338,13 +338,13 @@ buffer. | |||
| 338 | 338 | ||
| 339 | @findex which-function-mode | 339 | @findex which-function-mode |
| 340 | @vindex which-func-modes | 340 | @vindex which-func-modes |
| 341 | To enable (or disable) Which Function mode, use the command @kbd{M-x | 341 | To either enable or disable Which Function mode, use the command |
| 342 | which-function-mode}. This command is global; it applies to all | 342 | @kbd{M-x which-function-mode}. This command is global; it applies to |
| 343 | buffers, both existing ones and those yet to be created. However, it | 343 | all buffers, both existing ones and those yet to be created. However, |
| 344 | takes effect only in certain major modes, those listed in the value of | 344 | it takes effect only in certain major modes, those listed in the value |
| 345 | @code{which-func-modes}. If the value is @code{t}, then Which Function | 345 | of @code{which-func-modes}. If the value is @code{t}, then Which |
| 346 | mode applies to all major modes that know how to support it---in other | 346 | Function mode applies to all major modes that know how to support |
| 347 | words, all the major modes that support Imenu. | 347 | it---in other words, all the major modes that support Imenu. |
| 348 | 348 | ||
| 349 | @node Program Indent | 349 | @node Program Indent |
| 350 | @section Indentation for Programs | 350 | @section Indentation for Programs |
diff --git a/man/rcirc.texi b/man/rcirc.texi index 7b2d6b1c945..6d5319cef4e 100644 --- a/man/rcirc.texi +++ b/man/rcirc.texi | |||
| @@ -55,6 +55,7 @@ just one other user. | |||
| 55 | * Basics:: | 55 | * Basics:: |
| 56 | * Reference:: | 56 | * Reference:: |
| 57 | * Hacking and Tweaking:: | 57 | * Hacking and Tweaking:: |
| 58 | * GNU Free Documentation License:: | ||
| 58 | * Key Index:: | 59 | * Key Index:: |
| 59 | * Variable Index:: | 60 | * Variable Index:: |
| 60 | * Index:: | 61 | * Index:: |
| @@ -589,7 +590,7 @@ activation of this mode: | |||
| 589 | (rcirc-track-minor-mode 1))) | 590 | (rcirc-track-minor-mode 1))) |
| 590 | @end example | 591 | @end example |
| 591 | 592 | ||
| 592 | @node Hacking and Tweaking, Key Index, Reference, Top | 593 | @node Hacking and Tweaking, GNU Free Documentation License, Reference, Top |
| 593 | @chapter Hacking and Tweaking | 594 | @chapter Hacking and Tweaking |
| 594 | @cindex hacking and tweaking | 595 | @cindex hacking and tweaking |
| 595 | 596 | ||
| @@ -743,7 +744,12 @@ The real answer, therefore, is a @code{/reconnect} command: | |||
| 743 | channels)))) | 744 | channels)))) |
| 744 | @end smallexample | 745 | @end smallexample |
| 745 | 746 | ||
| 746 | @node Key Index, Variable Index, Hacking and Tweaking, Top | 747 | @node GNU Free Documentation License, Key Index, Hacking and Tweaking, Top |
| 748 | @appendix GNU Free Documentation License | ||
| 749 | @include doclicense.texi | ||
| 750 | |||
| 751 | |||
| 752 | @node Key Index, Variable Index, GNU Free Documentation License, Top | ||
| 747 | @unnumbered Key Index | 753 | @unnumbered Key Index |
| 748 | @printindex ky | 754 | @printindex ky |
| 749 | 755 | ||
diff --git a/man/reftex.texi b/man/reftex.texi index 10943c9d65e..a2c0a9689b2 100644 --- a/man/reftex.texi +++ b/man/reftex.texi | |||
| @@ -116,6 +116,7 @@ needed. | |||
| 116 | * Options:: How to extend and configure RefTeX. | 116 | * Options:: How to extend and configure RefTeX. |
| 117 | * Keymaps and Hooks:: For customization. | 117 | * Keymaps and Hooks:: For customization. |
| 118 | * Changes:: A List of recent changes to RefTeX. | 118 | * Changes:: A List of recent changes to RefTeX. |
| 119 | * GNU Free Documentation License:: The license for this documentation. | ||
| 119 | 120 | ||
| 120 | The Index | 121 | The Index |
| 121 | 122 | ||
| @@ -5149,7 +5150,7 @@ their own keymaps and mode hooks. See the respective sections. There | |||
| 5149 | are many more hooks which are described in the relevant sections about | 5150 | are many more hooks which are described in the relevant sections about |
| 5150 | options for a specific part of @b{Ref@TeX{}}. | 5151 | options for a specific part of @b{Ref@TeX{}}. |
| 5151 | 5152 | ||
| 5152 | @node Changes, , Keymaps and Hooks, Top | 5153 | @node Changes, GNU Free Documentation License, Keymaps and Hooks, Top |
| 5153 | @chapter Changes | 5154 | @chapter Changes |
| 5154 | @cindex Changes | 5155 | @cindex Changes |
| 5155 | 5156 | ||
| @@ -5880,11 +5881,11 @@ new labels. | |||
| 5880 | released on 7 Jan 1997. | 5881 | released on 7 Jan 1997. |
| 5881 | @end itemize | 5882 | @end itemize |
| 5882 | 5883 | ||
| 5884 | @node GNU Free Documentation License, Index, Changes, Top | ||
| 5885 | @appendix GNU Free Documentation License | ||
| 5886 | @include doclicense.texi | ||
| 5883 | 5887 | ||
| 5884 | 5888 | @node Index, , GNU Free Documentation License, Top | |
| 5885 | |||
| 5886 | |||
| 5887 | @node Index, , , Top | ||
| 5888 | @unnumbered Index | 5889 | @unnumbered Index |
| 5889 | @printindex cp | 5890 | @printindex cp |
| 5890 | 5891 | ||
diff --git a/man/rmail.texi b/man/rmail.texi index 16ecfee9015..7c36a31ff18 100644 --- a/man/rmail.texi +++ b/man/rmail.texi | |||
| @@ -1382,9 +1382,10 @@ then Rmail will ask you for the password to use. | |||
| 1382 | Otherwise, Rmail assumes no password is required. | 1382 | Otherwise, Rmail assumes no password is required. |
| 1383 | @end enumerate | 1383 | @end enumerate |
| 1384 | 1384 | ||
| 1385 | For compatibility with previous versions, @code{rmail-pop-password} | 1385 | For compatibility with previous versions, the variables |
| 1386 | and @code{rmail-pop-password-required} may be used instead of | 1386 | @code{rmail-pop-password} and @code{rmail-pop-password-required} may |
| 1387 | @code{rmail-remote-password} and @code{rmail-remote-password-required}. | 1387 | be used instead of @code{rmail-remote-password} and |
| 1388 | @code{rmail-remote-password-required}. | ||
| 1388 | 1389 | ||
| 1389 | @vindex rmail-movemail-flags | 1390 | @vindex rmail-movemail-flags |
| 1390 | If you need to pass additional command-line flags to @code{movemail}, | 1391 | If you need to pass additional command-line flags to @code{movemail}, |
diff --git a/man/sc.texi b/man/sc.texi index d3f7264f4cc..5ac3b882ccd 100644 --- a/man/sc.texi +++ b/man/sc.texi | |||
| @@ -1,5 +1,5 @@ | |||
| 1 | \input texinfo @comment -*-texinfo-*- | 1 | \input texinfo @comment -*-texinfo-*- |
| 2 | @comment 3.47 | 2 | @comment 3.48 |
| 3 | @comment %**start of header (This is for running Texinfo on a region.) | 3 | @comment %**start of header (This is for running Texinfo on a region.) |
| 4 | @setfilename ../info/sc | 4 | @setfilename ../info/sc |
| 5 | @settitle Supercite Version 3.1 User's Manual | 5 | @settitle Supercite Version 3.1 User's Manual |
| @@ -52,8 +52,8 @@ license to the document, as described in section 6 of the license. | |||
| 52 | @sp 2 | 52 | @sp 2 |
| 53 | @center @titlefont{Supercite Version 3.1} | 53 | @center @titlefont{Supercite Version 3.1} |
| 54 | @sp 4 | 54 | @sp 4 |
| 55 | @center Manual Revision: 3.47 | 55 | @center Manual Revision: 3.48 |
| 56 | @center August 1993 | 56 | @center April 2007 |
| 57 | @sp 5 | 57 | @sp 5 |
| 58 | @center Barry A@. Warsaw | 58 | @center Barry A@. Warsaw |
| 59 | @center @t{bwarsaw@@cen.com} | 59 | @center @t{bwarsaw@@cen.com} |
| @@ -86,6 +86,7 @@ subsystems. The manual is divided into the following chapters. | |||
| 86 | * Thanks and History:: | 86 | * Thanks and History:: |
| 87 | * The Supercite Mailing List:: | 87 | * The Supercite Mailing List:: |
| 88 | 88 | ||
| 89 | * GNU Free Documentation License:: | ||
| 89 | * Concept Index:: | 90 | * Concept Index:: |
| 90 | * Command Index:: | 91 | * Command Index:: |
| 91 | * Key Index:: | 92 | * Key Index:: |
| @@ -2444,7 +2445,7 @@ for adding the magic lisp to their code to support this. | |||
| 2444 | 2445 | ||
| 2445 | All who have helped and contributed have been greatly appreciated. | 2446 | All who have helped and contributed have been greatly appreciated. |
| 2446 | 2447 | ||
| 2447 | @node The Supercite Mailing List, Concept Index, Thanks and History, Top | 2448 | @node The Supercite Mailing List, GNU Free Documentation License, Thanks and History, Top |
| 2448 | @comment node-name, next, previous, up | 2449 | @comment node-name, next, previous, up |
| 2449 | @cindex supercite mailing list address | 2450 | @cindex supercite mailing list address |
| 2450 | @cindex mailing list address | 2451 | @cindex mailing list address |
| @@ -2481,7 +2482,11 @@ will set up a mail buffer automatically with this address on the | |||
| 2481 | supercite-help@@python.org | 2482 | supercite-help@@python.org |
| 2482 | @end example | 2483 | @end example |
| 2483 | 2484 | ||
| 2484 | @node Concept Index, Command Index, The Supercite Mailing List, Top | 2485 | @node GNU Free Documentation License, Concept Index, The Supercite Mailing List, Top |
| 2486 | @appendix GNU Free Documentation License | ||
| 2487 | @include doclicense.texi | ||
| 2488 | |||
| 2489 | @node Concept Index, Command Index, GNU Free Documentation License, Top | ||
| 2485 | @comment node-name, next, previous, up | 2490 | @comment node-name, next, previous, up |
| 2486 | @unnumbered Concept Index | 2491 | @unnumbered Concept Index |
| 2487 | @printindex cp | 2492 | @printindex cp |
diff --git a/man/search.texi b/man/search.texi index 47d73bd26f6..1a8a6372ba2 100644 --- a/man/search.texi +++ b/man/search.texi | |||
| @@ -1002,6 +1002,9 @@ C-@key{SPC}} to move back there. | |||
| 1002 | A numeric argument restricts replacement to matches that are surrounded | 1002 | A numeric argument restricts replacement to matches that are surrounded |
| 1003 | by word boundaries. The argument's value doesn't matter. | 1003 | by word boundaries. The argument's value doesn't matter. |
| 1004 | 1004 | ||
| 1005 | @xref{Replacement and Case}, for details about case-sensitivity in | ||
| 1006 | replace commands. | ||
| 1007 | |||
| 1005 | What if you want to exchange @samp{x} and @samp{y}: replace every @samp{x} with a @samp{y} and vice versa? You can do it this way: | 1008 | What if you want to exchange @samp{x} and @samp{y}: replace every @samp{x} with a @samp{y} and vice versa? You can do it this way: |
| 1006 | 1009 | ||
| 1007 | @example | 1010 | @example |
| @@ -1155,9 +1158,9 @@ This command finds occurrences of @samp{foo} one by one, displays each | |||
| 1155 | occurrence and asks you whether to replace it. Aside from querying, | 1158 | occurrence and asks you whether to replace it. Aside from querying, |
| 1156 | @code{query-replace} works just like @code{replace-string}. It | 1159 | @code{query-replace} works just like @code{replace-string}. It |
| 1157 | preserves case, like @code{replace-string}, provided | 1160 | preserves case, like @code{replace-string}, provided |
| 1158 | @code{case-replace} is non-@code{nil}, as it normally is. A numeric | 1161 | @code{case-replace} is non-@code{nil}, as it normally is |
| 1159 | argument means consider only occurrences that are bounded by | 1162 | (@pxref{Replacement and Case}). A numeric argument means consider |
| 1160 | word-delimiter characters. | 1163 | only occurrences that are bounded by word-delimiter characters. |
| 1161 | 1164 | ||
| 1162 | @kindex C-M-% | 1165 | @kindex C-M-% |
| 1163 | @findex query-replace-regexp | 1166 | @findex query-replace-regexp |
diff --git a/man/sending.texi b/man/sending.texi index a130a58816a..5d6a7c83f3e 100644 --- a/man/sending.texi +++ b/man/sending.texi | |||
| @@ -240,11 +240,11 @@ yourself, Emacs puts in one for you. The variable | |||
| 240 | @item nil | 240 | @item nil |
| 241 | Use just the email address, as in @samp{king@@grassland.com}. | 241 | Use just the email address, as in @samp{king@@grassland.com}. |
| 242 | @item parens | 242 | @item parens |
| 243 | Use both email address and full name, as in @samp{king@@grassland.com (Elvis | 243 | Use both email address and full name, as in:@* |
| 244 | Parsley)}. | 244 | @samp{king@@grassland.com (Elvis Parsley)}. |
| 245 | @item angles | 245 | @item angles |
| 246 | Use both email address and full name, as in @samp{Elvis Parsley | 246 | Use both email address and full name, as in:@* |
| 247 | <king@@grassland.com>}. | 247 | @samp{Elvis Parsley <king@@grassland.com>}. |
| 248 | @item system-default | 248 | @item system-default |
| 249 | Allow the system to insert the @samp{From} field. | 249 | Allow the system to insert the @samp{From} field. |
| 250 | @end table | 250 | @end table |
diff --git a/man/ses.texi b/man/ses.texi index ff4b47f2ee4..089e13a9cc0 100644 --- a/man/ses.texi +++ b/man/ses.texi | |||
| @@ -77,6 +77,7 @@ To report bugs, send email to @email{jyavner@@member.fsf.org}. | |||
| 77 | * For Gurus:: Want to know @emph{even more}? | 77 | * For Gurus:: Want to know @emph{even more}? |
| 78 | * Index:: Concept, Function and Variable Index | 78 | * Index:: Concept, Function and Variable Index |
| 79 | * Acknowledgements:: Acknowledgements | 79 | * Acknowledgements:: Acknowledgements |
| 80 | * GNU Free Documentation License:: The license for this documentation. | ||
| 80 | @end menu | 81 | @end menu |
| 81 | 82 | ||
| 82 | @c =================================================================== | 83 | @c =================================================================== |
| @@ -929,7 +930,7 @@ cell. | |||
| 929 | 930 | ||
| 930 | @c =================================================================== | 931 | @c =================================================================== |
| 931 | 932 | ||
| 932 | @node Acknowledgements, , Index, Top | 933 | @node Acknowledgements, GNU Free Documentation License, Index, Top |
| 933 | @chapter Acknowledgements | 934 | @chapter Acknowledgements |
| 934 | 935 | ||
| 935 | Coding by: | 936 | Coding by: |
| @@ -970,6 +971,10 @@ Jean-Philippe Theberge @email{jphil@@acs.pagesjaunes.fr} | |||
| 970 | 971 | ||
| 971 | @c =================================================================== | 972 | @c =================================================================== |
| 972 | 973 | ||
| 974 | @node GNU Free Documentation License, , Acknowledgements, Top | ||
| 975 | @appendix GNU Free Documentation License | ||
| 976 | @include doclicense.texi | ||
| 977 | |||
| 973 | @bye | 978 | @bye |
| 974 | 979 | ||
| 975 | @ignore | 980 | @ignore |
diff --git a/man/sieve.texi b/man/sieve.texi index 5e11adcaac2..1030babd593 100644 --- a/man/sieve.texi +++ b/man/sieve.texi | |||
| @@ -73,6 +73,7 @@ A good online Sieve resources is @uref{http://www.cyrusoft.com/sieve/}. | |||
| 73 | * Examples :: A few Sieve code snippets. | 73 | * Examples :: A few Sieve code snippets. |
| 74 | * Manage Sieve API :: Interfacing to the Manage Sieve Protocol API. | 74 | * Manage Sieve API :: Interfacing to the Manage Sieve Protocol API. |
| 75 | * Standards:: A summary of RFCs and working documents used. | 75 | * Standards:: A summary of RFCs and working documents used. |
| 76 | * GNU Free Documentation License:: The license for this documentation. | ||
| 76 | * Index:: Function and variable index. | 77 | * Index:: Function and variable index. |
| 77 | @end menu | 78 | @end menu |
| 78 | 79 | ||
| @@ -349,9 +350,12 @@ A Protocol for Remotely Managing Sieve Scripts | |||
| 349 | 350 | ||
| 350 | @end table | 351 | @end table |
| 351 | 352 | ||
| 353 | @node GNU Free Documentation License | ||
| 354 | @appendix GNU Free Documentation License | ||
| 355 | @include doclicense.texi | ||
| 352 | 356 | ||
| 353 | @node Index | 357 | @node Index |
| 354 | @chapter Index | 358 | @unnumbered Index |
| 355 | @printindex cp | 359 | @printindex cp |
| 356 | 360 | ||
| 357 | @summarycontents | 361 | @summarycontents |
diff --git a/man/smtpmail.texi b/man/smtpmail.texi index 860e06de0e1..644cd061b74 100644 --- a/man/smtpmail.texi +++ b/man/smtpmail.texi | |||
| @@ -55,6 +55,7 @@ license to the document, as described in section 6 of the license. | |||
| 55 | * Queued delivery:: Sending mail without an internet connection. | 55 | * Queued delivery:: Sending mail without an internet connection. |
| 56 | * Server workarounds:: Mail servers with special requirements. | 56 | * Server workarounds:: Mail servers with special requirements. |
| 57 | * Debugging:: Tracking down problems. | 57 | * Debugging:: Tracking down problems. |
| 58 | * GNU Free Documentation License:: The license for this documentation. | ||
| 58 | 59 | ||
| 59 | Indices | 60 | Indices |
| 60 | 61 | ||
| @@ -403,6 +404,10 @@ cannot accept mail. | |||
| 403 | 404 | ||
| 404 | @end table | 405 | @end table |
| 405 | 406 | ||
| 407 | @node GNU Free Documentation License | ||
| 408 | @chapter GNU Free Documentation License | ||
| 409 | @include doclicense.texi | ||
| 410 | |||
| 406 | @node Index | 411 | @node Index |
| 407 | @chapter Index | 412 | @chapter Index |
| 408 | 413 | ||
diff --git a/man/speedbar.texi b/man/speedbar.texi index 42f9f3dcc48..2a05993f569 100644 --- a/man/speedbar.texi +++ b/man/speedbar.texi | |||
| @@ -82,6 +82,7 @@ on. @xref{Basic Navigation}. | |||
| 82 | * Minor Modes:: Additional minor modes such as Info and RMAIL. | 82 | * Minor Modes:: Additional minor modes such as Info and RMAIL. |
| 83 | * Customizing:: Changing speedbar behavior. | 83 | * Customizing:: Changing speedbar behavior. |
| 84 | * Extending:: Extend speedbar for your own project. | 84 | * Extending:: Extend speedbar for your own project. |
| 85 | * GNU Free Documentation License:: The license for this documentation. | ||
| 85 | * Index:: | 86 | * Index:: |
| 86 | @end menu | 87 | @end menu |
| 87 | 88 | ||
| @@ -885,7 +886,7 @@ Set this to implement your own scanning or rescan safe functions with | |||
| 885 | state data. | 886 | state data. |
| 886 | @end table | 887 | @end table |
| 887 | 888 | ||
| 888 | @node Extending, Index, Customizing, Top | 889 | @node Extending, GNU Free Documentation License, Customizing, Top |
| 889 | @comment node-name, next, previous, up | 890 | @comment node-name, next, previous, up |
| 890 | @chapter Extending | 891 | @chapter Extending |
| 891 | @cindex extending | 892 | @cindex extending |
| @@ -1241,7 +1242,12 @@ Two good values are @code{nil} and @code{statictag}. | |||
| 1241 | 1242 | ||
| 1242 | @end defun | 1243 | @end defun |
| 1243 | 1244 | ||
| 1244 | @node Index, , Extending, Top | 1245 | @node GNU Free Documentation License, Index, Extending, Top |
| 1246 | @appendix GNU Free Documentation License | ||
| 1247 | @include doclicense.texi | ||
| 1248 | |||
| 1249 | |||
| 1250 | @node Index, , GNU Free Documentation License, Top | ||
| 1245 | @comment node-name, next, previous, up | 1251 | @comment node-name, next, previous, up |
| 1246 | @unnumbered Concept Index | 1252 | @unnumbered Concept Index |
| 1247 | @printindex cp | 1253 | @printindex cp |
diff --git a/man/tramp.texi b/man/tramp.texi index 9597344ee0c..7acef2663e4 100644 --- a/man/tramp.texi +++ b/man/tramp.texi | |||
| @@ -159,6 +159,8 @@ For the developer: | |||
| 159 | * Files directories and localnames:: How file names, directories and localnames are mangled and managed. | 159 | * Files directories and localnames:: How file names, directories and localnames are mangled and managed. |
| 160 | * Issues:: Debatable Issues and What Was Decided. | 160 | * Issues:: Debatable Issues and What Was Decided. |
| 161 | 161 | ||
| 162 | * GNU Free Documentation License:: The license for this documentation. | ||
| 163 | |||
| 162 | @detailmenu | 164 | @detailmenu |
| 163 | --- The Detailed Node Listing --- | 165 | --- The Detailed Node Listing --- |
| 164 | @c | 166 | @c |
| @@ -2406,6 +2408,10 @@ for @value{emacsothername}. | |||
| 2406 | @end ifset | 2408 | @end ifset |
| 2407 | @end itemize | 2409 | @end itemize |
| 2408 | 2410 | ||
| 2411 | @node GNU Free Documentation License | ||
| 2412 | @appendix GNU Free Documentation License | ||
| 2413 | @include doclicense.texi | ||
| 2414 | |||
| 2409 | @node Concept Index | 2415 | @node Concept Index |
| 2410 | @comment node-name, next, previous, up | 2416 | @comment node-name, next, previous, up |
| 2411 | @unnumbered Concept Index | 2417 | @unnumbered Concept Index |
diff --git a/man/url.texi b/man/url.texi index aeabc435bfd..0fc6b08acdc 100644 --- a/man/url.texi +++ b/man/url.texi | |||
| @@ -74,6 +74,7 @@ License.'' | |||
| 74 | * General Facilities:: URLs can be cached, accessed via a gateway | 74 | * General Facilities:: URLs can be cached, accessed via a gateway |
| 75 | and tracked in a history list. | 75 | and tracked in a history list. |
| 76 | * Customization:: Variables you can alter. | 76 | * Customization:: Variables you can alter. |
| 77 | * GNU Free Documentation License:: The license for this documentation. | ||
| 77 | * Function Index:: | 78 | * Function Index:: |
| 78 | * Variable Index:: | 79 | * Variable Index:: |
| 79 | * Concept Index:: | 80 | * Concept Index:: |
| @@ -1176,6 +1177,10 @@ Connect directly. | |||
| 1176 | @end table | 1177 | @end table |
| 1177 | @end defopt | 1178 | @end defopt |
| 1178 | 1179 | ||
| 1180 | @node GNU Free Documentation License | ||
| 1181 | @appendix GNU Free Documentation License | ||
| 1182 | @include doclicense.texi | ||
| 1183 | |||
| 1179 | @node Function Index | 1184 | @node Function Index |
| 1180 | @unnumbered Command and Function Index | 1185 | @unnumbered Command and Function Index |
| 1181 | @printindex fn | 1186 | @printindex fn |
diff --git a/man/vip.texi b/man/vip.texi index 11c21cbdf6e..a3f4a447f82 100644 --- a/man/vip.texi +++ b/man/vip.texi | |||
| @@ -73,6 +73,8 @@ Comments and bug reports are welcome. Please send messages to | |||
| 73 | * Vi Commands:: Details of Vi commands. | 73 | * Vi Commands:: Details of Vi commands. |
| 74 | * Ex Commands:: Details of Ex commands. | 74 | * Ex Commands:: Details of Ex commands. |
| 75 | * Customization:: How to customize VIP. | 75 | * Customization:: How to customize VIP. |
| 76 | * GNU Free Documentation License:: The license for this documentation. | ||
| 77 | |||
| 76 | @end menu | 78 | @end menu |
| 77 | @iftex | 79 | @iftex |
| 78 | @unnumbered Introduction | 80 | @unnumbered Introduction |
| @@ -1935,6 +1937,11 @@ file. | |||
| 1935 | (define-key vip-command-mode-map "X" 'vip-delete-backward-char) | 1937 | (define-key vip-command-mode-map "X" 'vip-delete-backward-char) |
| 1936 | @end example | 1938 | @end example |
| 1937 | 1939 | ||
| 1940 | @node GNU Free Documentation License,,, Top | ||
| 1941 | @appendix GNU Free Documentation License | ||
| 1942 | @include doclicense.texi | ||
| 1943 | |||
| 1944 | |||
| 1938 | @unnumbered Key Index | 1945 | @unnumbered Key Index |
| 1939 | 1946 | ||
| 1940 | @printindex ky | 1947 | @printindex ky |
diff --git a/man/viper.texi b/man/viper.texi index af78bd99e47..55c97f18c9c 100644 --- a/man/viper.texi +++ b/man/viper.texi | |||
| @@ -42,7 +42,7 @@ license to the document, as described in section 6 of the license. | |||
| 42 | @titlepage | 42 | @titlepage |
| 43 | @title Viper Is a Package for Emacs Rebels | 43 | @title Viper Is a Package for Emacs Rebels |
| 44 | @subtitle a Vi emulator for Emacs | 44 | @subtitle a Vi emulator for Emacs |
| 45 | @subtitle January 2002, Viper Version 3.11.2 | 45 | @subtitle April 2007, Viper Version 3.13.1 |
| 46 | 46 | ||
| 47 | @author Michael Kifer (Viper) | 47 | @author Michael Kifer (Viper) |
| 48 | @author Aamod Sane (VIP 4.4) | 48 | @author Aamod Sane (VIP 4.4) |
| @@ -114,6 +114,8 @@ Please use the Ex command @kbd{:submitReport} for this purpose.@refill | |||
| 114 | * Concept Index:: Vi, Ex and Emacs concepts | 114 | * Concept Index:: Vi, Ex and Emacs concepts |
| 115 | 115 | ||
| 116 | * Acknowledgments:: | 116 | * Acknowledgments:: |
| 117 | * GNU Free Documentation License:: The license for this documentation. | ||
| 118 | |||
| 117 | @end menu | 119 | @end menu |
| 118 | @iftex | 120 | @iftex |
| 119 | @unnumbered Introduction | 121 | @unnumbered Introduction |
| @@ -4534,6 +4536,9 @@ whicken@@dragon.parasoft.com (Wendell Hicken), | |||
| 4534 | zapman@@cc.gatech.edu (Jason Zapman II), | 4536 | zapman@@cc.gatech.edu (Jason Zapman II), |
| 4535 | @end example | 4537 | @end example |
| 4536 | 4538 | ||
| 4539 | @node GNU Free Documentation License,,, Top | ||
| 4540 | @appendix GNU Free Documentation License | ||
| 4541 | @include doclicense.texi | ||
| 4537 | 4542 | ||
| 4538 | @node Key Index,Function Index,,Top | 4543 | @node Key Index,Function Index,,Top |
| 4539 | @comment node-name, next, previous, up | 4544 | @comment node-name, next, previous, up |
diff --git a/man/widget.texi b/man/widget.texi index 72157289524..0cf77ee4600 100644 --- a/man/widget.texi +++ b/man/widget.texi | |||
| @@ -57,6 +57,7 @@ Software Foundation raise funds for GNU development.'' | |||
| 57 | * Widget Minor Mode:: | 57 | * Widget Minor Mode:: |
| 58 | * Utilities:: | 58 | * Utilities:: |
| 59 | * Widget Wishlist:: | 59 | * Widget Wishlist:: |
| 60 | * GNU Free Documentation License:: | ||
| 60 | * Index:: | 61 | * Index:: |
| 61 | @end menu | 62 | @end menu |
| 62 | 63 | ||
| @@ -1774,7 +1775,7 @@ Get the item which @var{widget} is assumed to toggle. | |||
| 1774 | This is only meaningful for radio buttons or checkboxes in a list. | 1775 | This is only meaningful for radio buttons or checkboxes in a list. |
| 1775 | @end defun | 1776 | @end defun |
| 1776 | 1777 | ||
| 1777 | @node Widget Wishlist, Index, Utilities, Top | 1778 | @node Widget Wishlist, GNU Free Documentation License, Utilities, Top |
| 1778 | @comment node-name, next, previous, up | 1779 | @comment node-name, next, previous, up |
| 1779 | @section Wishlist | 1780 | @section Wishlist |
| 1780 | @cindex todo | 1781 | @cindex todo |
| @@ -1833,7 +1834,11 @@ See @code{TeX-printer-list} for an explanation. | |||
| 1833 | Add a @code{mailto} widget. | 1834 | Add a @code{mailto} widget. |
| 1834 | @end itemize | 1835 | @end itemize |
| 1835 | 1836 | ||
| 1836 | @node Index, , Widget Wishlist, Top | 1837 | @node GNU Free Documentation License, Index, Widget Wishlist, Top |
| 1838 | @appendix GNU Free Documentation License | ||
| 1839 | @include doclicense.texi | ||
| 1840 | |||
| 1841 | @node Index, , GNU Free Documentation License, Top | ||
| 1837 | @comment node-name, next, previous, up | 1842 | @comment node-name, next, previous, up |
| 1838 | @unnumbered Index | 1843 | @unnumbered Index |
| 1839 | 1844 | ||
diff --git a/man/woman.texi b/man/woman.texi index 575c90309ae..868bb510f50 100644 --- a/man/woman.texi +++ b/man/woman.texi | |||
| @@ -99,6 +99,7 @@ Mile End Road, London E1 4NS, UK | |||
| 99 | * Technical:: Technical Details | 99 | * Technical:: Technical Details |
| 100 | * Bugs:: Reporting Bugs | 100 | * Bugs:: Reporting Bugs |
| 101 | * Acknowledgements:: Acknowledgements | 101 | * Acknowledgements:: Acknowledgements |
| 102 | * GNU Free Documentation License:: The license for this documentation. | ||
| 102 | * Command Index:: Command Index | 103 | * Command Index:: Command Index |
| 103 | * Variable Index:: Variable Index | 104 | * Variable Index:: Variable Index |
| 104 | * Keystroke Index:: Keystroke Index | 105 | * Keystroke Index:: Keystroke Index |
| @@ -1334,7 +1335,7 @@ man source file from, but do not send it unless asked to send it. | |||
| 1334 | 1335 | ||
| 1335 | @c =================================================================== | 1336 | @c =================================================================== |
| 1336 | 1337 | ||
| 1337 | @node Acknowledgements, Command Index, Bugs, Top | 1338 | @node Acknowledgements, GNU Free Documentation License, Bugs, Top |
| 1338 | @comment node-name, next, previous, up | 1339 | @comment node-name, next, previous, up |
| 1339 | @chapter Acknowledgements | 1340 | @chapter Acknowledgements |
| 1340 | @cindex acknowledgements | 1341 | @cindex acknowledgements |
| @@ -1390,7 +1391,12 @@ Eli Zaretskii, @email{eliz@@is.elta.co.il} | |||
| 1390 | @comment END OF MANUAL TEXT | 1391 | @comment END OF MANUAL TEXT |
| 1391 | @page | 1392 | @page |
| 1392 | 1393 | ||
| 1393 | @node Command Index, Variable Index, Acknowledgements, Top | 1394 | |
| 1395 | @node GNU Free Documentation License, Command Index, Acknowledgements, Top | ||
| 1396 | @appendix GNU Free Documentation License | ||
| 1397 | @include doclicense.texi | ||
| 1398 | |||
| 1399 | @node Command Index, Variable Index, GNU Free Documentation License, Top | ||
| 1394 | @comment node-name, next, previous, up | 1400 | @comment node-name, next, previous, up |
| 1395 | @unnumbered Command Index | 1401 | @unnumbered Command Index |
| 1396 | 1402 | ||
diff --git a/man/xresources.texi b/man/xresources.texi index 45a890e7c39..c402ec89f88 100644 --- a/man/xresources.texi +++ b/man/xresources.texi | |||
| @@ -58,14 +58,15 @@ collection of related options, for one program or for several programs | |||
| 58 | (optionally even for all programs). | 58 | (optionally even for all programs). |
| 59 | 59 | ||
| 60 | @cindex Registry (MS-Windows) | 60 | @cindex Registry (MS-Windows) |
| 61 | MS-Windows systems don't support @file{~/.Xdefaults} files, but | 61 | MS-Windows systems do not support @file{~/.Xdefaults} files, so |
| 62 | Emacs compiled for Windows looks for X resources in the Windows | 62 | instead Emacs compiled for Windows looks for X resources in the |
| 63 | Registry, under the key @samp{HKEY_CURRENT_USER\SOFTWARE\GNU\Emacs} | 63 | Windows Registry, first under the key |
| 64 | and then under the key @samp{HKEY_LOCAL_MACHINE\SOFTWARE\GNU\Emacs}. | 64 | @samp{HKEY_CURRENT_USER\SOFTWARE\GNU\Emacs} and then under the key |
| 65 | The menu and scroll bars are native widgets on MS-Windows, so they are | 65 | @samp{HKEY_LOCAL_MACHINE\SOFTWARE\GNU\Emacs}. The menu and scroll |
| 66 | only customizable via the system-wide settings in the Display Control | 66 | bars are native widgets on MS-Windows, so they are only customizable |
| 67 | Panel. You can also set resources using the @samp{-xrm} command line | 67 | via the system-wide settings in the Display Control Panel. You can |
| 68 | option (see below.) | 68 | also set resources using the @samp{-xrm} command line option (see |
| 69 | below.) | ||
| 69 | 70 | ||
| 70 | @iftex | 71 | @iftex |
| 71 | Applications such as Emacs look for resources with specific names | 72 | Applications such as Emacs look for resources with specific names |
diff --git a/nt/emacs.rc b/nt/emacs.rc index 892d23df019..99427cc5742 100644 --- a/nt/emacs.rc +++ b/nt/emacs.rc | |||
| @@ -6,8 +6,8 @@ Emacs ICON icons\emacs.ico | |||
| 6 | #endif | 6 | #endif |
| 7 | 7 | ||
| 8 | VS_VERSION_INFO VERSIONINFO | 8 | VS_VERSION_INFO VERSIONINFO |
| 9 | FILEVERSION 22,0,97,0 | 9 | FILEVERSION 22,0,98,0 |
| 10 | PRODUCTVERSION 22,0,97,0 | 10 | PRODUCTVERSION 22,0,98,0 |
| 11 | FILEFLAGSMASK 0x3FL | 11 | FILEFLAGSMASK 0x3FL |
| 12 | #ifdef EMACSDEBUG | 12 | #ifdef EMACSDEBUG |
| 13 | FILEFLAGS 0x1L | 13 | FILEFLAGS 0x1L |
| @@ -24,12 +24,12 @@ BEGIN | |||
| 24 | BEGIN | 24 | BEGIN |
| 25 | VALUE "CompanyName", "Free Software Foundation\0" | 25 | VALUE "CompanyName", "Free Software Foundation\0" |
| 26 | VALUE "FileDescription", "GNU Emacs for Windows NT/95/98/2000/ME/XP\0" | 26 | VALUE "FileDescription", "GNU Emacs for Windows NT/95/98/2000/ME/XP\0" |
| 27 | VALUE "FileVersion", "22, 0, 97, 0\0" | 27 | VALUE "FileVersion", "22, 0, 98, 0\0" |
| 28 | VALUE "InternalName", "Emacs\0" | 28 | VALUE "InternalName", "Emacs\0" |
| 29 | VALUE "LegalCopyright", "Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007\0" | 29 | VALUE "LegalCopyright", "Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007\0" |
| 30 | VALUE "OriginalFilename", "emacs.exe" | 30 | VALUE "OriginalFilename", "emacs.exe" |
| 31 | VALUE "ProductName", "Emacs: The extensible self-documenting text editor\0" | 31 | VALUE "ProductName", "Emacs: The extensible self-documenting text editor\0" |
| 32 | VALUE "ProductVersion", "22, 0, 97, 0\0" | 32 | VALUE "ProductVersion", "22, 0, 98, 0\0" |
| 33 | VALUE "OLESelfRegister", "\0" | 33 | VALUE "OLESelfRegister", "\0" |
| 34 | END | 34 | END |
| 35 | END | 35 | END |
diff --git a/src/ChangeLog b/src/ChangeLog index 61e6de2c97d..e3c660dbbab 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,3 +1,86 @@ | |||
| 1 | 2007-04-24 Chong Yidong <cyd@stupidchicken.com> | ||
| 2 | |||
| 3 | * xdisp.c (redisplay_window): Use BEG_UNCHANGED and END_UNCHANGED | ||
| 4 | values of the actual window. | ||
| 5 | |||
| 6 | 2007-04-23 Richard Stallman <rms@gnu.org> | ||
| 7 | |||
| 8 | * process.c (Fstart_process): Doc fix. | ||
| 9 | |||
| 10 | 2007-04-23 Eli Zaretskii <eliz@gnu.org> | ||
| 11 | |||
| 12 | * process.c (Fstart_process): Doc fix. | ||
| 13 | |||
| 14 | 2007-04-22 Richard Stallman <rms@gnu.org> | ||
| 15 | |||
| 16 | * abbrev.c (Fdefine_abbrev): Doc fix. | ||
| 17 | |||
| 18 | * keymap.c (Fdefine_key): Minor doc fix. | ||
| 19 | |||
| 20 | 2007-04-21 Glenn Morris <rgm@gnu.org> | ||
| 21 | |||
| 22 | * keymap.c (Fdefine_key): Fix info ref in doc string. | ||
| 23 | |||
| 24 | 2007-04-20 Glenn Morris <rgm@gnu.org> | ||
| 25 | |||
| 26 | * sysdep.c (init_system_name): Don't accept localhost.localdomain. | ||
| 27 | |||
| 28 | 2007-04-19 Juanma Barranquero <lekktu@gmail.com> | ||
| 29 | |||
| 30 | * minibuf.c (Fminibuffer_contents, Fminibuffer_contents_no_properties) | ||
| 31 | (Fminibuffer_completion_contents, Fdelete_minibuffer_contents): | ||
| 32 | Doc fixes. | ||
| 33 | |||
| 34 | 2007-04-16 Chong Yidong <cyd@stupidchicken.com> | ||
| 35 | |||
| 36 | * dispnew.c (adjust_frame_glyphs_for_frame_redisplay): Set | ||
| 37 | garbaged flag in presence of window margins. | ||
| 38 | (showing_window_margins_p): New function. | ||
| 39 | |||
| 40 | * xdisp.c (cursor_row_p): Only end row on newline if it's a | ||
| 41 | display string. Suggested by Lennart Borgman. | ||
| 42 | |||
| 43 | 2007-04-16 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> | ||
| 44 | |||
| 45 | * alloc.c (mem_insert): Set min_heap_address and max_heap_address | ||
| 46 | if they are not yet initialized. | ||
| 47 | |||
| 48 | 2007-04-15 Chong Yidong <cyd@stupidchicken.com> | ||
| 49 | |||
| 50 | * xdisp.c (redisplay_window): When deciding whether or not to | ||
| 51 | recenter, don't use the reset values of BEG_UNCHANGED and | ||
| 52 | END_UNCHANGED. | ||
| 53 | |||
| 54 | 2007-04-13 Kim F. Storm <storm@cua.dk> | ||
| 55 | |||
| 56 | * buffer.c (Fkill_buffer): gcpro BUF during kill_buffer_processes | ||
| 57 | and check that buffer is still alive upon return. | ||
| 58 | |||
| 59 | 2007-04-13 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> | ||
| 60 | |||
| 61 | * macterm.c [!TARGET_API_MAC_CARBON]: Include Displays.h. | ||
| 62 | (mac_screen_config_changed): New variable. | ||
| 63 | (mac_handle_dm_notification, init_dm_notification_handler) | ||
| 64 | (mac_get_screen_info): New functions. | ||
| 65 | [MAC_OS8] (main): Call init_dm_notification_handler. | ||
| 66 | (mac_initialize) [MAC_OSX]: Likewise. | ||
| 67 | (XTread_socket): Call mac_get_screen_info if screen config changed. | ||
| 68 | (mac_initialized): Make static. | ||
| 69 | (mac_initialize_display_info): Remove function. | ||
| 70 | (mac_term_init): Call mac_get_screen_info. Add partial contents of | ||
| 71 | mac_initialize_display_info. | ||
| 72 | |||
| 73 | 2007-04-12 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> | ||
| 74 | |||
| 75 | * mac.c (xrm_get_preference_database, Fmac_get_preference) | ||
| 76 | [TARGET_API_MAC_CARBON]: Use CFPreferencesAppSynchronize. | ||
| 77 | |||
| 78 | * macterm.c [TARGET_API_MAC_CARBON] (mac_post_mouse_moved_event): | ||
| 79 | Use GetGlobalMouse instead of GetMouse and LocalToGlobal. | ||
| 80 | (mac_initialize_display_info) [MAC_OSX]: Use CGRectZero. | ||
| 81 | (mac_initialize_display_info) [!MAC_OSX]: dpyinfo->height and | ||
| 82 | dpyinfo->width are those of whole screen. | ||
| 83 | |||
| 1 | 2007-04-10 Chong Yidong <cyd@stupidchicken.com> | 84 | 2007-04-10 Chong Yidong <cyd@stupidchicken.com> |
| 2 | 85 | ||
| 3 | * xdisp.c (note_mode_line_or_margin_highlight): Don't decrement | 86 | * xdisp.c (note_mode_line_or_margin_highlight): Don't decrement |
diff --git a/src/abbrev.c b/src/abbrev.c index 8e9bd143089..cb8e334591c 100644 --- a/src/abbrev.c +++ b/src/abbrev.c | |||
| @@ -110,7 +110,7 @@ DEFUN ("clear-abbrev-table", Fclear_abbrev_table, Sclear_abbrev_table, 1, 1, 0, | |||
| 110 | 110 | ||
| 111 | DEFUN ("define-abbrev", Fdefine_abbrev, Sdefine_abbrev, 3, 6, 0, | 111 | DEFUN ("define-abbrev", Fdefine_abbrev, Sdefine_abbrev, 3, 6, 0, |
| 112 | doc: /* Define an abbrev in TABLE named NAME, to expand to EXPANSION and call HOOK. | 112 | doc: /* Define an abbrev in TABLE named NAME, to expand to EXPANSION and call HOOK. |
| 113 | NAME must be a string. | 113 | NAME must be a string, and should be lower-case. |
| 114 | EXPANSION should usually be a string. | 114 | EXPANSION should usually be a string. |
| 115 | To undefine an abbrev, define it with EXPANSION = nil. | 115 | To undefine an abbrev, define it with EXPANSION = nil. |
| 116 | If HOOK is non-nil, it should be a function of no arguments; | 116 | If HOOK is non-nil, it should be a function of no arguments; |
diff --git a/src/alloc.c b/src/alloc.c index f847b4052b7..6c757567354 100644 --- a/src/alloc.c +++ b/src/alloc.c | |||
| @@ -3572,9 +3572,9 @@ mem_insert (start, end, type) | |||
| 3572 | { | 3572 | { |
| 3573 | struct mem_node *c, *parent, *x; | 3573 | struct mem_node *c, *parent, *x; |
| 3574 | 3574 | ||
| 3575 | if (start < min_heap_address) | 3575 | if (min_heap_address == NULL || start < min_heap_address) |
| 3576 | min_heap_address = start; | 3576 | min_heap_address = start; |
| 3577 | if (end > max_heap_address) | 3577 | if (max_heap_address == NULL || end > max_heap_address) |
| 3578 | max_heap_address = end; | 3578 | max_heap_address = end; |
| 3579 | 3579 | ||
| 3580 | /* See where in the tree a node for START belongs. In this | 3580 | /* See where in the tree a node for START belongs. In this |
diff --git a/src/buffer.c b/src/buffer.c index 09166b17cfb..895bb2b32e8 100644 --- a/src/buffer.c +++ b/src/buffer.c | |||
| @@ -1459,7 +1459,16 @@ with SIGHUP. */) | |||
| 1459 | unlock_buffer (b); | 1459 | unlock_buffer (b); |
| 1460 | #endif /* CLASH_DETECTION */ | 1460 | #endif /* CLASH_DETECTION */ |
| 1461 | 1461 | ||
| 1462 | GCPRO1 (buf); | ||
| 1462 | kill_buffer_processes (buf); | 1463 | kill_buffer_processes (buf); |
| 1464 | UNGCPRO; | ||
| 1465 | |||
| 1466 | /* Killing buffer processes may run sentinels which may | ||
| 1467 | have called kill-buffer. */ | ||
| 1468 | |||
| 1469 | if (NILP (b->name)) | ||
| 1470 | return Qnil; | ||
| 1471 | |||
| 1463 | clear_charpos_cache (b); | 1472 | clear_charpos_cache (b); |
| 1464 | 1473 | ||
| 1465 | tem = Vinhibit_quit; | 1474 | tem = Vinhibit_quit; |
diff --git a/src/dispnew.c b/src/dispnew.c index 313221f43f5..c3434c915f3 100644 --- a/src/dispnew.c +++ b/src/dispnew.c | |||
| @@ -120,6 +120,7 @@ struct dim | |||
| 120 | 120 | ||
| 121 | static struct glyph_matrix *save_current_matrix P_ ((struct frame *)); | 121 | static struct glyph_matrix *save_current_matrix P_ ((struct frame *)); |
| 122 | static void restore_current_matrix P_ ((struct frame *, struct glyph_matrix *)); | 122 | static void restore_current_matrix P_ ((struct frame *, struct glyph_matrix *)); |
| 123 | static int showing_window_margins_p P_ ((struct window *)); | ||
| 123 | static void fake_current_matrices P_ ((Lisp_Object)); | 124 | static void fake_current_matrices P_ ((Lisp_Object)); |
| 124 | static void redraw_overlapping_rows P_ ((struct window *, int)); | 125 | static void redraw_overlapping_rows P_ ((struct window *, int)); |
| 125 | static void redraw_overlapped_rows P_ ((struct window *, int)); | 126 | static void redraw_overlapped_rows P_ ((struct window *, int)); |
| @@ -2164,6 +2165,33 @@ adjust_frame_glyphs (f) | |||
| 2164 | f->glyphs_initialized_p = 1; | 2165 | f->glyphs_initialized_p = 1; |
| 2165 | } | 2166 | } |
| 2166 | 2167 | ||
| 2168 | /* Return 1 if any window in the tree has nonzero window margins. See | ||
| 2169 | the hack at the end of adjust_frame_glyphs_for_frame_redisplay. */ | ||
| 2170 | static int | ||
| 2171 | showing_window_margins_p (w) | ||
| 2172 | struct window *w; | ||
| 2173 | { | ||
| 2174 | while (w) | ||
| 2175 | { | ||
| 2176 | if (!NILP (w->hchild)) | ||
| 2177 | { | ||
| 2178 | if (showing_window_margins_p (XWINDOW (w->hchild))) | ||
| 2179 | return 1; | ||
| 2180 | } | ||
| 2181 | else if (!NILP (w->vchild)) | ||
| 2182 | { | ||
| 2183 | if (showing_window_margins_p (XWINDOW (w->vchild))) | ||
| 2184 | return 1; | ||
| 2185 | } | ||
| 2186 | else if (!NILP (w->left_margin_cols) | ||
| 2187 | || !NILP (w->right_margin_cols)) | ||
| 2188 | return 1; | ||
| 2189 | |||
| 2190 | w = NILP (w->next) ? 0 : XWINDOW (w->next); | ||
| 2191 | } | ||
| 2192 | return 0; | ||
| 2193 | } | ||
| 2194 | |||
| 2167 | 2195 | ||
| 2168 | /* In the window tree with root W, build current matrices of leaf | 2196 | /* In the window tree with root W, build current matrices of leaf |
| 2169 | windows from the frame's current matrix. */ | 2197 | windows from the frame's current matrix. */ |
| @@ -2351,7 +2379,12 @@ adjust_frame_glyphs_for_frame_redisplay (f) | |||
| 2351 | if (display_completed | 2379 | if (display_completed |
| 2352 | && !FRAME_GARBAGED_P (f) | 2380 | && !FRAME_GARBAGED_P (f) |
| 2353 | && matrix_dim.width == f->current_matrix->matrix_w | 2381 | && matrix_dim.width == f->current_matrix->matrix_w |
| 2354 | && matrix_dim.height == f->current_matrix->matrix_h) | 2382 | && matrix_dim.height == f->current_matrix->matrix_h |
| 2383 | /* For some reason, the frame glyph matrix gets corrupted if | ||
| 2384 | any of the windows contain margins. I haven't been able | ||
| 2385 | to hunt down the reason, but for the moment this prevents | ||
| 2386 | the problem from manifesting. -- cyd */ | ||
| 2387 | && !showing_window_margins_p (XWINDOW (FRAME_ROOT_WINDOW (f)))) | ||
| 2355 | { | 2388 | { |
| 2356 | struct glyph_matrix *copy = save_current_matrix (f); | 2389 | struct glyph_matrix *copy = save_current_matrix (f); |
| 2357 | adjust_glyph_matrix (NULL, f->desired_matrix, 0, 0, matrix_dim); | 2390 | adjust_glyph_matrix (NULL, f->desired_matrix, 0, 0, matrix_dim); |
diff --git a/src/keymap.c b/src/keymap.c index d953df008d7..4a5c53ca626 100644 --- a/src/keymap.c +++ b/src/keymap.c | |||
| @@ -1148,7 +1148,8 @@ DEF is anything that can be a key's definition: | |||
| 1148 | a cons (STRING . DEFN), meaning that DEFN is the definition | 1148 | a cons (STRING . DEFN), meaning that DEFN is the definition |
| 1149 | (DEFN should be a valid definition in its own right), | 1149 | (DEFN should be a valid definition in its own right), |
| 1150 | or a cons (MAP . CHAR), meaning use definition of CHAR in keymap MAP, | 1150 | or a cons (MAP . CHAR), meaning use definition of CHAR in keymap MAP, |
| 1151 | or an extended menu item definition. (See info node `Extended Menu Items'.) | 1151 | or an extended menu item definition. |
| 1152 | (See info node `(elisp)Extended Menu Items'.) | ||
| 1152 | 1153 | ||
| 1153 | If KEYMAP is a sparse keymap with a binding for KEY, the existing | 1154 | If KEYMAP is a sparse keymap with a binding for KEY, the existing |
| 1154 | binding is altered. If there is no binding for KEY, the new pair | 1155 | binding is altered. If there is no binding for KEY, the new pair |
| @@ -1835,6 +1835,8 @@ xrm_get_preference_database (application) | |||
| 1835 | if (app_id == NULL) | 1835 | if (app_id == NULL) |
| 1836 | goto out; | 1836 | goto out; |
| 1837 | } | 1837 | } |
| 1838 | if (!CFPreferencesAppSynchronize (app_id)) | ||
| 1839 | goto out; | ||
| 1838 | 1840 | ||
| 1839 | key_set = CFSetCreateMutable (NULL, 0, &kCFCopyStringSetCallBacks); | 1841 | key_set = CFSetCreateMutable (NULL, 0, &kCFCopyStringSetCallBacks); |
| 1840 | if (key_set == NULL) | 1842 | if (key_set == NULL) |
| @@ -4650,6 +4652,9 @@ otherwise. */) | |||
| 4650 | if (app_id == NULL) | 4652 | if (app_id == NULL) |
| 4651 | goto out; | 4653 | goto out; |
| 4652 | } | 4654 | } |
| 4655 | if (!CFPreferencesAppSynchronize (app_id)) | ||
| 4656 | goto out; | ||
| 4657 | |||
| 4653 | key_str = cfstring_create_with_string (XCAR (key)); | 4658 | key_str = cfstring_create_with_string (XCAR (key)); |
| 4654 | if (key_str == NULL) | 4659 | if (key_str == NULL) |
| 4655 | goto out; | 4660 | goto out; |
| @@ -4986,7 +4991,7 @@ extern int noninteractive; | |||
| 4986 | 3. [If SELECT_USE_CFSOCKET is set] | 4991 | 3. [If SELECT_USE_CFSOCKET is set] |
| 4987 | Only the window event channel and socket read/write channels are | 4992 | Only the window event channel and socket read/write channels are |
| 4988 | involved, and timeout is not too short (greater than | 4993 | involved, and timeout is not too short (greater than |
| 4989 | SELECT_TIMEOUT_THRESHHOLD_RUNLOOP seconds). | 4994 | SELECT_TIMEOUT_THRESHOLD_RUNLOOP seconds). |
| 4990 | -> Create CFSocket for each socket and add it into the current | 4995 | -> Create CFSocket for each socket and add it into the current |
| 4991 | event RunLoop so that the current event loop gets quit when | 4996 | event RunLoop so that the current event loop gets quit when |
| 4992 | the socket becomes ready. Then ReceiveNextEvent can wait for | 4997 | the socket becomes ready. Then ReceiveNextEvent can wait for |
diff --git a/src/macterm.c b/src/macterm.c index 596d74cddd9..df0275fe22b 100644 --- a/src/macterm.c +++ b/src/macterm.c | |||
| @@ -52,6 +52,7 @@ Boston, MA 02110-1301, USA. */ | |||
| 52 | #include <LowMem.h> | 52 | #include <LowMem.h> |
| 53 | #include <Controls.h> | 53 | #include <Controls.h> |
| 54 | #include <Windows.h> | 54 | #include <Windows.h> |
| 55 | #include <Displays.h> | ||
| 55 | #if defined (__MRC__) || (__MSL__ >= 0x6000) | 56 | #if defined (__MRC__) || (__MSL__ >= 0x6000) |
| 56 | #include <ControlDefinitions.h> | 57 | #include <ControlDefinitions.h> |
| 57 | #endif | 58 | #endif |
| @@ -8890,6 +8891,9 @@ int mac_pass_control_to_system; | |||
| 8890 | Carbon/Apple event handlers. */ | 8891 | Carbon/Apple event handlers. */ |
| 8891 | static struct input_event *read_socket_inev = NULL; | 8892 | static struct input_event *read_socket_inev = NULL; |
| 8892 | 8893 | ||
| 8894 | /* Whether or not the screen configuration has changed. */ | ||
| 8895 | static int mac_screen_config_changed = 0; | ||
| 8896 | |||
| 8893 | Point saved_menu_event_location; | 8897 | Point saved_menu_event_location; |
| 8894 | 8898 | ||
| 8895 | /* Apple Events */ | 8899 | /* Apple Events */ |
| @@ -10420,6 +10424,87 @@ remove_window_handler (window) | |||
| 10420 | } | 10424 | } |
| 10421 | 10425 | ||
| 10422 | 10426 | ||
| 10427 | static pascal void | ||
| 10428 | mac_handle_dm_notification (event) | ||
| 10429 | AppleEvent *event; | ||
| 10430 | { | ||
| 10431 | mac_screen_config_changed = 1; | ||
| 10432 | } | ||
| 10433 | |||
| 10434 | static OSErr | ||
| 10435 | init_dm_notification_handler () | ||
| 10436 | { | ||
| 10437 | OSErr err; | ||
| 10438 | static DMNotificationUPP handle_dm_notificationUPP = NULL; | ||
| 10439 | ProcessSerialNumber psn; | ||
| 10440 | |||
| 10441 | if (handle_dm_notificationUPP == NULL) | ||
| 10442 | handle_dm_notificationUPP = | ||
| 10443 | NewDMNotificationUPP (mac_handle_dm_notification); | ||
| 10444 | |||
| 10445 | err = GetCurrentProcess (&psn); | ||
| 10446 | if (err == noErr) | ||
| 10447 | err = DMRegisterNotifyProc (handle_dm_notificationUPP, &psn); | ||
| 10448 | |||
| 10449 | return err; | ||
| 10450 | } | ||
| 10451 | |||
| 10452 | static void | ||
| 10453 | mac_get_screen_info (dpyinfo) | ||
| 10454 | struct mac_display_info *dpyinfo; | ||
| 10455 | { | ||
| 10456 | #ifdef MAC_OSX | ||
| 10457 | /* HasDepth returns true if it is possible to have a 32 bit display, | ||
| 10458 | but this may not be what is actually used. Mac OSX can do better. */ | ||
| 10459 | dpyinfo->color_p = CGDisplaySamplesPerPixel (kCGDirectMainDisplay) > 1; | ||
| 10460 | dpyinfo->n_planes = CGDisplayBitsPerPixel (kCGDirectMainDisplay); | ||
| 10461 | { | ||
| 10462 | CGDisplayErr err; | ||
| 10463 | CGDisplayCount ndisps; | ||
| 10464 | CGDirectDisplayID *displays; | ||
| 10465 | |||
| 10466 | err = CGGetActiveDisplayList (0, NULL, &ndisps); | ||
| 10467 | if (err == noErr) | ||
| 10468 | { | ||
| 10469 | displays = alloca (sizeof (CGDirectDisplayID) * ndisps); | ||
| 10470 | err = CGGetActiveDisplayList (ndisps, displays, &ndisps); | ||
| 10471 | } | ||
| 10472 | if (err == noErr) | ||
| 10473 | { | ||
| 10474 | CGRect bounds = CGRectZero; | ||
| 10475 | |||
| 10476 | while (ndisps-- > 0) | ||
| 10477 | bounds = CGRectUnion (bounds, CGDisplayBounds (displays[ndisps])); | ||
| 10478 | dpyinfo->height = CGRectGetHeight (bounds); | ||
| 10479 | dpyinfo->width = CGRectGetWidth (bounds); | ||
| 10480 | } | ||
| 10481 | else | ||
| 10482 | { | ||
| 10483 | dpyinfo->height = CGDisplayPixelsHigh (kCGDirectMainDisplay); | ||
| 10484 | dpyinfo->width = CGDisplayPixelsWide (kCGDirectMainDisplay); | ||
| 10485 | } | ||
| 10486 | } | ||
| 10487 | #else /* !MAC_OSX */ | ||
| 10488 | { | ||
| 10489 | GDHandle gdh = GetMainDevice (); | ||
| 10490 | Rect rect = (**gdh).gdRect; | ||
| 10491 | |||
| 10492 | dpyinfo->color_p = TestDeviceAttribute (gdh, gdDevType); | ||
| 10493 | for (dpyinfo->n_planes = 32; dpyinfo->n_planes > 0; dpyinfo->n_planes >>= 1) | ||
| 10494 | if (HasDepth (gdh, dpyinfo->n_planes, gdDevType, dpyinfo->color_p)) | ||
| 10495 | break; | ||
| 10496 | |||
| 10497 | for (gdh = DMGetFirstScreenDevice (dmOnlyActiveDisplays); gdh; | ||
| 10498 | gdh = DMGetNextScreenDevice (gdh, dmOnlyActiveDisplays)) | ||
| 10499 | UnionRect (&rect, &(**gdh).gdRect, &rect); | ||
| 10500 | |||
| 10501 | dpyinfo->height = rect.bottom - rect.top; | ||
| 10502 | dpyinfo->width = rect.right - rect.left; | ||
| 10503 | } | ||
| 10504 | #endif /* !MAC_OSX */ | ||
| 10505 | } | ||
| 10506 | |||
| 10507 | |||
| 10423 | #if __profile__ | 10508 | #if __profile__ |
| 10424 | void | 10509 | void |
| 10425 | profiler_exit_proc () | 10510 | profiler_exit_proc () |
| @@ -10477,6 +10562,8 @@ main (void) | |||
| 10477 | 10562 | ||
| 10478 | init_apple_event_handler (); | 10563 | init_apple_event_handler (); |
| 10479 | 10564 | ||
| 10565 | init_dm_notification_handler (); | ||
| 10566 | |||
| 10480 | { | 10567 | { |
| 10481 | char **argv; | 10568 | char **argv; |
| 10482 | int argc = 0; | 10569 | int argc = 0; |
| @@ -10554,8 +10641,7 @@ mac_post_mouse_moved_event () | |||
| 10554 | { | 10641 | { |
| 10555 | Point mouse_pos; | 10642 | Point mouse_pos; |
| 10556 | 10643 | ||
| 10557 | GetMouse (&mouse_pos); | 10644 | GetGlobalMouse (&mouse_pos); |
| 10558 | LocalToGlobal (&mouse_pos); | ||
| 10559 | err = SetEventParameter (event, kEventParamMouseLocation, typeQDPoint, | 10645 | err = SetEventParameter (event, kEventParamMouseLocation, typeQDPoint, |
| 10560 | sizeof (Point), &mouse_pos); | 10646 | sizeof (Point), &mouse_pos); |
| 10561 | } | 10647 | } |
| @@ -11375,6 +11461,12 @@ XTread_socket (sd, expected, hold_quit) | |||
| 11375 | pending_autoraise_frame = 0; | 11461 | pending_autoraise_frame = 0; |
| 11376 | } | 11462 | } |
| 11377 | 11463 | ||
| 11464 | if (mac_screen_config_changed) | ||
| 11465 | { | ||
| 11466 | mac_get_screen_info (dpyinfo); | ||
| 11467 | mac_screen_config_changed = 0; | ||
| 11468 | } | ||
| 11469 | |||
| 11378 | #if !USE_CARBON_EVENTS | 11470 | #if !USE_CARBON_EVENTS |
| 11379 | /* Check which frames are still visible. We do this here because | 11471 | /* Check which frames are still visible. We do this here because |
| 11380 | there doesn't seem to be any direct notification from the Window | 11472 | there doesn't seem to be any direct notification from the Window |
| @@ -11509,86 +11601,7 @@ make_mac_terminal_frame (struct frame *f) | |||
| 11509 | Initialization | 11601 | Initialization |
| 11510 | ***********************************************************************/ | 11602 | ***********************************************************************/ |
| 11511 | 11603 | ||
| 11512 | int mac_initialized = 0; | 11604 | static int mac_initialized = 0; |
| 11513 | |||
| 11514 | void | ||
| 11515 | mac_initialize_display_info () | ||
| 11516 | { | ||
| 11517 | struct mac_display_info *dpyinfo = &one_mac_display_info; | ||
| 11518 | |||
| 11519 | bzero (dpyinfo, sizeof (*dpyinfo)); | ||
| 11520 | |||
| 11521 | #ifdef MAC_OSX | ||
| 11522 | dpyinfo->mac_id_name | ||
| 11523 | = (char *) xmalloc (SCHARS (Vinvocation_name) | ||
| 11524 | + SCHARS (Vsystem_name) | ||
| 11525 | + 2); | ||
| 11526 | sprintf (dpyinfo->mac_id_name, "%s@%s", | ||
| 11527 | SDATA (Vinvocation_name), SDATA (Vsystem_name)); | ||
| 11528 | #else | ||
| 11529 | dpyinfo->mac_id_name = (char *) xmalloc (strlen ("Mac Display") + 1); | ||
| 11530 | strcpy (dpyinfo->mac_id_name, "Mac Display"); | ||
| 11531 | #endif | ||
| 11532 | |||
| 11533 | dpyinfo->reference_count = 0; | ||
| 11534 | dpyinfo->resx = 72.0; | ||
| 11535 | dpyinfo->resy = 72.0; | ||
| 11536 | #ifdef MAC_OSX | ||
| 11537 | /* HasDepth returns true if it is possible to have a 32 bit display, | ||
| 11538 | but this may not be what is actually used. Mac OSX can do better. */ | ||
| 11539 | dpyinfo->color_p = CGDisplaySamplesPerPixel (kCGDirectMainDisplay) > 1; | ||
| 11540 | dpyinfo->n_planes = CGDisplayBitsPerPixel (kCGDirectMainDisplay); | ||
| 11541 | { | ||
| 11542 | CGDisplayErr err; | ||
| 11543 | CGDisplayCount ndisps; | ||
| 11544 | CGDirectDisplayID *displays; | ||
| 11545 | |||
| 11546 | err = CGGetActiveDisplayList (0, NULL, &ndisps); | ||
| 11547 | if (err == noErr) | ||
| 11548 | { | ||
| 11549 | displays = alloca (sizeof (CGDirectDisplayID) * ndisps); | ||
| 11550 | err = CGGetActiveDisplayList (ndisps, displays, &ndisps); | ||
| 11551 | } | ||
| 11552 | if (err == noErr) | ||
| 11553 | { | ||
| 11554 | CGRect bounds = CGRectMake (0, 0, 0, 0); | ||
| 11555 | |||
| 11556 | while (ndisps-- > 0) | ||
| 11557 | bounds = CGRectUnion (bounds, CGDisplayBounds (displays[ndisps])); | ||
| 11558 | dpyinfo->height = CGRectGetHeight (bounds); | ||
| 11559 | dpyinfo->width = CGRectGetWidth (bounds); | ||
| 11560 | } | ||
| 11561 | else | ||
| 11562 | { | ||
| 11563 | dpyinfo->height = CGDisplayPixelsHigh (kCGDirectMainDisplay); | ||
| 11564 | dpyinfo->width = CGDisplayPixelsWide (kCGDirectMainDisplay); | ||
| 11565 | } | ||
| 11566 | } | ||
| 11567 | #else | ||
| 11568 | { | ||
| 11569 | GDHandle main_device_handle = LMGetMainDevice(); | ||
| 11570 | |||
| 11571 | dpyinfo->color_p = TestDeviceAttribute (main_device_handle, gdDevType); | ||
| 11572 | for (dpyinfo->n_planes = 32; dpyinfo->n_planes > 0; dpyinfo->n_planes >>= 1) | ||
| 11573 | if (HasDepth (main_device_handle, dpyinfo->n_planes, | ||
| 11574 | gdDevType, dpyinfo->color_p)) | ||
| 11575 | break; | ||
| 11576 | dpyinfo->height = (**main_device_handle).gdRect.bottom; | ||
| 11577 | dpyinfo->width = (**main_device_handle).gdRect.right; | ||
| 11578 | } | ||
| 11579 | #endif | ||
| 11580 | dpyinfo->grabbed = 0; | ||
| 11581 | dpyinfo->root_window = NULL; | ||
| 11582 | dpyinfo->image_cache = make_image_cache (); | ||
| 11583 | |||
| 11584 | dpyinfo->mouse_face_beg_row = dpyinfo->mouse_face_beg_col = -1; | ||
| 11585 | dpyinfo->mouse_face_end_row = dpyinfo->mouse_face_end_col = -1; | ||
| 11586 | dpyinfo->mouse_face_face_id = DEFAULT_FACE_ID; | ||
| 11587 | dpyinfo->mouse_face_window = Qnil; | ||
| 11588 | dpyinfo->mouse_face_overlay = Qnil; | ||
| 11589 | dpyinfo->mouse_face_hidden = 0; | ||
| 11590 | } | ||
| 11591 | |||
| 11592 | 11605 | ||
| 11593 | static XrmDatabase | 11606 | static XrmDatabase |
| 11594 | mac_make_rdb (xrm_option) | 11607 | mac_make_rdb (xrm_option) |
| @@ -11622,9 +11635,37 @@ mac_term_init (display_name, xrm_option, resource_name) | |||
| 11622 | if (x_display_list) | 11635 | if (x_display_list) |
| 11623 | error ("Sorry, this version can only handle one display"); | 11636 | error ("Sorry, this version can only handle one display"); |
| 11624 | 11637 | ||
| 11625 | mac_initialize_display_info (); | ||
| 11626 | |||
| 11627 | dpyinfo = &one_mac_display_info; | 11638 | dpyinfo = &one_mac_display_info; |
| 11639 | bzero (dpyinfo, sizeof (*dpyinfo)); | ||
| 11640 | |||
| 11641 | #ifdef MAC_OSX | ||
| 11642 | dpyinfo->mac_id_name | ||
| 11643 | = (char *) xmalloc (SCHARS (Vinvocation_name) | ||
| 11644 | + SCHARS (Vsystem_name) | ||
| 11645 | + 2); | ||
| 11646 | sprintf (dpyinfo->mac_id_name, "%s@%s", | ||
| 11647 | SDATA (Vinvocation_name), SDATA (Vsystem_name)); | ||
| 11648 | #else | ||
| 11649 | dpyinfo->mac_id_name = (char *) xmalloc (strlen ("Mac Display") + 1); | ||
| 11650 | strcpy (dpyinfo->mac_id_name, "Mac Display"); | ||
| 11651 | #endif | ||
| 11652 | |||
| 11653 | dpyinfo->reference_count = 0; | ||
| 11654 | dpyinfo->resx = 72.0; | ||
| 11655 | dpyinfo->resy = 72.0; | ||
| 11656 | |||
| 11657 | mac_get_screen_info (dpyinfo); | ||
| 11658 | |||
| 11659 | dpyinfo->grabbed = 0; | ||
| 11660 | dpyinfo->root_window = NULL; | ||
| 11661 | dpyinfo->image_cache = make_image_cache (); | ||
| 11662 | |||
| 11663 | dpyinfo->mouse_face_beg_row = dpyinfo->mouse_face_beg_col = -1; | ||
| 11664 | dpyinfo->mouse_face_end_row = dpyinfo->mouse_face_end_col = -1; | ||
| 11665 | dpyinfo->mouse_face_face_id = DEFAULT_FACE_ID; | ||
| 11666 | dpyinfo->mouse_face_window = Qnil; | ||
| 11667 | dpyinfo->mouse_face_overlay = Qnil; | ||
| 11668 | dpyinfo->mouse_face_hidden = 0; | ||
| 11628 | 11669 | ||
| 11629 | dpyinfo->xrdb = mac_make_rdb (xrm_option); | 11670 | dpyinfo->xrdb = mac_make_rdb (xrm_option); |
| 11630 | 11671 | ||
| @@ -11642,6 +11683,7 @@ mac_term_init (display_name, xrm_option, resource_name) | |||
| 11642 | 11683 | ||
| 11643 | return dpyinfo; | 11684 | return dpyinfo; |
| 11644 | } | 11685 | } |
| 11686 | |||
| 11645 | /* Get rid of display DPYINFO, assuming all frames are already gone. */ | 11687 | /* Get rid of display DPYINFO, assuming all frames are already gone. */ |
| 11646 | 11688 | ||
| 11647 | void | 11689 | void |
| @@ -11861,6 +11903,8 @@ mac_initialize () | |||
| 11861 | 11903 | ||
| 11862 | init_apple_event_handler (); | 11904 | init_apple_event_handler (); |
| 11863 | 11905 | ||
| 11906 | init_dm_notification_handler (); | ||
| 11907 | |||
| 11864 | if (!inhibit_window_system) | 11908 | if (!inhibit_window_system) |
| 11865 | { | 11909 | { |
| 11866 | static const ProcessSerialNumber psn = {0, kCurrentProcess}; | 11910 | static const ProcessSerialNumber psn = {0, kCurrentProcess}; |
diff --git a/src/minibuf.c b/src/minibuf.c index 50f48c2344f..6c6fa7451fc 100644 --- a/src/minibuf.c +++ b/src/minibuf.c | |||
| @@ -386,7 +386,7 @@ Return (point-min) if current buffer is not a minibuffer. */) | |||
| 386 | DEFUN ("minibuffer-contents", Fminibuffer_contents, | 386 | DEFUN ("minibuffer-contents", Fminibuffer_contents, |
| 387 | Sminibuffer_contents, 0, 0, 0, | 387 | Sminibuffer_contents, 0, 0, 0, |
| 388 | doc: /* Return the user input in a minibuffer as a string. | 388 | doc: /* Return the user input in a minibuffer as a string. |
| 389 | The current buffer must be a minibuffer. */) | 389 | If the current buffer is not a minibuffer, return its entire contents. */) |
| 390 | () | 390 | () |
| 391 | { | 391 | { |
| 392 | int prompt_end = XINT (Fminibuffer_prompt_end ()); | 392 | int prompt_end = XINT (Fminibuffer_prompt_end ()); |
| @@ -396,7 +396,7 @@ The current buffer must be a minibuffer. */) | |||
| 396 | DEFUN ("minibuffer-contents-no-properties", Fminibuffer_contents_no_properties, | 396 | DEFUN ("minibuffer-contents-no-properties", Fminibuffer_contents_no_properties, |
| 397 | Sminibuffer_contents_no_properties, 0, 0, 0, | 397 | Sminibuffer_contents_no_properties, 0, 0, 0, |
| 398 | doc: /* Return the user input in a minibuffer as a string, without text-properties. | 398 | doc: /* Return the user input in a minibuffer as a string, without text-properties. |
| 399 | The current buffer must be a minibuffer. */) | 399 | If the current buffer is not a minibuffer, return its entire contents. */) |
| 400 | () | 400 | () |
| 401 | { | 401 | { |
| 402 | int prompt_end = XINT (Fminibuffer_prompt_end ()); | 402 | int prompt_end = XINT (Fminibuffer_prompt_end ()); |
| @@ -407,7 +407,7 @@ DEFUN ("minibuffer-completion-contents", Fminibuffer_completion_contents, | |||
| 407 | Sminibuffer_completion_contents, 0, 0, 0, | 407 | Sminibuffer_completion_contents, 0, 0, 0, |
| 408 | doc: /* Return the user input in a minibuffer before point as a string. | 408 | doc: /* Return the user input in a minibuffer before point as a string. |
| 409 | That is what completion commands operate on. | 409 | That is what completion commands operate on. |
| 410 | The current buffer must be a minibuffer. */) | 410 | If the current buffer is not a minibuffer, return its entire contents. */) |
| 411 | () | 411 | () |
| 412 | { | 412 | { |
| 413 | int prompt_end = XINT (Fminibuffer_prompt_end ()); | 413 | int prompt_end = XINT (Fminibuffer_prompt_end ()); |
| @@ -419,7 +419,7 @@ The current buffer must be a minibuffer. */) | |||
| 419 | DEFUN ("delete-minibuffer-contents", Fdelete_minibuffer_contents, | 419 | DEFUN ("delete-minibuffer-contents", Fdelete_minibuffer_contents, |
| 420 | Sdelete_minibuffer_contents, 0, 0, 0, | 420 | Sdelete_minibuffer_contents, 0, 0, 0, |
| 421 | doc: /* Delete all user input in a minibuffer. | 421 | doc: /* Delete all user input in a minibuffer. |
| 422 | The current buffer must be a minibuffer. */) | 422 | If the current buffer is not a minibuffer, erase its entire contents. */) |
| 423 | () | 423 | () |
| 424 | { | 424 | { |
| 425 | int prompt_end = XINT (Fminibuffer_prompt_end ()); | 425 | int prompt_end = XINT (Fminibuffer_prompt_end ()); |
| @@ -704,7 +704,7 @@ read_minibuf (map, initial, prompt, backup_n, expflag, | |||
| 704 | if (!NILP (current_buffer->enable_multibyte_characters) | 704 | if (!NILP (current_buffer->enable_multibyte_characters) |
| 705 | && ! STRING_MULTIBYTE (minibuf_prompt)) | 705 | && ! STRING_MULTIBYTE (minibuf_prompt)) |
| 706 | minibuf_prompt = Fstring_make_multibyte (minibuf_prompt); | 706 | minibuf_prompt = Fstring_make_multibyte (minibuf_prompt); |
| 707 | 707 | ||
| 708 | /* Insert the prompt, record where it ends. */ | 708 | /* Insert the prompt, record where it ends. */ |
| 709 | Finsert (1, &minibuf_prompt); | 709 | Finsert (1, &minibuf_prompt); |
| 710 | if (PT > BEG) | 710 | if (PT > BEG) |
diff --git a/src/process.c b/src/process.c index 2e41267479c..567aae7c08f 100644 --- a/src/process.c +++ b/src/process.c | |||
| @@ -1557,13 +1557,19 @@ DEFUN ("start-process", Fstart_process, Sstart_process, 3, MANY, 0, | |||
| 1557 | doc: /* Start a program in a subprocess. Return the process object for it. | 1557 | doc: /* Start a program in a subprocess. Return the process object for it. |
| 1558 | NAME is name for process. It is modified if necessary to make it unique. | 1558 | NAME is name for process. It is modified if necessary to make it unique. |
| 1559 | BUFFER is the buffer (or buffer name) to associate with the process. | 1559 | BUFFER is the buffer (or buffer name) to associate with the process. |
| 1560 | Process output goes at end of that buffer, unless you specify | 1560 | |
| 1561 | an output stream or filter function to handle the output. | 1561 | Process output (both standard output and standard error streams) goes |
| 1562 | BUFFER may be also nil, meaning that this process is not associated | 1562 | at end of BUFFER, unless you specify an output stream or filter |
| 1563 | with any buffer. | 1563 | function to handle the output. BUFFER may also be nil, meaning that |
| 1564 | this process is not associated with any buffer. | ||
| 1565 | |||
| 1564 | PROGRAM is the program file name. It is searched for in PATH. | 1566 | PROGRAM is the program file name. It is searched for in PATH. |
| 1565 | Remaining arguments are strings to give program as arguments. | 1567 | Remaining arguments are strings to give program as arguments. |
| 1566 | 1568 | ||
| 1569 | If you want to separate standard output from standard error, invoke | ||
| 1570 | the command through a shell and redirect one of them using the shell | ||
| 1571 | syntax. | ||
| 1572 | |||
| 1567 | usage: (start-process NAME BUFFER PROGRAM &rest PROGRAM-ARGS) */) | 1573 | usage: (start-process NAME BUFFER PROGRAM &rest PROGRAM-ARGS) */) |
| 1568 | (nargs, args) | 1574 | (nargs, args) |
| 1569 | int nargs; | 1575 | int nargs; |
diff --git a/src/sysdep.c b/src/sysdep.c index 20d60400dcb..27e90349cb6 100644 --- a/src/sysdep.c +++ b/src/sysdep.c | |||
| @@ -2433,7 +2433,9 @@ init_system_name () | |||
| 2433 | /* We still don't have a fully qualified domain name. | 2433 | /* We still don't have a fully qualified domain name. |
| 2434 | Try to find one in the list of alternate names */ | 2434 | Try to find one in the list of alternate names */ |
| 2435 | char **alias = hp->h_aliases; | 2435 | char **alias = hp->h_aliases; |
| 2436 | while (*alias && !index (*alias, '.')) | 2436 | while (*alias |
| 2437 | && (!index (*alias, '.') | ||
| 2438 | || !strcmp (*alias, "localhost.localdomain"))) | ||
| 2437 | alias++; | 2439 | alias++; |
| 2438 | if (*alias) | 2440 | if (*alias) |
| 2439 | fqdn = *alias; | 2441 | fqdn = *alias; |
diff --git a/src/xdisp.c b/src/xdisp.c index 5c273540c41..eb97ef110a9 100644 --- a/src/xdisp.c +++ b/src/xdisp.c | |||
| @@ -12926,6 +12926,7 @@ redisplay_window (window, just_this_one_p) | |||
| 12926 | int rc; | 12926 | int rc; |
| 12927 | int centering_position = -1; | 12927 | int centering_position = -1; |
| 12928 | int last_line_misfit = 0; | 12928 | int last_line_misfit = 0; |
| 12929 | int save_beg_unchanged, save_end_unchanged; | ||
| 12929 | 12930 | ||
| 12930 | SET_TEXT_POS (lpoint, PT, PT_BYTE); | 12931 | SET_TEXT_POS (lpoint, PT, PT_BYTE); |
| 12931 | opoint = lpoint; | 12932 | opoint = lpoint; |
| @@ -12990,6 +12991,9 @@ redisplay_window (window, just_this_one_p) | |||
| 12990 | set_buffer_internal_1 (XBUFFER (w->buffer)); | 12991 | set_buffer_internal_1 (XBUFFER (w->buffer)); |
| 12991 | SET_TEXT_POS (opoint, PT, PT_BYTE); | 12992 | SET_TEXT_POS (opoint, PT, PT_BYTE); |
| 12992 | 12993 | ||
| 12994 | save_beg_unchanged = BEG_UNCHANGED; | ||
| 12995 | save_end_unchanged = END_UNCHANGED; | ||
| 12996 | |||
| 12993 | current_matrix_up_to_date_p | 12997 | current_matrix_up_to_date_p |
| 12994 | = (!NILP (w->window_end_valid) | 12998 | = (!NILP (w->window_end_valid) |
| 12995 | && !current_buffer->clip_changed | 12999 | && !current_buffer->clip_changed |
| @@ -13294,11 +13298,20 @@ redisplay_window (window, just_this_one_p) | |||
| 13294 | && NILP (do_mouse_tracking) | 13298 | && NILP (do_mouse_tracking) |
| 13295 | && CHARPOS (startp) > BEGV) | 13299 | && CHARPOS (startp) > BEGV) |
| 13296 | { | 13300 | { |
| 13297 | /* Make sure beg_unchanged and end_unchanged are up to date. | 13301 | #if 0 |
| 13298 | Do it only if buffer has really changed. This may or may | 13302 | /* The following code tried to make BEG_UNCHANGED and |
| 13299 | not have been done by try_window_id (see which) already. */ | 13303 | END_UNCHANGED up to date (similar to try_window_id). |
| 13304 | Is it important to do so? | ||
| 13305 | |||
| 13306 | The trouble is that it's a little too strict when it | ||
| 13307 | comes to overlays: modify_overlay can call | ||
| 13308 | BUF_COMPUTE_UNCHANGED, which alters BUF_BEG_UNCHANGED and | ||
| 13309 | BUF_END_UNCHANGED directly without moving the gap. | ||
| 13310 | |||
| 13311 | This can result in spurious recentering when overlays are | ||
| 13312 | altered in the buffer. So unless it's proven necessary, | ||
| 13313 | let's leave this commented out for now. -- cyd. */ | ||
| 13300 | if (MODIFF > SAVE_MODIFF | 13314 | if (MODIFF > SAVE_MODIFF |
| 13301 | /* This seems to happen sometimes after saving a buffer. */ | ||
| 13302 | || BEG_UNCHANGED + END_UNCHANGED > Z_BYTE) | 13315 | || BEG_UNCHANGED + END_UNCHANGED > Z_BYTE) |
| 13303 | { | 13316 | { |
| 13304 | if (GPT - BEG < BEG_UNCHANGED) | 13317 | if (GPT - BEG < BEG_UNCHANGED) |
| @@ -13306,9 +13319,10 @@ redisplay_window (window, just_this_one_p) | |||
| 13306 | if (Z - GPT < END_UNCHANGED) | 13319 | if (Z - GPT < END_UNCHANGED) |
| 13307 | END_UNCHANGED = Z - GPT; | 13320 | END_UNCHANGED = Z - GPT; |
| 13308 | } | 13321 | } |
| 13322 | #endif | ||
| 13309 | 13323 | ||
| 13310 | if (CHARPOS (startp) > BEG + BEG_UNCHANGED | 13324 | if (CHARPOS (startp) > BEG + save_beg_unchanged |
| 13311 | && CHARPOS (startp) <= Z - END_UNCHANGED) | 13325 | && CHARPOS (startp) <= Z - save_end_unchanged) |
| 13312 | { | 13326 | { |
| 13313 | /* There doesn't seems to be a simple way to find a new | 13327 | /* There doesn't seems to be a simple way to find a new |
| 13314 | window start that is near the old window start, so | 13328 | window start that is near the old window start, so |
| @@ -16002,13 +16016,37 @@ cursor_row_p (w, row) | |||
| 16002 | 16016 | ||
| 16003 | if (PT == MATRIX_ROW_END_CHARPOS (row)) | 16017 | if (PT == MATRIX_ROW_END_CHARPOS (row)) |
| 16004 | { | 16018 | { |
| 16005 | /* If the row ends with a newline from a string, we don't want | 16019 | /* Suppose the row ends on a string. |
| 16006 | the cursor there, but we still want it at the start of the | 16020 | Unless the row is continued, that means it ends on a newline |
| 16007 | string if the string starts in this row. | 16021 | in the string. If it's anything other than a display string |
| 16008 | If the row is continued it doesn't end in a newline. */ | 16022 | (e.g. a before-string from an overlay), we don't want the |
| 16023 | cursor there. (This heuristic seems to give the optimal | ||
| 16024 | behavior for the various types of multi-line strings.) */ | ||
| 16009 | if (CHARPOS (row->end.string_pos) >= 0) | 16025 | if (CHARPOS (row->end.string_pos) >= 0) |
| 16010 | cursor_row_p = (row->continued_p | 16026 | { |
| 16011 | || PT >= MATRIX_ROW_START_CHARPOS (row)); | 16027 | if (row->continued_p) |
| 16028 | cursor_row_p = 1; | ||
| 16029 | else | ||
| 16030 | { | ||
| 16031 | /* Check for `display' property. */ | ||
| 16032 | struct glyph *beg = row->glyphs[TEXT_AREA]; | ||
| 16033 | struct glyph *end = beg + row->used[TEXT_AREA] - 1; | ||
| 16034 | struct glyph *glyph; | ||
| 16035 | |||
| 16036 | cursor_row_p = 0; | ||
| 16037 | for (glyph = end; glyph >= beg; --glyph) | ||
| 16038 | if (STRINGP (glyph->object)) | ||
| 16039 | { | ||
| 16040 | Lisp_Object prop | ||
| 16041 | = Fget_char_property (make_number (PT), | ||
| 16042 | Qdisplay, Qnil); | ||
| 16043 | cursor_row_p = | ||
| 16044 | (!NILP (prop) | ||
| 16045 | && display_prop_string_p (prop, glyph->object)); | ||
| 16046 | break; | ||
| 16047 | } | ||
| 16048 | } | ||
| 16049 | } | ||
| 16012 | else if (MATRIX_ROW_ENDS_IN_MIDDLE_OF_CHAR_P (row)) | 16050 | else if (MATRIX_ROW_ENDS_IN_MIDDLE_OF_CHAR_P (row)) |
| 16013 | { | 16051 | { |
| 16014 | /* If the row ends in middle of a real character, | 16052 | /* If the row ends in middle of a real character, |